Documentation (architecture overview)
diff --git a/gfsBackendService/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/gfsBackendService/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc index 313b619..9d11362 100644 --- a/gfsBackendService/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc +++ b/gfsBackendService/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -23,6 +23,9 @@ :source-highlighter: highlightjs :highlightjs-theme: solarized_dark +:imagesdir: ../img +:iconsdir: ../img/icons + This documentation is based on the ARC42-Template (v7.0): == Introduction and Goals @@ -478,44 +481,46 @@ === Solution Strategy -The module 'Contact Base Data' bases on a three-tier architecture: - -. *Frontend* - The GUI is implemented as a web-frontend with rich-client functionalities. -. *Backend* - The business functionalities are implemented in the backend tier. It provides the business functions via RESTful Webservices. -. *Database* - The database stores all module specific data. +The module 'Grid Failure Information' bases on a small microservice architecture, including +an asynchronous messaging system. == Building Block View === Whitebox Overall System -The module 'Contact Base Data' contains two components (see figure 2): +The module 'grid failure information' contains several components: -. *UI* - Represents the graphical user interface and consumes the services from the business logic component via RESTful webservices. -. *Business Logic* - Realizes the business functionality and the data storage of the module. The -module itself is split up in several components due to the requirement to use -microservices. +. *SIT-Web-FE* - This component (SPA with Angular) provides two HTML pages: a table and a map +with failure information. This component is in the DMZ and can be called up from the Internet. +. *SIT-Web-Guard* - The SIT-Web-Guard (Java Spring Cloud) is a Zuul proxy +(API gateway) that only forwards explicitly configured services. For the failure information +tool, only certain services are available on the Internet that do not require authentication. +Since the SIT-BE is protected by Spring Security, the SIT-Web-Guard procures guest authentication for forwarding. +. *SIT-FE* - +This component (SPA with Angular) provides the user interface for the failure information application. The SIT-FE +receives its authentication when it is called from the PortalFE in the form of a JWT. +. *SIT_BE* - The SIT-BE (Java Spring Boot Microservice) provides all CRUD services in the form of +ReST services that the two frontends require. The SIT-BE is the only component that has +access to the database. Every call is authorized against the PortalBE. This microservice also includes +the JobManager subcomponent. +. *JobManager* - The various imports and exports are controlled via the JobManager. The JobManager +knows all available import and export jobs and can control them via the internal message bus +(RabbitMQ internal). Because the communication between the JobManager and the jobs takes place +via the message bus, the JM does not need to know their configuration and URLs. For this, the JM must +ensure synchronization (incl. timeout behavior) for asynchronous message communication. +. *Import- and export jobs* - All jobs provide a uniform (MessageBus) interface to start a job, +return the result of a job, or to provide information about the respective job (name, version, timeout, status, etc.). +The job manager cyclically requests all configured jobs to send current status information to it. +The interfaces of the individual jobs "outside" can be very different (file system, Internet, message queue, etc.) -.Module components + +.Architecture of the grid failure information tool [options="header,footer"] -[plantuml] ----- -node Module { - rectangle UI - rectangle BusinessLogic - - interface REST - - UI -> REST - REST -- BusinessLogic -} ----- +image::architectureSIT.png[] -The communication between WebBrowser and Apache Tomcat is established via HTTP/HTTPS. -ApacheTomcat is connected to the data source (PostgresDBMS) via TCP/IP. - ==== contactBaseDataFE This component implements the presentation logic for the *contact-base-data*-module using the *Angular*-TypeScript