范大娟,黃志球,肖芳雄,祝 義,王 進
(1.南京航空航天大學計算機科學與技術學院,南京210016;2.南京工程學院 計算機工程學院,南京211167)
Web服務作為實現SOA架構的重要技術有效地解決了在分布、動態、異構環境下的應用集成問題。由于單個Web服務提供的功能有限,為了滿足實際應用的需要,常常通過組合已有Web服務以形成增值的、具有更大粒度的Web服務。近年來,關于Web服務組合的研究工作取得了重要進展,已逐漸從只側重于組合的功能方面的研究轉向支持QOS,比如代價、時間屬性[1],可信性[2]和能耗[3]等方面的研究;同時由于服務自身和需求的動態變化特點,傳統的靜態服務組合的研究也逐漸向動態服務組合的方向轉變[4]。
在進行服務組合時,由于不同的Web服務常常由不同的提供者獨立開發,它們在簽名層或行為層上可能不相容而導致不能直接組合。如何消除Web服務在簽名層和行為層上的不相容,從而實現服務的正確組合非常關鍵。服務之間的不相容表明交互的服務之間發生了失配(Mismatch),失配包括簽名層失配(Signature-level mismatches)和行為層失配(Behavioral-level mismatches)。服務適配技術通過構造適配器的方法來消除服務之間的不相容而不改變服務內部代碼,以支持服務的正確組合[5-6]。
目前,有關服務適配的研究引起了國內外的廣泛關注。如文獻[7]對服務之間WSDL簽名層上的不相容進行適配,假定功能相似的服務的簽名只在組成消息的部件上不一致,而在消息名上相同,即不考慮消息名稱失配的情況。文獻[8]對于在簽名層不相容的服務,通過改變WSDL簽名描述使得服務之間可以正確交互。文獻[9]利用YAWL工作流語言作為中介語言,對于兩個BPEL流程,通過合并兩者的對偶服務執行樹(Dual service execution trees)的方法自動生成適配器以消除它們在行為層上的失配。文獻[10]針對兩個異步通信的流程服務,生成最小適配器以消除流程服務之間行為層上的不相容,最小適配器只處理引起失配的消息,可以降低服務組合運行時的通信開銷。文獻[11]定義了若干個基于BPEL代碼的適配模板,每一個模板對應一種失配的輸入。開發者可以根據Web服務之間簽名層和行為層不相容的情況,利用適配模板生成BPEL適配代碼。文獻[12]利用模式匹配技術識別簽名層和行為層的失配,并通過生成失配樹的方法得到適配器規約。
以上研究工作主要存在如下不足:①文獻[7-10]只關注服務簽名層或行為層上的適配。而由于需要組合的多個服務通常是由不同提供者獨立開發,它們往往在簽名層和行為層上均不相容,只考慮某一層上的適配難以有效支持服務組合的正確執行。②上述方法[7-12]主要針對的是兩個服務交互的簡單場景,而實際的Web服務組合往往是多個服務參與的復雜交互場景。③上述方法[7-12]所生成的適配器模型可能包含BPEL不能實現的部分,因此不能直接映射生成實際的適配器BPEL代碼,且文獻[11-12]所提出的方法不支持服務的自動適配,需要開發者的介入以生成相應的適配器。
針對以上問題,本文研究了面向多個服務參與的復雜交互情形下的適配器自動生成方法。首先對有限自動機(Finite automata,FA)進行簽名和行為的擴展(稱其為SBA模型)以同時建模服務的簽名和行為信息,給出了基于SBA模型分析多個服務之間相容性的方法。定義了適配器模型的語法和操作語義,根據服務的SBA模型和服務之間的消息映射給出了適配器模型的自動生成算法,并討論如何針對適配器模型中不能實現的部分(比如不確定、不可達等部分)進行約簡的方法。最后通過一個實例分析說明了本文所提方法的可行性。與已有服務適配方法相比,通過該方法生成的適配器可以消除多個服務之間在簽名層和行為層上的不相容以支持服務組合的正確執行。另一方面,該方法考慮如何對生成的適配器模型中BPEL不能實現的部分進行約簡,因此可以支持從適配器模型到BPEL代碼的自動生成。
服務的簽名包括服務的一組操作,由服務的WSDL文件描述。服務的每一個操作都可以看作是一個輸入或輸出消息。服務的每一個消息均由一個或多個部件組成,每一個部件對應一個類型。因此消息的類型常常是由其部件的數目、順序和類型所決定的結構體類型。基于上述討論可知,服務的簽名可以看作是由服務所包含的消息以及消息的類型所組成的集合。
服務的行為定義了服務的操作調用的順序,即該服務與其他服務交互時該服務發送或接收消息的動作序列,通常由服務的抽象BPEL流程描述。基于WSDL、抽象BPEL流程描述的服務的簽名和行為缺乏精確的語義,需要轉換為相應的形式模型表示。
由于有限自動機FA簡單、直觀、易于理解,具有精確的語義,因此,本文通過對FA模型進行相應的擴展分別用于形式化描述參與組合的單個服務(稱為SBA模型)和它們的適配器(稱為AM模型),通過SBA模型的組合運算描述SBA模型的組合(稱為CBA模型)。下面給出幾個關于FA模型的基本概念。



