国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      web服務(wù)中的安全互操作性的制作方法

      文檔序號:7873624閱讀:245來源:國知局
      專利名稱:web服務(wù)中的安全互操作性的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明主要涉及web服務(wù),尤其涉及web服務(wù)中的互操作性。
      背景技術(shù)
      web服務(wù)是與因特網(wǎng)上的分布式計(jì)算的 流并進(jìn)的基本構(gòu)件塊。開放標(biāo)準(zhǔn)和對軟件應(yīng)用程序中通信和協(xié)作的注重已經(jīng)創(chuàng)建了這樣的環(huán)境,即web服務(wù)正變成選擇應(yīng)用程序集成的平臺。應(yīng)用程序是通過使用來自各種來源的多個(gè)web服務(wù)而構(gòu)造的,這些來源共同作用,而不管它們駐留于何處,也不管它們是如何被實(shí)現(xiàn)的。web服務(wù)代表這樣的箱功能,其可被使用或被重復(fù)使用,而不必了web服務(wù)的內(nèi)部工作方式。web服務(wù)體系結(jié)構(gòu)的其中一個(gè)主要優(yōu)點(diǎn)是該體系結(jié)構(gòu)允許在不同平臺上用不同語言寫的web服務(wù)通過消息簡易地相互通信。而且,大 的企業(yè)和公司已經(jīng)擁有web基礎(chǔ)設(shè)施以及對維護(hù)這樣的基礎(chǔ)設(shè)施有專業(yè)知識和豐經(jīng)驗(yàn)的人員,從而這就允許對作為將來應(yīng)用程序平臺的web服務(wù)的更可改變的采用。
      web服務(wù)的示例包括可容易地合并到應(yīng)用程序中的信息源,諸如股價(jià)、天氣預(yù)報(bào)、體育比賽得分等等。除信息源之外,我們可象整個(gè)這樣的應(yīng)用程序類,其可從web服務(wù)中構(gòu)建,用于分析并聚集興趣的人所需要的信息,并將該信息提供給該興趣的人。例如,考慮概括某人整個(gè)財(cái)政描述的電子表格股、401K、銀行帳戶、貸款等等。若這一信息通過web服務(wù)是可用的,則電子表格應(yīng)用程序可連續(xù)更新該信息。雖然現(xiàn)在絕大多數(shù)的信息現(xiàn)在是以不調(diào)和且偶然元素的混合在web上可用的,但是web服務(wù)可使對所有信息的程序設(shè)計(jì)訪問變得更簡單和更可靠。
      web服務(wù)是多樣的,但是幾乎所有的web服務(wù)都有以下三個(gè)共同點(diǎn)(1)web服務(wù)通過標(biāo)準(zhǔn)協(xié)議經(jīng)由一組接口而將有用的功能展示給用戶,該協(xié)議如簡單對象訪問協(xié)議(SOAP);(2)web服務(wù)使用web服務(wù)描述語言(WSDL)描述文檔中的接口集,被稱作web服務(wù)合約,它在寫的時(shí)候是足夠詳細(xì)的,以允許用戶構(gòu)建與web服務(wù)進(jìn)行交談的客戶端應(yīng)用程序;以及(3)web服務(wù)被注冊,這樣以使?jié)撛谟脩艨墒褂猛ㄓ冒l(fā)現(xiàn)描述和集成(UDDI)而簡單找到web服務(wù)。換言之,web服務(wù)是通過特定協(xié)議展示在web上、以特定的WSDL合約描述、并在UDDI的特定位置處注冊的一段軟件。
      如上所述,WSDL合約足夠詳細(xì)的描述了web服務(wù)接口,以允許用戶構(gòu)建客戶端應(yīng)用程序。更具體的說,WSDL合約是描述以特定協(xié)議寫的一組消息以及這些消息將如何被交換的文檔。換言之,WSDL合約根據(jù)web服務(wù)可生成并接受的消息而描述web服務(wù)接口。WSDL合約是可讀且可編輯的,但在絕大多數(shù)的情況下,WSDL合約要由軟件產(chǎn)生并消耗。
      為了WSDL合約的價(jià)值,考慮需要調(diào)用由用戶的商務(wù)伙伴之一提供的web服務(wù)中的方法的用戶。用戶可從商務(wù)伙伴獲取由該方法生成并接受的樣本消息。然后,用戶可繼續(xù)寫應(yīng)用程序,以產(chǎn)生并消耗那些看起來像給定樣本消息的消息。然而,這個(gè)技術(shù)卻是充滿錯(cuò)誤的。例如,用戶可能在消息中看到客戶標(biāo)識“2837”,并假定該標(biāo)識是整數(shù),而它事實(shí)上卻是串。WSDL合約以不含糊的表示法指定請求消息必須包含什么以及響應(yīng)消息看起來像什么。
      WSDL合約用來描述消息格式的表示法是基于XML模式標(biāo)準(zhǔn)的,它不依靠任何特定的編程語言,且其適用于描述可從多種平臺和編程語言訪問的web服務(wù)接口。除描述消息內(nèi)容之外,WSDL合約定義服務(wù)在何處是可用的,以及可使用何種通信協(xié)議來與服務(wù)交談。這樣,WSDL合約應(yīng)定義寫應(yīng)用程序以同web服務(wù)一起工作所需的所有東西。
      令人遺的是,WSDL合約缺乏精確定義應(yīng)用程序如何與web服務(wù)交互的表達(dá)能力。盡管術(shù)語“合約”意指兩個(gè)軟件實(shí)體間的綁定協(xié)定,但是與web服務(wù)交互的應(yīng)用程序完全可以忽略WSDL合約的條款。這樣,WSDL合約只像個(gè)紙老虎。

      圖1所示的系統(tǒng)100更詳細(xì)地闡明了這個(gè)問題。
      系統(tǒng)100包括客戶機(jī)102,它是訪問由局域網(wǎng)或諸如因特網(wǎng)等廣域網(wǎng)上的另一臺計(jì)算機(jī),如服務(wù)器106提供的共享網(wǎng)絡(luò)資源的計(jì)算機(jī)。許多web服務(wù)108、110被靜態(tài)地儲存在客戶機(jī)102和服務(wù)器106中。web服務(wù)108、110是由程序108A、110A和WSDL合約108B-110B組成的。
      每個(gè)WSDL合約可被劃分為兩個(gè)主要部分。第一部分包含抽象定義,而第二部分包含具體描述。抽象定義以平臺相關(guān)和語言相關(guān)的方式定義了合約元素。抽象定義不包含機(jī)器專用或語言專用的元素。這就幫助定義了幾個(gè)不同網(wǎng)站可實(shí)現(xiàn)的一組服務(wù)。站點(diǎn)專用的元素,如數(shù)據(jù)串行化,被歸入具體描述中。抽象定義包括類型、消息和端口類型的定義。具體描述指定綁定和服務(wù)。類型部分聲明了用在WSDL合約中的數(shù)據(jù)類型。消息部分定義了操作(即方法的參數(shù))。端口類型部分定義了可由對WSDL合約描述的web服務(wù)外部的應(yīng)用程序(和其它web服務(wù))調(diào)用的一個(gè)或多個(gè)操作。綁定部分可具有一個(gè)或多個(gè)綁定元素,其目的是指定對操作的每個(gè)調(diào)用和響應(yīng)是如何依照協(xié)議而通過網(wǎng)絡(luò)104被發(fā)送和接收的。服務(wù)部分具有一個(gè)或多個(gè)服務(wù)元素,每個(gè)元素包含端口元素,而且每個(gè)元素進(jìn)而指該綁定部分中的綁定元素。
      結(jié)構(gòu)112闡明合約108B的合約元素之間的關(guān)系,且以框圖的形式示出。端口類型112D聲明許多操作元素。端口類型內(nèi)的操作元素定義了用于調(diào)用端口類型內(nèi)聲明的諸如準(zhǔn)備操作112E、“做工作”操作112F,以及“清理”操作112G等所有方法的句法。這樣,端口類型內(nèi)的每個(gè)操作元素定義了方法名稱、參數(shù)(使用消息),以及每個(gè)參數(shù)的類型。WSDL合約中可能有幾種端口類型。每個(gè)端口類型將許多相關(guān)的操作組合在一起。
      綁定元素112C指定要用于端口類型112D的每個(gè)操作112E-112G的協(xié)議、串行化和編碼。端口元素112B通過使用統(tǒng)一資源定位器(URL)將因特網(wǎng)位置與一對一對應(yīng)關(guān)系的綁定112C相關(guān)聯(lián)。服務(wù)元素112A包含一組端口元素,像端口112B。WSDL合約中可以有不止一個(gè)服務(wù)元素。每個(gè)服務(wù)元素可用來根據(jù)URL目的地而將端口組合在一起。例如,開發(fā)者可簡單地通過使用另一個(gè)服務(wù)元素而重定向所有服務(wù)請求,而且外部web服務(wù)可仍舊與web服務(wù)交互。服務(wù)元素的另一個(gè)用途是根據(jù)底層協(xié)議而對端口進(jìn)行分類。例如,開發(fā)者可將所有的HTTP端口置于一個(gè)服務(wù)元素中,而將所有的SMTP端口置于另一個(gè)服務(wù)元素中。然后,外部web服務(wù)可搜索關(guān)于匹配其可處理的協(xié)議的服務(wù)的WSDL合約108B。
      如上面所指出的,WSDL合約108B包括幾個(gè)操作,如“準(zhǔn)備”操作112E、“做工作”操作112F,以及“清理”操作112G,它們可被調(diào)用以訪問由web服務(wù)108提供的服務(wù)。然而,“準(zhǔn)備”操作112E應(yīng)在“做工作”操作112F之前被調(diào)用,而“做工作”操作112F應(yīng)在“清理”操作112G的調(diào)用之前被調(diào)用?,F(xiàn)有WSDL合約缺少表達(dá)能力來將該排序信息傳達(dá)給期望web服務(wù)108的服務(wù)的其它web服務(wù),如web服務(wù)110。例如,web服務(wù)110可選擇最初調(diào)用“清理”操作112G,而不是首先調(diào)用準(zhǔn)備操作112E。這對web服務(wù)108的工作而言可能是災(zāi)難性的,原因是其可能破壞web服務(wù)108的內(nèi)部執(zhí)行狀態(tài)。而且,假設(shè)web服務(wù)110是有惡意的。在這種情況下,web服務(wù)110可通過將操作112E-112G調(diào)用到序列外而惡意利用web服務(wù)108的這個(gè)弱點(diǎn),來簡單對web服務(wù)108的正確操作造成嚴(yán)重?fù)p壞。若web服務(wù)能以這種方式被不恰當(dāng)?shù)貝阂饫?,則web服務(wù)的可信賴度將會被置疑,且它們的用途將減少并最終從市場上消失。
      這樣,需要更好的方法和系統(tǒng),允許web服務(wù)與其它web服務(wù)安全地交互,而同時(shí)避免或減少與現(xiàn)有web服務(wù)相關(guān)的前述以及其它問題。
      發(fā)明概述依照本發(fā)明,本發(fā)明的方法形式是用于核查第一web服務(wù)的第一端口類型和第二web服務(wù)的第二端口類型的兼容性的計(jì)算機(jī)可實(shí)現(xiàn)方法。該方法包含從第一web服務(wù)的第一端口類型中提取第一安全性,從第二web服務(wù)的第二端口類型中提取第二安全性。該方法還包含通過將第一安全性與第二安全性綁定起來,以確定綁定的結(jié)果是否產(chǎn)生web服務(wù)之間的互操作性,來測試第一安全性與第二安全性的兼容性。
      依照本發(fā)明,提供用于改善web服務(wù)的安全互操作性的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的系統(tǒng)形式包含用于提供計(jì)算服務(wù)的第一web服務(wù)以及需要由第一web服務(wù)提供的計(jì)算服務(wù)的第二web服務(wù)。第一web服務(wù)包括用于發(fā)送并接收消息的第一端口,第二web服務(wù)包括用于發(fā)送并接收消息的第二端口。第一端口包括第一端口類型,而第二端口包括第二端口類型。若第二端口類型與第一端口類型兼容的話,則第二端口可與第一端口結(jié)合起來,便于對由第一web服務(wù)提供的服務(wù)進(jìn)行安全訪問。
      依照本發(fā)明的另一方面,本發(fā)明的另一種系統(tǒng)形式包含提供第一組服務(wù)的第一web服務(wù),提供第二組服務(wù)的第二web服務(wù)。第一web服務(wù)包括第一安全性(其編程上表達(dá)了對第一組服務(wù)的安全訪問),第二web服務(wù)包括第二安全性(其編程上表達(dá)了對第二組服務(wù)的安全訪問)。若第二安全性能編程與第一安全性編程上對齊的話,第二web服務(wù)訪問第一組服務(wù),而第一web服務(wù)訪問第二組服務(wù)。
      依照本發(fā)明的又一方面,本發(fā)明的另一種系統(tǒng)形式包含提供服務(wù)的第一web服務(wù)。第一web服務(wù)包括編程上描述訪問提供的服務(wù)的次序的安全性。該系統(tǒng)還包含第二web服務(wù),其需要使用由第一web服務(wù)提供的服務(wù)。第二web服務(wù)接受第一web服務(wù)的安全性,以形成與第一web服務(wù)的虛擬合約,這樣以使第二web服務(wù)可訪問所提供的服務(wù)。
      依照本發(fā)明的再一方面,本發(fā)明的計(jì)算機(jī)可讀形式儲存可定制的、基于標(biāo)簽的數(shù)據(jù)結(jié)構(gòu),其適合由web服務(wù)來使用,以評估與另一個(gè)web服務(wù)的安全互操作性。更具體地說,該數(shù)據(jù)結(jié)構(gòu)包含表示能由web服務(wù)調(diào)用的操作的端口類型標(biāo)簽,以及表示編程上指定web服務(wù)調(diào)用操作的次序的安全性的安全性標(biāo)簽。
      依照本發(fā)明的還有一個(gè)方面,本發(fā)明的方法形式可在計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)。該方法包含創(chuàng)建能由web服務(wù)調(diào)用的一組操作,并創(chuàng)建指定該組操作的可允許調(diào)用排列的安全性。
      附圖的簡要描述通過參考下面的詳細(xì)說明,并結(jié)合附圖,前述方面以及本發(fā)明的許多伴隨優(yōu)點(diǎn)將被更容易認(rèn)識到并能被更好地理解,附圖中圖1是示出傳統(tǒng)web服務(wù)系統(tǒng)的框圖;圖2是示出示例性計(jì)算裝置的框圖;圖3A-3C是示出創(chuàng)建web服務(wù)規(guī)范的框圖,該web服務(wù)包含定義調(diào)用web服務(wù)操作的次序的安全性;圖4是示出示例性編程語言的句法的文本圖,其是可用于定義指令序列的人工語言,該指令序列最終被處理并執(zhí)行,用于表達(dá)用在web服務(wù)間互操作性協(xié)定中的安全性;圖5A-5C是示出當(dāng)兩個(gè)web服務(wù)的端口已經(jīng)依照它們之間的虛擬合約形式結(jié)合時(shí),這兩個(gè)web服務(wù)的安全互操作性的框圖;圖6A-6I是示出創(chuàng)建三個(gè)web服務(wù)間的安全互操作性的虛擬合約的框圖,每個(gè)web服務(wù)向虛擬合約中另一個(gè)web服務(wù)提供服務(wù)或資源;圖7A-7B是示出另一個(gè)示例性編程語言的句法的框圖,其用于形成用于web服務(wù)間的互操作性協(xié)議的安全性;以及圖8A-8O是示出依照本發(fā)明形成的示例性方法的方法圖,其用于驗(yàn)證web服務(wù)間端口類型的兼容性,以形成web服務(wù)間的安全互操作性。
      較佳實(shí)施例的詳細(xì)描述圖2示出了適合實(shí)現(xiàn)本發(fā)明某些方面的計(jì)算系統(tǒng)環(huán)境200的示例,比如執(zhí)行web服務(wù)的程序并驗(yàn)證web服務(wù)的規(guī)范以確認(rèn)安全互操作性。計(jì)算系統(tǒng)環(huán)境200僅是合適計(jì)算環(huán)境的一個(gè)示例,且其不對本發(fā)明的使用范圍或功能做任何限制。計(jì)算環(huán)境200也不應(yīng)被釋為對舉例說明并描述的組件的任一個(gè)或其組合有任何依存關(guān)系或需求。
      本發(fā)明可用于多個(gè)其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置中。眾所周知的可適用于本發(fā)明的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不局限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、微處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包括任何上述系統(tǒng)或設(shè)備的分布計(jì)算環(huán)境,等等。
      本發(fā)明是用諸如可由計(jì)算機(jī)執(zhí)行的程序模塊這樣的計(jì)算機(jī)可執(zhí)行指令的通用上下文來說明的。通常,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu),等等,其執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。
      本發(fā)明也可在分布計(jì)算環(huán)境中實(shí)現(xiàn),其中任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理裝置來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可位于本地或遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中,這包括存儲器存儲設(shè)備。
      圖2中示出的計(jì)算系統(tǒng)環(huán)境包括形式為計(jì)算機(jī)210的通用計(jì)算裝置。計(jì)算機(jī)210的組件可包括,但不局限于,處理單元220、系統(tǒng)存儲器230、以及將包括系統(tǒng)存儲器在內(nèi)的各個(gè)系統(tǒng)組件合到處理單元220的系統(tǒng)總線221。系統(tǒng)總線221可以是幾種類型總線結(jié)構(gòu)的任一種,這包括存儲器總線或存儲器控制器、外圍總線,以及使用任何多種總線體系結(jié)構(gòu)的局部總線。作為例子,但并非限制,這樣的總線體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、強(qiáng)型ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局部總線,以及外圍組件互連(PCI)總線,也稱為Mazzanine總線。
      計(jì)算機(jī)210通常包括多種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)210訪問的任何可用介質(zhì),其包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為例子,但并非限制,計(jì)算機(jī)可讀介質(zhì)可包含計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)。計(jì)算存儲介質(zhì)包括易失性和非易失性、可移動和不可移動介質(zhì),其以諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)這樣的信息存儲的任何方法和技術(shù)來實(shí)現(xiàn)。計(jì)算機(jī)存儲介質(zhì)包括,但不局限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、盒式磁帶、磁帶、磁盤存儲或其它磁存儲設(shè)備,或者任何其它計(jì)算機(jī)存儲介質(zhì)。通信介質(zhì)通常包含已調(diào)制數(shù)據(jù)信號中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),該已調(diào)制數(shù)據(jù)信號如包括任何信息遞送介質(zhì)的載波或其它傳送機(jī)制。術(shù)語“已調(diào)制數(shù)據(jù)信號”意指其一個(gè)或多個(gè)特征以對信號中的信息進(jìn)行碼的方式來設(shè)為或改變的信號。作為例子,但并非限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或單線連接,以及無線介質(zhì),如聲學(xué)、RF、紅外和其它無線介質(zhì)。任何上述組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
      系統(tǒng)存儲器230包括計(jì)算機(jī)存儲介質(zhì),其形式為易失性和/或非易失性存儲器,如只讀存儲器(ROM)231和隨機(jī)存取存儲器(RAM)232?;据斎?輸出系統(tǒng)233(BIOS)包含基本例程,該例程如在啟動間幫助在計(jì)算機(jī)210內(nèi)的元件之間傳遞信息,該基本輸入/輸出系統(tǒng)233(BIOS)通常儲存在ROM 231中。RAM 232通常包含可由處理單元220立即存取和/或當(dāng)前正由處理單元220操作的數(shù)據(jù)和/或程序模塊。作為例子,但并非限制,圖2示出了操作系統(tǒng)234、應(yīng)用程序235、其它程序模塊236以及程序數(shù)據(jù)237。
      計(jì)算機(jī)210也可包括其它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存儲介質(zhì)。僅作為例子,圖2示出對不可移動、非易失性磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動器241、對可移動、非易失性磁盤252進(jìn)行讀寫的磁盤驅(qū)動器251、以及對諸如CD-ROM或其它光介質(zhì)這樣的可移動、非易失性光盤256進(jìn)行讀寫的光盤驅(qū)動器255。可用于示例性操作環(huán)境中的其它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存儲介質(zhì)包括,但不局限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器241通常通過諸如接口240這樣的不可移動存儲器接口與系統(tǒng)總線221相連,而磁盤驅(qū)動器251和光盤驅(qū)動器255通常通過諸如接口250這樣的可移動存儲器接口與系統(tǒng)總線221相連。
      上述在圖2中示出的驅(qū)動器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲介質(zhì)為計(jì)算機(jī)210提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖2中,硬盤驅(qū)動器241被示出為儲存操作系統(tǒng)244、應(yīng)用程序245、其它程序模塊246以及程序數(shù)據(jù)247。注意,這些組件或者與操作系統(tǒng)234、應(yīng)用程序235、其它程序模塊236以及程序數(shù)據(jù)237相同,或者與其相異。操作系統(tǒng)244、應(yīng)用程序245、其它程序模塊246,以及程序數(shù)據(jù)247在這里被賦予不同的標(biāo)號,用以闡明它們至少是不同的本。用戶可通過諸如盤262和定點(diǎn)設(shè)備261這樣的輸入設(shè)備將命令和信息輸入到計(jì)算機(jī)210中,定點(diǎn)設(shè)備261一般指鼠標(biāo)、跟蹤球或觸摸墊。其它的輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星電視天線、掃描儀等等。這些和其它的輸入設(shè)備通常通過合到系統(tǒng)總線的用戶輸入接口260與處理單元220相連,但是其也可用其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或者通用串行總線(USB)。監(jiān)視器291或其它類型的顯示設(shè)備也通過諸如視頻接口290這樣的接口與系統(tǒng)總線221相連。除監(jiān)視器之外,計(jì)算機(jī)也可包括其它外圍輸出設(shè)備,如揚(yáng)聲器297和打印機(jī)296,其可通過輸入/輸出外圍接口295連接。
      計(jì)算機(jī)210可在使用到諸如遠(yuǎn)程計(jì)算機(jī)280這樣的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接的網(wǎng)絡(luò)化環(huán)境中工作。該遠(yuǎn)程計(jì)算機(jī)280可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或者其它公用網(wǎng)絡(luò)節(jié)點(diǎn),其通常包括許多或所有上述相對計(jì)算機(jī)210描述的元件,盡管在圖2中僅示出了存儲器存儲設(shè)備281。圖2中描述的邏輯連接包括局域網(wǎng)(LAN)271和廣域網(wǎng)(WAN)273,但是其也可包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)。
      當(dāng)在LAN網(wǎng)絡(luò)化環(huán)境中使用時(shí),計(jì)算機(jī)210通過網(wǎng)絡(luò)接口或適配器270與LAN 271相連。當(dāng)在WAN網(wǎng)絡(luò)化環(huán)境中使用時(shí),計(jì)算機(jī)210通常包括調(diào)制調(diào)器272或用于通過諸如因特網(wǎng)這樣的WAN 273建立通信的其它裝置。調(diào)制調(diào)器270可以是內(nèi)置或外置的,它可通過輸入/輸出外圍接口295或者其它適當(dāng)?shù)臋C(jī)制與系統(tǒng)總線221相連。在網(wǎng)絡(luò)化環(huán)境中,相對計(jì)算機(jī)210描述的程序模塊或其部分可儲存在遠(yuǎn)程存儲器存儲裝置中。作為例子,但并非限制,圖2示出遠(yuǎn)程應(yīng)用程序285駐留在存儲器設(shè)備281中。應(yīng)當(dāng)認(rèn)識到,所示網(wǎng)絡(luò)連接僅是說明性的,也可使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。
      圖3B示出web服務(wù)300,它包括程序300A,其是可由計(jì)算裝置執(zhí)行的web服務(wù)300的指令序列,并包括規(guī)范300B(在圖中以“規(guī)范”示出),其是web服務(wù)300的接口描述。規(guī)范300B與WSDL合約不同,其包含描述外部web服務(wù)可調(diào)用web服務(wù)300操作的次序的安全規(guī)則(以下稱“安全性”)。換言之,每個(gè)安全性描述了web服務(wù)300操作的容許或準(zhǔn)許調(diào)用排列,使用該調(diào)用排列,外部web服務(wù)可調(diào)用以對由web服務(wù)300提供的服務(wù)進(jìn)行訪問。若這些安全性對渴望使用web服務(wù)300的服務(wù)的外部web服務(wù)是不可接受的,則將不形成任何虛擬合約。否則,若安全性對外部web服務(wù)是可接受的,則將形成虛擬合約,且外部web服務(wù)和web服務(wù)300之間的安全互操作性是可能的。
      闡明web服務(wù)300的結(jié)構(gòu)302的框圖在圖3A中示出。服務(wù)元素302A通過將一組端口(未示出)組合在一起而分類地區(qū)分由規(guī)范300B所描述的其它服務(wù)。每個(gè)端口與端口類型相關(guān)聯(lián)。結(jié)構(gòu)302具有端口類型302B。端口類型302B聲明許多操作,如準(zhǔn)備操作302D、做工作操作302E,以及清理操作302F。為清楚起見,在下面的討論中使用下述術(shù)語術(shù)語“操作”可與術(shù)語“消息”互換使用(相反,WSDL合約中的術(shù)語“消息”僅指操作的自變量);術(shù)語“參數(shù)”用于表示操作的自變量;術(shù)語“綁定”用于指兩個(gè)安全性之間的編程關(guān)系,其在下面釋(相反,WDSL合約中的術(shù)語“綁定”指端口類型與特定傳送協(xié)議的關(guān)聯(lián))。
      操作302D-302F被調(diào)用的次序是由安全性302C指定的,其具有下面的形式(1)S=prepare.SW;以及(2)SW=(dowork).SW+(cleanup)。安全性302C由規(guī)范300B的部分304來文本地表達(dá)。見圖3C。行304A包含關(guān)字端口類型,其聲明有關(guān)端口類型定義的開始;標(biāo)志符“start_work_stop”,其是端口類型的名稱;以及打開花括號“{”,其具有與之匹配的關(guān)閉花括號“}”,以限定編程上定義端口類型的文本塊。行304B聲明準(zhǔn)備(prepare)操作302D,其采用串作為參數(shù)。行304C聲明做工作(dowork)操作302E及其參數(shù)—串。行304C聲明具有串參數(shù)的清理(cleanup)操作302F。
      行304B-304D上聲明的這些操作是對外部web服務(wù)可用的操作,以使它們能夠訪問web服務(wù)300的服務(wù)。對某些web服務(wù)而言,為了與這些web服務(wù)的正確互操作性,操作應(yīng)被以特定的次序被調(diào)用。例如,在web服務(wù)300中,準(zhǔn)備操作302D應(yīng)在做工作操作302E之前被調(diào)用,而做工作操作302E應(yīng)在清除操作302F調(diào)用之前被調(diào)用。為允許傳達(dá)這個(gè)排序信息,可依本發(fā)明形成一個(gè)或多個(gè)安全性。見行304E、304F。安全性的排列細(xì)微差別可使用圖4中所示的人類可讀句法400(下文描述)或圖7A中所示的模型句法702(下文描述)來表達(dá)。
      行304E、304F上的安全性是用兩條語句表達(dá)的(1)S=prepare.SW;以及(2)SW=(dowork).SW+(cleanup)。字母S是第一安全性的名稱,字母W是第二安全性的名稱。每個(gè)等號“=”表示安全性等同于等號“=”右邊的規(guī)則。在安全性S的句點(diǎn)“.”之前是準(zhǔn)備操作302D,其表示準(zhǔn)備操作302D要首先被調(diào)用,之后安全性SW生效。在做工作操作302E之后但在安全性SW之前的句點(diǎn)“.”表示做工作操作302E是在安全性SW的遞歸可能出現(xiàn)之后調(diào)用的。換言之,做工作操作302E之后的短語“.SW”表示沒有或有幾個(gè)做工作操作302E的調(diào)用是可能的。加號“+”表示做工作操作302E或者清理操作302F可在準(zhǔn)備操作302D的調(diào)用之后被調(diào)用。放置在安全性SW語句最后的清理操作302F表示清理操作302F應(yīng)被最后調(diào)用或由使用web服務(wù)300的服務(wù)的外部web服務(wù)調(diào)用。安全性S和SW之后的每個(gè)分號“;”表示行304E、304F上的安全性的語句終止。
      端口類型和安全性可使用人類可讀的句法400來表達(dá),其在圖4中示出(之后,它們可較佳地被放置在像規(guī)范300B這樣的web服務(wù)規(guī)范中)。行400A包含有關(guān)端口的定義端口類型標(biāo)志符{簽名*;安全性;},其中端口類型是聲明端口類型定義開始的關(guān)鍵字;標(biāo)志符是端口類型的標(biāo)識符;打開和關(guān)閉花括號對限定定義端口類型的表達(dá)式;安全性表示定義調(diào)用由簽名所描述操作次序的規(guī)則。每個(gè)簽名(可能有不止一個(gè),其用星號“*”表示)具有句法表達(dá)式“標(biāo)志符([標(biāo)志符線性類型,標(biāo)志符線性類型])”,如行400B所示,其中,第一標(biāo)志符是特定操作的標(biāo)識符;由圓括號對界定的第二和第三標(biāo)志符表示操作參數(shù)標(biāo)識符;且兩個(gè)線性類型定義了每個(gè)參數(shù)的數(shù)據(jù)類型(為簡單起見,對于行400B上的簽名僅定義兩個(gè)參數(shù)槽(parameter slot),但是可能有不止兩個(gè));冒號“”表示位于冒號左邊的參數(shù)標(biāo)志符具有冒號右邊聲明的數(shù)據(jù)類型;逗號“,”將一個(gè)參數(shù)與另一個(gè)參數(shù)劃分開來;圓括號對“()”限定由操作使用的參數(shù)及其類型。
      行400C-400I定義了不同的安全性類型。停止安全性在行400C處聲明。停止安全性表示安全性的靜止或停止。行400D上聲明的順序安全性定義調(diào)用web服務(wù)的操作或消息的次序。行400E上聲明的選擇安全性表示可在安全性中選擇的備選方案。在行400G中,并行安全性被定義,以表示兩個(gè)安全性的并發(fā)、分布式處理。遞歸安全性定義其用途是安全性遞歸的變量,其在行400H上聲明。在行400I上聲明的參考安全性表示安全性可被賦予要與其它安全性組合使用的名稱。行400J示出停止安全性是由符號零“0”組成的。順序安全性是由函數(shù)簽名及其后的句點(diǎn)“.”組成的,該句點(diǎn)后面是另一個(gè)安全性。見行400K。選擇安全性是由兩個(gè)安全性組成的,其由加號“+”分隔(見行400L)。在行400N上定義的并行安全性是由兩個(gè)安全性組成的,其由垂直線符號“|”分隔開來。遞歸安全性是由關(guān)鍵字“rec”及其后界定標(biāo)志符的一對圓括號組成的,而且其后面是句點(diǎn)和另一個(gè)安全性規(guī)則。見行400O。使用遞歸安全性,安全性(S=prepare.SW;SW=(dowork).SW+(cleanup))可被等同地寫為安全性(prepare.rec(SW).((dowork).SW+(cleanup)))。行400P表示參考安全性僅僅是標(biāo)志符,它是名稱或標(biāo)識符。
      使用人類可讀句法400,安全性的表達(dá)細(xì)微差別可被指定,以增強(qiáng)web服務(wù)中的安全互操作性。每個(gè)安全性較佳地被放置在web服務(wù)規(guī)范的端口類型定義中。為便于討論圖4以后的附圖,在這里示出人類可讀句法400。更受限制的但同等具有表達(dá)性的是圖7A中所示的模型句法702(下文描述)。人類可讀句法和模型句法702均可使用合適的可定制、基于標(biāo)簽的語言而形成??墒褂萌魏魏线m的可定制、基于標(biāo)簽的語言。一個(gè)合適的語言包括XML模式語言。通過使用可定制、基于標(biāo)簽的語言,依本發(fā)明形成的安全性可適合WSDL合約的現(xiàn)有端口類型定義。
      文件服務(wù)器web服務(wù)502在圖5A中以框圖形式示出。文件服務(wù)器web服務(wù)提供有關(guān)網(wǎng)絡(luò)上其它web服務(wù)的文件存儲服務(wù)。不像磁盤服務(wù)器,文件服務(wù)器web服務(wù)502不僅儲存文件,而且對它們進(jìn)行管理,并當(dāng)其它web服務(wù)請求文件并對其進(jìn)行改變時(shí)維持順序。為處理操作有關(guān)文件的多個(gè)(有時(shí)是同時(shí)的)請求的任務(wù),web服務(wù)502與處理器和控制軟件以及用于存儲的磁盤驅(qū)動器交互。
      文件服務(wù)器web服務(wù)502包括服務(wù)元素502A、端口類型502B以及其它元素(未示出)。端口類型502B定義多個(gè)操作,如打開操作502D、讀操作502E、寫操作502F以及關(guān)閉操作502G。這些操作502D-502G在文件服務(wù)器web服務(wù)規(guī)范的部分504中進(jìn)一步定義。見圖5B。端口類型502B也定義安全性502C,其指定外部web服務(wù)通過操作502D-502G來訪問由文件服務(wù)器web服務(wù)502D提供的服務(wù)的次序。安全性502C在部分504中進(jìn)一步定義。見行504F、504G。文件服務(wù)器web服務(wù)502的部分502H允許其它web服務(wù)結(jié)合(下面將詳細(xì)描述),以通過調(diào)用操作502D-502G而對文件服務(wù)器web服務(wù)502B的服務(wù)進(jìn)行訪問。
      部分504注重文件服務(wù)器web服務(wù)規(guī)范的許多端口類型中的一個(gè)端口類型定義。行504A包含關(guān)字porttype(端口類型),其后是標(biāo)志符“fileserver(文件服務(wù)器)”,以及用于限定文件服務(wù)器端口類型502B的定義的一對打開和關(guān)閉花括號。行504B聲明了將文件名(filename)作為參數(shù)的打開(open)操作502D的簽名。在所有的情況下,為使用文件服務(wù)器web服務(wù)502的服務(wù),外部服務(wù)指定要通過打開操作502D而打開的文件名。這樣,打開操作502D應(yīng)當(dāng)是由外部web服務(wù)對每個(gè)特定的文件服務(wù)器會話調(diào)用的第一操作。讀(read)操作502E在行504C中聲明。讀操作將客戶機(jī)的端口(clientport)作為參數(shù)。當(dāng)讀操作502E被外部web服務(wù)調(diào)用時(shí),文件服務(wù)器web服務(wù)502從打開的文件中讀取一大塊數(shù)據(jù),并將該讀取的數(shù)據(jù)發(fā)送到給定客戶機(jī)的端口。外部web服務(wù)也可通過寫(write)操作502F將信息寫到打開的文件中,其在行504D中聲明。寫操作將數(shù)據(jù)(date)作為參數(shù)。該數(shù)據(jù)由寫操作寫到打開的文件中。當(dāng)所有需要的操作都已經(jīng)在打開的文件上實(shí)現(xiàn)時(shí),打開的文件可通過關(guān)閉(close)操作502G而被關(guān)閉,其在行504E中聲明。關(guān)閉操作502G將文件名(filename)作為自變量,以使關(guān)閉操作502G知道該關(guān)閉哪個(gè)文件。
      行504F-504G包含文件服務(wù)器端口類型502B的安全性。行504F包含安全性語句S=open.Srw,其中S是安全性規(guī)則;open表示打開(open)操作502D是要在文件服務(wù)器會話中調(diào)用的第一操作;句點(diǎn)“.”表示附加安全性要跟隨在打開操作502D的調(diào)用之后;Srw指在行504G上進(jìn)一步定義的第二安全性。行504G包含以下安全性語句Srw=read.Srw+write.Srw+close,其中,Srw表示第二安全性;read.Srw表示讀(read)操作502E的調(diào)用,其后面再次是第二安全性(遞歸);write.Srw表示寫(write)操作502F的調(diào)用;其后面遞歸跟著第二安全性;close表示關(guān)閉(close)操作502G的調(diào)用;加號“+”表示外部web服務(wù)可作出的選擇,以在讀操作502E、寫操作502F或關(guān)閉操作502G中作出調(diào)用。
      系統(tǒng)500示出在創(chuàng)建了虛擬合約之后,web服務(wù)502、508的互操作性。見圖5C。當(dāng)web服務(wù)502、508之間的端口502H、508A的端口類型兼容的時(shí),創(chuàng)建虛擬合約。更具體的說,當(dāng)端口502H、508A的端口類型的安全性對web服務(wù)502和508兩者均可接受時(shí),創(chuàng)建虛擬合約。虛擬合約并非物理退出的,而是當(dāng)端口類型的安全性以確保web服務(wù)502、508之間的安全互操作性的方式彼此對齊時(shí)出現(xiàn)的。為清楚起見,文件服務(wù)器web服務(wù)502的許多元素未在圖5C中示出。文件服務(wù)器web服務(wù)502可在諸如蜂窩電話等計(jì)算裝置上執(zhí)行;客戶機(jī)web服務(wù)508可在諸如個(gè)人數(shù)字助理510等計(jì)算裝置上執(zhí)行;儲存web服務(wù)512可在諸如臺式機(jī)514等計(jì)算裝置上執(zhí)行。
      客戶機(jī)web服務(wù)508的端口508A被示出為與文件服務(wù)器web服務(wù)502的端口502H結(jié)合的??蛻魴C(jī)web服務(wù)508和文件服務(wù)器web服務(wù)502之間的這一結(jié)合在客戶web服務(wù)508示出其愿意遵從文件服務(wù)器端口類型502B的安全性之后是可能的。隨著端口508A-502H的結(jié)合,客戶機(jī)web服務(wù)508可依照并以由文件服務(wù)器端口類型的安全性所指定方式來訪問并調(diào)用文件服務(wù)器web服務(wù)502的操作502D-502G。
      假定客戶機(jī)web服務(wù)508已經(jīng)被調(diào)用了打開操作502D,以打開文件。客戶機(jī)web服務(wù)508可調(diào)用讀操作502E,以獲取讀取的數(shù)據(jù)。在讀操作502E的調(diào)用中,客戶機(jī)web服務(wù)508提供端口508B,以在讀操作502E的調(diào)用之后接收讀取的數(shù)據(jù)。文件服務(wù)器web服務(wù)502包括端口502I,用于將讀取的數(shù)據(jù)發(fā)送到端口508B。然而,端口508B不必為客戶機(jī)web服務(wù)508處的實(shí)際端口。端口508B可由另一個(gè)web服務(wù),如儲存web服務(wù)512虛擬地提供。虛擬合約可在客戶web服務(wù)508和儲存web服務(wù)512之間形成,以用客戶機(jī)web服務(wù)508所需要的特定方式儲存信息??蛻魴C(jī)web服務(wù)并非將端口508B作為參數(shù)提供給讀操作502E,而是可提供儲存web服務(wù)512的端口512A,以使由讀操作502E所讀取的數(shù)據(jù)自動被轉(zhuǎn)發(fā)到儲存web服務(wù)512中。這可出現(xiàn),而不為文件服務(wù)器web服務(wù)502所知。這樣,每個(gè)端口就是可轉(zhuǎn)移的量,其可被給予web服務(wù),以擴(kuò)展web服務(wù)的通信概率。在這個(gè)例子中,文件服務(wù)器web服務(wù)502的現(xiàn)有范圍局限于與客戶機(jī)web服務(wù)508的交互,但是當(dāng)端口512A通過客戶機(jī)web服務(wù)508被傳遞到文件服務(wù)器web服務(wù)502時(shí),它隨后可被擴(kuò)展以包括儲存web服務(wù)512。
      web服務(wù)的連接,如文件服務(wù)器web服務(wù)502與儲存web服務(wù)512的連接,是通過使用依照本發(fā)明形成的安全性經(jīng)由虛擬合約完成的。web服務(wù)的這種連接提高了web服務(wù)的安全互操作性,以創(chuàng)建比每個(gè)web服務(wù)可單獨(dú)提供的更大的功能。此外,由于web服務(wù)的連接是編程上形成的,所以若遵從web服務(wù)安全性的話,web服務(wù)更可信、更可靠,且更有效。依照本發(fā)明形成的編程連接在面對web服務(wù)的互操作性中的無效請求或者被破壞的持久保存的數(shù)據(jù)時(shí),減少或消除了錯(cuò)誤、丟失請求、故障,。
      上述結(jié)合圖3A到3C的討論將安全性的概念引入到web服務(wù)的規(guī)范中。由于端口類型包含外部web服務(wù)可調(diào)用來訪問由所需web服務(wù)提供的服務(wù)的操作的聲明,因此安全性較佳地被放置在端口類型內(nèi)部。如同上面也已經(jīng)討論過的,安全性描述了外部web服務(wù)必須調(diào)用所需web服務(wù)的操作以獲取所需服務(wù)的次序。若外部web服務(wù)最初不能遵從另一個(gè)web服務(wù)的安全性,則在兩個(gè)web服務(wù)之間就沒有綁定協(xié)定(虛擬合約),且不遵從的web服務(wù)不能調(diào)用另一個(gè)web服務(wù)的服務(wù)。在兩個(gè)web服務(wù)之間創(chuàng)建虛擬合約的一個(gè)例子已在上面結(jié)合圖5A-5C討論。由于客戶機(jī)web服務(wù)508愿意遵從文件服務(wù)器web服務(wù)502的安全性,所以客戶機(jī)web服務(wù)508的端口508A可與文件服務(wù)器web服務(wù)502的端口502H結(jié)合。這樣的結(jié)合允許客戶機(jī)web服務(wù)器508在端口502H處調(diào)用文件服務(wù)器web服務(wù)502的服務(wù)。更具體的說,虛擬合約可在客戶機(jī)web服務(wù)508端口508A的端口類型編程上與文件服務(wù)器web服務(wù)502端口502H的端口類型兼容(或遵從其安全性)時(shí)創(chuàng)建。結(jié)合圖6A-6I的討論不是形成兩個(gè)web服務(wù)之間的虛擬合約,而是注重依照本發(fā)明形成的三個(gè)web服務(wù)(購買者web服務(wù)602、供應(yīng)商web服務(wù)606,以及發(fā)貨者web服務(wù)610)之間的綁定協(xié)定。然而,可形成虛擬合約而不考慮參與的web服務(wù)的數(shù),只要每個(gè)web服務(wù)意從其它參與web服務(wù)安全性。
      購買者web服務(wù)602包括服務(wù)元素602A和端口類型元素602B,以及其它元素中(未示出)。端口類型602B包括啟動購買(initiatepurchase)操作602D、確認(rèn)購買(confirmpurchase)操作602E,以及指定操作602D-602E的調(diào)用的安全性602C。購買者web服務(wù)602也可包括端口602F,其數(shù)據(jù)類型是端口類型602B。見圖6A。購買者web服務(wù)規(guī)范的一部分604在圖6B中示出。行604A包含關(guān)字porttype(端口類型);端口類型的標(biāo)志符“purchaser(購買者)”;以及打開花括號“{”,其具有成對的關(guān)閉花括號,以限定購買者端口類型602B的定義。行604B包含初始購買操作602D的簽名,其具有兩個(gè)參數(shù)。一個(gè)參數(shù)是購買次序參數(shù),表示為“PO”。另一個(gè)參數(shù)是提前發(fā)貨通知“~ASN”,那里代字號“~”表示購買者web服務(wù)602消耗由參數(shù)ASN所代表的數(shù)據(jù)。行604C包含確認(rèn)購買者操作602E的簽名,其采用“invoice(發(fā))”參數(shù)和“goods(貨物)”參數(shù)。發(fā)參數(shù)被代字號“~”限定,以表示購買者web服務(wù)602消費(fèi)由invoice參數(shù)所表示的數(shù)據(jù)。PO參數(shù)和goods參數(shù)均沒有被代字號限定,因此,這表明購買者web服務(wù)602是生產(chǎn)者或由這些參數(shù)所表示的數(shù)據(jù)源。行604D包含有關(guān)購買者端口類型602B的安全性。簡言之,啟動購買操作602D的調(diào)用必須在確認(rèn)購買操作602E的調(diào)用之前出現(xiàn),其后面跟隨操作602D、602E的調(diào)用遞歸。
      供應(yīng)商web服務(wù)606以框圖的形式在圖6C中示出。供應(yīng)商web服務(wù)606包括服務(wù)元素606A和端口類型元素606B,以及其它元素(未示出)。端口類型606B是有關(guān)供應(yīng)商web服務(wù)606的端口606F的數(shù)據(jù)類型。端口類型606B包含接收po(receivepo)操作606D、發(fā)送發(fā)(sendinvoice)操作606E、以及指定操作606D、606E的調(diào)用次序的安全性606C。供應(yīng)商web服務(wù)606也包括端口606F,其數(shù)據(jù)類型是端口類型606B。供應(yīng)商web服務(wù)規(guī)范的一部分608在圖6D中示出。行608A包含供應(yīng)商端口類型606B的聲明(porttype supplier),并包括打開花括號“{”,其具有成對的關(guān)閉花括號,以限定供應(yīng)商端口類型606B的定義。行608B包含接收po操作的簽名,其采用購買次序“~PO”作為參數(shù)。代字號表明供應(yīng)商web服務(wù)606消耗由購買者次序~PO參數(shù)所表示的數(shù)據(jù)。行608C包含發(fā)送發(fā)操作606E的簽名,其采用invoice(發(fā))作為參數(shù)。行608D包含有關(guān)供應(yīng)商端口類型606B的安全性。簡言之,接收po操作606D要在發(fā)送發(fā)操作606E調(diào)用之前被調(diào)用,其后可跟隨操作606D、606E的遞歸調(diào)用。
      如圖6E所示,發(fā)貨者web服務(wù)610包括服務(wù)元素610A和端口類型元素610B,以及其它元素(未示出)中。端口類型610B描述發(fā)貨者web服務(wù)610的端口610F的數(shù)據(jù)類型。端口類型610B包括發(fā)貨通知(notifyofshipment)操作610D、確認(rèn)接收(confirmreceipt)操作610E,以及指定操作610D、610E的調(diào)用次序的安全性610C。發(fā)貨者web服務(wù)規(guī)范的一部分612以文本形式在圖6F中示出。行612A包含發(fā)貨者端口類型610B的聲明(porttype shipper)和打開花括號“{”,其具有成對的關(guān)閉花括號“}”,以限定發(fā)貨者端口類型610B的定義。行612B包含發(fā)貨通知操作610D的簽名,其采用提前發(fā)貨通知“ASN”作為參數(shù)。因?yàn)樘崆鞍l(fā)貨通知ASN不由代字號限定,所以發(fā)貨者web服務(wù)610是生產(chǎn)者或由ASN參數(shù)表示的數(shù)據(jù)源。行612C包含確認(rèn)接收操作610E的簽名,其采用“~goods(貨物)”作為自變量。標(biāo)志符“goods”前的代字號表示發(fā)貨者web服務(wù)610是由“goods”參數(shù)表示的數(shù)據(jù)的消費(fèi)者。行612D包含有關(guān)發(fā)貨者端口類型610B的安全性。簡言之,發(fā)貨通知操作610D的調(diào)用發(fā)生在確認(rèn)接收操作610E的調(diào)用之前,而且之后,可發(fā)生操作610E遞歸調(diào)用。
      圖6G中示出用于表達(dá)購買者web服務(wù)602、供應(yīng)商web服務(wù)606以及發(fā)貨者web服務(wù)610的組合的程序的一部分614。行614A包含購買者web服務(wù)602的簽名,其具有標(biāo)明為具有購買者端口類型602B的“PC”的端口。行614B包含供應(yīng)商web服務(wù)606的簽名,其具有標(biāo)明為具有供應(yīng)商端口類型606B的“PS”的端口。行614C包含發(fā)貨者web服務(wù)610的簽名,其具有標(biāo)明為具有運(yùn)貨者端口類型610B的“PH”的端口。
      行614I包含關(guān)字服務(wù),其宣布web服務(wù)或web服務(wù)組合的定義的開始;標(biāo)志符“scm_purchaser_supplier_shipper”表示web服務(wù)602、606和610的組合的名稱;打開花括號“{”具有成對的關(guān)閉花括號“}”,以限定web服務(wù)的組合的定義。行614J包含關(guān)字new,其定義端口的唯一名稱并將這些端口與特定的端口類型相關(guān)聯(lián)購買者端口類型6002b的新端口“PC”;供應(yīng)商端口類型606B的新端口“PS”;發(fā)貨者端口類型610B的新端口“PH”;以及打開花括號“{”,其具有成對的關(guān)閉花括號“}”,以限定這些新端口PC、PS、PH的操作范圍。行614K包含關(guān)字parallel,其表示在打開花括號“{”和成對的關(guān)閉花括號“}”之間表達(dá)的服務(wù)和處理是要并行執(zhí)行的。
      行614L包含對另一個(gè)web服務(wù)組合的調(diào)用,其被稱作“scm_purchaser_supplier”,采用端口PC、PS作為參數(shù)。另外,web服務(wù)組合的定義“scm_purchaser_supplier”開始于行614D。行614D包含關(guān)字服務(wù),其表明web服務(wù)或web服務(wù)組合的定義即將開始;標(biāo)志符scm_purchaser_supplier表示web服務(wù)組合的名稱;參數(shù)PC,它是購買者端口類型602B的端口602F;參數(shù)PS,它是供應(yīng)商端口類型610B的端口610F;打開花括號“{”,它具有成對的關(guān)閉花括號“}”,以限定web服務(wù)組合scm_purchaser_supplier的定義。行614E包含關(guān)字parallel,以表示在打開花括號“{”和關(guān)閉花括號“}”之間定義的web服務(wù)和處理要并行執(zhí)行。行614F調(diào)用購買者web服務(wù)602,其具有被指定為PC的端口602F。行614G調(diào)用供應(yīng)商web服務(wù)606,其具有被指定為PS的端口606F。行614H調(diào)用依本發(fā)明形成的結(jié)合機(jī)制,以將端口602F(指定為PC)和端口606F(指定為PS)結(jié)合起來。端口602F、606F是否可結(jié)合取決于購買者web服務(wù)602的端口類型602B是否與供應(yīng)商web服務(wù)606的端口類型606B兼容。更具體的說,若購買者web服務(wù)602的安全性602C可與供應(yīng)商web服務(wù)606的安全性606C對齊,以產(chǎn)生輸入防護(hù)過程,則端口602F、606F的結(jié)合是可能的。換言之,若安全性602C、606C可被對齊,則將購買者web服務(wù)602和供應(yīng)商web服務(wù)606之間的端口602F、606F結(jié)合在編程上是安全的??蔀橘徺I者web服務(wù)602和供應(yīng)商web服務(wù)606之間的安全互操作性創(chuàng)建虛擬合約。這將在下面結(jié)合圖8A-8O來詳細(xì)描述。
      返回到web服務(wù)組合scm_purchaser_supplier的定義,行614M包含發(fā)貨者web服務(wù)610的調(diào)用,其將指定為PH的端口610F作為參數(shù)。行614N包含依本發(fā)明在端口602F(PC)和端口610F(PH)之間形成的結(jié)合機(jī)制的調(diào)用。若由于安全性或端口類型之間的不兼容而不能完成端口之間的結(jié)合,則端口將不會被結(jié)合。
      圖6H是包括購買者web服務(wù)602、供應(yīng)商web服務(wù)606,以及發(fā)貨者web服務(wù)610的系統(tǒng)600中操作調(diào)用的動態(tài)可視化示。系統(tǒng)600通過調(diào)用啟動購買操作602D并產(chǎn)生購買次序(PO)來開始執(zhí)行。然后,購買者web服務(wù)602調(diào)用供應(yīng)商web服務(wù)606的接收po操作606D、提供產(chǎn)生的購買次序(PO),然后購買次序(~PO)被供應(yīng)商web服務(wù)606消耗。隨后,發(fā)送發(fā)票操作606E被調(diào)用,產(chǎn)生發(fā)票。然后,供應(yīng)商web服務(wù)606調(diào)用確認(rèn)購買操作602E或購買者web服務(wù)602、提供產(chǎn)生的發(fā)票(invoice),且產(chǎn)生的發(fā)票(~invoice)由購買者web服務(wù)602消耗。接下來,供應(yīng)商web服務(wù)606調(diào)用發(fā)貨者web服務(wù)610的發(fā)貨通知操作610D,并提供提前發(fā)貨通知(ASN)。發(fā)貨者web服務(wù)610隨后將提前發(fā)貨通知(ASN)提供給購買者web服務(wù)602,并且購買者web服務(wù)602消耗該提前發(fā)貨通知(~ASN)。購買者web服務(wù)602接下來調(diào)用發(fā)貨者web服務(wù)610的確認(rèn)接收操作610E,并提供貨物(goods)的接收。運(yùn)貨者web服務(wù)610進(jìn)而提供貨物(goods)的接收,并且貨物的接收(~goods)由購買者web服務(wù)602消耗。
      前述圖6中的討論示出了由安全性602C、606C和610C指定的調(diào)用次序。然而,通過研究消息的產(chǎn)生和消耗,web服務(wù)602-610之間的互操作性可被更好地認(rèn)識到。見圖6I,當(dāng)購買次序(PO)在購買者web服務(wù)602的端口602F處產(chǎn)生并被發(fā)送到供應(yīng)商web服務(wù)606的端口606F時(shí),系統(tǒng)600開始,其中購買次序(PO)被消耗。購買次序(PO)的產(chǎn)生是由沒有啟動購買操作602D的參數(shù)列表中的代字號“~”的標(biāo)志符PO表示的。購買次序(PO)的消耗是由具有參數(shù)~PO的接收po操作606D表示的。由啟動購買操作602D廣泛表示的第一過程變成不活動(由于安全性602C),這是因?yàn)槎丝?02F已經(jīng)發(fā)送了購買者次序(PO),但是沒有接收到提前發(fā)貨通知(~ASN)。由接收po操作606D廣泛表示的第二過程繼續(xù)到發(fā)送發(fā)票操作606E廣泛表示的第三過程(由于安全性606C),這是因?yàn)槎丝?06F已經(jīng)接收到購買次序(~PO)。當(dāng)?shù)谌^程變?yōu)榛顒訒r(shí),發(fā)票在端口606F處產(chǎn)生,并被發(fā)送到購買者web服務(wù)602的端口602F,在那里發(fā)票被消耗?,F(xiàn)在滿足了安全性606C。發(fā)票的產(chǎn)生是由發(fā)送發(fā)票操作606E表示的,而發(fā)票的消耗是由確認(rèn)購買操作602E表示的。由確認(rèn)購買操作602E廣泛表示的第四過程變成不活動(由于安全性602C),這是因?yàn)槎丝?02F沒有接收到提前發(fā)貨通知(~ASN)。一旦供應(yīng)商web服務(wù)606在端口606F處接收到了購買者次序(PO),則在供應(yīng)商web服務(wù)606和發(fā)貨者web服務(wù)602之間發(fā)生小型計(jì)算機(jī)通信(mini communication)。提前發(fā)貨通知(ASN)是由端口610F處的發(fā)貨者web服務(wù)610產(chǎn)生的,并被發(fā)送到購買者web服務(wù)602的端口602F,在那里它被消耗。由發(fā)貨通知操作610D廣泛表示的第五過程繼續(xù)到由確認(rèn)接收操作610E廣泛表示的第六過程(由于安全性610C),這是因?yàn)槎丝?10F已經(jīng)發(fā)送了提前發(fā)貨通知(ASN),但是第六過程由于端口610F沒有接收到貨物(~goods)的接收而變成不活動。由啟動購買操作602D廣泛表示的第一過程變成活動,并且繼續(xù)到由確認(rèn)購買操作602E廣泛表示的第四過程(由于安全性602C),這是因?yàn)槎丝?02F已經(jīng)接收到提前發(fā)貨通知(~ASN)。提前發(fā)貨通知(ASN)的產(chǎn)生是由發(fā)貨通知操作610D表示的,且提前發(fā)貨通知(ASN)的消耗是由啟動購買操作602D表示的。由確認(rèn)購買操作602E廣泛表示的第四過程變成活動(由于安全性602C),這是因?yàn)槎丝?02F已經(jīng)接收到提前發(fā)貨通知(~ASN)。隨著第四過程的激活,貨物(goods)的接收在購買者web服務(wù)602的端口602F處產(chǎn)生,并且其被發(fā)送到發(fā)貨者web服務(wù)610的端口610F,那里它被消耗。貨物(goods)的接收的產(chǎn)生是由確認(rèn)購買操作602E表示的,且貨物(goods)的接收的消耗是由確認(rèn)接收操作610E表示的。貨物(goods)的接收的產(chǎn)生滿足安全性602C。由確認(rèn)接收操作610E廣泛表示的第六過程變成活動,這是因?yàn)槎丝?10F已經(jīng)接收到貨物(~goods)的接收,且然后滿足了安全性610C。上文的討論示出當(dāng)消息和操作的處理細(xì)微差別是使用依照本發(fā)明形成的安全性來表達(dá)時(shí),消息和操作的內(nèi)在同步(活動性和不活動性)。
      端口類型的模型句法702在圖7A中示出。模型句法702的不同元素類似于人類可讀句法400的元素(在行400C-400P中描述的安全性句法類別)。字母PT 702E包含端口類型的定義porttype name{(M;)*S;},其中porttype是聲明端口類型定義的開始的關(guān)字;name是端口類型的標(biāo)識符;打開和關(guān)閉花括號對限定定義端口類型的表達(dá)式;字母M包含消息(下文描述);字母S(下文描述)表明一個(gè)或多個(gè)安全性。字符S 702A表示要由模型句法702的各個(gè)元素定義的已命名安全性的集合。符號“0”702B表示不活動或停止的安全性。短語“M.S”702C表示順序安全性,其中字母M表示消息類型702I,其后是另一個(gè)安全性702A。短語“S0+S1”702D表示要在安全性S0或安全性S1的執(zhí)行之間做出的選擇。短語“S0|S1”702F表示安全性S0和S1的并行執(zhí)行。短語“rec(K).S”702G表示安全性S中名稱K 702J的遞歸。短語“K”702H表示可向安全性702A給予一名稱。
      圖7B示出系統(tǒng)700,它示出了第一web服務(wù)706和第二web服務(wù)710之間的互操作性,第一web服務(wù)706具有安全性S1 706A;消息1操作706B;消息2操作706C;以及端口706D。第二web服務(wù)710包括安全性S2 710A;消息3操作710B;消息4操作710C;以及端口710D。所示第一web服務(wù)706和第二web服務(wù)710被結(jié)合行703結(jié)合。
      圖8A-8O示出用于形成諸如第一web服務(wù)706和第二web服務(wù)710等web服務(wù)中的互操作性的方法800。為清楚起見,方法800的以下描述對結(jié)合圖7A-7B中所示的模型句法702和系統(tǒng)700示出的不同元素做出參考。從起始框開始,方法800前進(jìn)到一組方法步802,其在延續(xù)終端(“終端A”)和退出終端(“終端B”)之間定義。該組方法步802描述了對應(yīng)于第一和第二web服務(wù)706和710的web服務(wù)程序的web服務(wù)規(guī)范的創(chuàng)建。
      從終端A(圖8B)開始,方法800前進(jìn)到框808,在那里開發(fā)者創(chuàng)建第一web服務(wù)706的規(guī)范的抽象定義。規(guī)范的抽象定義包括數(shù)據(jù)類型、消息以及端口類型的定義。接下來,開發(fā)者創(chuàng)建規(guī)范的具體描述。見框810。具體描述包括綁定(不要與下述依照本發(fā)明形成的綁定機(jī)制混淆),即指定數(shù)據(jù)傳送的協(xié)議、串行化和編碼之處。具體描述包括服務(wù)元素,它指定每個(gè)綁定的端口地址。然后,開發(fā)者為第一web服務(wù)706的規(guī)范創(chuàng)建安全性S1 706A,它支配諸如消息1操作706B和消息2操作706C等操作的調(diào)用。見框812。然后,開發(fā)者較佳地將安全性S1 706A(以下稱“S1”)放置到端口606D的端口類型的定義中。見框814。步驟808-814可被重復(fù),以創(chuàng)建第二web服務(wù)710的規(guī)范,這包括安全性S2 710A(以下稱“S2”)。接下來,方法800前進(jìn)到退出終端B。
      從退出終端B(圖8A),方法800前進(jìn)到一組方法步驟804,其在延續(xù)終端(“終端C”)和退出終端(“終端D”)之間定義。該組方法步驟804描述了第一web服務(wù)706對第二web服務(wù)710的發(fā)現(xiàn),以及第二web服務(wù)710與第一web服務(wù)706安全交互能力的驗(yàn)證。
      從終端C(圖8C),方法800前進(jìn)到框816,在那里第一web服務(wù)707通過合適的發(fā)現(xiàn)服務(wù),使用第二web服務(wù)710的規(guī)范而發(fā)現(xiàn)端口710D的端口類型。一個(gè)合適的發(fā)現(xiàn)服務(wù)包括UDDI服務(wù),但是其它也是可能的。第一web服務(wù)706隨后選擇端口706D的端口類型,它將與來自第一web服務(wù)706的規(guī)范的端口710D結(jié)合。見框818。然后,第一web服務(wù)706提取端口706D的端口類型的安全性S1和端口710D的端口類型的安全性S2。見框820。接下來,過程800進(jìn)入另一個(gè)延續(xù)終端(“終端C18”)。從終端C18,過程800進(jìn)入框822,在那里第一web服務(wù)706通過試圖將安全性S1、S2放置到綁定關(guān)系(S1:=:S2)中而核查端口706D和710D之間的互操作性。在判別框824,第一web服務(wù)706核查安全性S1是否是形式“0”,這表示不活動或停止安全性。若對判別框824處的測試回答是“是”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C1”)。否則,若回答是“否”,則方法800前進(jìn)到另一個(gè)終端(“終端C2”)。
      從終端C1(圖8D),方法800前進(jìn)到另一個(gè)判別框826,在那里第一web服務(wù)706判斷安全性S2是否為“S”702A的形式。若回答是“否”,則進(jìn)入另一個(gè)延續(xù)終端(“終端C19”)。否則,若對判別框826處的測試的回答是“是”,則安全性S1和安全性S2之間的綁定關(guān)系(0:=:S)等同于S2。見框828。從這里,方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C20”)。
      從終端C2(圖8D),方法800前進(jìn)到另一個(gè)判別框830,在那里第一web服務(wù)706判斷安全性S1是否為“M.S.”702C的形式。若回答是“是”,則進(jìn)入另一個(gè)延續(xù)終端(“終端C3”)。否則,若回答是“否”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C4”)。
      從終端C3(圖8E),方法800前進(jìn)到另一個(gè)判別框832,那里第一web服務(wù)706判斷安全性S2是否是表示并行安全性的形式“S0|S1”706F。若回答是“否”,則過程800進(jìn)入終端C19。否則,若對判別框832處的測試回答是“是”,則進(jìn)入框834,在那里與安全性S2綁定的安全性S1(M.S:=S0|S1)等同于兩個(gè)選擇(((S0/M)|S1):=:S)+((S0|S1/M)):=:S)。然后選擇兩個(gè)選擇中的其中一個(gè)。見框836。接下來,方法800進(jìn)入延續(xù)終端18,以循環(huán)回到框822,并重復(fù)上述步驟。
      從終端C4(圖8E),方法800前進(jìn)到另一個(gè)判別框838,在那里第一web服務(wù)706判斷安全性S1是否是表明選擇安全性702D的“S0+S1”的形式。若回答是“是”,則進(jìn)入另一個(gè)延續(xù)終端(“終端C5”)。否則,方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C6”)。
      從終端C5(圖8F),方法800前進(jìn)到另一個(gè)判別框840,在那里第一web服務(wù)706判斷安全性S2是否為“S”702A的形式。若回答是“否”,則方法800進(jìn)入延續(xù)終端C19。否則,若回答是“是”,則與安全性S2綁定的安全性S1((S0+S1):=:S))就等同于兩個(gè)選擇((S0:=:S)+(S1:=:S))。見框842。然后選擇這兩個(gè)選擇中的其中一個(gè)。見框844。接下來,方法800進(jìn)入延續(xù)終端C18,以循環(huán)回到822,在那里重復(fù)上述的步驟。
      從終端C6(圖8F),方法800進(jìn)入另一個(gè)判別框846,在那里第一web服務(wù)706判斷安全性S1的形式是否為“M0.S0”,它是順序安全性702C。若對判別框826處的測試回答是“否”,則進(jìn)入另一個(gè)延續(xù)終端(“終端C8”)。若相反,回答是“是”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C7”)。
      從終端C7(圖8G),方法800前進(jìn)到另一個(gè)判別框898,在那里第一web服務(wù)706判斷安全性S2的形式是否為“M1.S1”702C。若回答是“否”,則方法800前進(jìn)到終端C19。否則,若回答是“是”,則進(jìn)入框848,在那里第一web服務(wù)706判斷是否定義了采用M0和M1作為自變量的匹配函數(shù)。見框848。匹配函數(shù)的一種簡單實(shí)現(xiàn)包括,若M0是M1的補(bǔ)集,則返回“真”布爾結(jié)果。否則,匹配函數(shù)將返回“假”布爾結(jié)果。若對判別框848處的測試回答是“否”,則與安全性S2綁定的安全性S1(M0.S0:=:M1.S1)是未定義的。見框894。然后,方法800前進(jìn)到終端C20。若對判別框848處的測試回答是“是”,則選項(xiàng)“cut(M0,M1).(S0:=:S1)”被選擇,其中,cut(切除)是將M0和M1作為自變量的函數(shù)。切除函數(shù)的一個(gè)較佳實(shí)現(xiàn)在圖6A-6I中示出,其示出了購買者、供應(yīng)商、發(fā)貨者web服務(wù)中的互操作性。若匹配函數(shù)被定義成將類型與消息的對應(yīng)類型相匹配,且切除函數(shù)被定義成移除這些對(類型和對應(yīng)類型),則購買者web服務(wù)的動作是聯(lián)合。換言之,購買者web服務(wù)在安全性中前進(jìn)之前等待購買次序(PO)被消耗以及提前發(fā)貨通知(ASN)被供給。接下來,方法800前進(jìn)到終端C18,以循環(huán)回到框822,在那里重復(fù)上述方法步。
      從終端C8(圖8L),方法800前進(jìn)到另一個(gè)判別框822,在那里第一web服務(wù)706判斷安全性S1706A的形式是否為表示并行安全性702F的“S0|S1”。若回答是“否”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C11”)。否則,若回答是“是”,則進(jìn)入另一個(gè)延續(xù)終端(“終端C9”)。
      從終端C9(圖8H),方法800前進(jìn)到另一個(gè)判別框854,在那里第一web服務(wù)706判斷第二web服務(wù)710的安全性S2的形式是否為“S2|S3”,它是并行安全性702F的形式。若對判別框854處的測試回答是“否”,則方法800前進(jìn)到終端C19。否則,若回答是“是”,則方法800進(jìn)入框856。在這個(gè)框處,與安全性S2綁定的安全性S1((S0|S1):=:(S2|S3))等同于一組四個(gè)選擇(S0,2,3,1)+(S1,2,3,0)+(S2,0,1,3)+(S3,0,1,2)。對這四個(gè)選擇中的每一個(gè)選擇而言,做出測試,以判斷是否對特定的選擇定義了關(guān)系(Si:=:(Sm|Sn)):=:Sj。見判別框860。若對判別框860處的測試回答是“是”,則該特定選擇等同于關(guān)系(Si:=:(Sm|Sn)):=:Sj。見框862。接下來,方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C10”)。若相反,回答是“否”,則進(jìn)入框864,在那里特定選擇等同于關(guān)系(Si:=:(Sm|Sn)):=:S。方法800隨后也前進(jìn)到終端C10。
      從終端C10(圖8I),方法800前進(jìn)到框866,那里選擇四個(gè)選擇(S0,2,3,1)+(S1,2,3,0)+(S2,0,1,3)+(S3,0,1,2)中的一個(gè)。然后,過程800前進(jìn)到終端C18,以循環(huán)回到框822,在那里重復(fù)上述方法步。
      從終端C11(圖8I),方法800前進(jìn)到另一個(gè)判別框868,在那里第一web服務(wù)706判斷安全性S1是否采用了表示遞歸安全性702G的rec(K).S0的形式。若對判別框868處的測試回答是“否”,則進(jìn)入另一個(gè)延續(xù)終端(“終端C12”)。否則,若回答是“是”,則進(jìn)入另一個(gè)判別框870,在那里第一web服務(wù)706核查安全性S2是否采用形式“S”702A。若對判別框870的測試回答是“否”,則方法800進(jìn)入終端C19。若相反,回答是“是”,則方法800前進(jìn)到框872,在那里與安全性S2綁定的安全性S1(rec(K).S0:=:S)等同于(S0{rec(K).S0/K}:=:S)。句法短語S0{rec(K).S0/K}意味著無論在安全性S0何處提及到K這是由模型句法702定義的名稱K都由rec(K).S0替換??紤]到下面的例子若短語“S0{rec(K).S0/K}”要被應(yīng)用到安全性句子“S0=open.close.S0”中,則將產(chǎn)生下面的結(jié)果“S0=open.close.rec(S0).open.close.S0”。這樣,示例中的“S0”是遞歸安全性“rec(K)”中的K。接下來,方法800前進(jìn)到終端C18,以循環(huán)回到框822,在那里重復(fù)上述方法步。若對判別框870的測試回答是“否”,則方法800前進(jìn)到終端C19。
      從終端C12(圖8J),方法800前進(jìn)到另一個(gè)判別框874,在那里第一web服務(wù)706核查安全性S1的形式是否為“S”702A。若回答是“否”,則方法800前進(jìn)到終端C19。否則,若回答是“是”,則就進(jìn)入另一個(gè)判別框876。在這個(gè)判別框處,第一web服務(wù)706判斷安全性S2的形式是否為“0/S0”。如回答是“否”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C13”)。否則,若對判別框876的測試回答是“是”,則與安全性S2綁定的安全性S1(S:=:0/S0)就是未被定義的。見框878。然后,方法800前進(jìn)到終端C20。
      從終端C13(圖8K),方法800前進(jìn)到另一個(gè)判別框880,在那里第一web服務(wù)706驗(yàn)證安全性S2的形式是否為“M0.S/M1”。若回答是“否”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C14”)。若回答是“是”,則第一web服務(wù)706判斷是否定義了采用M0、M1作為自變量的匹配函數(shù)。見框882。匹配函數(shù)的一種簡單實(shí)現(xiàn)包括,若M0是M1的補(bǔ)集,則返回“真”布爾結(jié)果。否則,匹配函數(shù)將返回“假”布爾結(jié)果。若對判別框882處的測試回答是“否”,則與安全性S2綁定的安全性S1(S:=M0.S/M1)是未定義的。見框886。方法800隨后前進(jìn)到終端C20。若對判別框882處的測試回答是“是”,則安全性S2就等同于“cut(M0,M1).S”,其中cut(切除)是采用M0、M1作為自變量的函數(shù)。切除函數(shù)的一個(gè)較佳實(shí)現(xiàn)在圖6A-6I中示出,其示出購買者、供應(yīng)商、發(fā)貨者web服務(wù)中的互操作性。若匹配函數(shù)被定義成將類型與對消息的對應(yīng)類型進(jìn)行匹配,且切除函數(shù)被定義成移除這些對(類型和對應(yīng)類型),則購買者web服務(wù)的動作是聯(lián)合。換言之,購買者web服務(wù)在安全性中前進(jìn)之前,等待購買次序(PO)被消耗以及提前發(fā)貨通知(ASN)被供給。接下來,過程800前進(jìn)到終端C18,以循環(huán)回到框822,在那里重復(fù)上述方法步。
      從終端C14(圖8L),方法800前進(jìn)到另一個(gè)判別框888,在那里第一web服務(wù)706判斷安全性S2的形式是否是“(S0+S1)/M”。若回答是“是”,則安全性S2等同于兩個(gè)選擇(S0/M)+(S1/M)。見框890。選擇這兩個(gè)選擇中的一個(gè)。見框892。接下來,方法800前進(jìn)到終端C18,以循環(huán)回到框822,在那里重復(fù)上述方法步。若對判別框888的測試回答是“否”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C16”)。
      從終端C16(圖8M),方法800前進(jìn)到另一個(gè)判別框899,在那里第一web服務(wù)706核查安全性S2,以決定其是否具有形式(S0|S1)/M。若回答是“否”,則方法800前進(jìn)到另一個(gè)延續(xù)終端(“終端C17”)。否則,若回答是“是”,則安全性S2就等同于兩個(gè)選擇(S0/M)&amp;(S1/M)。見框897。接下來,過程800前進(jìn)到框895,在那里隨后選擇兩個(gè)選擇中的一個(gè)。然后,方法800前進(jìn)到終端C18,以循環(huán)回到框822,在那里重復(fù)上述方法步。
      從終端C17(圖8N),方法800前進(jìn)到另一個(gè)判別框893,在那里第一web服務(wù)706判斷安全性S2的形式是否為rec(K).S/M。若回答是“是”,則安全性S2就等同于(S{rec(K).(S/K)}/M)。見框891。然后方法800前進(jìn)到終端C18,以循環(huán)回到框822,在那里重復(fù)上述方法步。否則,若對判別框893處測試的回答是“否”,則進(jìn)入終端C19。
      從終端C19(圖8N),第一web服務(wù)706判斷是否由于安全性S1或安全性S2沒有循模型句法702而出現(xiàn)了句法錯(cuò)誤。見框889。端口706、710D之間的結(jié)合是不可能的,這是因?yàn)榘踩許1、S2并不是可計(jì)算的形式。然后,方法800終止處理。從終端C20(圖8N),方法800前進(jìn)到框887,在那里臨時(shí)安全性S3被設(shè)置為等同于安全性S1和安全性(S3=S1:=:S2)之間的綁定關(guān)系的結(jié)果。方法800隨后進(jìn)入退出終端D。
      從退出終端D,方法800前進(jìn)到一組方法步806,其在延續(xù)終端(“終端E”)和退出終端(“終端F”)之間定義。若安全性S1和安全性S2能以允許第一web服務(wù)706和第二web服務(wù)710之間安全互操作性的合適方式對齊,則該組方法步806創(chuàng)建第一web服務(wù)706和第二web服務(wù)710之間的虛擬合約,它是一種綁定協(xié)定。
      從終端E(圖8O),方法800前進(jìn)到另一個(gè)判別框855,在那里第一web服務(wù)706判斷安全性S3(它是安全性S1和安全性S2之間綁定關(guān)系的結(jié)果)是否等于零。若對判別框885處的測試回答是“是”,則第一web服務(wù)706的端口706D可與第二web服務(wù)710的端口710結(jié)合。見框881。當(dāng)兩個(gè)端口能以這種方式結(jié)合時(shí),第一web服務(wù)706和第二web服務(wù)710之間的互操作性就是安全的。術(shù)語“安全”意味著存在一輸入防護(hù)過程;每個(gè)輸出都滿足一輸入;或者沒有死鎖,這是因?yàn)榈谝粀eb服務(wù)706或第二web服務(wù)710的輸入總是可用于接收消息以進(jìn)行處理。一旦端口706D、710D被結(jié)合,第二web服務(wù)710就可開始與第一web服務(wù)706進(jìn)行通信,以提供或獲取所需服務(wù)。見框879。然后,方法800前進(jìn)到退出終端F,在那里它終止處理。
      若對判別框855的測試回答是“否”,則進(jìn)入另一個(gè)判別框883,在那里第一web服務(wù)706判斷它是否可容許端口706D和710D的某一程度的不安全結(jié)合。若回答是“是”,則重復(fù)方法步881、879。否則,對判別框883處的測試回答是“否”,則端口706D、710D不被結(jié)合;而且方法800前進(jìn)到退出終端F,在那里它終止處理。
      雖然已經(jīng)示出并描述了本發(fā)明的較佳實(shí)施例,但是應(yīng)當(dāng)認(rèn)識到,在不背離本發(fā)明主旨和范圍的前提下可對其作出各種改變。
      附錄A1.服務(wù)、端口和端口類型1.1作為過程的服務(wù)。提供給這篇論文的空間未提供對移動過程理論的真實(shí)介紹。好奇的讀者可發(fā)現(xiàn)有關(guān)該主題的豐富文獻(xiàn)資料,而且也鼓勵(lì)讀者對其進(jìn)行調(diào)查。特別地,Milner所著的The Polyadic Pi CalculusA Tutorial仍舊是作者已經(jīng)讀到的最好介紹。
      說由web服務(wù)所采納的簡單本體論是對移動過程的代數(shù)處理而采納的相同基礎(chǔ)本體論就足夠了。即,∏積分(及其相關(guān)物)是根據(jù)端口的抽象化而構(gòu)建的,其通常被稱作該設(shè)置內(nèi)的名稱。過程是根據(jù)端口集合處的輸入/輸出請求上的同步約束而構(gòu)建的。
      例如,∏積分的對稱版本提供下面的過程類。
      P::=0| x[u].P| x[u].P| (new x)P| P|P| rec(k).P| k| &lt;x=y(tǒng)&gt;
      例1.1.1下面的范例提供期望被初始化的,然后愿意接受重復(fù)工作請求或最終請求的服務(wù)的本質(zhì)實(shí)現(xiàn)。
      (new init s)x[init s].(rec(k).(new work wr fin fr)(x[work wr].k+x[fin fr])))web服務(wù)和世界的過程代數(shù)視角之間的這個(gè)對應(yīng)關(guān)系不是偶然的。涉及一個(gè)開發(fā)的人是涉及另一個(gè)開發(fā)的。例如,本論文的第一作者也是WDSL規(guī)范的合著者。
      2.具有安全性的端口類型2.1安全性表達(dá)式。計(jì)劃用端口上期望的協(xié)議的規(guī)范來擴(kuò)展端口類型。特別地,提出小的與上下文無關(guān)的語言,其包含下列作為基本的語言組合器順序、選擇、并行和遞歸。這個(gè)語言的終端是從與端口類型相關(guān)聯(lián)的消息類型中提取的。
      具體的說,若M是期望到達(dá)類型P端口的消息類型集,而K是可數(shù)名稱集,則給定K時(shí)M上的合法安全性表達(dá)式的集合(表示為Lk(M))如下被遞歸定義。
      0∈LK(M)S∈LK(M),m∈M  m.S∈LK(M)S0∈LK(M),S1∈LK(M)  S0+S1∈LK(M)S0∈LK(M),S1∈LK(M)  S0|S1∈LK(M)k∈K,S∈LK(M)  rec(k).S∈LK(M)k∈K  k∈LK(M)注解2.1.1注意,這個(gè)定義是消息類型集的參變量。因此,它與用于定義消息類型的系統(tǒng)是相當(dāng)無關(guān)的。任何良好形成的模式定義,如XSD會起作用。
      注解2.1.2同樣的,根據(jù)XSD模式對安全性表達(dá)式集合進(jìn)行編碼是非常直接的,其不提供附加洞察力,但是其在相當(dāng)程度上弄亂了頁并模糊了主題。相反,引入更多起作用的人類可讀句法是方便的。
      注解2.1.3熟悉過程代數(shù)的讀者會注意到,因?yàn)檎Z言既不包含重貼標(biāo)簽和限制,又不包含新的名稱構(gòu)造函數(shù),所以從嚴(yán)格意義上說,它比完全的CCS或∏積分表達(dá)力更弱。
      2.1.1模型句法PT ::= porttype name{(M;)*S;}S ::= 0| M.S| S0+S1| S0|S1| rec(k).S| kM ::= messagetypeK ::= name2.2示例例2.1.1例證的示例是服務(wù)必須被初始化,然后愿意接收重復(fù)的工作請求或最終請求的示例。
      端口類型
      porttype StartWorkStop{//字母表initialize(string);do Work(string);finalize(string);//安全性initialize(string).
      (rec(k).(doWork(string).k+finalize(string)));}這個(gè)例子要與上述實(shí)現(xiàn)相比較。一致問題—實(shí)現(xiàn)是否符合類型描述—沒有在這篇論文中解決,但是有希望的是,具有代碼的安全性的簡短比較將提供關(guān)于其如何被完成的至少某些建議。
      例2.2.2這個(gè)例子示出購買者、供應(yīng)商和發(fā)貨者之間非常簡單的三方合約。已經(jīng)包括了足夠的服務(wù)水平組成信息,以提供有關(guān)端口在何處被結(jié)合以及什么對核查有意義的上下文。然而,這篇論文的主要焦點(diǎn)是端口安全性。因此,服務(wù)水平組成句法未被解釋。
      購買者將啟動購買,從而提供購買次序,并期望提前發(fā)貨通知。它想要接收發(fā)票并提供貨物接收確認(rèn)。供應(yīng)商等待購買次序,然后提供發(fā)票。發(fā)貨者提供ASN并等待貨物接收確認(rèn)。
      <pre listing-type="program-listing"><![CDATA[portType Purchaser{ initiatePurchase(PO,~ASN); confirmPurchase(~I(xiàn)nvoice,Goods); //安全性 rec(k).(initiatePurchase.confirmPurchase.k);}portType Supplier{ receivePO(~PO); sendInvoice(Invoice); rec(k).(receivePO.sendInvoice.k);}portType Shipper{ notifyOfShipment(ASN); confirmReceipt(~Goods); rec(k).(notifyOfShipment.confirmReceipt.k);}Service SCM_Purchaser_Supplier_Shipper{ new(pCPurchaser,pSSupplier,pHShipper){parallel{ SCM_PurchaserSupplier(pC,pS) SCM_Shipper(pH); fuse(pC,pH);}}}Service SCM_Purchaser_Supplier(pCPurchaser,pSSupplier){ parallel{ SCM_Purchaser(pC); SCM_Supplier(pS); fuse(pC,pS); }}Service SCM_Purchaser(pCPurchaser);Service SCM_Supplier(pSSupplier);Service SCM_Shipper(pHShipper);]]></pre>2.3類型核查算法。有兩種形式的類型核查要做。一種核查給定服務(wù)實(shí)現(xiàn)與被廣告(或需要)的端口類型集合的依從性。這不能在這里被指定,這是由于缺乏實(shí)現(xiàn)語言的選擇。另一種核查,給定兩個(gè)端口類型,將一個(gè)端口“綁定”到另一個(gè)端口是安全的。
      注2.3.1這個(gè)算法是消息類型中的參變量。切除或匹配的概念必須可在類型系統(tǒng)中定義。
      該算法可被以方程形式給出。遞歸地定義S1:=:S2,如下
      (O:=:S)=S(M0.S0:=:M1.S1)=]]> (M.S:=:S0|S1)=(((S0/M)|S1):=:S)+((S0|(S1/M)):=:S)((S0+S1):=:S)=(S0:=:S)+(S1:=:S)((S0|S1):=:(S2|S3))=S0,2,3,1&amp;S1,2,3,0&amp;S2,0,1,3&amp;S3,0,1,2(rec(k).S0:=:S)=S0{rec(k).S0/k}:=:S其中 以及(0/M)=未定義 ((S0+S1)/M)=(S0/M)+(S1/M)((S0|S1)/M)=((S0/M)|S1)+(S0|S1/M))(rec(k).S/M)=S(rec(k).S/k}/M注2.3.2在假定消息類型是原子的情況下,可給出match和cut的簡單釋。因此,將會得到 cut(M0,M1)=ε然而,若在購買者—供應(yīng)商—發(fā)貨者示例中,match被定義為將消息元素與共同類型的元素進(jìn)行匹配,而cut移除這些對,則可以看到,購買者安全性的動作是實(shí)際的聯(lián)合。即,購買者在安全性中前進(jìn)之前實(shí)際等待PO被消耗以及ASN被供給。
      定義2.3.3設(shè)端口p0具有安全性S0類型,同樣的,p1具有安全性S1類型,且S=(S0:=:S1)。若S=0,則認(rèn)為將p0和p1結(jié)合是安全的。否則,S就是將p0和p1結(jié)合不安全的原因。
      關(guān)于這個(gè)定義的論證就是這樣的。
      定理2.3.4若(S0:=:S1)≠0,則S0提供不與S1匹配的輸入/輸出動作。
      權(quán)利要求
      1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,用于核查第一web服務(wù)的第一端口類型和第二web服務(wù)的第二端口類型的兼容性,所述方法包含從所述第一web服務(wù)的第一端口類型中提取第一安全性(S1),并從所述第二web服務(wù)的第二端口類型中提取第二安全性(S2);以及通過將所述第一安全性與所述第二安全性綁定(S:=:S2),以確定所述綁定的結(jié)果是否產(chǎn)生web服務(wù)之間的互操作性,來測試所述第一安全性與所述第二安全性的兼容性。
      2.如權(quán)利要求1所述的方法,其特征在于,所述第一web服務(wù)包括所述第一端口類型的第一端口,并且所述第二web服務(wù)包括所述第二端口類型的第二端口,若所述綁定的結(jié)果產(chǎn)生web服務(wù)之間的安全互操作性,則所述第一端口可與所述第二端口結(jié)合。
      3.如權(quán)利要求1所述的方法,其特征在于,所述第一web服務(wù)包括所述第一端口類型的第一端口,并且所述第二web服務(wù)包括所述第二端口類型的第二端口,若所述綁定的結(jié)果產(chǎn)生可疑的互操作性,并且所述第一web服務(wù)和所述第二web服務(wù)容許所述第一端口和所述第二端口的結(jié)合,則所述第一端口可與所述第二端口結(jié)合。
      4.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性是停止安全性(0),并且所述第二安全性的形式是(S),則所述綁定的結(jié)果是所述第二安全性。
      5.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性是順序安全性(M.S),并且所述第二安全性是并行安全性(S0|S1),則所述綁定的結(jié)果是選擇安全性(((S0/M)|S1):=:S)+((S0|(S1/M)):=:S)。
      6.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性是選擇安全性(S0+S1),并且所述第二安全性的形式是(S),則所述綁定的結(jié)果是選擇安全性((S0:=:S)+(S1:=:S))。
      7.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性的形式是(M0.S0),并且所述第二安全性的形式是(M1.S1),而且匹配函數(shù)(match(M0,M1))是已定義的,則所述綁定結(jié)果等同于具有關(guān)系(cut(M0,M1).(S0:=:S1))的安全性,否則,所述綁定的結(jié)果是未定義的。
      8.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性是并行安全性(S0|S1),并且所述第二安全性是另一個(gè)并行安全性(S2|S3),則所述綁定的結(jié)果是選擇安全性((S0,2,3,1)+(S1,2,3,0)+(S2,0,1,3)+(S3,0,1,2))。
      9.如權(quán)利要求8所述的方法,其特征在于,所述選擇安全性((S0,2,3,1)+(S1,2,3,0)+(S2,0,1,3)+(S3,0,1,2))中的每個(gè)選擇的放置形式可以是(Si,m,n,j),其中,若關(guān)系((Si:=:(Sm|Sn)):=:Sj)是對一特定選擇定義的,則所述綁定的結(jié)果是關(guān)系((Si:=:(Sm|Sn)):=:Sj),否則,所述綁定的結(jié)果是另一關(guān)系((Si:=:(Sm|Sn))|Sj)。
      10.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性是遞歸安全性(rec(K).S0),并且所述第二安全性的形式是(S),則所述綁定的結(jié)果是關(guān)系(S0{rec(K).S0/K}:=:S)。
      11.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是(0/S0),則所述綁定的結(jié)果是未定義的。
      12.如權(quán)利要求1所述的方法,其特征在于,所述第一安全性的形式是(S),并且所述第二安全性的形式是(M0.S/M1),而且匹配函數(shù)(match(M0,M1))是已定義的,則所述綁定的結(jié)果等同于切除函數(shù)(cut(M0,M1))。
      13.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是(M0.S/M1),而且匹配函數(shù)(match(M0,M1))未定義,則所述綁定的結(jié)果是未定義的。
      14.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是((S0+S1)/M),則所述綁定的結(jié)果等同于選擇安全性((S0/M)+(S1/M))。
      15.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是((S0|S1)/M),則所述綁定的結(jié)果等同于菜單安全性(((S0/M)|S1)+(S0|(S1/M))。
      16.如權(quán)利要求1所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是(rec(K).S/M),則所述綁定的結(jié)果就等同于遞歸安全性S{rec(K).(S/K)}/M。
      17.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令用于執(zhí)行核查第一web服務(wù)的第一端口類型和第二web服務(wù)的第二端口類型的兼容性的方法,所述方法包含所述第一web服務(wù)的第一端口類型中提取第一安全性(S1),并從所述第二web服務(wù)的第二端口類型中提取第二安全性(S2);以及通過將所述第一安全性與第二安全性綁定(S1:=:S2),以確定所述綁定的結(jié)果是否產(chǎn)生web服務(wù)之間的互操作性,來測試所述第一安全性與所述第二安全性的兼容性。
      18.如權(quán)利要求17所述的方法,其特征在于,所述第一web服務(wù)包括所述第一端口類型的第一端口,并且所述第二web服務(wù)包括所述第二端口類型的第二端口,若所述綁定的結(jié)果產(chǎn)生web服務(wù)之間的安全互操作性,則所述第一端口可與所述第二端口結(jié)合。
      19.如權(quán)利要求17所述的方法,其特征在于,所述第一web服務(wù)包括所述第一端口類型的第一端口,并且所述第二web服務(wù)包括所述第二端口類型的第二端口,若所述綁定的結(jié)果產(chǎn)生可疑互操作性,并且所述第一web服務(wù)和所述第二web服務(wù)容許所述第一端口與所述第二端口的結(jié)合,則所述第一端口可與所述第二端口結(jié)合。
      20.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性是停止安全性(0),并且所述第二安全性的形式是(S),則所述綁定的結(jié)果是第二安全性。
      21.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性是順序安全性(M.S),并且所述第二安全性是并行安全性(S0|S1),則所述綁定的結(jié)果是選擇安全性(((S0/M)|S1):=:S)+((S0|(S1/M)):=:S)。
      22.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性是選擇安全性(S0+S1),并且所述第二安全性的形式是(S),則所述綁定的結(jié)果是選擇安全性((S0:=:S)+(S1:=:S))。
      23.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性的形式是(M0.S0),并且所述第二安全性的形式是(M1.S1),而且匹配函數(shù)(match(M0,M1))是已定義的,則所述綁定結(jié)果等同于具有關(guān)系(cut(M0,M1).(S0:=:S1))的安全性,否則,所述綁定的結(jié)果是未定義的。
      24.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性是并行安全性(S0|S1),并且所述第二安全性是另一并行安全性(S2|S3),則所述綁定的結(jié)果是選擇安全性((S0,2,3,1)+(S1,2,3,0)+(S2,0,1,3)+(S3,0,1,2))。
      25.如權(quán)利要求24所述的方法,其特征在于,所述選擇安全性((S0,2,3,1)+(S1,2,3,0)+(S2,0,1,3)+(S3,0,1,2))中的每個(gè)選擇的放置形式可以是(Si,m,n,j),其中,若關(guān)系((Si:=:(Sm|Sn)):=:Sj)是對一特定選擇定義的,則所述綁定的結(jié)果是關(guān)系((Si:=:(Sm|Sn)):=:Sj),否則,所述綁定的結(jié)果是另一關(guān)系((Si:=:(Sm|Sn))|Sj)。
      26.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性是遞歸安全性(rec(K).S0),并且所述第二安全性的形式是(S),則所述綁定的結(jié)果是關(guān)系(S0{rec(K).S0/K}:=:S)。
      27.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是(0/S0),則所述綁定的結(jié)果是未定義的。
      28.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是(M0.S/M1),而且匹配函數(shù)(match(M0,M1))是已定義的,則所述綁定的結(jié)果等同于切除函數(shù)(cut(M0,M1))。
      29.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是(M0.S/M1),而且匹配函數(shù)(match(M0,M1))是未定義的,則所述綁定的結(jié)果是未定義的。
      30.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是((S0+S1)/M),則所述綁定的結(jié)果等同于選擇安全性((S0/M)+(S1/M))。
      31.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是((S0|S1)/M),則所述綁定的結(jié)果等同于菜單安全性(((S0/M)|S1)+(S0|(S1/M))。
      32.如權(quán)利要求17所述的方法,其特征在于,若所述第一安全性的形式是(S),并且所述第二安全性的形式是(rec(K).S/M),則所述綁定的結(jié)果等同于遞歸安全性S{rec(K).(S/K)}/M。
      33.一種允許web服務(wù)通信的網(wǎng)絡(luò)化系統(tǒng),包含第一web服務(wù),用于提供計(jì)算服務(wù),所述第一web服務(wù)包括用于發(fā)送和接收消息的第一端口,所述第一端口包括第一端口類型;以及第二web服務(wù),它需要由所述第一web服務(wù)提供的計(jì)算服務(wù),所述第二web服務(wù)包括用于發(fā)送和接收消息的第二端口,所述第二端口包括第二端口類型,若所述第二端口類型與所述第一端口類型兼容,則所述第二端口可與所述第一端口結(jié)合,用于對由所述第一web服務(wù)提供服務(wù)的安全訪問。
      34.如權(quán)利要求33所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第一web服務(wù)包括用于發(fā)送消息的第三端口,并且所述第二web服務(wù)提供用于從所述第三端口接收消息的第四端口。
      35.如權(quán)利要求34所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第四端口位于第三web服務(wù)上,所述第四端口由所述第三web服務(wù)提供給所述第二web服務(wù)。
      36.如權(quán)利要求33所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第一web服務(wù)是在第一計(jì)算裝置上執(zhí)行的。
      37.如權(quán)利要求34所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第二web服務(wù)是在第二計(jì)算裝置上執(zhí)行的。
      38.一種允許web服務(wù)通信的網(wǎng)絡(luò)化系統(tǒng),包含提供第一組服務(wù)的第一web服務(wù),所述第一web服務(wù)包括編程上表達(dá)對所述第一組服務(wù)的安全訪問的第一安全性;以及提供第二組服務(wù)的第二web服務(wù),所述第二web服務(wù)包括編程上表達(dá)對所述第二組服務(wù)的安全訪問的第二安全性,若所述第二安全性能夠在編程與所述第一安全性對齊,則所述第二web服務(wù)訪問所述第一組服務(wù),且所述第一web服務(wù)訪問所述第二組服務(wù)。
      39.如權(quán)利要求38所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第一web服務(wù)的第一組服務(wù)是可通過第一組操作來訪問的,所述第一安全性在編程上指定所述第一組操作的可允許的調(diào)用排列。
      40.如權(quán)利要求39所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第二web服務(wù)的第二組服務(wù)是可通過第二組操作來訪問的,所述第二安全性在編程上指定所述第二組操作的可允許的調(diào)用排列。
      41.如權(quán)利要求40所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第一web服務(wù)包括第一端口類型,所述第一端口類型包括所述第一組操作和所述第一安全性。
      42.如權(quán)利要求41所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第二web服務(wù)包括第二端口類型,所述第二端口類型包括所述第二組操作和所述第二安全性。
      43.一種允許web服務(wù)通信的網(wǎng)絡(luò)化系統(tǒng),包含提供服務(wù)的第一web服務(wù),所述第一web服務(wù)包括編程上描述訪問所提供的服務(wù)的次序的安全性;以及第二web服務(wù),它需要由所述第一web服務(wù)提供的服務(wù),所述第二web服務(wù)接收所述第一web服務(wù)的安全性,以形成與所述第一web服務(wù)的虛擬合約,以使所述第二web服務(wù)可訪問所提供的服務(wù)。
      44.如權(quán)利要求43所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第一web服務(wù)包括第一端口類型,并且所述第二web服務(wù)包括第二端口類型,其中,所述虛擬合約是在當(dāng)所述第一端口類型與所述第二端口類型兼容時(shí)形成的。
      45.如權(quán)利要求43所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述第二web服務(wù)包括另一安全性,其中,所述虛擬合約是在所述安全性可被所述第一web服務(wù)和所述第二web服務(wù)接受時(shí)形成的。
      46.如權(quán)利要求43所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,所述所述第一web服務(wù)包括第一端口,并且所述第二web服務(wù)包括第二端口,其中,當(dāng)所述虛擬合約形成時(shí),所述第一端口與所述第二端口結(jié)合。
      47.如權(quán)利要求43所述的網(wǎng)絡(luò)化系統(tǒng),其特征在于,當(dāng)創(chuàng)建所述虛擬合約以形成包含所述第一web服務(wù)和所述第二web服務(wù)兩者的組合web服務(wù)時(shí),所述第一web服務(wù)在程上聯(lián)合所述第二web服務(wù)。
      48.一種計(jì)算機(jī)可讀介質(zhì),具有保存于其上的可定制、基于標(biāo)簽的數(shù)據(jù)結(jié)構(gòu),以供web服務(wù)使用,以評估與另一web服務(wù)的安全互操作性,所述數(shù)據(jù)結(jié)構(gòu)包含一端口類型標(biāo)簽,它表示能夠由web服務(wù)調(diào)用的操作;以及一安全性標(biāo)簽,它表示程上指定web服務(wù)調(diào)用所述操作的次序的安全性。
      49.如權(quán)利要求48所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述安全性標(biāo)簽是嵌套在所述端口類型標(biāo)簽內(nèi)的。
      50.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,嵌套在所述端口類型標(biāo)簽內(nèi)的是表示所述操作的簽名的一個(gè)或多個(gè)簽名標(biāo)簽。
      51.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,嵌套在所述安全性標(biāo)簽內(nèi)的是一表示所述安全性的不活動或終止的停止安全性標(biāo)簽。
      52.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,嵌套在所述安全標(biāo)簽內(nèi)的是一表示兩個(gè)安全性之間的選擇的選擇安全性標(biāo)簽。
      53.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,嵌套在所述安全性標(biāo)簽內(nèi)的是一表示兩個(gè)安全性之間的選擇的菜單安全性標(biāo)簽。
      54.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,嵌套在所述安全性標(biāo)簽內(nèi)的是一表示兩個(gè)安全性的并行執(zhí)行的并行安全性標(biāo)簽。
      55.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,嵌套在所述安全性標(biāo)簽內(nèi)的是一其表示所述安全性的遞歸的遞歸安全性標(biāo)簽。
      56.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,嵌套在所述安全性標(biāo)簽內(nèi)的是一表示所述安全性的名稱的參考安全性標(biāo)簽。
      57.一種用于創(chuàng)建對應(yīng)于web服務(wù)程序的web服務(wù)規(guī)范的計(jì)算機(jī)可實(shí)現(xiàn)方法,所述方法包含創(chuàng)建能夠由web服務(wù)調(diào)用的操作集;以及創(chuàng)建指定所述操作集的可準(zhǔn)許的調(diào)用排列的安全性。
      58.如權(quán)利要求57所述的方法,其特征在于,所述方法還包含創(chuàng)建一端口類型,并將所述操作集和安全性放置在所述端口類型中。
      59.如權(quán)利要求58所述的方法,其特征在于,所述方法還包含創(chuàng)建所述web服務(wù)的抽象定義,并將所述端口類型放置到所述web服務(wù)的抽象定義中。
      60.如權(quán)利要求59所述的方法,其特征在于,所述方法還包含創(chuàng)建所述web服務(wù)的具體描述。
      61.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令用于執(zhí)行創(chuàng)建對應(yīng)于web服務(wù)程序的web服務(wù)的規(guī)范的方法,所述方法包含創(chuàng)建能夠由web服務(wù)調(diào)用的操作集;以及創(chuàng)建指定所述操作集的可準(zhǔn)許的調(diào)用排列的安全性。
      62.如權(quán)利要求61所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述方法還包含創(chuàng)建一端口類型,并將所述操作集和安全性放置在所述端口類型中。
      63.如權(quán)利要求62所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述方法還包含創(chuàng)建所述web服務(wù)的抽象定義,并將所述端口類型放置在所述web服務(wù)的抽象定義中。
      64.如權(quán)利要求63所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述方法還包含創(chuàng)建所述web服務(wù)的具體描述。
      全文摘要
      web服務(wù)的聯(lián)合是通過使用安全性經(jīng)由虛擬合約完成的(802)。web服務(wù)的聯(lián)合提高了web服務(wù)的安全互操作性,以創(chuàng)建比每個(gè)web服務(wù)可單獨(dú)提供的更大的功能(804)。當(dāng)一個(gè)web服務(wù)的端口類型與另一個(gè)web服務(wù)的另一端口類型兼容時(shí),為互操作性而聯(lián)合web服務(wù)(806)。
      文檔編號H04L29/12GK1701318SQ03825279
      公開日2005年11月23日 申請日期2003年5月13日 優(yōu)先權(quán)日2002年9月30日
      發(fā)明者L·G·梅瑞迪斯, S·比約戈, D·瑞齊特 申請人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1