• No se han encontrado resultados

4. Titanio l´ıquido

4.3. Propiedades estructurales

In order to implement an SOA, both applications and infrastructure must support the SOA principles. Enabling applications involves the creation of service interfaces to existing or new functions, either directly or through the use of adapters. Enabling the infrastructure at the most basic level involves the provision of capability to route and transport service requests to the correct service provider. The role of the Enterprise Service Bus is, in part, simply to enable the infrastructure in this way.

The true value of the Enterprise Service Bus 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. The implications of these requirements go beyond basic routing and transport capability, and they are described in The Enterprise Service Bus Capability Model in 4.3, “A capability model for the Enterprise Service Bus” on page 82.

The ESB should enable the substitution of one service implementation by another with no effect to the clients of that service. This requires both the service interfaces that are specified by SOA and that the ESB allows client code to invoke services in a manner that is independent of the service location and communication protocol that is involved.

The ESB supports multiple integration paradigms

In order to fully support the variety of interaction patterns that are required in a comprehensive SOA (for example, request / response, publish / subscribe, events), the Enterprise Service Bus must support in one infrastructure the three major styles of Enterprise Integration:

򐂰

Service-oriented architectures in which applications communicate through

reusable services with well-defined, explicit interfaces. Service-oriented interactions leverage underlying messaging and event communication models.

򐂰

Message-driven architectures in which applications send messages through

the ESB to receiving applications.

򐂰

Event-driven architectures in which applications generate and consume

messages independently of one another.

The ESB does this while providing additional capabilities to mediate or transform service messages and interactions, enabling a wide variety of behaviors and supporting the various models of coupling interaction that are described in 3.2.1, “Coupling and decoupling of aspects of service interactions” on page 39. These

Chapter 4. Enterprise Service Bus and SOA patterns 77 capabilities are discussed in more detail in 4.3, “A capability model for the Enterprise Service Bus” on page 82.

Figure 4-2 shows a high-level view of the Enterprise Service Bus.

Figure 4-2 The Enterprise Service Bus

The ESB centralizes control and distributes processing

The ESB is sometimes described as a distributed infrastructure and is contrasted with solutions (such as broker technologies) that are commonly described as

hub-and-spoke. Figure 4-3 illustrates this common depiction of the ESB.

However, this view of the ESB is not very helpful in describing how the ESB is physically implemented. For example, what infrastructure components implement the ESB, which is depicted as a line in this diagram?

Figure 4-3 The Enterprise Service Bus as a physical infrastructure

In contrast, hub-and-spoke integration solutions (Figure 4-4) seek to centralize control of configuration: routing information, service naming, and so forth.

Bus: ESB Service

Requester RequesterService RequesterService

Service

Figure 4-4 Hub-and-spoke integration

In the Patterns for e-business Process Integration patterns an ESB is classified as a type of bus, which in turn is classified as a type of hub, as shown in Figure 4-5 and Figure 4-6 on page 79.

Figure 4-5 Hub variation: Bus Service Requester Service Requester Service Requester Hub: ESB Service Provider Service Provider Service Provider

This variant will normally be used with federated adapters to connect the clients to the protocols and message formats in use on the Bus

Bus Hub

A Hub may be physically distributed as a set of federated hubs – this variant is described as a Bus

Hub

Hub Hub

A

Chapter 4. Enterprise Service Bus and SOA patterns 79 Figure 4-6 Hub, Bus, and ESB relationship

The distinction between distributed bus and centralized hub-and-spoke solutions is really a false one. Two different issues are being addressed here: the

centralization of control and the distribution of infrastructure. In initial or

small-scale implementations of integration solutions, the physical infrastructure is likely to be centralized: concentrated on a single cluster, or hub, of servers. However, as the implementation evolves, the infrastructure may become more physically distributed, as a bus, while retaining at least logically the central control over configuration. Figure 4-7 shows the resulting implementation of an ESB. (The Configuration and Control Services node is shown dotted to illustrate that it is a logical construct.)

