@startuml detailed-application-architecture-static
!include <C4/C4_Container>
header Container diagram \nStatic detailed application point of view \n My Online Info Project (AllMyData)
LAYOUT_WITH_LEGEND()

System_Boundary(company_system, "Any company IS") {
    Person_Ext(company, "Client", "[person] \nWeb client (PC, tablet, mobile)")
    Container(spa, "SPA gui-allmydata", "Container: javascript, React.js", "Graphical interface for requesting information")
    Container(mobile, "AllMyData mobile application", "Container: Android", "Graphical interface to request information")
}    

System_Boundary(administration, "System administration B") {
    System_Ext(scompta, "Accounting system", "REST service")
}

System_Boundary(si, "Information System") {
    Container(static_resources, "gui-allmydata Web Application", "Container: nginx", "Deliver the static resources (js, html, images ...) of the AllMyData GUI")
    Container(sm, "service-allmydata", "Container: Tomcat, Spring Boot", "REST service allowing to request information")
    Container(batch, "batch-process-requests", "Container: groovy", "Process requests, launched by cron every minute")
    ContainerDb(queue, "requests-queue", "Container: ActiveMQ", "Stores requests")
    ContainerDb(bdd, "bdd-allmydata", "Container: PostgreSQL", "Internal database")
    Container(compo, "service-compo-pdf", "Container: Wildfly, JasperReport", "Composition REST service")
    Container(smails, "mail server", "Container: Postfix", "Send emails")
}

@enduml