1 2 Previous Next 16 Replies Latest reply on Mar 18, 2014 7:08 AM by salaboy21

    can anyone tell me, how jBPM engine deployment and process deployment happens?

    rsmagdum

      1) What are the ways to deploy jBPM workflow engine? is it war file that we can put on tomcat/jboss/eap?

      1) how to deploy only new bpmn to existing running jBPM engine? is it possible? or we have to deploy whole bunch again?

      2) will future jBPM engine have backward compatibility with old workflows (bpmn 2.0)?

       

      Thanks,
      Rahul

        • 1. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
          salaboy21

          Hi Rahul,

          You can embed jBPM inside your apps or use something like KIE Workbench that create new runtime environments for your processes and allows you to run those processes in there. The third option is to build your own Workbench that includes your desired functionality, but I would strongly recommend you to collaborate with KIE WB instead.

          So to answer you first question: there are several ways, depending what do you want to do.

          You can deploy new business process definitions to an existing running engine, but again, jbpm is flexible enough to allow multiple runtimes being running at the same time. Don't think about jBPM as a monolithic engine which is just one and it runs forever.

          I'm not sure to get your last question, are you asking if in the future we will support another language and BPMN2? I can say with certainty that we will, the process engine core is completely decoupled from the language used to describe the processes, so I don't see any issue with backwards compatibility.

           

          Regards

          1 of 1 people found this helpful
          • 2. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
            rsmagdum

            Hi Mauricio,

            As you said we can deploy new business process definitions to an existing running engine. Can you elaborate more on this? How this can be done?

            is version of process definition plays role here? how?

            and about my last question, i want clarification on, if in future i upgrade my engine to new version which supports some new format for writing process definitions;

            will i need to rewrite/change my existing process definitions?

             

            Thanks,
            Rahul

            • 3. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
              salaboy21

              The thing is.. do you really need to deploy new definitions to an existing runtime engine? because you can definitely create a new runtime for the new process definition. This provides isolation which is good most of the time.

              About your backward compatibility question, it is difficult to say.. when the process definition language changes it usually changes for the better (let's say 3 years from now) and the previous language is usually supported, so I don't think that you need to worry about that because bpmn2 will be supported.

              • 4. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                rsmagdum

                Hi Mauricio,

                With my current understanding of jBPM, i have couple of doubts and confusion regarding BPMN deployment.

                I want to clarify them.

                1) If I am running core jBPM engine on X machine (No KIE-WB deployed)

                Suppose I have Project_1.0 deployed with BPMN_1.0 on jBPM engine.

                Now I have some change in same BPMN and I want to deploy it to engine.

                What is the way to achieve this?

                As per my current understanding, We have to build kjar using maven. This kjar will have changed BPMN_1.1 and maven related other files. (No java packages, as we have not changed any java code. right?)

                We also need to change Project Version and then we will use Deployment API to deploy this to jBPM engine. Am I right?

                Any time we want to change something, its mandatory to build kjar of it. There is no way to directly putting just a new BPMN file into jBPM. right?

                 

                 

                2) If I embedded jBPM inside my application and deployed entire application as war file on tomcat.

                And I don't want to rebuild my entire application again for a single BPMN change.

                So later, If i want to change a single BPMN file in it, what is the best way to achieve this without disturbing existing running application?

                in this case, still kjar deployment will work? or

                should i tell my application to load all bpmn's from xyz folder at startup? (and I will copy my new BPMN to that folder xyz)

                 

                Thanks,
                Rahul

                • 5. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                  swiderski.maciej

                  take a look here for various options to deploy things to jbpm 6.

                   

                  HTH

                  • 6. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                    rsmagdum

                    Hi Maciej,

                    Thanks for reply.

                    I read your blog. After reading that I have couple of questions

                    1) As you said "one could drop their process files (bpmn2 files) into a predefined directory that was scanned on the jbpm console start"

                    is it possible to do same thing with jBPM 6 also?

                    2) in jBPM 6, everything that we want to deploy must be kjar?

                    3) If I want to deploy a single new/upgraded BPMN file to jBPM engine, is it always need to be in kjar format?

                    (so for single BPMN, without any java code, our kjar will look something like :

                         -myproject_1.0.jar

                              --META-INF

                                  ---kmodule.xml

                              --xyz.bpmn

                         -myproject_1.0.pom

                    ) is it correct?
                    salaboy21

                     

                    Thanks,
                    Rahul

                    • 7. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                      salaboy21

                      Hi Rahul,

                      We recommend using k jars because they allow them to keep control on the versioning of the project and the assets. If you have a process, with forms, handlers, etc, you will want to make sure that all of them are coherent with each other to be able to run them. In order to do that a version represent a snapshot of all those assets inside the kjar. So your third point is correct that's the minimum structure of kjar and I know that it sounds as too much for just a bpmn but trust me in real cases you will end up having more stuff in there.

                       

                      Regarding your previous question:

                      "

                      2) If I embedded jBPM inside my application and deployed entire application as war file on tomcat.

                      And I don't want to rebuild my entire application again for a single BPMN change.

                      So later, If i want to change a single BPMN file in it, what is the best way to achieve this without disturbing existing running application?

                      in this case, still kjar deployment will work?"

                       

                      You will not need to redeploy your existing application if a kjar changes.. that's why we use embedded maven (aether) to retrieve new kjars that are installed in the maven repo on runtime. The kjars will live inside the m2 repo so you don't need to worry about putting the kjars inside your application.

                       

                      HTH

                      • 8. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                        rjintur

                        salaboy21

                        What happens when I don't need a deployment and versioning of a BPMN xml but I just want to load and run it. My use case it, i have to create a BPMM on-the-fly/dynamically and client sends the required bpmn file to Engine through REST. I dont need to save this bpmn for future, just load it, run it and discard it when instance completes.

                         

                        Can I use the feature of updating Knowledge base dynamically as mentioned in Overview section of Chapter 5. Core Engine API

                        If yes, is there any example of loading/deleting a process definition at runtime from KieBase.

                        • 9. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                          salaboy21

                          As far as I know the rest services works based on the deploymentId which is generated by the kjar GAV. Of course that you can do it in the way that you mention using the core engine internals, but you will not be able to reuse the rest end points as they are right now, you can create your own services on top of the engine.

                          I wouldn't recommend you to remove and add things from the kbase, you just can create a new kbase per process definition that you create on the fly. and that should be all you need.

                           

                          HTH

                          • 10. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                            rjintur

                            Yes, we will have to write a wrapper REST api for using the BPMN xml and use it in Knowledge Base. Is adding/removing a bpmn in KieBase a heavy-weight operation? 

                            • 11. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                              salaboy21

                              Yes, and I don't see the point of adding and removing from one KieBase if you just can create a new one for the new process. Adding resources to the kbase is a heavy operation, but you will need to do that anyway if you create on the fly processes, so there is no way avoid that. If it is just one process I think that you will be fine. If you start adding tons of processes and rules you might find a bottle neck there.

                              • 12. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                                salaboy21

                                yes, adding a process is a heavy operation, but if you are just adding one on the fly created process you will be fine. Because you will be creating on the fly processes you don't have any other option. And I don't see the point of using the same kiebase for doing so.

                                HTH

                                • 13. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                                  rjintur

                                  Oh ok. Thanks a lot for helping us out.

                                  • 14. Re: can anyone tell me, how jBPM engine deployment and process deployment happens?
                                    salaboy21

                                    Hi Ritu,

                                    please mark the question as answered.

                                    1 2 Previous Next