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

?

基于數(shù)據(jù)中間件的URAP整合工作流的通信研究

2017-03-30 11:46胡杰胡欣宇
物聯(lián)網(wǎng)技術(shù) 2017年3期
關(guān)鍵詞:工作流組件

胡杰+胡欣宇

摘 要:針對企業(yè)應(yīng)用系統(tǒng)URAP平臺與工作流系統(tǒng)集成中的數(shù)據(jù)通信問題,文中采用基于數(shù)據(jù)交換中間件技術(shù)的系統(tǒng)通信方法,降低系統(tǒng)之間通信的復(fù)雜度,提高整合系統(tǒng)的數(shù)據(jù)交換能力,有效解決了URAP系統(tǒng)與工作流整合后引起的無法通信問題,避免了集成對原URAP系統(tǒng)結(jié)構(gòu)的破壞和代碼的入侵。

關(guān)鍵詞:數(shù)據(jù)中間件;工作流;組件;URAP

中圖分類號:TP391 文獻標(biāo)識碼:A 文章編號:2095-1302(2017)03-00-03

0 引 言

工作流技術(shù)指“業(yè)務(wù)過程的部分或整體在計算機應(yīng)用環(huán)境下的自動化”。是對工作流程及其各操作步驟之間業(yè)務(wù)規(guī)則的抽象、概括描述,主要用于分析、模擬、定義以及操作實現(xiàn)企業(yè)的業(yè)務(wù)過程,是實現(xiàn)企業(yè)業(yè)務(wù)過程管理和控制、過程集成、過程重組的核心技術(shù),為實現(xiàn)某個業(yè)務(wù)目標(biāo),在多個參與者之間利用計算機按某種預(yù)定規(guī)則自動傳遞。其主要特點是使工作處理過程自動化、整合化、智能化,使人以及各種應(yīng)用工具之間相互協(xié)調(diào)工作,實現(xiàn)數(shù)據(jù)整合和數(shù)據(jù)統(tǒng)計,消除信息孤島,在恰當(dāng)?shù)臅r間執(zhí)行正確的操作[1-4]。但目前的工作流產(chǎn)品還不能獨立應(yīng)用于企業(yè),只有與相應(yīng)的應(yīng)用系統(tǒng)相結(jié)合,才能發(fā)揮更好的作用。當(dāng)下應(yīng)用系統(tǒng)的差異性和多樣性使得工作流系統(tǒng)和應(yīng)用系統(tǒng)難以實現(xiàn)平滑整合,往往因為方法不當(dāng)導(dǎo)致系統(tǒng)高耦合,容易造成對原系統(tǒng)結(jié)構(gòu)的破壞,降低了系統(tǒng)的靈活性和可擴展性,增加了維護難度[5]。

文獻[6]提出了基于AOP工作流系統(tǒng)和企業(yè)信息系統(tǒng)的集成方法,通過采用AOP技術(shù),避免了在集成過程中對企業(yè)原有應(yīng)用系統(tǒng)的侵入,提高了應(yīng)用系統(tǒng)的重用性。文獻[7]提出了基于IoC模式的工作流與應(yīng)用系統(tǒng)的集成方法,通過IoC容器轉(zhuǎn)移組件間的依賴,在運行時動態(tài)注入,需要改變依賴時只需修改依賴關(guān)系描述文件,減少了硬編碼數(shù)量,極大地提高了組件的重用,使整個系統(tǒng)的靈活性和可擴展性大大提高。

通用資源應(yīng)用平臺(Universal Resources Application Platform,URAP)基礎(chǔ)業(yè)務(wù)平臺是一個符合MVC模型的面向知識工程的多層服務(wù)構(gòu)架的應(yīng)用框架,是為解決應(yīng)用軟件開發(fā)過程中軟件過程管理問題,軟件質(zhì)量問題,資源積累問題和軟件集成問題,并為提高軟件開發(fā)質(zhì)量、軟件開發(fā)效率,以便快速形成應(yīng)用系統(tǒng),使軟件開發(fā)過程中的各關(guān)鍵部分標(biāo)準(zhǔn)化、規(guī)范化、可視化而建立的一套軟件基礎(chǔ)設(shè)施。隨著企業(yè)的快速發(fā)展,迫切需要對業(yè)務(wù)流程進行有效控制和管理,目前,工作流技術(shù)是實現(xiàn)企業(yè)業(yè)務(wù)過程管理和控制、過程集成、過程重組且應(yīng)用最廣泛、最高效的核心技術(shù)。

