Background
There are a lot of interactions between the applications of the modular application layer, which all are based on REST requests. Every individual application needs to know the related information about other applications for properly addressing them. (E.g. the URIs of these REST requests must comprise e.g. TCP/IP address and OperationName.)
- These information cannot be hard coded, as the implementation of an individual application would out-date as soon as the TCP/IP address of one of its serving applications would change.
- Thus, TCP/IP addresses and OperationName get documented in the CONFIGfiles of the individual applications. Interaction example: whenever an application receives a request, it has to send one to the ExecutionAndTraceLog application for documenting the processing of the received request.
CONFIGfiles
- A stack of TcpClient, HttpClient and OperationClient is used for documenting the information, which is required for addressing a consumed service.
- Address information of an already known application could be altered by modifying the values of the attributes inside these Clients.
- This could be done manually in the CONFIGfile or via the OaM segment of the REST API during runtime. To some extend it is even automated via the service segment of the REST API.
- example for the relationships between OperationServers and OperationClients: '... whenever an application receives a request, it has to send one to the ExecutionAndTraceLog....'
- If these relationships would be hardcoded, it would not be possible to redirect the flow from event to reaction, and a dynamic change of the application layer would not be possible. Thus, the relationships need to be documented in the CONFIGfiles of the individual applications, too.
Forwarding Components
- ForwardingDomains and ForwardingConstructs are used for documenting the relationships between received (OperationServer) and to be sent requests (OperationClients).
- ForwardingConstructs are used for representing a wide range of relationships from process flows to calculations. The ForwardingConstructs could be changed manually in the CONFIGfile or in automated way via the service segment of the REST API.
- The ForwardingList is supporting designing the relationships before documenting them in a syntactically pre-defined way in the OpenApiSpecification and the CONFIGfile.