《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于動態(tài)模型的系統(tǒng)架構(gòu)及建模平臺實現(xiàn)
基于動態(tài)模型的系統(tǒng)架構(gòu)及建模平臺實現(xiàn)
2015年電子技術(shù)應(yīng)用第2期
郝 俊,常 青,張 剛,王耀力
太原理工大學(xué) 信息工程學(xué)院,山西 太原030024
摘要: 傳統(tǒng)的基于靜態(tài)模型的系統(tǒng)開發(fā)方法難以解決業(yè)務(wù)規(guī)則的快速擴(kuò)展及變更帶來的資源浪費等問題,工作流支持對工作內(nèi)容進(jìn)行良好的劃分,并進(jìn)行具體部署。結(jié)合SOA架構(gòu)的業(yè)務(wù)流程再造能力,提出一種新的以三層模型為核心的支持快速、平滑、可重用的應(yīng)用系統(tǒng)開發(fā)架構(gòu),對流程引擎和建模平臺完成詳細(xì)描述和設(shè)計,完成建模平臺搭建工作,并以卡銀行業(yè)務(wù)為例進(jìn)行了基于三層模型的建模。結(jié)果表明,該系統(tǒng)開發(fā)架構(gòu)具有很好的業(yè)務(wù)流程再造能力,可保證業(yè)務(wù)系統(tǒng)的持續(xù)穩(wěn)定,達(dá)到提高生產(chǎn)組織水平和工作效率的目的。
中圖分類號: TP311.5
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)02-0171-03
A new workflow system architecture and modeling platform
Hao Jun,Chang Qing,Zhang Gang,Wang Yaoli
College of Information and Engineering,Taiyuan University of Technology, Taiyuan 030024,China
Abstract: The traditional approach to systems development based on the static model is difficult to solve the waste of resources caused by the rapid expansion and change of business rules and other issues. Workflow supports for the work of good content division and specific deployment. Combining with business process reengineering capabilities of SOA architecture, this paper puts forward a new development framework with three-tier model as the core to support fast, smooth and reusable application, completes the detailed description and design of process modeling platform and the engine, completes construction work of modeling platform, and realizes modeling with banking card as an example and based on the three-tier model. The results show that the system development framework has good ability BPR, ensures sustainable and stable of business systems, and improves the level production and work efficiency of organization.
Key words : three-tier model;application system architecture;modeling platform;SOA;workflow

  

0 引言

  企業(yè)通常通過實施“升級改造”完善其應(yīng)用系統(tǒng)功能來適應(yīng)信息技術(shù)的快速變革。傳統(tǒng)的SOA模型采用“需求+服務(wù)”的兩層結(jié)構(gòu),業(yè)務(wù)需求被劃分為一系列業(yè)務(wù)服務(wù),服務(wù)定義一個與業(yè)務(wù)功能或業(yè)務(wù)數(shù)據(jù)相關(guān)的接口并實現(xiàn),屬于靜態(tài)模型,沒有能夠反映應(yīng)用系統(tǒng)動態(tài)的運(yùn)行時特征。這種開發(fā)方法從項目立項開發(fā)到部署實施耗時冗長,而且這種“傷筋動骨”的系統(tǒng)變更耗費大量資源,帶來企業(yè)業(yè)務(wù)系統(tǒng)的不穩(wěn)定和不連續(xù)性,增加企業(yè)的運(yùn)營、管理和維護(hù)成本,難以解決業(yè)務(wù)升級與業(yè)務(wù)連續(xù)性之間的沖突。

  工作流[1]是實現(xiàn)業(yè)務(wù)過程自動化的核心技術(shù),主要實現(xiàn)業(yè)務(wù)過程的建模、優(yōu)化、仿真、管理和集成并賦予業(yè)務(wù)管理系統(tǒng)高度的靈活性,而工作流技術(shù)與面向服務(wù)的架構(gòu)(Service Oriented Architecture,SOA)[2]的結(jié)合可實現(xiàn)業(yè)務(wù)邏輯和流程邏輯的分離,通過對業(yè)務(wù)流程的分析和規(guī)范化定義實現(xiàn)對系統(tǒng)運(yùn)行時特征的動態(tài)描述,基于構(gòu)件[3]的業(yè)務(wù)單元亦可實現(xiàn)自動組裝,在實際應(yīng)用中具有重大意義。

