999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于工作流技術的構件模型研究

2008-12-31 00:00:00唐文忠林時棟鄧婧文
計算機應用研究 2008年7期

摘 要:為了解決構件業務流程建模能力不足的問題,提出了一種基于工作流技術的構件模型——工作流構件模型。首先分析了工作流過程定義的組成和流程控制方法,識別出可用于構件業務流程建模的工作流元素;然后根據構件的獨立性、封裝性和組裝性需求,選取工作流元素設計實現了工作流構件模型,并給出了應用實例。與傳統的構件模型相比,工作流構件模型提高了業務流程構件的靈活性,豐富了業務流程構件的組裝形式,降低了業務流程構件的復雜度,從而提高了構件的業務流程建模能力。

關鍵詞:軟件復用;軟件構件;工作流;構件模型

中圖分類號:TP311 文獻標志碼:A

文章編號:1001-3695(2008)07-2057-03

Research on component model based on workflow technology

TANG Wenzhong,LIN Shidong,DENG Jingwen

(School of Computer Science Technology, Beihang University, Beijing 100083, China)

Abstract:In order to solve the problem of inadequate capacity for business process modeling of component,put forward a component model based on workflow technology——workflow component model.First,analyzedthe composition and flow controlling method of workflow process definition model to extract the workflow elements for business process modeling of component. Then, according to the need of independence, encapsulation and assembly of component, some workflow elements were used to design and implement workflow component model,and also presented one example.Compared with traditional component model,the workflow component model improves flexibility, increases assembly methods and reduces complexity for process component. Therefore the workflow component model can improve the capacity for business process modeling of component.

Key words:software reuse;software component;workflow;component model

基于構件的軟件開發方法是軟件復用的有效手段。構件是一個帶有契約化接口和顯式上下文依賴的組裝單元,它能被獨立發布且可以被第三方組裝[1]。構件模型是對構件本質特征及構件間關系的抽象描述,它關注構件的接口,封裝構件的實現細節,是構件組裝的依據和保證,并為構件的不同生產者和使用者提供一個為大家所接受的一致性描述[2]。 

當前的構件是基于面向對象的方法構造的,主要關注實體間通信機制的刻畫,不適合建模實體間相互作用的規則和動態過程,導致了構件在業務流程建模上能力不足[3]。工作流技術是當前實現業務流程建模的有效技術手段。

1 構件模型

至今,在學術界和產業界已出現多種構件模型。按構件模型所要解決的問題不同,可分為描述型、規約型和實現型。描述型構件模型以構件的管理為目標,通過綜合的方式描述構件,代表性的有REBOOT、ALOAF、UDM和BIDM模型[4] 。它們并不關注構件如何實現業務流程功能。規約型構件模型以描述構件的功能(行為)為主要目標,代表性的有3C、RESOLVE和JBCOM模型都是基于面向對象的思想設計的。側重于構件功能接口建模,并沒探討構件業務流程建模方法。實現型構件模型以如何具體實現構件為主要目標,代表性的有COM/DCOM、JavaBean/EJB和CORBA[5]模型都是基于面向對象技術設計的。通常將業務實體間相互作用的規則和動態過程通過硬編碼的方式封裝成對象的方法,當業務流程發生變更時,往往需要對構件進行代碼級上的修改。

本文提出的工作流構件模型(workflow component model,WCM)是一種與JavaBean/EJB實現型模型相容且具有構件描述功能的規約型構件模型。

WCM構件模型從下列10個方面來對構件進行建模。

構件描述:表示構件的基本信息,多采用名詞來表示。

構件接口:表示構件的輸入/輸出接口規范[6]。

構件實現:表示實現構件功能的構件體的位置信息。

構件結構:表示復合構件的組成方式。

可配置屬性集:表示構件可通過配置改變的屬性信息。

文檔信息:表示構件的文檔位置信息。

刻面信息:表示構件用于檢索的分類屬性。

領域特征:表示領域構件所具備的領域特征屬性。

工作流規約:表示實現業務流程功能的工作流構件的業務流程定義和實現方式。

待擴展項目:表示構件的擴展屬性。

WCM將構件分為工作流構件和非工作流構件(傳統面向對象技術構造的構件)兩類。工作流規約屬性是對典型構件模型的工作流擴展,是構件工作流特性的集中體現,當且僅當構件是工作流構件時才具備該屬性。

2 工作流過程建模理論分析

2.1 工作流過程定義元素分析

工作流技術利用信息技術為企業的經營過程提供了一個從模型分析、建立、管理、仿真到運行的完整框架,是實現業務流程管理與控制的一項關鍵性技術。

