Thursday, September 22, 2011

Head dump of UltraESB

As I wrote earlier last week, I have taken up the responsibility of making the UltraESB an even better product! It is really a challenging task as it is already the best ESB I have ever seen. In this post, I am trying to get a head dump of me about the UltraESB, based on my initial experience in the past few days.
To start with, it is a great open source project where the code is publicly shared on bitbucket at [1], and is developed with lots of feedback from its actual enterprise users! It is not just a typical ESB rather it is an AS2 switch, JSON/Data Services and Mock Service container, Security gateway, Layer7 router and much more.

Best in Performance 
As per currently published statistics, the UltraESB is the best performing open source ESB. AdroitLogic is continuously testing performance over all the major open source ESB's to make sure it keeps up with any improvements that other ESBs are doing, and publishes all the results openly at ESB Performance site. AdroitLogic is sharing all the configurations, materials and pre-configured EC2 images to let any third party run these performance tests themselves and see the difference, which will be very handy when evaluating ESBs.

Ease of configuration/development 
Being the best in performance is not enough to become the best ESB. The other key aspect that I see in UltraESB is that the ease of configuration. To be frank, initially, I didn't believe that writing mediation logic in Java is the best way to make the configuration easier. Later I found that it is very convenient with compared to an ESB with a custom DSL. The problem with custom configuration languages is that you have to learn the language and then learn how to apply that language to solve your integration problem. UltraESB, on the other hand, gives you the ability to solve your integration problem in Java or any other scripting languages like JavaScript, Ruby, Groovy, etc... Now you do not have to learn the language as you most of the time are already familiar with at least one of these languages, and you can concentrate on applying the language you know to resolve your integration problem with the very simple mediation API [2].

IDE integration and tooling 
Another advantage of UltraESB over the other ESBs is the seamless integration with your development environment. If you know Java, you probably know how to work with Intellij IDEA, Eclipse, or NetBeans IDE. UltraESB integrates nicely with all these 3 development environments and provide the ability to develop, run and debug (step through debugging) your integration solution within the IDE itself. If you just give it a try, you will realize how effective it is in solving your integration problem, rather than spending time on understanding the languages and how to setup this and that. You can find enough materials on the AdroitLogic site on the development environment Integration, for example [3], [4], [5], and on the YouTube adroitlogic channel

You do not have to learn anything you can just get started. Seriously, this will reduce the development time drastically, at least by 60% even if you have already mastered the custom configuration language that you are using with the other ESBs. This is because of the capability to run/debug the solution that you are developing within the IDE without building, deploying, etc... This is why I say it is the Future ESB, with UltraESB developing your integration solution will be exactly same as writing "Hello World" with Java and running/debugging then improve it  and shaping it up towards the final solution.

Manage/Monitor deployments
All that is about the development phase, now what about the deployment and maintenance? UltraESB ships many options to manage and monitor the deployed UltraESB instances.
  1. JMX monitoring and management via JConsole or any external tool
  2. UConsole, a web based console to monitor and manage the instances
  3. UTerm, a terminal client to manage the ESB, System Administrators loves this idea and using the terminal commands to manage the UltraESB
  4. Zabbix monitoring with alerts and notifications for SLA management and escalation
All these mechanisms gives the best set of features to manage deployed UltraESB individual instances as well as a complete cluster.

Better by Design
The internal design, though most of the users of the product do not care that much, is the secret behind the success of the UltraESB.  The beautiful architecture behind this great product makes things simple to develop, use and extend further as required. For example, the native Spring configuration support allows one to integrate with almost any other external system seamlessly! A few of the powerful and advanced features visible to end users is as follows;
  1. Zero-copy proxy with memory mapped / RAM disk based IO giving extreme performance
  2. Zero down time graceful configuration update (other ESBs do have hot deployment/update, which they recommend to turn off in production deployment ;-), this is way more than that!)
  3. Cluster wide management and failover capability for nodes in the cluster (If "nodeA" of the cluster fails, the "nodeB" on the same cluster can automatically take over "nodeA", until it comes back live)
Becoming the best ESB is/was easy but being there is what's important and more difficult. I treat it now my duty to continue to give the best ESB to the users, with UltraESB.

Give it try, and go for a test run with UltraESB to see more...

References
[1] - https://bitbucket.org/adroitlogic/ultraesb
[2] - http://api.adroitlogic.org/org/adroitlogic/ultraesb/api/Mediation.html
[3] - http://adroitlogic.org/resources/samples-articles-and-tutorials/15/20-ultraesb-users-guide-the-helloesb-sample.html
[4] - http://adroitlogic.org/resources/samples-articles-and-tutorials/15/19-ultraesb-users-guide-configuring-and-using-the-ide.html
[5] - http://adroitlogic.org/resources/samples-articles-and-tutorials/all-tutorials/80-setting-up-the-ultraesb-with-eclipse.html


Disclaimer: Any information provided in this blog entry is my personal view on UltraESB and may not be the view of AdroitLogic.
 

1 comments:

B.Ajanthan said...

Best of luck for your new Job!!!