7 Replies Latest reply on Jan 16, 2012 1:25 PM by jemmerling

    Human task as service in jbpm5.2

    a_nat

      Hi all,

       

      In the jbpm5.2 release blog  (http://kverlaen.blogspot.com/2011/12/jbpm-52-released.html), i found that human task can be deployed as a web application (service) in the application servrer.

       

      Has anyone doen this and if so, can you please share where to find the war file?

       

      Regards,

      Aparna

        • 1. Re: Human task as service in jbpm5.2
          jemmerling

          I believe this is what the jbpm-human-task-war module is doing, although I haven't yet taken a close look at this.

           

          --JE

          • 2. Re: Human task as service in jbpm5.2
            a_nat

            Hi,

             

            Can you please tell me where is this module?

             

            Regards,

            Aparna

            • 3. Re: Human task as service in jbpm5.2
              jemmerling

              Well,

               

              If you unpack the jBPM5.2 source distribution, the source code is organized into a set of what I would call "modules" (although perhaps that isn't the best term to use):

               

              jbpm-bam
              jbpm-bpmn2
              jbpm-bpmn2-emfextmodel
              jbpm-distribution
              jbpm-docs
              jbpm-examples
              jbpm-flow
              jbpm-flow-builder
              jbpm-gwt
              jbpm-human-task
              jbpm-human-task-war
              jbpm-installer
              jbpm-persistence-jpa
              jbpm-test
              jbpm-workitems

               

              As you can see, included amongst these is jbpm-human-task and jbpm-human-task-war.

               

              As previously stated, I haven't actually investigated the latter in detail, I am merely inferring its function from its name.

               

              Hope this helps!

               

              --JE

               

              • 4. Re: Human task as service in jbpm5.2
                tsurdilovic

                For these types of quesions it's sometimes best to take a look at the jbpm-installer build.xml and folllow the target execution. This should tell you pretty much where everything is.

                 

                Hope this helps.

                • 5. Re: Human task as service in jbpm5.2
                  a_nat

                  Hi Tihomir,

                   

                  This war doesn't come along with the default jbpm installer and am not sure whether its for any specific reasons.

                   

                  Regards,

                  Aparna

                  • 6. Re: Human task as service in jbpm5.2
                    a_nat

                    Thanks I will build it from the source then.

                     

                    Regards,

                    Aparna

                    • 7. Re: Human task as service in jbpm5.2
                      jemmerling

                      Well, I decided to take a closer look at this WAR module. As previously stated, I had inferred its functionality from its name. On close inspection, I can't say that my previous inference was necessarily correct.

                       

                      First, I have confirmed that, for the demo set-up, the Demo Task Server acts as the Human Task Service for both the Eclipse Tooling and the GWT Console demo.

                       

                      However, given the name of this server, it is strongly implied that its use should be restricted to a limited situation such as the demo. So what is not clear is, what does jBoss recommend as an "enterprise class" implementation of the human task service?

                       

                      So (as I said) I took a closer look at the WAR, what I see is there is one Servlet class that rejects GET and POST requests, when it initializes it executes more or less the same logic as the Demo Task Server. To wit, it kicks off a MinaTaskServer as a separate thread running in the same JVM as the servlet. So there are really just 2 differences I can discern between this and the demo server:

                       

                      1.) It executes within a JEE container.

                      2.) It uses a JEE data source rather than a JDBC connection.

                       

                      Of course I would consider point 2.) above as an absolute minimum requirement for an enterprise solution.

                       

                      However, what I would think of as the "elephant in the living room" is that I don't think this is what the OP had in mind. My suspicion is that the OP was looking for an implementation of WS-HumanTask exposed via JAX-WS over SOAP (or similar words to that effect). I can find no evidence that anything like this is included in the jBPM 5.2 distribution.

                       

                      Of course, some of us have been led to believe that it is something of a sin to create one's own threads within any JEE container. Perhaps that is less of a problem in jBoss than other platforms. A question (I honestly don't know the answer off the top of my head): Suppose I deploy this WAR to jBoss, then using jBoss' management console, I should be able to stop and restart the associated webapp. In that case, will the separate thread that was kicked off when the servlet starts up also terminate, or will it live on? If the foregoing is not a problem in jBoss, is it possibly still a problem with some other AS?

                       

                      The other issue has to do with MINA and HornetQ. I had not been exposed to these technologies before evaluating jBPM. So the WS-HumanTask specification seems describe a command pattern, and it doesn't seem strictly necessary to expose this over SOAP or REST. So when using either the MINA or HornetQ implementation of the Human Task Service, I suppose it is reasonable to expect the developer not to care about protocol, you simply plug it in and it "just works" (unless it doesn't). Is that the case?

                       

                      Thank you for your forebearance,

                      --

                      JE