Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jwt-dev] Re: Samples, BPMN-JWT transformation, new committers, etc.

Hi Florian & all

More about roles vs pool & lanes in BPMN :
* BPMN as Visual Paradigm sees it : use lanes for role in UML activity diagrams http://www.visual-paradigm.com/highlight/enhancedseqdiag.jsp
   * jBPM talks about swimlanes for roles
* etc.... so I'd be ok for using lanes for roles (instead of pools) ;) It'd also solve the messageFlow issue. * Since BPMN is primarily about representation and not execution, there is no "a priori" execution meaning for it. Such one could be : different pools target different "BP execution environments" meaning different organisations for a manual process, and different organisations and / or different BP engines for (partly) automated processes. We could envision a single process comprising two lanes targeting different execution environments being modeled in BPMN, "implemented" in JWT, and from there split and converted / generated to two different processes in two different languages for two different (but JWT compatible) BP engines. I like this idea ^^ What do you think ? * We finally tried to rewrite our sample processes along these lines. Please look forward to it. * we had a better look in the STP BPMN editor and it indeed allows to choose a lane for a given activity. However the graphical representation is not meaningful by default : an activity won't appear above its lane unless you put it there. It also poses the question of generating not only the *.bpmn file but also the editor specific .bpmn_diagram file. Stephane, would it be possible to generate x's and y's for all concept's representations that would be constistent (i.e. an activity's y = its lane's y) ?

Regards
Marc

Marc Dutoo a écrit :
Hi Florian

Thanks for another of your long,comprehensive, poland-based posts ;)
And thanks as well for having reviewed our work.

I've added more thought to some of your answers, please have a look below.

Regards
Marc

Florian Lautenbacher a écrit :
Hi Marc,

first of all its good to hear that Loic and Guillaume will now support us in
the JWT project. That's great news! I'm looking forward to work with them
and maybe meet them (and you) somewhen.

Looking at your SCOrWare JWT-BPMN translation I found the several things:

Validation and normalization:
Yes, thats an important point and should be considered in the future. I
currently have a student working on a diploma thesis on the validation of
process models. Maybe his defined concepts can be included into JWT in the future. Or does somebody have already an existing validation framework that
might be easily adapted to JWT?

I was talking about validation in the more specific scope of transformation, as a way to know wether a JWT process or "correct or complete enough" to be successfully processed by a given transformation algorithm. For now, the user may try to transform any process, but the result is no guaranteed.

Some ideas : Each transformation might have different set of requirements, and there are other that might be implied by "correct enough to show up in the UI"... From all those should appear a common set of requirements that guarantee all of them and will correspond to "successfully validated" JWT processes. On the other end there could be détected all processes that will never be correct / work. In between there could additionally be a "might work / be correct" level, that would still allow the user to try to perform transformation / simulate it...

About validation frameworks : Eclipse EMF has already a standard one I think. I know such one by SOPERA is on the table in STP, but I don't know details.



Pools and Lanes in BPMN and JWT:
You said you contradict to Augsburg concerning pools and lanes and their
correspondance in JWT. I also had a look into the document [1] and found
there "A Pool represents a participant", but on the other hand he writes
"Lanes are often used to separate the activities with a specific [...]
role". However in the BPMN-spec (v1.0, May 2004) I found that "The meaning of lanes is up to the modeler. [...] Lanes are often used for such things as internal roles (e.g. Manager, Associate), systems [...]. There could be an outer set
of lanes for company departments and then an inner set of lanes for roles
within the department". Hmm, so now it's up to us, how we define it. As the
BPMN spec says we could use the lanes for OrganisationUnits (departments)
and for roles, but pools normally describe the participants in a process.
I guess, if we have several companies then we would have several pools and
the companies correspond to each other using MessageFlows. Inside one
company we would have several roles and these roles are directly connected
by ActivityEdges and describe the process of one company.
So, if somebody models only one process (one InitialNode or FinalNode, one following thread), then I would suggest to transform that into one pool with
several lanes: each lanes for each role in the process.
If there are more threads in the process (each starting with an own
InitialNode and FinalNode and there is no connection between these two
threads) then we would have two pools with several lanes inside. However,
then we don't have the possibility to model the message flow between these
two "companies".
So either we include something like a MessageFlow in the next version of JWT
or we find another strategy. Any ideas from the community?

Again in the scope of the JWT 2 BPMN transformation : we should take into account that we're more specifically targeting the STP BPMN Editor (in order to develop the transformation algorithm, we need a way to know whether a BPMN is correct, and by being able to load it or not the BPMN Editor is filling this need). So "The meaning of lanes is up to the modeler" -> here the "modeler" is the BPMN dev team, and their interpretation of the BPMN spec is important. At this point, it appears - I don't know if it's BPMN legit or not - that the STP BPMN XML schema does not allow for "lanes" elements to contain anything, it is merely a basis upon which the graphical representation is built. So : * either we use another XML model (but that would scratch the STP BPMN Editor, and the further BPMN 2 JWT transformation), * or we start to dabble in computing x's and y's of the graphical elements to know whether a lane contains an activity (just kidding) * or we choose FOR NOW to map roles to pools, and at the same time ask the STP BPMN guys what they had in mind. Anyway I'm more interested FOR NOW in a BPMN process that might be flawed but may be used somehow, that a "perfect" (according to which criteria ? pure theory ?) one that has no use.

