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

實例方面與工作流的動態交互

2009-01-01 00:00:00劉建勛尹雁青
計算機應用研究 2009年1期

(1. 湖南科技大學 知識網格實驗室, 湖南 湘潭 411201; 2.廣東工業大學 計算機學院, 廣州 510075)

摘 要:工作流技術是過程管理與過程建模的核心技術,滿足了企業組織結構重組與先進制造戰略實施的客觀需求。但是,目前該技術在工作流活動實例批處理模塊化與動態交互方面存在一定的局限性。針對該問題,提出了一個面向方面的方法實現工作流建模,即對現有工作流模型進行面向方面的擴充。通過方面,在該建模方法中實現工作流活動實例方面模塊化,并且完成了實例方面與原工作流模型之間的動態交互。

關鍵詞:面向方面編程; 實例方面; 工作流元模型; 動態交互

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

文章編號:10013695(2009)01014903

Dynamic interacting instance aspect with workflow

LI Ting1, LIU Jianxun1, YIN Yanqing2

(1.Knowledge Grid Laboratory, Hunan University of Science Technology, Xiangtan Hunan 411201, China; 2.College of Computer Science, Guangdong University of Technology, Guangzhou 510075, China)

Abstract:Workflow technology is a key technology of process management and process modeling, which satified external requirement ofbussiness process reengineering and advanced manufacturing strategy implementing. However ,this standard show some limitations regarding modularity of workflow activity instance batch process and dynamic interacting. In order to tackle those limitations, this paper proposed workflow modeling with aspectoriented, that was an aspectoriented extension to existent workflow model. With aspect, actualized the modularity of workflow instance aspect, and implemented the dynamic interacting with original workflow model.

Key words:aspectoriented programming; instance aspect; workflow model; dynamic interacting



0 引言

工作流的概念起源于生產組織與辦公室自動化領域,它是針對日常工作中具有固定程序的活動而提出的一個概念。隨著工作流技術的發展以及相關產品的開發,更多更新的技術(如文件管理系統、數據庫、電子郵件、移動式計算、Internet服務)被集成進來。活動實例的成批處理技術也開始被引入到工作流模型中,從而減少了工作流運行冗余與資源浪費的現象。但是成批服務一般是作為生產或商務流程(business process)中的一個或數個環節而存在,而目前多數工作流模型基本上是基于靜態、水平方向過程定義的,工作流管理系統本身不能根據工作流實例的運行狀況而動態地修改其配置、控制和數據信息,實現垂直建模[1]。因此對工作流模型進行擴充以實現動態交互成為當務之急。

針對這一問題,本文對工作流模型進行了面向方面的擴充,實現了工作流模型與批處理實例的動態交互,也提高了實例批處理的模塊化。該方法具有廣泛的使用性,適用于任一工作流中面向過程的建模語言。

1 問題描述

在實際應用中,同一工作流模型的多個實例中常會出現具有某些相同特性的實例子集,但現有的工作流元模型對這些具有共性方面的實例不能進行統一的規則化刻畫,從而出現了工作流模型運行冗余的局面。為了能更好地解決這一問題,提高工作流技術的靈活性,節省資源等,在原工作流技術中引入了成批處理技術,即將上述實例子集組合成實例方面。實例的成批處理可認為是工作流實例方面的一種特例。在前面的研究中對成批處理區進行了設定,即定義了可成批處理的工作流活動,設定了工作流活動的成批處理模式,合理地劃分了成批處理區。另外采用基于部分向量空間的工作流實例方面建模實現了實例的成批處理,定義了一套完整的數據流批處理語言。但是原工作流模型是靜態的,基于水平方向的建模,未能實現與實例方面數據流之間的交互,因此如何實現實例方面與工作流原模型的動態交互是本文研究的重點。

例如,在共享用車流程中,由七個活動組成,即申請、審批、拒絕通知、派車、通知司機、通知乘車人和收費。其流程如圖1所示。

一般情況下,系統中的租車實例是獨立執行的,即一輛汽車每次為一位乘客服務,但是如果汽車可容納一個以上乘客,那么在乘客有共同的目的地及出發時間,并同意與其他人一同乘車的前提下,一輛汽車每次可以同時為多位乘客服務。換言之,多個不同的過程實例中的活動實例按照某一規則進行分組,各組的多個活動實例的工作任務最終成組為一個活動實例的執行來完成,這便是工作流活動實例的成批處理[2,3]。根據先前研究可對申請進行批處理,但如何將批處理數據流信息在工作流運行時間與工作流進行交互的問題還未解決。

