《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信与网络 > 业界动态 > 基于上下文的个性化Web services 组合研究

基于上下文的个性化Web services 组合研究

2008-03-19
作者:陈哲强, 周文彬, 王文杰

  摘 要: Web services組合是一個(gè)新的研究領(lǐng)域,它的個(gè)性化組合是研究的重點(diǎn)。在個(gè)性化Web services組合規(guī)范下,提出了一種基于上下文的組合方法,使得組合流程更加有效。該方法考慮了用戶的上下文、需求、偏好以及Web services上下文,并把它們集成在組合中。而且為了保證規(guī)范的重用,在組合中基于上下文和BPEL擴(kuò)展了一種規(guī)范語(yǔ)言C-BPEL。
  關(guān)鍵詞: Web services? 上下文? 個(gè)性化? BPEL規(guī)范

?

  Web services是一些自包含、自描述、模塊化的程序,可以發(fā)布在Web上,并被發(fā)現(xiàn)和調(diào)用。Web服務(wù)使得網(wǎng)絡(luò)從靜態(tài)的、松散的Web頁(yè)面集合逐漸演化成動(dòng)態(tài)的、互連的應(yīng)用服務(wù)平臺(tái)" title="服務(wù)平臺(tái)">服務(wù)平臺(tái)。Web services的一個(gè)重要思想就是未來(lái)的應(yīng)用將由一組利用網(wǎng)絡(luò)的服務(wù)組合" title="服務(wù)組合">服務(wù)組合而成。Internet 環(huán)境的動(dòng)態(tài)、異構(gòu)等特性要求基于web提供的服務(wù)更靈活、可靠地滿足客戶的要求,實(shí)現(xiàn)個(gè)性化的服務(wù),也就是按照用戶的要求將各種已有的服務(wù)組合起來(lái),協(xié)同工作完成用戶的任務(wù)。為了實(shí)現(xiàn)個(gè)性化的服務(wù)自由組合以達(dá)到用戶的要求,必須綜合考慮環(huán)境、用戶的偏好、組合服務(wù)上下文、執(zhí)行組合服務(wù)上下文等因素。上下文是指與用戶、應(yīng)用程序及所處的環(huán)境之間交互相關(guān)的任何信息[1]。組合服務(wù)的規(guī)范語(yǔ)言有:BPEL(Business Process Execution Language)[2]、WSFL(Web Services Flow Language)[3],WSIPL(Web Services Integration and Process Language)[4]等。使用規(guī)范語(yǔ)言的目的是為了給組合服務(wù)提供高層次的描述,但是目前這些規(guī)范語(yǔ)言并沒(méi)有把上下文因素考慮進(jìn)去。為此,本文基于上下文對(duì)BPEL規(guī)范語(yǔ)言進(jìn)行了擴(kuò)展,擴(kuò)展后的規(guī)范語(yǔ)言為C-BPEL(Context-based Business Process Execution Language),它能夠很好地滿足個(gè)性化的服務(wù)組合。
1 個(gè)性化組合中的上下文
  Dey定義的上下文(context)“就是指與用戶和所處的環(huán)境之間交互相關(guān)的任何信息”[5]。從Web services 發(fā)展來(lái)看,上下文更應(yīng)該是包括用戶環(huán)境、用戶偏好、用戶需求和web services的執(zhí)行狀態(tài)的一系列信息。在服務(wù)組合中有三類基本的上下文:用戶上下文(U-context)、Web services上下文(WS-context)和組合服務(wù)上下文(CS-context)。本文只研究前兩類上下文。
  一個(gè)Web 服務(wù)可以參加多個(gè)組合服務(wù),在它參加一個(gè)新的組合服務(wù)之前,會(huì)檢測(cè)這個(gè)組合服務(wù)中各個(gè)服務(wù)的可用性和資源配置等信息,并把這些信息儲(chǔ)存在一個(gè)機(jī)構(gòu)中,這個(gè)儲(chǔ)存結(jié)構(gòu)就是Web services 上下文。Web services上下文在分布式環(huán)境下是可以引用或者繁殖的,它可以給遠(yuǎn)程執(zhí)行環(huán)境提供連續(xù)的上下文信息,并且把它封裝在SOAP頭部當(dāng)作例子進(jìn)行傳遞。在新的組合服務(wù)中,只使用一個(gè)原始的規(guī)范去描述組合服務(wù)的執(zhí)行圖表和參與組合服務(wù)的各個(gè)服務(wù)的類型。用戶發(fā)送的服務(wù)請(qǐng)求實(shí)際上就是發(fā)送的上下文信息,也就是檢測(cè)到的各個(gè)服務(wù)的上下文,提煉這個(gè)組合服務(wù)并規(guī)范化,就得到了執(zhí)行原始規(guī)范后的新規(guī)范,這個(gè)新的規(guī)范就是組合服務(wù)的個(gè)性化規(guī)范。把各個(gè)服務(wù)集合起來(lái)按照一個(gè)規(guī)范的執(zhí)行圖表來(lái)描述服務(wù)連接的順序,再集成用戶上下文和Web services上下文后,所形成的新組合。就是個(gè)性化的組合服務(wù)。新的組合服務(wù)可以參與到另一個(gè)組合服務(wù)中去,這個(gè)新組合服務(wù)上下文就作為另一個(gè)組合服務(wù)的Web services上下文。
  用戶上下文和Web services上下文的這種進(jìn)化的特征,使得組合服務(wù)的規(guī)范具有不確定性。因?yàn)橛脩艉头?wù)的自然屬性是動(dòng)態(tài)的,組合服務(wù)中發(fā)生變化,兩個(gè)類型的上下文的結(jié)構(gòu)也就發(fā)生變化。組合服務(wù)規(guī)范" title="服務(wù)規(guī)范">服務(wù)規(guī)范變化的結(jié)果就是:從組合服務(wù)中執(zhí)行一個(gè)現(xiàn)存的組合規(guī)范就得到一個(gè)新的規(guī)范,用戶上下文或Web services上下文每次改變時(shí)就產(chǎn)生一個(gè)個(gè)性化的規(guī)范。這就是個(gè)性化的組合規(guī)范語(yǔ)言C-BPEL。與只能在一個(gè)給定的規(guī)范下創(chuàng)建服務(wù)的BPEL相比,C-BPEL允許一個(gè)規(guī)范有多個(gè)執(zhí)行,所以更加能支持個(gè)性化的組合要求。
