3 Replies Latest reply on May 24, 2012 9:50 AM by Mauricio Salatino

    jBPM architecture and clarifications

    jena74 Newbie



      I am really new to jBPM 5.2 since this week . Till now I installed the demo, played a little with it and the console, and went through the documentation.

      But some things are really not clear for me. I went through the forum without beeing able to find a clear answer to my questions.


      1. In the documentation "Chapter 1 overview", it is written that "it can run in any Java environment, embedded in your application or as a service". So I clearly undestand that I can develop my Java application and use the KnowledgeBase, KnowledgeBuilder... to add some processes (*.bpmn files), start processes and so one. But I don't understand what it means to run jBPM as a service and it doesn't seem to be explained in the documentation. Can someone explain that please?
      2. On the forum, I found also a lot of people saying that they are running jBPM in jBoss. What does it mean too? Is there a way to put jBPM in jBoss and to access it from several others separated applications?
      3. For my developments, I imagine an architecture with jBPM running in standalone mode in a simple Java application, jBPM beeing in a persistent mode. Also the human task service would be running in a single place. Then I would have different applications which could connect to the single jBPM to start processes and so one. But I can't find some explanations about how to put in place such an architecture. I can only find some people saying to use the REST interface of the console. But in my application there will be no console deployed. So... can anyone can help on this?


      Thank you all in advance.



        • 1. Re: jBPM architecture and clarifications
          Mauricio Salatino Master

          Let's go straight to your answers


          1) Basically you can build your own services using the jBPM runtime as you build your applications or you can use the jBPM Console Server, which is provided by the installer. This Server exposes a jBPM runtime via REST. You can also use the Drools Server to expose knowledge sessions via REST and SOAP but that option will require more configurations from your side, or as mentioned before you can build your own custom service that exposes and works as you need for your application.

          2) The jBPM Console Server is a web applicaiton, that means that it can be deployed in any servlet container, not matter if it's JBoss or another app server.

          3) Once again, as you mention " you imagine an architecture", what you imagine is just one possible way of doing things. jBPM is flexible enough to allow you to do what you imagine, but you will need to set up or build your own components if the ones provided with the project doesn't fulfill your requirements. If you are planning to build an architecture on top of an Application Server, you can deploy the jBPM Console Server, it's not a big deal and you can use that to host your processes, if not you can build your own component to do that.



          • 2. Re: jBPM architecture and clarifications
            jena74 Newbie

            Hi Mauricio,


            And thank you for the quick answers.

            In fact, I didn't get the point that the console was split in 2 parts:

            • the console
            • the console server


            And if I have a look to the file jbpm-5.2.0.Final-gwt-console.zip from jbpm-installer, I can see inside 2 war files, one for console and the other for console-server.

            If you say that console-server embeds its own jbpm engine, ok I now understand. I just need to deploy this console-server (without the console) and to use the REST API.

            Then I will have a distant access to my jbpm runtime running in only one place.


            If this REST API is not enough, then I have to do my own developments.


            Thank you very much for these clarifications.





            • 3. Re: jBPM architecture and clarifications
              Mauricio Salatino Master


              That's the idea, I'm sure that the console server will be improved to support more use cases in the future, so in the case that it doesn't work for you, you can write us back with the reason why it doesn't work for you and we can work and update the server to fulfill your needs in the future. This is how community projects works