国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于SOMA的服務(wù)建模方法研究*

2016-08-10 03:43

汪 鵬 趙 恒 黃 偉

(武漢數(shù)字工程研究所 武漢 430205)

?

一種基于SOMA的服務(wù)建模方法研究*

汪鵬趙恒黃偉

(武漢數(shù)字工程研究所武漢430205)

摘要在分析SOMA思想的基礎(chǔ)上,研究了一種基于SOMA的服務(wù)建模方法,通過形式化理論分析了服務(wù)建模過程中服務(wù)發(fā)現(xiàn)和設(shè)計(jì)建模的過程,結(jié)合模型驅(qū)動(dòng)理論提出具體的方法實(shí)現(xiàn)服務(wù)從抽象模型到運(yùn)行實(shí)體的轉(zhuǎn)換,并根據(jù)方法實(shí)現(xiàn)服務(wù)設(shè)計(jì)建模工具,最后通過在海戰(zhàn)場領(lǐng)域的一個(gè)建模實(shí)例驗(yàn)證方法的可行性。

關(guān)鍵詞SOMA; 服務(wù)建模; 模型驅(qū)動(dòng)理論

Class NumberTP391.9

1引言

面向服務(wù)的建模(Service Oriented Modeling,SOM)是SOA軟件系統(tǒng)實(shí)現(xiàn)的重要手段。研究服務(wù)建模技術(shù)旨在通過建立一種可行的服務(wù)建模方法為SOA軟件系統(tǒng)提供良好的解決方案[1]。

目前,IBM的SOMA[2]思想為業(yè)界面向服務(wù)的建模提供了方法論的指導(dǎo)[3],文獻(xiàn)[4]提出了一種全過程復(fù)用的服務(wù)建模方法,研究了服務(wù)本體系統(tǒng)等相關(guān)概念,提出了全過程復(fù)用過程中的具體算法,該方法著重于服務(wù)建模全過程中模型資產(chǎn)復(fù)用的研究。文獻(xiàn)[5]研究了知識服務(wù)的建模方法,通過對知識服務(wù)的分析,從多個(gè)角度定義了知識服務(wù)的描述模型。該方法的重點(diǎn)在于服務(wù)的發(fā)現(xiàn)和規(guī)約上,并未對服務(wù)實(shí)現(xiàn)做具體的研究。而在文獻(xiàn)[6,8~9]中,研究者將服務(wù)建模的模型與模型驅(qū)動(dòng)體系(Model Driven Architecture,MDA)相結(jié)合,采用標(biāo)準(zhǔn)UML建模語言實(shí)現(xiàn)特定平臺服務(wù)模型的創(chuàng)建與轉(zhuǎn)換。

以上的研究從不同的方面研究了面向服務(wù)的建模方法,這些方法或是基于模型定義研究模型的復(fù)用,未體現(xiàn)服務(wù)實(shí)現(xiàn)過程;或是研究單個(gè)服務(wù)模型的規(guī)約,而缺少對建模過程中多個(gè)模型間關(guān)系的描述;又或是研究了特定平臺下的服務(wù)建模方法,其依賴的軟件環(huán)境在其他平臺下無法完全滿足,導(dǎo)致其可用性存在一定的不足。因而,在實(shí)際的SOA軟件系統(tǒng)開發(fā)過程中,缺乏一種規(guī)范的、可遵循的服務(wù)建模方法來指導(dǎo)服務(wù)的建模開發(fā)過程。

針對以上問題,本文在SOMA方法論的指導(dǎo)下,通過形式化的理論對建模過程中模型的定義、模型之間的關(guān)系以及服務(wù)實(shí)現(xiàn)進(jìn)行了研究,提出了一種基于SOMA的服務(wù)建模方法,以期為SOA軟件系統(tǒng)的開發(fā)提供方法指導(dǎo)。

2基于SOMA的服務(wù)建模方法

SOMA方法論提出服務(wù)建模的三個(gè)過程:服務(wù)發(fā)現(xiàn)、服務(wù)規(guī)約以及服務(wù)實(shí)現(xiàn)。服務(wù)發(fā)現(xiàn)是通過一定手段獲取服務(wù)候選目錄的過程;服務(wù)規(guī)約過程定義了服務(wù)的細(xì)節(jié),包括數(shù)據(jù)、約束、消息、事件定義等;服務(wù)實(shí)現(xiàn)過程則是根據(jù)服務(wù)規(guī)約的結(jié)果并結(jié)合實(shí)際環(huán)境進(jìn)行服務(wù)的開發(fā)。