2 基于上下文的組合與C-BPEL
  BPEL是一個(gè)規(guī)范語(yǔ)言,它定義了合成商業(yè)過(guò)程的Web services之間的交互。BPEL的規(guī)則是把目前的一系列服務(wù)組合成一個(gè)新的服務(wù),它能夠在組合過(guò)程和BPEL的基礎(chǔ)上描述商業(yè)過(guò)程的行為,BPEL流程的每一個(gè)步驟都成為一個(gè)活動(dòng)。由于BPEL的流程是在用戶請(qǐng)求和調(diào)用服務(wù)的基礎(chǔ)上完成的,所以C-BPEL在考慮了用戶上下文、服務(wù)上下文后,同樣采用請(qǐng)求和調(diào)用服務(wù)?;谏舷挛牡慕M合流程如圖1所示。圖1中,用戶需要通過(guò)他的需求、偏好以及他的環(huán)境來(lái)研究他的個(gè)性化Web服務(wù)。為了達(dá)到這一目的,用戶修改好自己的參數(shù)后,就發(fā)送一個(gè)請(qǐng)求。這些參數(shù)被組織且儲(chǔ)存在一個(gè)創(chuàng)建的上下文結(jié)構(gòu)中,然后發(fā)送到C-BPEL流程,C-BPEL流程通過(guò)考慮U-context和WS-context等參數(shù)的兼容性來(lái)估計(jì)用戶的請(qǐng)求,將U-context和WS-context這兩個(gè)上下文結(jié)構(gòu)更新并且傳給用戶。


  在兩個(gè)上下文結(jié)構(gòu)的基礎(chǔ)上,用C-BPEL生成的代碼能很好地規(guī)范Web services組合,并能有效地執(zhí)行組合中各服務(wù)的年表,較好地完成服務(wù)的組合。程序1為BPEL組合類型結(jié)構(gòu),它由一序列的元素組成,在BPEL中是通過(guò)流程的自然狀態(tài)和描述參數(shù)基本活動(dòng)的一系列屬性描述的。為了在組合中集成上下文,特別是為了加強(qiáng)組合類型的計(jì)劃表,增加了兩部分上下文:
  (1)屬性上下文。指明了這一個(gè)過(guò)程中必須考慮的組合中的上下文。在中增加的元素如下:
  (2)用戶或者Web services上下文。在中增加的元素如下:
  
  于是上下文類型就分解為兩個(gè)元素: and 。程序2為BPEL新的組合類型結(jié)構(gòu)。
  程序1:BPEL組合類型結(jié)構(gòu):


 
?? ?
??
???? ????? "0" maxOccurs="unbounded">
???? ??
???? ??



?
?
?
?

?

?

?程序2:新的組合類型結(jié)構(gòu):
?
?
?
?
???minoccurs="0" maxOccurs="1" />
???minoccurs="0" />
?

?

?

  用戶上下文用元素描述,并分成兩個(gè)元素。元素描述用戶的個(gè)人特征,元素描述用戶的動(dòng)態(tài)特征。
  描述Web services上下文。對(duì)照用戶上下文也分解為兩個(gè)元素:元素描述WS的狀態(tài)特征,元素描述WS的動(dòng)態(tài)特征。
