Skip to main content

Application Integration::Broker application pattern::Runtime patterns

Overview

On this page, two categories of Runtime patterns are described:

The following are all emerging patterns which experienced integration architects expect to see in the near future. They will be verified as new products and new standards are introduced.



Generic DC runtime patterns

Broker application pattern::Runtime pattern

Broker::Runtime pattern Application Server/Services Application Server/Services Application Server/Services Application Server/Services Broker Rules Directory
Design Last Updated: 10-20-2004
(Click a node to get a detailed explanation.)

The Broker tier in the Application pattern is implemented in this Runtime pattern with a Broker node. The Broker node is responsible for the routing and distribution of incoming messages to the target applications. It has the ability to decompose and recompose messages.

The Application Server/Services nodes execute the logic of the target and source applications.


Broker application pattern=Pub/Sub runtime variation

Broker Pub/Sub runtime variation Application Server/Services Application Server/Services Application Server/Services Application Server/Services Broker Rules Directory
Design Last Updated: 10-20-2004
(Click a node to get a detailed explanation.)

Pub/Sub is a Runtime variation of the Broker application pattern. In this variation, the Broker node offers a dynamic quality of service named Pub/Sub. The Runtime pattern for this variation is a Collaboration composed from two types of interaction. The first of these is the Message Connection variation. This describes a subscribe/unsubscribe interaction which allows Target Applications to alter the Rules Directory content to add or remove themselves from distribution lists. The second type of interaction is the Broker interaction which describes how a single Source Application can use the Broker node to interact with multiple Target Applications.

The Pub/Sub quality of service can be further qualified as either synchronous or asynchronous. A synchronous interaction occurs when a Target Application only receives messages from the Broker node whilst online. An asynchronous interaction occurs when messages from the Broker node are queued for the Target Application while it is offline.

SOA profile

In this second section we specialize the Broker pattern for the SOA environment using the SOA profile. The SOA profile terminology is indicated using the [SOA] qualifier.

The generic Broker, and Rules Directory in the figure above are specialized in the SOA profile to:


[SOA]Broker runtime pattern (aka ESB runtime pattern)

[SOA]Broker::Runtime Pattern Application Server/Services Application Server/Services Application Server/Services Application Server/Services Application Server/Services Application Server/Services Enterprise Service Bus
Design Last Updated: 04-28-2005
(Click a node to get a detailed explanation.)

The use of an Enterprise Service Bus offers the following benefits:

ESB Topology patterns (Emerging patterns)

The ESB Topology patterns are variations of the SOA profile and describe topological relationships between ESBs.


ESB Topology::Directly Connected ESBs

Directly Connected ESBs Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Service Registry Service Registry ESB Gateway ESB Gateway Hub Hub Enterprise Service Bus Enterprise Service Bus
Design Last Updated: 08-07-2009
(Click a node to get a detailed explanation.)

In the directly connected ESBs topology the ESB in domain 1 simply treats the service in domain 2 as another back-end system. Domain 2 continues to own the service and implement its policy and registry definition.

Benefits:

Limitations:


ESB Topology::Brokered ESBs

Brokered ESBs Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Service Registry Service Registry Service Registry ESB Gateway ESB Gateway ESB Gateway Hub Hub Hub Enterprise Service Bus Enterprise Service Bus Enterprise Service Bus
Design Last Updated: 08-07-2009
(Click a node to get a detailed explanation.)

For Brokered ESBs, one ESB is chosen to act as a master domain or broker through which all interactions traverse when they need to make use of a service in another domain.
Domain 1 has been chosen as the master domain. Consumers from other domains such as domain 3 always use domain 1 to get to services that are outside their domain, rather than creating a further connection from their own ESB.

Benefits:

Limitations:


ESB Topology::Brokered ESBs Variation

Brokered ESBs Variation Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Service Registry Service Registry ESB Gateway ESB Gateway Hub Hub Enterprise Service Bus Enterprise Service Bus
Design Last Updated: 08-07-2009
(Click a node to get a detailed explanation.)

The Brokered ESB’s variation is a more realistic Brokered ESB topology. Note that some domains such as Domain 3 may not have an ESB and so they would call the domain 1 gateway directly. We also show that domain 1 will most probably also provide services itself, and will have consumers of those and other services.


ESB Topology::Federated ESBs

Federated ESBs Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Application Server / Services Service Registry Service Registry ESB Gateway ESB Gateway Hub Hub Enterprise Service Bus Enterprise Service Bus
Design Last Updated: 08-07-2009
(Click a node to get a detailed explanation.)

Each of the domain’s ESBs are autonomous, and yet they all have a knowledge of the wider enterprise-level services. Any consumer can call services in any domain without necessarily having set up the communication paths in advance.