基于SOMA方法論,本文提出的服務(wù)建模方法,其過程如圖1所示。

圖1 服務(wù)建模過程

業(yè)務(wù)分析是服務(wù)發(fā)現(xiàn)的過程,通過對實(shí)際業(yè)務(wù)進(jìn)行分析,提取業(yè)務(wù)中的參與人員(創(chuàng)建人員、過程執(zhí)行人員)和具體事務(wù)節(jié)點(diǎn)。為了得到人員和具體事務(wù)節(jié)點(diǎn)的關(guān)系,對業(yè)務(wù)進(jìn)行業(yè)務(wù)流程建模,產(chǎn)生的業(yè)務(wù)分析模型在整體上為業(yè)務(wù)流程化運(yùn)行提供基礎(chǔ),而細(xì)化到具體的流程實(shí)現(xiàn)上,事務(wù)節(jié)點(diǎn)的細(xì)節(jié)分析則是服務(wù)設(shè)計(jì)建模的必要條件。

服務(wù)設(shè)計(jì)是服務(wù)規(guī)約的過程,通過對事務(wù)節(jié)點(diǎn)的細(xì)節(jié)進(jìn)行分析提取,將具體事務(wù)抽象成對應(yīng)的服務(wù)描述模型,并從數(shù)據(jù)模型和約束條件上滿足具體事務(wù)的要求。

服務(wù)的構(gòu)建與開發(fā)是服務(wù)實(shí)現(xiàn)的過程,抽象的服務(wù)描述模型經(jīng)過構(gòu)建和開發(fā),形成可運(yùn)行部署的服務(wù)運(yùn)行實(shí)體,這樣的過程涉及到描述模型中的數(shù)據(jù)模型到代碼框架模型的轉(zhuǎn)換以及基于框架模型的開發(fā)。

上述過程是SOMA方法論的具體化,用以指導(dǎo)從實(shí)際的業(yè)務(wù)到服務(wù)描述模型再到服務(wù)運(yùn)行實(shí)體的轉(zhuǎn)換實(shí)現(xiàn)。

2.1業(yè)務(wù)分析

業(yè)務(wù)分析作為建模的初始階段,其核心是業(yè)務(wù)流程建模。經(jīng)過業(yè)務(wù)分析節(jié)點(diǎn),實(shí)際業(yè)務(wù)被轉(zhuǎn)換成用一定的標(biāo)準(zhǔn)或語言符號描述的業(yè)務(wù)流程模型。業(yè)務(wù)分析階段需要將一些業(yè)務(wù)所處的實(shí)際環(huán)境特性(如網(wǎng)絡(luò)環(huán)境,安全因素等)考慮其中,具體到流程建模當(dāng)中,則需要分析事物節(jié)點(diǎn)處理的時(shí)間要求、處理人員的身份認(rèn)證,這就為進(jìn)一步的服務(wù)分析階段提供了一定的約束條件。

業(yè)務(wù)分析的結(jié)果就是事務(wù)節(jié)點(diǎn)的集合。事務(wù)節(jié)點(diǎn)包括了參與人員、事務(wù)、以及約束要求,可以用這樣的三元組來表示:

其中,ProN表示事務(wù)節(jié)點(diǎn),P表示參與人員People,E表示具體事件Event,R表示約束條件集,R=R′∪R″∪…∪R(n)。由于業(yè)務(wù)是多個(gè)事務(wù)節(jié)點(diǎn)的集合,用Task表示業(yè)務(wù),其表達(dá)方式如下:

Task=RroN1∪ProN2∪…∪ProNm

由于業(yè)務(wù)是由事務(wù)節(jié)點(diǎn)按照一定的順序構(gòu)成,假設(shè)業(yè)務(wù)Task1是按照圖2順序執(zhí)行。

圖2 Task1事務(wù)節(jié)點(diǎn)流程圖

