戴曉華
摘 要: 面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)日漸成為主流,因而與之對應(yīng)的面向服務(wù)的建模方法成為迫切的需求。在總結(jié)了服務(wù)建模的現(xiàn)狀基礎(chǔ)上,提出了面向業(yè)務(wù)的模型驅(qū)動敏捷服務(wù)建模方法。
關(guān)鍵詞:模型驅(qū)動;面向服務(wù)的構(gòu)架;群決策支持平臺
中圖分類號:F49文獻(xiàn)標(biāo)識碼:A文章編號:1672-3198(2012)01-0249-01
1 引言
面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)是一種 IT 體系結(jié)構(gòu)風(fēng)格,通過構(gòu)建服務(wù)能夠建立一個業(yè)務(wù)邏輯抽象和技術(shù)抽象,把業(yè)務(wù)邏輯與具體實現(xiàn)技術(shù)分離開來,可系統(tǒng)減少異構(gòu)性、滿足服務(wù)互操作性和不斷變化的業(yè)務(wù)要求,可以良好的實現(xiàn)群決策支持平臺的需求。目前SOA架構(gòu)已經(jīng)得到廣泛的認(rèn)可,但如何構(gòu)建面向服務(wù)的應(yīng)用軟件模型,即如何進(jìn)行面向服務(wù)的建模(Service Oriented Modeling,SOM)仍然是構(gòu)建SOA系統(tǒng)的一大挑戰(zhàn)。
廣義上的服務(wù)建模指整個面向服務(wù)的分析和設(shè)計過程,狹義上的服務(wù)建模被作為面向服務(wù)分析過程的子過程。目前針對面向服務(wù)系統(tǒng)廣義的服務(wù)建模方法包括IBM提出的面向服務(wù)分析和設(shè)計方法,Thomas Erl提出的主流SOA方法論和Micheal Bell提出的面向服務(wù)建??蚣?。針對狹義的服務(wù)建模方法的研究大體可分為基于服務(wù)應(yīng)用系統(tǒng)開發(fā)方法、面向目標(biāo)的建模方法和面向最終用戶建模方法三類。
2 面向業(yè)務(wù)的模型驅(qū)動敏捷服務(wù)建模方法
服務(wù)建模的目標(biāo)是建立企業(yè)的服務(wù)模型,服務(wù)模型作為業(yè)務(wù)與IT之間的橋梁,是實現(xiàn)SOA對業(yè)務(wù)隨需應(yīng)變靈活性支持的關(guān)鍵因素。面向業(yè)務(wù)的模型驅(qū)動敏捷服務(wù)建模方法首先需要對系統(tǒng)進(jìn)行面向服務(wù)的分析,在總結(jié)了SOMA,MSOAM和SOMF的面向服務(wù)的分析過程基礎(chǔ)之上,結(jié)合業(yè)務(wù)組件分析和面向服務(wù)的思想,采用業(yè)務(wù)流程建模,建立服務(wù)模型。
第一步:分解業(yè)務(wù)流程。這步將業(yè)務(wù)流程分解成一系列的細(xì)粒度流程,把流程的工作流邏輯分解到最小粒度的處理步驟,以便于識別細(xì)粒度的業(yè)務(wù)服務(wù)。
第二步:識別候選業(yè)務(wù)服務(wù)。在服務(wù)建模階段,并不一定所有服務(wù)都會成為最終設(shè)計實現(xiàn)的一部分,故而稱為候選服務(wù)。首先應(yīng)該剔除那些不屬于被候選服務(wù)封裝的邏輯,例如不能被自動化的手工流程步驟或?qū)z留邏輯的流程步驟而言。
第三步:創(chuàng)建候選業(yè)務(wù)服務(wù)。在細(xì)粒度的業(yè)務(wù)流程中,將能夠聚合的業(yè)務(wù)邏輯建立成一個候選業(yè)務(wù)服務(wù)。
第四步:應(yīng)用面向服務(wù)原則。在這個步驟中,需要為候選業(yè)務(wù)服務(wù)應(yīng)用面向服務(wù)的原則,以支持服務(wù)的復(fù)用和自治。
第五步:識別候選服務(wù)操作。這個步驟將應(yīng)用邏輯處理需求分解,識別它們所執(zhí)行的功能。
第六步:創(chuàng)建候選服務(wù)操作。在這個步驟中,創(chuàng)建識別出的候選服務(wù)操作,考察消費者對服務(wù)的使用,合并或拆分服務(wù)操作。
3 實例
3.1 業(yè)務(wù)建模
在問題管理子系統(tǒng)中,包括問題錄入與修改、問題查詢、問題語言分詞、問題屬性識別、問題類型識別、問題求解方法匹配、子問題識別、問題求解管理和問題求解方案評價等9個主要業(yè)務(wù)功能。本節(jié)將對問題管理子系統(tǒng)進(jìn)行業(yè)務(wù)建模,首先將業(yè)務(wù)流程分解為細(xì)粒度的流程。從細(xì)粒度的管理流程分解中,可以得到問題語言分詞服務(wù)、問題屬性識別服務(wù)、問題類型識別服務(wù),問題求解方法匹配服務(wù),檢查是否產(chǎn)生子問題服務(wù)和問題求解服務(wù)。經(jīng)過應(yīng)用面向服務(wù)原則步驟,發(fā)現(xiàn)問題語言分詞,問題屬性識別,問題類型識別相互互為前提,可以將其組合封裝為粗粒度的問題分析服務(wù),以便于高層次的服務(wù)請求的調(diào)用。
3.2 模型驅(qū)動開發(fā)
(1)UML建模。
本節(jié)以上文分析所得的問題分析服務(wù)為例。問題分析服務(wù)可以進(jìn)行問題分詞,問題屬性識別和問題類型識別。問題分析服務(wù)是復(fù)合服務(wù),而問題分詞,問題屬性識別和問題類型識別提供構(gòu)件服務(wù)。業(yè)務(wù)分析師可以利用UML類圖建立問題分析服務(wù)平臺無關(guān)結(jié)構(gòu)模型。
(2)轉(zhuǎn)換規(guī)則及WSDL服務(wù)描述。
模型驅(qū)動開發(fā)將UML轉(zhuǎn)換為WSDL,可支持對服務(wù)進(jìn)行詳細(xì)的建模和設(shè)計。作為計算無關(guān)模型CIM的UML模型可以轉(zhuǎn)化為平臺無關(guān)模型PIM的WSDL模型。使用UML 擴展機制,UML模型可以圖形化的直觀方式,表達(dá)WSDL的語義。
本文引入了構(gòu)造型<>,<>,<>,<>,<>,<>,<>,<>,<>,<>,<>,<>,<>,<>。
4 結(jié)語
面向業(yè)務(wù)的模型驅(qū)動敏捷服務(wù)建模方法具有廣泛復(fù)用、靈活匹配、松散耦合的特點。一方面,以業(yè)務(wù)為核心且可迭代的快速建模過程使服務(wù)模型隨需求快速敏捷地變化。另一方面,服務(wù)模型是業(yè)務(wù)架構(gòu)的底層,技術(shù)架構(gòu)的頂層,承上啟下,是靈活的業(yè)務(wù)流程和IT之間的橋梁,保證二者之間的可追溯性。
參考文獻(xiàn)
[1]劉勇,李朋,薛華成.Intranet環(huán)境下群體決策支持系統(tǒng)的研究[J].系統(tǒng)工程,1997,(6).
[2]Micheal Bell.Service-Oriented Modeling: Service Analysis,Design and Architecture[M].Wiley,2008.
[3]何戈.面向服務(wù)的應(yīng)用描述語言及其支撐環(huán)境的關(guān)鍵技術(shù)研究[J].北京:中國科學(xué)院研究生院,2005.