?? ?用戶上下文描述了用戶在給定時(shí)間的狀態(tài),用側(cè)面、需求和偏好來(lái)表示。由于用戶上下文的動(dòng)態(tài)特性" title="動(dòng)態(tài)特性">動(dòng)態(tài)特性,使得用戶的側(cè)面可以進(jìn)化,并且任何交互都可以修改它。靜態(tài)的用戶上下文由元素 描述,這個(gè)元素包括五個(gè)元素: age、 gender、language、religion和race。動(dòng)態(tài)的用戶上下文用元素描述,這個(gè)元素包括六個(gè)元素組成:、、、。
  Web services上下文描述了組合瞬間的狀態(tài),也分為靜態(tài)和動(dòng)態(tài)上下文。靜態(tài)的Web services上下文由元素來(lái)描述,包括五個(gè)元素:、、、。動(dòng)態(tài)的Web services上下文由元素來(lái)描述,包括兩個(gè)元素。


3 實(shí)例說(shuō)明
  C-BPEL是把有效服務(wù)組合成為一個(gè)新服務(wù)的一種語(yǔ)言,C-BPEL流程主要是接收請(qǐng)求,然后調(diào)用其他服務(wù),同時(shí)考慮用戶和調(diào)用服務(wù)的上下文信息。這里,通過(guò)如圖2所示的旅行活動(dòng)過(guò)程的組合流程例子來(lái)說(shuō)明執(zhí)行過(guò)程:假設(shè)有一個(gè)游客計(jì)劃去觀光和購(gòu)物,他按照自己的興趣愛(ài)好發(fā)送一個(gè)請(qǐng)求給景點(diǎn),在請(qǐng)求被處理后,游客會(huì)得到景點(diǎn)的列表;然后整個(gè)過(guò)程就會(huì)按照順序一步步地執(zhí)行。首先從游客那里接收信息,然后檢測(cè)天氣預(yù)報(bào)和查看在參觀期間景點(diǎn)是否對(duì)外開(kāi)放來(lái)確定參觀的景點(diǎn),即需要調(diào)用觀光Web services和天氣預(yù)報(bào)Web services來(lái)確定參觀的景點(diǎn),這兩個(gè)活動(dòng)是并行;最后調(diào)用交通運(yùn)輸" title="交通運(yùn)輸">交通運(yùn)輸Web services 來(lái)選擇那種交通運(yùn)輸方式,一旦這個(gè)服務(wù)被調(diào)用,包括參觀的景點(diǎn)和采用的交通方式的需求結(jié)果就會(huì)傳遞給游客。
4 上下文匹配模塊
  為了更好地發(fā)現(xiàn)用戶的需求服務(wù),使用上下文匹配模塊CMM(Context Matching Module)??梢宰畲笙薅鹊仄ヅ淇蛻舻姆?wù)請(qǐng)求和服務(wù)提供者的服務(wù)?;赪eb services的WSDL、SOAP、UDDI等技術(shù),在XML下,上下文匹配模塊由三個(gè)步驟組成:元素間的匹配、屬性間的匹配、估價(jià)間的匹配。第一步,匹配模塊提煉上下文信息,并把自己的上下文信息和用戶的請(qǐng)求及上下文信息進(jìn)行對(duì)比,這一步的結(jié)果就是列出用戶上下文和服務(wù)上下文的各個(gè)元素;第二步,就是把羅列的元素進(jìn)行匹配,得到屬性相似的元素。第三步,是估價(jià)間的匹配,一旦匹配屬性被發(fā)現(xiàn),就提取他們的估計(jì)值,并檢測(cè)相似性,返回的結(jié)果就是用戶上下文和服務(wù)上下文的估價(jià)匹配。
  本文提出了一種基于上下文的方法來(lái)研究個(gè)性化服務(wù)組合,并在BPEL語(yǔ)言基礎(chǔ)上基于上下文擴(kuò)展了一種新的語(yǔ)言C-BPEL,同時(shí)在這個(gè)語(yǔ)言的基礎(chǔ)上提出了一個(gè)個(gè)性化服務(wù)組合的規(guī)范。該規(guī)范不僅考慮了用戶的個(gè)性化需求,而且綜合考慮了三種上下文信息即:用戶上下文(U-context)、Web services上下文(WS-context)和組合服務(wù)上下文(CS-context),因而這個(gè)規(guī)范更能滿足個(gè)性化組合服務(wù)的要求。為了確保用戶的偏好和上下文在服務(wù)組合中更加有效地匹配,提出了一種上下文的匹配模塊,該模塊能夠更好地提供個(gè)性化Web服務(wù)的選擇和發(fā)現(xiàn)。
參考文獻(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]?石靜,丁長(zhǎng)明,趙澤宇,等.服務(wù)合成研究綜述[J],計(jì)算機(jī)科學(xué),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.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容