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.1 Service Identification Design Patterns > Service Encapsulation
Service Encapsulation

Service Encapsulation

How can solution logic be made available as an enterprise resource?

Problem

Solution logic designed for a single application environment is typically limited in its potential to interact with or be leveraged by other parts of an enterprise.

Solution

Solution logic can be encapsulated by a service so that it is positioned as an enterprise resource capable of functioning beyond the boundary for which it is initially delivered.

Application

Solution logic suitable for service encapsulation needs to be identified.

Impacts

Service-encapsulated solution logic is subject to additional design and governance considerations that can increase cost and effort of its delivery.

Principles

n/a

Architecture

Service

Table 7.2 – Profile summary for the Service Encapsulation pattern.

Figure 7.7 – A subset of the decomposed monolithic solution logic is identified as being suitable for service encapsulation (as represented by the highlighted blocks).

Problem

A collection of related solution logic units that represent a larger, decomposed body of solution logic can continue to exist within a siloed application boundary. In fact, many past distributed systems were built this way. The decision to partition the solution logic into smaller software programs was often motivated by the following considerations:

     increasing scalability by separating the parts of the system more subject to high volume and concurrency

     improving security by isolating specific parts of the system with special access and privacy requirements

     increasing reliability by distributing critical parts of a system across multiple physical servers

     achieving nominal reuse within the system boundary (or within a limited part of the enterprise)

Figure 7.8 – An enterprise comprised of distributed, yet still siloed solutions.

An enterprise comprised of siloed (or quasi-siloed) distributed solutions has historically encountered many design and governance challenges, such as:

     significant amounts of waste and redundancy

     inefficient application delivery

     bloated, oversized technical environments

     complex infrastructure and convoluted enterprise architecture

     complex and expensive integration

     ever-increasing IT operational costs

Details regarding these issues are documented in the Life Before Service-Orientation section of SOA: Principles of Service Design and also at SOAPrinciples.com.

Solution

Solution logic suitable for classification as an enterprise resource can be encapsulated by and exposed via a service. This essentially means that the logic itself may form the basis for a new service – or – the logic may be encapsulated by an existing service (most likely as a new capability).

Figure 7.9 – An enterprise wherein individual solutions use logic encapsulated as services and vice versa.

Application

The first required step is to identify and filter out solution logic that is actually suitable as an enterprise resource. Not all solution logic falls into this category. There will be bodies of logic that are tailored for individual distributed applications and for which other design approaches may be more appropriate.

Below are some guidelines:

     Does the logic contain functionality that is useful to parts of the enterprise outside of the immediate application boundary?

If it does, the logic has increased value potential that may warrant its classification as an enterprise resource. This type of logic generally forms the basis for an agnostic service, as per the Agnostic Context pattern.

     Does logic designed to leverage enterprise resources also have the potential to become an enterprise resource?

This form of logic emerges after evident agnostic logic is initially separated. It may be required for service-orientation to be applied to this type of logic so that it remains uniform with agnostic services – and – so that some or all of its functionality can also be positioned as an enterprise resource. This option is further explored in the Non-Agnostic Context pattern description.

     Does the implementation of the logic impose hard constraints that make it impractical or impossible to position the logic as an effective enterprise resource?

Regardless of whether the nature of the logic makes it suitable as an enterprise resource, there may be real world limitations that prevent it from being effectively encapsulated by a service.

For encapsulated solution logic to become an effective member of a service inventory it needs to be further shaped by other patterns and principles so that it is designed to support the strategic goals associated with service-oriented computing.

A solid knowledge of the service-orientation design paradigm is often necessary in order to best determine when a solution is and is not suitable for service encapsulation. As a rule of thumb, if service-orientation design principles cannot be applied to a meaningful extent, the logic will not likely warrant service encapsulation.

As previously stated, how this logic is determined is based on the methodology being used and the maturity of the existing service inventory. Logic identified as being suitable for service encapsulation may be assigned to an existing service or it may form the basis of a new service.

Impacts

Because the application of this pattern results in the identification and filtering of logic (in preparation for other patterns), there is no immediate impact.

Relationships

Logic deemed suitable for service encapsulation is subsequently grouped into single or multi-purpose services, as per the Non-Agnostic Context and Agnostic Context patterns.

Figure 7.10 – The Service Encapsulation pattern determines what logic will eventually comprise services. 

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.