由于面向方面技術中對橫切關注點建模能實現實例方面的模塊化,而事件驅動機制(advice)能很好地解決在運行時間實現動態交互的問題[4,5],本文對原有工作流元模型進行了適當的修改和擴展,其中引入當前的熱門技術——面向方面(aspectoriented)技術[6,7]。該方法是對工作流系統中一些具有相同屬性的實例進行批處理建模并通過動態交互,把實例方面當成一個活動節點嵌入到工作流模型當中,使實例方面與工作流原模型無縫結合。

2 實例方面的動態交互

2.1 面向方面編程簡介

AOP(aspect oriented programming)是一種新的編程技術, 它的核心思想是對橫切關注點進行建模,即允許程序員對橫切性的問題(crosscutting concerns——跨越典型職責界限的行為,如日志記錄、訪問控制等) 進行模塊化。AOP 引入了Aspect這個概念, 它將影響多個類的行為封裝到一個可重用的模塊中, 這正是解決構建用戶訪問控制模塊等類似問題時所需要的。AOP中包含如下幾個基本元素:

a)Pointcut和join point。Join point可以說是AOP的膠合劑,它提供了一個框架,這個框架使得普通的代碼和方面代碼協調一致地工作,具體實現的時候join point是程序明確定義的點,在這些點中執行Aspect代碼。典型的join point包含方法調用、對類成員的訪問、異常處理程序塊的執行等。另外join point還可以相互嵌套。Pointcut就是實現join point的語言結構,能靈活地描述程序的靜態結構和動態的控制流,以及對任何模塊、類、函數作任何的限制。在AspectJ中基本的幾個連接join point(S)的語法是:S|S、S S、(S)、!S。

b)Advice。它是一種能被指定的事件驅動邏輯,是AOP的關鍵所在。它能被嵌入到調用者與被調用者之間、方法的調用者與方法本身之間的動作。該特性允許開發者定義橫切的動作模塊。Advice用語聲明在pointcut表達式中定義的join point被調用時應執行的動作。而在AspectJ中主要的advice有advice:before、advice:after、advice:around三個,其語法用于規定在pointcut后面要執行的動作以及執行的時間。

c)Aspect。它是體現橫切關系的模塊單元,在面向方面編程的地位類似于類在面向對象中的地位。它可以看成是連接點集(pointcut)與通知(advice)的綜合體。

面向方面編程機制能方便地指出何時、何地、如何實現某一特定行為。現在有許多AOP的實現方法,大部分都是以Java作為架構語言來實現的,即基于原有的Java語言進行擴充。目前兩大主要Java的AOP擴展是AspectJ和HyperJ。利用AOP進行開發包括三個步驟:a)方面的分解。將需求分解成普通關注點與橫切關注點。b)關注點的實現。每個橫切關注點被獨立地實現。c)方面重組。方面重組也叫編織或整合,即將方面織入原系統中實現其完整性。AOP的使用有利于緩解代碼冗余、代碼復雜等局面,從而提高代碼的重用性與系統的進化能力,并提高生產效率。

2.2 基本概念及工作流的方面擴充模型

2.2.1 基本概念

定義1 工作流WF。工作流是活動與活動之間關系的集合,可形式化表示為WF={〈Ai,Ri〉|i=1,2,…,n}。其中:Ai表示工作流活動;Ri表示Ai與其他活動之間的關系。

定義2 工作流活動。該活動為一個三元組〈A,I,O〉。其中:A是工作流活動名稱;I是A的輸入數據項集合;O是A的輸出數據項集合;I和O又稱為輸入數據參數和輸出數據參數;I和O統稱為A的數據項集合。

工作流活動A的每一組不同的數據項集合對應一個特定的活動實例,即工作流活動實例。根據工作流活動實例的性質可對其進行成批處理。

定義3 實例方面。它是指對具有某些共性的工作流活動實例進行組合處理,然后采用面向方面技術對其組合信息進行定義的方面形式,即相當于工作流模型中的一個橫切關注點。實例方面必須與工作流模型進行動態地交互,即在特定的時間點和活動節點實現參數的傳遞或執行某一具體的操作。

2.2.2 工作流的方面擴充模型

