1 Reply Latest reply on Jun 16, 2008 8:46 PM by aguizar

    jBPM BPEL on Other App Servers

    mherscov

      Hi All,

      We are developing some processes in BPEL, and have found jBPM BPEL to work well for executing these processes. However, we have two additional requirements that are not supported by default in jBPM BPEL, and I was hoping that someone could provide some guidance on the best approach for satisfying these requirements.

      The first additional requirement is that we need to run on other application servers besides JBoss AS. Our primary deployment environment will be JBoss AS, however some of our customers have existing JEE environments which we must use. Looking at the source code it appears that the only JBoss AS dependencies are those under org.jbpm.bpel.integration.server which implement the incoming web service. If we were to reimplement these classes for a new app server, are there any other JBoss AS dependencies which we may run in to?

      The second requirement we have is to perform some authentication and authorization for the incoming and outgoing SOAP messages, by interpreting and adding WS-Security headers. One idea we had was to build a custom web service which implemented the appropriate security requirements, and which delivered the SOAP messages directly to the BPEL JMS service, much like the classes under org.jbpm.integration.server. To secure the outgoing messages we were thinking we could replace the classes under org.jbpm.bpel.integration.client to add the appropriate security headers. Does this sound like a good way of satisfying our security requirements?

      Thanks,

      Matt

        • 1. Re: jBPM BPEL on Other App Servers
          aguizar

          The package org.jbpm.bpel.integration.server and all classes in jbpm-bpel.jar are independent of the target app server. To port jBPM BPEL to a new app server all you need to do is implement the EndpointMetadataLookup interface, register the new class in endpoint.metadata.lookups.xml and rebuild jbpm-bpel.ear.

          To provide web services, jBPM BPEL requires access to the WSDL document and other metadata not available through the JAX-RPC API. This is why the metadata must be retrieved in an implementation-specific way. The ubication of this metadata changes even across JBoss AS versions. In particular, it changed radically from 4.0.3.SP1 to 4.0.4. You see, the portability issue is neither unexplored nor hard to tackle.