邢瑩師本慧陳金勇
(中國電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
一種基于流程模型的構(gòu)件組裝方法
邢瑩師本慧陳金勇
(中國電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
為了實現(xiàn)構(gòu)件組裝的規(guī)范性與靈活性,提出了一種基于流程模型的構(gòu)件組裝方法。在分析了構(gòu)件組裝機(jī)制與組裝方式的基礎(chǔ)上,創(chuàng)建了流程模型以維護(hù)業(yè)務(wù)流程,給出了基于流程模型的構(gòu)件設(shè)計方案,設(shè)計了功能構(gòu)件與流程控制構(gòu)件,并采用基于流程模型的構(gòu)件組裝技術(shù)實現(xiàn)了衛(wèi)星。測處理系統(tǒng),同時總結(jié)了其優(yōu)勢。
構(gòu)件業(yè)務(wù)流程構(gòu)件組裝流程控制構(gòu)件
目前主流構(gòu)件模型都是面向?qū)ο蟮腫1],如CORBA[2]、COM[3]等公共構(gòu)件對象模型規(guī)范都著重規(guī)范構(gòu)件之間的交互,將構(gòu)件接口、描述語言標(biāo)準(zhǔn)化,為構(gòu)件規(guī)范性的實現(xiàn)提供了基礎(chǔ),但并沒有對構(gòu)件之間的關(guān)聯(lián)關(guān)系進(jìn)行約束,也沒有統(tǒng)一的構(gòu)件組裝與系統(tǒng)集成規(guī)范[4]。因此現(xiàn)在有許多針對構(gòu)件組裝的實現(xiàn)機(jī)制與方法的研究,從數(shù)據(jù)流[5]、工作流[6]和業(yè)務(wù)對象等方面進(jìn)行構(gòu)件組裝的研究[7],但這些構(gòu)件組裝方法無法適用于大量數(shù)據(jù)交互、多任務(wù)重構(gòu)、流程靈活擴(kuò)展等情況。
因此本文提出了一種基于流程模型的構(gòu)件組裝方法,建立業(yè)務(wù)節(jié)點模型對業(yè)務(wù)對象進(jìn)行建模,以元數(shù)據(jù)為驅(qū)動,通過流程模型實現(xiàn)業(yè)務(wù)功能與業(yè)務(wù)流程的分離,達(dá)到業(yè)務(wù)流程的靈活配置、業(yè)務(wù)功能服務(wù)的定制等目的。
構(gòu)件組裝實際上是通過建立構(gòu)件之間的調(diào)用關(guān)系使用構(gòu)件來構(gòu)造軟件系統(tǒng)。構(gòu)件組裝機(jī)制對構(gòu)件的調(diào)用關(guān)系和依賴關(guān)系進(jìn)行定義與管理從而達(dá)到構(gòu)件連接和集成的需要。構(gòu)件的組裝涉及多個構(gòu)件,由于各軟件系統(tǒng)的業(yè)務(wù)需要,各個構(gòu)件之間調(diào)用關(guān)系存在著多樣性:構(gòu)件調(diào)用關(guān)系分為順序調(diào)用、并行調(diào)用、選擇調(diào)用以及循環(huán)調(diào)用等4種調(diào)用方式[8]。
順序調(diào)用是指一個構(gòu)件P執(zhí)行完成功能后直接調(diào)用另一個構(gòu)件Q執(zhí)行任務(wù),這一過程的實現(xiàn)對應(yīng)著構(gòu)件的順序組裝。在進(jìn)行構(gòu)件的順序組裝時要實現(xiàn)構(gòu)件接口的匹配與連接,調(diào)用的構(gòu)件P與被調(diào)用的構(gòu)件Q之間接口方向、參數(shù)等屬性相匹配。構(gòu)件P調(diào)用構(gòu)件Q提供的服務(wù)。在順序調(diào)用的過程中,每個構(gòu)件只能調(diào)用一個構(gòu)件,一個構(gòu)件也只能被一個構(gòu)件調(diào)用。
并行調(diào)用是指一個構(gòu)件M執(zhí)行完成功能后同時調(diào)用構(gòu)件P和構(gòu)件Q兩個構(gòu)件,這一過程的實現(xiàn)對應(yīng)著構(gòu)件的并行組裝。在進(jìn)行構(gòu)件的并行組裝時要實現(xiàn)構(gòu)件M與構(gòu)件P、構(gòu)件Q的接口匹配與連接。
選擇調(diào)用是指一個構(gòu)件M執(zhí)行完成功能后有選擇地調(diào)用另一個構(gòu)件,如條件滿足則調(diào)用構(gòu)件P,若不滿足條件則調(diào)用構(gòu)件Q,這一過程的實現(xiàn)對應(yīng)著構(gòu)件的選擇組裝。在進(jìn)行構(gòu)件的選擇組裝時要實現(xiàn)構(gòu)件M與構(gòu)件P或構(gòu)件M與構(gòu)件Q的接口匹配與連接。
循環(huán)調(diào)用是指單個構(gòu)件或多個構(gòu)件組成的復(fù)合構(gòu)件進(jìn)行多次自身調(diào)用直至滿足條件,跳出循環(huán),這一過程的實現(xiàn)對應(yīng)著構(gòu)件的循環(huán)組裝,與選擇組裝過程類似。
為了便于構(gòu)件的組裝,本文設(shè)計了流程模型以規(guī)范軟件系統(tǒng)中的業(yè)務(wù)流程,實現(xiàn)對構(gòu)件組裝順序進(jìn)行定義和管理,將業(yè)務(wù)邏輯與功能實現(xiàn)分離,最終實現(xiàn)根據(jù)業(yè)務(wù)定制服務(wù)的構(gòu)件組裝。流程模型是對業(yè)務(wù)流程定義的基本元素和規(guī)則的抽象,并加以一般性描述,用于指導(dǎo)業(yè)務(wù)流程管理與構(gòu)件組裝過程建模。在流程模型中,一系列業(yè)務(wù)流程節(jié)點構(gòu)成一個業(yè)務(wù)流程,其中每個節(jié)點都與一個構(gòu)件對應(yīng)關(guān)聯(lián)。業(yè)務(wù)流程的執(zhí)行就是流程中各個構(gòu)件按次序被調(diào)用以實現(xiàn)業(yè)務(wù)功能的過程。流程模型負(fù)責(zé)管理控制業(yè)務(wù)流程,構(gòu)件負(fù)責(zé)實現(xiàn)功能,因此流程模型的設(shè)計將流程邏輯從業(yè)務(wù)功能中剝離出來,有利于服務(wù)的定制與業(yè)務(wù)的重構(gòu)。
業(yè)務(wù)節(jié)點是組成業(yè)務(wù)流程的基本單元,流程模型由一個或多個業(yè)務(wù)節(jié)點組成,每個業(yè)務(wù)節(jié)點對應(yīng)綁定一個構(gòu)件。當(dāng)一個業(yè)務(wù)流程需要多個構(gòu)件協(xié)作完成時,流程模型不僅是這些構(gòu)件對應(yīng)的節(jié)點模型集合,而且同時為節(jié)點模型的調(diào)用次序提供上下文環(huán)境,包括按序調(diào)用各個節(jié)點模型的相關(guān)數(shù)據(jù)。流程模型的組成如圖1所示。
圖1 流程模型構(gòu)成圖
流程模型由節(jié)點模型和調(diào)用策略組成。業(yè)務(wù)節(jié)點表示待組裝的構(gòu)件,負(fù)責(zé)綁定構(gòu)件、維護(hù)構(gòu)件的上下文與業(yè)務(wù)流程上下文關(guān)系。調(diào)用策略包括順序調(diào)用、并行調(diào)用、選擇調(diào)用和循環(huán)調(diào)用等4種方式以及調(diào)用條件。節(jié)點模型中包含了流程節(jié)點與構(gòu)件的關(guān)聯(lián)關(guān)系、構(gòu)件執(zhí)行的上下文等信息,圖2為流程模型邏輯運行圖。
圖2 流程模型邏輯運行圖
基于流程模型進(jìn)行構(gòu)件組裝是流程控制與構(gòu)件化軟件思想結(jié)合的產(chǎn)物,以流程模型的方式對構(gòu)件調(diào)用與組裝進(jìn)行靈活的構(gòu)建與配置,從而達(dá)到軟件系統(tǒng)構(gòu)件化的目標(biāo)。在基于流程模型的構(gòu)件組裝機(jī)制中,構(gòu)件模型、構(gòu)件接口與流程模型共同形成了規(guī)范標(biāo)準(zhǔn),構(gòu)件模型為構(gòu)件組裝提供基石,構(gòu)件接口連接是構(gòu)件組裝的實現(xiàn),而流程模型為構(gòu)件組裝提供了組織管理的方式。因此本文設(shè)計了功能構(gòu)件和流程控制構(gòu)件2種構(gòu)件以完成軟件系統(tǒng)的實現(xiàn)。功能構(gòu)件用于完成系統(tǒng)的基本功能,同時向流程控制構(gòu)件注冊其提供的服務(wù),而流程控制構(gòu)件負(fù)責(zé)管理功能構(gòu)件的調(diào)用順序,從而達(dá)到流程控制的目的,實現(xiàn)業(yè)務(wù)流程的定制。功能構(gòu)件的定義如下:
每個構(gòu)件都必須聲明一個基本接口BaseInterface,用于向流程控制構(gòu)件聲明自身所提供的服務(wù),同時提供獲取與當(dāng)前構(gòu)件應(yīng)用相關(guān)的構(gòu)件,啟動相應(yīng)構(gòu)件,加載相應(yīng)資源以及獲取當(dāng)前構(gòu)件的擴(kuò)展和擴(kuò)展點的功能。在流程控制構(gòu)件的設(shè)計中,采用流程模型建立業(yè)務(wù)流程完成對功能構(gòu)件的服務(wù)順序調(diào)用,采用業(yè)務(wù)流程鏈表的形式實現(xiàn)功能構(gòu)件的順序調(diào)用,最終完成構(gòu)件組裝。圖3為流程控制構(gòu)件的流程模型。
圖3 構(gòu)件組裝機(jī)制
在流程模型中,每個業(yè)務(wù)節(jié)點對應(yīng)著一個功能構(gòu)件,節(jié)點的連接順序?qū)嶋H上就是功能構(gòu)件的調(diào)度順序。因此,在業(yè)務(wù)節(jié)點中應(yīng)聲明其節(jié)點本身信息、對應(yīng)的功能構(gòu)件的信息、功能構(gòu)件部署的IP地址、端口號以及TCP鏈接還是UPD鏈接,同時還在業(yè)務(wù)節(jié)點中保存業(yè)務(wù)流程鏈表信息。由于構(gòu)件有順序、并行或循環(huán)等多種組裝模式,業(yè)務(wù)節(jié)點模型用后節(jié)點集合維護(hù)著多個后節(jié)點信息。業(yè)務(wù)節(jié)點的定義如下:
在構(gòu)件組裝與軟件集成的過程中,流程控制構(gòu)件首先要讀取流程模型中業(yè)務(wù)流程信息,對在已聲明服務(wù)的功能構(gòu)件中進(jìn)行服務(wù)對偶和接口連接,創(chuàng)建業(yè)務(wù)流程鏈表,設(shè)置功能構(gòu)件調(diào)度順序,創(chuàng)建功能構(gòu)件運行環(huán)境,并傳遞給流程首節(jié)點的功能構(gòu)件,以元數(shù)據(jù)驅(qū)動工作流程,同時元數(shù)據(jù)為業(yè)務(wù)功能提供數(shù)據(jù)源。
由于。測處理系統(tǒng)中數(shù)據(jù)量大,如果。測處理流程采用消息傳遞機(jī)制負(fù)責(zé)各個構(gòu)件之間的交互通信,則會出現(xiàn)等待數(shù)據(jù)時內(nèi)存浪費和網(wǎng)絡(luò)擁堵,因此在研制衛(wèi)星。測處理系統(tǒng)的過程中,采用了構(gòu)件化的思想進(jìn)行系統(tǒng)的設(shè)計與軟件的開發(fā),在進(jìn)行系統(tǒng)集成與構(gòu)件組裝時采用基于流程模型的構(gòu)件組裝。
圖4 衛(wèi)星。測處理系統(tǒng)的構(gòu)件組成圖
衛(wèi)星。測處理系統(tǒng)是處理衛(wèi)星下傳。測數(shù)據(jù),進(jìn)行衛(wèi)星運行狀態(tài)監(jiān)視的系統(tǒng),有著處理數(shù)據(jù)量大、處理的實時性要求高等特點。衛(wèi)星。測處理系統(tǒng)由功能構(gòu)件和流程控制構(gòu)件組成,其中功能構(gòu)件負(fù)責(zé)實現(xiàn)。測數(shù)據(jù)接收、處理等業(yè)務(wù)功能,而流程控制構(gòu)件將基于流程模型對功能構(gòu)件進(jìn)行組裝。衛(wèi)星。測處理系統(tǒng)體系結(jié)構(gòu)如圖4所示。
衛(wèi)星。測處理系統(tǒng)中所有功能構(gòu)件都遵循功能構(gòu)件規(guī)范實現(xiàn),并通過BaseInterface()接口將本功能構(gòu)件的接口標(biāo)識、提供的服務(wù)以及構(gòu)件運行的上下文等信息注冊到流程控制構(gòu)件中,流程控制構(gòu)件通過對接口標(biāo)識表的管理維護(hù),可對各個功能構(gòu)件的服務(wù)進(jìn)行對偶,并進(jìn)行接口連接。同時流程控制構(gòu)件基于流程模型,對。測數(shù)據(jù)處理流程進(jìn)行配置,建立。測數(shù)據(jù)處理的業(yè)務(wù)流程鏈表并在各個功能構(gòu)件中進(jìn)行傳遞完成。測數(shù)據(jù)處理的業(yè)務(wù)流程。
在對。測數(shù)據(jù)處理進(jìn)行流程建模時,結(jié)合已開發(fā)的構(gòu)件庫,使用可視化流程編輯界面對。測處理流程進(jìn)行配置,調(diào)度。測數(shù)據(jù)處理的各個功能構(gòu)件,以完成構(gòu)件的組裝與系統(tǒng)的集成,同時將業(yè)務(wù)流程以XML文件的形式保存,以供流程控制構(gòu)件讀取。圖5為流程模型的可視化編輯界面。
與以往的構(gòu)件組裝模式相比,基于流程模型的構(gòu)件組裝機(jī)制具有以下優(yōu)勢:
⑴支持業(yè)務(wù)流程的重構(gòu)
傳統(tǒng)構(gòu)件組裝在控制各個業(yè)務(wù)功能流轉(zhuǎn)時一般以連接子的形式實現(xiàn),當(dāng)更改業(yè)務(wù)流程時需要對代碼進(jìn)行改動。而基于流程模型的構(gòu)件組裝結(jié)合構(gòu)件庫使用圖形化的流程編輯界面之間修改業(yè)務(wù)流程,通過流程控制構(gòu)件完成各個功能構(gòu)件的服務(wù)對偶與接口連接,為構(gòu)件使用者屏蔽了構(gòu)件組裝實現(xiàn)的細(xì)節(jié)。
⑵提高了系統(tǒng)處理效率
基于流程模型的構(gòu)件組裝將業(yè)務(wù)流程以流程鏈表的形式傳遞給流程開始節(jié)點,同時流程鏈表在各個功能構(gòu)件間接口進(jìn)行交互,即流程開始后流程控制構(gòu)件不再負(fù)責(zé)流程消息的傳遞,減少了構(gòu)件之間交互操作,降低了構(gòu)件的等待空閑,適用于如衛(wèi)星。測處理等大規(guī)模數(shù)據(jù)的處理過程。
⑶提供了新型構(gòu)件的組裝思路
傳統(tǒng)的構(gòu)件組裝機(jī)制一般以連接子或接口調(diào)用的形式實現(xiàn)。而基于流程模型的構(gòu)件組裝通過將流程模型中節(jié)點模型映射到相應(yīng)的功能構(gòu)件就可實現(xiàn)構(gòu)件的靈活組裝。
⑷降低粒度,提高重用性
流程模型的創(chuàng)建可簡化構(gòu)件中的業(yè)務(wù)流程,從而原有完成某項業(yè)務(wù)的復(fù)雜構(gòu)件可被細(xì)分為多個實現(xiàn)單一功能的簡單構(gòu)件,這些簡單構(gòu)件能通過不同的流程模型組裝成能實現(xiàn)不同業(yè)務(wù)功能的復(fù)合構(gòu)件,在一定程度上提高了已開發(fā)構(gòu)件的重用性。
本文在研究了構(gòu)件組裝、流程控制等技術(shù)后,提出了一種基于流程模型的構(gòu)件組裝機(jī)制,為按照公共構(gòu)件對象模型規(guī)范創(chuàng)建的構(gòu)件的一種組裝的方法,實現(xiàn)了構(gòu)件組裝的靈活重構(gòu)與功能擴(kuò)展。同時,給出了基于流程模型組裝構(gòu)件的優(yōu)勢,并經(jīng)過圖形化組裝方式快速集成各個型號的衛(wèi)星。測處理系統(tǒng),證明了基于流程模型的構(gòu)件組裝的可行性。
[1]Xiang JL,Yang J,Mei H.ABC-Tool—An architecture-based component composition.Journal of Computer Research And Development,2004,41(6):956?964(in Chinese with English abstract).
[2]夏榆濱.軟件構(gòu)件技術(shù)[M].北京:清華大學(xué)出版社,2011.
[3]Gossler G,Sifakis J.Composition for component-based modeling.Science of Computer Programming,2005,55(1-3): 161-183.
[4]Service Component Architecture[EB/OL].[2013-03-12]. http://zh.wikipedia.oig/wiki/SCA
[5]陳章,陳志剛.Intemet環(huán)境下一種基于數(shù)據(jù)流的構(gòu)件組裝模型[J].小型微型計算機(jī)系統(tǒng).2006,27(10):1865-1870.
[6]李海波,戰(zhàn)德臣,徐曉飛.基于工作流引擎的構(gòu)件組裝體系結(jié)構(gòu)[J].軟件學(xué)報,2006,17(6):1401-1410.
[7]Mayer A,McGough S,Furmento N,Lee W,Newhouse S, Darlington J.ICENI dataflow and workflow:Composition and scheduling in space and time.In:UK e-Science All Hands Meeting.2003.627-634.http://www.nesc.ac. uk/events/ahm2003/AHMCD/pdf/132.pdf.
[8]廖昕,陳松喬,孫瑩.可復(fù)用構(gòu)件組裝技術(shù)研究[J].計算技術(shù)與自動化,2004,3(2):788-792.
A Component Assembly Method Based on Process Model
XING Ying,SHI Ben-hui,CHEN Jin-yong
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
In order to implement the normalization and flexibility of component assembly,this paper proposes a component assembly method based on process model.By analyzing component assembly mechanism and assembly method,this paper creates a process model to maintain the business process,gives the component design plan based on the process model,designs the functional component and the flow-controlled component,uses the component assembly technology based on process model to implement the satellite telemetry processing system,and summaries its advantages.
component;business flow;component assembly;flow-controlled component
TP319
A
1008-1739(2015)08-41-4
定稿日期:2015-03-26