Overview
In the Router application pattern, the router tier serves as an integration point for delivery channels in the presentation tier, allowing access to individual back-end applications. In this Runtime pattern, the functions of the router tier are performed by an integration server.
Generic runtime patterns
Router application pattern::Runtime pattern
(Click a node to get a detailed explanation.)
The basic pattern uses a Web server redirector node in the DMZ to serve static HyperText Mark-up Language (HTML) pages to the client. Requests for dynamic data are forwarded to the application server in the internal network. Together, these two nodes 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, primarily in the form of JavaServer Pages (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.
The integration server examines the request, determines the appropriate destination, and forwards it to the chosen back-end application, where the primary business logic resides. This may involve activities such as message transformation, protocol conversion, security management, and session concentration. The integration server may use a database to look up routing information, as a caching device, or for holding intermediary data.
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.
This Runtime pattern does not differentiate between intranet and Internet implementations. However, you need to be aware of certain issues:
- Bandwidth is usually greater in an intranet, allowing the use of more network-intensive solutions, such as thick clients.
- Security might be less an issue in an intranet. However, protecting the network is still important and firewalls protecting resources from unauthorized access are still advisable.
- Because of corporate rules you might expect certain browsers to be used, allowing you to exploit all available features and not code to the least common denominator.
This Runtime pattern offers the following benefits:
- All sensitive persistent data is stored behind the DMZ.
- Business logic can completely reside in the secure network.
Although this Runtime pattern has limited availability and failover capability, individual products offer features that could be folded into this design, allowing duplicate servers that can take over in the event of a server failure. Horizontal scalability is also not shown, but individual product offerings might offer workload management features for this design to allow duplicate servers for distributed workload. Vertical scalability can be achieved by adding memory or processors, or creating multiple servers on the Web application server and integration server.
In our financial services company example, data for each type of service (brokerage, mutual fund, banking, and credit card) is accessible through its own back-end application. As a first step to integrating their operations, the company uses a Router application pattern solution that provides access to each back end application. A banker processing a loan application can access the customer's credit card history before approving the loan. Read-only data at the router level provides a mapping between the user and the accounts held.
Runtime pattern: Variation 1
In this variation, the presentation logic has been split from the application logic and placed on a Web presentation server.
Router application pattern::Runtime pattern=Variation 1
(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 by allowing system resources to be spread across multiple machines and although not shown, can be extended to implement load balancing among application servers.
SOA profile
Router application pattern::[SOA]Runtime pattern
Design Last Updated: 12-16-2005
(Click a node to get a detailed explanation.)
In this pattern the ESB node has replaced the integration server node. It provides the message routing function, as well as protocol conversion, logging, transformation, or other tasks related to the proper routing of messages.
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
The ESB can span across multiple system/application tiers, and may extend beyond the enterprise boundary.
