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.1 Inventory Context Design Patterns > Vendor-Agnostic Context

Vendor-Agnostic Context

How can a technology architecture be designed to avoid inhibiting dependencies on proprietary vendor platforms?

Problem

An architectural model based on a single vendor platform can constrain an enterprise to the confines of that platform, resulting in constant limitations that may inhibit business requirements fulfillment.

Solution

The model behind the technology architecture is designed independently from but still in alignment with primary vendor platforms.

Application

Vendor-agnostic patterns and principles are applied to the design of the services, the service inventory, and its surrounding architecture.

Impacts

Establishing a vendor-agnostic model increases design and governance effort while reducing the availability of proprietary features.

Principles

Service Abstraction, Service Reusability, Service Composability, Service Loose Coupling

Architecture

Inventory, Enterprise

Table 5.2 – Profile summary for the Vendor-Agnostic Context pattern.

Problem

Designing a service-oriented technology architecture around one particular vendor platform can lead to an implementation that inadvertently inherits proprietary characteristics. This can end up inhibiting the future evolution of an inventory architecture in response to technology innovations that become available from other vendors.

An inhibitive technology architecture is unable to evolve and expand in response to changing automation requirements. This can result in the architecture having a limited lifespan after which it needs to be replaced to remain effective (Figure 5.x).

Figure 5.7 – Vendor-centric technology architectures are often bound to corresponding vendor platform roadmaps. This can reduce opportunities to leverage technology innovations provided by other vendor platforms and can result in the need to eventually replace the architecture entirely with a new vendor implementation (which starts the cycle over again).

Solution

It is in the best interest of an organization to base the design of a service-oriented inventory architecture on a model that is in alignment with the primary SOA vendor platforms, yet agnostic to all of them.

A vendor-agnostic architectural model can be derived from a vendor-agnostic design paradigm used to build the solution logic the architecture will be responsible for supporting. The service-orientation paradigm provides such an approach, in that it is derived from and applicable to real world technology platforms while remaining neutral to all of them.

Figure 5.8 – If the architectural model is designed to be and remain agnostic to vendor platforms, it maintains the freedom to diversify its implementation by leveraging multiple vendor technology innovations. This increases the longevity of the architecture as it is allowed to augment and evolve in response to changing requirements.

Note: Just because an architecture is classified as vendor-agnostic doesnÕt mean it is also aligned with vendor technology. Some models produced by independent efforts are out of synch with the manner in which mainstream SOA technology exists today and is expected to evolve in the future and can therefore be just as inhibitive as vendor-specific models.

Application

It is ideal to set a fundamental vendor-agnostic context for the overall architecture as early in the delivery lifecycle as possible, prior even to initial planning efforts (Figure 5.x). However, even for projects that are already underway, this pattern can be carried out in an effort to validate the strategic direction of the project and perhaps to form the basis for a realignment.

The key step to applying this pattern is the adoption of a design paradigm that is consistently used to shape predictable design characteristics across all solution logic deemed Òservice-oriented.Ó This ultimately dictates the requirements of the supporting technology architecture.

It is furthermore beneficial to avoid the use of proprietary vendor technologies that require services to form negative dependencies. Instead, vendor-agnostic service technologies are ideally utilized wherever feasible. For example, this can be achieved by combining this pattern with the Canonical Protocol pattern, as explained in the Web Services Architecture compound pattern in Chapter 9.

Figure 5.9 – The design of the service-oriented architecture is constantly kept agnostic to but still in alignment with vendor platforms.

Impacts

To establish and keep an architectural model constantly positioned as agnostic yet also in synch with vendor platforms requires that it initially be custom designed for an organization, and then periodically reviewed and revised to stay current with the direction of the overall industry. This translates into increased up-front analysis and design effort as well as additional, long-term governance responsibilities.

Furthermore, to actually leverage and incorporate multiple vendor technologies into a single architecture introduces increased maintenance cost and effort as it can result in the need for new skill-sets and a less consistent infrastructure.

Also, even though multiple vendor technologies may be available, maintaining a truly Vendor-Agnostic Context may limit the use of several products or technology features that are proprietary to the vendor. As a result, it may not be possible to apply this pattern to its full extent in all cases.

Relationships

The Vendor-Agnostic Context pattern is another fundamental element required to position a service-oriented architecture as a truly agile model, capable of evolving with the business in support of the Business-Driven Context pattern. It accomplishes this by establishing a non-proprietary context for service inventories, which must often be realized through the use of internal design standards. The one design pattern that can undermine the goals of this pattern is Service Agent, which advocates using event-driven programs that can be proprietary in nature.

It also relies on the application of the Decoupled Contract and Contract Centralization patterns that are key to ensuring that no implementation-specific characteristics make their way into the design of service consumers. By avoiding negative implementation coupling, the underlying service implementations can be evolved over time (as per the Service Refactoring pattern) without compromising the consumer programs that have formed dependencies on them (Figure 5.x).

Figure 5.10 – The Vendor-Agnostic Context pattern establishes an overarching, non-proprietary context that affects the entire service inventory.

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.