李潤(rùn)曄, 倪 楓, 劉 姜, 鐘賢欣, 全啟宸, 周彥琪
(上海理工大學(xué) 管理學(xué)院,上海 200093)
信息時(shí)代,企業(yè)業(yè)務(wù)環(huán)境瞬息萬(wàn)變,對(duì)信息系統(tǒng)的復(fù)雜性、敏捷性等要求越來(lái)越高。雖然業(yè)務(wù)流程管理(business process management, BPM)能促進(jìn)業(yè)務(wù)流程的優(yōu)化,但無(wú)法對(duì)齊不斷變化的業(yè)務(wù)流程和IT 系統(tǒng)。而能銜接BPM 與企業(yè)后端并封裝應(yīng)用系統(tǒng)功能的面向服務(wù)架構(gòu)(service-oriented architecture, SOA)可以通過(guò)其松耦合、粗粒度的特點(diǎn),彌補(bǔ)BPM 固化于各系統(tǒng)的缺陷,還能將業(yè)務(wù)流程轉(zhuǎn)化為可復(fù)用組件,利用接口和協(xié)議相互聯(lián)系,促進(jìn)系統(tǒng)間信息以及業(yè)務(wù)邏輯的共享。兩者結(jié)合,融合信息技術(shù)與管理技術(shù),確保業(yè)務(wù)流程的高效性以及IT 架構(gòu)的敏捷性,充分利用現(xiàn)有資源,促進(jìn)業(yè)務(wù)間協(xié)作。
對(duì)象管理組(object management group, OMG)所提出的模型驅(qū)動(dòng)架構(gòu)(model driven architecture,MDA)為BPM+SOA 系統(tǒng)架構(gòu)所涉及的多層次建模提供參考,其開(kāi)發(fā)軟件主要從計(jì)算無(wú)關(guān)模型(computing independent model, CIM)到平臺(tái)無(wú)關(guān)模型(platform independent model, PIM),再到平臺(tái)相關(guān)模型(platform specific model, PSM),最后轉(zhuǎn)換成代碼。由此,開(kāi)發(fā)各階段的工作成果得到保護(hù),過(guò)程由一系列模型驅(qū)動(dòng),并經(jīng)過(guò)迭代使其不斷完善[1]。如今基于MDA 的復(fù)雜系統(tǒng)建模主要有通用方法[2]、并行方法[3]、對(duì)象?過(guò)程法[4]和狀態(tài)分析法[5]這4 種。
近年來(lái),國(guó)內(nèi)外對(duì)BPM+SOA 的研究眾多,如Beimborn 等證明了兩者的互補(bǔ)性[6];王玉娟促進(jìn)了中石化科技管理系統(tǒng)復(fù)雜業(yè)務(wù)邏輯的可維護(hù)性與可擴(kuò)展性的實(shí)現(xiàn)[7];Zhao 等以BPM 為出發(fā)點(diǎn),結(jié)合SOA 與企業(yè)服務(wù)總線(xiàn)實(shí)現(xiàn)系統(tǒng)的集成[8];Alam 等對(duì)面向服務(wù)架構(gòu)方法的發(fā)展與影響進(jìn)行系統(tǒng)評(píng)估[9];Laumer 等通過(guò)調(diào)查,得出信息系統(tǒng)與不同業(yè)務(wù)流程管理組件結(jié)合,將產(chǎn)生不同流程績(jī)效的結(jié)論[10];Hachicha 等為面向服務(wù)架構(gòu)中的協(xié)作業(yè)務(wù)流程提供了分析與評(píng)估的方法[11]。然而,這些研究與建模語(yǔ)言的聯(lián)系不夠緊密,限制了通過(guò)BPM+SOA 方法進(jìn)行系統(tǒng)架構(gòu)設(shè)計(jì)與建模的工程應(yīng)用。
另外,BPM+SOA 的系統(tǒng)架構(gòu)需要將計(jì)算獨(dú)立的業(yè)務(wù)模型轉(zhuǎn)換成平臺(tái)獨(dú)立的服務(wù)模型。模型轉(zhuǎn)換是模型驅(qū)動(dòng)架構(gòu)的關(guān)鍵技術(shù)之一,可被用于將質(zhì)量較低的模型重構(gòu)成質(zhì)量較高的模型[12],或?qū)⒏叱橄髮拥哪P娃D(zhuǎn)換為低抽象層的模型。轉(zhuǎn)換技術(shù)主要有直接法、目標(biāo)結(jié)構(gòu)驅(qū)動(dòng)法、關(guān)系法、圖轉(zhuǎn)換法等[13]。近年來(lái),曾一等通過(guò)元模型實(shí)現(xiàn)PIM到PSM 的自動(dòng)轉(zhuǎn)換[14];蘇紅軍等驗(yàn)證了通過(guò)編程實(shí)現(xiàn)模型驅(qū)動(dòng)轉(zhuǎn)換的靈活性和功能實(shí)現(xiàn)的多樣性[15]。然而,目前國(guó)內(nèi)學(xué)者的相關(guān)研究主要圍繞PIM 與PSM 間的轉(zhuǎn)換,甚少涉及CIM,難以滿(mǎn)足BPM+SOA 的系統(tǒng)架構(gòu)建模的需要。
元對(duì)象機(jī)制(meta object facility, MOF)中,元模型是模型的上層抽象,能滿(mǎn)足模型自身的集成、存儲(chǔ)以及管理等需要[16]。在元模型應(yīng)用中,本體元模型較為常見(jiàn)。如Henderson-Sellers 結(jié)合元模型和本體論的概念,提出“領(lǐng)域本體論”(domain ontology)[17];如Béhé等所提出的本體元模型描述了多代理模擬概念[18];又如閆雪峰等所構(gòu)建的本體設(shè)計(jì)元模型能夠有效地轉(zhuǎn)換并實(shí)例化成為虛擬樣機(jī)仿真模型[19]。部分學(xué)者還注意到系統(tǒng)架構(gòu)中,建模語(yǔ)言和元模型之間的關(guān)系,提出元建模方法,如何嘯等所提出的表示法定義元模型[20],又如Pardillo 等對(duì)擴(kuò)展UML 配置元模型(UML profile meta-model)的研究[21]。但元建模對(duì)語(yǔ)義的描述不夠完善且在需要多側(cè)面描述的復(fù)雜系統(tǒng)建模過(guò)程中的作用相對(duì)有限[22]。
本文將在前人研究的基礎(chǔ)上,利用protégé軟件進(jìn)行語(yǔ)義層和語(yǔ)法層兩次推理,探究雙方各自的建模語(yǔ)言之間的映射規(guī)范,并通過(guò)案例證明方法的可行性。
由業(yè)務(wù)流程管理倡議組織創(chuàng)建并由OMG 發(fā)布的業(yè)務(wù)流程建模與標(biāo)注(business process model and Notation, BPMN)在建模領(lǐng)域的優(yōu)勢(shì)主要在于:提供了一套易被業(yè)務(wù)用戶(hù)理解的標(biāo)記語(yǔ)言,所構(gòu)建的模型注重分析與描述業(yè)務(wù)流程,有助于對(duì)流程的可視化管理,為其設(shè)計(jì)與實(shí)現(xiàn)提供標(biāo)準(zhǔn)化橋梁。BPMN2.0 語(yǔ)言則進(jìn)一步為存儲(chǔ)、交換與執(zhí)行等問(wèn)題提供解決方案。它將圖形化標(biāo)記分為5 種基本類(lèi)型,即流對(duì)象(flow objects)、連接對(duì)象(connecting objects)、泳道(swim lanes)、人工制造物(artifacts)、數(shù)據(jù)(data)。
面向服務(wù)架構(gòu)建模語(yǔ)言(service-oriented architecture modeling language, SoaML)是對(duì)標(biāo)準(zhǔn)建模語(yǔ)言(UML)的拓展,關(guān)注并描述參與者的需要與功能,并將他們?cè)诜?wù)價(jià)值鏈中聯(lián)系起來(lái)。其主要建模元素有參與者(participant)、接口(interface)、服務(wù)合約(service contract)、服務(wù)體系結(jié)構(gòu)(service architecture)、服務(wù)數(shù)據(jù)(service data)以及能力(capability)。SoaML 的主要優(yōu)勢(shì)在于:關(guān)注整個(gè)系統(tǒng)架構(gòu)的實(shí)現(xiàn),為業(yè)務(wù)模型到IT 模型搭設(shè)橋梁,提供變化的可追溯性,只要服務(wù)定義維持不變,業(yè)務(wù)流程或信息技術(shù)方面就能進(jìn)行相對(duì)獨(dú)立的變更,由此提升系統(tǒng)的敏捷性。
在系統(tǒng)架構(gòu)過(guò)程中,融合BPMN 與SoaML 的建模能力。由于BPMN 能夠較宏觀地展現(xiàn)多個(gè)參與者間的業(yè)務(wù)交互,描述業(yè)務(wù)活動(dòng)的實(shí)現(xiàn)過(guò)程,確保系統(tǒng)能夠緊密匹配持續(xù)優(yōu)化的業(yè)務(wù)流程,故以BPMN 為主要建模語(yǔ)言的業(yè)務(wù)模型對(duì)應(yīng)系統(tǒng)需求描述而獨(dú)立于技術(shù)實(shí)現(xiàn)的CIM;由于SoaML 將具體的業(yè)務(wù)活動(dòng)封裝成描述功能的服務(wù),并展現(xiàn)服務(wù)間關(guān)系和數(shù)據(jù)流,故以SoaML 為主要建模語(yǔ)言的服務(wù)模型對(duì)應(yīng)重視整個(gè)系統(tǒng)架構(gòu)的實(shí)現(xiàn)而忽略平臺(tái)相關(guān)部分的PIM。以此為原則建立融合機(jī)制,不但銜接業(yè)務(wù)層與技術(shù)層,更符合模型驅(qū)動(dòng)架構(gòu)的要求。在DoDAF 2.X(The Department of Defense Architecture Framework 2.0)框架下,BPMN 滿(mǎn)足業(yè)務(wù)活動(dòng)模型OV-5b 的要求,而SoaML 滿(mǎn)足展現(xiàn)參與者和服務(wù)以及兩兩相互關(guān)系的SvcV-1 模型與描述服務(wù)功能以及功能中服務(wù)數(shù)據(jù)流的SvcV-4 模型等的要求。
本文通過(guò)No Magic 公司的Cameo EA 產(chǎn)品構(gòu)建BPMN 和SoaML 模型。Cameo EA 為系統(tǒng)架構(gòu)提供強(qiáng)大而健全的標(biāo)準(zhǔn),促進(jìn)同一系統(tǒng)不同視圖模型數(shù)據(jù)元素的一致性,有助于BPMN 與SoaML的結(jié)合。
結(jié)合上文所述,將元模型分為本體元模型和標(biāo)記元模型。本體元模型是基于概念所處語(yǔ)境以及自身語(yǔ)義的,屬于語(yǔ)義層的元模型。而為圖形化建模語(yǔ)言服務(wù)的標(biāo)記元模型則由于抽象圖形在模型中本身帶有一定的規(guī)則和語(yǔ)法,屬于語(yǔ)法層的元模型。圖1 體現(xiàn)了兩者在MOF 中的運(yùn)用以及區(qū)別。
圖 1 本體元模型和標(biāo)記元模型在元對(duì)象機(jī)制中的運(yùn)用及兩者區(qū)別Fig.1 Application of the ontology meta-model and notation meta-model in MOF and the differences between them
基于Gerber 等的觀點(diǎn):“若一個(gè)本體模型能降低抽象級(jí)而建立實(shí)例化的模型,則這個(gè)本體模型就是該模型實(shí)例的元模型[23]”??梢匀绱死斫獗倔w元模型:基于語(yǔ)義構(gòu)建的,能夠?qū)⑵渌母拍顚?shí)例化成具體的、彼此間存在關(guān)系的詞匯并構(gòu)成模型的本體模型。本體元模型用集合語(yǔ)言表示為
式中:MMO表示本體元模型;EO表示本體元素;AO表示相關(guān)屬性;RO表示類(lèi)與類(lèi)或類(lèi)與屬性間的關(guān)系。
基于何嘯等的表示法定義元模型[20]、Pardillo等的UML 配置元模型擴(kuò)展版[21]、可視化建模語(yǔ)言使用指南中的元素分類(lèi)圖等,可以如此理解標(biāo)記元模型:基于語(yǔ)法構(gòu)建的,能將其所包含的標(biāo)記實(shí)例化成具體的、彼此關(guān)聯(lián)的符號(hào)并構(gòu)成圖形化模型的模型。標(biāo)記元模型用集合語(yǔ)言表示為
式中:MMN表示標(biāo)記元模型;EN表示標(biāo)記元素;AN表示相關(guān)屬性;RN表示標(biāo)記與標(biāo)記或標(biāo)記與屬性間的關(guān)系。
圖1 中,M2 層的“人吃食物”是M3 層的“飲食起居”這個(gè)高度抽象的概念性詞語(yǔ)的一個(gè)實(shí)例。在這個(gè)本體元模型中,“人”和“食物”都是實(shí)體EO,它們都具備自身的屬性,即AO,而“吃”成為了這2 個(gè)實(shí)體之間的關(guān)系RO。至于M2 層的標(biāo)記元模型,是對(duì)M3 層的“BPMN 元素”這一抽象概述的一種實(shí)例化。不同于偏重語(yǔ)義的本體元模型,該標(biāo)記元模型中“泳道”、“任務(wù)”、“事件”3 個(gè)實(shí)體EN是BPMN模型中的3 種圖形符號(hào),它們自身所具備的屬性AN,是由建模語(yǔ)言BPMN 的語(yǔ)法要求所賦予的。比如,按照BPMN 語(yǔ)法規(guī)定,“泳道”和“任務(wù)”的符號(hào)形狀與用途都不相同,“泳道”有“一大一小兩矩形框”與“體現(xiàn)行為主體”的屬性,而“任務(wù)”有“圓角矩形框”與“表示流程中某個(gè)活動(dòng)”的屬性。實(shí)體間的關(guān)系RN,也需要結(jié)合BPMN 的語(yǔ)法要求。比如,“泳道”和“任務(wù)”的關(guān)系RN是“任務(wù)”實(shí)體必須嵌在“泳道”實(shí)體中才能體現(xiàn)該“泳道”所代表的主體進(jìn)行該“任務(wù)”。因此,本體元模型是可以基于自然語(yǔ)言語(yǔ)義直接構(gòu)建,而標(biāo)記元模型的構(gòu)建必須考慮其上層,即某種可視化建模語(yǔ)言的語(yǔ)法規(guī)定。
由于系統(tǒng)架構(gòu)涉及多個(gè)視圖表述,其建模語(yǔ)言各不相同,并需要保持語(yǔ)義的一致性和語(yǔ)法的正確性,因此,代表語(yǔ)義層的本體元模型將維持不變,代表語(yǔ)法層的各建模語(yǔ)言標(biāo)記元模型間能夠通過(guò)本體元模型實(shí)現(xiàn)映射,而且標(biāo)記元模型所對(duì)應(yīng)的概念,是本體元模型中不同視圖的交集O,所以,兩者關(guān)系可如圖2 所示。
圖 2 本體元模型和標(biāo)記元模型的關(guān)系Fig. 2 Relationship between the ontology meta-model and notation meta-model
為了描述系統(tǒng)架構(gòu)建模過(guò)程中所涉及到的概念,聯(lián)系不同建模語(yǔ)言,需要構(gòu)建一個(gè)本體元模型。首先,由于本文主要研究BPM+SOA 的系統(tǒng)架構(gòu)建模,因此,該本體元模型以運(yùn)用BPM 思想的業(yè)務(wù)視圖和代表SOA 理念的服務(wù)視圖為主。其次,參考美國(guó)國(guó)防部提出的核心體系結(jié)構(gòu)數(shù)據(jù)模型以及DoDAF 元模型中所涉及的概念,提出適合各視圖并具有代表性的本體元素。再次,為這些元素賦予功能屬性,實(shí)現(xiàn)不同建模語(yǔ)言的標(biāo)記元模型間的映射。最后,基于語(yǔ)義明確它們的關(guān)系,進(jìn)而得到圖3 的本體元模型。
由圖3 可知,式(1)中的MMO為圖3 所示的BPM+SOA 系統(tǒng)架構(gòu)的本體元模型;本體元素EO有“節(jié)點(diǎn)”、“活動(dòng)”、“信息”、“規(guī)則”、“資源”、“能力”等;相關(guān)屬性AO則是矩形框內(nèi)的功能屬性;“組成”和“是屬性”則代表本體元素間以及本體元素和屬性間的關(guān)系RO。其中,業(yè)務(wù)視圖和服務(wù)視圖中的“信息”主要指模型中被傳遞的信息實(shí)例, 該實(shí)例是活動(dòng)輸入、輸出的來(lái)源,與活動(dòng)是多對(duì)多的關(guān)系;而服務(wù)視圖中的“資源”則描述系統(tǒng)在活動(dòng)的執(zhí)行過(guò)程中所涉及到的相關(guān)數(shù)據(jù)實(shí)體。另外,結(jié)合圖2 和圖3,可得當(dāng)標(biāo)記元模型A 表示BPMN 的標(biāo)記元模型,而標(biāo)記元模型B 表示SoaML 的標(biāo)記元模型時(shí),A 屬于業(yè)務(wù)視圖,B 屬于服務(wù)視圖,交集為
圖 3 業(yè)務(wù)流程管理結(jié)合面向服務(wù)架構(gòu)的系統(tǒng)架構(gòu)的本體元模型Fig.3 Ontology meta-model of system architecture based on BPM+SOA
式中:n 表示節(jié)點(diǎn);a 表示活動(dòng);i 表示信息;r 表示規(guī)則。
建模語(yǔ)言的語(yǔ)法可視作諸多標(biāo)記的語(yǔ)義的集合,所以,標(biāo)記元模型的構(gòu)建方法與本體建模相似。而式(2)中的MMN為圖4 所示BPMN 的部分標(biāo)記元模型以及圖5 所示的SoaML 標(biāo)記元模型;圖4和圖5 中的橢圓框代表標(biāo)記元素EN;矩形框代表相關(guān)屬性AN;“屬于”、“組成”和“是屬性”則代表標(biāo)記元素間以及標(biāo)記元素和屬性間的關(guān)系RN。
圖 4 業(yè)務(wù)流程建模與標(biāo)注的部分標(biāo)記元模型(以流程編制模型為主)Fig.4 Partial notation meta-model of BPMN (mainly based on process orchestration)
3.3.1 BPMN 的元模型
圍繞業(yè)務(wù)視圖中最常見(jiàn)的流程編制元素,在確定了重要的專(zhuān)業(yè)術(shù)語(yǔ)及其屬性,并且結(jié)合語(yǔ)義關(guān)系明確了與BPMN 標(biāo)記元素的映射關(guān)聯(lián)之后,可得如圖4 所示的以流程編制模型為主的部分BPMN 標(biāo)記元模型。
3.3.2 SoaML 的元模型
SoaML 對(duì)UML 的延伸主要有6 個(gè)方面,根據(jù)語(yǔ)義確定SoaML 標(biāo)記元素間關(guān)系并為它們賦予功能屬性,可得如圖5 所示的SoaML 標(biāo)記元模型。
圖6 展示了本文使用protégé進(jìn)行映射的思路,其中,元素的功能屬性是為了實(shí)現(xiàn)推理,之所以使用本體元模型,是因?yàn)橄到y(tǒng)架構(gòu)是基于DoDAF 框架的,需要應(yīng)用該框架內(nèi)的相關(guān)概念確保不同建模語(yǔ)言的標(biāo)記元模型間映射的準(zhǔn)確性,進(jìn)而為不同層級(jí)模型間的轉(zhuǎn)換始終滿(mǎn)足DoDAF 框架的要求提供保障?;诖怂悸?,本文將推理映射分為兩部分。
第一步是將標(biāo)記元素映射到本體元素的語(yǔ)義層映射,當(dāng)標(biāo)記元素集M 的屬性值為功能屬性集F 時(shí),便能利用推理建立M 和屬性值同為F 相等類(lèi)的本體元素集E 之間的映射關(guān)系。第二步是為不同建模語(yǔ)言的標(biāo)記元素構(gòu)建映射關(guān)系的語(yǔ)法層映射?;谏弦徊降耐评恚箤傩灾禐镕 的標(biāo)記元素集M 和屬性值為F 的標(biāo)記元素集N 都成為了E 的子集,進(jìn)而以E 為橋梁,生成M 和N 的映射規(guī)范。
語(yǔ)義層映射是為了確保語(yǔ)義間的一致性,即保障不同抽象級(jí)的模型始終處于同一個(gè)系統(tǒng)架構(gòu)的框架下;而語(yǔ)法層映射是為了確保語(yǔ)法的準(zhǔn)確性,即通過(guò)建立2 個(gè)標(biāo)記元模型間的映射規(guī)范,保障標(biāo)記的使用規(guī)則滿(mǎn)足當(dāng)前的建模語(yǔ)言要求。語(yǔ)義層映射是語(yǔ)法層映射的基礎(chǔ),語(yǔ)法層映射是語(yǔ)義層映射在系統(tǒng)架構(gòu)建模中的進(jìn)一步應(yīng)用,所獲得的映射規(guī)范則是兩步推理的結(jié)論。
3.4.1 語(yǔ)義層映射
在protégé中完成本體元模型和標(biāo)記元模型的構(gòu)建后,使用其自帶的推理機(jī)進(jìn)行推理,本體元模型的各個(gè)本體元素因推理而具備子類(lèi),圖7 為借助OWL Viz 插件展示的以本體元素“節(jié)點(diǎn)”為例的推理結(jié)果節(jié)選??梢?jiàn),通過(guò)推理,標(biāo)記元素根據(jù)其所具備的功能屬性,映射到了本體元素,即語(yǔ)義層的映射得到實(shí)現(xiàn)。
圖 7 以“節(jié)點(diǎn)”為例的推理后模型Fig.7 Inferred model in OWL Viz taking “node” as an example
3.4.2 語(yǔ)法層映射
在原有的基礎(chǔ)上,新增一個(gè)類(lèi)mapping_rule,利用推理機(jī)進(jìn)行推理,并將推理所得的映射規(guī)范整理成表1。表1 縱向是BPMN 的標(biāo)記元素,橫向是SoaML 的標(biāo)記元素。表中●表示存在映射關(guān)系,空則表示不存在映射關(guān)系。
表 1 業(yè)務(wù)流程建模與標(biāo)注和面向服務(wù)架構(gòu)建模語(yǔ)言的映射規(guī)范Tab.1 Mapping rules between BPMN and SoaML
綜上所述,來(lái)自不同建模語(yǔ)言的標(biāo)記元素通過(guò)系統(tǒng)架構(gòu)本體元模型的不同抽象級(jí)的交集O 生成標(biāo)記間的映射規(guī)范,即語(yǔ)法層的映射得到實(shí)現(xiàn)。
在通過(guò)這兩步映射所得的映射規(guī)范中,存在映射關(guān)系的2 個(gè)標(biāo)記元素必定是同一個(gè)本體元素因protege 推理而具備的子類(lèi)。又因?yàn)樵摫倔w元素所隸屬的BPM+SOA 系統(tǒng)架構(gòu)本體元模型是基于DoDAF 框架而構(gòu)建的,同為該本體元素子類(lèi)的標(biāo)記元素皆在一定程度上符合DoDAF 框架的要求,都能在各自的可視化模型中體現(xiàn)該本體元素的語(yǔ)義,所以,語(yǔ)義的一致性得到了保障。而本體元素和標(biāo)記元素間以及標(biāo)記元素之間的映射關(guān)系主要通過(guò)它們的功能屬性來(lái)確立,標(biāo)記元素的功能屬性是由該標(biāo)記元素所屬的建模語(yǔ)言的語(yǔ)法規(guī)定所賦予的,因此,標(biāo)記元素間的映射關(guān)系滿(mǎn)足各自建模語(yǔ)言的語(yǔ)法要求,確保了語(yǔ)法準(zhǔn)確性。
對(duì)于BPM+SOA 的系統(tǒng)架構(gòu)下的模型構(gòu)建,主要根據(jù)上述元模型映射的方法,并參考DoDAF的諸多視圖。DoDAF 2.X 以數(shù)據(jù)為中心,支持SOA,并具備展現(xiàn)模型頂層特性的全景視圖(all viewpoint, AV)、描述可部署能力和能力需求等的能力視圖(capability viewpoint, CV)、闡述所設(shè)想的業(yè)務(wù)和行動(dòng)等的業(yè)務(wù)視圖(operational viewpoint,OV)、體現(xiàn)執(zhí)行者和服務(wù)以及交互關(guān)系的服務(wù)視圖(service viewpoint, SvcV)、展現(xiàn)獨(dú)立系統(tǒng)或遺留系統(tǒng)情況的系統(tǒng)視圖(systems viewpoint, SV)、分析能力和業(yè)務(wù)與所實(shí)施項(xiàng)目的關(guān)系的項(xiàng)目視圖(project viewpoint, PV)、描述數(shù)據(jù)關(guān)系并保證數(shù)據(jù)結(jié)構(gòu)一致性的數(shù)據(jù)視圖(data and information viewpoint, DIV)、展現(xiàn)可應(yīng)用的標(biāo)準(zhǔn)或約束等的標(biāo)準(zhǔn)視圖(standards viewpoint, StdV)。
建模過(guò)程如圖8 所示。第一步,根據(jù)外界需求構(gòu)建能力視圖;第二步,構(gòu)建以BPMN 為主要建模語(yǔ)言的業(yè)務(wù)視圖;第三步,按照映射規(guī)范,構(gòu)建以SoaML 為主要建模語(yǔ)言的服務(wù)視圖;第四步,構(gòu)建相應(yīng)的數(shù)據(jù)視圖和其他視圖;第五步,根據(jù)變化的需求,以原能力視圖模型為初始狀態(tài),對(duì)其進(jìn)行迭代,即重復(fù)上述步驟,完善其余視圖模型,持續(xù)優(yōu)化系統(tǒng),保障系統(tǒng)敏捷性,逐漸接近目標(biāo)。圖8 中,各視圖下標(biāo)n(n≥1)表示迭代的次數(shù),每迭代一次,都會(huì)使得n=n+1,由此循環(huán)迭代該系統(tǒng)架構(gòu)建模過(guò)程。
圖 8 基于業(yè)務(wù)流程管理結(jié)合面向服務(wù)架構(gòu)的系統(tǒng)架構(gòu)建模過(guò)程Fig.8 Process of system architecture modeling based on BPM+SOA
按照上述建模過(guò)程,本案例的建模步驟主要有:第一步,構(gòu)建能力視圖,展現(xiàn)功能結(jié)構(gòu);第二步,構(gòu)建業(yè)務(wù)視圖,描述節(jié)點(diǎn)、信息流、業(yè)務(wù)流程以及規(guī)則;第三步,構(gòu)建服務(wù)視圖,體現(xiàn)系統(tǒng)功能的參與者、行動(dòng)、服務(wù)以及交互關(guān)系;第四步,構(gòu)建數(shù)據(jù)視圖,描述業(yè)務(wù)數(shù)據(jù)間關(guān)系。其中,業(yè)務(wù)視圖與服務(wù)視圖將重點(diǎn)體現(xiàn)前文提及的元模型映射的方法。
游樂(lè)園智能手環(huán)適用于覆蓋范圍廣、人口流動(dòng)性大、所含子項(xiàng)目眾多的區(qū)域,如迪士尼樂(lè)園,其目標(biāo)用戶(hù)主要是園區(qū)內(nèi)的游客。其設(shè)計(jì)初衷在于引導(dǎo)游客參與故事情景,提升游園體驗(yàn),并設(shè)置電子圍欄避免在游玩時(shí)以?xún)和癁榇淼挠慰驮谌巳褐信c同伴走散,還能主動(dòng)就突發(fā)狀況發(fā)起緊急呼救,為園區(qū)安全提供強(qiáng)有力的保障。因此,智能手環(huán)有如圖9 所示的幾個(gè)主要功能。
圖 9 游樂(lè)園智能手環(huán)功能結(jié)構(gòu)圖Fig.9 Functional structure of the smart bracelet for amusement park
智能手環(huán)系統(tǒng)主要涉及游客、智能手環(huán)、游玩設(shè)備、第三方(如安全中心和急救中心)等節(jié)點(diǎn),故以“走失尋回”場(chǎng)景為例的信息流如圖10所示。而圖11 所示的BPMN 模型,展現(xiàn)該場(chǎng)景中的工作流程。
業(yè)務(wù)視圖還包含描述該業(yè)務(wù)中所有預(yù)期事件執(zhí)行條件的規(guī)則模型,表2 例舉了“走失尋回”場(chǎng)景下的一條規(guī)則。
圖 10 “走失尋回”場(chǎng)景下智能手環(huán)業(yè)務(wù)節(jié)點(diǎn)與信息流Fig.10 Operational node and resource flow of the smart bracelet in “l(fā)ost search” scenario
圖 11 “走失尋回”場(chǎng)景下的BPMN 模型Fig.11 BPMN model in “l(fā)ost search” scenario
表 2 “走失尋回”場(chǎng)景下的業(yè)務(wù)規(guī)則模型節(jié)選Tab.2 Partial operational rules model in “l(fā)ost search ”scenario
首先,將業(yè)務(wù)視圖中場(chǎng)景“走失尋回”用服務(wù)體系結(jié)構(gòu)來(lái)展現(xiàn),用于描述各服務(wù)以及它們之間的關(guān)系,如圖12 所示。其中,3 個(gè)參與者(Participant)分別對(duì)應(yīng)業(yè)務(wù)視圖中的3 個(gè)泳道,游客、智能手環(huán)和安全中心。業(yè)務(wù)視圖中的任務(wù)“設(shè)置初始值”、“游覽園區(qū)”和子流程“地理定位”被打包映射成游客和智能手環(huán)間的一個(gè)服務(wù)合約(Service Contract)“地理定位”。子流程“狀態(tài)應(yīng)對(duì)”和任務(wù)“追尋目標(biāo)”被打包映射成游客和智能手環(huán)間的服務(wù)合約“狀態(tài)應(yīng)對(duì)”。任務(wù)“確認(rèn)尋回”被映射成服務(wù)合約“確認(rèn)尋回”。另外,由于業(yè)務(wù)視圖中,智能手環(huán)和安全中心也發(fā)生了交互,所以,將子流程“狀態(tài)應(yīng)對(duì)”中與安全中心相關(guān)的任務(wù)和任務(wù)“確認(rèn)尋回”打包,映射成第四個(gè)服務(wù)合約“第三方幫助”。
其次,結(jié)合映射規(guī)范,定義各服務(wù)合約中的接口和角色,如圖13 所示,消息流都將通過(guò)接口的不同操作(operations)實(shí)現(xiàn)傳遞。由泳道映射而來(lái)的角色,相比參與者,增加了消息提供方(provider)和消息使用方(consumer)的設(shè)定,由此體現(xiàn)了消息的流向。接口則由業(yè)務(wù)視圖中的消息流映射而來(lái),并在消息流的基礎(chǔ)上,定義了信息傳遞的操作,為進(jìn)一步實(shí)現(xiàn)該系統(tǒng)奠定基礎(chǔ)。
業(yè)務(wù)視圖中BPMN 模型的語(yǔ)義延續(xù)到服務(wù)視圖中,并根據(jù)服務(wù)視圖中SoaML 的語(yǔ)法規(guī)定調(diào)整標(biāo)記元素,以此保障了語(yǔ)法的準(zhǔn)確性。
圖 12 “走失尋回”場(chǎng)景下的服務(wù)體系結(jié)構(gòu)Fig.12 Service architecture in “l(fā)ost search” scenario
圖 13 “走失尋回”場(chǎng)景下的服務(wù)合約Fig.13 Service contract in “l(fā)ost search” scenario
圖 14 “走失尋回”場(chǎng)景下的邏輯數(shù)據(jù)模型Fig.14 Logic data model in “l(fā)ost search” scenario
本案例主要展現(xiàn)業(yè)務(wù)流程中的數(shù)據(jù)要素,即構(gòu)建邏輯數(shù)據(jù)模型。經(jīng)過(guò)定義實(shí)體、定義關(guān)系和定義屬性3 個(gè)步驟,分解BPMN 模型中的消息流和數(shù)據(jù)關(guān)聯(lián),得到圖14 的邏輯數(shù)據(jù)模型。
本文所提出的基于元模型映射的BPM+SOA系統(tǒng)架構(gòu)建模方法,為面向服務(wù)業(yè)務(wù)流程建模理論與建模語(yǔ)言的融合提供了一種思路,促進(jìn)了系統(tǒng)架構(gòu)設(shè)計(jì)過(guò)程中CIM 到PIM 的轉(zhuǎn)換。另外,將語(yǔ)義層的本體元模型和語(yǔ)法層的標(biāo)記元模型相結(jié)合,有助于維持系統(tǒng)架構(gòu)不同視圖中的語(yǔ)義一致性和語(yǔ)法準(zhǔn)確性。本文的方法還存在的局限:對(duì)于本體元模型和標(biāo)記元模型的定義有待完善;構(gòu)建系統(tǒng)架構(gòu)本體元模型的原則和標(biāo)準(zhǔn)尚待探索;模型間的映射規(guī)則尚待完善,并實(shí)現(xiàn)自動(dòng)映射和模型轉(zhuǎn)換。以此作為進(jìn)一步研究方向,最終期望實(shí)現(xiàn)BPM+SOA 系統(tǒng)架構(gòu)建模的自動(dòng)化。