1 業(yè)務(wù)模型

  傳統(tǒng)的SOA模型采用“需求+服務(wù)”的兩層結(jié)構(gòu),業(yè)務(wù)需求被劃分為一系列業(yè)務(wù)服務(wù),一個服務(wù)定義了一個與業(yè)務(wù)功能或業(yè)務(wù)數(shù)據(jù)相關(guān)的接口,服務(wù)直接針對某一個需求定義并實現(xiàn),屬于靜態(tài)模型,沒有反映應(yīng)用系統(tǒng)動態(tài)的運(yùn)行時特征。本文在傳統(tǒng)靜態(tài)模型基礎(chǔ)上進(jìn)一步細(xì)化,提出一種新的包含語義流程的三層動態(tài)模型及其建模方法。在需求和服務(wù)中間加入對具體應(yīng)用實現(xiàn)的流程描述,并將服務(wù)細(xì)化為針對具體應(yīng)用的基本構(gòu)件和原子構(gòu)件,分別將其定義為概念模型、邏輯模型和物理模型,其對應(yīng)關(guān)系如表1所示。其中概念模型用來定義一個應(yīng)用的內(nèi)涵,描述該系統(tǒng)可以提供的全部價值,與需求對應(yīng);物理模型定義具有完備性和獨立性的原子構(gòu)件,封裝為實施具體操作的提供相應(yīng)價值的服務(wù);邏輯模型對應(yīng)語義流程,由不同的構(gòu)件序列或服務(wù)序列組合來完成具體需求,是概念模型到物理模型之間的關(guān)系映射。該方法通過建模平臺對應(yīng)用領(lǐng)域的概念、邏輯、物理三層建模,規(guī)范化表述流程描述,提取基本構(gòu)件及原子構(gòu)件,并由流程引擎[4]調(diào)用執(zhí)行。

006.jpg

  其中原子構(gòu)件是業(yè)務(wù)功能實現(xiàn)不能再細(xì)分的最小單元,具有獨立性和完備性。獨立性強(qiáng)調(diào)原子構(gòu)件自身不可再分,也不能由其他原子構(gòu)件組合產(chǎn)生;完備性指出任何一個流程都可由不同的原子構(gòu)件組合而成。兩者通過業(yè)務(wù)流程聯(lián)系起來完成具體的業(yè)務(wù)功能,構(gòu)件模型的實現(xiàn)不依賴于具體的實現(xiàn)環(huán)境,只需提供接口機(jī)制即可使用,而且構(gòu)件是高度可擴(kuò)展的,而引入業(yè)務(wù)流程可以實現(xiàn)系統(tǒng)更加快速、靈活的開發(fā),大大增加了系統(tǒng)的可擴(kuò)展性。

2 系統(tǒng)架構(gòu)

  基于動態(tài)模型的系統(tǒng)開發(fā)方法,本文提出了一種新的系統(tǒng)開發(fā)架構(gòu),如圖1所示。

001.jpg

  在該系統(tǒng)中,建模平臺采用“概念模型+邏輯模型+物理模型”的三層架構(gòu)建模方法[5]針對具體應(yīng)用領(lǐng)域建模,分別得出具體應(yīng)用的概念層次隸屬劃分、業(yè)務(wù)流程的指令化描述及底層功能實現(xiàn)的基本構(gòu)件和原子構(gòu)件,其中后兩部分分別作為流程引擎的輸入和基本業(yè)務(wù)庫及原子業(yè)務(wù)庫的輸入;界面平臺提供與用戶的交互,支持將用戶提交內(nèi)容轉(zhuǎn)化為業(yè)務(wù)流程的指令化描述并反饋給流程引擎;引擎接收指令流程,從基本構(gòu)件庫或原子構(gòu)件庫調(diào)用基本構(gòu)件或原子構(gòu)件執(zhí)行,通過報文的方式與核心數(shù)據(jù)庫或其他業(yè)務(wù)接口完成數(shù)據(jù)交互。

  該架構(gòu)具有SOA架構(gòu)的特征,符合工作流管理聯(lián)盟WfMC提出的工作流參考模型。業(yè)務(wù)流程作為流程引擎的輸入數(shù)據(jù),業(yè)務(wù)改變時,通過引入新的流程數(shù)據(jù)并針對性地對基本構(gòu)件庫和原子構(gòu)件庫進(jìn)行維護(hù)擴(kuò)展,可實現(xiàn)新流程的快速部署。在該架構(gòu)中,流程引擎和建模平臺作為系統(tǒng)的運(yùn)行和建模工具,分別進(jìn)行詳細(xì)描述和設(shè)計實現(xiàn)。

