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

Home > Chapter 5 Overview > 5.4 Inventory Standardization Design Patterns > Canonical Interface Expression

Canonical Interface Expression

How can service contracts be consistently understood and interpreted?

Problem

Service contracts may express similar capabilities in different ways, leading to inconsistency and risking misinterpretation.

Solution

Service contracts are standardized using naming conventions.

Application

Naming conventions are applied to service contracts as part of formal analysis and design processes.

Impacts

The use of global naming conventions introduce enterprise-wide standards that need to be consistently used and enforced.

Principles

Standardized Service Contract, Service Discoverability

Architecture

Inventory, Service

Table 5.12 – Profile summary for the Data Expression Standardization pattern.

Problem

Each service offers a set of capabilities that are made available via a publicly available service contract. Service contracts delivered or extended by different projects and at different times are naturally shaped by the architects and developers that worked with them. The manner in which the service context and the serviceÕs individual capabilities are defined and expressed through the contract syntax can therefore vary. Some may use descriptive and verbose conventions, while others may use terse and technical formats. Furthermore, the actual terms used to express common or similar capabilities may range across services.

Because services are positioned as enterprise resources, it is fully expected that other project teams will need to discover and interpret the contract in order to be understand how the service can be used. Inconsistencies in how technical service contracts are expressed undermine these efforts by introducing a constant risk of misinterpretation (on a technical level). The proliferation of these inconsistencies furthermore places a convoluted face on a service inventory, increasing the effort to effectively navigate various contracts to study possible composition design options.

Solution

Standardized naming conventions can be applied to the delivery of all service contracts so as to ensure the consistent expression of service contexts and capabilities.

Figure 5.49 – The expression of service contracts is aligned across services.

The relevancy of this design pattern may at first appear trivial. However, when building a collection of services, especially within larger enterprise environments, a consistent functional expression significantly reduces tangible risk factors.

Figure 5.50 – With Web services, this pattern affects the design of service WSDL definitions.

Application

A set of naming and functional expression conventions needs to be established as formal design standards. The realization of consistent contract design is then attained via the disciplined use of these conventions within common analysis and design processes.

An example of a standard associated with expression standardization is the CRUD (create, read, update, delete) convention traditionally used to outfit components with a predictable set of methods. Entity services in particular often require these types of data processing functions and using standardized verbs to express them supports the application of this pattern.

Note: This pattern can be applied regardless of whether the service contract is decoupled.

Impacts

The relevance of this design pattern may at first appear trivial. However, when building a collection of services, especially within larger enterprise environments, a consistent functional expression significantly reduces tangible risk factors.

The primary requirement to successfully applying this pattern is the incorporation and enforcement of the required design standards. If a formal design process has already been established in support of the Decoupled Contract and Canonical Data Model patterns, then the effort to include a step dedicated to Canonical Interface Expression is usually minor.

Note also that unlike the Canonical Data Model pattern, which often must be limited to domain service inventories due to the governance impact, this pattern can more easily be positioned as an enterprise-wide standard. This benefits the enterprise as a whole as consistent expression is established across all domains.

Relationships

The naming conventions introduced by Canonical Interface Expression influence how several other patterns are applied (as listed at the top of Figure 5.x). This pattern fundamentally supports the goals of Contract Centralization and Capability Recomposition by enhancing the usability and intuitiveness of service endpoint layers.

Figure 5.51 – The Canonical Interface Expression pattern keeps the express of service contracts consistent, thereby affect several contract (and context) related 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.