箭頭表示一個(gè)事務(wù)節(jié)點(diǎn)轉(zhuǎn)到另一個(gè)事務(wù)節(jié)點(diǎn)。將業(yè)務(wù)Task1按照參與人員P進(jìn)行劃分,得到過程如圖3。

圖3 Task1業(yè)務(wù)泳道圖

業(yè)務(wù)Task1的劃分結(jié)果是多個(gè)獨(dú)立的、順序執(zhí)行的二元組〈E,R〉,這個(gè)二元組是服務(wù)的實(shí)現(xiàn)基礎(chǔ)。分析事件E提取事件的內(nèi)容、所需的數(shù)據(jù)輸入以及事件輸出,抽象成包含這些信息的數(shù)據(jù)模型D,從而將服務(wù)定義成數(shù)據(jù)和約束的二元組:

通過業(yè)務(wù)分析階段,一個(gè)具體的業(yè)務(wù)被分解成多個(gè)事務(wù)節(jié)點(diǎn),進(jìn)而可以分析提取出對應(yīng)的服務(wù)模型,這樣的過程為下一階段的服務(wù)設(shè)計(jì)提供了輸入。

2.2服務(wù)設(shè)計(jì)

根據(jù)2.1分析,服務(wù)定義為一個(gè)數(shù)據(jù)模型D和約束R的二元組,即服務(wù)是滿足環(huán)境定義的數(shù)據(jù)模型和約束條件共同關(guān)系的結(jié)果。假設(shè)Dm是數(shù)據(jù)模型集,req是約束條件集,ref表示滿足實(shí)際環(huán)境的要求,因此,服務(wù)是滿足ref的Dm與req的笛卡爾積,其形式化描述為

service=σref(Dm×req)

對于一個(gè)數(shù)據(jù)模型D,2.1節(jié)分析了數(shù)據(jù)模型是方法Methods、輸入輸出Input/Output以及屬性描述desc的三元組,Methods是方法的集合,表示為

Methods={mi|i∈(1,n),n∈Z}

Input是輸入數(shù)據(jù)的集合,由于方法的輸入量有多個(gè),因此Input定義如下:

Input={it|t∈(0,k),k∈Z}

Output是輸出數(shù)據(jù),服務(wù)方法的輸出只能是一個(gè),所以定義Output如下:

Output={Os|s=1}

對于任意的一個(gè)方法mi,可以用如下的三元組來定義:

其中,Operation表示方法操作名,I是輸入數(shù)據(jù)集合,I?Input,O是輸出數(shù)據(jù),O?Output。

約束條件是根據(jù)服務(wù)在實(shí)際環(huán)境中可能存在的限制和要求在模型層面定義的服務(wù)需求。按約束的屬性來劃分,包括了服務(wù)QoS約束和安全性約束等,QoS約束根據(jù)實(shí)際的環(huán)境分析(如限制的傳輸條件),定義服務(wù)的延時(shí)約束,即在接收請求的一定時(shí)間內(nèi),服務(wù)需要做出應(yīng)答的最長時(shí)間;安全性約束是考慮服務(wù)在安全性上的要求,限制未經(jīng)安全認(rèn)證的請求訪問。

由此可得到服務(wù)模型的XML描述文件,如下:

〈service〉

〈properties〉

〈name value="Test "/〉

〈id value="ID_Test"/〉

……

〈nodeIP value="127.0.0.1"/〉

〈serviceURL value="http://127.0.0.1:10000"/〉

……

〈bundleList〉……〈/bundleList〉

〈description value="description of service"/〉

……

〈/properties〉

〈interfaces〉

〈inter interDescription="interface description"

interName="send"〉

〈returnValue description="method description"

type="int"

unit="NULL"/〉

〈qos delay="1"

description="timedelay"

unit="ms"/〉

……

〈args〉

〈arg description="arg0" ioflag="input"

name="arg0" type="String"

…/〉

……

〈/args〉

〈/inter〉

……

〈/interfaces〉

〈/service〉

2.3服務(wù)構(gòu)建與開發(fā)

服務(wù)構(gòu)建與開發(fā)是在服務(wù)描述模型的基礎(chǔ)上,將描述定義結(jié)構(gòu)通過技術(shù)手段轉(zhuǎn)變成實(shí)際服務(wù)運(yùn)行實(shí)體的過程,本質(zhì)上是系統(tǒng)無關(guān)模型PIM到平臺相關(guān)模型PSM再到實(shí)現(xiàn)模型ISM的轉(zhuǎn)換[10],這是一個(gè)“灰盒”過程[11],如圖4所示。