There are some key capabilities that would need to be in place for this pattern to be possible:

The peer-to-peer relationship is made possible by the fact that the domains registries have knowledge of one another and are able to look up or replicate endpoint information for services that are outside of their domain.

For this pattern to work, there must be some level of agreement at the enterprise level about what protocols and interaction types are allowable between ESB Gateways and Hubs, and there need to be suitable channels opened up across domain boundaries to allow service calls to pass. The two ESB zones represent a set of nodes that communicate with an agreed upon set of protocols over trusted channels.

An interesting consequence of having so rigidly defined the ESB Gateway to Hub protocols is that if an application provides a suitable interface already, it could in theory directly publish itself in the registry as an endpoint. In other words, the application may not need to be connected to a Hub in order to be exposed to the enterprise. It can then be called directly by the ESB Gateways using the same standard protocols used to converse with Hubs. Consumers of the service are already decoupled from future change to the endpoint by virtue of the fact that they call the ESB Gateway and will draw any changes to the service endpoint from the registry at run time.

Benefits:

Limitations:

ESB Adapter patterns (Emerging patterns)

The ESB Adapter patterns describe how the ESBs will send and accept messages and more importantly, message context.
The following table lists the major differences between the two ESB Adapter patterns.

Driver Adapter Connector Boundary Service Adapter Connector
Service Binding Design time Run time
Shared Services Few Many
Collaborations Static Dynamic
Initial Deployment Effort Less More
Modification Effort More Less

ESB Topology::Adapter Connector

Connector Application Server/Services Application Server/Services Application Server/Services Application Server/Services Service Registry Service Registry Namespace Directory Namespace Directory Admin Security Services Admin Security Services Hub Hub New Adapter Connector
Design Last Updated: 11-01-2005
(Click a node to get a detailed explanation.)

The ESB Adapter::Adapter Connector pattern is an established pattern and is not unique to ESB integration. It is a common pattern when connecting heterogeneous applications (See Process Integration::Direct Connection). In the case of ESB integration the ESB Adapter::Adapter Connector pattern supports the interaction between a service consumer on a local ESB and a service provider on a foreign ESB. The logic to translate ESB behaviors (for example logging, assured delivery, and security) to support that interaction are built into the adapter connector and then bound to the adapter connector at design time.


ESB Topology::Boundary Services Adapter Connector

Boundary Services Application Server/Services Application Server/Services Application Server/Services Application Server/Services Service Registry Service Registry Hub Hub Enterprise Service Bus Gateway
Design Last Updated: 11-01-2005
(Click a node to get a detailed explanation.)

The Boundary Services Adapter Connector is an emerging pattern to create run time (as opposed to design time) configurable and composible interactions between applications. Boundary Services Adapter Connector lives at the edge of an application and takes the context of an event outside of the boundary and translates it to a context understood within the boundary. It also takes the internal event context and prepares it for external consumption. The Boundary Services Adapter Connector pattern has roots in SOA techniques.


ESB Topology::Composite

As with the Governance patterns and Topology patterns it is possible to use more than one ESB Adapter pattern. It is doubtful that any instance of integrated ESBs will be implemented using only the Adapter Connector or the Boundary Services Adapter Connector pattern. The reasons to use both ESB Adapter patterns can be financial and technical and it will be necessary to make trade-offs between implementing the Boundary Services Adapter Connector and Adapter Connector patterns.

App Server/Services

Applications rely on services provided by their hosting server to interact with other applications. These are modeled using the application server/service node. Some examples of services provided by this node include:

Broker

The Broker node allows distribution and decomposition/recomposition of messages so a single interaction from a source component can be switched, split, and joined to multiple target components concurrently. It separates the application logic from the distribution logic based on broker rules. The broker also manages the decomposition/recomposition of the interaction using these rules.

Rules Directory

The rules directory contains the rules generally used to control the mode of operation of an interaction, depending on external factors. Examples of such rules are:

  • Business data mapping rules (for adapter connectors)
  • Process execution rules and intermediate results
  • Autonomic rules (such as priority in a shared environment)
  • Security rules
  • Capacity and availability rules

The rules directory may or may not exist. If it exists, it can still be left off the Runtime pattern when analysis determines that interaction rules are not an important part of the solution, for example.

ESB

The ESB is a key enabler for a SOA as it provides the capability to route and transport service requests from the service requester to the correct service provider. The true value of the ESB concept, however, is to enable the infrastructure for SOA in a way that reflects the needs of today’s enterprise: to provide suitable service levels and manageability, and to operate and integrate in a heterogeneous environment.