3 流程引擎

  流程引擎類似于一個CPU,指令化的業(yè)務(wù)流程相當(dāng)于CPU中執(zhí)行的程序,每一個業(yè)務(wù)都對應(yīng)著相應(yīng)的一個流程。對于發(fā)起的任何一個業(yè)務(wù),流程引擎從應(yīng)用服務(wù)器中調(diào)出相對應(yīng)的業(yè)務(wù)流程驅(qū)動執(zhí)行[6]。流程是以構(gòu)件為步驟節(jié)點的業(yè)務(wù)行為序列;執(zhí)行一個業(yè)務(wù)流程時,流程引擎分析確定該流程執(zhí)行的步驟順序,并分析當(dāng)前的步驟節(jié)點,根據(jù)分析結(jié)果從構(gòu)件庫選出恰當(dāng)?shù)臉?gòu)件執(zhí)行。

  流程引擎確定輸入流程的執(zhí)行順序,具有同CPU的程序控制器相似的結(jié)構(gòu),如圖2所示。

002.jpg

  流程引擎由流程計數(shù)器、流程隊列、構(gòu)件計數(shù)器(Counter)、構(gòu)件隊列(Queue)、構(gòu)件譯碼器等基本部件組成。流程隊列存儲流程的ID,流程ID由流程計數(shù)器確定,每一個流程ID對應(yīng)一個構(gòu)件計數(shù)器,構(gòu)件計數(shù)器則指向執(zhí)行系統(tǒng)操作的構(gòu)件隊列。當(dāng)流程引擎驅(qū)動一個流程執(zhí)行時,流程計數(shù)器指定流程ID,流程ID對應(yīng)到構(gòu)件計數(shù)器并由構(gòu)件計數(shù)器指針指定當(dāng)前構(gòu)件。該構(gòu)件完成譯碼后提交到服務(wù)總線,同時構(gòu)件計數(shù)器指針指向下一個將要執(zhí)行的操作(構(gòu)件)。針對流程引擎邏輯結(jié)構(gòu),設(shè)計其基本物理結(jié)構(gòu)如圖3所示。

003.jpg

  圖中所示的流程引擎實現(xiàn)主要包括一個主處理節(jié)點和若干從處理節(jié)點,并且由總線將各部分聯(lián)系起來??偩€由一組上行線、一組下行線和一組狀態(tài)檢測線構(gòu)成;主處理節(jié)點對應(yīng)構(gòu)件計數(shù)器,獨占一組下行線,通過該總線向所有從處理節(jié)點發(fā)送通信消息;從處理節(jié)點對應(yīng)原子構(gòu)件或基本構(gòu)件,根據(jù)給定的特定輸入得到相應(yīng)的需求輸出,所有從處理節(jié)點共享一組上行線,通過狀態(tài)檢測線解決數(shù)據(jù)競爭沖突問題;其中所有節(jié)點通過統(tǒng)一節(jié)點接口(UNI)掛接在總線上。

