[Design of JBoss jBPM] - Re: Defining the API Mission
by tom.baeyens@jboss.com
"heiko.braun(a)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(a)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(a)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.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4166911#4166911
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4166911
16 years, 4 months
[Design of JBoss jBPM] - Re: Defining the API Mission
by heiko.braun@jboss.com
anonymous wrote :
| 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.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4166903#4166903
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4166903
16 years, 4 months
[Design of JBoss jBPM] - Re: Defining the API Mission
by tom.baeyens@jboss.com
"heiko.braun(a)jboss.com" wrote : anonymous 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(a)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(a)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.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4166788#4166788
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4166788
16 years, 4 months