Figure 4-7 The ESB as a distributed infrastructure with centralized control

§ Hub – provides a logically centralized integration service (for example Network, Integration Server, Process Manager, Database)

§

Bus – a Hub which supports a

distributed or federated

implementation

§

ESB – a Bus which (amongst other things)

supports a virtual namespace manageable

as a single image

Hub

Bus

ESB

Bus: Enterprise Service Bus

Configuration and Control Services

Hub:

Runtime Node Runtime NodeHub: Runtime NodeHub: Runtime NodeHub:

Configuration Service Requester Service Requester Service Requester Service Provider Service Provider Service Provider

Of course, this wide distribution of broker technology in a bus pattern is

dependent on the capabilities of specific technologies to support such distribution patterns. Equally important from the perspective of incremental implementation and deployment of ESB technology is the ability to extend existing deployments by adding further distributed processing capacity without affecting the existing infrastructure.

The role of the ESB and other SOA components

The ESB is not the only infrastructure component in a SOA. Although individual scenarios vary, there are other commonly occurring components whose role we should position relative to the ESB:

򐂰 The Business Service Directory, which provides a taxonomy and details of available services to systems that participate in an SOA.

򐂰 The Business Service Choreography, which is used to orchestrate sequences of service interactions into short or long-lived business processes.

򐂰 The ESB Gateway, which is used to provide a controlled point of external access to services where the ESB does not provide this natively. Larger organizations are likely to keep the ESB Gateway as a separate component. An ESB Gateway can also be used to federate ESBs within an enterprise. Figure 4-8 on page 81 illustrates these components interacting with the ESB in an SOA.

Chapter 4. Enterprise Service Bus and SOA patterns 81 Figure 4-8 The role of the Enterprise Service Bus in a service-oriented architecture

Business Service Directory

In order to perform routing of service interactions, the ESB obviously requires at least basic routing information, which might be provided by an ESB Namespace Directory, or by more simple means such as a routing table. However, this routing information is not necessarily the same as the business service directory SOA component; the role of the business service directory is to provide details of services that are available to perform business functions that are identified within a taxonomy. The business service directory might be an open-standard UDDI directory, or more basic forms might be implemented as a design-time service catalogue, perhaps using collaboration technology. Such catalogues can achieve one of the primary goals of a business service directory: 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 directory 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.

Infrastructure components for service-oriented architecture Internal Service Providers ESB Gateway Business Service Choreography Business Service Directory ESB Namespace Directory

Enterprise Service Bus

Routing, transformation, mediations, security, and so forth

External Service Providers Internal Service Requesters External Service Requesters

Business Service Choreography

The role of the Business Service Choreography and its relationship to the granularity or type of services that comprise an SOA was described in 3.2.3, “Service granularity and choreography” on page 47. The role of the

choreographer is usually to define and execute business processes, whose configuration and flows are determined by business logic. Such behavior does not usually have a place in an infrastructure component such as the Enterprise Service Bus.

However, the ESB is responsible for infrastructure functions that involve service sequencing, aggregations and mediations (such as splitting and recombining messages), or invoking technical infrastructure services around invocations of business services. The dividing line between business and technical logic controlling such sequencing and mediations is an indistinct one, so in some cases logic that could be considered as business logic to some extent may in fact be implemented in the ESB. Additionally, many of the capabilities that are required to sequence technical functions and mediations in the ESB are similar to those that are required to choreograph services in the Business Service Choreography, so it might be that in some cases the same technology is used to implement both.

ESB Gateway

An ESB Gateway makes the services of one organization available to others, and vice versa, in a controlled and secure manner. Although this might require capabilities such as business partner provisioning and management, which are distinct from ESB capabilities, the intent of this component is different from the intent of the ESB, which is to provide a service infrastructure within an

organization. For both these reasons, the ESB Gateway is likely to be integrated to, but not part of, the Enterprise Service Bus. An ESB Gateway can also be used to federate ESBs within an enterprise.

Documento similar