两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

通過實現(xiàn)和綁定合約向客戶機服務(wù)提供功能的制作方法

文檔序號:6595336閱讀:155來源:國知局
專利名稱:通過實現(xiàn)和綁定合約向客戶機服務(wù)提供功能的制作方法
通過實現(xiàn)和綁定合約向客戶機服務(wù)提供功能
背景技術(shù)
通常,開發(fā)者編寫軟件應(yīng)用程序以在其配置中允許許多自由度。作為示例,這些開發(fā)者能夠通過建立在特定平臺的具體約束內(nèi)操作的軟件應(yīng)用程序來利用這些自由度,其中該特定平臺用以支持該軟件應(yīng)用程序。因此,與軟件應(yīng)用程序相關(guān)聯(lián)的這些自由使得軟件應(yīng)用程序能夠與平臺協(xié)作。在一個實例中,對軟件應(yīng)用程序的這種配置可由應(yīng)用程序-服務(wù)提供者來采用, 應(yīng)用程序-服務(wù)提供者開發(fā)軟件應(yīng)用程序以在可經(jīng)由因特網(wǎng)遠(yuǎn)程訪問的平臺上操作。在該實例中,平臺以用戶可通過使用軟件應(yīng)用程序遠(yuǎn)程地操縱文件的方式執(zhí)行軟件程序。因此, 平臺適于建立在其上運行的軟件應(yīng)用程序的底層元素以適應(yīng)遠(yuǎn)程使用的當(dāng)前負(fù)載。軟件應(yīng)用程序中的自由度允許放大或縮小這些底層元素并且允許管理這些底層元素之間的協(xié)調(diào)。 然而,因為無法公布這些底層元素的功能,所以向主題軟件應(yīng)用程序以外的軟件程序提供利用該功能的能力是不切實際的。此外,即使其它軟件程序知道當(dāng)前運行的底層元素的功能,也無法將各軟件應(yīng)用程序自動地鏈接在一起或者自動地配置底層元素以允許遠(yuǎn)程地利用該功能。對軟件應(yīng)用程序的底層元素進行配置的當(dāng)前解決方案依賴于平臺的管理員手動地設(shè)置底層元素。這些自組織解決方案是勞動密集型的、易于出錯的,并且不包括將底層元素鏈接至另一軟件程序。此外,當(dāng)平臺在尺寸上擴展時(包括支持大量軟件應(yīng)用程序操作的大量互連的硬件組件),手動介入的這些缺點被放大。概述提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進一步描述的概念。本發(fā)明內(nèi)容并不旨在標(biāo)識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。本發(fā)明的實施例涉及用于經(jīng)由在此被稱為“合約”的媒介使目標(biāo)服務(wù)(例如,在分布式計算環(huán)境中運行的服務(wù)應(yīng)用程序)向客戶機服務(wù)的功能方面的表達自動化的方法、系統(tǒng)以及其上具有當(dāng)被執(zhí)行時根據(jù)本發(fā)明的實施例執(zhí)行上述方法的計算機可執(zhí)行指令的計算機存儲介質(zhì)。通常,在被配置為支承服務(wù)應(yīng)用程序的操作的分布式計算環(huán)境的上下文中執(zhí)行這些方法。在各實施例中,一確定通過合約表達的功能方面滿足客戶機服務(wù)的依賴性就分配該合約。分配之后,本發(fā)明的方法可包括在分布式計算環(huán)境內(nèi)實現(xiàn)合約并將所實現(xiàn)的合約綁定至服務(wù)應(yīng)用程序的組件程序。通常,合約定義接口并且在安裝期間維護配置接口的特性。在合約實現(xiàn)期間,根據(jù)與其相關(guān)聯(lián)的特性建立并參數(shù)化接口之一。在所實現(xiàn)合約的綁定期間,組成目標(biāo)服務(wù)的組件程序的輸入端點經(jīng)由通信信道鏈接到所建立的接口。因此,向可到達所建立的接口的其它服務(wù)應(yīng)用程序提供對目標(biāo)服務(wù)的功能方面的訪問。綁定過程還可包括將構(gòu)成客戶機服務(wù)的組件程序的輸出端點鏈接至所建立的接口,以及基于所建立的接口的參數(shù)化來配置目標(biāo)服務(wù)的過程。另外,客戶機服務(wù)可被配置成使從輸出端點發(fā)出的調(diào)用格式化為目標(biāo)服務(wù)的某些特性。因此,來自客戶機服務(wù)的調(diào)用可在通信信道上路由以允許到達目標(biāo)程序,并且可與目標(biāo)服務(wù)的配置兼容以允許正確地使用目標(biāo)服務(wù)的功能方面。在各實施例中,目標(biāo)服務(wù)可以一接收到調(diào)用就確定客戶機服務(wù)的身份以及追加至其上的聲明。目標(biāo)服務(wù)通常能夠?qū)蛻魴C服務(wù)的身份動態(tài)地作出反應(yīng)。如此,在理解客戶機服務(wù)的身份之后,目標(biāo)服務(wù)因此就可以在回復(fù)調(diào)用時修改其服務(wù)等級(例如,操縱其功能方面)以適應(yīng)特定的客戶機服務(wù)。提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下的具體實施方式
中進一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。附圖簡述以下參考所附附圖詳細(xì)描述本發(fā)明的各實施例,附圖中

