I was recently asked by Packt Publishing to review the above mentioned book. I have worked in AIA development for three years (and still work closely with the team) driving many cross-functional Process Integration Packs (PIPs) architecture initiatives, developing Foundation Pack developer productivity tools, managing SAP PIP development and leading pre- and post sales solution architecture support for strategic accounts to enable successful implementations. Having seen issues faced with complex SOA based integration projects first-hand, it was an interesting opportunity to review a book that attempts to explain the “essentials” of my product from an implementors perspective.
Disclaimer: All opinions are my own and not that of my employer. I have received no compensation for this review and was sent an e-book by the publisher. My review should be considered biased due to my proximity to the product, having reviewed a lot of the product documentation itself and having trained many SI partners on the very same topic!
The book targets SOA practitioners who need to understand the AIA Foundation Pack. There are chapters dedicated for Overview, Enterprise Business Objects (EBO), Enterprise Business Messages (EBM), Enterprise Business Services (EBS), Application Business Connector Services (ABCS), Enterprise Business Flows (EBF), Security, Versioning, Design Patterns, Error Handling and Logging, Service Management using Oracle Enterprise Repository (OER), Composite Application Validation System (CAVS) and finally ends with a case study.
My first concern when flipping through the table of contents was that it felt like a rehash of the product documentation, specifically the Concepts and Technologies Guide. So let’s get that out-of-the-way. I know for a fact that the Oracle documentation is the definitive source of truth on Oracle products (refer to the disclaimer about my bias). However, the AIA documentation targets multiple audiences (including internal Oracle PIP development teams) and hence has some information not immediately relevant for Foundation Pack implementors. That is an opportunity this book exploits and it offers the following benefits:
First, it brings together the Concepts and Technologies Guide as well as the Developer’s Guide and presents it in an informal, almost conversational tone. In addition, it omits some advanced concepts (e.g. ABCS customizations) which mostly make sense for PIP teams or ISV. This makes the book a bit easier to consume for those new to the concept.
Second, the chapters have nuggets of field knowledge from the implementation experiences of the author, for example ABCS best practices and stressing on not equating web services with SOA.
Third, there are a lot of screen shots that hand holds newcomers to the concepts, and a case study towards the end that brings the concepts together.
Fourth, the book does not attempt to teach SOA concepts and that is a GOOD thing. Working experience with SOA is a mandatory pre-requisite. I have seen many consultants who attend the AIA training after just having completed a SOA class the week before, and who are expected to be on-site the week after to tie together decades old legacy systems with heterogeneous data models. Does. Not. Work.
I did find quite a few issues with the book that I would have liked to see addressed.
First, the formatting. I am not sure if this only affects the ePub e-book, but the headings are difficult to keep track of since they are only differentiated by color and subtle differences in size. A simple heading numbering would have made it a lot easier to follow, especially when a lot of concepts (such as EBO) are repeated in different context throughout the book.
Second, the editing. Some sections stop abruptly as though the author meant to follow-up but did not get to it. For example, a chapter 1 section ends with “Let’s discuss a little more about Oracle AIA PIP before getting into the AIA Foundation Pack”. The next section then starts with the Foundation Pack, instead of the PIP. In another example, EBO customizations refer liberally to EBMs, which have not yet been covered at that point. The EBO chapter contains an installation note, which looks out-of-place and would have been better served in an appendix.
Third, the conversational tone is great for being able to “talk through” complex concepts, but it can be misconstrued easily. For example, the Foundation Pack chapter states that canonicals are the best practice for service virtualization (not always true). In another example, the author states that in a typical integration scenario the source and target “should be” mapped directly from object to object. What I believe the author meant is that it “usually is” or “typically”, rather than “should be”.
Fourth, there are a lot of code snippets, but the book lacks concrete examples that could have been used throughout the book to highlight the concepts. Particularly, PIPs are a best practice implementation of the Foundation Pack and I would have liked to see a lot more PIP examples. Also, I could not find reference to any accompanying sample code, JDeveloper projects and/or VMs that readers can download and follow through.
Fifth, some concepts have limited or no coverage. For example, there is passing mention of the Project Lifecycle Workbench (PLW) and no mention of developer tools and utilities such as XSL Mapping Analyzer (XMAN) and PIP Auditor. Information on the latter can be found in my earlier blog posts. Also, one of the key tenets of AIA is SOA governance and I would have preferred more in-depth coverage on its practical implementation.
So, is this book better than the product documentation? No. It’s different. It does mimic the product documentation structure and brings together selective content from multiple guides, but it is still far from a one-stop resource on AIA. Having said that, lack of skilled SOA and AIA resources increases implementation risk, so any book that spreads practical AIA knowledge is always worth a read. The ideal audience for the book would be project managers and architects. Integration developers would be served better with detailed product documentation, hands-on training and blogs to stay current with implementation best practices.