摘 要: Web services組合是一個新的研究領域,它的個性化組合是研究的重點。在個性化Web services組合規(guī)范下,提出了一種基于上下文的組合方法,使得組合流程更加有效。該方法考慮了用戶的上下文、需求、偏好以及Web services上下文,并把它們集成在組合中。而且為了保證規(guī)范的重用,在組合中基于上下文和BPEL擴展了一種規(guī)范語言C-BPEL。
關鍵詞: Web services? 上下文? 個性化? BPEL規(guī)范
?
Web services是一些自包含、自描述、模塊化的程序,可以發(fā)布在Web上,并被發(fā)現(xiàn)和調(diào)用。Web服務使得網(wǎng)絡從靜態(tài)的、松散的Web頁面集合逐漸演化成動態(tài)的、互連的應用服務平臺" title="服務平臺">服務平臺。Web services的一個重要思想就是未來的應用將由一組利用網(wǎng)絡的服務組合" title="服務組合">服務組合而成。Internet 環(huán)境的動態(tài)、異構(gòu)等特性要求基于web提供的服務更靈活、可靠地滿足客戶的要求,實現(xiàn)個性化的服務,也就是按照用戶的要求將各種已有的服務組合起來,協(xié)同工作完成用戶的任務。為了實現(xiàn)個性化的服務自由組合以達到用戶的要求,必須綜合考慮環(huán)境、用戶的偏好、組合服務上下文、執(zhí)行組合服務上下文等因素。上下文是指與用戶、應用程序及所處的環(huán)境之間交互相關的任何信息[1]。組合服務的規(guī)范語言有:BPEL(Business Process Execution Language)[2]、WSFL(Web Services Flow Language)[3],WSIPL(Web Services Integration and Process Language)[4]等。使用規(guī)范語言的目的是為了給組合服務提供高層次的描述,但是目前這些規(guī)范語言并沒有把上下文因素考慮進去。為此,本文基于上下文對BPEL規(guī)范語言進行了擴展,擴展后的規(guī)范語言為C-BPEL(Context-based Business Process Execution Language),它能夠很好地滿足個性化的服務組合。
1 個性化組合中的上下文
Dey定義的上下文(context)“就是指與用戶和所處的環(huán)境之間交互相關的任何信息”[5]。從Web services 發(fā)展來看,上下文更應該是包括用戶環(huán)境、用戶偏好、用戶需求和web services的執(zhí)行狀態(tài)的一系列信息。在服務組合中有三類基本的上下文:用戶上下文(U-context)、Web services上下文(WS-context)和組合服務上下文(CS-context)。本文只研究前兩類上下文。
一個Web 服務可以參加多個組合服務,在它參加一個新的組合服務之前,會檢測這個組合服務中各個服務的可用性和資源配置等信息,并把這些信息儲存在一個機構(gòu)中,這個儲存結(jié)構(gòu)就是Web services 上下文。Web services上下文在分布式環(huán)境下是可以引用或者繁殖的,它可以給遠程執(zhí)行環(huán)境提供連續(xù)的上下文信息,并且把它封裝在SOAP頭部當作例子進行傳遞。在新的組合服務中,只使用一個原始的規(guī)范去描述組合服務的執(zhí)行圖表和參與組合服務的各個服務的類型。用戶發(fā)送的服務請求實際上就是發(fā)送的上下文信息,也就是檢測到的各個服務的上下文,提煉這個組合服務并規(guī)范化,就得到了執(zhí)行原始規(guī)范后的新規(guī)范,這個新的規(guī)范就是組合服務的個性化規(guī)范。把各個服務集合起來按照一個規(guī)范的執(zhí)行圖表來描述服務連接的順序,再集成用戶上下文和Web services上下文后,所形成的新組合。就是個性化的組合服務。新的組合服務可以參與到另一個組合服務中去,這個新組合服務上下文就作為另一個組合服務的Web services上下文。
用戶上下文和Web services上下文的這種進化的特征,使得組合服務的規(guī)范具有不確定性。因為用戶和服務的自然屬性是動態(tài)的,組合服務中發(fā)生變化,兩個類型的上下文的結(jié)構(gòu)也就發(fā)生變化。組合服務規(guī)范" title="服務規(guī)范">服務規(guī)范變化的結(jié)果就是:從組合服務中執(zhí)行一個現(xiàn)存的組合規(guī)范就得到一個新的規(guī)范,用戶上下文或Web services上下文每次改變時就產(chǎn)生一個個性化的規(guī)范。這就是個性化的組合規(guī)范語言C-BPEL。與只能在一個給定的規(guī)范下創(chuàng)建服務的BPEL相比,C-BPEL允許一個規(guī)范有多個執(zhí)行,所以更加能支持個性化的組合要求。
2 基于上下文的組合與C-BPEL
BPEL是一個規(guī)范語言,它定義了合成商業(yè)過程的Web services之間的交互。BPEL的規(guī)則是把目前的一系列服務組合成一個新的服務,它能夠在組合過程和BPEL的基礎上描述商業(yè)過程的行為,BPEL流程的每一個步驟都成為一個活動。由于BPEL的流程是在用戶請求和調(diào)用服務的基礎上完成的,所以C-BPEL在考慮了用戶上下文、服務上下文后,同樣采用請求和調(diào)用服務。基于上下文的組合流程如圖1所示。圖1中,用戶需要通過他的需求、偏好以及他的環(huán)境來研究他的個性化Web服務。為了達到這一目的,用戶修改好自己的參數(shù)后,就發(fā)送一個請求。這些參數(shù)被組織且儲存在一個創(chuàng)建的上下文結(jié)構(gòu)中,然后發(fā)送到C-BPEL流程,C-BPEL流程通過考慮U-context和WS-context等參數(shù)的兼容性來估計用戶的請求,將U-context和WS-context這兩個上下文結(jié)構(gòu)更新并且傳給用戶。
在兩個上下文結(jié)構(gòu)的基礎上,用C-BPEL生成的代碼能很好地規(guī)范Web services組合,并能有效地執(zhí)行組合中各服務的年表,較好地完成服務的組合。程序1為BPEL組合類型結(jié)構(gòu),它由一序列的元素組成,在BPEL中是通過流程的自然狀態(tài)和描述參數(shù)基本活動的一系列屬性描述的。為了在組合中集成上下文,特別是為了加強組合類型的計劃表,增加了兩部分上下文:
(1)屬性上下文。指明了這一個過程中必須考慮的組合中的上下文。在
(2)用戶或者Web services上下文。在
于是上下文類型就分解為兩個元素:
程序1:BPEL組合類型結(jié)構(gòu):
?? ?
??
???? ??
???? ??
???? ??
?
?
?
?
?
?
?程序2:新的組合類型結(jié)構(gòu):
?
?
?
?
?
?
?
?
?
用戶上下文用
?? ?用戶上下文描述了用戶在給定時間的狀態(tài),用側(cè)面、需求和偏好來表示。由于用戶上下文的動態(tài)特性" title="動態(tài)特性">動態(tài)特性,使得用戶的側(cè)面可以進化,并且任何交互都可以修改它。靜態(tài)的用戶上下文由元素
Web services上下文描述了組合瞬間的狀態(tài),也分為靜態(tài)和動態(tài)上下文。靜態(tài)的Web services上下文由元素
3 實例說明
C-BPEL是把有效服務組合成為一個新服務的一種語言,C-BPEL流程主要是接收請求,然后調(diào)用其他服務,同時考慮用戶和調(diào)用服務的上下文信息。這里,通過如圖2所示的旅行活動過程的組合流程例子來說明執(zhí)行過程:假設有一個游客計劃去觀光和購物,他按照自己的興趣愛好發(fā)送一個請求給景點,在請求被處理后,游客會得到景點的列表;然后整個過程就會按照順序一步步地執(zhí)行。首先從游客那里接收信息,然后檢測天氣預報和查看在參觀期間景點是否對外開放來確定參觀的景點,即需要調(diào)用觀光Web services和天氣預報Web services來確定參觀的景點,這兩個活動是并行;最后調(diào)用交通運輸" title="交通運輸">交通運輸Web services 來選擇那種交通運輸方式,一旦這個服務被調(diào)用,包括參觀的景點和采用的交通方式的需求結(jié)果就會傳遞給游客。
4 上下文匹配模塊
為了更好地發(fā)現(xiàn)用戶的需求服務,使用上下文匹配模塊CMM(Context Matching Module)??梢宰畲笙薅鹊仄ヅ淇蛻舻姆照埱蠛头仗峁┱叩姆铡;赪eb services的WSDL、SOAP、UDDI等技術,在XML下,上下文匹配模塊由三個步驟組成:元素間的匹配、屬性間的匹配、估價間的匹配。第一步,匹配模塊提煉上下文信息,并把自己的上下文信息和用戶的請求及上下文信息進行對比,這一步的結(jié)果就是列出用戶上下文和服務上下文的各個元素;第二步,就是把羅列的元素進行匹配,得到屬性相似的元素。第三步,是估價間的匹配,一旦匹配屬性被發(fā)現(xiàn),就提取他們的估計值,并檢測相似性,返回的結(jié)果就是用戶上下文和服務上下文的估價匹配。
本文提出了一種基于上下文的方法來研究個性化服務組合,并在BPEL語言基礎上基于上下文擴展了一種新的語言C-BPEL,同時在這個語言的基礎上提出了一個個性化服務組合的規(guī)范。該規(guī)范不僅考慮了用戶的個性化需求,而且綜合考慮了三種上下文信息即:用戶上下文(U-context)、Web services上下文(WS-context)和組合服務上下文(CS-context),因而這個規(guī)范更能滿足個性化組合服務的要求。為了確保用戶的偏好和上下文在服務組合中更加有效地匹配,提出了一種上下文的匹配模塊,該模塊能夠更好地提供個性化Web服務的選擇和發(fā)現(xiàn)。
參考文獻
[1] ?BR′EZILLON P. Focusing on context in human-centered computing. IEEE Intelligent Systems,2003,18(3).
[2] ?ANDREWS T, CURBERA F. Business process execution language for Web ServicesVersion 1.1. echnical report,IBM,2003. http://www-128.ibm.com/developerworks/library/specification/ws-bpel/.
[3] ?LEYMANN F. Web services flow language. Technical report, IBM Corporation, 2001.
[4] ?CHEUNG D W, LO E, NG C Y,et al. Web services oriented data processingand Integration. In Proceedings of the Twelfth International World Wide Web Conference,Budapest, Hungary, May 2003.
[5] ?DEY A K, ABOWD G D, SALBER D. A conceptual framework and a toolkit for supportingthe rapid prototyping of context-aware applications.Human-Computer Interaction Journal, 2001,16(1).
[6]?石靜,丁長明,趙澤宇,等.服務合成研究綜述[J],計算機科學,2004,31(6):54-58.
[7] ?NANDA M G, CHANDRA S, SARKAR V. Decentralizing composite web services. In proceedings of workshop on compilers for parallel computing, Amsterdam, Nedherland, January 2003.
[8] ?MAAMAR Z, ALKHATIB G, MOST′EFAOUI, S K, et al. Context-based Personalization of seb services composition and provisioning. In Proc. of The 30th IEEE EUROMICRO Conf. - Software Process and Product Improvement EUROMICRO’2004, Rennes, France, 2004.