參考文獻[5-7]中提出的集成方法主要針對具體的企業(yè)信息應(yīng)用平臺,但對于特定通信方式的應(yīng)用系統(tǒng),直接嵌入工作流系統(tǒng)將導(dǎo)致系統(tǒng)間數(shù)據(jù)無法交互的問題出現(xiàn),很難實現(xiàn)平滑通信。本文采用嵌入式集成模式實現(xiàn)工作流系統(tǒng)與URAP平臺的集成,針對集成后系統(tǒng)間無法通信的問題,提出了一種基于數(shù)據(jù)交互中間件實現(xiàn)系統(tǒng)之間通信的方法,該方法對系統(tǒng)間交換數(shù)據(jù)的結(jié)構(gòu)進行了封裝,并采用統(tǒng)一的數(shù)據(jù)傳輸格式,提供了一種系統(tǒng)間數(shù)據(jù)交換的機制。

1 系統(tǒng)集成模式問題分析

根據(jù)應(yīng)用系統(tǒng)和工作流管理系統(tǒng)的關(guān)系,目前可以將工作流管理系統(tǒng)分為嵌入式系統(tǒng)和自治式系統(tǒng)兩大類。嵌入式工作流系統(tǒng)將工作流系統(tǒng)嵌入在應(yīng)用程序中,通過應(yīng)用程序調(diào)用WAPI(Workflow API)來實現(xiàn)流程控制,是流程控制和管理模塊的基礎(chǔ)構(gòu)件[8];自治式工作流系統(tǒng)具有獨立的數(shù)據(jù)庫(DB)和消息中間件機制,將應(yīng)用系統(tǒng)中所有的業(yè)務(wù)處理功能作為外部應(yīng)用來調(diào)用。

在自治式工作流系統(tǒng)集成模式中,在工作流系統(tǒng)與業(yè)務(wù)應(yīng)用系統(tǒng)的交互方式上,工作流引擎直接調(diào)用外部業(yè)務(wù)應(yīng)用提供遠程接口(如基于RMI,Web Service的業(yè)務(wù)接口),以遠程調(diào)用方式提供WAPI[9,10]。自治式工作流系統(tǒng)的集成模式如圖1所示。工作流引擎通過流程中的設(shè)定代理觸發(fā)調(diào)用應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)通過WAPI訪問和驅(qū)動工作流引擎。

自治式工作流系統(tǒng)自身就是一個單獨的應(yīng)用系統(tǒng),如果不基于某個中間件技術(shù),自治式工作流引擎必須自己實現(xiàn)網(wǎng)路通信處理、多線程同步等服務(wù)端技術(shù),實現(xiàn)的技術(shù)復(fù)雜、成本高,集成能力受到代理方式的限制。結(jié)合自治式工作流系統(tǒng)集成模式自身的缺點和URAP平臺自身的特點,本文采用嵌入式工作流系統(tǒng)集成模式。

嵌入式工作流引擎部署在應(yīng)用系統(tǒng)中,不能單獨運行,它作為應(yīng)用系統(tǒng)的組件,用于控制企業(yè)流程的執(zhí)行順序和流程狀態(tài)等,因此通過調(diào)用本地方法實現(xiàn)工作流集成,如圖2所示。

(1) 組件擴展:通過調(diào)用工作流接口實現(xiàn)流程驅(qū)動并由流程組件擴展原有業(yè)務(wù)組件。顯示組件訪問特定流程組件,實現(xiàn)對已有系統(tǒng)增加工作流管理的功能。

(2) 工作流擴展:業(yè)務(wù)組件為工作流擴展中的最小功能點,由工作流引擎直接驅(qū)動工作流代理的流程組件。顯示層組件直接訪問工作流接口,適合面向流程的應(yīng)用系統(tǒng)開發(fā)。

這兩種擴展方式各有其優(yōu)缺點,組件擴展適合業(yè)務(wù)組件不能確保都滿足工作流原子的事務(wù)約定,而工作流擴展適合于設(shè)計按照工作流標(biāo)準(zhǔn)組織(WfMC)制定的標(biāo)準(zhǔn)系統(tǒng)。

針對URAP系統(tǒng)的特點采用嵌入式工作流系統(tǒng)集成模式組件擴展的方式,將工作流集成到URAP系統(tǒng)中,集成過程通過數(shù)據(jù)交換中間件實現(xiàn)系統(tǒng)之間的平滑通信,實現(xiàn)流程控制的自動化,支持企業(yè)定制和快速實施。