Now what is a MessageFlow anyway ? For me a "message" is a matter of implementation, and "interactions between a BP and a participant" (as it says) are handled by applications. Would it be, in opposition to Flows that chain activities in a same execution "thread", "something asynchronous" ? no, messages can be chained as well, and Flows may be in a stalled state at some point. Some way of integrating processes that are executed on different, incompatible BP engines ? That's my best guess, however we're not trying to deploy a given BP simultaneously on several incompatibles engines in JWT (yet ;).

So I think that in this last case JWT Activity Edges are enough to describe both BPMN LinkFlows and MessageFlows. In JWT2BPMN we will generate Links within pools and Messages between them. In BPMN2JWT... well, here a JWT Message Flow or annotation capabilities would be useful in order not to lose meaning ^^



Events in JWT:
You asked "TODO what do mean incoming edges ??, TODO what does mean a JWT
Activity's eventHandler ??". In JWT we created the abstract concept of
Events, so we can make more precise sub events later. So if some event of
BPMN is needed in JWT, we can easily add it. In BPMN there is a distinction between StartEvent, IntermediateEvent and EndEvent. This means for an event with an incoming edge, that there were process actions before and now there
must be an additional event from the outside before the process could
continue. We also added the Activity.EventHandler, but this has no function till now. We wanted to add more here, but are still in the progress to. So, if there are specific ideas what should be included, please don't hesitate
and let us know.

Thanks for the input, incoming edges are clearer now.

Yeah, it appears there can be only one EventHandler per Activity / Process, so it seems to be pretty useless : its information may be with no loss put on the process since it's process wide.



DataMapping in AgilPro:
The general idea behind this was that if we have action 'A' and action 'B' and both produce a data named 'x' as output then it might be possible that a third action 'C' needs these two actions as input. For example, let 'x' be the date of a business trip and action 'A' returns the start date and action
'B' the end date. Action 'C' now executes a web service to find some
flights. Therefore, it needs the start date and the end date. But both are
named with 'x'. So, there must be a possibility to map the given data
parameters to the parameters of the application (or web service) in order to invoke the web service correctly with start date as first parameter and end
date as second parameter.
However, alas this data mapping is not used till now. Right now only the
data are specified and no parameters, so the data mapping is of little use. But I guess coming into the web service world (SOA, SCA, etc.) there will be
the need to have something like a data mapping.

Thanks for the input.



Groups:
I'm not completely sure what you mean by JWT Groups. Where do you have this
concept from?

I've read about it in your JWT - BPMN mapping paper : "visual arrangement that groups elements of the diagram informally". There's no tool in the editor for it, I don't know if it exists in the JWT XML or Ecore.



OR-nodes:
It's correct that JWT does not support OR-nodes. However, I guess its also difficult for a process engine to decide whether to execute two threads or only one thread. Most process engines will only support exclusive choices, I
guess. Am I right here? E.g. BPEL does not support inclusive choices.

You're right. Now let's look at what process engines support ;) TODO gotta look whether Bonita supports it.



Concerning the people I met at Eclipse Summit Europe who were interesting in
the JWT-project: that was somebody from ESI in Spain, one guy of the DLR
(German Aerospace Center) and a company named Sopera (Swordfish-project)
which I will meet next week again.

I know SOPERA has started contributing to STP, right now a policy editor, but it seems they have many other things they'd like to contribute, some of them too specific maybe.



Concerning the idea of an JWT FAQ: that would be great. But I guess before we should have the plugin available on our JWT-homepage, so people can test
the JWT WE and ask questions ;-)

Yep



Thanks a lot for the example process. Looks perfect. However, I did only
look at the JWT processes, but not the one from BPMN.

More goodness to come (thank Loic), have a nice week !



I hope the answers above did help you. If you have any further questions or
actions we should take, please don't hesitate to contact me again.

Best regards,

Florian



[1] http://www.bpmn.org/Documents/Introduction%20to%20BPMN.pdf


-----Ursprüngliche Nachricht-----
Von: Marc Dutoo [mailto:marc.dutoo@xxxxxxxxxxx] Gesendet: Mittwoch, 14. November 2007 19:30
An: Stéphane DRAPEAU; Florian Lautenbacher
Cc: Etienne Juliot
Betreff: JWT to BPMN translation - first spec and samples

Hello all

Here is my first take on JWT to BPMN translation detailed spec and samples.
You'll find in this mail (content or attachments) :
   * a first sample JWT process : transformation_sample_3_approval_frompp
* its translated STP BPMN files : transformation_sample_3_approval_frompp (without annotations yet however) * my analysis of JWT to BPMN translation, whose goal is to be the basis
of a translation algo. What about putting this on the wiki ?
   * Florian's answers to some questions of mine, that could be the first
step towards a "How to build processes in JWT" FAQ. What about putting this
on the wiki ?

Next steps :
* MDU : adding annotations to the STP BPMN process (though how they are
obtained is already spec'd)
   * MDU : completing my second sample, writing a third one
* everyone : sort out the last indecisions in translation behaviour (see
below first, and in attachments)
   * SDR : work on the translation ^^
   * FLA : look at all that, help out whenever it is useful (thanks for
cleaning my process)

Regards,
Marc

PS indecisions to be closed out (see details in attached SCOrWareJwtBpmn) :
   * JWT eventHandler
* JWT Data mapping : this I left out for now. Its meaning and use should
be made clearer.
   * at a lower level, about JWT events
   * I do not agree with the Augsburg proposed mapping for pool & lane,
rather "Pools represent participants, lane are for categorizing activities".
   * I do not agree with the Augsburg proposed mapping Application to
special BPMN DataObjects


_______________________________________________
jwt-dev mailing list
jwt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jwt-dev



Back to the top