Many organizations' efforts to move to SOA have been mired by organizational issues, by conflicting vendor messages, and by architectures that may amount to little more than Just a Bunch of Web Services. While no two SOA implementations are alike, Thomas Erl author of SOA Design Patterns, as well as a team of industry contributors, have effectively identified the similarities in composition services need to have at a sub-atomic level in order to interact with each other as we hope they will. The book identifies 85 SOA design patterns which have been developed and thoroughly vetted to ensure that a service-oriented architecture does achieve the flexibility and loose coupling promised.
I mentioned in previous posts that I have had the opportunity to be a part of the launch of SOA Design Patterns. As part of the launch process, I have been conducting a series of podcasts with Thomas and some of his co-authors -- on the SOA patterns identified and published in the book. Here are but a few:
Why SOA Design Patterns? In the first podcast of the series, Thomas talks about the creation and purpose of SOA Design Patterns and the launch of the SOAPatterns.org community site that allows anyone to post new candidate patterns.
Governance patterns: In this podcast, Thomas and I talk about governance, one of the most important and least understood areas of SOA. Thomas explains how SOA design patterns can address governance problems.
Service inventories: Here, I talk to Thomas Erl about service inventories - collections of independently designed and governed services. Thomas discusses the popular Domain Inventory pattern commonly used when enterprise-wide SOA adoption is not possible.
Service contract design issues: Thomas explains some of the SOA design patterns that address service contract design issues that occur both during the initial service design stage as well as subsequent to deployment, including versioning.
Separation of concerns: Thomas delves into core service-orientation theory by exploring a pattern sequence that results a primitive service definition process that essentially establishes how service-orientation is carries out the separation of concerns.
Runtime data and data design patterns: In the sixth podcast of the series, Thomas discusses SOA design patterns that relate to the processing of runtime data and data design. Thomas highlights the Schema Centralization and Canonical Schema and Canonical Schema Bus patterns.
I am also wrapping up podcasts with co-contributors including Clemens Utschig (Oracle), Mark Little (Red Hat/JBoss), Thomas Rischbeck (IPT), and Herbjorn Wilhelmsen (Objectware).
In a series of related articles, Thomas Erl provides some more in-depth details on Service Facade, and Non-Agnostic Content, and Domain Inventory.
More information on these patterns, the book, and the SOA design patterns community is available from the SOApatterns.org site.