根據面向方面技術的特點與面向方面編程的基本規則可知,面向方面技術能很好地解決現階段工作流模型存在的問題。圖2給出了基于實例方面擴展的工作流元模型。從圖2中可以看出,借鑒AOP的思想,在傳統工作流元模型上擴展實例方面(instance aspect,IA)元素及其處理特征相關元素pointcut(切入點)、behavior(行為)、pointcutExpression(切入點表達式)。其中(IA)是一組(group)活動實例具有的實例方面特性,如資源競爭方面、成批處理方面和服務優先方面,都是一類IA;Pointcut沿用了AOP模型的概念,即是一組方面切入[7]的處理點,通常有入口(incoming)、出口(outcoming)和出入口(conjugated)三種形式。Pointcut通常體現為一組二值邏輯的pointcut表達式(pointcutExpression),用于選擇一組joint point(連接點,如一組進行同批處理活動實例點)。Behavior對應于AOP中的advice,實際描述了切入點切入的實例方面處理行為。

由圖2可知,工作流的方面擴充模型由三部分組成:工作流元模型、實例方面(IA)的交互部分、活動實例的批處理部分。實例方面的交互通過instance aspect、pointcut與advice等元素實現,具體實現方法將在下面的章節中進行定義。

2.3 實現交互

2.3.1 交互原理

方面交互的實現必須與工作流體系結構兼容,圖3給出了面向方面擴充工作流管理系統體系結構的核心部分。在該體系結構中能在工作流運行時動態地織入實例方面(即交互)。在工作流過程模型中是由一系列活動節點以及節點之間的約束關系組成的,實例方面可看做一類特殊的并橫切多個過程或活動的活動節點。在擴充的工作流模型中,pointcut是實例方面所橫切的過程或活動節點的joint point集,根據實例方面的性質可預先確定相關的joint point,用于調用實例方面的相關數據。

借鑒AspectJ,本文采用事件驅動機制,即advice:before、advice:after、advice:around實現動態交互。任一advice都指定一個與實例方面相關的活動在其他非實例方面活動之前、之后或代替其執行。圖3給出的使用方面擴充的工作流管理系統體系結構的核心部分,在實現動態交互過程中工作流引擎與方面管理器尤為重要。工作流引擎中包含過程解釋器,用于管理過程實例、織入方面等;實例方面定義包括方面的生成與存儲,而方面管理器用于控制方面的執行。

實際上實例方面的執行即是本文要實現的動態交互,其基本步驟為:a)找出相關的join point;b)根據工作流的具體情況規劃出所需的實例方面行為(IA behavior);c)采用現有工作流技術所支持的描述方式定義出實例方面,其中包括pointcut和advice。所定義的實例方面基本格式如下:

〈Aspect name=\"… IA\"〉

……

〈pointcutandadvice type=\"before/after/around\"〉

//也可表示為after (): execution(…)

〈pointcut name=\"…\"〉

//切入點定義,可以定義多個切入點

……

〈/pointcut〉

〈advice〉

… //執行的操作

〈/advice〉

〈/pointcutandadvice〉

〈/aspect〉

其中type=″before/after/around″用于定義advice的類型,即指定在活動節點之前、之后或代替活動節點執行。在一個方面中可以包含多個切入點,即可與多個活動節點執行相同的交互。〈advice〉與〈/advice〉的部分為advice body,定義實現何種交互(何種操作),如在成批處理操作中所需實現的參數傳遞、批處理操作、映射、信息反饋等。方面可將橫切多個活動節點的關注點進行獨立處理,而且能在工作流執行過程中,將成批處理的各項信息織入到工作流中,而不需要重新定義一個工作流流程,加強了工作流模型的柔性。

2.3.2 具體實例

假定已經對圖1中某些具有相同特性的申請實例進行了批處理,并對其批處理所得的數據信息進行了存儲。根據所提出的方法可將這些信息或操作織入到流程中,實現流程的完整性。從圖1可知,必須在審批(examine)后執行批處理,然后在通知乘客(informing)前織入實例方面的一些信息與操作,在收費(charging)時也必須織入實例方面。假定批處理操作用函數batch()實現,則在審批后的交互實現方式如下,表示在審批(examine)節點后插入批處理操作。

〈Aspect name=\" IA\"〉

……

〈pointcutandadvice type=\" after\"〉

〈pointcut name=\"examine\"〉

//切入點定義,可以定義多個切入點

……

〈/pointcut〉

〈advice〉

batch () ; //執行的操作

〈/advice〉

〈/pointcutandadvice〉

〈/aspect〉

在通知乘客與收費節點的交互與之類似。該實例將活動實例從原流程中分離出來進行批處理,而在通知乘客與收費活動節點又將實例方面織入到流程中。整個交互過程是在流程運行過程中實現的,而且將批處理過程獨立實現,便于橫切點的模塊化與重用。

3 結束語

