This edition of the Today Software Magazine appears at a time when the vacation is ending and people come back to work, have energy and appetite to learn and improve. That is why I will not disappoint the readers of this magazine and of my book reviews and I will choose a captivating subject.
Book Java SOA Cookbook by Eben Hewitt addresses mainly to developers and architects with a large degree of experience. Those with less experience can find references about the level at which the architectures with witch they are working should reach. The experimented ones will find solutions to their problems. The book has a major advantage: it does not only issues, but also provides solutions.
Service-oriented architectures (SOA) are probably the most spread enterprise architecture and hence in world of web. It must be said from the very beginning that SOA does not mean a style or a methodology for developing web applications, but it is architecture and a strategy of organization. Developers can thus understand the context in which their work is carried out, and architects can improve their work based on good practices based on the authors" team and its years of experience and on all the studies dedicated to Java development evolution.
Personally, I think that any developer or architect of an enterprise application, which has reached a certain level of experience, should also consider the solutions offered by this book. Although the technical support of the applications is JDK 6, the enterprise version of the platform is 5, and the Glassfish server has only the 2nd version, I see no problem to that. The new versions help us eliminate some of the operations that are part of what we call "dirty job", but knowing as many details as possible is benefic.
Before entering the actual review of the book I want to mention that for service processes the author uses BPEL (Business Process Execution Language) despite all the existing disputes over time between BEA Systems and BPEL. The alternative to BPEL is provided by BPM suite.
The book is structured into 4 main parts:
The fundamental part, in which are presented SOA concepts and details on XML. Until the advent of annotations, XML has played a decisive role, both for data descriptions and for validations or conversions. The web services part , which includes a detailed overview on web services and Java APIs that support them . The first chapter of this parts focuses on WSDL descriptor, customer service and monitoring tools and debugging of services during development. Simple examples that complement the theoretical part can be read here. The next chapter focuses on SAAJ API (SOAP with Attachments API for Java) . The gradual transition to the current APIs is welcomed. On the one hand because it is a low-level API that communicates directly with XML , and on the other hand because following APIs are more abstract, so difficult to understand without SAAJ. In the next chapter is presented JAX -WS (Java API for XML Web Services) . This API is based on JAX -RPC API, but is much altered from it. Customers web services are introduced in the next chapter, and are actually a detailed continuation of the discussion about customer service introduced in the previous chapters. Finally, the last chapter of this part is probably the most current. It focuses on REST services (Representational State Transfer). REST services are obviously much easier to use and therefore more popular. Almost complete lack of XML "s is an asset worthy of attention. Currently many customers, including those on mobile devices, use REST as a way to communicate with backend. New specifications for REST appear at every new version of Java Enterprise.
The 3rd part is about Business Processes. Although a little surprising for me, the author uses BPEL for Orchestration Service. The surprise comes from the fact that Oracle supports BPM suite and that is why most Java architects use this standard to create business process. Clearly, both are widespread. The orchestration process of services is gradually introduced (invoking multiple web services or XSL transformation - for transformation XML documents into other formats). Parallel activities, delays or correlations are advanced elements integrated in this part. In the last chapter of this part are introduced tracking tools for web services. Perhaps the most popular element introduced here is the UDDI service (Universal Description, Discovery and Integration).
The last part is about interoperability and services quality. The main topic of interoperability refers to interoperating web services clients with services and clients on different platforms. In this part are made referrals to the WS-Addressing specification and implementing clients in Ruby or .NET. Regarding service quality, the author talks about standards that increase the confidence in web services.
The book has a high degree of difficulty. It is not actually the book that one reads in the evening, before bedtime. The plentiful examples and the pertinent comments, along with the style of the book: presenting problems, offering solutions and giving comments with many examples, create an order in thinking, capable of brining performance. Take your time and energy to go through the entire material! If you understand all the issues raised, surely you will have acquired a knowledge base that will enhance your value indisputable.