Packt Publishing released "Do More with SOA Integration: Best of Packt", book that aggregates the knowledge of eight (!) SOA books into one 650 pages mashup.
Lets start my review with a little problem I had when reading this book: For me it was not easy to identify the audience this book a was written for. The book contains chapters that point towards beginners and others pointing towards experienced SOA experts. Other chapters are more hands-on oriented, indicating they are meant for developers. After reading the whole book, I think that the targeted audience is not to qualify though most chapters address IT architects and project leads who need to expose legacy IT infrastructures to external or who plan a new software project based on SOA.
The book touches on various aspects of SOA and in chapter 1 presents an explains a wikipedia of SOA acronyms and architecture patterns for readers foreign to SOA. If you are not yet SOA savvy then this chapter will prove itself helpful in understanding the rest of the book as these SOA acronyms are used throughout the remainder of the book.
Chapter 2 lists problem statements and solutions that describe what SOA is for and why it is good to adopt it into your IT landscape. "Types of integration" on page 82 had me slowing down in my reading pace as I found it an interesting topic. It introduces important concepts of SOA like service interfaces, brokering and communication. The chapter, as most parts of the book, is about awareness and operates on the theory of things, and less on technical implementation details.
Chapter 3 showed that a best of compilation is not always a smooth reading and started with the mentioning of the Trivadis Integration Architecture Blueprint, making me use Google to learn what this is all about. Turns out that this architecture is the documented combined SOA experience of the Switzerland based Trivadis AG. The blueprint is well introduced in this online article on the Packt Publishing website (Note that you need a user account to read the whole article). To quote from this article written by Guido Schmutz, Oracle ACE Directory for FMW and SOA, working for Trvadis AG:
"The Trivadis Integration Architecture Blueprint indicates how
integration architectures can be implemented in practice. It achieves
this by representing common integration approaches, such as Enterprise
Application Integration (EAI); Extract, Transform, and Load (ETL);
event-driven architecture (EDA); and others, in a clearly and simply
structured blueprint. It creates transparency in the confused world of
product developers and theoretical concepts.
The Trivadis Integration Architecture Blueprint shows how to
structure, describe, and understand existing application landscapes from
the perspective of integration. The process of developing new systems
is significantly simplified by dividing the integration architecture
into process, mediation, collection and distribution, and communication
layers. The blueprint makes it possible to implement application systems
correctly without losing sight of the bigger picture: a high
performance, flexible, scalable, and affordable enterprise architecture."
As a reader I wished this was explained that way in the book (better the same chapter) along with some words about the relevance and how it helps to do more with SOA integration.
Chapter 5 explains the use of BPEL for integrating services of different systems into a single process. Here, the focus is put on the process flow and less on how to work with BPEL. Example configurations are given for exposing services on TIBCO and webMethods, for exposing Siebel and SAP services for orchestration in BPEL. Briefly the talk is about security (basic authentication) and logging.
Chapter 6 looks at ERP integration between PeopleSoft and Oracle Applications. If you are in the situation in which you need to get the two systems working together, then this chapter is for you. It explains how to create an example BPEL process, how to configure the OA adapter as a partner link and how to transform messages between the two systems. A useful reference shared in this chapter is for the Oracle Applications integration cookbook whitepaper, which you find here. Chapter 6 in my opinion is what I was expecting to find in this book: a real use case for SOA that is explained well to help readers solve a current integration problem.
Chapter 7 is about Enterprise Service Bus (ESB) and actually is a quite good read. It teaches the reason why ESB is needed, as well as the individual components, like Normalized Message Router (NMR) it provides. The idea of abstracting different systems, which may be based on different technologies and protocols, and that in the past may not even be designed for communication to the outside world, spoke to me and made this chapter useful. The uses NetBeans Enterprise Pack 5.5 and 6.0 for its screen shots and examples. The current state of the NetBeans enterprise pack is that SOA components have been removed from native NetBeans and instead should be installed from the Open ESB website:
"The SOA module has been removed from the standard distribution for
NetBeans IDE 6.7. To use the SOA functionality with NetBeans IDE 6.7,
you need to install GlassFish ESB v2.1 from the OpenESB website." (src: http://soa.netbeans.org/#downloadsandstatus)
The last release of NetBeans that has SOA on board is NetBeans 6.5. I assume that this change was too late for the book to pick up, but at least it makes it appear dated.
Chapter 8 is about binding containers, which is an interesting read that explains NMR bindings to File, FTP, SMTP and JMS (though some of them needs to be downloaded from the Open ESB site to get them working in NetBeans 5.5 or 6.0). The concepts in this chapter are clearly defined and explained, which I liked. A practical example would have been a great addition.
Chapter 9 is about SOA and Web Service integration that aims for helping readers to get their SOA poject started without getting lost in the architecture's complexity. The chapter starts with pointing out that the vertical market thinking of the past often makes it difficult to integrate existing software solutions into a horizontal solution, where businesses need to access information from different business lines. For example, booking a trip to a foreign country often involves information from several airlines, hotels and rental car companies, accessed from a single front-end that hides the complexity that lies behind. It then introduces e-business patterns suggested by IBM. I didn't quite understand what IBM has to do with it and why there is no standard for it? The introduction of the IBM patterns is like the Trivadis architecture in chapter 3: It just falls into the book with no word of explanation regarding the why and the industry acceptance of it. However, the IBM patterns do a good job in outlining several architecture options to solve a specific integration problem. I liked that the patterns are not related to a specific technology and instead are expressed as blue prints. At its end, the chapter explains the creation of WSDL files and the WS-I profile to then conclude with creating "hello world" Web Services in Java and .Net. The example of "hello world" at the end is a bit odd, given that this chapter guides you to more more complex things before.
With "Service- and Process-Oriented Approach to Integration Using Web Service", chapter 10 has a similar headline then chapter 9 but is about the Enterprise Service Bus (ESB).
This chapter also makes me feel like Bill Murray in "Groundhog Day" from
1993: The problem statement that leads to SOA as a solution is getting introduced to me for the 10th time and I think that I'll have to live with it 4 more times until the end of chapter 14 will release me from this loop.
On the positive side, you can read chapters in the order you like and
don't miss out the relevance of SOA in today's IT. Chapter 10 nicely
spans back to the various connection infrastructure types introduced in chapter 1.The chapter explains the role of the ESB in comparison to a pure Web Service approach for integration and its benefits as a connection infrastructure. The chapter states that as of 2010, when the chapter's original book has been published, there is no common standard definition of ESB (which is a statement that also goes in line with what you find on Wikipedia for ESB) nut that ESB evolve "into a tanglible infrastructure for SOA". The chapter therefore lists criteria to look out for when adopting an ESB to avoid vendor lock-in, which I think is very useful information. ESB advantages listed in the chapter includes scalability, connection to heterogeneous systems, mediation, transformation and routing, as well as orchestration and event notification.Like chapter 9, chapter 10 is a very strong chapter and one you want to read several times as it has so much information and insight to share.
Chapter 11 "Loosely Coupling Services" surprisingly already got me out of the "groundhog day" loop and went straight to the subject. It starts off with the criteria defining coupling of a service, the dependencies a services has to its environment, other services and input data streams. The chapter then continues discussing the Oracle Service Bus and Enterprise Service Bus and service virtualization. The content of the chapter is taken from chapter 4 of the Oracle SOA Suite Developer Guide by Antony Reynolds and Matt Wright. I don't understand though why this chapter was taken from the March 2009 version of the book and not from the 11g R1 version printed in June 2010. This decision remains the secret of Carl Jones the series editor but spoils the whole chapter as I kept of wondering which information else I can find is no longer accurate.
Chapter 12 "Integrating BPEL with BPM using BPM Suite" is another hands-on oriented chapter. The software used in this chapter is Oracle SoA Suite 11g PS2, which is a contrast to the older version used in the previous chapter. The chapter introduces the Oracle BPM Suite and its architecture. Readers learn about JDeveloper as the modelling environment and Metadata Services (MDS), a common repository used by the web based Oracle Business Process Composer to save projects. The hands-on journey actually gets stuck first time at a broken link that should point to the BPM Studion 11g extension. Since the publication of the original book the chapter was taken from, Oracle obviously has remodeled its website. However, the link is no longer needed and you can install the software directly from JDeveloper choosing Help --> check for updates. Then you install the Oracle SOA Composite Editor in a first installment and then BPM Studion (just in this order). Just in case you are interested in BPM I highly recommend "Getting Started with Oracle BPM Suite 11gR1 (ISBN 978-1-849681-68-1) from Packt Publishing. The remainder of the chapter then steps you through building a BPM flow for a travel request and approval scenario that included human workflow.
Chapter 13 "SOA Integratio - Functional View, Implementation, and Architecture" and deals with legacy integration. This chapter actually gets me back to "Groundhog Day" by explaining what SOA is (though it doesn't want to be a primer) and I can see Bill Murray staring at its 6 am alarm listening to "I got you babe". However, though starting with some repetition of what has been said many times earlier in the book, the legacy to SOA chapter provides some good information and methodologies for modernizing existing IT infrastructures. From an Oracle technology perspective it also covers the "why should I use" question for individual Oracle products in the context of SOA, which also is a bit of a sales pitch. All in all, I liked this chapter and the information herein.
Chapter 14 is "SOA Integration - Scenarion in Detail" works through a legacy migration project. Its not hands-on driven, but outlines the roles involved as well as the things to consider when approaching such a project. It should go without explicit mentioning that this chapter also repeats some of what the book explained before. Still, a good read.
So What's my final verdict - "buy" or "no-buy"
As usually, it depends! Do More with SOA Integration: Best of Packt aggregates content written by people who know SOA. Personally I don't think that this is a book that I would bring to work if I was allowed to bring 3 books to a SOA project (Packt Publishing released other SOA books hat I probably would bring instead).
However, this book is not meant to be a programmer guide and for this reason does need to be brought to a job but should be read before planning the overall SOA infrastructure. By my experience in working with Oracle Application Development Framework (though a completely different topic), architecture decisions are too eagerly made driven by technology, which means that already in the planning stage architecture decisions are constraint or mislead by what is working best from an implementation point of view. Here this book really helps you to step back and focus on what you want and then how to achieve it.
My general expectation towards a book is that it enable me to do what I wasn't able to do before and that they provide information I did not know before, raising my awareness for good, best and recommended practices. From this perspective I can recommend this book (on an amazon.com rating scale I would give it 4 stars for the content, -1/2 star for dated information, missed out information and old screen shots and -1/2 for the bumpy reading experience = 3 stars). Note that on the real amazon.com website I found an existing 5 start rating for this book, which may mean I had the wrong glasses on)
Finally, and my apologies to Packt Publishing for stating this,
"best-of" book compilations just don't work. Music best-of compilations
are easy to listen to. However, best-of compilations of technical books
are hard to read without the original chapter authors to add corrections
and updates to the previously published content. The Do More with SOA Integration: Best of Packt
book contains unnecessary repetitions, references old (out of date)
technologies and introduces SOA core technologies in a non-chronological
order that takes from the overall reading experience. An example for
the latter is the introduction of a "hello world" Web Service at the end
of chapter 9, which beside of this is a strong chapter that I liked. If you have money to spend on a single SOA book, my recommendation would be to buy one of the books the chapters were taken from. If you need a single quick overview at a glance and don't mind repetition and older information, still this book is a good reading (but never be 5 star. Again my apologies to Packt Publishing for having to say this; I know you had good in mind)