由于本文的SBA模型、AM模型、組合模型CBA均基于FA模型進行擴展,因此,定義1~3同樣適用于以上模型。比如在SBA模型中標簽集合L對應SBA模型中的動作集合A,即μ1,…,μn-1∈A;在AM模型中標簽集合L對應AM模型中的內部動作集合AI和外部動作集合AO,即μ1,…,μn-1∈AO∪AI;在組合模型CBA中標簽集合L對應組合模型中的動作同步集合AS,即μ1,…,μn-1∈AS。
本文對FA模型進行簽名和行為的擴展,稱其為簽名行為自動機,用于形式化描述單個服務的簽名和行為信息。
定義4 簽名行為自動機(Signature,behavioral automata,SBA)。SBA模型是一個擴展的FA模型SBA=(S,s0,F,ΣM,fT,CD,A,T),其中:S表示狀態集合;s0表示初始狀態,s0∈S;F表示正常終止狀態集合,F?S;ΣM表示消息集合;fT:ΣM→DT為消息集合ΣM到類型集合DT的映射函數;CD為遷移觸發的條件集合;A表示動作集合,A?{?,!}×ΣM×DT;T表示遷移關系,T?S×CD×A×S。其中,若發送動作a=!m:d,其互補動作為=?m:d;若接收動作a=?m:d,則其互補動作=!m:d。SBA模型的遷移觸發條件可為空,表示為ε∈CD。若條件cd1,cd2∈CD,則條件cd1∧cd2表示同時滿足cd1和cd2的條件。若條件cd∈CD,有cd∧ε=cd成立。
服務的SBA模型同時包含服務的簽名和行為信息,因此利用SBA模型可以自動識別服務在簽名層和行為層上的失配,并自動生成適配器進行失配的消解,從而保證了服務組合的正確執行。
參與組合的Web服務通常是由不同開發者提供,使用不同的命名空間和類型定義來描述服務的簽名,使用不一致的消息交互序列來描述服務的行為。因此,Web服務之間在簽名層和行為層上的不相容的現象常常發生。對多個不相容的服務進行組合將使得組合系統不能正確執行。在進行服務組合之前,需要分析服務之間的相容性。
已有分析服務之間相容性的方法大多只考慮兩個服務之間在行為上的相容性[5,13],通常根據這兩個服務之間的行為是否是完全相反的或者通過一個服務在某一狀態下發送消息的集合和與另一服務在相應的狀態下接收消息的集合是否存在包含關系來確定。因此,此類(基于二元運算)相容性判定方法不適合用于判定多個服務之間的相容性。此外,已有相容性判定方法常常忽略了服務的簽名信息,它們假設相同消息名的消息具有相同的類型,在此假設下通過消息名匹配來分析服務之間的相容性,因此不能識別簽名層的某些失配,比如消息類型失配等。
在實際應用中,服務組合往往是多個服務參與的復雜交互場景,且服務同時包含靜態的簽名信息和動態的行為信息,由于服務的SBA模型同時刻畫了服務的簽名和行為信息,因此本文基于SBA模型來分析服務之間在簽名層和行為層上的相容性。服務之間的不相容意味著它們的組合系統會發生死鎖,因此,可以通過檢測N個服務的SBA模型的組合模型是否存在死鎖狀態來判定這N個服務是否相容。
定義5 SBA的組合模型(Composition model of N SBA models,CBA)。N個SBA模型SBAi=(Si,,Fi,,,CDi,Ai,Ti),i={1,…,N},它們的組合模型SBA1|SBA2|…|SBAN可以被表示一個擴展的FA模型CBA=(S,s0,F,ΣM,CD,AS,T),其中:S?S1×…× SN,s0=,…,),F?F1×…×FN,ΣM?CD1×…×CDN,AS是動作同步集合,AS?ΣM×{1,…,N}×{1,…,N}× DT,((s1,…,sN),cdi∧cdj,m(i,j):d,(s′1,…,s′N))∈T??(s1,…,sN)∈S,?i,j∈{1,…,N},?(si,cdi,!m:(m),s′i)∈Ti∧ ?(sj,cdj,?m:(m),s′j)∈Tj∧(m)=(m)=d∧(cdi∧cdj≠F):?k∈{1,…,N}:(k≠i,j?s′k=sk)。