圖1是適用于實現(xiàn)本發(fā)明的各實施例的示例性計算環(huán)境的框圖;圖2是示出適用于實現(xiàn)本發(fā)明的各實施例的、被配置成將所實現(xiàn)的合約綁定至目標(biāo)服務(wù)的示例性分布式計算環(huán)境的框圖;圖3是示出適用于實現(xiàn)本發(fā)明的各實施例的、被配置成將綁定至目標(biāo)服務(wù)的合約綁定至客戶機服務(wù)的示例性分布式計算環(huán)境的框圖;圖4是根據(jù)本發(fā)明的一實施例的用于利用負(fù)載平衡(LB)信道來路由服務(wù)應(yīng)用程序之間的通信的示例性結(jié)構(gòu)控制器(fabric controller)的圖形表示;圖5是根據(jù)本發(fā)明的一實施例的用于利用無狀態(tài)交換機(SLQ信道來路由服務(wù)應(yīng)用程序之間的通信的示例性結(jié)構(gòu)控制器的圖形表示;圖6是根據(jù)本發(fā)明的一實施例的示出用于自動地實現(xiàn)合約并將所實現(xiàn)的合約綁定至目標(biāo)服務(wù)的總體方法的流程圖;以及圖7是根據(jù)本發(fā)明的一實施例的示出用于基于客戶機服務(wù)的依賴性自動地分配所實現(xiàn)的合約并將所分配的合約綁定至其上的總體方法的流程圖。詳細(xì)描述此處用具體細(xì)節(jié)描述本發(fā)明的各實施例的主題以滿足法定要求。然而,該描述本身并非旨在限制本專利的范圍。相反,發(fā)明人設(shè)想所要求保護的主題還可結(jié)合其他當(dāng)前或未來技術(shù)按照其他方式來具體化,以包括不同的步驟或類似于本文中所描述的步驟的步驟組合。本發(fā)明的各實施例涉及用于自動地適應(yīng)客戶機服務(wù)的方法、系統(tǒng)、以及其上包含當(dāng)被執(zhí)行時執(zhí)行根據(jù)本發(fā)明的各實施例的方法的計算機可執(zhí)行指令的計算機存儲介質(zhì),其中所編寫的客戶機服務(wù)預(yù)期某些功能可用于支持客戶機服務(wù)的操作??蛻魴C服務(wù)所依賴的這些功能可由合約來展示,其中合約用作允許客戶機服務(wù)到達并使用在分布式計算環(huán)境內(nèi)運行的目標(biāo)服務(wù)處的功能的媒介??苫诤霞s是否展示滿足客戶機服務(wù)預(yù)期履行的依賴性的功能來分配適當(dāng)?shù)暮霞s。然后可實現(xiàn)分配合約(例如,在分布式計算環(huán)境內(nèi)建立接口)并將其綁定至目標(biāo)和客戶機服務(wù)(例如,經(jīng)由所建立的接口鏈接目標(biāo)和客戶機服務(wù)的組件程序)。如此,使客戶機服務(wù)能夠執(zhí)行所需的預(yù)期功能被自動地發(fā)現(xiàn)并被鏈接到客戶機服務(wù)。因此,在一個方面,本發(fā)明的各實施例涉及其上包含計算機可執(zhí)行指令的一個或多個計算機可讀介質(zhì)。在執(zhí)行計算機可執(zhí)行指令之后,提供一種用于在分布式計算環(huán)境內(nèi)將所實現(xiàn)的合約綁定至目標(biāo)服務(wù)的方法。最初,該方法包括標(biāo)識定義接口聚集的合約并實現(xiàn)所標(biāo)識的合約以在分布式計算環(huán)境內(nèi)建立接口聚集的接口。通常,合約維護用于安裝每個接口的特性集,并且所實現(xiàn)的合約用作使客戶機服務(wù)到達目標(biāo)服務(wù)的一部分的媒介。另外,該方法可包括通過利用從與所建立的接口相關(guān)聯(lián)的特性集所得的值使所建立的接口參數(shù)化將所實現(xiàn)的合約綁定至目標(biāo)服務(wù)。在各實施例中,綁定過程包括自動地鏈接所建立的接口和一個或多個角色實例,并且經(jīng)由負(fù)責(zé)管理目標(biāo)服務(wù)的執(zhí)行的結(jié)構(gòu)控制器映射這些鏈接。一般地,角色實例包含對表示一種組件程序的至少一個角色的復(fù)制,其中該組件程序一經(jīng)執(zhí)行就將功能賦予目標(biāo)服務(wù)。在另一方面,本發(fā)明的各實施例涉及用于在分布式計算環(huán)境內(nèi)將先前綁定至目標(biāo)服務(wù)的所實現(xiàn)的合約綁定至客戶機服務(wù)的計算機化方法。在各實施例中,該方法包括從客戶機服務(wù)接收履行其依賴性的指示以及分配展示滿足客戶機服務(wù)的組件程序的依賴性的功能抽象的合約。通常,合約在分布式計算環(huán)境中先行實現(xiàn),并且被綁定至執(zhí)行該功能的目標(biāo)服務(wù)。該方法還可包括部署客戶機服務(wù)以啟動其操作。在示例性實施例中,部署涉及將一個或多個組件程序自動鏈接至由所分配的綁定合約所定義的接口,以及將對這些鏈接的描述寫入負(fù)責(zé)管理目標(biāo)服務(wù)的執(zhí)行的結(jié)構(gòu)控制器,其中在實現(xiàn)所分配的綁定合約之后在分布式計算環(huán)境內(nèi)建立接口。在各實施例中,該方法最初包括但不限于接收增加服務(wù)應(yīng)用程序的角色的實例的數(shù)量的指示。如上所述,角色表示特定類的組件,這類組件與服務(wù)應(yīng)用程序的其它角色協(xié)作以實現(xiàn)其分布式功能。作為示例,指示由包括服務(wù)應(yīng)用程序的遠(yuǎn)程使用工作負(fù)載的變化或者數(shù)據(jù)中心的一個或多個節(jié)點掉線兩者中的至少一個的事件所產(chǎn)生。因此,這些事件以及本發(fā)明所預(yù)期的其它事件可驅(qū)動在分布式數(shù)據(jù)中心內(nèi)安裝服務(wù)應(yīng)用程序的附加角色的期望。在又一方面中,本發(fā)明的各實施例涉及能夠通過實現(xiàn)和綁定可由分布式計算環(huán)境使用的合約將客戶機服務(wù)自動鏈接至目標(biāo)服務(wù)的計算機系統(tǒng)。一般地,數(shù)據(jù)中心包括分布式計算設(shè)備。計算機系統(tǒng)可包括其上包含多個計算機軟件組件的計算機存儲介質(zhì)。最初, 計算機軟件組件包括服務(wù)應(yīng)用程序(例如客戶機服務(wù)和目標(biāo)服務(wù))、合約、以及被配置成管理分布式計算環(huán)境的結(jié)構(gòu)控制器。一般地,客戶機服務(wù)包括一個或多個組件程序,而目標(biāo)服務(wù)包括一個或多個角色實例,其中角色實例包含對表示一種組件程序的至少一個角色的復(fù)制,該組件程序一經(jīng)執(zhí)行就將功能賦予目標(biāo)服務(wù)。在操作中,客戶機服務(wù)被配置成提交履行其依賴性的指示。合約可展示目標(biāo)服務(wù)的功能的抽象,其滿足客戶機服務(wù)的組件程序的依賴性。合約被進一步配置成用于定義至少一個接口。結(jié)構(gòu)控制器被配置成不按特定次序執(zhí)行以下過程中的一個或多個通過實現(xiàn)合約在分布式計算平臺上建立接口 ;將合約綁定至目標(biāo)服務(wù)以及綁定至客戶機服務(wù);以及經(jīng)由所建立的接口將客戶機服務(wù)的程序組件自動鏈接至目標(biāo)服務(wù)的角色實例。一般地,目標(biāo)服務(wù)的角色實例的實例化和協(xié)調(diào)管理由服務(wù)模型來促進(參見圖2 的附圖標(biāo)記250)。如此處所使用的,短語“服務(wù)模型”不旨在限制,其一般指包括與建立和管理分布式計算環(huán)境內(nèi)的目標(biāo)服務(wù)的實例有關(guān)的信息的任何通信。在一個實例中,服務(wù)模型包括對要建立目標(biāo)服務(wù)的哪些角色以及如何在數(shù)據(jù)中心內(nèi)安裝和啟動每個角色的實例的描述。即,服務(wù)模型用作對應(yīng)為目標(biāo)服務(wù)運行哪些角色的接合以及應(yīng)在何處安裝角色實例的條件。
另外,服務(wù)模型可分配分布式計算中心(參見圖2和圖3的附圖標(biāo)記200)內(nèi)的一個或多個節(jié)點(例如圖2和圖3中的節(jié)點I 221、II 222、III 223、IV 2 以及V 225)用以支持角色實例。這可由結(jié)構(gòu)控制器來執(zhí)行。因此,在特定實施例中,服務(wù)模型用作接口藍(lán)圖,接口藍(lán)圖提供用于管理目標(biāo)服務(wù)以及客戶機服務(wù)的組件程序(諸如角色實例)的指令。 即,在服務(wù)模型被部署到遍及分布式計算環(huán)境的分布式位置后,服務(wù)模型幫助在協(xié)調(diào)組件程序之間的活動時引導(dǎo)結(jié)構(gòu)控制器。這些位置通常由服務(wù)模型內(nèi)的部署規(guī)范來描述。一般地,短語“部署規(guī)范”不旨在限制,并且用于指代管理節(jié)點上的角色實例的實例化、標(biāo)識哪些通信信道用作角色實例之間的通信路徑、和/或提供描述將執(zhí)行目標(biāo)服務(wù)的特定方式的信息的機制。目標(biāo)服務(wù)的角色實例(例如圖2的目標(biāo)服務(wù)205的角色A 261和角色B 262) 一般指至少一個角色的復(fù)制品。一般地,如此處所使用的,術(shù)語“角色”寬泛地表示與目標(biāo)服務(wù)的其它角色協(xié)作以實現(xiàn)滿足客戶機服務(wù)的預(yù)期依賴性的功能的任何種類的組件。為了啟動目標(biāo)服務(wù)的操作及其功能方面,服務(wù)模型結(jié)合部署規(guī)范將角色實例實例化于分布式計算環(huán)境的節(jié)點上。實例化最初包括分配被確定為可用于主存角色實例的節(jié)點,將角色實例放置在所分配的節(jié)點上,配置所放置的角色實例,以及構(gòu)造設(shè)置在角色實例上的輸入端點和輸出端點之間的互連。如以下更詳細(xì)討論的,實現(xiàn)合約之后,可將接口鏈接至角色實例的輸入端點以促進對目標(biāo)服務(wù)的功能的一部分的訪問。一般地,分布式計算環(huán)境內(nèi)的節(jié)點用于適應(yīng)角色實例的操作。如此處所使用的,術(shù)語“節(jié)點”不旨在限制,而是涵蓋所有形式的計算設(shè)備,例如個人計算機、臺式計算機、膝上型計算機、手持式設(shè)備、移動手機、消費電子設(shè)備等。在一個方面中,節(jié)點表示經(jīng)由網(wǎng)絡(luò)云互連的多個分布式計算設(shè)備中的計算設(shè)備。一般地,這些分布式計算設(shè)備能夠主存服務(wù)應(yīng)用程序的各種角色的多個實例。作為示例,特定節(jié)點可能能夠適應(yīng)兩個或更多個主機環(huán)境,其中每個主機環(huán)境支持角色實例。這些角色實例可完全隔離地(即對服務(wù)應(yīng)用程序施加高級別的安全性)、與其它角色部分通信地、或者與服務(wù)應(yīng)用程序的一個或多個其它角色處于交互狀態(tài)地在節(jié)點上運行。一旦操作,可將正在運行的目標(biāo)服務(wù)綁定至客戶機服務(wù)以履行被寫入客戶機服務(wù)的期望依賴性。合約通常是本發(fā)明所采用的用于推進綁定過程的媒介。在一個實施例中, 合約展示對正在運行的目標(biāo)服務(wù)期望的事物(即目標(biāo)服務(wù)的功能)的抽象定義。在另一實施例中,合約定義接口聚集并且維護與每個接口相關(guān)聯(lián)的特性集。一般地,接口在一個或多個方面相關(guān)。在各實施例中,特性用于在接口安裝至分布式計算環(huán)境后定制或參數(shù)化接口。 作為示例,特性可部分依賴于節(jié)點協(xié)議。當(dāng)利用適當(dāng)?shù)男畔?chuàng)建目標(biāo)服務(wù)時填充這些特性, 使得結(jié)構(gòu)控制器能找到目標(biāo)服務(wù)并且能配置客戶機服務(wù)的組件程序以成功地到達目標(biāo)服務(wù)。如下所述,可實現(xiàn)合約(例如,建立所定義接口的一個聚集)并將其綁定至目標(biāo)服務(wù)。結(jié)構(gòu)控制器可部分地基于一個或多個目標(biāo)服務(wù)的功能選擇將目標(biāo)服務(wù)綁定至該一個或多個目標(biāo)服務(wù)。因此,可將合約綁定至不止一個服務(wù)應(yīng)用程序。然而,可根據(jù)節(jié)點特性、所選目標(biāo)服務(wù)的角色實例等對在實施合約期間建立的接口進行不同的配置。在簡要描述了本發(fā)明的各實施例的概覽后,以下描述適于實現(xiàn)本發(fā)明的各實施例的示例性操作環(huán)境。
概括地參考附圖,并首先具體參考圖1,示出了用于實現(xiàn)本發(fā)明的各實施例的示例性操作環(huán)境,并將其概括地指定為計算設(shè)備100。計算設(shè)備100只是合適的計算環(huán)境的一個示例,并且不旨在對本發(fā)明的各實施例的使用范圍或功能提出任何限制。也不應(yīng)該把計算環(huán)境100解釋為對所示出的任一組件或其組合有任何依賴性或要求。本發(fā)明的各實施方式可以在由計算機或諸如個人數(shù)據(jù)助理或其他手持式設(shè)備之類的其他機器執(zhí)行的計算機代碼或機器可使用指令的一般上下文中描述,該機器可使用指令包括諸如組件程序之類的計算機可執(zhí)行指令。一般而言,包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等的組件程序指的是執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的代碼。本發(fā)明的各實施方式可以在各種系統(tǒng)配置中實施,這些系統(tǒng)配置包括手持式設(shè)備、消費電子產(chǎn)品、通用計算機、專用計算設(shè)備等等。本發(fā)明也可以在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計算環(huán)境中實施。繼續(xù)參考圖1,計算設(shè)備100包括直接或間接耦合以下設(shè)備的總線110 存儲器 112、一個或多個處理器114、一個或多個呈現(xiàn)組件116、輸入/輸出(I/O)端口 118、I/O組件120、和說明性電源122??偩€110表示一個或多個總線(諸如地址總線、數(shù)據(jù)總線或其組合)。雖然為了清楚起見利用線條示出了圖1的各框,但是實際上,各組件的輪廓并不是那樣清楚,并且比喻性地來說,線條更精確地將是灰色的和模糊的。例如,可以將諸如顯示設(shè)備之類的呈現(xiàn)組件視為I/O組件。同樣,處理器具有存儲器。發(fā)明人認(rèn)識到,這是本領(lǐng)域的特性,并且重申,圖1的圖示只是例示可結(jié)合本發(fā)明的一個或多個實施例來使用的示例性計算設(shè)備。諸如“工作站”、“服務(wù)器”、“膝上型計算機”、“手持式設(shè)備”等分類之間沒有區(qū)別,它們?nèi)慷急徽J(rèn)為是在圖1的范圍之內(nèi)并且被稱為“計算機”或“計算設(shè)備”。計算設(shè)備100通常包括各種計算機可讀介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可以包括隨機存取存儲器(RAM);只讀存儲器(ROM);電可擦除可編程只讀存儲器 (EEPROM);閃存或其它存儲器技術(shù);CDR0M、數(shù)字多功能盤(DVD)或其它光或全息介質(zhì);磁帶盒、磁帶、磁盤存儲或其它磁存儲設(shè)備;或可用于對所需信息進行編碼并且可由計算設(shè)備 100訪問的任何其它介質(zhì)。存儲器112包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì)。存儲器可以是可移動的,不可移動的,或兩者的組合。示例性硬件設(shè)備包括固態(tài)存儲器、硬盤驅(qū)動器、 光盤驅(qū)動器等。計算設(shè)備100包括從諸如存儲器112或I/O組件120等各種實體讀取數(shù)據(jù)的一個或多個處理器。呈現(xiàn)組件116向用戶或其他設(shè)備呈現(xiàn)數(shù)據(jù)指示。示例性呈現(xiàn)組件包括顯示設(shè)備、揚聲器、打印組件、振蕩組件等。I/O端口 118允許計算設(shè)備100在邏輯上耦合至包括I/O組件120在內(nèi)的其他設(shè)備,其中某些設(shè)備可以是內(nèi)置的。說明性組件包括話筒、 操縱桿、游戲板、圓盤式衛(wèi)星天線、掃描儀、打印機、無線設(shè)備等等?,F(xiàn)在轉(zhuǎn)向圖2,示出了顯示適用于實現(xiàn)本發(fā)明的各實施例時的分布式計算環(huán)境 200的框圖。一般地,分布式計算環(huán)境200被配置成將所實現(xiàn)的合約235綁定至目標(biāo)服務(wù) 205并將綁定至目標(biāo)服務(wù)205的合約綁定至客戶機服務(wù),如圖3所示。分布式計算環(huán)境200 包括數(shù)據(jù)中心210,數(shù)據(jù)中心210被配置成根據(jù)服務(wù)模型250容納和支持目標(biāo)服務(wù)205的組件程序或角色A 261與角色B 262的實例的操作。本領(lǐng)域普通技術(shù)人員將理解和明白,圖 2所示的數(shù)據(jù)中心210僅僅是用于容納一個或多個服務(wù)應(yīng)用程序(例如目標(biāo)服務(wù)205)的一個合適示例,并且不旨在對本發(fā)明的各實施方式的使用范圍或功能提出任何限制。也不應(yīng)將數(shù)據(jù)中心210解釋為對任何單個節(jié)點、節(jié)點組合(例如,節(jié)點I 221、II 222以及III 223)、資源(未示出)、或用于訪問資源的API集(未示出)有任何依賴和要求。此外,盡管為了清楚起見用線條示出了圖2的各個框,但是在實際上,各組件的輪廓并不是那樣清楚, 并且比喻性地來說,線條更精確地將是灰色的和模糊的。數(shù)據(jù)中心210包括各種節(jié)點(例如節(jié)點I 221、II 222以及III 223)、在每個節(jié)點上運行的操作系統(tǒng)、角色實例A 261和B沈2、接口(例如接口 220)、以及常常包括的結(jié)構(gòu)控制器215,結(jié)構(gòu)控制器215可包括本地安裝在節(jié)點I 221、11 222和III 223上的結(jié)構(gòu)代理(未示出)。結(jié)構(gòu)代理用作結(jié)構(gòu)控制器215的擴展,并且協(xié)作用于安裝和管理目標(biāo)服務(wù) 205等。另外,角色實例A 261和B 262可經(jīng)由發(fā)出調(diào)用的輸入端點(例如輸入端點255) 和接收調(diào)用的輸出端點彼此互連。在一個實例中,這些互連中的一個或多個可經(jīng)由網(wǎng)絡(luò)云 (未示出)來建立。網(wǎng)絡(luò)云將以上所列出的實體互連,使得角色實例A 261與B 262和跨各種物理資源可分布地設(shè)置的接口 220可識別彼此的位置以在它們之間建立通信。另外,網(wǎng)絡(luò)云便于通信信道290上的這種通信,其中通信信道290將接口 220可操作地耦合至角色 A的實例的輸入端點255。作為示例,網(wǎng)絡(luò)云可包括但不限于一個或多個局域網(wǎng)(LAN) 和/或廣域網(wǎng)(WAN)。這樣的聯(lián)網(wǎng)環(huán)境常見于辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中。因此,網(wǎng)絡(luò)不在此進一步描述。此外,應(yīng)當(dāng)注意,本發(fā)明的各實施例不限于在圖2中示出的這些物理資源上實現(xiàn), 而是可在處于其各實施例的范圍內(nèi)的各種不同類型的計算設(shè)備、裝備和組件程序中的任一種上實現(xiàn)。換言之,所示出的數(shù)據(jù)中心210的節(jié)點I 221、11 222以及III 223描繪僅僅旨在用于討論目的的示例性配置;因此,計算行業(yè)中已知的任何合適的節(jié)點布局以及其上駐留的角色實例都可以使用并且已被本發(fā)明構(gòu)想到。數(shù)據(jù)中心210的這些示例性節(jié)點I 221、II 222以及III 223和角色實例A 261 與B262用于引入實現(xiàn)服務(wù)合約以及將所實現(xiàn)的合約235綁定至目標(biāo)服務(wù)205的概念,現(xiàn)在將對此進行討論。最初,服務(wù)合約是進行標(biāo)識。在一個實例中,合約被標(biāo)識用于展示履行被寫入客戶機服務(wù)(參見圖3的附圖標(biāo)記305)的預(yù)期依賴性的角色A的實例261的功能260 的抽象。所標(biāo)識的合約通常定義接口聚集并且維護特性集M0,其中特性集240各自與一個或多個接口相關(guān)聯(lián)。在操作中,特性集240有助于安裝和定制每個接口的配置??蓪崿F(xiàn)所標(biāo)識的服務(wù)合約以建立分布式計算環(huán)境200的計算設(shè)備(例如節(jié)點I 221)內(nèi)的接口聚集的接口 220。如以上所詳細(xì)討論的,所實現(xiàn)的合約用作客戶機服務(wù)到達目標(biāo)服務(wù)205的功能260的媒介。實現(xiàn)過程可包括利用從與所建立的接口 220相關(guān)聯(lián)的特性集240所得的值230參數(shù)化所建立的接口 220。在一個實例中,參數(shù)化可包括將值230賦予接口 200內(nèi)隱含的參數(shù)270。實現(xiàn)過程還可包括將約束295安裝到接口 220。最初,與接口 220相關(guān)聯(lián)的特性集 240可指定約束四5,約束295部分地控制所建立的接口 220的操作。此外,利用從特性集 240所得的值230參數(shù)化所建立的接口 220實施分布式計算環(huán)境200內(nèi)的約束四5。如此, 約束295用作確定如何鉤住接口 220 (例如,定義服務(wù)器的哪些外部端口可從遠(yuǎn)程web服務(wù)器應(yīng)用程序接收調(diào)用225)以及部分地如何配置接口 220的準(zhǔn)則。作為示例,當(dāng)特性240指定諸如具體的端口數(shù)之類的特定約束四5時,結(jié)構(gòu)控制器215在數(shù)據(jù)中心210內(nèi)分配它們并且當(dāng)調(diào)用225被發(fā)出時將它們設(shè)置為目標(biāo)。因此,當(dāng)嘗試到達目標(biāo)服務(wù)210的功能260時,接口 220被限制為使用這些分配的端口數(shù)。約束295可助于配置接口 220。在一個示例中,約束295可促使接口 220過濾這些訪問功能260的嘗試,從而限制進入目標(biāo)服務(wù)205的業(yè)務(wù)流量。在另一示例中,約束295可促使接口 220允許由特定身份機構(gòu)所認(rèn)證的客戶機服務(wù)到達功能沈0。在又一示例中,在預(yù)定的時間幀期滿后,約束295可促使接口 220或經(jīng)由接口 220促使目標(biāo)服務(wù)205關(guān)閉與功能沈0的連接,從而防止盜取處理。在實現(xiàn)之后,所實現(xiàn)的合約235可經(jīng)由結(jié)構(gòu)控制器215綁定至目標(biāo)服務(wù)205。將所實現(xiàn)的合約235綁定至目標(biāo)服務(wù)205的過程可包括經(jīng)由通信信道四0自動地鏈接所建立的接口 220和角色A的實例沈1。如以下參考圖4和圖5所詳細(xì)討論的,通信信道290可采用多種形式中的任何一種。通常,通信信道290將接口 220經(jīng)由輸入端點255可操作地耦合至目標(biāo)服務(wù)205的功能沈0。輸入端點255和/或通信信道290可被映射以供將來引用。作為示例,結(jié)構(gòu)控制器215可負(fù)責(zé)分配數(shù)據(jù)儲存210中的適當(dāng)?shù)耐ㄐ判诺浪?以供接口 220使用。在各實施例中,在將所實現(xiàn)的合約235綁定至目標(biāo)服務(wù)205之后,將接口 220鏈接至角色A的實例的輸入端點225。鏈接促進對提供功能沈0的目標(biāo)服務(wù)205的多個位置的訪問。換言之,接口 220產(chǎn)生對提供合乎需要的功能沈0的角色A的所有相關(guān)實例沈1 的認(rèn)識。綁定過程進一步包括基于由所建立的接口 220所實施的指定約束四5自動地配置角色A的實例沈1。配置過程由附圖標(biāo)記275示出。在各實施例中,在接口 220處所體現(xiàn)的約束295指示結(jié)構(gòu)控制器215如何在目標(biāo)服務(wù)205內(nèi)設(shè)置限制。在一個示例中,約束295可指示存在關(guān)于誰可訪問角色A的實例的限制,比如僅僅是位于北美的客戶機服務(wù)。在另一示例中,將接口 220配置成啟用安全性的接口的約束295又可配置目標(biāo)服務(wù)205以審閱進入的調(diào)用225的真實性證書。通常,當(dāng)增大數(shù)據(jù)中心210內(nèi)的目標(biāo)服務(wù)205的實例數(shù)時,服務(wù)模型250設(shè)置有或者可以指代約束四5以正確地配置新的角色實例上的輸入端點 255。綁定過程還包括標(biāo)識并鏈接至適應(yīng)功能沈0的角色A的實例261的適當(dāng)?shù)妮斎攵它c255。一般地,“輸入端點”寬泛地指代角色A期望調(diào)用225進入的端口,從而允許其它實體接觸角色A。另外,端口可用于響應(yīng)于嵌入在調(diào)用225內(nèi)的請求??稍谕煌ㄐ判诺浪? 上將該響應(yīng)或“回復(fù)”發(fā)回提供對功能260的請求的客戶機服務(wù)。因為目標(biāo)服務(wù)205和客戶機服務(wù)被配置成在協(xié)商(例如,應(yīng)用來自所實現(xiàn)的合約235的約束四5)期間兼容,所以調(diào)用225和回復(fù)對于目標(biāo)服務(wù)205和客戶機服務(wù)兩者而言都是可理解的(例如,類似的協(xié)議或語言)O此外,在鏈接至輸入端點255之后,數(shù)據(jù)中心210內(nèi)的輸入端點255的網(wǎng)絡(luò)地址沈5 (例如IP地址)可傳播至結(jié)構(gòu)控制器215用于定位鏈接至接口 220的、角色A的實例 2610這些網(wǎng)絡(luò)地址265表示由所實現(xiàn)的合約235展示的功能沈0的位置,并且使得依賴于功能260的客戶機服務(wù)能夠訪問適當(dāng)?shù)奈恢没蚪巧珜嵗?。另外,網(wǎng)絡(luò)地址265幫助數(shù)據(jù)中心210外部的實體接觸接口 220。一般地,在綁定期間將接口 220鏈接至輸入端點255 之后,結(jié)構(gòu)控制器215負(fù)責(zé)獲取和維護輸入端點255的網(wǎng)絡(luò)地址沈5的清單。在一個實例中,該網(wǎng)絡(luò)地址265可對客戶機服務(wù)隱藏。因此,結(jié)構(gòu)控制器215自動地建立將調(diào)用225從服務(wù)應(yīng)用程序路由至適當(dāng)?shù)妮斎攵它c255的靜態(tài)路徑。在另一實例中, 該網(wǎng)絡(luò)地址265可對客戶機服務(wù)可見。在該實例中,客戶機服務(wù)可以是需要接觸地址的知識以發(fā)送調(diào)用225的傳統(tǒng)應(yīng)用程序。因此,結(jié)構(gòu)控制器215可向客戶機服務(wù)公布網(wǎng)絡(luò)地址 265.在又一實例中,該網(wǎng)絡(luò)地址265可由客戶機服務(wù)訪問。因此,在通信信道290動態(tài)更新之后,客戶機服務(wù)可檢索網(wǎng)絡(luò)地址沈5以訪問輸入端點。在目標(biāo)服務(wù)205處接收到調(diào)用255之后,提供調(diào)用225的客戶機服務(wù)的身份可被請求以驗證調(diào)用225的真實性。在一個實例中,客戶機服務(wù)的身份由結(jié)構(gòu)控制器215記錄。 記錄可在部署客戶機服務(wù)之后、將客戶機服務(wù)綁定至所實現(xiàn)的合約235之后或者其后的任何時間發(fā)生。在將所發(fā)出的調(diào)用225中繼至角色A的實例261之后,聲明281可追加至所發(fā)出的調(diào)用225上。通過訪問客戶機服務(wù)的身份以驗證發(fā)出調(diào)用225的客戶機服務(wù)的組件程序以及將所確定的身份和客戶機服務(wù)的其它特性集成到聲明281中來產(chǎn)生聲明觀1。這樣,結(jié)構(gòu)控制器215本質(zhì)上保證調(diào)用225的來源并且代表客戶機服務(wù)提供認(rèn)證。 如此,聲明281允許目標(biāo)服務(wù)205驗證調(diào)用者,從而確保目標(biāo)服務(wù)205處的特定的安全級別。在各實施例中,驗證可包括檢查聲明觀1以確定是否履行調(diào)用225的請求。檢查可包括檢查聲明的內(nèi)容(例如客戶機服務(wù)的特性和/或能力)。內(nèi)容的細(xì)節(jié)級別通常依賴于聲明281的粒度、發(fā)送調(diào)用225的客戶機服務(wù)的類型、和/或由客戶機服務(wù)的輸出端點所支持的協(xié)議。在一個實施例中,聲明內(nèi)的客戶機服務(wù)的特性可包括結(jié)構(gòu)控制器215可關(guān)于客戶機設(shè)備推斷的任何信息。在一個實例中,可在聲明281的內(nèi)容中提供客戶機服務(wù)的地理位置。作為響應(yīng),目標(biāo)服務(wù)205可履行調(diào)用225或?qū)⑵渲匦露ㄏ虻礁墓?jié)點?;蛘撸繕?biāo)服務(wù)205可基于地理位置調(diào)制對調(diào)用225的回復(fù)。例如,如果地理位置指示調(diào)用225源于法國,則目標(biāo)服務(wù)205可準(zhǔn)備用法語回復(fù)。在另一實例中,對功能沈0的權(quán)限的列表可并入聲明281的內(nèi)容中。作為響應(yīng),目標(biāo)服務(wù)205可根據(jù)客戶機服務(wù)所擁有的權(quán)限來限制客戶機服務(wù)對它所控制的資源的訪問。在另一實施例中,目標(biāo)服務(wù)205可通過查詢驗證應(yīng)用程序編程接口(API)201來驗證客戶機服務(wù)的身份和權(quán)限。驗證API 201可提供關(guān)于所接收的調(diào)用225的數(shù)據(jù),因為結(jié)構(gòu)控制器215知道調(diào)用225的來源。因此,如果聲明281是不完整的或是不可用的,則目標(biāo)服務(wù)205可先行確定是否履行調(diào)用225 (例如提供功能沈0)?,F(xiàn)在轉(zhuǎn)向圖3,所示框圖示出適用于實現(xiàn)本發(fā)明的各實施例的、被配置成將綁定至目標(biāo)服務(wù)的合約綁定至客戶機服務(wù)的示例性分布式計算環(huán)境200。最初,分布式計算環(huán)境 200包括如上所述的客戶機服務(wù)305用于訪問目標(biāo)服務(wù)??蛻魴C服務(wù)305可表示被配置成在數(shù)據(jù)中心210內(nèi)運行的、在數(shù)據(jù)中心210外部運行但與其遠(yuǎn)程連接的、或者部分地駐留在數(shù)據(jù)中心210上的任何服務(wù)應(yīng)用程序??蛻魴C服務(wù)305可包括可在數(shù)據(jù)中心210的分開節(jié)點上(例如,節(jié)點IV 2M和V 225)分布的組件程序(例如,組件程序A 361和B 362)。在客戶機服務(wù)305由數(shù)據(jù)中心210容納的實施例中,根據(jù)服務(wù)模型350處維護的且用于管理客戶機服務(wù)305的執(zhí)行的部署規(guī)范,結(jié)構(gòu)控制器215可負(fù)責(zé)部署組件程序A 361和B 362。在示例性實施例中,組件程序A 361和B 362中的一個或多個由開發(fā)者利用依賴性360編寫。一般地,客戶機服務(wù)305的正確執(zhí)行依賴于利用適當(dāng)?shù)墓δ?例如,圖2的目標(biāo)服務(wù)205的功能沈0)來履行依賴性360。在操作中,客戶機服務(wù)305可傳播履行其依賴性360的指示。作為響應(yīng),結(jié)構(gòu)控制器215可檢查依賴性360并且分配合約,其中合約展示滿足依賴性360的功能的抽象。如上所述,滿足依賴性360的合約可在分布式計算環(huán)境200 內(nèi)預(yù)先實現(xiàn)。另外,所實現(xiàn)的合約可預(yù)先綁定至執(zhí)行由合約所展示的功能的目標(biāo)服務(wù)。在分配滿足的合約之后,結(jié)構(gòu)控制器215可將該已分配的且預(yù)先綁定的合約335 綁定至客戶機服務(wù)305。在各實施例中,綁定客戶機服務(wù)305的過程可在客戶機服務(wù)305的組件程序A 361和B 362的初始部署期間進行以啟動其操作。一般地,部署過程包括將組件程序A 361和B 362自動地鏈接至由所分配的已綁定合約335所定義的接口 220。已綁定合約335的所在位置利用從特性集240得到的約束295來配置接口 220。在一個實施例中,在實現(xiàn)所分配的已綁定合約335之后,在分布式計算環(huán)境200內(nèi)建立接口 220。另外,對鏈接的描述可寫入結(jié)構(gòu)控制器215。替換地,可將鏈接至少臨時地存儲在可由結(jié)構(gòu)控制器 215訪問以供將來引用的任何數(shù)據(jù)儲存處。在示例性實施例中,將組件程序A 361和B 362自動地鏈接至接口 220的過程可包括標(biāo)識設(shè)置在組件程序B 362上的輸出端點375,其中組件程序B 362展示依賴性360。 一般地,輸出端點375可表示組件程序B 362用以啟動從他者請求事物的端口。自動鏈接的過程可繼續(xù)分配分布式計算環(huán)境200內(nèi)的通信信道390以將所建立的接口 220可操作地耦合至輸出端點375。通信信道390通常用于傳達從客戶機服務(wù)305的輸出端點375發(fā)出的調(diào)用225。通常,調(diào)用225包括由組件程序B 362作出的、履行寫入其中的依賴性360的請求。在各實施例中,依賴性360可包括不在客戶機服務(wù)305處執(zhí)行但已由通過接口 220 鏈接的功能所完成的數(shù)據(jù)的外部處理或檢索。在完成綁定過程之后,將已綁定合約335綁定至客戶機服務(wù)305和互補目標(biāo)服務(wù)兩者。在各實施例中,客戶機服務(wù)305可查詢接口 220的約束四5以確定接口 220是否能夠適應(yīng)由客戶機服務(wù)305的服務(wù)模型350所指定的功能方面。如果不能,則客戶機服務(wù)305 可由結(jié)構(gòu)控制器215重新綁定至替代已綁定接口和目標(biāo)服務(wù)但保留履行依賴性360的功能的另一合約。當(dāng)已綁定目標(biāo)服務(wù)掉線時也可進行重新綁定。出于將目標(biāo)服務(wù)關(guān)聯(lián)至客戶機服務(wù)305的依賴性360的目的,可使用各種類型的合約。在一個實施例中,使用自綁定合約。一般地,自綁定合約由可由結(jié)構(gòu)控制器215操作的插入機制自動地綁定。因此,結(jié)構(gòu)控制器215選擇將處理經(jīng)由接口 220作出的調(diào)用225 的目標(biāo)服務(wù)或偽服務(wù)。在另一實施例中,使用了標(biāo)準(zhǔn)合約。一般地,可用兩種不同的方式來綁定標(biāo)準(zhǔn)合約。在一個示例性方式中,向每個目標(biāo)服務(wù)提供唯一的名稱。然后結(jié)構(gòu)控制器215可通過驗證已綁定的目標(biāo)服務(wù)確實實現(xiàn)了已綁定合約335來檢查使用唯一名稱的客戶機服務(wù)305 與目標(biāo)服務(wù)的關(guān)聯(lián)的有效性。隨后從目標(biāo)服務(wù)的輸入端點獲得網(wǎng)絡(luò)地址(例如網(wǎng)絡(luò)地址沈5)。在另一方式中,將關(guān)于未由數(shù)據(jù)中心210所主存的外部客戶機服務(wù)305的輸出端點 375和/或目標(biāo)服務(wù)的輸入端點的信息(例如,IP地址/DNS名稱端口)傳遞到結(jié)構(gòu)控制器215。針對接口 220檢測IP:端口規(guī)范。因此,結(jié)構(gòu)控制器215配置鏈接至接口 220的組件程序B 362的輸出端點375。然而,不執(zhí)行所命名的目標(biāo)服務(wù)滿足已綁定的合約335的驗證。在又一示例性實施例中,通常在客戶機服務(wù)305駐留在數(shù)據(jù)中心210外部時使用外部合約。一般地,外部合約包括低級別抽象,其允許客戶機服務(wù)305接觸由客戶機服務(wù)305的部署所劃分的范圍內(nèi)的任何公共IP地址。實際上不執(zhí)行綁定,并且假定客戶機服務(wù) 305提供目標(biāo)服務(wù)的網(wǎng)絡(luò)地址沈5以訪問其功能。如此,所鏈接的輸入端點的網(wǎng)絡(luò)地址沈5 用于配置和路由通信信道390。如上所述,已綁定合約335可維護與所建立的接口 220相關(guān)聯(lián)的特性集M0。在操作中,約束295可通過利用從關(guān)聯(lián)的特性集240所得的值使所建立的接口 220參數(shù)化來應(yīng)用于所建立的接口 220。這些應(yīng)用的約束295可向客戶機服務(wù)305公布用以配置組件程序A 361和B 362。配置客戶機服務(wù)305的過程由附圖標(biāo)記388示出。一般地,配置組件程序A 361和B 362以及輸出端點375的過程388包括從應(yīng)用于接口 220的約束295提取指示。這些指示可用于對客戶機服務(wù)305的各方面的任何數(shù)量的配置以及據(jù)此提供的通信。 例如,這些指示可用于格式化從輸出端點375發(fā)出的調(diào)用225。除其它以外,通過利用指示來配置調(diào)用225的格式化,調(diào)用225可與處于實現(xiàn)期望功能的目標(biāo)程序的角色實例的底層的協(xié)議兼容。一旦被配置,當(dāng)依賴性360要被履行時客戶機服務(wù)305可發(fā)出調(diào)用225。在各實施例中,可從實現(xiàn)依賴性360的組件程序B 362的輸出端點375發(fā)出調(diào)用225。然后通過分布式計算環(huán)境200的所分配的通信信道390將調(diào)用225路由至所建立的接口 220。如以上所詳細(xì)討論的,可使所建立的接口 220參數(shù)化用以將所發(fā)出的調(diào)用225中繼至目標(biāo)服務(wù)或者用以過濾所發(fā)出的調(diào)用225。接口 220的這種判定可基于結(jié)合客戶機服務(wù)305的身份應(yīng)用于其上的約束四5。此示例性分布式計算環(huán)境200只是可以被實現(xiàn)以實現(xiàn)本發(fā)明的各方面的合適的環(huán)境的一個示例,而非旨在對本發(fā)明的使用范圍或功能提出任何限制。所示的分布式計算環(huán)境220的示例性系統(tǒng)體系結(jié)構(gòu)也不應(yīng)該被解釋為具有涉及如圖所示的組件215、220、 221、225、305、335、350、360、361以及362中的任何一個或組合的依賴性或需求。在某些實施例中,組件215、220、221、2M、225、305、335、350、360、361以及362中的一個或多個可被實現(xiàn)為獨立設(shè)備。在其他實施例中,組件215、220、221、225、305、335、350、360、361或362 中的一個或多個可以被直接地集成到數(shù)據(jù)中心210或者結(jié)構(gòu)控制器215中。本領(lǐng)域普通技術(shù)人員將理解,圖3中所示出的組件215、220、221、225、305、335、350、360、361或362本質(zhì)上和數(shù)量上是示例性的,不應(yīng)該被理解為限制性的。因此,在本發(fā)明的各實施例的范圍內(nèi),可以使用任意數(shù)量的組件以實現(xiàn)所需功能。 雖然為了清楚起見利用線條示出了圖3的各組件,但是實際上,各組件的輪廓并不是那樣清楚,并且比喻性地來說,線條更精確地將是灰色的和模糊的。此外,雖然將圖3的某些組件示為單個框,但是這些描述在本質(zhì)和數(shù)量上是示例性的且不應(yīng)被解釋為限制(例如,雖然僅示出一個客戶機服務(wù)305,但多得多的客戶機服務(wù)可通信耦合到接口 220)?,F(xiàn)在轉(zhuǎn)向圖4,其示出根據(jù)本發(fā)明一實施例的用于利用負(fù)載平衡(LB)信道410路由服務(wù)應(yīng)用程序(例如,客戶機服務(wù)305和目標(biāo)服務(wù)20 之間的通信(例如,調(diào)用225和回復(fù))的示例性結(jié)構(gòu)控制器215的圖形表示。最初,提供可由結(jié)構(gòu)控制器215訪問的連接定義450。這些連接定義450幫助指示LB機制420將通信路由至目標(biāo)服務(wù)205的多個角色實例411、412和413中的所選擇的一個。被選擇用于接收調(diào)用的角色實例可基于包括與發(fā)出調(diào)用225的客戶機服務(wù)305的角色(例如,角色421、422和423)的可比性、與角色(例如,角色421、422和42 的鄰近度、可用性等的任何數(shù)量的因素來選擇。
一旦選定,經(jīng)由承載(LB)信道410將調(diào)用傳送至目標(biāo)服務(wù)205的所選角色,其中承載信道410將所建立的接口 220鏈接至目標(biāo)服務(wù)205的角色(例如,角色411、412和413) 的輸入端點。在一個實例中,傳送可包括在所建立的接口 220處接收來自客戶機服務(wù)305 的調(diào)用225,以及調(diào)用LB機制420將調(diào)用225分發(fā)到LB信道410的可用通信信道。如此, 僅向客戶機服務(wù)305提供一個網(wǎng)絡(luò)地址用于向其發(fā)送調(diào)用225。根據(jù)連接定義450,結(jié)構(gòu)控制器215負(fù)責(zé)實施負(fù)載平衡方案,其確保調(diào)用225對接口 220的分發(fā)在目標(biāo)服務(wù)205的角色(例如,角色411、412和413)之間分布。在示例性實施例中,網(wǎng)絡(luò)地址是到接口 220和/ 或LB機制420的虛擬IP。LB機制420然后可將虛擬IP轉(zhuǎn)換成具體IP,其中每個具體IP 與不同的角色相關(guān)聯(lián)。參考圖5,其示出根據(jù)本發(fā)明一實施例的用于利用無狀態(tài)交換機(SLQ信道(例如,信道510、511和512)路由服務(wù)應(yīng)用程序(例如,客戶機服務(wù)305和目標(biāo)服務(wù)205)之間的通信(例如,調(diào)用521、522和523以及作為其響應(yīng)的回復(fù))的示例性結(jié)構(gòu)控制器的圖形表示。一般地,所分配的通信信道(參見圖2的附圖標(biāo)記四0)可包括將所建立的接口 220 鏈接至目標(biāo)服務(wù)205的角色(例如,角色411、412和413)的輸入端點的SLS信道510、511 和512。這些SLS信道510、511和512可由連接定義450存儲并由結(jié)構(gòu)控制器215維護。在操作中,在接收到調(diào)用(例如,調(diào)用521、522和523)之后,結(jié)構(gòu)控制器215標(biāo)識與該調(diào)用相關(guān)聯(lián)的網(wǎng)絡(luò)地址。網(wǎng)絡(luò)地址可由提供調(diào)用(例如調(diào)用521)的客戶機服務(wù)305 的角色(例如角色421)提供,或者基于調(diào)用來源由連接定義450提供?;诰W(wǎng)絡(luò)地址,在 SLS信道的被指定用于將所建立的接口 220鏈接至目標(biāo)服務(wù)205的適當(dāng)?shù)慕巧珜嵗?例如角色411)的輸入端點的通信信道(例如510)上路由調(diào)用225。因此,結(jié)構(gòu)控制器215確保可到達的外部可尋址的輸入端點的數(shù)量與鏈接至接口 220的目標(biāo)服務(wù)的組件程序或角色一樣多。這樣,每個輸出端點對應(yīng)于單個輸入端點,從而指定單個SLS信道和單個網(wǎng)絡(luò)地址用于路由調(diào)用。參考圖6,其示出根據(jù)本發(fā)明一實施例的示出用于自動地實現(xiàn)合約并將所實現(xiàn)的合約綁定至目標(biāo)服務(wù)的總體方法600的流程圖。此外,盡管術(shù)語“步驟”和/或“框”可在此處用于指示所采用的方法的不同元素,但除非而且僅當(dāng)明確描述了各個步驟的順序,否則該術(shù)語不應(yīng)被解釋為意味著此處公開的各個步驟之中或之間的任何特定順序。最初,如框605所示,標(biāo)識定義接口聚集的合約。另外,合約維護用于安裝每個接口的特性集。如框 610所示,實現(xiàn)所標(biāo)識的合約以在分布式計算環(huán)境內(nèi)建立接口聚集的接口。通常,所實現(xiàn)的合約引入用于使客戶機服務(wù)到達目標(biāo)服務(wù)的一部分的媒介。如框615所示,通過利用從與所建立的接口相關(guān)聯(lián)的特性集所得的值使所建立的接口參數(shù)化,將所實現(xiàn)的合約綁定至目標(biāo)服務(wù)。在各實施例中,參數(shù)化過程包括自動地鏈接所建立的接口和其一個或多個角色實例(參見框620),并且經(jīng)由負(fù)責(zé)管理目標(biāo)服務(wù)的執(zhí)行的結(jié)構(gòu)控制器映射這些鏈接(參見框 625)。作為說明,角色實例包含對表示一種組件程序的至少一個角色的復(fù)制,其中該組件程序一經(jīng)執(zhí)行就將功能賦予目標(biāo)服務(wù)?,F(xiàn)在轉(zhuǎn)向圖7,其示出根據(jù)本發(fā)明一實施例的示出用于基于客戶機服務(wù)的依賴性自動地分配所實現(xiàn)的合約并將所分配的合約綁定至其上的總體方法700的流程圖。最初, 如框705所示,從客戶機服務(wù)接收履行依賴性的指示。如上所述,客戶機服務(wù)包括一個或多個組件程序。如框710所示,分配展示滿足客戶機服務(wù)的組件程序的依賴性的功能的抽象的合約。通常,合約在分布式計算環(huán)境中實現(xiàn),并且被綁定至執(zhí)行該功能的目標(biāo)服務(wù)。如框 715所示,部署客戶機服務(wù)以啟動其操作。在各實施例中,部署涉及將組件程序自動鏈接至由所分配的已綁定合約定義的接口(參見框720),并且將這些鏈接的描述寫入負(fù)責(zé)管理目標(biāo)服務(wù)的執(zhí)行的結(jié)構(gòu)控制器(參見框725)。一般地,在實現(xiàn)所分配的已綁定合約之后,在分布式計算環(huán)境內(nèi)建立接口。本領(lǐng)域普通技術(shù)人員將認(rèn)識到,在圖6和圖7所示的實施例的范圍內(nèi)可采用任何數(shù)量的步驟來實現(xiàn)期望功能。此外,盡管為了清楚起見用線條示出了圖6和圖7的各個步驟,但是在實際上,各組件的輪廓并不是那樣清楚,并且比喻性地來說,線條更精確地將是灰色的或模糊的。此外,雖然圖6和圖7的某些步驟被描述成單個過程,但是該描繪在本質(zhì)上和數(shù)量上是示例性的,不應(yīng)該解釋為限制。參考各具體實施例描述了本發(fā)明的各實施例,各具體實施例在所有方面都旨在是說明性的而非限制性的。在不背離本發(fā)明范圍的情況下各替換實施例對本發(fā)明的各實施例的所屬領(lǐng)域的普通技術(shù)人員將變得顯而易見。從前面的描述可以看出,本發(fā)明很好地適用于實現(xiàn)上文所闡述的所有目的和目標(biāo),并且具有對于該系統(tǒng)和方法是顯而易見且固有的其他優(yōu)點??梢岳斫?,某些特征和子組合是有用的,并且可以在不參考其他特征和子組合的情況下使用。這由權(quán)利要求所構(gòu)想的, 并在權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種或多種其上包含計算機可執(zhí)行指令的計算機可讀介質(zhì),所述指令在被執(zhí)行時執(zhí)行一種用于在分布式計算環(huán)境內(nèi)將所實現(xiàn)的合約綁定至目標(biāo)服務(wù)的方法,所述方法包括標(biāo)識(605)定義接口聚集的合約,其中所述合約維護用于安裝所述接口中的每一個接口的特性集;實現(xiàn)(610)所標(biāo)識的合約以在所述分布式計算環(huán)境內(nèi)建立所述接口聚集的接口,其中所實現(xiàn)的合約引入用于使客戶機服務(wù)到達目標(biāo)服務(wù)的一部分的媒介;通過利用從與所建立的接口相關(guān)聯(lián)的特性集得到的值使所建立的接口參數(shù)化將所實現(xiàn)的合約綁定(61 至所述目標(biāo)服務(wù);其中綁定過程包括(a)自動鏈接(620)所建立的接口和一個或多個角色實例,其中所述一個或多個角色實例包含對表示一種組件程序的至少一個角色的復(fù)制,所述組件程序一經(jīng)執(zhí)行就將功能賦予所述目標(biāo)服務(wù);以及(b)經(jīng)由負(fù)責(zé)管理所述目標(biāo)服務(wù)的執(zhí)行的結(jié)構(gòu)控制器來映射(62 鏈接。
2.如權(quán)利要求1所述的計算機可讀介質(zhì),其特征在于,所述方法包括提供服務(wù)模型,所述服務(wù)模型維護用于將所述目標(biāo)服務(wù)的所述一個或多個角色實例部署到所述分布式計算環(huán)境內(nèi)的節(jié)點上的規(guī)范,所述部署規(guī)范在設(shè)置在所述一個或多個角色實例上的輸入端點和輸出端點之間構(gòu)造互連。
3.如權(quán)利要求2所述的計算機可讀介質(zhì),其特征在于,在綁定所實現(xiàn)的合約之后,將所述接口鏈接至所述一個或多個角色實例的所述輸入端點以促進對所述目標(biāo)服務(wù)的功能的一部分的訪問。
4.如權(quán)利要求3所述的計算機可讀介質(zhì),其特征在于,鏈接所建立的接口和一個或多個角色實例包括分配遍歷所述分布式計算環(huán)境的通信信道以將所建立的接口可操作地耦合至所鏈接的輸入端點。
5.如權(quán)利要求4所述的計算機可讀介質(zhì),其特征在于,所分配的通信信道包括將所建立的接口鏈接至所述一個或多個角色的所述輸入端點的承載(LB)信道,并且所述方法還包括在所建立的接口處接收來自所述客戶機服務(wù)的調(diào)用;以及調(diào)用LB機制將所述調(diào)用分發(fā)至所述LB信道中的可用通信信道。
6.如權(quán)利要求4所述的計算機可讀介質(zhì),其特征在于,所述方法還包括向所述結(jié)構(gòu)控制器傳播網(wǎng)絡(luò)地址,其中所述網(wǎng)絡(luò)地址用于定位鏈接至所建立的接口的所述一個或多個角色實例的所述輸入端點。
7.如權(quán)利要求6所述的計算機可讀介質(zhì),其特征在于,所述方法還包括使所述網(wǎng)絡(luò)地址對所述客戶機服務(wù)可見,并且所述客戶機服務(wù)的組件程序被配置成利用所述網(wǎng)絡(luò)地址將調(diào)用路由至所述一個或多個角色實例。
8.如權(quán)利要求7所述的計算機可讀介質(zhì),其特征在于,所分配的通信信道包括將所建立的接口鏈接至所述一個或多個角色的所述輸入端點的無狀態(tài)交換機(SLQ信道,其中所述方法還包括在所建立的接口處接收來自所述客戶機服務(wù)的所述調(diào)用和所選擇的網(wǎng)絡(luò)地址;以及在所述SLS信道中的被指定用于將所建立的接口鏈接至所述輸入端點的通信信道上路由所述調(diào)用。
9.如權(quán)利要求1所述的計算機可讀介質(zhì),其特征在于,所述特性集指定部分地控制相關(guān)聯(lián)的所建立的接口的操作的約束,并且利用從所述特性集得到的值使所建立的接口參數(shù)化包括將所述值賦予所建立的接口內(nèi)隱含的參數(shù),從而實施約束。
10.如權(quán)利要求9所述的計算機可讀介質(zhì),其特征在于,綁定過程還包括基于由所建立的接口實施的所指定約束自動地重新配置所述一個或多個角色實例。
11.一種用于在分布式計算環(huán)境內(nèi)將已綁定合約綁定至客戶機服務(wù)的計算機化的方法,所述方法包括從所述客戶機服務(wù)接收(70 用于履行其依賴性的指示,其中所述客戶機服務(wù)包括一個或多個組件程序;分配(710)展示滿足所述客戶機服務(wù)的所述一個或多個組件程序的所述依賴性的功能的抽象的合約,其中所述合約在所述分布式計算環(huán)境內(nèi)實現(xiàn)且被綁定至執(zhí)行所述功能的目標(biāo)服務(wù);部署(71 所述客戶機服務(wù)以啟動其操作,其中部署包括(a)將所述一個或多個組件程序自動鏈接(720)至由所分配的已綁定合約定義的接口,其中在實現(xiàn)所分配的已綁定合約之后在所述分布式計算環(huán)境內(nèi)建立所述接口 ;以及(b)將對所述鏈接的描述寫入(725)負(fù)責(zé)管理所述目標(biāo)服務(wù)的執(zhí)行的結(jié)構(gòu)控制器。
12.如權(quán)利要求11所述的計算機化的方法,其特征在于,將所述一個或多個組件程序自動鏈接至接口包括分別地標(biāo)識設(shè)置在所述一個或多個組件程序上的輸出端點;以及分配所述分布式計算環(huán)境內(nèi)的通信信道以將所建立的接口可操作地耦合至所述輸出端點。
13.如權(quán)利要求12所述的計算機化的方法,其特征在于,所述目標(biāo)服務(wù)包括至少一個角色的一個或多個實例,并且所述至少一個角色表示與所述目標(biāo)服務(wù)的其它角色協(xié)作以實現(xiàn)滿足所述客戶機服務(wù)的所述依賴性的功能的特定種類的組件。
14.如權(quán)利要求13所述的計算機化的方法,其特征在于,已綁定合約維護與所建立的接口相關(guān)聯(lián)的特性集,并且所述方法還包括通過利用從相關(guān)聯(lián)的特性集得到的值使所建立的接口參數(shù)化,將約束應(yīng)用于所建立的接口 ;以及向所述客戶機服務(wù)公布所應(yīng)用的約束用以配置所述一個或多個組件程序。
15.如權(quán)利要求14所述的計算機化的方法,其特征在于,配置所述一個或多個組件程序包括從所應(yīng)用的約束提取指示用以格式化從所述一個或多個組件程序的輸出端點發(fā)出的調(diào)用,使得所述調(diào)用與所述一個或多個角色實例的底層協(xié)議兼容。
16.如權(quán)利要求15所述的計算機化的方法,其特征在于,將從所述一個或多個組件程序的所述輸出端點發(fā)出的所述調(diào)用通過所述分布式計算環(huán)境的所分配的通信信道路由至所建立的接口。
17.如權(quán)利要求15所述的計算機化的方法,其特征在于,使所建立的接口參數(shù)化以將所發(fā)出的調(diào)用中繼至所述一個或多個角色實例或者結(jié)合所述客戶機服務(wù)的身份基于所應(yīng)用的約束過濾所發(fā)出的調(diào)用。
18.如權(quán)利要求17所述的計算機化的方法,其特征在于,所述客戶機服務(wù)的所述身份由所述結(jié)構(gòu)控制器記錄,并且在將所發(fā)出的調(diào)用中繼至所述一個或多個角色實例之后,檢查追加至所發(fā)出的調(diào)用的聲明以確定是否履行所述調(diào)用的請求。
19.如權(quán)利要求18所述的計算機化的方法,其特征在于,將所述聲明追加至所發(fā)出的調(diào)用包括訪問所述客戶機服務(wù)的所述身份以驗證所述一個或多個組件程序發(fā)出所述調(diào)用;以及將所確定的身份以及所述客戶機服務(wù)的其它特性集成到所述聲明中,從而在所述目標(biāo)服務(wù)處確保特定的安全級別。
20.一種用于執(zhí)行一種方法的計算機系統(tǒng),所述方法通過對通過分布式計算環(huán)境變得可用的合約進行實現(xiàn)和綁定來將客戶機服務(wù)自動鏈接至目標(biāo)服務(wù),所述計算機系統(tǒng)包括其上包含多個計算機軟件組件的計算機存儲介質(zhì),所述計算機軟件組件包括提交用于履行其依賴性的指示的客戶機服務(wù)(305),其中所述客戶機服務(wù)包括一個或多個組件程序;包括一個或多個角色實例的目標(biāo)服務(wù)005),其中所述一個或多個角色實例包含對表示一種組件程序的至少一個角色的復(fù)制,所述組件程序一經(jīng)執(zhí)行就將功能賦予所述目標(biāo)服務(wù);展示所述目標(biāo)服務(wù)的所述功能的抽象的合約035),它滿足所述客戶機服務(wù)的所述一個或多個組件程序的所述依賴性,所述合約定義至少一個接口 ;以及結(jié)構(gòu)控制器015),其用于通過實現(xiàn)所述合約在所述分布式計算平臺上建立所述至少一個接口,用于將所述合約綁定至所述目標(biāo)服務(wù)和客戶機服務(wù),并且用于經(jīng)由所建立的接口將所述客戶機服務(wù)的所述一個或多個程序組件自動鏈接至所述目標(biāo)服務(wù)的所述一個或多個角色實例。
全文摘要
提供用于經(jīng)由在此被稱為合約的媒介使目標(biāo)服務(wù)向客戶機服務(wù)的功能方面的表達自動化的方法、系統(tǒng)和計算機可讀介質(zhì)。通常,在被配置為支承服務(wù)應(yīng)用程序的操作的分布式計算環(huán)境的上下文中執(zhí)行這些方法。在各實施例中,在確定所表達的功能方面滿足客戶機服務(wù)的依賴性之后實現(xiàn)和綁定合約。通常,合約定義接口并且在安裝期間維持配置接口的特性。在實現(xiàn)期間,根據(jù)與其相關(guān)聯(lián)的特性建立并參數(shù)化接口之一。在綁定期間,經(jīng)由通過所建立的接口路由的通信信道鏈接目標(biāo)服務(wù)和客戶機服務(wù)。因此,通信信道上的來自客戶機服務(wù)的調(diào)用允許到達和使用目標(biāo)服務(wù)的功能方面。
文檔編號G06F15/16GK102197390SQ200980142642
公開日2011年9月21日 申請日期2009年10月24日 優(yōu)先權(quán)日2008年10月24日
發(fā)明者J·貝爾納伯-奧邦, Y·A·哈利迪 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
洛川县| 武强县| 交口县| 三穗县| 阿尔山市| 寻乌县| 天门市| 元朗区| 如皋市| 云和县| 龙南县| 乌鲁木齐县| 渑池县| 鹿邑县| 许昌县| 兰溪市| 霍州市| 吉林市| 嵊泗县| 赤峰市| 永清县| 松滋市| 务川| 遵义市| 西青区| 商城县| 江永县| 石楼县| 永兴县| 简阳市| 伊川县| 章丘市| 阜南县| 巴彦县| 阿鲁科尔沁旗| 扎赉特旗| 蓬溪县| 广丰县| 根河市| 巫山县| 柳江县|