2 數(shù)據(jù)交換中間件技術(shù)研究與實現(xiàn)

2.1 數(shù)據(jù)交換中間件技術(shù)分析與研究

數(shù)據(jù)中間件是信息系統(tǒng)平臺中用于封裝及組織數(shù)據(jù)的組件,用于應(yīng)用系統(tǒng)內(nèi)各層之間以及各應(yīng)用系統(tǒng)之間的數(shù)據(jù)傳輸及交換[11]。Udata是URAP平臺和工作流系統(tǒng)采用的統(tǒng)一數(shù)據(jù)傳輸結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)對系統(tǒng)間交換數(shù)據(jù)的格式進行了封裝,為程序間數(shù)據(jù)交換提供了一種機制和標(biāo)準(zhǔn),是應(yīng)用平臺與工作流系統(tǒng)運作的通信基礎(chǔ);系統(tǒng)自動實現(xiàn)封包解包工作,完全屏蔽了底層數(shù)據(jù)的交換細節(jié),開發(fā)人員不用關(guān)心具體的數(shù)據(jù)交換機制,只需把精力集中于業(yè)務(wù)數(shù)據(jù)的組織,這樣便實現(xiàn)了數(shù)據(jù)交換的模塊化和靈活性。JSP前端頁面與Service后臺應(yīng)用間交互、后臺應(yīng)用之間數(shù)據(jù)交互均采用數(shù)據(jù)結(jié)構(gòu)為Udata的標(biāo)準(zhǔn)數(shù)據(jù)交換,如圖3所示。

一個Udata由屬性區(qū)和若干數(shù)據(jù)塊區(qū)(UdBlock)組成,在屬性區(qū)可以設(shè)置Udata的相關(guān)屬性。每個數(shù)據(jù)塊區(qū)(UdBlock)相當(dāng)于一個按行列組織的二維數(shù)組,以行號和列名為關(guān)鍵字檢索數(shù)據(jù)。每個數(shù)據(jù)塊的列信息由獨立的UdColumn對象描述。每個數(shù)據(jù)塊有自己的屬性區(qū),可以設(shè)置該塊的屬性信息。數(shù)據(jù)交換中間件由標(biāo)準(zhǔn)屬性區(qū)、擴展屬性區(qū)及數(shù)據(jù)塊集合區(qū)構(gòu)成。標(biāo)準(zhǔn)屬性區(qū)以鍵/值對形式存放數(shù)據(jù)集的標(biāo)準(zhǔn)屬性,只有統(tǒng)一信息系統(tǒng)平臺定義的數(shù)據(jù)集標(biāo)準(zhǔn)屬性才能存放在標(biāo)準(zhǔn)屬性區(qū),用戶自定義屬性(即擴展屬性)無法存放在該區(qū)中;擴展屬性區(qū)以鍵/值對形式存放用戶自定義的擴展屬性;數(shù)據(jù)塊集合區(qū),存放數(shù)據(jù)塊集合。

數(shù)據(jù)交互中間件結(jié)構(gòu)圖如圖4所示。

數(shù)據(jù)塊是數(shù)據(jù)交換中間件中用于組織類似表結(jié)構(gòu)數(shù)據(jù)的單元,數(shù)據(jù)塊由標(biāo)準(zhǔn)屬性區(qū)、擴展屬性區(qū)、列定義區(qū)及數(shù)據(jù)區(qū)構(gòu)成。標(biāo)準(zhǔn)屬性區(qū)以鍵/值對形式存放數(shù)據(jù)集的標(biāo)準(zhǔn)屬性,只有統(tǒng)一信息系統(tǒng)平臺定義的數(shù)據(jù)塊標(biāo)準(zhǔn)屬性才能存放在標(biāo)準(zhǔn)屬性區(qū),用戶自定義屬性(即擴展屬性)無法存放在該區(qū)中; 擴展屬性區(qū),以鍵/值對形式存放用戶自定義的擴展屬性; 列定義區(qū),存放數(shù)據(jù)列定義集合; 數(shù)據(jù)區(qū),存放數(shù)據(jù)行(即具體的數(shù)據(jù))集合。

2.2 數(shù)據(jù)交換中間件的實現(xiàn)

