Return to Home Page

The public review of the manuscript for "SOA Design Patterns" has concluded !
Thank you to all that participated. 234 reviews were received and over 30 new patterns have been contributed,
increasing the size of this book by over 50%. The second draft of the manuscript is currently in development.

About the Public Review
    History
    Podcasts (audio)
    Notification
    Submit Feedback
    Contribute a Proven Pattern
    Contribute a Candidate Pattern
    Acknowledgements
    Press Release

Introduction to SOA Types & Design Patterns
    The Architecture of
Service-Orientation
    Understanding SOA
Design Patterns

SOA Design Patterns
    Basic Service Inventory Design Pattern Language
    Architectural Design Patterns
    Basic Service Design
Pattern Language
    Service Design Patterns
    Common Compound
Design Patterns

Additional Resources
    View Entire TOC
    Symbol Legend
    Master Pattern List
(by category)
    Candidate Design Patterns
    Design Patterns Publications
    Download SOA Principles Poster (PDF)

About the Book



SOA Design Patterns
by Thomas Erl

For more information visit: www.soapatterns.com

Related Publications


Read the article "Introducing SOA Design Patterns" from the
June 2008 SOA World Magazine (High-Res PDF).

PLEASE NOTE

The content on this page is from the first draft of the manuscript for the upcoming book "SOA Design Patterns" by Thomas Erl. This version of the manuscript was authored in September, 2007. Since then, the manuscript has undergone significant content and structural changes as a result of an industry-wide review in which hundreds of SOA practitioners participated in addition to SOA vendors and experts from the design patterns community.

You are welcome to use the information on this page for research purposes, but you should assume that most of it will change in the final release of the "SOA Design Patterns" book.

Note also, that as a result of an industry-wide call for participation from December 2007 to February 2008, over 30 new design patterns have been contributed to this book. As they become finalized and are incorporated by the author, concise descriptions will be published on this site, and full descriptions with examples will be made available in the final, printed book.

Due to the volume of new content and changes, the release of the "SOA Design Patterns" book has been postponed to October, 2008. To learn more about the book, visit www.soapatterns.com. To be notified of updates to this site, use the notification form.

Chapter 6: Architectural Design Patterns

Home > Chapter 6 Overview > Process Centralization
Process Centralization

Process Centralization

How can abstracted business process logic be centrally governed?

Problem

When business process logic is distributed across independent service implementations, it can be problematic to extend and evolve.

Solution

By leveraging orchestration technology, logic representing numerous business processes can be deployed and governed from a central location.

Application

Middleware platforms generally provide the necessary orchestration technologies to apply this pattern.

Impacts

Significant infrastructure and architectural changes are imposed when the required middleware is introduced.

Principles

Service Autonomy, Service Statelessness, Service Composability

Architecture

Inventory, Composition

Table 6.17 – Profile summary for the Process Centralization pattern.

Problem

Within environments containing larger service inventories, the requirement to concurrently to support the automation of multiple business processes is common. Business process logic that spans multiple business entities (process logic that cannot be represented by any one entity service) can be placed into individual task services.

While these services exist as peer members of a service inventory, the fact that they are independently implemented results in an enterpriseÕs business process logic being physically distributed across multiple locations. When changes come along, the ability to efficiently extend, streamline, or even combine business process logic is inhibited because the underlying service logic of each affected task service needs to be revisited, opened up, and changed, as required.

Furthermore, due to the nature of the underlying workflow logic, some business processes cannot be carried out in real-time. Instead, they may impose long-running service activities that can span minutes, hours, and even days. Independent task service implementations need to be equipped with state deferral extensions to facilitate these requirements. While this is technically feasible, it can become somewhat tedious to repeat these implementation extensions across numerous individual service environments, especially when the task services are highly distributed across different physical servers (and perhaps even across different vendor runtime platforms).

Figure 6.76 – Task services are commonly implemented as individual Web services. Because each program contains embedded business process logic, it results in a physically decentralized business process architecture.

Solution

Parent business process logic (representing some or all of the business processes within a given domain) is centralized into one location. An orchestration platform hosts and executes this logic while allowing for its on-going centralized maintenance.

Figure 6.77 – Task services can continue to be implemented as separate Web services, but as part of an orchestration platform their collective business process logic can be centrally governed. (This results in orchestrated task services.)

Note: The result of applying this pattern is still a collection of new task services. Only, because they are hosted and executed within a very specific (and an intentionally more stateful) environment, they can be further qualified as ÒorchestratedÓ (as per the orchestrated task service model).

Application

Orchestration platforms that emerged during the EAI era provide a fundamental medium for process logic centralization. When combined with support for open business process definition languages (such as WS-BPEL), these platforms become suitable for establishing a primary parent composition layer within SOA.

To realize this design pattern, a modern orchestration platform is required. Such a platform is typically comprised of the following:

     A graphical front-end tool allowing users to express and maintain business process logic.

     A back-end middleware runtime environment capable of hosting orchestrated task services and the corresponding collection of business process definitions created with the front-end tool.

     Features that comply with industry standards related to business process logic expression and execution, such as WS-BPEL.

In a nutshell, the composition logic for a specific business process is defined using the front-end tool and then encapsulated by a specific orchestrated task service. The back-end platform hosts the service in the same environment as others, allowing these services to carry out their composition logic with a range of supporting features, including state management, and various service agents.

Impacts

The overall impact of this design pattern depends on the extent to which service-related middleware already exists as part of the enterprise. If no middle tier exists, its introduction will affect the surrounding infrastructure and the complexion of the overall technology architecture as well as affected service inventories.

Furthermore, the front and back-end products required to support orchestration are rarely implemented in isolation. When creating an orchestration environment, the middleware platform is typically expanded to encompass a range of centralized service governance functions.

Introducing orchestration technology into an enterprise can be expensive and disruptive. The infrastructure requirements to host and run the necessary middleware can increase the size and overall operational costs of the IT environment as a whole. It is therefore best to decide whether an orchestration layer will be established as early in the technology architecture planning process as possible.

Note: This pattern can also be applied after a service inventory has already been established. As long as the Process Abstraction design pattern was used to define a layer of task services, the proper separation of agnostic and non-agnostic logic will exist to allow for the non-agnostic (process-specific) logic to be cleanly migrated.

Relationships

The centralized environment established via the application of this pattern affects a variety of architectural considerations. Because Process Centralization represents a core part of the Orchestration compound pattern (shown subsequently in Figure 5.x), Canonical Resources comes into play, especially when more than one orchestration engine is a possibility.

The use of an industry-standard business process definition language (such as WS-BPEL) fully supports the Vendor-Agnostic Context pattern, and process centralized environments naturally require state management extensions (as per State Repository and Partial State Deferral) due to the tendency of orchestrated task services to be more stateful.

Finally, this pattern is simply focused on the physical location of process logic and therefore equally supports both Capability Composition and Capability Recomposition patterns.

Figure 6.78 – The Process Centralization pattern establishes a physical process hub within an architecture, and therefore can affect the application of several other patterns.

Figure 6.79 – Process Centralization is most commonly associated with its role as part of the core patterns that represent the Orchestration compound pattern.

Case Study Example

Case study content is not available on this Web site.

Prev | Next
The Prentice Hall Service-Oriented Computing Series from Thomas Erl
Home    SOA Books    SOA Magazine    What is SOA?    SOA Principles    SOA Methodology    SOA Glossary Copyright © 2007-2008
SOA Systems Inc.