本文討論了現有工作流模型對成批處理服務與動態交互的局限性。為解決該問題,提出了面向方面擴充的工作流元模型與工作流體系結構中方面的表示結構,討論了該方法如何提高過程的模塊化以及工作流模型的柔性與動態交互能力。本文的主要貢獻是闡明了面向方面技術是解決工作流在運行時間交互的正確技術,實現了工作流的垂直建模。

本文雖是從成批處理方面著手研究的,但是該技術的作用并不是僅限于此。任一橫切工作流多個過程或活動的橫切點都可采用該思想,因此具有廣泛的使用意義。

參考文獻:

[1]范玉順.工作流管理技術基礎[M].北京:清華大學出版社,2001.

[2]LIU Jianxun, CHEN Haiyan, HU Jinmin. Batch processing in workflow: the model and the implementation[C]//Proc of the 1st International Conference on Semantics, Knowledge and Grid. Beijing: IEEE Publisher, 2005.

[3]LIU Jianxun, HU Jinmin. Dynamic batch processing in workflows: model and implementation[J]. Future Generation Computer Systems, 2007,23(3):338347.

[4]COURBIS C, FINKELSTEIN A. Towards an aspect weaving BPEL engine[C]//Proc ofthe 3rd AOSD Workshop on Aspects, Components, and Patterns for Infrastucture Software (ACP4IS). 2004:2226.

[5]CHARFI A, MEZINI M. Aspectoriented Web service composition with AO4BPEL[C]//Proc ofECOWS. 2004.

[6]MURPHY G, SCHWANNINGER C. Aspectoriented programming: guest editors’ introduce[C]//Proc ofIEEE SOFTWARE. 2006.

[7]APEL S, KASTNER C, KUHLEMANN M,et al. Pointcut,advice, refinements, andcollaborations: similarities,differences,and synergies[J]. ISSE, 2007,3(4):281289.

主站蜘蛛池模板: 亚洲欧美日韩动漫| 欧美日韩亚洲国产| 精品国产成人国产在线| 国产精品久久久久久搜索| 看你懂的巨臀中文字幕一区二区| 小说 亚洲 无码 精品| 视频二区中文无码| 操美女免费网站| 国产一区二区三区免费观看| 亚洲欧美一级一级a| 欧美成人在线免费| 白浆免费视频国产精品视频| 亚洲视频欧美不卡| 亚洲伊人天堂| 四虎成人在线视频| 欧洲高清无码在线| 久久人人妻人人爽人人卡片av| 国产9191精品免费观看| 狠狠躁天天躁夜夜躁婷婷| 午夜精品影院| 最新国产你懂的在线网址| 亚洲黄色视频在线观看一区| 尤物精品国产福利网站| AⅤ色综合久久天堂AV色综合| 亚洲有码在线播放| 日韩在线视频网站| 亚洲成aⅴ人在线观看| 精品亚洲麻豆1区2区3区| 亚洲综合精品香蕉久久网| 国产菊爆视频在线观看| 国产一区二区人大臿蕉香蕉| 久久香蕉国产线看观看精品蕉| a毛片基地免费大全| 国产成人麻豆精品| 国产黄色视频综合| 国产视频久久久久| 性喷潮久久久久久久久| 国产av一码二码三码无码| 亚洲日韩高清无码| 久久久久国产精品熟女影院| 国产日韩欧美在线视频免费观看| 欧美自慰一级看片免费| 亚洲美女久久| 国产免费福利网站| 美女一区二区在线观看| 日韩小视频在线播放| 欧美丝袜高跟鞋一区二区| 色香蕉影院| 国产99精品久久| 国产九九精品视频| 亚洲色图另类| 老司机精品一区在线视频| 在线视频97| 18禁黄无遮挡网站| 国产成人精品午夜视频'| 亚洲欧美另类日本| 国产成人亚洲无码淙合青草| 免费观看成人久久网免费观看| 午夜精品福利影院| 国产精品久久久久婷婷五月| 亚洲Aⅴ无码专区在线观看q| 亚洲精品亚洲人成在线| 精品五夜婷香蕉国产线看观看| 国产成人综合亚洲网址| 欧美日韩精品在线播放| 国产福利小视频在线播放观看| 亚洲无码视频图片| 国产精品xxx| 人妻精品久久无码区| 久久亚洲精少妇毛片午夜无码 | 欧美国产菊爆免费观看 | 青青草91视频| 亚洲国产精品人久久电影| 日韩天堂网| 97超爽成人免费视频在线播放| 亚洲精品在线影院| 四虎成人免费毛片| 久久情精品国产品免费| 欧美区国产区| 丰满人妻久久中文字幕| 国产欧美在线观看精品一区污| 少妇精品网站|