判定N個服務是否相容的步驟:①首先根據定義5的計算方法,自動生成這N個服務的SBA模型的組合模型CBA;②利用定義3中有關死鎖狀態的形式化定義,自動判斷該CBA模型是否存在死鎖狀態。若不存在死鎖狀態,則表明這N個服務之間是相容的,因此可以直接進行組合;若存在死鎖狀態,則意味著這N個服務在簽名層或行為層不相容,需要生成適配器消除服務之間的不相容,使得服務組合能夠正確執行。
已有服務適配方法大多針對只有兩個服務參與組合的情形,未考慮多個服務參與組合的復雜交互場景[7-12],且文獻[7-10]僅僅針對的是簽名層(或行為層)上的適配問題。比如文獻[7-8]只關注兩個服務之間在簽名層上的適配,該方法只適合于簡單的無狀態服務,而在實際應用中,絕大多數服務是具有行為信息的有狀態服務。文獻[9-10]研究的是兩個服務之間行為層的適配問題,適配器僅通過消息交互的外部動作來消除服務之間的失配,未考慮適配器的有關消息處理的內部動作,因此不能處理簽名層上的失配。
此外,文獻[11-12]中適配器的生成方法是半自動化的。在文獻[11]中,開發者需要根據兩個服務之間不相容的情況,人工識別并組合適配模板以生成相應的適配器。文獻[12]在適配器的生成過程中需要開發者選擇消解失配的方式并提供相應的消息構造信息。以上服務適配方法[7-12]均沒有涉及如何對得到的適配器模型中BPEL代碼不能實現的部分進行約簡,從而不能直接從適配器模型映射生成實際的適配器BPEL代碼。
由于SBA模型同時刻畫了服務的簽名信息和行為信息,因此,本文將基于SBA模型提出一種面向多服務交互的適配器自動生成方法。首先引入多個服務之間的消息映射概念,給出具有消息處理的內部動作和消息交互的外部動作的適配器模型的語法和操作語義,使得適配器可以同時處理多個服務之間簽名層和行為層的失配情況。在此基礎上給出適配器模型的自動生成算法,討論如何對得到的適配器模型進行約簡的方法以支持實際BPEL代碼的自動映射。
服務之間的消息映射是一組消息轉換規則,即某個服務所需要接收的消息如何通過其他服務的發送消息來構造。消息映射表明了消息之間的語義依賴關系,可以利用語義Web和本體論的相關知識構造服務之間的消息映射[14]。由于本文主要關注的是服務適配方法本身,即如何根據給定的服務的SBA模型和服務之間的消息映射M生成相應的適配器,因此假定消息映射M已經由開發者給出。


文獻[16]研究的是組件之間的適配問題,利用同步矢量作為適配契約并根據各個組件的接口描述自動生成適配器來消除組件之間的失配。但由于同步矢量只能表達兩個消息之間的匹配關系(是一種特殊的映射關系),該方法不能處理消息分裂/合并失配等情況。而本節中引入的多個服務之間的消息映射概念不僅給出了涉及多個消息之間的映射關系,并且指明適配器如何對接收到的多個消息進行處理以生成另一服務需要的消息的方法,因此可以處理服務之間更多的、更復雜的失配情況。
適配器本質上是服務組合的編制器(Orchestrator),服務之間所有交互的消息必須通過適配器進行轉發。為了描述適配器與服務之間的交互情況,需要將適配器的發送/接收動作與具體的服務相關聯,即對發送/接收動作進行標記。

