3 Replies Latest reply on Oct 10, 2006 3:44 PM by Alejandro Guizar

    Is jbpm-bpel compatible with jbpm applications?

    Vineeth Varghese Newbie

      Hi,

      I have been using jbpm for quite sometime now. I have even extended jPDL to include a lot of custom constructs basically jbpm enabled user to develop a richer language when the need arises. Cool wf engine you guys have here :)

      I need to use the BPEL constructs in my process for a usecase where my process calls an external system and my process has to wait till it is intimated by the external system about the result. BPEL has inbuilt support for this type of interaction so I am looking to use jbpm-bpel and I have tried the examples given along with the jbpm-bpel release. I have a few queries regarding jbpm-bpel :-

      1) Can I mix jbpm constructs with BPEL constructs (I am not bothered about interoperability with other wf engines)?. I think we can't do this but I just want some confirmation on this since I can't find any documentation about this?

      2) Can I use both jbpm and BPEL processes in the same application (sharing the same db)?. It seems that the bpel constructs are internally converted to jbpm constructs and store is the db.

      3) For the usecase that I want, if I can't mix both jbpm and bpel constructs in one process, can I, from a jbpm process, call a bpel subprocess and achieve the same things?

      4) I want to use jbpm-bpel in a tomcat/jetty env and want to know what are the basic infrastructure/dependencies required to run jbpm-bpel. I saw reference to jms in the source code, so I am assuming it needs jms. How do I make it run in a tomcat/jetty env?. Has anyone tried this before?.

      Cheerio,
      Vineeth.

        • 1. Re: Is jbpm-bpel compatible with jbpm applications?
          Alejandro Guizar Master

          Hi Vineeth,

          jbpm-bpel is definitely compatible with jbpm applications, because it is an integral part of the product :-)

          Here are some answers to your questions:

          1) Short answer: no.

          While BPEL and jPDL build on a common graph object model, they are very different languages. You cannot just bring, say, the receive activity from BPEL without bringing partner links, correlation sets, properties and other supporting BPEL concepts. You'd end up with an unelegant mix of Java and web services concepts.

          2) Yes!

          BPEL-196 addressed deployment of BPEL and jPDL processes to the same installation (server and database combination). By installing the jbpm-bpel service archive as described in the user guide you can enact both jPDL and BPEL processes.

          You can even deploy the jBPM web console (jbpm.war) and monitor both kinds of processes using it. Unfortunately, the process instance inspection page is broken for BPEL processes, but this will be fixed in jBPM 3.2.

          3) Yes.

          BPEL processes expose a web service interface that you can invoke from a jPDL process with the standard JAX-RPC client APIs. Do not try to use the subprocess node, tough. BPEL processes should only be created by invoking a web service operation.

          4) It requires JMS and J2EE 1.4 web services. You could do this by deploying messaging and web services to tomcat on top of the microcontainer. And no, we haven't tried this before because JBoss AS already offers web services, JMS and much more.

          But hey, if you want to try, we will gladly help you :-)

          Best,

          • 2. Re: Is jbpm-bpel compatible with jbpm applications?
            Vineeth Varghese Newbie

            Hi Alex,

            Thanks for your reply but I do have a few more queries :)

            Alex - 3) Yes. BPEL processes expose a web service interface that you can invoke from a jPDL process with the standard JAX-RPC client APIs. Do not try to use the subprocess node, tough. BPEL processes should only be created by invoking a web service operation.

            I was thinking of creating custom node but this node should also be able to do the following :-
            a) Don't advance the token or don't leave the node
            b) Make the web service call to start the BPEL process.
            c) expose a webservice call for the BPEL engine to call back after its process is over. This should restart the parent process.
            d) Should take care of the correlation between the 2 processes

            Did I miss anything?

            Alex - 4) It requires JMS and J2EE 1.4 web services. You could do this by deploying messaging and web services to tomcat on top of the microcontainer. And no, we haven't tried this before because JBoss AS already offers web services, JMS and much more.

            But hey, if you want to try, we will gladly help you :-)



            Actually ya...why not.....let me try it out. I checked out the jboss download section but couldn't find a separate download for the webservices module. Do I need to build it from src?

            Cheerio,
            Vineeth

            • 3. Re: Is jbpm-bpel compatible with jbpm applications?
              Alejandro Guizar Master

              Regarding point (b), there is a document in the Wiki that describes a proposed syntax and semantics of web service invocations in jPDL. You might find the proposed design useful.

              Ronald Van Kuyk is working on a web services interface to jBPM. This should help you implement (c). The related forum discussion is web services question. You might want to contact Ronald and see if his work applies to what you intend to do.

              The webservices page is a bit messed up, our apologies for that... you can browse the jbossws downloadable artifacts in http://labs.jboss.com/portal/jbossws/downloads