Book Review: Oracle SOA Suite Developer's Guide
By Olaf Heimburger on Aug 31, 2009
Things can get strange over time. While waiting for the release of the Oracle Fusion Middleware 11g, the OTN Forums never stopped asking for ways to learn Oracle SOA Suite. Although the product documentation is huge and could occupy many MBs of your hard disk drive, it still is a difficult read and it never tells you how to start with the SOA Suite.
The Oracle SOA Suite Developer's Guide was written by Matt Wright and Antony Reynolds, two SOA Suite practitioners from the first release of the Oracle SOA Suite.
How to start a book on SOA Suite?
Although SOA promises to make things much easier, any implementation of SOA will be a complex beast of technologies. The Oracle SOA Suite is no exception from the rule. For the uninitiated this complexity makes it very difficult to find the right entry point to SOA and the SOA Suite product.
The first brilliant step was the decision of the authors, not to publish the installation of SOA Suite but keep it online. This way it could be adjusted to the latest release if needed. Brilliant, because it saves us from reading a useless chapter while the product and the installation get better.
Part 1: Getting Started
The first part helps you to get started with the SOA Suite. It sets the scene and explains which components have been chosen and which have been omitted and why. This part consists of eight chapters and shows how to write the first service, how to service-enable existing applications, loosely coupling of services, using BPEL to build composite services, implementing business rules apart from the parts of the complete service, incorporating human services, and, finally, building a dashboard using BAM.
Throughout this part, you will be introduced to the best parts of the SOA Suite and how to combine them. You get an understanding how they work together and why you should use them for the task. Another good decision was to use Oracle Service Bus instead of Oracle Enterprise Service Bus, as both will sooner or later diverge into a single implementation. On the other hand this decision makes the design time more complex, as OSB and BPEL use different tooling to accomplish the task.
Part 2: Developing a Sample Application
The major part of the book is written around an on-line auction application. Equipped with the knowledge of the components introduced in Part 1, the authors guide you through the concepts that make the distinction between a good and a bad implementation. These concepts include Service Contracts, Business Services, Validation, Error handling, Message Interaction and Workflow Patterns, and the Importance of Bindings.
In this part I really like the Designing the Service Contract chapter. It not only propagates the "Contract First" Principle but also goes very deep into XML Schema Definition creation and usage details. And it serves as a good example how the authors provide a plethora of tips and tricks throughout the book. This one is full of tips and tricks for a good design and how to avoid most of the traps and pitfalls in designing a good service contract. (I really missed the maxOccurs="999" bug, though)
Part 3: Deployment
The last part consists of three chapters for Packaging and Deployment, Testing Composite Applications, and Security and Management Policies. Although the Packaging and Deployment chapter seems to be of most interest for the SOA Suite community, I would have put the Testing chapter before it. Testing as early as possible saves time and money. The Security and Management Policies chapter concentrates on Oracle Web Service Manager (OWSM), a good piece of software that feels a bit strange in the whole SOA Suite as it is neither SOA nor Security. Anyway, it makes good sense as this technology is much more integrated into the OFM 11g stack and combines the ease of implementation of the 10.1.3 web service security interceptors as well as the centralized management of policies.
Part 4: The Missing Chapter
The Oracle SOA Suite Developer's Guide is full of useful and good hints and practices. But I miss the consistent concept of making the reader aware of them. Sometimes these are highlight by the electric bulb icon and sometimes these are just within the normal sections of the normal text. You read, understand and memorize them but you might not find them again easily. You have to rely on your own dog ears, notes or other kinds of markings. This is cumbersome, and an overview or an index for finding them quickly would be great.
What you don't get
Although this book is a treasure of tips and tricks and common wisdom, it does not tell you all the nifty details of all the standards used within the SOA Suite. If you are interested to learn more about them, you need other sources.
If you need to learn how to develop applications for the Oracle SOA Suite, I highly recommend this book. If you are a seasoned SOA Suite practitioner you should take a look at it and find out which of the best practices you still don't know.
Title Oracle SOA Suite Developer's Guide
Authors Antony Reynolds, Matt Wright
Paperback 652 pages
ISBN 13 978-1-847193-55-1