Overview
The Decomposition runtime patterns illustrate the range of function provided by this pattern. We will look at the following Runtime patterns:
- Decomposition: Integration Server runtime pattern
- Decomposition: Process Manager runtime pattern
The Decomposition application pattern extends the Router application pattern by decomposing a single, compound request from a client into several, simpler requests and intelligently routes them to multiple back-end applications. In this Runtime pattern, the functions of the decomposition tier are performed by an integration server.
Generic runtime patterns
Decomposition application pattern::Integration Server runtime pattern
Design Last Updated: 9-30-2004
(Click a node to get a detailed explanation.)
In the Decomposition application pattern, the decomposition tier serves as an integration point for delivery channels in the presentation tier, allowing access to individual back-end applications. In the Integration Server runtime pattern (Figure above), the functions of the decomposition tier are performed by an integration server node. The functions of the presentation tier are performed jointly by a Web server redirector node and the application server node. Placing a Web server redirector in the DMZ provides an extra layer of security by putting all application logic behind the firewall. Only a portion of the presentation function is left in the DMZ.
The protocol firewall prevents unauthorized access from the Internet to the demilitarized zone. The role of this node is to allow the Internet traffic access only on certain ports and to block other ports. The domain firewall prevents unauthorized access from the demilitarized zone to the internal network. The role of this firewall is to allow the network traffic that originated only from the demilitarized zone and not from the Internet.
A good security design does not permit any business logic or sensitive data in the DMZ. Using a Web server redirector helps to meet that goal. The Web server redirector serves static HTTP pages, while forwarding dynamic servlet and JSP requests to the application server. The presentation logic, therefore, spans both nodes. Together, these two provide the presentation tier, capable of handling multiple, diverse presentation styles. Using a redirector allows you to place the bulk of the business logic behind the protection of both the protocol and domain firewalls.
In addition to presentation logic (for example, JSPs), the application server contains some business logic. This is primarily in the form of the controlling servlets required to access the back-end applications. The application server builds a request based on user input and passes it to the integration server node. The primary business logic resides in the back-end applications.
The integration server examines messages and routes them to the appropriate back-end applications. It can go a step further by taking a single complex message, decomposing it into multiple messages, and routing those messages to the appropriate back-end applications. It is also capable of managing these messages such that it can wait for responses and recompose them into a single response to be sent back to the user. This effectively takes multiple, diverse back-end applications and unifies them into one interface for the user.
The integration server can use a local database as a work-in-progress database to store information required for message decomposition and recomposition.
Access to the application server resources is protected by the application server’s security features, while access to the integration server’s resources is protected by the integration server’s security features. User information that is needed for authentication and authorization by both servers is stored in the directory and security services node behind the domain firewall in the internal network. The information may contain user IDs, passwords, certificates, access groups, and so on.
Integration Server runtime pattern=Variation 1
Variation 1 is the same as Variation 1 in the Router pattern. In this variation, the presentation logic has been split from the application logic and place on a Web presentation server.
Decomposition application pattern::Integration Server runtime pattern=Variation 1
Design Last Updated: 9-30-2004
(Click a node to get a detailed explanation.)
The Web presentation server runs JSPs and servlets to provide the presentation logic for the application. The application server runs EJB logic and sends requests to the integration server. Requests are forwarded from the Web presentation server to the application server using IIOP.
Using a Web presentation server further delineates the line between presentation and application logic. It lends itself to scalability in by allowing system resources to be spread across multiple machines and although not shown, can be extended to implement load balancing among application servers.
Process Manager runtime pattern
Decomposition application pattern::Process Manager runtime pattern
Design Last Updated: 9-30-2004
(Click a node to get a detailed explanation.)
The Process Manager runtime pattern (Figure above) is similar to the Integration Server runtime pattern with one significant difference. Where the functions of the decomposition tier in the base pattern are provided using an integration server node, the decomposition functionality in this pattern is provided by business processes executing in a process manager node.
A business process consists of a series of activities choreographed in such a way as to accomplish a specific business task. Input to the business process is provided by the user via a standard interface. The business services invoked from the process are usually provided by back-end legacy applications that have also been exposed using standard interfaces.
In addition to presentation logic (for example, JSPs), the application server contains limited business logic, primarily in the form of the controlling servlets required to access the business processes executing in the process manager node. The application server builds a request based on user input and passes it to the process manager node.
The process manager node provides the execution engine for the business processes. It has the capability of executing activities in serial or parallel mode. It can invoke back-end services synchronously or asynchronously. In the event that human interaction is required by the business process, this node creates a work item and identifies a particular person or a department responsible for executing that task and adds the work item to its worklist. Processes that are interrupted can roll back completed tasks, returning the back-end applications to their original state.
A database is used to provide a persistent data storage and retrieval service in support of the execution of the process flow. It holds the process execution rules and intermediate results from the execution of certain activities within the context of an end-to-end process flow. The implementation of this node may involve several persistent data technologies (such as DBMS and flat file) for the different data types.
The primary business logic resides in the back-end applications. These applications are exposed as enterprise or Web services for access by the process manager node.
SOA profile
Decomposition application pattern::[SOA]Runtime pattern
Design Last Updated: 12-16-2005
(Click a node to get a detailed explanation.)
The functionality related to handling messages including decomposition/recomposition, routing, transformation, logging, and protocol conversion moves to the ESB.
The ESB approach:
- Minimizes the number of adapters required to link service consumers to service providers
- Improves reuse
- Addresses any technical and information model discrepancies amongst services
- Provides a single configuration point for distributed deployment
- Decouples service requesters from providers
- Provides a common access point for service requesters
- Provides centralized security for services