其中,標記動作?m(i):d表示適配器接收從第i個服務發送的類型為d的消息m,標記動作!m(j):d表示適配器發送類型為d的消息m至第j個服務,i,j∈{1,…,N}。
定義9 適配器模型(Adaptor model),簡稱AM。N個服務的SBA模型SBAi=(Si,,Fi,,,CDi,Ai,Ti),i={1,…,N},它們的適配器模型AM可形式化定義為一個擴展的FA模型AM=(S,s0,F,AO,AI,T),其中:S表示適配器的狀態集合,S=S1×…×SN×δ,s0表示適配器的初始狀態,s0=(,…,,?),F表示適配器的正常終止狀態集合,F?F1×…×FN×δF,AO表示適配器的外部動作集合,AI表示適配器的內部動作集合,AI?MT1∪…∪MTN,T表示遷移關系,T?S×((CD×AO)∪AI)×S。

適配器的動作分為外部動作和內部動作,外部動作a∈AO是指適配器從某一服務接收消息或發送消息至某一服務。內部動作a∈AI為服務之間的消息映射M中某一消息映射規則mt,表示適配器根據該消息映射規則對接收到的消息進行相應的內部處理。

定義10 AM模型的操作語義。AM模型的操作語義被描述為遷移系統(S,s0,→),遷移關系→定義如下:
發送消息:

接收消息:

內部處理:

若給定N個服務的SBA模型和服務之間的消息映射M,按照算法1可以得到相應的AM模型。



根據算法1得到的AM模型不是最終的AM模型,需要對其進行約簡,去除模型中BPEL不能實現的部分,如不確定行為的部分、不可達的部分和死鎖部分,約簡后的AM模型可以自動映射生成適配器的BPEL代碼。
定義11 不確定狀態。AM=(S,s0,F,AO,AI,T),狀態s∈S,若狀態s不符合以下幾種情況之一,則稱狀態s為不確定狀態。①從狀態s出發的遷移數目等于1;②從狀態s出發的接收遷移數目大于等于2,發送遷移數目等于0,這些接收遷移均為有條件約束的遷移,且遷移上的條件兩兩之間互不相交,即?i,j∈{1,…,K},cdi∧cdj=F,K為從狀態s出發的接收遷移數目;③從狀態s出發的接收遷移數目和發送遷移數目均大于等于1,這些遷移均為有條件約束的遷移,且遷移上的條件兩兩之間互不相交,即?i,j∈{1,…,K},cdi∧cdj=F,K為從狀態s出發的遷移數目。
在不確定狀態s下如何選擇某一遷移進行觸發是不確定的,需要對該狀態下多個沖突的遷移進行去除,使得該狀態下遷移的觸發是確定的。
約簡規則1(狀態確定化)。對于AM模型中的所有不確定狀態s,逐步去除從狀態s出發的某個遷移,直到狀態s符合定義11給出的三種情況之一。
對AM模型應用約簡規則1后的模型中可能存在不可達狀態,因此需要引入約簡規則2去除AM模型中的不可達狀態。
定義12 不可達狀態。AM=(S,s0,F,AO,AI,T)狀態s∈S是不可達狀態,當且僅當不存在從初始狀態s0到狀態s的跡,即tr(s0,s)=?。
約簡規則2(去除不可達狀態)。在AM模型中去除所有不可達狀態s以及從該狀態s出發或到達該狀態s的遷移。
若AM模型存在死鎖狀態,則表明對于給定的N個服務,它們之間存在某些交互情況下的失配是不能通過適配器進行消解的,因此,在利用約簡規則1和約簡規則2去除模型中具有不確定行為的部分、不可達的部分之后,若AM模型中存在死鎖狀態,則需要利用約簡規則3去除AM模型中的死鎖狀態以得到最終的AM模型。
約簡規則3(去除死鎖狀態)。在AM模型中去除所有死鎖狀態以及從該狀態s出發或到達該狀態s的遷移。
利用本節的約簡規則1、2、3對AM模型中BPEL不能實現的部分進行約簡,使得約簡后的AM模型可以直接映射生成適配器的BPEL代碼,用于在實際的BPEL執行引擎上運行。
本節以一個網上醫院的應用為例來說明本文方法的可行性,該應用包括Client服務、Specialist服務和Doctor服務,它們的SBA模型見圖1,其中:
(1)Client服務通過發送用戶名(!mUN)和門診名稱(!mDN)進行登記,然后選擇預約專家(!mRS)或門診掛號(!mRD)。若選擇預約專家,則將收到相應門診的專家信息(?mSL)或收到該門診暫無專家的提示(?mNS),若暫無專家,則流程結束,若有專家可以預約,則Client發送預約信息(!mRSI),并收到是否預約成功的提示(?mV或?mIV),若預約成功,則流程結束,若預約失敗,則可以重新預約(!mRS)或退出預約流程(!mEX)。若Client選擇門診掛號,則將收到掛號信息(?mRLD),Client可以選擇接受或取消此次掛號(!mOP),若取消掛號(mOP=0),則收到掛號已取消的提示信息(?mCC),Client將選擇重新掛號(!mRD)或退出流程(!mEX),若接受此次掛號(mOP=1),則將收到掛號成功的提示后(?mDS)結束掛號流程。
(2)Specialist服務首先接收預約專家的請求(?mRS),然后接收Client的登記信息(?mRI),根據登記信息中的門診信息,選擇發送相應門診的專家信息(!mSL)或給出該門診暫無專家的提示(!mNS),若暫無專家,則流程結束,若有專家可以預約,則發送專家信息,隨后接收Client選定的專家姓名(?mSN)和預約時間(?mRT),并判斷Client的預約是否有效,若有效,則發送預約成功提示(!mV)并等待Client的確認消息(?mCF),若無效,則給出預約無效的提示(!mIV),等待Client的再次請求(?mRS)或退出預約流程(?mEX)。
(3)Doctor服務首先接收Client的用戶名(?mUN)和門診名稱(?mDN),然后接收門診掛號的請求(?mRD),將生成的掛號信息發送至Client(!mRLD)并等待Client接受或取消此次掛號(?mCO),若Client接受此次掛號(mCO=1),則給出掛號成功的提示信息(!mDS),隨后接收來自Client的付款信息(?mPM)并結束流程,若Client取消掛號(mCO=0),則發送掛號已取消的提示信息(!mCC)并結束流程。