Udata主要包含Udata、UdBlock、UdBlockMeta和UdColumn四個對象,對象間的相互關(guān)系為:一個Udata對象包含若干個UdBlock對象;一個UdBlock對象代表一個數(shù)據(jù)塊。其中包含一個UdBlockMeta對象用以描述該數(shù)據(jù)塊中相關(guān)數(shù)據(jù)的列信息;包含一個list對象描述該數(shù)據(jù)塊中的所有數(shù)據(jù)。list中的每一行數(shù)據(jù)以Map結(jié)構(gòu)表示;一個UdBlockMeta對象代表列的集合。用以描述UdBlock對象對應(yīng)的數(shù)據(jù)塊的所有列信息。其中包含若干個UdColumn對象;一個UdColumn對象代表一個列。用以描述數(shù)據(jù)塊的具體列信息。

根據(jù)Udata數(shù)據(jù)結(jié)構(gòu)的特點,平臺采用三段式規(guī)則對一個數(shù)據(jù)進行存取、傳輸和解析:blockId-rowNum-columnName(指定塊名-指定行號-指定列名) 。數(shù)據(jù)交互中間件Udata部分接口如圖5所示。

按照標(biāo)準(zhǔn)的MVC模式以及目前主流的J2EE開發(fā)框架,一般分為JSP,Service,Dao三個層次。JSP前端將數(shù)據(jù)提交后臺會根據(jù)相關(guān)約定規(guī)則自動封裝成Udata數(shù)據(jù)結(jié)構(gòu)并交給相應(yīng)的應(yīng)用程序進行處理,應(yīng)用程序?qū)⑻幚硗瓿珊蟮臄?shù)據(jù)再次封裝為Udata格式的信息返回前臺響應(yīng),前臺根據(jù)Udata格式的信息自動渲染成相應(yīng)的響應(yīng)頁面。Service屬于后臺,主要功能是對外界提供所有函數(shù)的input與output參數(shù)封裝為Udata數(shù)據(jù)格式。通過Udata數(shù)據(jù)結(jié)構(gòu)來規(guī)范Service的input與output操作,有利于應(yīng)用系統(tǒng)對Service的集中靈活調(diào)度,避免用戶花費更多的精力在Service的內(nèi)部邏輯中。嵌入式集成系統(tǒng)層次結(jié)構(gòu)如圖6所示。

開發(fā)者可以利用平臺提供的豐富頁面套件及標(biāo)簽庫完成JSP的編寫。

JSP頁面交互的數(shù)據(jù)統(tǒng)一約定為Udata格式,方法的輸入?yún)?shù)和返回參數(shù)均以Udata對象作為標(biāo)準(zhǔn),例如:

Udata info = (Udata) request.getAttribute(“id”);

public Udata jobCreate(Udata Udata); //根據(jù)傳入的信息,創(chuàng)建任務(wù)

public Udata jobExecute(Udata Udata); //根據(jù)指定的任務(wù)信息,立即啟動任務(wù)的執(zhí)行

public Udata startACParamJob(Udata inInfo);//根據(jù)傳入的作業(yè)信息啟動其執(zhí)行

在JSP頁面中引入urap.core.ei.*和/tlds/EF.tld標(biāo)簽就可調(diào)用數(shù)據(jù)交換中間件中的方法; Service是使用URAP時應(yīng)用關(guān)注的主要部分。開發(fā)人員通過編寫Service來實現(xiàn)業(yè)務(wù)邏輯。

public class ServiceEE11 extends ServiceEPBase {

public Udata query(Udata inInfo) {

//…… 業(yè)務(wù)邏輯……

}

}

其設(shè)計與具體業(yè)務(wù)關(guān)系極大,具體的劃分方法由設(shè)計人員自行決定,但劃分的基礎(chǔ)不可超過本模塊的邊界。在項目中,若無例外情況,則Service的劃分和服務(wù)范圍可以模塊或頁面為單位,提供一個與“界面功能代號”對應(yīng)的Service,進行頁面的初始化載入處理。對Service類中處理頁面功能的方法和進行業(yè)務(wù)交互的方法的編寫要求是:方法的輸入?yún)?shù)為Udata對象,輸出參數(shù)為一個新的Udata對象。平臺提供了一個通用的Action(DispatchAction),頁面端的所有請求都可以通過DispathAction進行服務(wù)調(diào)用轉(zhuǎn)發(fā),它將頁面提交的數(shù)據(jù)自動組織成一個Udata對象,同時根據(jù)指定的ServiceName和MethodName動態(tài)調(diào)用相應(yīng)的業(yè)務(wù)服務(wù)方法。在一般情況下應(yīng)用模塊無需專門設(shè)計Action,只需調(diào)用DispatchAction即可。public Udata initLoad(Udata inInfo) {…}接口調(diào)用適用于項目間調(diào)用和項目內(nèi)部一級模塊間的相互調(diào)用,接口交互的數(shù)據(jù)統(tǒng)一約定為Udata數(shù)據(jù)格式,接口方法的輸入?yún)?shù)和返回值類型均以Udata數(shù)據(jù)對象作為標(biāo)準(zhǔn),調(diào)用方法通過指定的svcName(服務(wù)名稱)和mthdName(方法名稱)進行,采用SOAMng.call函數(shù)調(diào)用,被調(diào)用的函數(shù)采用設(shè)置Udata數(shù)據(jù)格式返回值的函數(shù)通知主調(diào)函數(shù),由主調(diào)函數(shù)根據(jù)返回Udata數(shù)據(jù)格式的狀態(tài)碼和自身的業(yè)務(wù)邏輯進行事務(wù)處理。

