Oracle recently announced new version of the Oracle SOA Suite 12c, which includes updated version of the Oracle Service Bus (OSB). I tested this new version and compared it against IBM Integration Bus (IIB) v9. For those of you who are not keeping track – IIB is a new name for the product that IBM used to call WebSphere Message Broker (WMB) up until v8. Starting with v9 it is now called IBM Integration Bus.
In my tests I compared end user installation experience and measured disk and memory footprint of these products. I also threw in the test IIB v10 open beta (free download here). To complete the comparison, I also built a simple “echo” application, which simply responds back to the caller via HTTP and logs number of times it was invoked into a file. For all products used in these tests I recorded demos, but I can only publish IBM demos as Oracle license agreement does not seem to let me share the video of their product with the public. Here are the results of my tests:
DEMO #1: IIB v9 for Developers one step Linux installation and simple Echo app development and unit test:
DEMO #2: IIB v10 open beta one step Linux installation and admin console:
# of installation steps
As you can see in my demo #1 above it takes three steps to install IIB v9 for Developers: 1) Run one the installer, 2) Add user to mqm and mqbrkrs groups, 3) Change file permissions on the Toolkit directory. Once you did these three steps – you are ready to start your development. You might argue that unzip can be counted as an extra step… whatever. If your 64 bit version of RHEL does not have the right prerequisites, I have written a very basic script that does prerequisites installation plus three IIB installation steps above, essentially making it a one step install process.
IIB v10 open beta is even simpler – you can see in the demo #2 above that all it takes is a simple unzip (see docs if you want to learn more about IIB v10 open beta). This unzip takes about a minute (depending on your disk speed) – no installation required. I might even call it zero step install.
OSB 11g was a mess to install. There were so many things that had to be installed in the right order, starting with (1) WebLogic Server, (2) special fix for the WLS, (3) JDeveloper, (4) Oracle Enterprise Pack for Eclipse, (5) OSB itself, (6) JDeveloper SOA update, (7) Potentially Oracle Database and (8) Repository creation utility, and finally in many cases (9) Oracle SOA Suite itself.
In Oracle SOA Suite 12c for Developers Oracle has simplified installation process: (1) Install JDK, (2) Set environment properties for JAVA_HOME, JDEV_USER_DIR, ORACLE_HOME, PATH, and (3) Run a wizard to install JDeveloper and SOA Suite 12c. Here is what I had to do in step (2) of the installation:
export JAVA_HOME=/software/jdk1.7.0_67 export PATH=$PATH:$JAVA_HOME/bin export ORACLE_HOME=/software/Oracle_Home export JDEV_USER_DIR=~/jdeveloper_user mkdir $JDEV_USER_DIR
As you can see in the table above, IIB v9 and OSB 12c have very similar install times. This represents dramatic improvement for Oracle as install time for the OSB 11g version was almost 2 hours if you used interactive GUI installer. In production you would normally script the install, but first time user experience was very poor. This has been much improved with OSB 12c developer configuration install being only about 10 minutes. I am now testing production installation of SOA Suite 12c and it seems to still have complexity similar to 11g version described above, minus development tools.
However IBM is poised to dramatically simplify and shorten install time as IIB v10 open beta does not even require “install”. You simply download it and unzip (see demo #2). No installation required, no need to install WebSphere MQ (unless you need it for other reasons). What an awesome user experience!
“Echo ESB App” up and running on fresh install
Once you have IIB v9 or v10 installed, it takes one to two minutes to start Eclipse based Toolkit and build and deploy and test simple Echo application as I have done in my demo #1 above.
In contrast, with Oracle Service Bus 11g and 12c you have to create WebLogic Domain and extend it with OSB specific features. Unfortunately, out of the box user experience is very poor. There is a known issue with Oracle WLS Domain creation – in my tests it took 2 hours to create new domain and extend it with OSB features. This can be fixed by setting the CONFIG_JVM_ARGS environment variable to the following value: -Djava.security.egd=file:/dev/./urandom (explanation of the bug). However for first time users it is hard to find this fix and requires extensive internet search (i.e. googling). This is not a trivial thing and waiting for 2 hours for your WebLogic domain creation is simply not something that first time users would enjoy.
Server startup and stop times
IIB v10 beta was lightning fast to start and stop (8 sec to start and 5 sec to stop) – the startup time being less than half of what it was in IIB v9. This is partly because it does not longer require WMQ. IBM has made great progress at making IIB v10 simpler and more lightweight.
Oracle on the other hand has merged its gigantic SOA Suite with what used to be relatively small OSB 11g and now instead of 95 sec startup time (OSB 11g) it takes about 3 minutes to start the OSB 12c server. I got tired looking at endless console messages during startup. The good news is that the stop now takes about 15 seconds instead of over a minute it used to be. Not to mention that for unit testing in OSB 11g I had to have admin server and managed server. Now I only run single JVM instance and not need to worry about two server instances. Lots of work remains for Oracle in this area. I do not think their users are going to like what they see in 12c version. The development server got much fatter and much slower. Is Oracle cramming too much into it?
ESB application deployment time
IIB v9 and v10 took about 4 seconds to redeploy a change in the flow while OSB 11g and 12c took about 8 seconds. Not a huge difference, but still… if you do it 100 times a day (every 5 minutes), that is extra 6.7 minutes of your time per day, or about 1.4% of your work time, or about $2,300 USD per year for US based developers. Seconds matter, you know. You could get a brand new ultra-gaming desktop every year for this one alone. Oh, wait. If you are into games you probably are not reading this article and most certainly do not care about few extra minutes per day. 🙂
# of development tools
IBM provides single tool for IIB development called IBM Integration Toolkit. It is based on Eclipse and is very responsive and ultra fast (unlike one other Eclipse based tool that I know).
Oracle made a big change (finally!) and in OSB 12c you can now use just one tool – JDeveloper to build your OSB apps as well as the rest of SOA Suite code. In OSB 11g you were forced to use JDeveloper for Database Adapters, Eclipse Pack for OSB, iWay for enterprise adapters and little weird tool for non XML mapping (used to be called MFL). That is up to 4 tools (at a minimum you used Eclipse and JDeveloper).
Still I find it hard to use JDeveloper as it does things differently from Eclipse. It is much easier to take a developer from the street and have him started on Eclipse based IBM Integration Toolkit than it is with Oracle JDeveloper. Not to mention the fact that Eclipse has much richer functionality and is more stable and reliable compared to JDeveloper. That story deserves a separate article… something like “The pains of using JDeveloper”…
RAM used by development tool(s) and server(s)
IBM Integration Toolkit is fairly small – the memory footprint is pretty low – under 600 MB. IIB test server takes even less memory: IIB v10 seems to only use about 170 MB of RAM for my Echo application.
In contrast, Oracle has put so much into JDeveloper that its memory usage is hard to control and you would most definitely need 64 bit OS with plenty of memory to fit both the JDeveloper (frequently goes above 2GB) plus WebLogic server instance with OSB (also goes above 2GB – depending on usage).
Installed size on disk
IIB v9 takes about 4.8 GB installed – very similar to the Oracle SOA Suite 12c. However Oracle SOA Suite provides many additional products on top of OSB itself and includes BPEL engine and a bunch of other things while IIB has WebSphere MQ and the IIB. The size of IIB v9 install can be reduced by about 30% if you delete all 15 language translations of error messages and sample apps and docs from the disk.
However IBM is moving in the right direction and removed WMQ requirement for IIB v10 beta as well as making other improvements in the product reducing the installed size to 1.8 GB, which includes runtime, development tool, test server instance and Eclipse workspace files.
In summary, if this was a race for the best user experience (and it is a race, isn’t it?):
- The winner is IIB v10 open beta for its small size, ease of install and fast start and deployment times. But the product has not shipped yet, so…
- Second best is IIB v9 (shipped in June 2013)
- OSB 12c (shipped in July 2014)
- OSB 11g (does not matter when it shipped – you do not want to use this one anyway)…