圖1 網上醫院實例中三個服務的SBA模型Fig.1 SBA models for three services composing the online hospital example
Client服務、Specialist服務和Doctor服務之間存在如下消息映射M=MTSpecialist∪MTDoctor∪MTClient:


圖2 應用約簡規則1前后的AM模型片段Fig.2 The AM model fragments before and after applying reduction rule 1
根據第2節提出的相容性分析方法判斷出這三個服務之間是不相容的,即這三個服務之間發生了簽名層失配,比如消息合并失配(Client服務發送消息mUN和消息mDN進行登記而Specialist服務通過消息mRI接收Client的登記信息)等失配和行為層失配,比如未指定接收適配(Client服務先發送消息mUN和消息mDN進行登記,再發送消息mRS選擇預約專家;Specialist服務先通過接收消息mRS接受預約,再通過消息mRI接收Client的登記信息)等失配,因此需要生成適配器以消除這些簽名層和行為層的失配。
根據以上三個服務的SBA模型和消息映射M,利用3.2節的算法1得到的適配器AM模型中包含不確定狀態,圖2(a)(b)分別為本節實例按照算法1生成的AM模型中含有不確定狀態的約簡前后模型片段的結果。
對AM模型應用約簡規則1-2后得到Specialist服務、Client服務和Doctor服務的適配器的AM模型如圖3。其中,圖3中的標記s,c,d分別表示Specialist服務、Client服務和Doctor服務。AM模型通過對服務之間的消息進行緩存、消息合并(應用消息轉換規則mt1Specialist)、提取(應用消息轉換規則mt3pecialist和mt4pecialist)、轉換消息類型(應用消息轉換規則mtclient)、生成消息(應用消息轉換規則mt2specialist)等消除了三個服務之間上述簽名層和行為層失配。其中,mt Nw表示集合MTw的第N個消息轉換規則。
圖3中的AM模型存在死鎖狀態(灰色狀態顯示)表示Client服務和Doctor服務的交互過程中發生了不可消解的失配(Doctor服務在通過消息mDS發送掛號成功的提示信息后將通過消息mPM接收Client服務的付款信息,而Client服務無相應的付款消息發送,且根據消息映射M可知消息mPM不能由適配器自動生成)。因此,需要利用約簡規則3去除AM模型中的死鎖狀態(需去除虛線顯示的兩個狀態)以得到最終的無死鎖狀態的AM模型。

