最近一直在做一个模型转换的项目。我们有一个UML工具,并且为该工具制作了一个支持BPEL4WS的插件,该插件通过UML的profile扩展机制,利用UML 的Activity 来表现业务过程(BP),用户利用我们的UML工具可以在上面建立自己的业务过程图,然后插件根据该业务过程图产生BPEL文件,再将这个BPEL文件deploy到我们的BPEE(Business
Process Execute Engine)。可是用户要想利用UML的Activity来绘制他(她)的业务过程的话非常的不直观,需要一定的学习时间。并且要对UML有较深入的认识才可以。我们知道BPMN是专门用于进行业务建模的,BPMN指定了一套用于业务过程建模的标准符号集,它非常的直观,用户很容易学会。因此我们想让我们现有的UML工具能够将用BPMN绘制的业务过程图转换成用UML Activity图。我们项目组的任务是研究将BPMN model转换成UML model的可行性。我们现在的方案是BPMN model à UML + BPMN
profile à UML +BPEL
profile.我们为此作了如下一些工作:
1. 定义BPMN metamodel,作这个工作为的是能将BPMN model用EMF model来描述。因为我们选用的是IBM 的MTF(Model
Transaction Facility),而MTF要求相互转换的model必须基于EMF。
2. UML metamodel.
我们选择的是Eclipse UML2工程中定义的UML2.0
metamodel作为我们的目标模型。
3. 定义BPMN profile和BPEL profile. 因为现有的UML 图符很有限,而BPMN又有很多图符,因此我们利用UML profile机制来扩展UML。
4. 书写规则(mapping rule)来转换模型。中间的转换层我们使用MTF。MTF定义了一套语言用于描述模型的转换。