利用工作流技術開發應用系統的典型方式如下:業務人員依據工作流過程定義規范;定義業務邏輯和規則,專業開發人員開發具體的應用邏輯;最后工作流引擎通過解析業務邏輯和規則,按特定順序調用業務流程應用邏輯,最終實現業務流程的自動化。業務邏輯和規則的定義過程即利用工作流技術對業務流程建模的過程;業務邏輯和規則的定義在工作流技術中稱為工作流過程定義。

工作流管理聯盟認為工作流過程定義(workflow process definition)是對工作流的靜態描述,是對業務流程中所有信息的抽象表示。工作流過程定義[7]通常包括過程描述(description)、業務流程中的所有活動(activity)、活動之間的導航規則(transition)、參與者(participant)、被調用的應用程序(application)以及工作流相關數據(data)六個元素。

工作流過程定義各元素的關系如圖1[7]所示。過程描述是對工作流過程惟一標志符、名稱和解決的問題等信息的描述;活動表示需要由一些相關資源處理,或者由計算機應用程序處理的任務集合;導航規則用于將活動相互聯系起來,實現活動之間的導航,表明活動之間的邏輯跳轉順序和條件。參與者描述了在過程定義中各個活動所需要的參與者;被調用的應用程序表示各個活動執行時所需的外部應用,由活動觸發執行;工作流相關數據是指那些在流程運行期間,各個流程實例內創建及使用的數據,這些數據可被參與者、應用程序、活動和導航規則所訪問。

2.2 工作流過程控制分析

工作流過程定義當中,活動的觸發和流程跳轉過程如圖2所示。首先,由參與者觸發一個活動,被觸發的活動調用實現相應功能的應用程序,實現具體業務功能,并由工作流引擎更改與活動執行結果相關的工作流相關數據;其次,活動執行完畢后,工作流引擎解析導航規則,導航規則讀取工作流相關數據,獲取上一個活動的執行結果,判斷下一個可由參與者觸發的活動路徑。

工作流過程定義通過導航規則控制活動之間的執行順序,實現對業務邏輯的控制。對于業務流程之間的嵌套,則通過引入一類特殊的活動——子流程來實現。子流程是一類特殊的工作流過程定義,可映射成其他工作流過程定義中的一個活動節點。當執行到子流程節點時,觸發子流程執行,待子流程執行完畢,回到父流程繼續執行下一個節點。通過子流程機制,工作流技術實現了工作流過程定義之間的嵌套和連接?;顒优c子流程之間的關系如圖3所示。

3 基于工作流技術的構件模型建立

3.1 設計原理

本文從構件的獨立性、封裝性和組裝性[8]這三個需求出發,對工作流過程定義模型元素進行分析,得出工作流過程定義模型在構件中的實現形式。本文稱實現具體業務流程功能的構件為業務流程構件。

構件的獨立性要求業務流程構件作為一個獨立的實體,應包含完成業務流程功能的所有元素,可獨立運行。工作流過程定義組成元素中的參與者、應用程序、活動、工作流相關數據和導航規則是完成一個業務流程所必備的元素,因此,在業務流程構件模型當中將引入這五個元素。而過程描述所擁有的工作流過程惟一標志符、名稱和功能描述等屬性,可作為檢索業務流程構件的輔助依據,因此也將其引入構件模型,在構件描述屬性中表示。

構件的封裝性要求業務流程構件僅需提供構件的基本控制接口,屏蔽構件實現細節。業務流程構件僅以Web服務的形式對外提供啟動業務流程和獲取流程執行結果的操作接口,而實現業務流程功能的各種構件組成元素對于構件使用者是不可見的。

構件的組裝性要求業務流程構件之間可進行組裝?;顒邮枪ぷ髁鬟^程定義中最基本的組裝功能單元;導航規則是用于組裝活動的基本元素;流程是一類能實現完整業務流程功能的單元。被映射成活動的流程稱為子流程,是大粒度的組裝功能單元。因此,分別定義代表活動、導航規則和流程元素的構件。

3.2 模型定義

經過上述對工作流過程定義模型中數據元素、流程控制方法,以及業務流程構件的獨立性、封裝性和組裝性的分析,得出工作流構件的定義。

定義1 工作流構件是一類包含工作流過程定義元素,運行時需要工作流運行環境支撐的業務流程構件。

工作流構件可分為流程構件、單活動構件和導航規則構件三類。

定義2 流程構件是能夠實現完整業務流程功能,封裝了業務流程的定義和相關應用程序實現體的工作流構件。

定義3 單活動構件是僅能夠實現業務流程中的一個活動功能,封裝了業務流程的一個活動定義和活動相關應用程序實現體的工作流構件。

定義4 導航規則構件是能夠實現業務流程活動跳轉功能,僅封裝活動定義和活動間導航規則,不指定活動具體實現的工作流構件。