圖3 網上醫院實例的最終適配器模型Fig.3 The final AM model for the online hospital example
本文首先提出了SBA模型以形式化描述服務的簽名和行為信息,并基于SBA模型給出了多個服務之間相容性的分析方法。對于不相容的情況,則給出了自動生成適配器模型以及對得到的適配器模型進行約簡的方法。通過一個實例分析說明本文所提方法的可行性。與已有服務適配方法相比,該方法針對的是多個服務交互的復雜場景,通過該方法生成的適配器可以消除多個服務之間在簽名層和行為層上的不相容,以支持服務組合的正確執行。此外,通過對適配器模型進行約簡以去除BPEL不能執行的部分,使得約簡后的適配器模型可以直接映射生成適配器BPEL代碼。
[1]朱勇,羅軍舟,李偉.一種工作流環境下能耗感知的多路徑服務組合方法[J].計算機學報,2012,35(3):627-638.
Zhu Yong,Luo Jun-zhou,Li Wei.An approach for energy aware multipath service composition based on workflow[J].Chinese Journal of Computers,2012,35(3):627-638.
[2]龍軍,劉昕民,袁鑫攀,等.一種基于信任推理與演化的Web服務組合策略[J].計算機學報,2012,35(2):298-314.
Long Jun,Liu Xin-min,Yuan Xin-pan,et al.A web services composition strategy based on trust reasoning and evolution[J].Chinese Journal of Computers,2012,35(2):298-314.
[3]肖芳雄,李燕,黃志球,等.基于時間概率代價進程代數的Web服務組合建模和分析[J].計算機學報,2012,35(5):918-936.
Xiao Fang-xiong,Li Yan,Huang Zhi-qiu,et al. Modeling and analyzing web services composition using timed probabilistic priced process slgebra[J]. Chinese Journal of Computers,2012,35(5):918-936.
[4]Li Gang,Han Yan-bo,Wang Jing,et al.Facilitating dynamic service compositions by adaptable service connectors[J].International Journal of Web Services Research,2006,3(1):68-84.
[5]Dumas M,Benatallah B,Nezhad H R M.Web service protocols:Compatibility and adaptation[J]. IEEE Data Engineering Bulletin,2008,31(3):40-44.
[6]張廣泉,戎玫,王昇.時間感知Web服務交互行為建模與失配檢測方法研究[J].電子學報,2011,39(11):2568-2575.
Zhang Guang-quan,Rong Mei,Wang Sheng.Research on interaction modeling and mismatch checking of time-aware web services[J].Acta Electronica Sinica,2011,39(11):2568-2575.
[7]Ponnekanti S,Fox A.Interoperability among independently evolving web services[C]∥Proc of the 5th International Middleware Conference.LNCS 3231,Berlin:Springer-Verlag,2004:331-351.
[8]Fuchs M.Adapting web services in a heterogeneous environment[C]∥Proc of the 2th IEEE International Conference on Web Services(ICWS 2004). Washington DC:IEEE Computer Society,2004:656-664.
[9]Brogi A,Popescu R.Automated generation of BPEL adapters[C]∥Proc of the 4th International Conference on Service-Oriented Computing(ICSOC 2006).LNCS 4294,Berlin:Springer-Verlag, 2006:27-39.
[10]Seguel R,Eshuis R,Grefen P.Generating minimal protocol adaptors for loosely coupled services[C]∥Proc of the 8th IEEE International Conference on Web Services(ICWS 2008).Washington DC:IEEE Computer Society,2010:417-424.
[11]Benatallah B,Casati F,Grigori D,et al.Developing adapters for web services integration[C]∥Proc of the International Conference on Advanced Information Systems Engineering(CAiSE 2005).Berlin:Springer-Verlag,2005:415-429.
[12]Nezhad H R M,Benatallah B,Martens A,et al. Semi-automated adaptation of service interactions[C]∥Proc of the 16th International Conference on World Wide Web.New York:ACM 2007:993-1002.
[13]Bordeaux L,Salaün G,Berardi D,et al.When are two web services compatible?[C]∥Proc of the TES.Berlin:Springer,2004:15-28.
[14]Van der Aalst WMP,Mooij A J,Stahl C,et al. Service interaction:Patterns,formalization,and analysis[C]∥Proc of the 9th International School on Formal Methods for the Design of Computer,Communication,and Software Systems(SFM 2009). LNCS 5569,Berlin:Springer,2009:42-88.
[15]Zhou Z,Bhiri S,Gaaloul W,et al.Developing process mediator for supporting mediated web service interactions[C]∥Proc of the 6th IEEE European Conference on Web Services(ECOWS 2008). Washington,DC:IEEE Computer Society 2008:155-164.
[16]Carlos Canal,Pascal Poizat,Gwen Salaün.Model-Based adaptation of behavioral mismatching components[J].IEEE Transaction on Software Engineering,2008,34(4):546-563.