1 2 3 Previous Next 40 Replies Latest reply on Jul 28, 2008 5:41 AM by koen.aers Go to original post
      • 30. Re: Defining the API Mission
        heiko.braun

         


        The mismatch in naming of workflow elements is nearly as bad as it can get...


        I totally agree with this. This was the reason for looking at BPMN in the first place. We wanted to get to "proven concepts" with "established terminology".

        And to be honest, following the discussions around BPMN and executable dialects, I still don't see arguments why it can't be done. Please show me examples of BPMN elements that conflict with execution.

        IMO it's not necessary to have full BPMN support. We just need those parts that we actually can make executable. If I remember correctly BPMN even defines profiles with different scopes. But I think a 60% BPMN support is still better 100% jPDL, which is, by the way, something we cannot even easily compare at the moment, because jBPM doesn't use common BPM patterns and established terminology to express it's features/capabilities.

        • 31. Re: Defining the API Mission

          In case it wasn't clear...
          My note about the mismatch between BPMN and JPDL was in no way meant to discourage mapping from B to J. I'm going through the same process as Jeff. I was only saying that introducing use of BPMN terms into the execution domain, e.g., as the basis for names in an API, would be a really bad idea.

          Re use of GPD... I'm pretty unhappy with GPD. The code base is not very extensible, and is highly dependent on the XML editor codebase.

          I went to the talk by the Eclipse BPMN editor guys at EclipseCon, and was very sold on GMF. The BPMN editor is really slick, and easily extensible. People kept complimenting them on this or that feature, and they kept saying things like "well, it wasn't really a requirement, but all we had to do to implement it was write these 5 lines of code, so we just threw it in." High praise for the framework!

          After spending some time with the code, I am even more sold. I would very strongly suggest that Koen look at GMF et al again - it's probably grown up a lot since he checked it out the first time.

          -Ed

          • 32. Re: Defining the API Mission
            jeffdelong

            Ronald and Ed, etc. If interested in my manual BPMN to JPDL mapping send me an email at jdelong@redhat.com with your email addresses.

            • 33. Re: Defining the API Mission
              tom.baeyens

               

              "heiko.braun@jboss.com" wrote:

              The mismatch in naming of workflow elements is nearly as bad as it can get...


              I totally agree with this. This was the reason for looking at BPMN in the first place. We wanted to get to "proven concepts" with "established terminology".


              BPMN is not a proven concept. Look at the discussions around BPMN 2.0 and you'll see that the future if far from clear or stable. Second, it is a analysis modelling notation with focus on the business analyst. For the terminology part, that is not a good basis for an executable process language.

              I agree with Ed's comment later on that BPMN terminology is not a good basis for the API.

              "heiko.braun@jboss.com" wrote:

              And to be honest, following the discussions around BPMN and executable dialects, I still don't see arguments why it can't be done. Please show me examples of BPMN elements that conflict with execution.


              Adding a runtime interpretation to BPMN modelling constructs is possible. But by doing that, you would limit the use of BPMN for its original purpose: analysis modelling. Because when all BPMN constructs have a runtime interpretation, that means that an analyst can not model freely any more. When he/she draws a certain box, he/she has to be aware of the implications when this process is being executed on a computer system. Which eventually will limit BPMN to graphical programming.

              It is impossible to create an executable process language so that non tech analylsts can model in all freedom and which aftwards turns out to produce exactly the right software. There must be a mapping between analysis and executable process language. The easiest and most practical way to do this is by introducing a one-way translation between BPMN and jPDL. That way BPMN can keep its focus on being a modelling notation for non tech business analysts. And jPDL can keep its focus on being an executable process language that developers can use to produce the same diagram as the analysis model.

              "heiko.braun@jboss.com" wrote:

              IMO it's not necessary to have full BPMN support. We just need those parts that we actually can make executable. If I remember correctly BPMN even defines profiles with different scopes. But I think a 60% BPMN support is still better 100% jPDL, which is, by the way, something we cannot even easily compare at the moment, because jBPM doesn't use common BPM patterns and established terminology to express it's features/capabilities.


              The market doesn't have proven concepts that we can just follow and implement. Two years ago, BPEL was the well accepted standard for BPMN. One year ago, BPMN came into the picture. So everyone focussed on the impossible BPMN to BPEL mapping. Now, as people realize BPEL is best suited for service orchestration, BPEL is starting to fade away as a solution for BPM. Now, the battle for BPMN 2.0 shows that BPMN itself is not a proven concept.


              There is only 1 product in the BPM area that I have great respect for. IDS Scheer's ARIS. They take the inverse perspective of us. We start from an executable process language jPDL, and we try to bind it to the analysis world without compromise on the technical and executable side. IDS Scheer has by far the most advanced modelling environment, and they only go as far to bind it to implementation details as they can without compromise on the analysis side.

              All initiatives that try to combine both have been proven to be good only in a niche area. There is no technology that binds the 2 automagically and is able to be more then a niche product.

              @camunda: IDS Scheer has one of the best round tripping support out there. E.g. they can create graphical diffs of analysis models and calculate the impacted parts in the related executable process. But I think it does not fit our target. As it takes a huge development effort. And it also takes a great effort from to user to bind the analysis and implementation models and keep all of that in sync. I think the latter is only suitable in the very top range of use cases. I think that with a one-way translation from analylsis to implementation model, we can serve more then 90% of the use cases.

              • 34. Re: Defining the API Mission
                tom.baeyens

                I don't think that I do a bad job in analysing and predicting the BPM markets. If you look at this article from Miko Matsumura.

                http://www.soacenter.com/?p=163

                Especially the part about The Magic Cure for BPM Business analysts Rejoice!, expresses the current mainstream thinking about BPEL. Exactly those thoughts I have been expressing constantly for the last for years.

                • 35. Re: Defining the API Mission
                  tom.baeyens

                  here's a typical example that shows how hard it is to bind executable semantics to analysis models.

                  http://davethinkingaloud.blogspot.com/2008/07/business-process-failures-examples-of.html

                  This is from a vendor that is based on BPMN and tries to make it executable with BPEL.

                  • 36. Re: Defining the API Mission
                    heiko.braun

                     


                    introducing use of BPMN terms into the execution domain, e.g., as the basis for names in an API, would be a really bad idea.


                    Why? Come on guys, add some meat to the discussion.

                    • 37. Re: Defining the API Mission
                      heiko.braun

                       


                      BPMN is not a proven concept.


                      Tom, maybe you got me wrong here. I am not talking about BPMN or BPEL as a whole. When I say concept, I mean the BPMN composites. I.e. gateway, signal, event, whatever. They all have distinct meanings and an established name.

                      So instead of naming it a decision, you could call it exclusive gateway right away. The reason why I prefer BPMN glossary over jBPM terms is that these people did a good job finding terminology and add short, descriptive explanations to the core concepts. Whereas in the PVM, we still have 3 or 4 kinds of "Executions".

                      If we could manage to become explicit in our jBPM4 terminology the same way, then I wouldn't complain. But currently I see a 200 pages document with very precise terminology (BPMN) and a redundant, hard to understand API (PVM) which is only obvious to it's inventor.

                      So give me one good reason why we should chose the hard way and try to be superior to the BPMN spec leads and come up with something on our own.

                      • 38. Re: Defining the API Mission
                        heiko.braun

                        But thanks for the examples. I'll take a look them and get back to you.

                        • 39. Re: Defining the API Mission
                          tom.baeyens

                           

                          "heiko.braun@jboss.com" wrote:
                          So instead of naming it a decision, you could call it exclusive gateway right away. The reason why I prefer BPMN glossary over jBPM terms is that these people did a good job finding terminology and add short, descriptive explanations to the core concepts.


                          First, I think you overrate the BPMN spec as the final thing that concludes the battles in BPM.

                          Second, API mainly deals mostly with runtime constructs. BPMN deals with process definition constructs.

                          Third, for the simple constructs like exclusive gateway it is possible. But the more complex you go, the harder it will be to map the analysis constructs to implementation constructs. Only if the direction for BPMN 2.0 would be to add exact executable semantics to BPMN, then it would become a viable option to make sure we cover all the constructs.

                          Forth, if BPMN becomes executable, then we should do that as a separate language. (maybe as a jPDL variant, depending on how close it is) If we take BPMN as a basis in the API, then we introduce a mismatch between XPDL and BPEL, both of whom are also supported on the PVM and those also have their own naming scheme.

                          "heiko.braun@jboss.com" wrote:

                          Whereas in the PVM, we still have 3 or 4 kinds of "Executions".


                          Can you elaborate on this ? Different views on an execution were introduced to provide proper interfaces in each use case. You helped to induce that change. We changed from offering all methods and throw an exception when a user invokes an invalid one, to only offer the appropriote methods in the different use cases of an execution. I don't yet see the relation with this post.

                          "heiko.braun@jboss.com" wrote:
                          If we could manage to become explicit in our jBPM4 terminology the same way, then I wouldn't complain. But currently I see a 200 pages document with very precise terminology (BPMN) and a redundant, hard to understand API (PVM) which is only obvious to it's inventor.

                          So give me one good reason why we should chose the hard way and try to be superior to the BPMN spec leads and come up with something on our own.


                          Because BPMN is not doing the same thing as what we're doing. We're defining a framework for building state machines and executable process languages. BPMN defines a process modelling notation.

                          Some of the languages that can be implemented on PVM even have a more technical background that is not always related to BPM: pageflow, programmatic state machines, naked BPEL. So that is why I think it is better to have a naming scheme that is neutral to all the targetted specs, patterns and languages out there.

                          The API naming convention is important, but IMHO, there are much more important debates to have:

                          1) The runtime data structures. Those determine which control flow constructs can be build on it.

                          2) Do the PVM runtime structures cover the BPMN interpretations. For each possible runtime interpretation of BPMN constructus, can we build executable constructs for it on the PVM. This again boils down to the runtime data structures.

                          When it comes to the power of a BPM/workflow engine, then mostly, your discussing the capabilities of the runtime datastructures. (In)validating those is more important then the API naming scheme.

                          • 40. Re: Defining the API Mission
                            koen.aers

                             

                            "Ed" wrote:
                            Re use of GPD... I'm pretty unhappy with GPD. The code base is not very extensible, and is highly dependent on the XML editor codebase.

                            I am sorry to hear that you are unhappy with GPD. But as a matter of fact I know its limitations and I am not that happy with it myself.
                            The current code is indeed very dependent on the XML editor. The reason for this is a combination of history and the initial goal of providing support for the developers to edit the XML file.
                            As for extensibility, as Matthew and others have shown, it is doable but there are indeed some quirks that have to be overcome. However, the input that came from users that extend the GPD has been very valuable to make this mechanism somewhat better.
                            "Ed" wrote:
                            I went to the talk by the Eclipse BPMN editor guys at EclipseCon, and was very sold on GMF. The BPMN editor is really slick, and easily extensible. People kept complimenting them on this or that feature, and they kept saying things like "well, it wasn't really a requirement, but all we had to do to implement it was write these 5 lines of code, so we just threw it in." High praise for the framework!

                            I have looked at the BPMN editor and it is indeed a very nice piece of work. However, its approach has a number of issues that I haven't been able to solve until now:
                            - serialization of XML compliant to our jPDL XSD
                            - graphical info serialized in another file or not
                            - easily integrate with an XML editor to edit the serialized XML
                            GMF builds on top of EMF and while I have been able to build small prototypes that come close to what we want, I still haven't been able to walk the final mile. I will open up a different topic with some of the results of my research. Maybe some people are able to help out with closing this final gap.
                            "Ed" wrote:
                            After spending some time with the code, I am even more sold. I would very strongly suggest that Koen look at GMF et al again - it's probably grown up a lot since he checked it out the first time.

                            I definitely agree with you that GMF has become better in the meantime. I have checked it out again after the last EclipseCon as well. Maybe I am still missing things, but as I stated before I still have problems in making it do what I want it to do.
                            So after a discussion with Kris Verlaenen (from the Drools team) around the effort to implement a common base for a 'flow' editor we have decided to not use GMF for this (the high dependency of GMF on the very intrusive EMF framework was a real breakpoint for Kris). As a plus, this new effort will be highly focused on extensibility. Anyway, if we have been looking past important things, we are open to suggestions. As already said, I will open a different topic with the ideas and research results that I obtained earlier.

                            Regards,
                            Koen

                            1 2 3 Previous Next