Discussions

EJB design: ESB for Internal/Intranet Applications in an Organization

  1. Hi All,

    I am new to ESB world and trying to see if ESB (Servicemix like) is the right candidate for our enterprise applications integration requirements. I posted this on Logicblaze forums and no body from Logicblaze/users answered this question. Hoping serverside users will help me in making a decision. My scenario is as follows.

    1) We have couple of applications developed by different vendors and they need to be integrated with in Same Enterprise.

    2) These applications belongs to the same Organization but they will be deployed to different JVM's on different J2EE Containers (OC4J) but may be on the same Application Server (Oracle AS 10g), in a clustered environment.

    3) We would like to have minimum impact on performance due to integration of these applications (90 % of them are J2EE applications).

    4) We would like the integration technology/ESB to take care of transactions and security if possible.

    I prefer to go with any ESB,but my biggest concern is performance. I am thinking that , JBI need WSDL to be declared for every service.

    My perception is that ESB(Servicemix) converts/serializes the Java Objects into XML and transports the data. This may have performance implications if used in my scenario (Application Integration with in same Organization and sitting on same Physical location).

    Can any one suggest alternatives or if ESB(Servicemix) suits my requirements, how will it address my concern of Performance,transaction,security etc..

    And I am wondering if Servicemix provides RMI/EJB bindings through dynamic stubs etc good features to address the performance issues for integrating applications with-in organization (I know ESB,Servicemix is pure JBI implementation).

    Thanks in advance
    Giri Kosuru.
  2. Does any one know how to move this posting to General J2EE forum?

    Thanks
    Giri Kosuru
  3. I'm kinda biased :) but certainly Apache ServiceMix is a great candidate for your ESB for internal/intranet applications.

    The main decision is not so much can the ESB handle your scenario; it can - its more what technologies and topologies would suit your use case the best.

    BTW for ServiceMix related questions, your best bet for prompt answers to your questions from the ServiceMix community is the online ServiceMix forum

    Talking generally in terms of performance; the best topology for your application is always to use asynchronous messaging where possible; though thats sometimes hard to do easily in Java.

    In terms of marshalling of objects to some format (XML or object serialisation), ServiceMix can avoid the marshalling layer completely if the services are deployed in the same JVM - though thanks to class loader issues if your applications are separately deployed in different class loaders its sometimes necessary to serialize anyway.

    In terms of transports; we currently support a wide variety; but for your needs I'd recommend in-JVM for in-JVM InOut exchanges and JMS for distributed load balanced message exchanges; then choose the configuration of the Marshallers used to suit how you wish to marshall objects around your network (e.g. to use object serialization via ObjectMessage).

    Just a few questions to better understand your scenario

    * what kind of throughput do you need
    * are operations mostly InOut or InOnly (i.e. request/response or one-way async messaging)
    * how big does the data tend to be
    * are all operations XA with a database?

    James
    LogicBlaze
  4. hi !! may be its a bit out of direction for some readers...but atleast not from my viewpoint (or the way i understood requirement). I am a bit new to this domain and am struggling somehow to really identify pros and cons for various choices. What is the reason that ESB is looked as an option for this scenario. If you have welldefined Enterprise interfaces (RMI/EJB bindings) why is it that you are avoiding looking into orchestration engines like Oracle BPEL or similar products. Because when you say integration of different applications, i presume you have fixed well defined business/service flows for these integration. And these business flows map to the actual usecases that you want to achieve by integration.In terms of realization on a orchestration engine, each of these usecase would map to one orchestrated flow. please provide your feedback... cheers