I was recently asked by a representative of Packt Publishing to review this book on Service Oriented Architecture and I looked forward to reading the review copy they sent me.
While I waited for the book to arrive I searched the packt website for the errata for it – and found none. I thought “Either the book is perfect or they haven’t gotten around to publishing a list of corrections yet”. Quite an omen.
The blurb on the back of the book says that it is intended for “architects and senior developers who are responsible for setting up SOA for integration for applications within the enterprise and applications across the enterprise”.
The 360 or so pages are split into six chapters:
- Integration Architecture, Principles and Patterns
- Service- and Process-Oriented Architectures for Integration
- Best Practices for Using XML for Integration
- SOA and Web Services Approach for Integration
- BPEL and the Process-Oriented Approach to Integration
- Service- and Process-Oriented Approach to Integration Using Web Services
Chapter one focuses on integration technologies, approaches and patterns – pretty much laying the groundwork as you would expect an introductory chapter to do.
The second chapter attempts to drill down deep into what SOA is about.
Chapter three details the Best Practices that should be followed when using XML for Integration and seems completely out of place considering the intended audience that this book is written for – it is far to low-level for a book aimed at software architects.
Chapter four focuses on web services and does a very good job of it, advising for example to stick with approved Standards rather than using proprietary extensions of say SOAP and WSDL. Amusingly though, while advising that web services should remain independent of programming languages and application platforms the book soley gives examples in Java and .net.
Chapter five details BPEL (Business Process Execution Language) and the Process-Oriented Approach to Integration in a rather comprehensive manner.
Chapter six, discusses the Enterprise Service Bus (ESB) in depth. Just as with chapter 4 I was amused with this one. There is a subsection to it about how ESB helps avoid vendor lock-ins yet there is no discussion of open source offerings that are available for EBS, BPEL etc etc.
“SOA Approach to Integration” focuses in detail on the WS-* standards and references SOAP very often. There is an anomaly in that there is no mention of REST and while the authors, with their collective experience in Java and .NET, focus on detailing use and interoperability between those platforms I would have expected at least some Open Source technologies and programming languages to be referred to – the ESBs Apache Service Mix, Mule for example; along with perl, PHP and python as some of the programming languages that can be used.
If PHP was to be mentioned I would expect the “WSO2 Web Services Framework for PHP” to be listed as well as, perhaps, the SOAP and UDDI packages from PEAR.
I found myself reading some sections of the book repeatedly – not because the technical content was too complex to understand; but due to it being too verbose, due to bad grammar, spelling mistakes and poor punctuation. I also felt that the diagrams and figures in the book should have been identified better, both in the text and individually. A glossary and a more complete index would have been nice too.
On the whole, although I did enjoy reading portions of the book, it seems to be a lacklustre introduction for software architects and senior developers that are new to Service Oriented Architecture but that’s pretty much all that it is.