There is no shortage of books that cover SOA topics, but few of them go beyond background information, telling us what a service is and what technologies we can use to network them, but leaving us on our own to figure out how to identify or design a service. Fewer still go into the design of SOA solutions for the enterprise. I’m happy to report that this book is a welcome exception.
You’re probably familiar with several of the authors already. Lead author Mike Rosen is Editorial Director for SOAInstitute.org, and co-authors Boris Lublinksy and Kevin T. Smith have written articles and spoken at SOAInstitute.org events. For this book, they are also joined by Marc J. Balcer.
The book is organized in three parts.
Part I – Understanding SOA gives an overview of service-orientation.
Chapter 1 – Realizing the Promise of SOA describes the potential that SOA has to improve agility, flexibility, costs and time to market. It also describes the challenges that must be overcome to realize these benefits. Chapter 2 – SOA Architecture and Fundamentals describes the architecture of SOA from an enterprise perspective, tying SOA into six key enterprise areas: Business Strategy, Information and Semantics, Business Processes, Service Standards, Technology Infrastructure, and Operations. We think you’ll find this perspective of SOA quit different than what you typically see. Chapter 3 – Getting Started with SOA provides a practical approach to introducing SOA into an organization and gives an overview of the design methodology that is detailed throughout the rest of the book.
Part II – Designing SOA contains the meat of the book and really differentiates if from other SOA texts. Chapter 4– Starting with the Business describes a business architecture approach to answering the following questions: What business are you in? What are your business goals and strategies to achieve your desired market position? What products and services are needed to meet those goals? What capabilities and information are needed to provide those products and services? And finally, what services are necessary, now and over time, to provide those capabilities and information?
Chapter 5 – Service Context and Common Semantics discusses the importance of semantics in service interface design and goes into the techniques of defining a common semantic model and using it to define interface documents. Chapter 6 – Designing Service Interfaces starts with a detailed discussion of important service interface characteristics. It then presents design guidelines such as: interaction styles, isolation of responsibility, identifying granularity, interface documents, and exposing exceptions. Finally, all of these are illustrated with a detailed example. Chapter 7 – Designing Service Implementations provides a layered architecture for the design of individual services, describing the roles and responsibilities of the service interface, logic implementation, and resource access layers. Again, these topics are illustrated in detail with a continuation of the example from Chapter 6. Chapter 8 – Composing Services illustrates the issues and techniques of combining services together into composites.
Next, the book takes another departure from the norm. Chapter 9 – Using Services to Build Enterprise Solutions discusses the end-to-end application architectures that SOA fits into, describing the roles and responsibilities of the different types of services in an n-tier architecture. Then it describes other important aspects of enterprise solutions, including service location, versioning, security, exception handling, and management and monitoring. One of the major uses, and challenges of SOA is integrating existing applications, and the authors deal with this in Chapter 10 – Designing and Using Integration in SOA solutions. This informative chapter describes the overall issues of creating integration services, and then provides details on seven different approaches to address common scenarios. Finally, it provides additional tips and techniques for integration.
Still on the topic of enterprise solutions, Chapter 11 – SOA Security goes into depth on the complex topic of security in SOA solutions. The chapter goes over the array of different standards available and their uses. Then, the authors provide a set of blueprints for deciding and applying security to SOA, illustrated by a case study. To finish off the topic, a game plan for addressing security is laid out. Chapter 12 – SOA Governance defines the governance requirements across the entire service lifecycle. Detailed governance processes are described for each aspect, followed by some practical advice for introducing and implementing governance.
Part III – Case Studies provides an illustrative review of the book in the form of two detailed case studies. Chapter 13 – Case Study – Travel Insurance provides a thorough example of SOA solution design. Starting with the business architecture and models, it works down through the design process illustrating how to include the overall enterprise context into service identification, defining the information model of shared semantics, designing the service interfaces and documents, defining the interaction between services, and designing the implementation of a selected service. Since the author, was also one of the contributors to the SoaML Standard for design of services in UML, the example also illustrates the use of an early version of that standard. We’re told than an updated example, aligned with the final release version of SoaML, will be available on the book’s web site soon. Chapter 14 – Case Study – Service Based Integration in Insurance provides an example of six different integration services from an insurance application. It illustrates a variety of techniques for integrating with mainframes, Java, and .NET applications, and directly to data stores and other web services.
One more item of the book is worth particular note. Appendix B – Evaluating SOA Services provides a detailed checklist for determining the quality of a service. It covers 20 different characteristics, organized into three main categories: service alignment, design characteristics, and technical characteristics. The entire checklist is summarized by a table that describes each characteristic, and includes a list of questions to ask to evaluate it. This is followed by a detailed explanation of each and a reference to the appropriate section of the book where the characteristic is defined. A handy Excel version of the spreadsheet can be downloaded from the book’s website.
If you’re looking for a basic overview of SOA, this probably isn’t the book for you. But, if you want real insight into SOA from an architecture, design and enterprise perspective, you will be hard pressed to find better information. And, if you’re in the position of designing services, you definitely want this book. Given my association with the authors, perhaps my review is not completely unbiased. Take a look out our excerpt and decide for yourself.