最近一直在做一個(gè)模型轉(zhuǎn)換的項(xiàng)目。我們有一個(gè)UML工具,并且為該工具制作了一個(gè)支持BPEL4WS的插件,該插件通過(guò)UML的profile擴(kuò)展機(jī)制,利用UML 的Activity 來(lái)表現(xiàn)業(yè)務(wù)過(guò)程(BP),用戶(hù)利用我們的UML工具可以在上面建立自己的業(yè)務(wù)過(guò)程圖,然后插件根據(jù)該業(yè)務(wù)過(guò)程圖產(chǎn)生BPEL文件,再將這個(gè)BPEL文件deploy到我們的BPEE(Business
Process Execute Engine)。可是用戶(hù)要想利用UML的Activity來(lái)繪制他(她)的業(yè)務(wù)過(guò)程的話(huà)非常的不直觀(guān),需要一定的學(xué)習(xí)時(shí)間。并且要對(duì)UML有較深入的認(rèn)識(shí)才可以。我們知道BPMN是專(zhuān)門(mén)用于進(jìn)行業(yè)務(wù)建模的,BPMN指定了一套用于業(yè)務(wù)過(guò)程建模的標(biāo)準(zhǔn)符號(hào)集,它非常的直觀(guān),用戶(hù)很容易學(xué)會(huì)。因此我們想讓我們現(xiàn)有的UML工具能夠?qū)⒂?/span>BPMN繪制的業(yè)務(wù)過(guò)程圖轉(zhuǎn)換成用UML Activity圖。我們項(xiàng)目組的任務(wù)是研究將BPMN model轉(zhuǎn)換成UML model的可行性。我們現(xiàn)在的方案是BPMN model à UML + BPMN
profile à UML +BPEL
profile.我們?yōu)榇俗髁巳缦乱恍┕ぷ鳎?/span>
1. 定義BPMN metamodel,作這個(gè)工作為的是能將BPMN model用EMF model來(lái)描述。因?yàn)槲覀冞x用的是IBM 的MTF(Model
Transaction Facility),而MTF要求相互轉(zhuǎn)換的model必須基于EMF。
2. UML metamodel.
我們選擇的是Eclipse UML2工程中定義的UML2.0
metamodel作為我們的目標(biāo)模型。
3. 定義BPMN profile和BPEL profile. 因?yàn)楝F(xiàn)有的UML 圖符很有限,而BPMN又有很多圖符,因此我們利用UML profile機(jī)制來(lái)擴(kuò)展UML。
4. 書(shū)寫(xiě)規(guī)則(mapping rule)來(lái)轉(zhuǎn)換模型。中間的轉(zhuǎn)換層我們使用MTF。MTF定義了一套語(yǔ)言用于描述模型的轉(zhuǎn)換。