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 > Cross-Domain Utility Layer
Cross-Domain Utility Layer

Cross-Domain Utility Layer

How can redundant utility logic be avoided across domain service inventories?

Problem

While domain service inventories may be required for independent business governance, they can impose unnecessary redundancy within utility service layers.

Solution

A common utility service layer can be established, spanning two or more domain service inventories.

Application

A common set of utility services needs to be defined and standardized in coordination with multiple project teams and inventory owners.

Impacts

Increased effort is required to coordinate and govern a cross-inventory utility service layer.

Principles

Service Reusability, Service Composability

Architecture

Enterprise, Inventory

Table 6.5 – Profile summary for the Cross-Domain Utility Layer pattern.

Problem

The primary reason for enterprises to proceed with multiple domain service inventories is to allow for the governance of individual inventories by separate groups that represent the respective domains. More often than not, these inventories are associated with organizational business domains and the governance issues pertain to the design and evolution of business service layers. The rationale is to tolerate the use of different standards and increased redundancy across business service layers within domains for the benefit of feasible inventory implementation and governance processes.

However, the utility layers within these domains have no ties to business models and often the corresponding utility services encapsulate enterprise resources that are common to all domains. As a result, some utility logic created for one domain will tend to be functionally similar (or even identical) to others. The resulting redundancy and design disparity within multiple utility service layers is therefore wasteful and unnecessary.

Figure 6.23 – By having to duplicate functionality across domain service inventories, more utility logic and services are created than actually required.

Solution

A common utility service layer is created for use by multiple domain service inventories, establishing a centralized collection of utility services that accessible to and reusable by services across domains (Figure 6.x).

Figure 6.24 – A cross-domain utility service layer establishes a set of common services that address broad, cross-cutting concerns. Notice how a smaller quantity of utility service logic is required (compared to Figure 6.x) due to reduced redundancy.

Application

It is recommended that in addition to design standards that require domains to use utility services, standard processes also exist within domains to allow for the identification of cross-domain utility service candidates. This service layer is very much a part of the enterprise architecture, and should therefore be established prior to domain service inventory definition.

Note that a cross-domain utility service layer does not need to replace a domain inventoryÕs utility layer in its entirety. Domain-specific utility services can be defined as required and are then further complemented by cross-domain utility services (Figure 6.x).

Figure 6.25 – An enterprise architecture comprised of three inventories that share a cross-domain utility service layer but also allow for domain-specific utility services to be created.

Impacts

One of the reasons to create domain service inventories is to allow for each domain to evolve independently, which is a more manageable approach for some larger organizations.

Requiring that all inventories use the same common set of utility services reduces this independence somewhat. It furthermore complicates the overall governance processes that need to be in place; instead of domain-specific groups that own and maintain domain services, there now needs to be an enterprise governance group that owns the cross-domain utility service layer and ensures that these services are properly utilized within each domain.

Note also that if service inventory domains are based on geographical boundaries, or if domains consist of vastly disparate technical environments, the governance logistics can make applying this pattern can prove difficult.

Relationships

The Cross-Domain Utility Layer pattern changes the complexion of a service-oriented enterprise by impacting multiple domain inventory architectures, and therefore has naturally close relationships with the Domain Inventory and Utility Abstraction patterns.

When applying this pattern, the basic service design pattern language and its associated patterns (as shown on the bottom of Figure 6.x), can now be realized with agnostic utility logic beyond the boundary of a single inventory.

Figure 6.26 – The Cross-Domain Utility Layer pattern increases the reach of shared utility services in support of increased recomposition of utility capabilities.

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.