4 建模平臺

  建模平臺是一個依照本研究提出的動態(tài)模型來輔助支持應(yīng)用系統(tǒng)建模的軟件系統(tǒng)。建模平臺通過對系統(tǒng)的建模為整個系統(tǒng)提供需求分析、語義描述并確立對應(yīng)構(gòu)件集合,在建模平臺基礎(chǔ)上,系統(tǒng)只需實現(xiàn)原子構(gòu)件,而基本構(gòu)件和其他所有業(yè)務(wù)步驟均由邏輯模型映射為原子構(gòu)件的工作流程并由流程引擎調(diào)用執(zhí)行。建模平臺針對具體應(yīng)用領(lǐng)域的建模是整個系統(tǒng)實現(xiàn)的基礎(chǔ),也是重要的組成部分。

  4.1 實現(xiàn)工具

  建模平臺使用MVC模式[7]設(shè)計,該模式很好地做到了解耦,使代碼和界面分離,數(shù)據(jù)庫操作與Servlet操作分開,這樣能夠方便開發(fā)和以后的維護(hù)。開發(fā)工具選用Myeclipse,客戶端選用IE瀏覽器,服務(wù)器端選用mysql數(shù)據(jù)庫和輕量級WEB應(yīng)用中間件Tomcat(Appach的一個免費、開放源碼的項目,它是支持JSP和Servlet技術(shù)的容器)。

  4.2 概念建模

  建模平臺將概念建模等價于建立一個動態(tài)樹形菜單dTree,由JSP頁面顯示。dTree通過層次分明的索引確立了概念的外延與內(nèi)涵以及相互之間的隸屬關(guān)系,直到分解為不可再分的業(yè)務(wù)用例場景,從自然語言出發(fā)一步步建立抽象化和形式化的概念模型。dTree的實現(xiàn)使用了JQuery AJAX,即異步JavaScript和XML技術(shù)。

  $.ajax({

  …

  success: function(xml){

  tree.add(nodeId,parentId,nodeName,hrefAddress,

  "","","","",false);  …

  document.write(tree);

  JQuery Ajax()方法[8]在不重載整個頁面的情況下,從后臺加載數(shù)據(jù)并在頁面顯示。Success()函數(shù)定義了由jsp頁面[9]調(diào)用JQuery請求servlet讀取XML數(shù)據(jù)對象,通過遍歷XML文件,獲得樹形菜單節(jié)點的屬性和文本數(shù)據(jù),再循環(huán)添加到dTree的節(jié)點中,形成樹形菜單的概念模型。

  4.3 邏輯建模

  概念建模確立的動態(tài)樹形菜單中,葉子節(jié)點與某一業(yè)務(wù)文檔(邏輯)相對應(yīng),邏輯建模通過為每一個業(yè)務(wù)步驟標(biāo)記屬性,并通過序號、前件集合、后件集合等對業(yè)務(wù)用例場景流程數(shù)據(jù)進(jìn)行確切表述,并以文檔形式保存管理。

  邏輯建模參照流程引擎結(jié)構(gòu)完成了業(yè)務(wù)流程數(shù)據(jù)結(jié)構(gòu)和流程指令的設(shè)計。業(yè)務(wù)流程數(shù)據(jù)設(shè)計將流程數(shù)據(jù)通過序號(Number)、業(yè)務(wù)名(BusinessName)、構(gòu)件ID、屬性(Attribute)、類型(Type)、前件集合(FrontSet)、后件集合(NextSet)及數(shù)據(jù)(Data)完整描述了業(yè)務(wù)步驟的各方面信息。流程指令設(shè)計部分包括通用控制類指令和數(shù)據(jù)搬移類指令,分別舉例如下:

  JMP Number;  //無條件調(diào)轉(zhuǎn)類指令;

  意指將PC指針指向Number指定的構(gòu)件

  DETZ Attriute Number;  //條件跳轉(zhuǎn)類指令;意指判斷

  Attribute屬性,如為0,則PC調(diào)轉(zhuǎn)至Number

  指定的構(gòu)件;否則順序向下執(zhí)行

  MOV Number NextSet;  //數(shù)據(jù)搬移類指令;

  意指將后件集合中內(nèi)容賦予Number

  邏輯建模實現(xiàn)從用自然語言描述的業(yè)務(wù)流程到流程核心內(nèi)容的提取,并通過控制指令及數(shù)據(jù)搬移指令集合形成業(yè)務(wù)流程的完備描述,可通過流程引擎調(diào)用執(zhí)行。

  4.4 物理建模

  物理建模為每個具體應(yīng)用確立一個原子業(yè)務(wù)庫和一個基本業(yè)務(wù)庫。針對流程文檔中的每一個步驟節(jié)點確定其屬性分別納入原子業(yè)務(wù)庫或基本業(yè)務(wù)庫。構(gòu)件的提取、錄入通過JSP表單實現(xiàn),表單通過編輯javascript函數(shù)控制步驟錄入,利用DAO[10](數(shù)據(jù)訪問對象)模式實現(xiàn)與mysql數(shù)據(jù)庫的操作,分別通過executeUpdate()和executeQuery()執(zhí)行數(shù)據(jù)庫更新和查詢操作:

  public int executeUpdate(String sql){}

  public ResultSet executeQuery(String sql){}

  所有的步驟節(jié)點全部標(biāo)記錄入完成,以表單的形式存儲在數(shù)據(jù)庫中。在該結(jié)構(gòu)中,原子業(yè)務(wù)庫和基本業(yè)務(wù)庫支持更新和擴(kuò)展,構(gòu)件可由軟件或硬件實現(xiàn),并且可以為不同的應(yīng)用領(lǐng)域建模,具有很高的靈活性。

  本文使用建模平臺完成以卡銀行核心業(yè)務(wù)為例的建模,建模平臺概念建模實現(xiàn)卡銀行業(yè)務(wù)菜單界面如圖4,數(shù)據(jù)庫表中原子業(yè)務(wù)及基本業(yè)務(wù)表如圖5。

5 小結(jié)

  本文充分結(jié)合了工作流及SOA思想的特征,以流程引擎和建模平臺為基礎(chǔ),提出了基于動態(tài)模型的應(yīng)用系統(tǒng)架構(gòu),詳細(xì)描述了流程引擎部分并搭建了建模平臺。采用了“概念模型+邏輯模型+物理模型”的動態(tài)架構(gòu)建模方法,有一定的抽象但又利于理解,建立了分層結(jié)構(gòu)但又獨立于具體技術(shù)?;趧討B(tài)模型的業(yè)務(wù)系統(tǒng)架構(gòu)為業(yè)務(wù)流程再造提供了便利松弛的環(huán)境,結(jié)合流程引擎特別容易實現(xiàn)對新、舊業(yè)務(wù)的平滑過渡,成為業(yè)務(wù)持續(xù)性管理的理想架構(gòu),可實現(xiàn)業(yè)務(wù)系統(tǒng)的快速開發(fā)和重構(gòu),是一種具有重要實際意義的系統(tǒng)開發(fā)方法。

參考文獻(xiàn)

  [1] 陳儒,肖剛,張元鳴,等.基于事物規(guī)則的面向服務(wù)工作流模型研究[J].計算機(jī)應(yīng)用與軟件,2014,31(6):5-7.

  [2] 管紅杰,王珂,江海峰,等.SOA架構(gòu)的工作流管理系統(tǒng)的研究與應(yīng)用[J].計算機(jī)工程與設(shè)計,2011,32(5):1654-1657.

  [3] 張功萱,陳瀚,王永利,等.一種消息驅(qū)動的SOA系統(tǒng)集成方法[J].計算機(jī)系統(tǒng)應(yīng)用,2012,21(6):86-90.

  [4] WfMC TC210162X.Workflow management coalition interface 1:Process definition interchange Q&A and examples[S].1999.

  [5] 曾誠,何克清,李兵.一種用戶驅(qū)動的服務(wù)資源建模方法[J].計算機(jī)應(yīng)用與軟件,2012,29(8):21-23.

  [6] 吳益爾,蔡鴻銘,步豐林,等.基于語義的三維元素的概念關(guān)系建模的研究[J].計算機(jī)應(yīng)用與軟件,2011,28(3):8-12.

  [7] 張婷.基于Extjs+Spring MVC的WEB系統(tǒng)開發(fā)架構(gòu)的研究與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2013,1(23):147-149.

  [8] 陳莉莉,張麗,劉正龍.搜索引擎中基于狀態(tài)的Ajax動態(tài)網(wǎng)頁提取研究[J].計算機(jī)應(yīng)用與軟件,2013,30(7):217-220.

  [9] 甘勇.JSP程序設(shè)計技術(shù)教程[M].北京:清華大學(xué)出版社,2010.

  [10] 陳丹丹,李銀龍.Java開發(fā)寶典[M].北京:機(jī)械工業(yè)出版社,2012.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。