[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.technology.jwt] Re: [Metamodel] Initial metamodel uploaded

Hi Wojciech and Florian


I think we're not that far from each other. On a global point, re-wording what was said at the Kickoff Meeting :


Starting from a metamodel close to the AgilPro metamodel has several advantages, including being able to tap into a whole host of features that AgilPro already provides (eclipse-based, emf model, modeling features... etc.). I'm not really into rewriting everything from scratch, and I agree with you that we should not try to reinvent the wheel ; and for these very reasons and the fact that we've got this code and expertise on it I'd give the advice to use it as a base.

Moreover, I'd rather have a working proof of concept of genericity that we could use to test use cases, receive feedback and preview the wam than an "under development" cathedral.

So Wojciech, that's not like we're trying to reinvent the wheel, it has already been reinvented (quite nicely at that, according to Fabrice and Miguel) by our german friends ^^ And what's in question is rather how to adapt it to fit every need of JWT's goals - which is a step we would have to pass through anyway.


Now, your list of concerns is very much interesting in this light. Here are some more comments of mine about them :


Florian Lautenbacher wrote:
Hi Wojciech,

concerning your questions about the details of AgilPro which should be revisited:

 > * definition of the performer of the activity

This is currently modelled with the Role element that is part of the Organisation. A Role is a ReferenceableElement and can henceforth be attached to each action. Perhaps it might be important to define different roles for the performer and for people involved (somebody who gives the instructions, is responsible for, working for, etc.).

That's one thing of identifying the role in the context of the workflow, that's another to model the actual users and groups that will have to be mapped and / or chosen to fit them. What does model these user and group concepts (ex. coming from an LDAP, an OS etc.) ? (Is that what you were saying, Wojciech ?)



> * data types - usually processes can have private complex data

Yes, you are right. We created some initial data tpyes like String, Integer, etc. but mostly we use the "Data" element for complex data, where we don't specify how exactly this element is structured (only which data type it has and which information type).

This is important, we should at least know how we will do that. What would be the easiest standard-inspired mapping to plug there ? Maybe BPEL-inspired WSDL types ?



> * data mapping - especially mapping between two complex types

Currently there is only a 1:1 mapping between data types, not like in BPEL where you can define the whole complex type and then map parts of the first complex type with parts of the second.

What are the drawbacks ? Can't this be worked around by merely using the "maximum complexity" type everywhere ?



> * applications - it just cannot be limited to java

This is a first part, yes. I agree with you that it should not be limited to Java. One solution could be to have an abstract "Application" class with several concrete sub-classes. One for Java, one for Web Services, one for .NET, etc.

OK for me, let me add the possibility of scripting languages.
This would in turn need for the runtime engine to be able to execute these "Applications" (which could be done through native interfaces linking, web services, REST, CORBA, DCOM etc. implemented at runtime in Java or anything else).
One important feature of using engines in the "real world" is their own application engines, and notably their own scripting engines. Being able to model them would be a great asset. Your idea ?



> * simulation data - it needs much, much more

Here, you are the specialist. I don't know much about this kind of simulation yet.

Hmm... maybe we'd need some definition of what we mean by "simulation" first.



> * extensability - how to preserve engine/tool specific data in the model? do we need to do that?


Maybe yes, depends on the framework that will be created in the WAM part of JWT for executing and monitoring a process.

Yes, I think this as to do with Applications and ApplicationProviders as seen up there. I recon it is potentially harmful for genericity, so we have to draw a clear line between what ApplicationProviders are generic and those who are not. Let's dream - maybe even allow a way to "repackage" portable ApplicationProviders so to be able to execute jPDL script on Bonita ;)



> * flow - it looks right, but I am not sure. In BPMN you can have > decision/join or parallel split on any activity. Is that the same here?

I think so. This part is similar to UML2 Activity Diagrams. You can have DecisionNode and MergeNode for alternative flows and SplitNode / JoinNode for parallel flows. How exactly is the decision/split ON an activity in BPMN?

Anyone ?


> the model seams to include graphical information (in the way like XPDL > does)

You are also right, here. This is currently used only for the graphical display and is surely not interesting for the Meta-model itself and should be part of the editor.

Is there any way to draw a clear line between the two models, or do they need to be separated "at birth" ? Some EMF / GMF magic, Etienne ?



> What is in this model that is not available in the other meta-models?

As already mentioned above this model is principially similar to UML2 Activity Diagrams. There we don't have applications, data or a better description of roles than available in swimlanes. We tried to focus on the process and added some functional descriptions like e.g. in ARIS. But, currently there is no detailed comparison between this approach and the other standards. I am currently working on that and will put a document on the wiki about this topic, soon.

I liked what I've seen about this document ;)


Best regards,

Florian

Regards Marc