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 7: Basic Service Design Pattern Language

Home > Chapter 7 Overview > 7.2 Service Definition Design Patterns > Agnostic Context
Agnostic Context

Agnostic Context

How can multi-purpose service logic be positioned as an effective enterprise resource?

Problem

Multi-purpose logic grouped together with single purpose logic results in programs with little or no reuse potential that introduce waste and redundancy into an enterprise.

Solution

Isolate logic that is not specific to one purpose into separate services with distinct agnostic contexts.

Application

Agnostic service contexts are defined by carrying out service-oriented analysis and service modeling processes.

Impacts

This pattern positions reusable solution logic at an enterprise level, bringing with it increased design complexity and enterprise governance issues.

Principles

Service Reusability

Architecture

Service

Table 7.3 – Profile summary for the Agnostic Context pattern.

Problem

The solution logic required to solve a single concern will frequently include logic that is also suitable for solving other concerns. Grouping single and multi-purpose functionality together into one unit of logic will limit or even eliminate the potential for reuse.

Figure 7.12 – Decomposed units of solution logic will naturally be designed to solve concerns specific to a single, larger problem. Units A, C, and F represent logic that contains multi-purpose functionality trapped within a single-purpose (single concern) context. Single-purpose logic (also called non-agnostic logic) is represented by the striped pattern.

Solution

Solution logic that is agnostic to the larger problem is separated from logic that is specific to the larger problem. One or more services with distinct agnostic functional contexts are then identified within which the agnostic logic is located.

Figure 7.13 – The application of this pattern results in a subset of the solution logic being further decomposed and then distributed into services with specific agnostic contexts.

Application

Solution logic is further decomposed and reorganized as a result of carrying out formal analysis and modeling processes. Agnostic logic is defined and continually refined into a set of candidate service contexts. These contexts can be based on pre-defined agnostic service model classifications, such as those that establish the entity and utility service layers (explained in the Inventory Structure Patterns section of Chapter 5).

Impacts

The application of this design pattern essentially results in the creation of highly reusable services, which ties directly into several strategic SOA benefits, including an increased and repeatable return on investment.

Achieving these benefits tends to increase the overall quantity of services required to solve a given problem, which leads to additional design considerations and performance overhead associated with service compositions.

The governance effort of agnostic services is significantly more than if the corresponding solution logic were dedicated to a single application. Additionally, the governance of the overall architecture is also impacted as the quantity of agnostic services within an inventory grows.

Relationships

From a service design perspective, the Agnostic Context pattern is one of the most distinctive patterns associated with service-orientation. It therefore has several relationships with other patterns that apply specialized variations of Agnostic Context,  such as Entity Abstraction and Utility Abstraction. The closest relationship is between the Agnostic Context and Agnostic Capability patterns, as the latter is applied to services that have already been deemed agnostic.

The reference to inventory-related patterns at the bottom of Figure 7.x simply reminds us that within any given boundary, this pattern (as with all basic service design patterns) is applied repeatedly through iterative processes.

Figure 7.14 – The Agnostic Context pattern is core to service design and is responsible for forming the basis of several fundamental architectural design patterns.

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.