圖4 服務(wù)模型轉(zhuǎn)換過程

圖中,模型轉(zhuǎn)換的核心是轉(zhuǎn)換規(guī)則和相應(yīng)的代碼生成工具,服務(wù)描述模型作為PIM,經(jīng)過轉(zhuǎn)換過程proc1,轉(zhuǎn)換成PSM,PSM經(jīng)過代碼生成引擎轉(zhuǎn)換成ISM,其中proc1的狀態(tài)過程如圖5所示。

圖5proc1狀態(tài)過程

其中,狀態(tài)0→1的轉(zhuǎn)換條件是讀取服務(wù)的描述desc,desc包括服務(wù)名稱等信息;

狀態(tài)1→2的轉(zhuǎn)換條件是讀取服務(wù)的方法m0;

由于服務(wù)的方法有多個(gè),因此:

狀態(tài)2→2的轉(zhuǎn)換條件讀取服務(wù)的方法mi;

狀態(tài)2→3的轉(zhuǎn)換條件是方法讀取完畢。

對于狀態(tài)2,細(xì)化其狀態(tài)過程如圖6所示。

圖6 過程2的狀態(tài)細(xì)節(jié)

2-0→2-1,讀取方法的輸出O;

2-1→2-2,讀取方法的操作名Operation;

2-2→2-3,讀取方法的輸入I1;

由于一個(gè)方法的輸入有多個(gè),因此:

2-3→2-3,讀取方法的輸入Ii;

2-3→2-4,輸入讀取完畢。

根據(jù)以上的狀態(tài)過程,本文設(shè)計(jì)的模型代碼轉(zhuǎn)換流程如圖7所示。

圖7 模型代碼轉(zhuǎn)換流程圖

在實(shí)際的研究過程中,對圖7的模型轉(zhuǎn)換過程進(jìn)行了完整的封裝,并結(jié)合服務(wù)設(shè)計(jì)過程,實(shí)現(xiàn)一個(gè)服務(wù)設(shè)計(jì)建模工具,工具隱藏了中間的細(xì)節(jié),使用者無需知道中間的轉(zhuǎn)換規(guī)則以及轉(zhuǎn)換過程,這在很大程度上提高了實(shí)際服務(wù)建模過程的便捷性。

在得到的服務(wù)代碼框架的基礎(chǔ)上,進(jìn)行服務(wù)具體方法接口的開發(fā)是得到服務(wù)運(yùn)行實(shí)體的重要步驟。根據(jù)設(shè)定的平臺屬性和定義的輸入輸出,將輸入數(shù)據(jù)進(jìn)行適當(dāng)?shù)臄?shù)據(jù)處理,使之滿足接口方法的功能需求,并將結(jié)果傳遞給輸出載體。

服務(wù)的構(gòu)建與開發(fā)對服務(wù)設(shè)計(jì)階段的輸出模型進(jìn)行細(xì)節(jié)上的分解與分析,經(jīng)過模型代碼轉(zhuǎn)換過程以及服務(wù)方法接口開發(fā),得到實(shí)際可運(yùn)行的服務(wù)實(shí)體。

3實(shí)驗(yàn)驗(yàn)證

本文以海戰(zhàn)場領(lǐng)域的護(hù)航方案創(chuàng)建業(yè)務(wù)作為應(yīng)用實(shí)例來驗(yàn)證本文研究的建模方法。通過業(yè)務(wù)分析過程,得到護(hù)航方案創(chuàng)建業(yè)務(wù)中參與的人員People、對應(yīng)的事務(wù)節(jié)點(diǎn)Event以及相互之間聯(lián)系,其中參與人員包括:岸基指揮官P1、編隊(duì)指揮官P2、編隊(duì)對海指揮官P3以及艦長P4,對應(yīng)的事務(wù)節(jié)點(diǎn)有護(hù)航業(yè)務(wù)下達(dá),護(hù)航方案制定,護(hù)航方案審核,護(hù)航方案修改等。通過業(yè)務(wù)分析階段,得到護(hù)航方案籌建業(yè)務(wù)的業(yè)務(wù)流程模型如圖8所示。

