最近一直在做一個模型轉換的項目。我們有一個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定義了一套語言用于描述模型的轉換。