流程構件和導航規則構件均可通過將活動定義映射成其他工作流構件的方式引用其他工作流構件,實現工作流構件間的組裝。但流程構件是在特定業務流程定義下對構件進行組裝,而導航規則構件則是從一般的活動跳轉邏輯出發對構件進行組裝。三類工作流構件間的關系如圖4所示。

工作流構件與非工作流構件的區別在于,工作流構件實現了工作流規約屬性,并在構件描述中表明了構件類型為工作流構件。為了提高構件模型描述文件的可讀性,工作流規約的詳細信息以工作流規約文件的形式單獨表示。在構件模型描述中僅指定工作流構件類別和工作流規約文件的文件名。

下面給出工作流規約主要元素的BNF范式描述:

工作流規約::=〈工作流構件類別〉〈工作流規約文件名〉

工作流構件類別::=〈“process”〉|〈“singleActivity”〉|〈“navigation”〉

工作流規約文件::=〈流程構件規約〉|〈單活動構件規約〉|〈導航規則構件規約〉

流程構件規約::=〈公共屬性〉{活動}{導航規則}{參與者}{應用程序}{工作流相關數據}

單活動構件規約::=〈公共屬性〉〈活動〉{參與者}〈應用程序〉{工作流相關數據}

導航規則構件規約::=〈公共屬性〉{活動}{導航規則}{工作流相關數據}

活動::=〈公共屬性〉{參與者標志符}〈應用程序標志符〉{活動輸入參數}{活動輸出參數}

導航規則::=〈公共屬性〉〈條件〉〈起始活動標志符〉〈結束活動標志符〉

參與者::=〈公共屬性〉〈參與者類型〉

應用程序::=〈公共屬性〉〈應用程序類型〉{應用程序參數}

工作流相關數據::=〈公共屬性〉〈數據類型〉[缺省值]

公共屬性::=〈標志符〉[名稱][描述]

其中::=表示定義為;尖括號〈〉內包含的為必選項;方括號[]內包含的為可選項;花括號{}內包含的為可重復0至無數次的項目;|表示在其左、右兩邊任意一項;雙引號中的字(“word”)代表這些字符本身。

為了便于對構件模型進行形式化描述,在WCM構件模型BNF范式的基礎上,WCM利用XML語言作為構件模型描述文件和工作流規約文件的表現形式。

3.3 物理實現

工作流構件的物理實現方式如圖5所示。工作流構件以Web服務的形式對外提供觸發構件開始運行(start)和獲取構件運行結果(getResult)的操作接口。Start方法調用工作流引擎提供的接口,解析工作流規約文件*.cwf,從而實例化一個工作流構件對象,發起一次業務流程運行。如果業務流程運行結束時有返回值,getResult將返回工作流構件的運行結果,為工作流構件的組裝提供工作流相關數據。實例化后的工作流構件通過工作流引擎解析工作流規約文件*.cwf,調用內置資源實現業務功能。內置資源是指實現活動功能所需要的應用程序和數據結構,有JavaBean、EJB、 Web service和XML文件等具體實現形式。Config.xml是工作流構件的參數配置文件,用于配置構件的系統運行參數。非工作流構件對工作流構件的調用是通過調用工作流構件以Web服務形式提供的構件基本操作接口實現的;工作流構件對非工作流構件的調用是通過對工作流規約文件*.cwf進行配置實現的;工作流構件對工作流構件的調用是通過對工作流規約文件*.cwf進行配置實現的,配置方法是將工作流規約文件*.cwf中的活動映射成被調用的工作流構件。工作流構件運行所需要的工作流運行支撐環境,通過在應用系統運行環境中加入構件化的工作流引擎來提供。

3.4 實例研究

通過領域分析獲取人事干部任免流程的活動圖,為了直接將活動圖映射成為工作流構件,在UML活動圖中添加活動參與者元素。將活動圖中的參與者、活動與活動之間的關系分別映射成工作流構件的工作流規約文件當中的參與者、活動和導航規則;工作流構件的相關應用程序可以是以構件、JavaBean和Web service等形式存在的程序;將活動可能用到的輸入輸出參數定義成工作流相關數據。

干部任免流程活動圖與工作流規約文件元素之間的映射關系如圖6所示。干部任免流程工作流構件物理實現如圖7所示。

4 工作流構件模型的意義

與傳統的構件模型相比,工作流構件模型具有下列優點:

a)提高了業務流程構件變更的靈活性。傳統的業務流程構件通過硬編碼或連接子編碼的方式控制各個業務功能之間的跳轉。當業務流程需要變更時,往往需要在代碼級上對業務流程的實現進行修改。而工作流構件將業務功能的執行主體與實現代碼進行了分離;將控制流程跳轉的元素抽象成工作流相關數據和導航規則兩類元素,實現了業務功能與控制邏輯分離的目標。因此,當業務流程需要變更時,僅需要更改相應的參與者、應用程序、工作流相關數據定義或導航規則配置,無須對整個流程的實現進行修改。