圖8 業(yè)務(wù)流程分析模型

編隊(duì)對海指揮官P3的事務(wù)“制定護(hù)航方案并提交”進(jìn)行分析設(shè)計(jì),得到數(shù)據(jù)模型Dm如表1所示。

表1 服務(wù)數(shù)據(jù)模型

該服務(wù)的約束req主要是QoS約束,即每個(gè)方法的最大處理時(shí)間,該約束主要考慮在服務(wù)開發(fā)過程中。

當(dāng)服務(wù)的數(shù)據(jù)模型和約束條件確定后,可利用服務(wù)設(shè)計(jì)建模工具進(jìn)行服務(wù)的構(gòu)建和開發(fā),將服務(wù)信息輸入到服務(wù)設(shè)計(jì)建模工具中,得到服務(wù)模型,如圖9所示。

圖9 服務(wù)設(shè)計(jì)建模工具構(gòu)建服務(wù)

利用服務(wù)設(shè)計(jì)建模工具可得到2.2節(jié)描述的服務(wù)XML描述模型,利用工具提供的模型轉(zhuǎn)換功能輸出服務(wù)的代碼框架,經(jīng)過服務(wù)具體功能開發(fā)階段,得到服務(wù)運(yùn)行實(shí)體,實(shí)現(xiàn)服務(wù)的開發(fā)運(yùn)行,得到如下所示服務(wù)WSDL描述:

〈definitions name=”ConvoyServer” targetNamespace=”urn:ConvoyServer”……〉〈types〉〈/types〉

〈message name="AddConvoyInfoRequest"〉

〈part name="arg0" type="xsd:base64Binary"/〉〈/message〉

〈message name="AddConvoyInfoResponse"〉

〈part name="response" type="xsd:int"/〉〈/message〉

……

〈portType name="ConvoyServerPortType"〉

〈operation name="AddConvoyInfo"〉

〈documentation〉Service definition of function

ns_AddConvoyInfo〈/documentation〉

〈input message="tns:AddConvoyInfoRequest"/〉

〈output message="tns:AddConvoyInfoResponse"/〉

〈/operation〉

……

〈/definitions〉

上述描述僅顯示了AddConvoyInfo方法,包含了該方法的operation,input,output等信息,并定義了輸入輸出的數(shù)據(jù)格式。

將本文研究的方法與其他文獻(xiàn)中提出的建模方法進(jìn)行比較,可得到如表2比較結(jié)果。

表2 服務(wù)建模方法比較

根據(jù)以上的表格分析,本文研究的建模方法在形式化分析(Formal Analysis)、模型間關(guān)系(Model Relation)、模型轉(zhuǎn)換(Model Transformation)以及通用性(Commonality)均作了相應(yīng)的分析和考慮,但是在模型的復(fù)用上(Model Reuse)需要做進(jìn)一步研究。

4結(jié)語

本文提出一種基于SOMA的服務(wù)建模方法,從業(yè)務(wù)出發(fā),采用模型驅(qū)動(dòng)的理論系統(tǒng)地闡述了服務(wù)建模的各個(gè)階段,完整地分析各個(gè)階段之間相互的聯(lián)系。根據(jù)形式化的理論推導(dǎo)結(jié)合實(shí)際的模型開發(fā)了服務(wù)設(shè)計(jì)建模工具,最后通過實(shí)例驗(yàn)證了方法的有效性與可行性。

本文研究的是從業(yè)務(wù)分析到服務(wù)實(shí)現(xiàn)的過程,下一步的研究則是如何從服務(wù)回到業(yè)務(wù),這部分內(nèi)容包含基于業(yè)務(wù)的服務(wù)編排以及服務(wù)的集成與運(yùn)維,并將本文的研究內(nèi)容與下一步的工作結(jié)合起來,從而形成一個(gè)完整的服務(wù)化建模方法。

參 考 文 獻(xiàn)

[1] 毛新生.SOA:原理.方法.實(shí)踐[M].北京:電子工業(yè)出版社,2007:53-62.

MAO Xinsheng. SOA: Principle. Method. Practice[M]. Beijing: Publishing House of Electronics Industry,2007:53-62.

