Thursday Mar 20, 2014
Tuesday Oct 08, 2013
By Antony Reynolds on Oct 08, 2013
Book: Getting Started with Oracle SOA B2B Integration: A hands On Tutorial
Before OpenWorld I received a copy of a new book by Scott Haaland, Alan Perlovsky & Krishnaprem Bhatia entitled Getting Started with Oracle SOA B2B Integration: A hands On Tutorial. A free download is available of Chapter 3 to help you get a feeling for the style for the book.
A useful new addition to the growing library of Oracle SOA Suite books, it starts off by putting B2B into context and identifying some common B2B message patterns and messaging protocols. The rest of the book then takes the form of tutorials on how to use Oracle B2B interspersed with useful tips, such as how to set up B2B as a hub to connect different trading partners, similar to the way a VAN works.
The book goes a little beyond a tutorial by providing suggestions on best practice, giving advice on what is the best way to do things in certain circumstances.
I found the chapter on reporting & monitoring to be particularly useful, especially the BAM section, as I find many customers are able to use BAM reports to sell a SOA/B2B solution to the business.
The chapter on Preparing to Go-Live should be read closely before the go live date, at the very least pay attention to the “Purging data” section
Not being a B2B expert I found the book helpful in explaining how to accomplish tasks in Oracle B2B, and also in identifying the capabilities of the product. Many SOA developers, myself included, view B2B as a glorified adapter, and in many ways it is, but it is an adapter with amazing capabilities.
The editing seems a little loose, the language is strange in places and there are references to colors on black and white diagrams, but the content is solid and helpful to anyone tasked with implementing Oracle B2B.
Tuesday Aug 13, 2013
By Antony Reynolds on Aug 13, 2013
It’s a Java World
The first chapter identifies tools and methods to identify performance bottlenecks, generally covering low level JVM and database issues. Useful material but not really SOA specific and the authors I think missed the opportunity to share the knowledge they obviously have of how to relate these low level JVM measurements into SOA causes.
Chapter 2 uses the EMC Hyperic tool to monitor SOA Suite and so this chapter may be of limited use to many readers. Many but not all of the recipes could have been accomplished using the FMW Control that ships and is included in the license of SOA Suite. One of the recipes uses DMS, which is the built in FMW monitoring system built by Oracle before the acquisition of BEA. Again this seems to be more about Hyperic than SOA Suite.
Chapter 3 covers performance testing using Apache JMeter. Like the previous chapters there is very little specific to SOA Suite, indeed in my experience many SOA Suite implementations do not have a Web Service to initiate composites, instead relying on adapters.
Chapter 4 covers JVM memory management, this is another good general Java section but has little SOA specifics in it.
Chapter 5 is yet more Java tuning, in this case generic garbage collection tuning. Like the earlier chapters, good material but not very SOA specific. I can’t help feeling that the authors could have made more connections with SOA Suite specifics in their recipes.
Chapter 6 is called platform tuning, but it could have been titled miscellaneous tuning. This includes a number of Linux optimizations, WebLogic optimizations and JVM optimizations. I am not sure that yet another explanation of how to create a boot.properties file was needed.
Chapter 7 homes in on JMS & JDBC tuning in WebLogic.
SOA at Last
Chapter 8 finally turns to SOA specifics, unfortunately the description of what dispatcher invoke threads do is misleading, they only control the number of threads retrieving messages from the request queue, synchronous web service calls do not use the request queue and hence do not use these threads. Several of the recipes in this chapter do more than alter the performance characteristics, they also alter the semantics of the BPEL engine (such as “Changing a BPEL process to be transient”) and I wish there was more discussion of the impacts of these in the chapter. I didn’t see any reference to the impact on recoverability of processes when turning on in-memory message delivery. That said the recipes do cover a lot of useful optimizations, and if used judiciously will cause a boost in performance.
Chapter 9 covers optimizing the Mediator, primarily tweaking Mediator threading. THe descriptions of the impacts of changes in this chapter are very good, and give some helpful indications on whether they will apply to your environment.
Chapter 10 touches very lightly on Rules and Human Workflow, this chapter would have benefited from more recipes. The two recipes for Rules do offer very valuable advice. The two workflow recipes seem less valuable.
Chapter 11 takes into the area where the greatest performance optimizations are to be found, the SOA composite itself. 7 generally useful recipes are provided, and I would have liked to see more in this chapter, perhaps at the expense of some of the java tuning in the first half of the book. I have to say that I do not agree with the “Designing BPEL processes to reduce persistence” recipe, there are better more maintainable and faster ways to deal with this. The other recipes provide valuable ideas that may help performance of your composites.
Chapter 12 promises “High Performance Configuration”. Three of the recipes on creating a cluster, configuring an HTTP plug in and setting up distributed queues are covered better in the Oracle documentation, particularly the Enterprise Deployment Guide. There are however some good suggestions in the recipe about deploying on virtualized environments, I wish they had spoken more about this. The use of JMS bridges recipe is also a very valuable one that people should be aware of.
The Good, the Bad, and the Ugly
A lot of the recipes are really just trivial variations on other recipes, for example they have one recipe on “Increasing the JVM heap size” and another on “Setting Xmx and Xms to the same value”.
Although the book spends a lot of time on Java tuning, that of itself is reasonable as a lot fo SOA performance tuning is tweaking JVM and WLS parameters. I would have found it more useful if the dots were connected to relate the Java/WLS tuning sections to specific SOA use cases.
As the authors say when talking about adapter tuning “The preceding sets of recipes are the basics … available in Oracle SOA Suite. There are many other properties that can be tuned, but their effectiveness is situational, so we have chosen to focus on the ones that we feel give improvement for the most projects.”. They have made a good start, and maybe in a 12c version of the book they can provide more SOA specific information in their Java tuning sections.
Add the book to your library, you are almost certain to find useful ideas in here, but make sure you understand the implications of the changes you are making, the authors do not always spell out the impact on the semantics of your composites.
Friday Jun 28, 2013
By Antony Reynolds on Jun 28, 2013
SOA Suite 11g Developers Cookbook Available
Just realized that I failed to mention that Matt & mine’s most recent book, the SOA Suite 11g Developers Cookbook was published over Christmas last year!
In some ways this was an easier book to write than the Developers Guide, the hard bit was deciding what recipes to include. Once we had decided that the writing of the book was pretty straight forward.
The book focuses on areas that we felt we had neglected in the Developers Guide, and so there is more about Java integration and OSB, both of which we see a lot of questions about when working with customers.
Amazon has a couple of reviews.
Table of Contents
Chapter 1: Building an SOA Suite Cluster
Chapter 2: Using the Metadata Service to Share XML Artifacts
Chapter 3: Working with Transactions
Chapter 4: Mapping Data
Chapter 5: Composite Messaging Patterns
Chapter 6: OSB Messaging Patterns
Chapter 7: Integrating OSB with JSON
Chapter 8: Compressed File Adapter Patterns
Chapter 9: Integrating Java with SOA Suite
Chapter 10: Securing Composites and Calling Secure Web Services
Chapter 11: Configuring the Identity Service
Chapter 12: Configuring OSB to Use Foreign JMS Queues
Chapter 13: Monitoring and Management