Furthermore the ESB needs to be centrally managed and administered and have the ability to be physically distributed.

Service Registry

The role of the Service Registry is to provide details of services that are available to perform business functions identified within a taxonomy. The Service Registry can be implemented as an open-standard UDDI registry. Catalogs, such as a UDDI registry, can achieve one of the primary goals of a Service Registry: to publish the availability of services and encourage their reuse across the development activity of an enterprise.

The vision of Web services defines an open-standard UDDI registry that enables the dynamic discovery and invocation of business services. However, although technologies mature toward that vision, more basic solutions are likely to be implemented in the near term.

This node is also known as a Business Service Directory.

ESB Gateway

An ESB Gateway at a minimum provides service address translation between the ESB and the external consumers/providers. In practice the ESB Gateway will often provide additional services such as security, message transformation and Partner data management.

Hub

This node supports the key ESB functions and, therefore, fulfills a large part of the ESB capabilities. The hub has a fundamental service integration role and should be able to support various styles of interaction. There are two interaction styles (that are covered in detail in Part 3) that the hub supports. Those styles are the Router and Broker interaction patterns. The Router interaction pattern is where a request is routed to a single provider. The Broker interaction pattern supports requests that are routed to multiple providers, including aggregation and disagregation of messages. The hub must contain rules for routing messages, and in the case of hubs that support the Broker interaction pattern, the rules must also describe how messages should be disaggregated/aggregated.
The following are the minimum set of functions that this node should support:

  • Routing
    This function removes the need for applications to know anything about the bus topology or its traversal. The interaction that a requester initiates is sent to one provider.
  • Addressing
    Addressing complements routing to provide location transparency and support service substitution. Service addresses are transparent to the service consumer and can be transformed by the hub. The hub obtains the service address from the namespace directory.
  • Messaging styles
    The hub should support at least one or more messaging styles. The most common are request/response, fire and forget, events, publish/subscribe, and synchronous and asynchronous messaging.
  • Transport protocols
    The hub should support at least one transport that is or can be made widely available, such as HTTP/S. The hub can provide protocol transformation. If a protocol transformation is required that is not supported by the hub, then a specific connector can be used to perform the transformation.
  • Service interface definition
    Services should have a formal definition, ideally in an industry-standard format, such as WSDL.
  • Service messaging model
    The hub should support at least one model such as SOAP, XML, or a proprietary EAI model.

In addition to these capabilities, the hub can support more advanced capabilities, such as:

  • Integration
    Additional integration services that can be provided include service mapping and data enrichment.
  • Quality of service
    These services can include transaction management (for example, ACID properties, compensation, or WS-Transaction), various assured delivery paradigms (such as WS-ReliableMessaging), or support for Enterprise Application Integration middleware.
  • Message processing
    The hub can support more advanced message processing capabilities such as encoded logic, content-based logic, message and data transformations, message/service aggregation and correlation, validation, intermediaries, object identity mapping, service/message aggregation, and store and forward.
  • Modelling
    The hub can support more advanced modelling capabilities such as object modeling, common business object models, data format libraries, public versus private models for business-to-business integration, and development and deployment tooling.
  • Service level
    Service level indicators might need to be measured, particularly in an enterprise mission critical environment. The key indicators are availability and performance, which includes response time, throughput, and capacity.
  • Infrastructure intelligence
    More advanced infrastructure capabilities can be provided. These include Business rules, Policy-driven behavior, particularly for service levels and Security and quality of service capabilities (WS-Policy).

Namespace Directory

This node provides routing information in order for the hub to perform routing of service interactions. This node could be implemented as a routing table in the more simple implementations of an ESB.

Administration & Security Services

Administration

An ESB should be controlled by a single administration infrastructure. This node provides these administration services which, at a minimum, should support service addressing and naming.
The key services that need to be provided by this node are:

More advanced administration features that can be provided by this node include self-monitoring and self-management.

Security

In a mission critical environment and, depending on the confidentiality, integrity, and availability requirements of the applications, the hub should support security capabilities such as authentication, authorization, non-repudiation, confidentiality, and security standards, such as Kerberos and WS-Security.

Adapter Connector

Connectors provide the connectivity between source and target applications. A connector is always present to facilitate interaction between two sub-systems.
An adapter connector is concerned with enabling logical connectivity by bridging the gap between the context schema and protocols used by the Source application and Target application.
For further information about Adapter Connector please refer to IBM Redbook Patterns: Direct Connections for Intra- and Inter-enterprise

SOA

The original set of PI patterns is intended to satisfy a wide generic set of integration requirements, not just SOA. The SOA profile specialises these more general patterns for the SOA environment.