邢瑩師本慧陳金勇
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
一種基于流程模型的構件組裝方法
邢瑩師本慧陳金勇
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
為了實現構件組裝的規范性與靈活性,提出了一種基于流程模型的構件組裝方法。在分析了構件組裝機制與組裝方式的基礎上,創建了流程模型以維護業務流程,給出了基于流程模型的構件設計方案,設計了功能構件與流程控制構件,并采用基于流程模型的構件組裝技術實現了衛星。測處理系統,同時總結了其優勢。
構件業務流程構件組裝流程控制構件
目前主流構件模型都是面向對象的[1],如CORBA[2]、COM[3]等公共構件對象模型規范都著重規范構件之間的交互,將構件接口、描述語言標準化,為構件規范性的實現提供了基礎,但并沒有對構件之間的關聯關系進行約束,也沒有統一的構件組裝與系統集成規范[4]。因此現在有許多針對構件組裝的實現機制與方法的研究,從數據流[5]、工作流[6]和業務對象等方面進行構件組裝的研究[7],但這些構件組裝方法無法適用于大量數據交互、多任務重構、流程靈活擴展等情況。
因此本文提出了一種基于流程模型的構件組裝方法,建立業務節點模型對業務對象進行建模,以元數據為驅動,通過流程模型實現業務功能與業務流程的分離,達到業務流程的靈活配置、業務功能服務的定制等目的。
構件組裝實際上是通過建立構件之間的調用關系使用構件來構造軟件系統。構件組裝機制對構件的調用關系和依賴關系進行定義與管理從而達到構件連接和集成的需要。構件的組裝涉及多個構件,由于各軟件系統的業務需要,各個構件之間調用關系存在著多樣性:構件調用關系分為順序調用、并行調用、選擇調用以及循環調用等4種調用方式[8]。
順序調用是指一個構件P執行完成功能后直接調用另一個構件Q執行任務,這一過程的實現對應著構件的順序組裝。在進行構件的順序組裝時要實現構件接口的匹配與連接,調用的構件P與被調用的構件Q之間接口方向、參數等屬性相匹配。構件P調用構件Q提供的服務。在順序調用的過程中,每個構件只能調用一個構件,一個構件也只能被一個構件調用。
并行調用是指一個構件M執行完成功能后同時調用構件P和構件Q兩個構件,這一過程的實現對應著構件的并行組裝。在進行構件的并行組裝時要實現構件M與構件P、構件Q的接口匹配與連接。
選擇調用是指一個構件M執行完成功能后有選擇地調用另一個構件,如條件滿足則調用構件P,若不滿足條件則調用構件Q,這一過程的實現對應著構件的選擇組裝。在進行構件的選擇組裝時要實現構件M與構件P或構件M與構件Q的接口匹配與連接。
循環調用是指單個構件或多個構件組成的復合構件進行多次自身調用直至滿足條件,跳出循環,這一過程的實現對應著構件的循環組裝,與選擇組裝過程類似。
為了便于構件的組裝,本文設計了流程模型以規范軟件系統中的業務流程,實現對構件組裝順序進行定義和管理,將業務邏輯與功能實現分離,最終實現根據業務定制服務的構件組裝。流程模型是對業務流程定義的基本元素和規則的抽象,并加以一般性描述,用于指導業務流程管理與構件組裝過程建模。在流程模型中,一系列業務流程節點構成一個業務流程,其中每個節點都與一個構件對應關聯。業務流程的執行就是流程中各個構件按次序被調用以實現業務功能的過程。流程模型負責管理控制業務流程,構件負責實現功能,因此流程模型的設計將流程邏輯從業務功能中剝離出來,有利于服務的定制與業務的重構。
業務節點是組成業務流程的基本單元,流程模型由一個或多個業務節點組成,每個業務節點對應綁定一個構件。當一個業務流程需要多個構件協作完成時,流程模型不僅是這些構件對應的節點模型集合,而且同時為節點模型的調用次序提供上下文環境,包括按序調用各個節點模型的相關數據。流程模型的組成如圖1所示。

圖1 流程模型構成圖
流程模型由節點模型和調用策略組成。業務節點表示待組裝的構件,負責綁定構件、維護構件的上下文與業務流程上下文關系。調用策略包括順序調用、并行調用、選擇調用和循環調用等4種方式以及調用條件。節點模型中包含了流程節點與構件的關聯關系、構件執行的上下文等信息,圖2為流程模型邏輯運行圖。

圖2 流程模型邏輯運行圖
基于流程模型進行構件組裝是流程控制與構件化軟件思想結合的產物,以流程模型的方式對構件調用與組裝進行靈活的構建與配置,從而達到軟件系統構件化的目標。在基于流程模型的構件組裝機制中,構件模型、構件接口與流程模型共同形成了規范標準,構件模型為構件組裝提供基石,構件接口連接是構件組裝的實現,而流程模型為構件組裝提供了組織管理的方式。因此本文設計了功能構件和流程控制構件2種構件以完成軟件系統的實現。功能構件用于完成系統的基本功能,同時向流程控制構件注冊其提供的服務,而流程控制構件負責管理功能構件的調用順序,從而達到流程控制的目的,實現業務流程的定制。功能構件的定義如下:

