Return to Home Page

Introduction
    Overview
    Service Inventory Blueprints
    Service-Oriented Analysis
    Service-Oriented Design

Service Models
    Service Layers
    Entity Services
    Task Services
    Utility Services

Delivery Processes
    Top Down vs. Bottom Up
    The Inventory Analysis
Cycle (Part I)
    The Inventory Analysis
Cycle (Part II)
    The Inventory Analysis
Cycle (Part III)
    Choosing a Delivery Strategy

The Service-Oriented
Analysis Process
    Process Overview
    Information Gathering Steps
    Service Modeling Process (Part I)
    Service Modeling Process (Part II)

Service-Oriented
Design Processes
    Process Overview
    Design Processes and Service Models
    Design Processes and Service-Orientation

Additional Resources
    Web Sites
    Book Series
    Training
    Consulting


Service-Oriented Design Processes

Design Processes and Service Models

As shown in the previous figure, there is a suggested sequence in which services can be designed, based on their respective service models. Entity services have the most independence because they derive their functional context from predefined business entities. Prior service modeling efforts will have ideally established refined and balanced entity service candidates with appropriate levels of service and capability granularity.

Utility services are typically designed next. Even though they don’t have the benefit of pre-defined functional contexts and are therefore more difficult to create, they still can be delivered independently due to the fact that they typically encapsulate agnostic functionality.

A further benefit to designing and even delivering entity and utility services first is that they can be tested independently as generic, reusable resources. When task-centric services are delivered thereafter, they can immediately be designed to bind to the agnostic service contracts to finalize the required composition logic.

This sequence is only suggested and not required. There may be circumstances during which it makes more sense to change the order in which services are designed or to design and deliver a group of services simultaneously.

During service design, many specific considerations are taken into account, shaping a service contract in support of standards, principles, and practical constraints.

When building services as Web services, these processes essentially advocate defining the required XML schema complex types first to ensure consistency with other service contracts that may be using the same set of standardized schemas. An abstract WSDL definition is then built around the complex types and further adjusted and optimized by the application of service-orientation principles and design standards.

For agnostic services, these processes raise special considerations associated with the extension of planned service logic in support of increased reusability potential. Finally, other services required to carry out the defined Web service operations are also identified, as per previously modeled composition candidates.

Each service model has unique design requirements, which is why each deserves its own design process. Task-centric service design processes have less emphasis on exploring reusability and are more concentrated on the service’s role as parent controller. Design processes for orchestrated task services tend to be distinct in that they generally require the design of service-oriented business processes which, in the Web services world, usually involves the creation of WS-BPEL process definitions.

This page contains excerpts from:

SOA Principles of Service Design
by Thomas Erl

(ISBN: 0132344823, Prentice Hall/PearsonPTR, Hardcover,
240+ Full Color Illustrations, 573 pages)

Free Color Poster (see www.soaposters.com).
For more information about this book, visit
www.soabooks.com/psd/.
The Prentice Hall Service-Oriented Computing Series from Thomas Erl
Home    SOA Books    SOA Magazine    What is SOA?    SOA Principles    SOA Glossary    Legal Copyright © 2006-2007 SOA Systems Inc.