6 Replies Latest reply on Jan 28, 2010 7:51 AM by yoeriroels

    JBoss ESB with JBR problem.

      Hi,


      I'm working on a project where we wish to set up a JBoss ESB to move towards a SOA architecture.

      I successfully set up the JBoss ESB and started trying some things out. I have however some questions about particular functional requirements which I can't directly map to a solution in JBoss ESB. If someone around here could help me out, I'd really appreciate it.

      Concretely, I'm trying to set up an ESB Service which routes messages to a service using a JBoss Remoting call. I want this ESB service to be invokable using JBoss Remoting itself and also by WebService call.

      Like this: 

      = JBR Call => ESB Service = JBR Call => Business Service

      and

      = WS Call => ESB Service = JBR Call => Business Service

       

      I have set up a JBR gateway which successfully picks up JBR calls. I can't however find any Action implementation implementing a JBR router to route the messages to an other JBR Server (JEE Application Server).

       

      Any help would be appreciated.

       

      Thanks in advance.

       


        • 1. Re: JBoss ESB with JBR problem.
          tfennelly

          Can you outline your target use case a little more please, forgetting about JBR etc for now. 

           

          It sounds like you need to set up a webservice proxy on your ESB instance, right?  If this is the case, then the recommended approach is to use the <http-gateway> as yourt ESB endpoint (i.e. what clients call), with it's associated service having a SOAPProxy action (and possibly some pre/post transformers for transforming the request/response) configured on it to route the payload to the proxied webservice endpoint.  There are some quickstarts demonstrating this.

          • 2. Re: JBoss ESB with JBR problem.

            Tom,

             

            Thanks for your answer.

             

            What you are saying involving the webservice is indeed in the direction of my use case.

            The use case involves modularizing the existing code, and enable multi-protocol calls on the long term.

            However, I'm still in the fase where I'm studying the possible approaches, and I found that wrapping our business code in a webservice might cause overhead in work and performance. I was thinking about a solution where I could publish my business services with JBoss Remoting, and then publish it with the ESB, making it accessible over JBoss Remoting itself (for new Java applications), and over SOAP WS (for legacy, or non-java application). The main goal would be not to need the XML transformations and network transfer when not needed.

            • 3. Re: JBoss ESB with JBR problem.
              tfennelly

              At the moment, we don't have a JBR Routing action within the project, but it wouldn't be too hard to write one.

               

              What we do have is an EJB Invoker action.  If your service logic was exposed as an EJB, you could probably do what you want i.e. allow Java clients invoke directly using the EJB remote interface, and expose a WS endpoint through the ESB for legacy/non-java apps, making the EJB service invocation using the EJB invocation action.  I'm sure there's an example of that there too in the quickstarts.

              • 4. Re: JBoss ESB with JBR problem.

                Tom,

                 

                Thanks for clearing that out.

                 

                In you response you seem to be hinting to the fact that applications knowing the business service format shouldn't go throught the ESB: "Java clients invoke directly using the EJB remote interface", or am I interpreting this the wrong way?

                We were thinking in the direction of a solution where all service requests would pass the ESB (for the sake of monitoring, security, ..).

                 

                Is there code in the JBoss ESB project providing EJB-gateways then? (to enable these 'EJB'-aware requests to pass through the ESB).

                 

                The approach of letting all requests pass the ESB involves all messages to be formatted to the ESB-aware format, also if this isn't required for business services who actually speak the same language as the requester. Do you have any suggestions there?

                 

                Thanks already for your quick responses.

                • 5. Re: JBoss ESB with JBR problem.
                  tfennelly

                  OK... sorry Yoeri.

                   

                  So we don't currently have a JBRRouter action, but it shouldn't be difficult to implement, if you want to have a try.

                   

                  Or, if the business services were implemented as EJB, you could use the EJB Invoker action for invoking the EJBs (see the quickstart for that).  Then, using the JBR Listener, I think you should be able to fulfill the use cases you outlined in the first post... replacing the last step in both cases with an invocation on an EJB.

                  • 6. Re: JBoss ESB with JBR problem.

                    Tom,

                     

                    Thanks for your answers.

                    For the moment, I will follow the solution you suggested.

                    When I find some free time, I will look into writing a JBRRouter action.

                    I'll keep you updated.

                     

                    Kind regards.