How can services, that are location and device independent, be exposed in a discoverable way to support performance and Continuity Of Operations (COOP) requirements?
Service capabilities need to be exposed in a location and device independent way so that they can be abstracted from the fact they are running in a cloud.
Virtualized Services allow business services to be provided through a level of Redirection.
A Redirection Capability is used for indirect calls to any resource.
The consumer does not invoke the service directly but through a virtual service accessed by Redirection. The logical locations of that service need to be provided through a Service Discovery Service that is available to the Redirection Service.
ArchitectureInventory, Service, Service Grid
A goal of an enterprise SOA is to allow applications to be made of composite services integrated across the enterprise including externally among business partners. This requires that the application architecture be decoupled from infrastructure components or to be "virtualized". It requires architectural constructs and assets to be leveraged to support virtualization.
The need to integrate composite services across the enterprise derives the requirement to provide dynamic services able to produce an enterprise adaptable to Disconnected, Intermittent and Limited (DIL) connectivity and varying performance and scaling requirements. As a byproduct of this goal, redundancy and resilience are introduced into an organization's infrastructure allowing its services to operate reliably in a cloud.
Virtualization can be composed of machine virtualization with a management layer that senses operating conditions (CPU, memory, network utilization and others) and adjusts placement of virtual machines on physical machines dynamically as needed or via the application layer which has services available in the cloud as in a SOA Redirection. Redirection is designed to be placed on whatever local node is providing services. Those services are accessed by way of Redirection either on the local node or the cloud with appropriate failover. If failures occur alternate resources are accessed by Redirection to support COOP. This configuration supports DIL connectivity and performance requirements since services can be spread out and supported by replication and update message so that as connectivity is available, the proper endpoints can be accessed to meet SLAs. Redirection is supported by Service Discovery which allows services to be registered in a global directory and discovered within the enterprise.
Redirection is a complex brokering function that typically consists of a Decision Service, Audit Service, External Service Status, Rules Store, User Interfaces and a Service Intermediary that interact like those described in Table 2, "Service Description for the Redirection Capability" and illustrated Figure 1, "Summary of Redirection Capability".
Table 1 - Service Description for the Redirection Capability
Figure 1 - Summary of Redirection Capability
Component services interact with the Redirection Capability through Service Contracts(s) that define the capability. Applications using Redirection typically support two variations of enterprise application availability: service availability and data availability. Service availability means the services deployed in an application server remain accessible and functional even if there is a process or system failure. If a particular instance fails, requests to this instance will be redirected to and serviced by a different instance. Data availability means that the application states specific to user sessions, such as login sessions, will survive a failure.
Implementation of the Redirection capability allows application component(s) to reside in a SOA Cloud and allows the service consumers to deal with a single end point. Redirection determines which requested service endpoint is up and able to provide the required Service Level. The services could be replicating state information so that any instance could take over processing in the middle of a transaction, if required.
Figure 2, Redirection in the Enterprise, shows how Redirection interacts in the enterprise. Redirection receives service policies and endpoints from the Service Discovery Capability that could also be located on the local node and receiving and trading updates with a Global Discovery Capability.
Figure 2 - Redirection in the Enterprise
Introducing Redirection technology into an enterprise will be an additional expense and cause disruption. The infrastructure requirements and added complexity will increase the size, complexity and overall costs of the IT environment. But there are big pay offs associated with the ability to have a fully redundant enterprise that is resilient and able to scale. At minimum, endpoints and contract information can be manually entered into the Redirection endpoint store. A full up implementation would have Redirection receiving endpoint and contract information from a federated Service Discovery Capability.
This pattern raises a number of architectural considerations that consequently establish relationships with a variety of patterns, especially those described in the solution section of this pattern. Service Discovery automates the enterprise as services come and go on line. Data Replication allows state and other back office data to flow and keep service instances synchronized. Figure 3, Redirection Relationships in the Enterprise, shows how Redirection relates to patterns and principles.
Figure 3 - Redirection Relationships in the Enterprise
Case Study Example
Budget Airlines needs a maximum uptime reservation system and has decided on an architecture that places the hardware and reservation system in a number of off-premises commercial clouds. Since it receives critical a portion of its business during the Thanksgiving Season, a reliability of five 9s is useless if it loses the hour down time over Thanksgiving.
Budget Airlines develops an architecture that uses a Redirection Service connected to a Discovery Service. Discovery allows the number of instances of the reservation to be varied based on projected loads and those instances are brought up and down in the clouds as needed. Redirection monitors latency and health of the reservation instances and directs traffic accordingly.