3 結(jié) 語

本文針對工作流系統(tǒng)與URAP系統(tǒng)集成后無法正常通信的問題,提出一種基于數(shù)據(jù)中間件URAP平臺整合工作流的通信技術(shù)。該技術(shù)采用統(tǒng)一的數(shù)據(jù)傳輸結(jié)構(gòu)Udata,對系統(tǒng)間數(shù)據(jù)交換的結(jié)構(gòu)進行了封裝,實現(xiàn)了與URAP平臺的良好通信,克服了系統(tǒng)間不能平滑通信的弊端,優(yōu)化了系統(tǒng)結(jié)構(gòu),提高了通信效率,促進了URAP平臺中各模塊之間的交互和信息共享。

參考文獻

[1] WfMC.The workflow reference model[Z].1999.

[2] ZHOU Jian-tao, SHI Mei-lin , YE Xin-ming.State of arts & trends on flexible workflow technology[J].Computer Integrated Manufacturing Systems,2005,11(11):1501-1510.

[3] Construction Research Congress, West Lafayette, Indiana, United States: 2012[Z].

[4]侯志松,余周,馮啟高.工作流管理系統(tǒng)開發(fā)實錄-基于JBoss JPBM實現(xiàn)[M].北京:中國鐵道出版社,2010:196-246,284-297.

[5] C Kahraman.Research on the realization method of workflow engine in enterprise information management[J].Journal of Enterprise Information Management, 2013,24(4): 380-400

[6] LI Qing,WENJing qian,ZHAOMeng . Research on AOP—based integration of workflow system with enterprise information systems[J].Computer Integrated Manufacturing Systems,2006,12(3):401-406.

[7] ZHAO Hong-yi, MENG De-en. Research and design of workflow system integration based on SOA[J]. Modern Electronics Technique,2012,35(12):29-32.

[8] MUEHLEN M.Workflow classification:embedded&autonomous workflow management systems[Z].

[9]何建校.基于J2EE的嵌入式工作流引擎[J].微計算機信息,2006,22(20):28-30.

[10] Christoph Moenninghoff, Lale Umutlu, Christian Kloeters, et al. Workflow Efficiency of Two 1.5 T MR Scanners with and without an Automated User Interface for Head Examinations[J].Academic Radiology,2013,20(6):721-730.

[11]陳錦平.通信層數(shù)據(jù)交換中間件設(shè)計實現(xiàn)[J].計算機工程與設(shè)計,2013,34(3):955-959.

[12] Ao Limin, XD ZHU, W ZHOU.Integration of Workflow with Application System Based on Inversion of Control Pattern[J].Computer Engineering,2009,35(18):69-71.

猜你喜歡
工作流組件
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
新型碎邊剪刀盤組件
U盾外殼組件注塑模具設(shè)計
橋梁組件搭配分析
基于工作流2.0的智慧教室設(shè)計與研究
工作流在電力生產(chǎn)管理信息系統(tǒng)中的設(shè)計和應(yīng)用
風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
16%——Manz再度刷新CIGS光伏組件轉(zhuǎn)換效率世界紀(jì)錄
获嘉县| 东乡族自治县| 萨嘎县| 金平| 罗甸县| 醴陵市| 繁峙县| 色达县| 长治市| 上犹县| 周至县| 棋牌| 虞城县| 堆龙德庆县| 余江县| 鹰潭市| 新沂市| 仙桃市| 乌苏市| 辽中县| 安图县| 岗巴县| 连城县| 左云县| 元谋县| 洪湖市| 镶黄旗| 麦盖提县| 昌宁县| 安丘市| 南投县| 同江市| 名山县| 镇沅| 昌黎县| 嵊州市| 梓潼县| 陕西省| 汕尾市| 玉林市| 吴川市|