2 Replies Latest reply on Jul 7, 2008 9:42 AM by Thomas Diesler

    Please review the BPM API

    Thomas Diesler Master
        • 1. Re: Please review the BPM API
          Alejandro Guizar Master

          First impressions:

          1. In PVM the process instance and the top level execution were recognized as being the same thing, sans a few extra properties in the process instance. The aggregation of nested executions should be in the Execution itself, while ProcessInstance should extend Execution.

          2. Given the above consideration, ExecutionManager and ProcessInstanceManager should be merged.

          3. Is "attachment" a synonym of [process] variable? If so, I believe the latter term should be used. Otherwise, can you clarify the concept and whether it maps to an existing class in jBPM 3?

          4. The transition router usage model is not clear to me. I guess you are still working on it, tough.

          • 2. Re: Please review the BPM API
            Thomas Diesler Master

            Thanks for your feedback Alex.

            In PVM the process instance and the top level execution were recognized as being the same thing


            I started a separate thread for this here
            http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4162852#4162852

            Is "attachment" a synonym of [process] variable


            Attachments associated with an ExecutionContext are indeed similar to process variables. Only that they use generics, which gives us compile time checking for process variable usage.

            Attachments in a more general term can be associated with other constructs as well. The ProcessInstance for example has Attachments as well.

            The transition router usage model is not clear to me


            It is generally important to separate the concerns of user Activity and the Transition to the next Node. A credit card activity deals with credit card operations and should not have to have intimate knowledge of the ProcessDefinition.

            For example if the Node that deals with credit card processing becomes a new Transition "goto checking account on failure" the Activity that deals with the credit card provider should not have to be touched.

            Generally, the execution of user code is one thing, taking the next transition is another - both are fundamentally different.