專利名稱:用于分布式服務的上下文專用網絡資源尋址模型的制作方法
技術領域:
本發明涉及用于分布式服務的上下文專用網絡資源尋址模型。
背景技術:
傳統上,正在通過網絡請求某種數據的計算設備通常假設它將這樣的請求定向到的計算設備包括所請求的數據。如果這樣的計算設備不包含所請求的數據,則現有的解決方案僅限于要么重定向發出請求的計算設備,并由此使發出請求的計算設備將其請求重新發送到它被重定向到的計算設備,或者,可另選地,從另一計算設備獲取這樣的數據,然后, 將它提供給發出請求的計算設備。每一種情況都是低效的。重定向使發出請求的計算設備必須向不同的目的地計算設備重新發出同一個請求,而從另一計算設備獲取數據會添加額外的網絡通信集。當然,直到實際訪問所請求的數據為止不提供成功的第三選項可以是簡單地通知發出請求的計算設備,從接收到請求的計算設備無法提供所請求的數據。在許多網絡環境中,通常可以使用這樣的第三選項,因為這樣的網絡環境可以基于更多嚴格定義的資源集。然而,在諸如無所不在的因特網和萬維網(www)之類的大規模多方分布式網絡中,對這樣的選項的廣泛使用會導致大量的用戶在某些數據的位置被移動或者數據被以別的方式重新組織時不能訪問這樣的數據。相反,在大規模的多方分布式網絡中,前兩個選項是更需要的。例如,Wffff上的網頁,會并且常常確實將用戶的web瀏覽器重定向到更適當的網頁。通常,當一個網頁的數據被移到網絡上的不同的網頁或其他位置時,這樣的重定向會發生。在這樣的情況下,原始位置可以簡單地將用戶的瀏覽器重定向到新位置,從而使瀏覽器再一次向新網頁或新位置中的其他資源發出同一個請求。作為另一個示例,Wffff上的許多網站可以,并且常常確實提供后端進程,這些后端進程可以去并獲取由用戶所請求的數據,不管該數據的實際位置,然后,將這樣的數據返回到發出請求的用戶。盡管來自用戶的計算設備的請求技術上不被重定向,但是,仍會由這樣的后端進程去并從這樣的數據現在所在的任何位置獲取所請求的數據所執行的額外的網絡通信集帶來低效率。隨著可以通過網絡可用的資源(特別是編程資源)增多,諸如上面所枚舉的那些之類的現有的重定向方案的低效率變得更加明顯,并對性能產生更大的影響。例如,當用戶在包括從網絡源檢索主要靜態數據的典型的web瀏覽會話中使用web瀏覽器,在這樣的典型的web瀏覽會話過程中用戶可能遇到的重定向中幾乎沒有重定向可能不會顯著地影響用戶的體驗。實際上,對于典型的用戶,最終獲取所請求的數據的能力是重要的大事,并且由任何重定向機制所帶來的額外的延遲可以是小事,特別是在總的瀏覽體驗的范圍內。然而,對于在計算設備上執行的計算機可執行指令,這些計算機可執行指令使用基于網絡的資源作為一種應用程序編程接口類型,以便那些計算機可執行指令,作為那些計算機可執行指令的執行的主要本質的一部分,通過網絡從其他聯網的計算設備連續地請求數據,通過網絡進行數據訪問的效率會變得頭等重要。
發明內容
在一個實施方式中,后端定位器服務可以提供位置專用網絡地址,以便可以跨可通信地耦合到網絡的多個計算設備劃分數據,后端定位器服務可以提供最適于所請求的數據的計算設備的位置專用網絡地址。在另一實施方式中,可以創建基于網絡的應用程序編程接口,以使得初始請求可以是位置不可知的,而隨后的請求可以變得更加具體,并且經由后端定位器服務,可以僅僅作為這樣的基于網絡的應用程序編程接口中固有的往返通信的一部分被定向到適當的位置,由此不會引入任何額外的延遲、重復,或其他這樣的重定向低效率。在又一實施方式中,可以分層定義可通過基于網絡的應用程序編程接口來展示的數據和服務文檔,以允許隨后的請求變得更加具體,并且經由后端定位器服務同樣作為這樣的基于網絡的應用程序編程接口中固有的往返通信的一部分被定向到適當的位置。提供本發明內容是為了以精簡的形式介紹將在以下具體實施方式
中進一步描述的一些概念。本發明內容并不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于限定所要求保護的主題的范圍。通過下面的結合附圖對本發明進行的具體實施方式
,本發明的附加特征和優點將變得更加顯而易見。
通過參考各個附圖,可以更好地理解如下具體實施方式
,其中圖1是包括后端定位器服務以及跨多個計算設備劃分的數據的示例性系統的框圖;圖2是高效地將請求定向到適當的計算設備的示例性通信交換的框圖;圖3是用于使用后端定位器服務的示例性機制的流程圖;以及圖4是示例性計算設備的框圖。詳細描述下面的描述涉及在給定通過網絡通信請求的數據的情況下將網絡通信高效地定向到最適當的計算設備。后端定位器服務可以提供最適于所請求的數據的計算設備的位置專用網絡地址。數據請求可以是可以被分層定義的基于網絡的應用程序編程接口的一部分,以使得根據基于網絡的應用程序編程接口,初始請求可以是位置不可知的,而同樣根據基于網絡的應用程序編程接口,隨后的請求可以更加具體,并由此可以作為這樣的基于網絡的應用程序編程接口中固有的往返通信的一部分被定向到適當的計算設備。盡管下面的描述引用了基于網絡的應用程序編程接口的具體示例,以及諸如因特網和萬維網(www)之類的具體的已知網絡,但是,下面所描述的機制沒有這樣的限制。實際上,沒有變化,如上文所描述的,這樣的機制同樣適用于任何類型的基于網絡的應用程序編程接口以及分布式計算設備的網絡的任何類型或實現。如此,盡管下面的描述為了清楚起見將引用具體示例,但是,描述的范圍不應被如此狹窄地理解。雖然未作要求,但以下描述將處在諸如程序模塊等正由一個或多個計算設備執行的計算機可執行指令的一般上下文中。更具體而言,除非另外指明,否則描述將參考一個或多個計算設備或外圍設備所執行的動作以及其所執行的操作的符號表示。由此,可以理解,這些有時被稱為計算機執行的動作和操作包括以結構化形式表示數據的電信號的處理單元的操縱。該操縱在存儲器中的各個位置變換或維護數據,這以本領域技術人員都理解的方式重新配置或以其他方式更改計算設備或外圍設備的操作。其中維護數據的數據結構是具有由該數據的格式定義的特定特性的物理位置。一般而言,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等。此外,本領域技術人員將會認識到這些計算設備不必限于常規個人計算機,并且包括其他計算配置,包括手持式設備、多處理器系統、基于微處理器的或可編程消費電子設備、網絡PC、小型計算機、大型計算機等等。類似地,這些計算設備不必限于獨立計算設備,因為各機制也可以在其中任務由通過通信網絡鏈接的遠程處理設備執行的分布式計算環境中實現。在分布式計算環境中,程序模塊可以位于本地和遠程存儲器存儲設備中。轉向圖1,示出了系統100,包括經由網絡180彼此可通信地耦合的計算設備。在所示出的實施方式中,經由網絡180可通信地耦合的計算設備可以包括客戶機計算設備110 以及多個服務器計算設備,如服務器計算設備130、140以及150。在一個實施方式中,多個服務器計算設備130、140以及150可以各自可通信地耦合到諸如數據存儲135、145以及 155之類的數據存儲,數據存儲可以各自保留數據,這些數據可以被客戶機計算設備110請求,并由客戶機計算設備110使用。另外,如圖1所示的系統100還可以包括諸如后端服務器計算設備160之類的一個或多個后端服務器計算設備,它們可以執行后端定位器服務 170。雖然在圖1的系統100中被視為單獨的服務器計算設備上單一執行的實例,但是,在其他實施方式中,后端定位器服務170可以在每一個服務器計算設備上執行的單個實例中實現,服務器計算設備可通信地耦合到諸如服務器計算設備130、140以及150之類的數據存儲。圖1的系統100另外還包括諸如域名服務器計算設備120之類的一個或多個域名服務器計算設備。如本領域的技術人員所知的,這樣的域名服務器計算設備可以為客戶機計算設備110提供轉換服務,從而,諸如網絡瀏覽器之類的在客戶機計算設備上執行的進程可以為服務器計算設備提供常見的或口語的名稱,域名服務器計算設備120可以將這樣的常用名稱轉換為精確的網絡地址,通信可以通過該網絡地址在客戶機計算設備110和其網絡地址由域名服務器計算設備120指定的服務器計算設備130、140或150中的一個或多個之間路由。通常,可以由負責管理服務器計算設備130、140和150的實體來更新域名注冊數據庫,以在與那些服務器計算設備中的一個或多個相關聯的常用名和向其發送定向到這樣的常用名的通信的準確的網絡地址之間提供鏈接。在一個實施方式中,服務器計算設備130、140、150和160可以串聯地工作,以向諸如客戶機計算設備110之類的客戶機計算設備提供數據和服務。例如,服務器計算設備 130、140、150和160都可以由旨在提供這樣的服務的單一實體來進行管理,并由其指導。可以向諸如客戶機計算設備110之類的客戶機計算設備提供的一個這樣的服務可以是通過基于網絡的應用程序編程接口對數據及其他資源的訪問。在一個實施方式中,這樣的接口可以基于代表性狀態傳輸(REST)體系結構。如本領域的技術人員所知的,REST體系結構包括客戶機和服務器,其中,客戶機向服務器發起請求,服務器處理那些請求,并返回響應。另外,服務器不需要維持客戶機上下文,以便每一個請求和響應,本質上,可以是獨立的,REST體系結構可以被視為“無狀態”。作為可以由服務器計算設備130、140、150以及160所提供的基于網絡的應用程序編程接口的示例,那些服務器計算設備中的每一個都可以是諸如萬維網上的單一 web域之類的同一個網絡域的一部分。這樣的域可以是一般地通過諸如例如“www. someplace, com" 之類的頂級域名來標識。域名服務器計算設備120可以提供服務器計算設備130、140或 150中的任何一個的網絡地址,作為被定向到這樣的頂級域名(諸如從在客戶機計算設備 110上執行的進程)的請求應該被定向到的地址。響應于這樣的初始請求,并作為基于網絡的應用程序編程接口的一部分,這樣的初始響應被定向到的服務器計算設備可以用服務文檔作出響應,該服務文檔可以為客戶機計算設備110上的調用進程提供進一步的選項。例如,選項可包括在客戶機計算設備上執行的進程可以請求更多有關其信息的數據的各種名稱空間,或類型的列表。隨后的來自客戶機計算設備110的通信可以引用那些選項中的一個,諸如,例如,通過將請求定向到〃 www. someplace. com/selected_option",來自服務器計算設備130、140或150中的任何一個的響應接收到該通信,可以再一次提供另一個服務文檔,該另一個服務文檔可以列出與在請求中引用的選項有關的進一步的選項。如此,客戶機計算設備110和服務器計算設備130,140和150中的一個或多個之間的往返通信可以允許在客戶機計算設備上執行的進程最終選擇、請求和編輯特定數據或其他信息,它們可以存儲在分別與服務器計算設備130、140和150相關聯的數據存儲135、145和155中。如此, 服務器計算設備130、140和150可以提供基于網絡的應用程序編程接口。轉向圖2,其中所示出的系統200示出了示例性網絡通信系列,示出了在將通信定向到基于網絡的應用程序編程接口的上下文內適當的服務器計算設備而不會添加附加的低效率時使用諸如后端定位器服務170之類的后端定位器服務。一開始,如上文所描述的, 在客戶機計算設備110上執行的進程可以通過首先將請求定向到旨在充當對于基于網絡的應用程序編程接口的使用的起始點的頂級域,來啟動與服務器計算設備130、140或150 的通信。如此,如圖2的系統200所示,客戶機計算設備110可以將通信210定向到域名服務器計算設備120,其包括與服務器計算設備130、140以及150相關聯的頂級域的常用名。 在響應215中,域名服務器計算設備120可以返回服務器計算設備130,140以及150中的一個或多個的網絡地址。如本領域的技術人員所知的,由域名服務器計算設備120所返回的準確的網絡地址可以是與域名服務器數據庫中的頂級域名相關聯的網絡地址,如通過管理該域名的實體。在某些情況下,域名服務器計算設備120可以將某些智能應用到它在響應215中提供的對網絡地址的選擇。例如,管理域名的實體可以指定,在域名服務器數據庫中,在響應215中所提供的網絡地址是服務器計算設備130、140和150之中的在地理上或在物理上與發出請求的客戶機計算設備110最近的服務器計算設備的網絡地址。在這樣的情況下,域名服務器計算設備120可以諸如從客戶機計算設備的網絡地址來標識客戶機計算設備110的大致位置,并可以在響應215中,返回服務器計算設備130、140和150中的與該位置最近的包括相關域的服務器計算設備的網絡地址。為了說明,在圖2的系統200中, 響應215被示為指定服務器計算設備130的網絡地址。因此,客戶機計算設備可以將初始通信220定向到服務器計算設備130。如在圖 2的系統200中所示,初始通信220可以是位置無關的,因為它不必指定特定服務器計算設備,相反,可以只指定它一般地被定向到頂級域。例如,通信220可以簡單地指示它被定向到形式“www. somplace. com”的web地址。響應于這樣的請求,服務器計算設備130不必確定客戶機計算設備110是否正在請求服務器計算設備130可以訪問的數據,諸如經由前面在圖1中所示出的服務器計算設備130可通信地耦合到的數據存儲135。相反,如圖2的系統200所示,服務器計算設備130可以以通信225作出響應,該通信225包括服務文檔,該文檔可以列出對客戶機計算設備110可用的進一步的選項。例如,與響應225 —起提供的月艮務文檔中的選項可以呈現諸如〃 www. som印lace. com/option#l〃禾口〃 www. som印lace. com/option#2//之類的更加具體的資源標識符的形式。在一個實施方式中,由與響應225 —起返回的服務文檔所標識的選項可以標識不同類型的數據或數據名稱空間。例如,由服務器計算設備130、140和150支持的域可以提供對用戶的聯系人列表中的聯系人的諸如姓名、電話號碼、電子郵件地址之類的聯系人信息及其他信息的訪問,或者對諸如正在被同步的文件,進行這樣的同步的源位置和目標位置, 及用戶正在跨如圖1所示的網絡180進行同步的文件的其他類似的信息的訪問。在這樣的實施方式中,與服務文檔一起返回的服務文檔可以包括形式“www. someplace, com/sync”或 "www. someplace, com/contacts “的資源標識符。隨后,在接收到經由通信225所提供的服務文檔時,客戶機計算設備110可以選擇在服務文檔中枚舉的選項中的一個,并可以經由提供給服務器計算設備130的通信,返回請求,選擇這樣的選項,如圖2的系統200所示。由于可以經由基于網絡的應用程序編程接口提供的許多數據可以是用戶專用的,在在客戶機計算設備110和與基于網絡的應用程序編程接口相關聯的服務器計算設備之間的通信過程中的某個時間點,客戶機計算設備代表其正在使用基于網絡的應用程序編程接口的用戶將需要標識其本身。如本領域的技術人員所知,這樣的標識可以采取諸如密碼之類的標識信息、認證信息的形式,及其他類似的信息的形式。為了說明,在圖2的系統200中,服務器計算設備130被示為作為對上文所描述的請求230的響應235的一部分,請求標識、認證。同樣,如所指出的,可以在請求用戶專用數據之前的任何時間執行用戶的標識的認證,圖2的系統200中的例示只是示例性的。一旦被認證,隨后的來自這樣的用戶的請求可包括用戶標識信息。例如,在對用戶的認證過程中,客戶機計算設備110和它正在向其認證的服務器計算設備可以建立令牌, 或其他數據集,它們將與每一個隨后的請求包括在一起,以至少對于該通信會話來唯一地標識用戶。不管準確的機制,一旦用戶被認證,隨后的通信,諸如從客戶機計算設備110到諸如服務器計算設備130之類的服務器計算設備的隨后的通信M0,可包括這樣的令牌或其他用戶標識信息。作為對基于網絡的應用程序編程接口的使用的一部分,客戶機計算設備110可以,在某個點,請求足夠具體的數據,以至于諸如服務器計算設備130之類的這樣的請求所定向到的服務器計算設備,可能需要使用諸如后端定位器服務170之類的后端定位器服務,來將未來這樣的請求定向到比較適當的服務器計算設備。返回到上面的示例,諸如經由通信225所提供的服務文檔之類的服務文檔,可以指定資源標識符"■· someplace, com/ sync"和〃 www. som印lace, com/contacts"作為客戶機計算設備110可以通過其請求同步信息或聯系人信息的標識符。諸如來自客戶機計算設備110的通信240之類的隨后的請求可以,除包括令牌或其他用戶標識符之外,還包括諸如例如““靈someplace, com/ sync”之類的那些資源標識符中的一個。盡管這樣的通信240可以被定向到的服務器計算設備130仍可以理解可以被訪問的同步數據的基本結構,但是,服務器計算設備130可以, 在一個實施方式中,可通信地與數據存儲135耦合,如圖1所示,該數據存儲135包括相關的同步數據,或實際上,可能任何同步數據。相反,例如,同步數據可以保留在數據存儲145 中,該數據存儲145可以可通信地耦合到服務器計算設備140,如圖1所示。在這樣的示例中,服務器計算設備130,當接收到通信240時,可以向后端服務器計算設備160提供信息, 以允許在這樣的計算設備上執行的后端定位器服務170標識關于同步數據的未來的通信將被定向到的更加適當的計算設備。如圖2的系統200所示,當接收到可以被定向到服務器計算設備130沒有訪問權限的數據類型的通信240時,服務器計算設備130可以將通信250定向到在后端服務器計算設備160上執行的后端定位器服務170。通信250可以包括可以被后端定位器服務170 用來標識這樣的請求被更加適當地定向到的服務器計算設備的信息。例如,如果數據被如此劃分,以便一種類型的數據被存儲在與一個服務器計算設備相關聯的數據存儲中,而不同類型的數據被存儲在與不同的計算設備相關聯的數據存儲中,那么,通信250可以包括通信240所涉及的數據類型的標識,或數據的名稱空間。可另選地,數據可以被如此劃分, 以便一個用戶的數據被存儲在與一個服務器計算設備相關聯的數據存儲中,而另一個用戶的數據可以被存儲在與不同的服務器計算設備相關聯的數據存儲中。在這樣的情況下,通信250可以包括試圖訪問數據的用戶的標識。如下面所進一步描述的,后端定位器服務170 對數據在一個或多個數據存儲之間的準確的劃分是不可知的,只要給后端定位器服務提供了足以確定哪一個后端存儲包括所請求的數據的相關信息。如前面所指出的,諸如后端定位器服務170之類的后端定位器服務,不必在諸如后端服務器計算設備160之類的單獨的后端服務器計算設備上執行,而是可以在諸如服務器計算設備130,140和150之類的單個的服務器計算設備上執行。在這樣的實施方式中, 通信250和255不必是在服務器計算設備130上執行的一個或多個進程之中的進程間或者甚至進程內通信。在如圖2所示的系統200中,在經由通信250接收相關信息之后,后端定位器服務 170可以標識數據以及將向其定向對這樣的數據的進一步的請求的服務器計算設備的位置。這樣的信息可以包含在從后端服務器計算設備160到服務器計算設備130的通信255 中。然后,服務器計算設備130可以響應向客戶機提供再一個服務文檔的客戶機計算設備 110,只是所提供的服務文檔可以指定通過后端定位器服務170來標識的計算設備。在圖 2的系統200所示出的所示示例中,已標識的服務器計算設備可以是服務器計算設備140。 然后,可以由客戶機計算設備110將諸如包含在通信270中的請求之類的進一步的請求定向到服務器計算設備140,該服務器計算設備140可以可以訪問相關數據,并經由響應通信 275,提供所請求的數據,如圖所示。為提供更多細節,并返回到前面枚舉的具體示例,通信240可以是,例如,客戶機計算設備110對〃 www. som印lace, com/sync"資源標識符的選擇。在此示例中,數據可以在服務器計算設備130、140以及150之間劃分,以便服務器計算設備130可通信地耦合到包括聯系人數據的數據存儲135(如圖1所示),而服務器計算設備140和150分別可通信地耦合到包括同步數據的數據存儲145和155(也如圖1所示)。此外,還可以如此劃分同步數據,以便在數據存儲145中維護了特定用戶的同步數據,而在數據存儲155中維護了其他用戶的同步數據,如圖1所示。在這樣的示例中,當在來自客戶機計算設備110的通信MO中接收到“www. someplace, com/sync”資源標識符時,服務器計算設備130可以經由通信250,提供隨后的請求將被定向到同步數據的指示以及其同步數據將被請求的用戶的標識。同步數據的標識是將所請求的數據的名稱空間,以允許后端定位器服務170確定,如圖1所示的數據存儲 145以及155,可以是相關的,對用戶的高質量標識可以允許后端定位器服務進一步縮減, 并確定,在本示例中,數據存儲145可以包括相關數據。在跟著發生的響應沈5中,服務器計算設備130可以提供服務文檔,該服務文檔根據上文所描述的基于網絡的應用程序編程接口,提供關于同步數據名稱空間的更多細節。這樣的信息可以是對名稱空間通用的,如此,可以由服務器計算設備130來提供,無需引用服務器計算設備140。例如,同步數據名稱空間可以由正在被同步的文件的標識、這樣的文件的位置、在其上面正在同步這樣的文件及其他同步信息的計算設備的位置構成。 如前所述,可以向客戶機計算設備110提供更具體的資源標識符,以允許客戶機計算設備隨后選擇這樣的更具體的信息。例如,與響應265 —起提供的服務文檔可包括以"■· someplace, com/sync/syncob jects “禾口〃 www. someplace, com/sync/devices “的形式存在的資源標識符。然而,由于服務器計算設備130可能已經接收到位置專用信息,諸如從后端定位器服務170,這樣的信息可以包括在作為響應沈5的一部分所提供的服務文檔中。在一個實施方式中,可以修改資源標識符以包括位置專用信息,諸如通過將這樣的信息預先附加到資源標識符中。在這樣的實施方式中,形式“www. somplace. com"的資源標識符可以是位置無關資源標識符,而形式“serVer_B. someplace, com"的資源標識符可以是位置相關資源標識符。如此,在作為響應沈5的一部分返回的服務文檔中所提供的資源標識符可以是〃 server—B. someplace, com/ sync/syncob jects “禾口 “ server—B. someplace, com/ sync/devices"的形式。使用這樣的位置相關資源標識符的諸如請求270之類的隨后的請求,可以被定向到諸如服務器計算設備140之類的已標識的服務器計算設備,如圖2的系統 200所示。可以看出,基于網絡的應用程序編程接口可以被如此構建,以便初始請求被定向到諸如頂級域名之類的位置無關資源標識符,而隨著隨后的響應提供帶有增多的特殊性級別的服務文檔,隨后的請求變得更加具體。另外,通過基于網絡的應用程序編程接口展示的數據和資源本質上可以是分層的,以便具體的數據或資源被分組到多種類型或名稱空間, 以便通過首先訪問相關的類型或名稱空間來獲得對該數據或那些資源的訪問。轉向圖3,其中所示出的流程圖300示出了在作為在基于網絡的應用程序編程接口的上下文內由這樣的服務器計算設備所生成的響應的一部分來確定何時引用后端定位器服務時可以由服務器計算設備執行的一系列示例性步驟。如流程圖300所示,當在步驟 310中接收客戶機請求時,服務器計算設備可以首先在步驟320中確定該請求是位置相關請求還是位置無關請求。如前面所指出的,初始請求可能是位置無關的,如定向到頂級域的請求。實際上,在一個實施方式中,諸如可以在客戶機計算設備上執行的客戶機應用程序可能需要不高速緩存位置相關資源定位器,而是利用諸如定向到頂級域的資源定位器之類的位置無關資源來啟動對基于網絡的應用程序編程接口的每一次新的使用。
如果在步驟320中服務器計算設備確定從客戶機計算設備接收到的請求是位置相關的,那么,這樣的請求可能是使用基于網絡的應用程序編程接口的現有的通信周期內的一系列請求和響應的結果。盡管如此,在可選實施方式中,在步驟330中,可以進行檢查, 以驗證在步驟310中接收到的位置相關請求事實上指定適當的位置。更具體而言,在步驟 330中,該檢查可以驗證客戶機沒有不適當地高速緩存位置相關資源定位器,并以不適當的方式簡單地再用它。如果指定了適當的位置,那么,服務器計算設備已經被標識為對在步驟 310中接收到的請求作出響應的最適當的服務器計算設備,作為結果,在步驟340中,服務器計算設備可以對客戶機的請求作出響應。然后,處理可以返回到步驟310,此時,可以接收來自客戶機的隨后的請求。然而,如果在步驟320中確定在步驟310中接收到的請求是位置無關的,那么,處理可以繼續執行步驟350。類似地,如果在步驟320中確定在步驟310中接收到的請求是位置相關的,但是,在步驟330中確定指定了不適當的位置,那么,可以再一次繼續執行步驟350。在步驟350中,確定服務器計算設備是否可以訪問諸如在步驟310中接收到的請求之類的請求所涉及的必要數據。如果在步驟350中確定服務器計算設備可以訪問必要的數據,則處理可以返回到步驟340,服務器計算設備可以對在步驟310中接收到的請求作出響應。然而,在步驟350中,如果確定服務器計算設備沒有對必要的數據的訪問權限,則服務器計算設備可以在步驟360中向后端定位器服務提供相關信息。如前面所指出的,在步驟360中提供給后端定位器服務的信息可以取決于跨可通信地耦合到不同的服務器計算設備的不同的數據存儲劃分數據的方式。可以使用后端定位器服務,不管所使用的劃分的類型如何,只要給后端定位器服務提供了關于所使用的劃分的信息。如此,可以根據數據類型,或數據的名稱空間,根據數據所關聯到的特定用戶,其組合,或根據任何其他方案,來劃分數據。如果例如數據是根據數據的類型或名稱空間來劃分的,那么,在步驟360中所提供的相關信息可以包括將在步驟310中接收到的請求定向到的數據的類型、或名稱空間。 類似地,如果數據是根據數據所關聯到的特定用戶來劃分的,則在步驟360中所提供的相關信息可以包括與在步驟310中接收到的請求相關聯的用戶的標識。在步驟370中,可以從后端定位器服務接收位置信息,該位置信息可以指定要向其定向未來的請求的適當的位置。然后,可以將這樣的信息包括到在步驟380中所提供的響應中。例如,如上文所描述的,在一個實施方式中,資源標識符,如將被包括在作為響應在步驟380中所提供的服務文檔中的資源標識符,可以被修改,以在它們中預先附加位置專用信息。可另選地,在步驟370中接收到的位置信息可以以別的方式在在步驟380中所提供的響應中被標識。如在步驟340的情況下,一旦提供了響應,則處理可以返回到步驟310, 此時,可以接收另一個客戶機請求,并可以重復處理。上面的描述引用了由在一個或多個計算設備上執行的計算機可執行指令執行的動作。轉向圖4,示出了一個這樣的示例性計算設備400。這樣的示例性計算設備400可以是上文所描述的并且如圖1所示的計算設備110、120、130、140、150或160中的任何一個, 或諸如計算設備之類的任何其他設備。圖4的示例性計算設備400可包括但不限于,一個或多個中央處理單元(CPU) 420、 系統存儲器430和將包括該系統存儲器在內的各種系統組件耦合至處理單元420的系統總線421。系統總線421可以是若干類型的總線結構中的任一種,包括使用各種總線體系結構中的任一種的存儲器總線或存儲器控制器、外圍總線,以及局部總線。計算設備400通常還包括能夠包括可由計算設備400訪問的任何可用介質的計算機可讀介質,并且包括易失性和非易失性介質以及可移動和不可移動介質兩者。作為示例而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括以用于存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息的任何方法或技術來實現的介質。計算機存儲介質包括但不限于,RAM、R0M、EEPR0M、閃存或其它存儲器技術、 CD-ROM、數字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或能用于存儲所需信息且可以由計算設備400訪問的任何其它介質。通信介質通常以諸如載波或其他傳輸機制等已調制數據信號來體現計算機可讀指令、數據結構、程序模塊或其他數據,并包括任意信息傳送介質。作為示例而非限制,通信介質包括有線介質,如有線網絡或直接線連接,以及如聲學、RF、紅外及其他無線介質之類的無線介質。上述中任一組合也應包括在計算機可讀介質的范圍之內。系統存儲器430包括易失性和/或非易失性存儲器形式的計算機存儲介質,如只讀存儲器(ROM) 431和隨機存取存儲器(RAM) 432。基本輸入/輸出系統433 ¢10 包含有助于諸如啟動時在計算設備400中元件之間傳遞信息的基本例程,它通常存儲在ROM 431 中。RAM 432通常包含處理單元420可以立即訪問和/或目前正在操作的數據和/或程序模塊。作為示例而非限制,圖4示出了操作系統434、其它程序模塊435和程序數據436。 計算機系統400還可包括其它可移動/不可移動、易失性/非易失性計算機存儲介質。只作為示例,圖4示出了讀寫不可移動、非易失性磁性介質的硬盤驅動器441。可以與示例性計算設備中一起使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質包括但不限于,磁帶盒、閃存卡、數字多功能盤、數字錄像帶、固態RAM、固態ROM等等。硬盤驅動器 441通常通過諸如接口 440之類的不可移動存儲器接口連接到系統總線421。上文所討論的并且在圖4中所示出的驅動器以及它們的相關聯的計算機存儲介質,為計算設備400提供了計算機可讀的指令、數據結構、程序模塊及其他數據的存儲。例如,在圖4中,硬盤驅動器441被示為存儲了操作系統444、其他程序模塊445,以及程序數據446。注意,這些組件可以與操作系統434、其它程序模塊435和程序數據436相同,也可以與它們不同。操作系統444、其它程序模塊445和程序數據446在這里被標注了不同的標號是為了說明至少它們是不同的副本。計算設備400可以使用對一個或多個遠程計算機的邏輯連接在聯網環境中工作。 為了說明簡便起見,計算設備400在圖4中被示為連接到最初在圖1中所示出的網絡180。 網絡180不僅限于任何特定網絡或聯網協議。相反,圖4所描繪的邏輯連接是一般網絡連接471,其可以是局域網(LAN)、廣域網(WAN)或其他網絡。計算設備400通過網絡接口或適配器471連接到通用網絡連接470,該網絡接口或適配器進而連接到系統總線421。在聯網環境中,相對于計算設備400或其部分或外圍設備所描繪的程序模塊可被存儲在通過一般網絡連接471通信地耦合到計算設備400的一個或多個其他計算設備的存儲器中。可以理解,所示的網絡連接是示例性的,且可以使用在計算設備之間建立通信鏈路的其他手段。從上面的描述可以看出,提供了用于將客戶機通信定向到適當的計算設備而不會產生重定向低效率的機制。鑒于此處所描述的主題的許多可能的方案,作為本發明,我們聲明所有這樣的實施方式都在下面的權利要求書以及又等效內容的范圍和精神內。
權利要求
1.一種用于將請求定向到包括與對所述請求作出響應有關的資源的計算設備的系統 (100),所述系統(100)包括包括第一資源集的第一服務器計算設備;包括至少部分地與所述第一資源集不同的第二資源集的第二服務器計算設備;展示基于網絡的應用程序編程接口的域,所述基于網絡的應用程序編程接口用于通過利用所述基于網絡的應用程序編程接口的逐漸更具體的請求來訪問包括所述第一資源集和所述第二資源集的域資源集;以及第一后端定位器服務(170),其用于標識將接收涉及來自所述域資源集的特定資源的后續請求的所述第一服務器計算設備或所述第二服務器計算設備中的一個,,所述第一后端定位器(170)基于所述特定資源是位于所述第一資源集還是所述第二資源集中來執行所述標識。
2.如權利要求1所述的系統,其特征在于,包括第二后端定位器服務,其用于執行與所述第一后端定位器服務等效的功能,所述第一后端定位器服務在所述第一服務器計算設備上執行,所述第二后端定位器服務在所述第二服務器計算設備上執行。
3.如權利要求1所述的系統,其特征在于,所述資源包括存儲的數據。
4.計算設備或所述第二服務器計算設備的標識。
5.如權利要求1所述的系統,其特征在于,如果所述第一服務器計算設備接收到涉及所述第二資源集的位置無關請求,則所述第一服務器計算設備調用所述第一后端定位器服務,并且如果所述第二服務器計算設備接收到涉及所述第一資源集的位置無關請求,則所述第二服務器計算設備調用所述第一后端定位器服務。
6.如權利要求1所述的系統,其特征在于,所述第一后端定位器服務基于所述特定資源的名稱空間來確定所述特定資源是位于所述第一資源集中還是所述第二資源集中。
7.如權利要求1所述的系統,其特征在于,所述第一后端定位器服務基于與所述特定資源相關聯的用戶來確定所述特定資源是位于所述第一資源集中還是所述第二資源集中。
8.一種將請求定向到包括與對所述請求作出響應有關的資源的計算設備的方法,所述方法包括下列步驟接收對資源的逐漸更具體的請求,所述逐漸更具體的請求是根據基于網絡的應用程序編程接口的,所述逐漸更具體的請求是位置無關的;將信息提供給后端定位器服務(170)以允許所述后端定位器服務(170)標識包括與對所述逐漸更具體的請求作出響應有關的資源的計算設備;以及用包括位置相關資源標識符的服務文檔來響應對資源的所述逐漸更具體的請求中的至少一個,所述位置相關資源標識符指定由所述后端定位器服務(170)標識的計算設備。
9.如權利要求8所述的方法,其特征在于,所述資源包括存儲的數據。
10.如權利要求8所述的方法,其特征在于,所述位置相關資源標識符包括預先附加到位置無關資源標識符的位置信息。
11.如權利要求8所述的方法,其特征在于,當對資源的所述逐漸更具體的請求中的最近請求涉及只可從不同的計算設備獲得的資源時,將所述信息提供給后端定位器服務。
12.如權利要求8所述的方法,其特征在于,提供給所述后端定位器服務的所述信息包括所述逐漸更具體的請求所涉及的資源的名稱空間。
13.如權利要求8所述的方法,其特征在于,提供給所述后端定位器服務的所述信息包括對所述逐漸更具體的請求涉及其資源的用戶的標識。
14.一種或多種具有用于執行如權利要求8所述的步驟的計算機可執行指令的計算機可讀介質。
全文摘要
可以使用后端定位器服務來從域中的多個計算設備中標識特定計算設備,該特定計算設備是處理對數據或其他資源的特定類型的請求最適當的計算設備。由域主存的數據或資源可以在多個計算設備之間劃分。域可以展示基于網絡的應用程序編程接口,其中客戶機計算設備的連續請求就所請求的數據或資源而言變得更加具體。來自域中的計算設備的響應可以在某一時間點由后端定位器服務通知,并可以包括位置專用資源標識符。客戶機計算設備可以使用這樣的位置專用資源標識符來將進一步的通信定向到適當的特定計算設備,而不會產生重定向低效率。
文檔編號H04L29/08GK102299954SQ201110184819
公開日2011年12月28日 申請日期2011年6月23日 優先權日2010年6月24日
發明者A·G·班達卡, D·舒克拉, F·穆罕默德, K·拉曼, N·古普塔, R·E·安德斯 申請人:微軟公司