Tutorials
SOA Web ServicesThe application patterns discussed so far overlay the runtime patterns. The runtime pattern uses a set of nodes to group functional and operational components. The nodes are interconnected to form a pattern. The business logic of the application is deployed on nodes.
We consider the following definitions for nodes in the context of runtime patterns:
An application server may consist of a servlet or EJB container. It typically hosts web applications and does not generally support HTTP connections. The HTTP requests from the presentation tier are redirected through a web server redirector.
The rules repository, as the name suggests, stores the rules for controlling the mode of operation of an interaction. The rules, as seen earlier, may consist of data mapping rules, security access rules, availability rules, and so on. The use of a repository node is optional.
The Router node is similar to the Broker node discussed earlier. It is responsible for routing a request to one of the appropriate target nodes. The router rules provide separation of the application logic from the distribution logic.
A firewall controls the flow of information between an internal secured application and an external unsecured consumer. A firewall controls the traffic flow with the help of filters. Though generally this is considered as a first line of defence, it may be combined with comprehensive security systems that provide message encryption, content filtering, and intrusion detection. A firewall may be of two types: a protocol firewall or a domain firewall. A protocol firewall is a typical IP router.
A domain firewall is implemented generally as a dedicated server node. With the help of a domain firewall, we create a demilitarized zone for added security.
In addition to the nodes, some connector definitions are important to us in the context of runtime patterns. A connector facilitates the interaction between two components. Depending on the required level of detail, a connector may be classified as follows:
Primitive connector—represents a simple connection between the two components. This is considered an un-modeled connector as it does not provide any functionality other than a simple connection between the components.
Component connector—provides an additional functionality in the connection between two components. This is also called a modeled connector.
A connector may be an Adapter connector, Path connector, or both.
An Adapter connector contains some business logic that transforms the messages and the data between the consumer and the source blocks to match the data and protocol requirements of each side. Thus, it enables the logical connectivity between the source and target components.
A Path connector provides a physical connectivity between the components. It may be as simple as a wired connection between the components or may be as complex as an Internet. We will now study runtime patterns for integration.