b)豐富了業務流程構件的組裝形式。傳統業務流程構件的組裝一般通過編寫連接子代碼或通過調用構件輸入/輸出接口實現構件的組裝。而工作流構件只需將構件中的活動定義映射成特定的工作流構件,即可實現工作流構件間的快速組裝。

c)降低了大粒度業務流程構件的復雜度。由于引入了子流程的概念,并由此產生了將活動定義映射成特定的工作流構件的組裝機制,使得復雜的業務流程構件可以輕易地被拆分成多個更為簡單的子流程構件,而子流程構件仍然可進一步細分為更簡單的子流程構件,實現了對大粒度業務流程構件復雜性的分解。

5 結束語

本文將工作流中業務流程建模技術應用到構件模型當中,提出了工作流構件模型的概念。經過在其他子系統中的應用,證明了工作流構件具有較為靈活的流程建模能力。本文僅完成了構件模型的設計和物理實現,今后還將研究工作流構件的識別和自動化組裝方法。

參考文獻:

[1] WANG Guijun,UNGRA L,KLAWITTER D.Component assembly for OO distributed systems[J].IEEE Computer,1999,32(7):7178.

[2]SAMETINGER J.Software engineering with reusable components[M].Berlin:SpringerVerlag,1997.

[3] 張文燚.面向領域的軟件生產研究與實踐[D].北京:北京航空航天大學,2003.

[4]楊芙清,梅宏,李克勤.軟件復用與軟件構件技術[J].電子學報,1999,27(2):6875.

[5]周兆明,葛孝.軟件構件模型及實現方法分析[J].微型電腦應用,2001,17(3):19-21.

[6]張世琨,張文娟,常欣,等.基于軟件體系結構的可復用構件制作和組裝[J] .軟件學報,2001,12(9):13511359.

[7]Workflow Management Coalition.WfMCTC1025 workflow process definition interface XML process definition language[S].2002.

[8]ZHUGE Hai.Componentbased workflow systems development[J].Decision Support Systems,2003,35(4):517-536.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”

主站蜘蛛池模板: 99久久国产精品无码| 久久综合色视频| 久草视频一区| 成人福利在线视频免费观看| 欧美日韩专区| 欧美精品亚洲二区| 永久免费精品视频| 看你懂的巨臀中文字幕一区二区 | 国产成人精品一区二区三区| 秋霞午夜国产精品成人片| 国产av一码二码三码无码| 五月六月伊人狠狠丁香网| 国产香蕉一区二区在线网站| 精品国产一区二区三区在线观看 | 农村乱人伦一区二区| 激情无码视频在线看| 日本午夜在线视频| 精品福利网| 成人国产精品2021| av在线人妻熟妇| 99人妻碰碰碰久久久久禁片| 国产欧美在线观看精品一区污| 色综合热无码热国产| 高清国产va日韩亚洲免费午夜电影| 毛片一级在线| 久久6免费视频| 国产青榴视频| 国产亚洲欧美在线视频| 亚洲精品欧美重口| 国产精品自拍合集| jizz亚洲高清在线观看| 国产精品偷伦视频免费观看国产| 9丨情侣偷在线精品国产| 亚洲AV一二三区无码AV蜜桃| 久久这里只有精品2| 亚洲国产中文欧美在线人成大黄瓜 | 亚洲精品无码高潮喷水A| 欧美一区国产| 中国毛片网| 免费不卡视频| 91小视频在线观看免费版高清| 精品夜恋影院亚洲欧洲| 久久久久88色偷偷| 日韩免费毛片视频| 国产精品一区二区国产主播| 热思思久久免费视频| 伊人久久精品无码麻豆精品| 久久精品人人做人人综合试看| 久青草国产高清在线视频| 久久精品女人天堂aaa| 全部无卡免费的毛片在线看| 99视频在线观看免费| 四虎永久免费在线| 精品久久国产综合精麻豆| 国产高清无码第一十页在线观看| 精品国产一区91在线| 精品无码一区二区在线观看| 国产性生大片免费观看性欧美| 亚洲一区二区三区香蕉| 亚洲成人福利网站| 色成人综合| 日韩视频免费| 国产国产人成免费视频77777| 国产精品亚洲综合久久小说| 国产av一码二码三码无码| www.99精品视频在线播放| 天天综合天天综合| 日本免费新一区视频| 性视频一区| 亚洲日本精品一区二区| 成人福利在线观看| 高h视频在线| 97色婷婷成人综合在线观看| 国产成人久久综合777777麻豆| 国内精品小视频在线| 国产无码精品在线| 中文字幕日韩丝袜一区| 亚洲精品无码久久久久苍井空| 一本一道波多野结衣av黑人在线| 污污网站在线观看| 久久精品亚洲专区| 青青青亚洲精品国产|