Commit 9d3ac8c6 authored by dietricf's avatar dietricf
Browse files

Documentation (architecture overview)

parent c8e574d6
...@@ -23,6 +23,9 @@ openKonsequenz - Architecture of the module 'Contact Base Data' ...@@ -23,6 +23,9 @@ openKonsequenz - Architecture of the module 'Contact Base Data'
:source-highlighter: highlightjs :source-highlighter: highlightjs
:highlightjs-theme: solarized_dark :highlightjs-theme: solarized_dark
:imagesdir: ../img
:iconsdir: ../img/icons
This documentation is based on the ARC42-Template (v7.0): This documentation is based on the ARC42-Template (v7.0):
== Introduction and Goals == Introduction and Goals
...@@ -478,43 +481,45 @@ The interfaces of the module 'Contact Base Data' are described in the interface ...@@ -478,43 +481,45 @@ The interfaces of the module 'Contact Base Data' are described in the interface
=== Solution Strategy === Solution Strategy
The module 'Contact Base Data' bases on a three-tier architecture: The module 'Grid Failure Information' bases on a small microservice architecture, including
an asynchronous messaging system.
. *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.
== Building Block View == Building Block View
=== Whitebox Overall System === 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. . *SIT-Web-FE* - This component (SPA with Angular) provides two HTML pages: a table and a map
. *Business Logic* - Realizes the business functionality and the data storage of the module. The with failure information. This component is in the DMZ and can be called up from the Internet.
module itself is split up in several components due to the requirement to use . *SIT-Web-Guard* - The SIT-Web-Guard (Java Spring Cloud) is a Zuul proxy
microservices. (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.
.Module components 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.)
.Architecture of the grid failure information tool
[options="header,footer"] [options="header,footer"]
[plantuml] image::architectureSIT.png[]
node Module {
rectangle UI
rectangle BusinessLogic
interface REST
REST -- BusinessLogic
The communication between WebBrowser and Apache Tomcat is established via HTTP/HTTPS.
ApacheTomcat is connected to the data source (PostgresDBMS) via TCP/IP.
==== contactBaseDataFE ==== contactBaseDataFE
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment