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

一種面向方面的Web服務(wù)組合的UML建模方法

2008-12-31 00:00:00唐勝群
計算機應(yīng)用研究 2008年7期

摘 要:將AOP技術(shù)引入到Web服務(wù)組合中,提出了一種面向方面的Web服務(wù)組合的UML建模方法,來解決當(dāng)前服務(wù)組合方法的局限性。該方法獨立于特定語言進行抽象級別建模,克服了現(xiàn)有面向方面的Web服務(wù)組合方法存在的難以理解和閱讀的問題。

關(guān)鍵詞:Web服務(wù)組合;面向方面編程;統(tǒng)一建模語言

中圖分類號:TP311.5 文獻標(biāo)志碼:A

文章編號:1001-3695(2008)07-2071-04

UML modeling approach for aspect-oriented Web services composition

XU Yang, TANG Sheng-qun

(State Key Laboratory of Software Engineering, Wuhan University, Wuhan 430072, China)

Abstract:This paper presented a modeling approach for aspect oriented Web service composition with UML to address these problems, and also to address the poor understandability and maintainability existing in some other approaches for aspect oriented Web service composition.

Key words:Web service composition; aspect-oriented programming; UML

0 引言

Web服務(wù)的出現(xiàn)正改變著商業(yè)合作伙伴之間及其與客戶之間的協(xié)作方式,使企業(yè)能通過服務(wù)合成來共享資源、自動化商業(yè)流程。隨著電子商務(wù)的不斷發(fā)展以及跨企業(yè)應(yīng)用的日益復(fù)雜,單個Web服務(wù)的實現(xiàn)已經(jīng)無法滿足復(fù)雜業(yè)務(wù)的需求,需要通過將多個不同業(yè)務(wù)功能的Web服務(wù)按照一定的業(yè)務(wù)邏輯組合起來,構(gòu)建復(fù)雜的組合服務(wù),通過對組合服務(wù)的執(zhí)行,來滿足復(fù)雜的商業(yè)邏輯上的需求。Web服務(wù)組合能夠提高服務(wù)組件及基本服務(wù)的可重用性和利用率,縮短系統(tǒng)研發(fā)時間,因此成為近年來研究的熱點問題之一。

目前工業(yè)界和學(xué)術(shù)界的研究機構(gòu)已經(jīng)提出了多種Web服務(wù)組合的規(guī)范和Web服務(wù)組合的方法,總體來說可以分為兩大類,即基于工作流模型的組合和基于語義模型的組合。前者是將工作流模型應(yīng)用于Web服務(wù)的組合,側(cè)重描述流程模型和數(shù)據(jù)模型兩個方面[1]。典型的基于工作流模型的服務(wù)組合的規(guī)范有BPEL、WS-CDL 和 BPML,利用這些組合規(guī)范進行服務(wù)組合,主要特征是預(yù)定義抽象的過程模型、動態(tài)選擇和綁定Web服務(wù)。基于語義模型的組合是基于語義Web服務(wù)模型,如OWL-S、WSMO和WSDL-S,其實質(zhì)是利用本體語言的豐富語義以及推理能力,實現(xiàn)Web服務(wù)的自動組合,不僅自動選擇和綁定Web服務(wù),而且是自動創(chuàng)建抽象的過程模型。雖然Web服務(wù)組合的研究取得了很多成果,但當(dāng)前的組合方法仍存在著以下兩方面的局限:

a)基于工作流模型的組合,要求根據(jù)業(yè)務(wù)邏輯預(yù)先定義好它的過程模型,因此其服務(wù)組合的執(zhí)行過程是固定的。一旦業(yè)務(wù)邏輯發(fā)生變化,組合的過程模型必須相應(yīng)地重新定義,這需求將正在運行的過程停下來進行修改。然而,多數(shù)業(yè)務(wù)過程都是異步的長事務(wù)流程,不允許隨意將正在運行的業(yè)務(wù)過程停下來。而在現(xiàn)代商務(wù)應(yīng)用中,企業(yè)間競爭加劇和客戶需求豐富多樣,導(dǎo)致業(yè)務(wù)過程變化頻繁。因此要求服務(wù)的組合能夠在運行時動態(tài)地改變,提高服務(wù)組合的柔性和適應(yīng)性。

b)諸如監(jiān)控、授權(quán)認(rèn)證、審計和異常處理等處理活動往往在多個業(yè)務(wù)過程中都出現(xiàn),系統(tǒng)中關(guān)于這些活動的相關(guān)邏輯也就分散在相關(guān)流程定義的多個地方或者是跨越多個組合服務(wù)的邊界。用BPEL、BPML等組合規(guī)范定義包含這些活動的業(yè)務(wù)過程時,描述這些活動的代碼,會多次重復(fù)出現(xiàn)在同一個過程的多個模塊的定義中,或者出現(xiàn)在多個不同的過程定義中,帶來代碼交織和代碼混雜[2]的問題。當(dāng)需要改變這些活動代碼時,必須保證散落在所有業(yè)務(wù)過程的代碼的一致性,對組合服務(wù)的維護和重用帶來困難。

基于語義模型的組合方法可以實現(xiàn)Web服務(wù)的自動組合,組合的流程也具有柔性以及自適應(yīng)性。這些方法首先需要Web服務(wù)的語義信息,由于現(xiàn)有語義Web服務(wù)模型的底層概念模型是不精確的,而且這些模型最終都需要映射到WSDL,限制了其語言的表達能力。另外,即使有了Web服務(wù)的語義信息,還需要對語義信息進行提煉,構(gòu)造一個模型,然后根據(jù)所采用的方法和模型來組合服務(wù),隨著Web服務(wù)的發(fā)展,完成同樣的功能Web服務(wù)數(shù)目將會劇增,并且Web服務(wù)本身也具有動態(tài)性,這樣將使得模型需要經(jīng)常變化以適應(yīng)Web服務(wù)的動態(tài)變化,從而導(dǎo)致組合效率比較低。

為了解決前面所述的組合方法存在的問題,文獻[3,4]提出了將面向方面的編程(aspect-oriented programming,AOP)[2]技術(shù)引入到Web服務(wù)組合中,將跨越組合服務(wù)的多個模塊或多個組合服務(wù)的邊界的活動,從組合服務(wù)中分離出來,單獨模塊化,并在需要時,再通過織入技術(shù)將分離出來的模塊集成到基礎(chǔ)程序中,從而可以實現(xiàn)服務(wù)組合的動態(tài)改變。本文基于這個思想,提出了一種基于UML的面向方面的Web服務(wù)組合的建模方法。

1 AOP概述 

軟件系統(tǒng)的規(guī)模和復(fù)雜程度越來越大,傳統(tǒng)的面向?qū)ο箝_發(fā)方法已不能很好地解決系統(tǒng)設(shè)計中存在的橫切關(guān)注點(crosscutting concern)問題,即那些橫跨系統(tǒng)中多個業(yè)務(wù)模塊的系統(tǒng)功能,如日志管理、安全認(rèn)證等,其實現(xiàn)代碼往往會散布在系統(tǒng)的多個模塊中,對它們的調(diào)用也會顯式地散布于軟件系統(tǒng)中的各個地方。這種現(xiàn)象會對面向?qū)ο筌浖到y(tǒng)的封裝性帶來很大的破壞,產(chǎn)生諸如代碼交織和代碼混雜問題,導(dǎo)致軟件系統(tǒng)的可維護性差、開發(fā)效率低、代碼復(fù)用性差。AOP技術(shù)針對這一問題,采用關(guān)注點分離的方式,用方面(aspect)將橫切關(guān)注點封裝,在系統(tǒng)執(zhí)行過程中通過特定的機制在指定的位置將方面織入(weave)基礎(chǔ)系統(tǒng)中。

AOP的思想實質(zhì)是將傳統(tǒng)的按功能或按對象劃分程序模塊的方法轉(zhuǎn)換為按系統(tǒng)特征劃分系統(tǒng)模塊[5]。它涉及到一些重要的概念: 連接點(join point)、切入點(pointcut)、通知(advice)、方面(aspect)和織入(weaving)[6]。

連接點是AOP中最基本的概念之一,它是指程序執(zhí)行過程中某些特定的位置,在這些位置上可以插入需要附加的執(zhí)行邏輯。連接點可以分為兩類,即靜態(tài)連接點和動態(tài)連接點[7]。靜態(tài)連接點是指程序代碼中所有可以被命名的代碼實體,如類、結(jié)構(gòu)、命名空間等,它所關(guān)注的更多是程序代碼中的靜態(tài)結(jié)構(gòu);而動態(tài)連接點所強調(diào)的是對程序執(zhí)行過程中動態(tài)行為的捕捉,如方法或構(gòu)造方法的調(diào)用、對象的創(chuàng)建或銷毀、屬性的訪問與更改、異常處理等。

切入點用于標(biāo)志連接點。通常一個切入點指的是一組連接點的集合,它被用來描述應(yīng)該在哪些指定的連接點上插入所需的程序邏輯。AOP語言需要提供相應(yīng)的機制來對切入點進行描述,并能根據(jù)這些描述對程序中的連接點進行匹配。對切入點的描述可以被看做是對程序運行時狀態(tài)的一種選擇操作。

通知用來表達在相關(guān)的連接點上所要插入的程序邏輯。當(dāng)程序執(zhí)行到某個切入點所匹配的連接點時,與該切入點相關(guān)聯(lián)的通知會被自動執(zhí)行,無須基礎(chǔ)程序顯式地調(diào)用通知。該方式使得開發(fā)人員在設(shè)計原始程序時無須考慮通知的存在,而可以更加專注于關(guān)心的業(yè)務(wù)邏輯。最常見的通知類型是前通知(before advice)、后通知(after advice)和包圍通知(around advice)。前通知和后通知分別用來在連接點執(zhí)行的前后時刻插入附加的程序邏輯,包圍通知用來同時在連接點的執(zhí)行前后插入附加的程序邏輯,或完全替換掉連接點的執(zhí)行邏輯。在CaemerJ、AspectJ、AspectWerkz等語言中,還支持返回后通知(after return advice)與異常后通知(after throwing advice)等,從而使得通知功能更為強大。

方面是AOP語言最核心的概念,用來對橫切系統(tǒng)多個模塊的功能邏輯進行抽象和建模,通常封裝了前面所提到的切入點和通知,以及切入點到通知的映射等概念。

織入是實現(xiàn)AOP最重要的底層機制。所謂織入就是將方面集成到基礎(chǔ)程序中。織入可以分為靜態(tài)織入[6]和動態(tài)織入[8],靜態(tài)織入是指方面的織入是在程序編譯或裝載階段完成。而動態(tài)織入則是在基礎(chǔ)程序運行時完成,這樣方面可以熱插拔到基礎(chǔ)程序中,實現(xiàn)程序行為的動態(tài)改變。

近年來,針對AOP的研究在國際上越來越廣泛,其早已超出傳統(tǒng)的編程范型領(lǐng)域。與面向?qū)ο笙到y(tǒng)一樣,封裝、消息傳遞、動態(tài)綁定也是Web服務(wù)中的基本概念,而面向?qū)ο笾嘘P(guān)于橫切關(guān)注點分離的問題在Web服務(wù)組合中也存在,因此,AOP技術(shù)也被逐步引入到Web服務(wù)領(lǐng)域,來增加Web服務(wù)的靈活性和柔性。

Verheecke等人[9]采用AOP技術(shù)構(gòu)建了Web服務(wù)管理層(WSML)實現(xiàn)Web服務(wù)的選擇和集成。但Verheecke的技術(shù)沒有涉及到Web服務(wù)的組合。Courbis等人[3]和Charfi等人[4]對BPEL進行了擴展,使之支持對橫切關(guān)注點的分離,并支持Web服務(wù)組合的動態(tài)變化。其中,Charfi基于BPEL語言提出了AO4BPEL語言,利用AO4BPEL將橫跨多個組合服務(wù)邊界的Web服務(wù),即橫切關(guān)注點,從原業(yè)務(wù)過程中分離出來,模塊化為方面。分離后的業(yè)務(wù)過程用BPEL定義,分離出來的方面在動態(tài)引擎支持下,在運行時組合到已經(jīng)定義好的BPEL過程中,從而實現(xiàn)BPEL過程動態(tài)改變,提高其柔性和適應(yīng)性。AO4BPEL的方面采用XML語法定義。其中選取Web服務(wù)的操作名作為連接點,切入點描述采用XPath語言,通知是采用BPEL定義的活動,在BPEL執(zhí)行引擎上構(gòu)建了支持方面的解釋器,達到運行時織入方面的目的。目前在Web服務(wù)組合中實現(xiàn)對AOP的支持,采用的方式是擴展基礎(chǔ)的Web服務(wù)組合語言,如Charfi基于XML語法擴展BPEL,Ortiz則采用AspectJ語言描述方面來擴展BPEL。然而由于這些支持AOP的組合定義與特定語言緊密聯(lián)系,存在大量的繁瑣的語言本身的技術(shù)細(xì)節(jié),難以閱讀和理解,這就導(dǎo)致了這些組合定義的可維護性比較差。

為解決這個問題,本文采用UML建模技術(shù),使面向方面的Web服務(wù)組合的建模獨立于特定的語言或技術(shù)平臺,給面向方面的Web服務(wù)組合的定義、可視化、構(gòu)建提供支持。

2 面向方面的Web服務(wù)組合

將橫切關(guān)注點或業(yè)務(wù)變化的邏輯定義為方面,從組合服務(wù)中分離出來后,一個完整的服務(wù)組合模型將由基本的Web服務(wù)組合模型和相關(guān)聯(lián)的方面模型組成。筆者選擇統(tǒng)一建模語言(UML)[10]來描述這些模型。UML是一個標(biāo)準(zhǔn)的圖形化語言,用它描述的系統(tǒng)模型可理解性好。作為廣泛認(rèn)可的建模標(biāo)準(zhǔn),UML提供了不同類型的圖來為系統(tǒng)的靜態(tài)和動態(tài)特征建模。UML的一個重要特點是它的擴展機制(stereotype、tagged value、constraint和OCL)支持模型的語義精化。此外,UML滿足Web服務(wù)組合的要求[11,12],包括接口描述、基本的控制流模式和消息轉(zhuǎn)換;而且UML獨立于執(zhí)行語言,可以轉(zhuǎn)換為不同的執(zhí)行語言,如BPEL。

2.1 基本W(wǎng)eb服務(wù)組合 

一個Web服務(wù)是分布于網(wǎng)絡(luò)上的一個組件[13]。為了讓服務(wù)組件能夠在Internet上被訪問,服務(wù)提供者必須定義和發(fā)布這些服務(wù)組件的接口。WSDL作為標(biāo)準(zhǔn)的Web服務(wù)描述語言,將這些接口描述為端口類型(port type),每個端口類型包含了一個帶有輸入和輸出消息的操作(operation)集。一個服務(wù)組合可以認(rèn)為是包含了原子服務(wù)或組合服務(wù)的工作流[13],這樣一個工作流由一個活動集組成,每個活動調(diào)用一個服務(wù)提供者提供的Web服務(wù)。因此,基本W(wǎng)eb服務(wù)組合模型可以劃分為兩個部分,即靜態(tài)部分和動態(tài)部分。前者描述Web服務(wù)的接口;后者描述業(yè)務(wù)過程的控制流和數(shù)據(jù)流。

2.1.1 靜態(tài)模型 

用UML的類圖來描述Web服務(wù)組合的靜態(tài)部分,包括它們的操作名和消息類型,如圖1所示。服務(wù)提供者提供的Web服務(wù)用帶構(gòu)造型名《Webservice》的類來描述,類的操作描述Web服務(wù)提供的操作,類操作的輸入和輸出參數(shù)映射為Web服務(wù)的input和output消息。用帶構(gòu)造型《messageType》的類來描述消息類型。

2.1.2 動態(tài)模型

基于上述靜態(tài)模型,擴展UML的活動圖的元素來定義控制流和數(shù)據(jù)流。用帶構(gòu)造型《invoke》的活動狀態(tài)來調(diào)用Web服務(wù)的操作。Invoke狀態(tài)的標(biāo)記值描述了被調(diào)用的Web服務(wù)以及它的端口類型和操作。這里的操作與靜態(tài)模型中定義的Web服務(wù)的操作是對應(yīng)的。同時用帶構(gòu)造型《DataTransformation》的活動狀態(tài)執(zhí)行消息的轉(zhuǎn)換,DataTransformation狀態(tài)的標(biāo)記值表示消息的轉(zhuǎn)換規(guī)則。

控制流用轉(zhuǎn)換和偽狀態(tài)(decision、fork、join等)來定義。帶構(gòu)造型《message》的對象流狀態(tài)表示消息的傳遞。一個消息對象代表從一個操作的輸出而流入下一個操作的消息。一個消息對象可能需要通過DataTransformation狀態(tài)的轉(zhuǎn)換才能流入到下一個操作。這些消息對應(yīng)于靜態(tài)模型中的定義的Web服務(wù)的操作的輸入和輸出消息。

2.2 方面模型

在方面模型中,每一個組合服務(wù)中的活動接點都是潛在的連接點,切入點通過指定基本組合中的服務(wù)的操作名來描述一個連接點集。通知是指切入到組合服務(wù)中的一個活動,它可以是對原子服務(wù)的調(diào)用,也可以是對組合服務(wù)的調(diào)用,通知的類型包括前(before)、后(after)和包圍(around)三類,分別表示在連接點執(zhí)行的前時刻插入、后時刻插入通知描述的活動以及替換指定的連接點的活動。方面包含了一個切入點集合和一個相關(guān)聯(lián)的通知。與AO4BPEL和Ortiz定義的方面的模型不同,本文的模型沒有完全采用AspectJ的方面模型。AspectJ的方面包含了切入點的集合和通知集合,在通知定義中關(guān)聯(lián)切入點。方面中只包含一個通知,所有切入點與該通知相關(guān)聯(lián)。這樣定義主要保證方面的組合在通知級別上實現(xiàn),避免AspectJ方面組合機制中存在的無法確定某些通知之間的執(zhí)行次序的問題[14]。

用UML給方面模型進行描述時,需要考慮以下幾個方面的要求:

a)方面要能顯示地模塊化,即方面的設(shè)計不能分散到組合的各個視圖中。基本概念如pointcut和通知應(yīng)該與基本的Websevice類區(qū)分開來。

b)基本的組合應(yīng)該可以獨立于方面,即能夠根據(jù)應(yīng)用的語義決定目標(biāo)組合中是否包含方面。

c)當(dāng)方面的符號添加到基本的組合視圖中,能夠保證組合視圖的一致性。

圖2描述了方面模型的UML profile。用帶有《advice》構(gòu)造型的操作類表示通知。方面由類通過《aspect》構(gòu)造型擴展來表示。每個方面類通過binding關(guān)聯(lián)與包含連接點的Web服務(wù)類關(guān)聯(lián)。Binding關(guān)聯(lián)帶有《pointcut》注釋,來指明作為連接點的Web服務(wù)操作名和通知類型。

這樣,方面可以獨立于基本的Web服務(wù)組合進行建模,當(dāng)需要在基本的組合模型中織入方面時,就在組合的靜態(tài)模型中將方面與包含連接點的Web服務(wù)關(guān)聯(lián)起來(binding)。在服務(wù)組合的視圖中加入或刪除方面的元素符號,都不會破壞原來的服務(wù)組合。基本的服務(wù)組合模型和相關(guān)聯(lián)的方面模型構(gòu)成了完整的服務(wù)組合模型。

3 案例描述

以開辦牙科診所的審批過程作為示例來進一步說明本文的組合建模方法。任何個人或企業(yè)想開辦一個牙科診所,必須向當(dāng)?shù)氐南嚓P(guān)部門提交申請,只有相關(guān)部門審批通過后才能合法設(shè)立該診所。這是一個典型的行政審批過程。在此筆者將現(xiàn)實的過程作了適當(dāng)簡化。其基本過程如下:

首先,診所開辦申請人向當(dāng)?shù)毓ど滩块T申請診所名稱的預(yù)登記。工商部門提供了一個Web服務(wù)來完成企業(yè)名稱預(yù)登記,核查預(yù)登記的名稱是否合法或有否重名;企業(yè)名稱通過預(yù)登記后,申請者須將相關(guān)資料分別提交給當(dāng)?shù)匦l(wèi)生部門和公安部門。由衛(wèi)生部門審核申請者是否具有行醫(yī)資格,這一個環(huán)節(jié)是整個過程的關(guān)鍵,如果審核通過就向申請者發(fā)放醫(yī)療機構(gòu)設(shè)置和執(zhí)行許可。同時,公安部門檢查申請者的行醫(yī)場所是否滿足消防安全的要求,通過后發(fā)放消防安全許可。通過衛(wèi)生部門和公安部門的審核后,申請人再次向工商部門申請正式的營業(yè)執(zhí)照。以上是基本的審批過程。為完成這一基本過程,必須將工商部門、衛(wèi)生部門和公安部門提供的Web服務(wù)組合起來。

圖3、4分別顯示了該組合靜態(tài)模型和動態(tài)模型。

圖3所示的類圖中,衛(wèi)生部門提供的Web服務(wù)HeathDe-partmentService包含了多個帶輸入/輸出參數(shù)的操作。操作CheckIatricalQualification的輸入?yún)?shù)對應(yīng)該操作輸入消息ApplicationInfo,輸出參數(shù)對應(yīng)于輸出消息Confirmation。ApplicationInfo消息和Confirmation消息類型分別為IatricalQualification和CheckResponse。

圖4的活動圖描述了審批過程的控制流和數(shù)據(jù)流。其中第一個invoke活動Pre-register for clinic name調(diào)用BusinessLicenseService服務(wù)的registerName操作,輸出消息PreRegisterResponse包括申請者預(yù)登記的企業(yè)名稱,申請者預(yù)登記的企業(yè)名稱將作為活動check iatrical qualification的輸入,這需要實施DataTransformation活動將預(yù)登記的企業(yè)名稱轉(zhuǎn)換為ApplicationInfo的一部分。圖4中每個活動的標(biāo)記值指明了被選擇的Web服務(wù)及其操作。

上面的基本過程執(zhí)行一段時間后,當(dāng)?shù)氐募o(jì)律監(jiān)察部門要求,衛(wèi)生部門的醫(yī)療資格認(rèn)證環(huán)節(jié)必須在五個工作日內(nèi)完成。為此,監(jiān)察部門準(zhǔn)備在基本過程中添加一個監(jiān)督的活動,用來檢查醫(yī)療資格認(rèn)證活動執(zhí)行的實際工期是否達到要求。要滿足監(jiān)察部門的要求,一種方法是將正在運行的基本審批過程停下來修改,再部署運行。但審批過程是一個場事務(wù)過程,而且涉及眾多的申請者和審批人員,不可能停止正在運行的過程。因此要求監(jiān)督服務(wù)能熱插拔到基本過程中。

對于這種需要熱插拔到基本過程中的模塊,將它定義為方面。監(jiān)督方面的定義如圖5所示。方面MonitorASP將應(yīng)用到HealthDepartmentService服務(wù),它包含一個通知操作record,該操作將被織入到調(diào)用HealthDepartmentService服務(wù)的操作checkIatricalQualification的活動check iatrical qualification之后。同樣地,MonitorASP將應(yīng)用到BusinessLicenseService服務(wù),record將被織入到調(diào)用操作registerName之后。通過計算record記錄的這兩個時間差,就獲得了醫(yī)療資格認(rèn)證環(huán)節(jié)實際花費的天數(shù)。這樣,需要熱插拔的方面被顯示地模塊化,并可以獨立于基本組合進行定義,并通過binding 與基本組合行關(guān)聯(lián),最終獲得了完整的服務(wù)組合

模型。

4 結(jié)束語 

在本文中提出了一個面向方面的Web服務(wù)組合建模的方法,該方法基于UML建模技術(shù),獨立于特定的語言或技術(shù)平臺。服務(wù)組合模型由基本組合模型和面向服務(wù)的方面模型組成。其中基本組合分為靜態(tài)部分和動態(tài)部分,分別采用UML的類圖和活動圖進行定義。將服務(wù)組合中需要熱插拔的行為特性定義為方面,通過方面模型與基本組合模型的綁定,最終獲得完整的組合模型。今后,筆者將關(guān)注如何將UML的組合模型轉(zhuǎn)換為其他特定的模型以及如何轉(zhuǎn)換為可執(zhí)行的組合語言,轉(zhuǎn)換規(guī)則是實現(xiàn)這些轉(zhuǎn)換的關(guān)鍵。

參考文獻:

[1] LEYMANN F,ROLLER D,SCHMIDT M T.Web services and business process management[J].IBM System Journal,2002,41(2):198-211.

[2]KICZALES G,LAMPING J,MENDHEKAR A,et al.Aspect-oriented programming[C]//Proc of ECOOP’97,Lecture Notes in Computer Science.Berlin:Springer-Verlag,1997:220-242.

[3]COURBIS C,F(xiàn)INKELSTEIN A.Towards aspect weaving applications[C]//Proc of the 27th International Conference on Software Engineering (ICSE2005).2005:69-77.

[4]CHARFI A,SCHMELING B,HEIZENREDER A,et al.Secure and transacted Web service compositions with AO4BPEL[C]//Proc of European Conference on Web Services (ECOWS’06).2006:23-34.

[5]高海洋,陳平.AOP綜述[J].計算機科學(xué),2002,29(10):133-135.

[6]KICZALES G,HILSDALE E,HUGUNIN J,et al.An overview of AspectJ[C]//Proc of ECOOP.2001:327-353.

[7]SPINCZYK O,LOHMANN D,URBAN M.AspectC++:an AOP extension for C++ [EB/OL].(2005-05)[2007-06-29].http://www.aspectc.org/fileadmin/publications/sdj-2005-en.pdf.

[8]BOCKISCH C,HAUPT M,MEZINI M,et al.Virtual machine support for dynamic join points[C]//Proc of the 3rd AOSD Conference.2004:83-92.

[9]VERHEECKE B,CIBRAN M.AOP for dynamic configuration and management of Web services[C]//Proc of International Conference on Web Services.2003:137-151.

[10]OMG.Unified modeling language(UML)version 2.0[S/OL].http://www.uml.org/.

[11]SKOGAN D,GRNMO R,SOLHEIM I.Web service composition in UML[C]//Proc of the 8th IEEE International Enterprise Distributed Object Computing Conference.2004:47-57.

[12]THNE S,DEPKE R,ENGELS G.Process-oriented,flexible composition of Web services with UM[C]//Proc of ER-Workshop on Conceptual Modeling Approaches for e-Business,Lecture Notes in Computer Science.Berlin:Springer-Verlag,2002:390-401.

[13]PAPAZOGLOU M.Service-oriented commuting:concepts,characte-ristics and directions[C]//Proc of the 4th International Conference on Web Information Systems Engineering.2003:3-12.

[14]LOPEZ H R,BATORY D,LENGAUER C.A disciplined approach to aspect composition[C]//Proc of ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation.2006:68-77.

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

主站蜘蛛池模板: 美女啪啪无遮挡| 精品视频91| 久久黄色一级视频| 狼友视频一区二区三区| 婷婷综合亚洲| 欧美自慰一级看片免费| 亚洲婷婷丁香| 亚洲最新地址| 亚洲欧美自拍一区| 国产特级毛片| 国产成人8x视频一区二区| 欧美、日韩、国产综合一区| 国产福利免费视频| 激情乱人伦| 超薄丝袜足j国产在线视频| 国产清纯在线一区二区WWW| 国产乱子精品一区二区在线观看| 91探花在线观看国产最新| 国产原创自拍不卡第一页| 国产在线观看精品| 亚洲天堂成人| 91综合色区亚洲熟妇p| 色色中文字幕| 亚洲国产91人成在线| 日韩午夜伦| 黄色网在线| 国产精品毛片一区| 亚洲一区网站| 中文字幕乱码中文乱码51精品| 美女扒开下面流白浆在线试听| 日韩午夜片| 色婷婷狠狠干| 国产流白浆视频| 91丝袜在线观看| 制服丝袜一区| 色妞www精品视频一级下载| 国产美女主播一级成人毛片| 国产日韩精品欧美一区灰| 国产人碰人摸人爱免费视频| 一本大道香蕉久中文在线播放| 国产成人免费视频精品一区二区| 浮力影院国产第一页| 在线观看亚洲天堂| 欧美黄色网站在线看| 国产精品成人免费综合| 午夜啪啪福利| 一级不卡毛片| 国产精品不卡片视频免费观看| 欧美高清视频一区二区三区| 国产一区二区丝袜高跟鞋| 久久夜色精品国产嚕嚕亚洲av| 亚洲第一黄片大全| 色综合a怡红院怡红院首页| 日韩在线成年视频人网站观看| 亚洲国产一成久久精品国产成人综合| 在线观看网站国产| 97精品伊人久久大香线蕉| 亚洲av无码久久无遮挡| 久久鸭综合久久国产| 中文字幕66页| av无码久久精品| 免费人成视网站在线不卡 | 69免费在线视频| 亚洲av无码人妻| 欧美视频在线播放观看免费福利资源 | 国产一级一级毛片永久| 嫩草影院在线观看精品视频| 国产主播喷水| 国产精品lululu在线观看| 国产日韩久久久久无码精品| 亚洲三级影院| 亚洲AV成人一区二区三区AV| 看国产毛片| 国产丝袜第一页| 亚洲日韩AV无码一区二区三区人| 国产高清又黄又嫩的免费视频网站| 久久精品人人做人人爽97| 999在线免费视频| 亚洲视频在线青青| a级毛片免费在线观看| 亚洲视频一区| 一本色道久久88亚洲综合|