It seems as if the "next big thing" in information technology and software development revolves around the theme of Service-Oriented Architecture, or SOA for short. If you've barely scratched the surface of the subject, it's tempting to think that SOA is just Web services. Even Notes/Domino 7 has hopped on that bandwagon with new design elements to support Web services. However, in reality, SOA is far, far more. If you want (or need) to understand the subject well, I'd recommend Service-Oriented Architecture - Concepts, Technology, and Design by Thomas Erl. The 792-page book may look intimidating, but don't let the size scare you off...
Erl's book is broken up into five parts that help you get your mind around what can be a large and complex subject. Part 1 concentrates on the higher-level fundamentals, such as what SOA is (and isn't), the history of SOA, and how we currently use SOA with the Web services framework. Then, Part 2 gets into the newer standards for Web services, commonly referred to as the WS-* extensions. These standards are still evolving and morphing, but you'll understand where the industry is headed. Parts 3 and 4 delve into the concept of services and describe how to design your system to best leverage that architecture. Without this knowledge, you might end up with various Web services that really don't constitute a true SOA system. In Part 5, you get into the actual XML file layouts of each SOA component, so that you can understand the internals and how all the components work together.
I most appreciated the book's focus on explaining things using case studies and analogies. The case studies run through the entire book, so you can see how a company might evolve their strategy over time. Especially helpful are the analogies ("In Plain English"), in that they point out how a service-oriented structure exists in many of the things we do in everyday life. We just don't think of them that way. You'll learn how the author's car washing enterprise parallels an SOA design, and this comparison does wonders for making it all come together.
One thing the book does not do is get into platform-specific implementation details. Towards the end of the book, there is coverage on .Net and J2EE implementations of SOA, but not at a level that would allow you to sit down and start coding. By staying away from the specifics, Erl is able to concentrate on the concepts that apply regardless of whether you're in the Windows or Java camp.
While it might be tempting to go grab a "Web Services for Dummies" book and start coding, you really do need to understand the background in order to build comprehensive solutions that add value to your organization. An investment in a book like this will put you on the track to being able to deliver those solutions.
And that's really our job -- delivering value...
What did you think of this review?
Fun to Read
About the reviewer
Thomas Duff (duffbert)
Thomas Duff, aka "Duffbert", is a long-time member of the Lotus community. He's primarily focused on the development side of the Notes/Domino environment, currently working for a large insurance … more
Consider the Source
Use Trust Points to see how much you can rely on this review.
This is a comprehensive tutorial that teaches fundamental and advanced SOA design principles, supplemented with detailed case studies and technologies used to implement SOAs in the real world. ***We'll have cover endorsements from Tom Glover, who leads IBM's Web Services Standards initiatives; Dave Keogh, Program Manager for Visual Studio Enterprise Tools at Microsoft, and Sameer Tyagi, Senior Staff Engineer, Sun Microsystems. All major software manufacturers and vendors are promoting support for SOA. As a result, every major development platform now officially supports the creation of service-oriented solutions. Parts I, II, and III cover basic and advanced SOA concepts and theory that prepare you for Parts IV and V, which provide a series of step-by-step "how to" instructions for building an SOA. Part V further contains coverage of WS-* technologies and SOA platform support provided by J2EE and .NET.