I have just joined the community and i am kinda new to the jbossesb enviorment.
We are planning to build our next application using jbossesb framework since it seems right for our requirement. (Also the trend towards it)
Our application requirements are following:
1) Very low latency
2) Supporting very high concurrent user transitions (Current target is 1 million but it should be extensible)
3) Highly database intensive.
Can you folks provide me link to some whitepapers/any other technical docs supporting my point that i should be going with the framework or should i change my approach...
Any reply will be highly appreciated.
Hello Rajesh, Hello Marq,
Appologies if I have got the name wrong.
If you want a general suggestion about a better EAI or a tool for creating good components for realizing SOA, JBOSS ESB is a good choice. I personally feel JBOSS ESB to be really flexible. I have just finished replacing an exisiting EAI(VITRIA) with JBOSS ESB for one of our client. We have used JBOSS ESB. excepting for one Issue , the development and the deploiyment was smooth.
1. Runs on an amazing spplication server platform JBOSS: Why ? If you dont need any of their services just remove them off or unplug them . Causes a relatively low memory foot print.
2. I also found that there was a decrease in the overall time taken for data processing by atleast 20-30% (in terms of time taken) (Data from Production) (Financial Transaction where data loss is considered next to Sin)
- considering the fact that every day our Batch jobs creates atleast a million + transactions within few hours. JBOSS handled this like charm.
- Very High Concurrent Transaction rate : Sorry - Dont have the numbers here.
3. It of course is scalable. scalable by infrastructure and scalable by data capacity.
4. Data Intensiveness depends on how well you can handle the design. Probably Jai, Tom or Mark would be able to answer your question more precisely.
Hope this Helps
Thank you for your response, it´s really apreciated. Could you share with us some more detailed data about your implementation, such as server configuration (stand alone, cluster), backend database (oracle, postgres, ...) and an estimate number of services developed and deployed on ESB??.
1. Our Client has close to 20 different applications running on different platforms (Siebel, Java/JEE, DataBase applications etc ), of which there are a few applications that depend on others for data. So we had both synchronous transactions (i.e. one that started from System A then flows through ESB and goes to System B and Back to System A via ESB) and Asynchronous transactions ( where the ESB had the responsibility to do a guaranteed delivery of the data).
2. We used to have a third part EAI VITRIA servicing these needs. It had a pretty hefty licensing cost. So we planned to migrate the system or re engineer it with a Open Source EAI. Jboss ESB was our choice though we had considered using Mule. But we went for JBOSS ESB with a view to utilize the good things of JBOSS AS Server.
1. Heavily Data intensive (Millions of records inserted/read during Batch Job Run, Tens of thousands of online transactions).
2. Lot of Concurrent users (close to a thousand)
JBOSS AS 5.1.0 (2 instances) , JBOSS ESB 4.9, Java 1.6X, Oracle 10g , Red Hat Linux Server 5.0.
Applications that rely on the EAI(JBOSS ESB)
1. Java- SAP Connectivity
2. Java - Java Connectivity
3. Java - Oracle Connectivity
4. Java - Siebel Connectivity
1. Replace all RMI with Webservices(SOAP/ HTTP).
2. Replace all Direct DB Connections to Source applications with WebServices(SOAP/HTTP) - Batch Processing.
The gateway to the ESB Service is a Webservice end point. Each of the applications have a different end point (Different .esb files were created to cater to each of the applications' request).
Services of JBOSS ESB Used (Strictly uses most of the patterns defined in http://www.eaipatterns.com/toc.html)
1. JMS Router (Heavily depends on this for all the asynchronous processing)
2. Redelivery Mechanism. (Again Heavily reliable for guaranteed delivery)
3. SOAP Client (For routing request to Webservice providers) (Advantage over SOAP Proxy is that the WSDL binding does not happen at deployment time itself , so gives you the flexibility to dynamically configure services)
4. Content Based router based on XPATH (Has a few performance issues rather a tad slower when you have say 5MB+ object)
5. JMX (I really loved this part. The way it allows you to use its admin console for you to define operations when we configure an JMX MBean)
6. Mbean (again too good from JBOSS to have something like this. Works as a Strat up class in weblogic)
and So many more...
Data Flow through the application every day
1. A million Online transactions from Java to SAP.(ESB takes care of Mediation and auditing requests as well).
2. 8 to 10 million Batch Records within a span of say 4 to 6 hours.
Yet With all this the performance has always been better than that of VITRIA. the Most proud part for me and my team being " No support at all has been needed from us after a few weeks(initial hiccups and once settled goes on just like that) after deployment into production. Has been working like charm and has never needed our attention "
Hope this gives a little bit of a background. I would also suggest to get a copy of this fine book http://www.packtpub.com/jboss-esb-beginners-guide/book . I really missed something like this during our development back in 2010. I am currently reviewing this book from Packt publications. Its a great one for a head start to JBOSS ESB.
Happy development. I hope this helps. Do let me know if you have any clarifications.