[2] Ali Arsanjani. Service-Oriented Modeling and Architecture[C]//IEEE International Conference on Service Computing,2004:521.

[3] 金戈,姚輝,趙勇.SOA快速指南123[EB/OL].(200612-26).http://www.ibm.com/developerworks/cn/webservices/06-10_jinge/index1.html.

JIN Ge, YAO Hui, ZHAO Yong. SOA Quick Guide 123 [EB/OL]. (2006-12-26).

[4] 吳布丹,金芝,趙彬.面向服務(wù)的建模:一種全過程復(fù)用的方法[J].計(jì)算機(jī)學(xué)報(bào),2008,31(8):1294-1308.

WU Budan, JIN Zhi, ZHAO Bin. Service-Oriented Modeling Based on Whole Process Asset Reuse[J]. Chinese Journal of Computers,2008,31(8):1294-1308.

[5] 任彥,柏小莉,郭得科,等.面向任務(wù)的知識服務(wù)描述模型及體系結(jié)構(gòu)[J].計(jì)算機(jī)科學(xué),2006,33(10):291-294.

REN Yan, BAI Xiaoli, GUO Deke, et al. Task Oriented Knowledge Service Model and Architecture[J]. Computer Science,2006,33(10):291-294.

[6] OMG. Model Driven Architecture (MDA): The MDA Guide Rev2.0[EB/OL]. [2014-06]. www.omg.org/cgi-bin/doc?ormsc/14-06-01.pdf

[7] OMG. Unified Modeling LanguageTM(UML)[EB/OL]. [2005-07]. http://www.omg.org/spec/UML/2.0

[8] José Luis Herrero Agustin, Pablo Carmona del Barco: A model-driven approach to develop high performance web applications[J]. The Journal of Systems and Software,2013,86:3013-3023.

[9] Kwanghoon Kim. A model-driven workflow fragmentation framework for collaborative workflow architectures and systems[J]. Journal of Network and Computer Applications,2012,35:97-110.

[10] IBM. An introduction to Model-Driven Architecture(MDA)[EB/OL]. [2005].http://www.ibm.com/developerworks/rational/library/apr05/brown/.

[11] 宋莉莉,王維平,李群.基于SOA和MDA的模型重用和組合技術(shù)研究[J].系統(tǒng)仿真學(xué)報(bào),2009,21(13):3969-3974.

SONG Lili, WANG Weipin, LI Qun. Model Reuse and Composition based on SOA and MDA[J]. Journal of System Simulation,2009,21(13):3969-3974.

收稿日期:2016年1月9日,修回日期:2016年2月20日

作者簡介:汪鵬,男,碩士研究生,研究方向:服務(wù)化,軟件構(gòu)件。趙恒,女,博士,研究員,研究方向:分布式計(jì)算、軟件工程。黃偉,男,高級工程師,研究方向:服務(wù)化,軟件工程。

中圖分類號TP391.9

DOI:10.3969/j.issn.1672-9722.2016.07.027

Service Modeling Method Based on SOMA

WANG PengZHAO HengHUANG Wei

(Wuhan Digital Engineering Institute, Wuhan430205)

AbstractBased on the analysis of SOMA theory, the paper studies a service modeling based on SOMA, which analyses the procedure of service discovery and service design-modeling through the formal theory, also presents a specific method to implement the transformation from service abstract model to service instance with combining the Model Driven Architecture, additionally develops a service tool with the method. The paper also demonstrates the correctness of the modeling method with a case on naval battle field.

Key WordsSOMA, service modeling, model driven architecture

犍为县| 故城县| 玉田县| 亳州市| 司法| 江北区| 富阳市| 杭锦后旗| 子洲县| 湖北省| 靖远县| 禹州市| 荔波县| 呼和浩特市| 莒南县| 庆云县| 岳池县| 永仁县| 城市| 黔西县| 揭东县| 溆浦县| 郯城县| 通化县| 侯马市| 桑日县| 桃源县| 锡林郭勒盟| 当雄县| 宜丰县| 顺平县| 永丰县| 乌鲁木齐县| 临洮县| 林甸县| 平江县| 英吉沙县| 大方县| 衡南县| 仙桃市| 肇州县|