每個構件都必須聲明一個基本接口BaseInterface,用于向流程控制構件聲明自身所提供的服務,同時提供獲取與當前構件應用相關的構件,啟動相應構件,加載相應資源以及獲取當前構件的擴展和擴展點的功能。在流程控制構件的設計中,采用流程模型建立業務流程完成對功能構件的服務順序調用,采用業務流程鏈表的形式實現功能構件的順序調用,最終完成構件組裝。圖3為流程控制構件的流程模型。

圖3 構件組裝機制
在流程模型中,每個業務節點對應著一個功能構件,節點的連接順序實際上就是功能構件的調度順序。因此,在業務節點中應聲明其節點本身信息、對應的功能構件的信息、功能構件部署的IP地址、端口號以及TCP鏈接還是UPD鏈接,同時還在業務節點中保存業務流程鏈表信息。由于構件有順序、并行或循環等多種組裝模式,業務節點模型用后節點集合維護著多個后節點信息。業務節點的定義如下:

在構件組裝與軟件集成的過程中,流程控制構件首先要讀取流程模型中業務流程信息,對在已聲明服務的功能構件中進行服務對偶和接口連接,創建業務流程鏈表,設置功能構件調度順序,創建功能構件運行環境,并傳遞給流程首節點的功能構件,以元數據驅動工作流程,同時元數據為業務功能提供數據源。
由于。測處理系統中數據量大,如果。測處理流程采用消息傳遞機制負責各個構件之間的交互通信,則會出現等待數據時內存浪費和網絡擁堵,因此在研制衛星。測處理系統的過程中,采用了構件化的思想進行系統的設計與軟件的開發,在進行系統集成與構件組裝時采用基于流程模型的構件組裝。

圖4 衛星。測處理系統的構件組成圖
衛星。測處理系統是處理衛星下傳。測數據,進行衛星運行狀態監視的系統,有著處理數據量大、處理的實時性要求高等特點。衛星。測處理系統由功能構件和流程控制構件組成,其中功能構件負責實現。測數據接收、處理等業務功能,而流程控制構件將基于流程模型對功能構件進行組裝。衛星。測處理系統體系結構如圖4所示。
衛星。測處理系統中所有功能構件都遵循功能構件規范實現,并通過BaseInterface()接口將本功能構件的接口標識、提供的服務以及構件運行的上下文等信息注冊到流程控制構件中,流程控制構件通過對接口標識表的管理維護,可對各個功能構件的服務進行對偶,并進行接口連接。同時流程控制構件基于流程模型,對。測數據處理流程進行配置,建立。測數據處理的業務流程鏈表并在各個功能構件中進行傳遞完成。測數據處理的業務流程。
在對。測數據處理進行流程建模時,結合已開發的構件庫,使用可視化流程編輯界面對。測處理流程進行配置,調度。測數據處理的各個功能構件,以完成構件的組裝與系統的集成,同時將業務流程以XML文件的形式保存,以供流程控制構件讀取。圖5為流程模型的可視化編輯界面。
與以往的構件組裝模式相比,基于流程模型的構件組裝機制具有以下優勢:
⑴支持業務流程的重構
傳統構件組裝在控制各個業務功能流轉時一般以連接子的形式實現,當更改業務流程時需要對代碼進行改動。而基于流程模型的構件組裝結合構件庫使用圖形化的流程編輯界面之間修改業務流程,通過流程控制構件完成各個功能構件的服務對偶與接口連接,為構件使用者屏蔽了構件組裝實現的細節。
⑵提高了系統處理效率
基于流程模型的構件組裝將業務流程以流程鏈表的形式傳遞給流程開始節點,同時流程鏈表在各個功能構件間接口進行交互,即流程開始后流程控制構件不再負責流程消息的傳遞,減少了構件之間交互操作,降低了構件的等待空閑,適用于如衛星。測處理等大規模數據的處理過程。
⑶提供了新型構件的組裝思路
傳統的構件組裝機制一般以連接子或接口調用的形式實現。而基于流程模型的構件組裝通過將流程模型中節點模型映射到相應的功能構件就可實現構件的靈活組裝。
⑷降低粒度,提高重用性
流程模型的創建可簡化構件中的業務流程,從而原有完成某項業務的復雜構件可被細分為多個實現單一功能的簡單構件,這些簡單構件能通過不同的流程模型組裝成能實現不同業務功能的復合構件,在一定程度上提高了已開發構件的重用性。
本文在研究了構件組裝、流程控制等技術后,提出了一種基于流程模型的構件組裝機制,為按照公共構件對象模型規范創建的構件的一種組裝的方法,實現了構件組裝的靈活重構與功能擴展。同時,給出了基于流程模型組裝構件的優勢,并經過圖形化組裝方式快速集成各個型號的衛星。測處理系統,證明了基于流程模型的構件組裝的可行性。
[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]夏榆濱.軟件構件技術[M].北京:清華大學出版社,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環境下一種基于數據流的構件組裝模型[J].小型微型計算機系統.2006,27(10):1865-1870.
[6]李海波,戰德臣,徐曉飛.基于工作流引擎的構件組裝體系結構[J].軟件學報,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]廖昕,陳松喬,孫瑩.可復用構件組裝技術研究[J].計算技術與自動化,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