[Design of JBoss jBPM] - Re: meeting context
by tom.baeyens@jboss.com
"heiko.braun(a)jboss.com" wrote : - ProcessEngine, Process, ProcessDefinition
| - StartEvent (None, Signal, Message)
| - Task (None, Send, Receive)
| - EndEvent (None, Signal, Message)
| - Gateway (Inclusive, Exclusive, Parallel)
| - Process, Activity Properties
| - Process, Activity Assignments
| - Signal, Message
| - SequenceFlow
|
Indeed we need to go over those concepts and establish a common vocabulary.
But the complexity of the process constructs does not have to influence the client APIs (and service APIs).
The concepts that are exposed in the Activity API do have a direct impact on what kind of process constructs you can build. That exposes e.g. the tree of executions to an activity implementation.
"kukeltje" wrote : Basic things I did do with 'the api' are
| - start a process
| | - end a process
| | - signal process to continue (either via default or supplied transition)
| | - set a variable
| | - read variable
| | - get a tasklist
| | - end a task
| | - get basic properties of a task/node/.... in a process instance (e.g. task.hasEnded())
| | - ...
| |
This lists indeed the typical basic client API operations. This is the most important interface to get right as this is the first interface that every project using jBPM will be using. And it is unrelated to the complexity of the process constructs.
The client API can be developed in the simple-to-complex fashion. Adding new capabilities typically does not influence the previous features that you've build.
The event listener API is used in most projects and activity API is only used rarely by our users. But i agree that even for those API's it would be good if we could keep them minimal and stable.
For the activity API, the simple-to-complex development strategy does not prevent big changes to the public API. Different forms of concurrency might lead to a different structure of the runtime data. (e.g. changing the tree of executions in a map of activity instances). Such changes have a big impact on the whole activity API and when such a change happens, you'll need to rewrite all the activities.
It is in that context that I have been building the PVM over the last two years: shaping the runtime data structure and verifying that all kind of process constructs can be build on top of it.
But no matter how long I worked on it and how much of these discussions I already had with the Bull people, I still think it is good to have these concepts reviewed and challenged in the group.
The discussions on process constructs should however not take up the full team meeting. Our history shows that out-of-the-box support for the different patterns/constructs has not been a critical success factor. Still I want to improve a on that. (we basically only miss the concurrency pattern that ronald mentions: unstructured forks and joins, which is easy to implement)
As mentioned before, apart from the process constructs capabilities, there are the rest of the API concepts like ProcessEngine, Configuration, event/signal/log,and so on. Those things can even more use a good review and debate.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4181177#4181177
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4181177
16 years, 3 months
[Design of JBoss jBPM] - Re: jBPM Classloading
by camunda
Hmm, I don't get the problem...
1.) I did run the JUnit tests locally with SUN Java JDK 6 -> no problems!
2.) This exception seems not really related to changes I made (doesn't mean it can not be interrelated):
Caused by: java.lang.NullPointerException
at org.jbpm.jpdl.par.ResourceAction.execute(ResourceAction.java:24)
code is (NPE in second line):
| URL resource = getClass().getResource("classresource.txt");
| InputStream stream = resource.openStream();
|
Could it have been may run with a state where not everything was committed yet? Or other ideas?
What puzzles me really is that I don't get these errors locally, even with Java 6... And they shouldn't have changed class loading basics there either...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4181176#4181176
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4181176
16 years, 3 months
[Design of JBoss jBPM] - Re: meeting context
by tom.baeyens@jboss.com
"heiko.braun(a)jboss.com" wrote : The API will have core elements and terminology. Each core elements has associated semantics which lead to implementation detail. We want the API to be correct, easy to use and easy to learn.
|
| The process of finding these core elements (or core concepts) and establishing names for them is important to get one step closer to 'correctness'.
|
I agree with easy to use and easy to learn.
But I also think that correctness is always in the eye of the beholder. Meaning that everyone that is involved with some process engine has a certain background and sees certain use cases it. That background and target use cases determine what is considered as correct. I don't think we'll be able to find BPM concepts that are considered worldwide and generally correct.
So we need to make our background as explicit as we can. We need to define our targets and use cases as clear as we can. If we agree on those, then our conclusions and the BPM concepts we consider good should be close enough to have fruitful discussions in the meeting.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4181171#4181171
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4181171
16 years, 3 months