針對計算應用程式功能的強大權限管理的製作方法
2023-06-06 01:43:16 3
針對計算應用程式功能的強大權限管理的製作方法
【專利摘要】通過控制對實施計算應用程式功能的可執行指令的訪問,可以至少部分地減輕計算應用程式功能的非法、未授權、無補償和/或欠補償利用。所述可執行指令可以由一組一個或多個虛擬機執行,所述虛擬機由多租戶虛擬資源提供者來供應。所述虛擬資源提供者可以通過一組實施資源來供應所述虛擬機和其它虛擬資源,所述實施資源由所述虛擬資源提供者的控制平面加以管理。所述控制平面可以為所述虛擬資源提供者執行許多控制功能,包括虛擬資源訪問策略(如共同指定將根據計算應用程式功能的第三方提供者或供應商與計算應用程式功能的用戶之間的許可證或協議來訪問計算應用程式功能的一個或多個策略)的管理和施行。
【專利說明】針對計算應用程式功能的強大權限管理
[0001]發明背景
[0002]從數據處理和工程到教育和娛樂,計算設備已在現代家庭、學校和工作場所得到了多種應用。許多此類計算設備包括能夠執行指令(例如,對應於計算機程式語言元素的指令)的處理器,並且計算設備的許多功能可以由一組可執行指令和任選由一組配置數據(例如,由電腦程式)加以控制。針對一項具體應用程式和/或一組功能的電腦程式開發可能需要顯著的時間和資源投入。例如,通過幾十人的團隊多年的努力並不少見。然而,可執行指令和配置數據可能具有容易複製的數字表示(例如,「可執行」或「二進位」的應用程式),並且非法和/或無補償地使用所啟用的功能(例如,應用程式「盜版」)是一個重大的問題。
[0003]一些傳統的「權限管理」方案(例如,「複製保護」方案)試圖解決此類非法和/或無補償的使用。例如,一些傳統的權限管理方案涉及將對應的多組應用程式功能進行解鎖的加密密鑰。一些傳統的權限管理方案涉及利用遠程伺服器(例如,在通信網絡中遠程伺服器)進行認證和/或周期性重新認證。一些傳統的權限管理方案涉及檢查物理計算設備組件(例如,「加密狗(dongle)」)的本地存在。然而,傳統的權限管理方案具有很多缺點。
[0004]例如,能夠進行應用程式功能非法和/或無補償使用的複製可以在用戶具有物理訪問權限的計算設備硬體上進行控制和/或安裝。即使在部分可執行指令和/或配置數據開始加密和/或鎖定的情況下,這種物理訪問也可以使得用戶能夠獲得對應的解密和/或解鎖部分,或以其它方式規避獲得合法密鑰的需要。這種物理訪問也可以使得用戶能夠模擬遠程認證伺服器和/或本地加密狗,或以其它方式規避對遠程認證伺服器和/或本地加密狗的需要。遠程訪問低級別的計算設備功能(例如,作業系統級的功能)和/或訪問連接至該計算設備的通信網絡的低級功能(例如,訪問在途數據包「嗅探」)可同樣能夠實現用戶非法和/或無補償地使用應用程式功能的意圖。
[0005]附圖簡述
[0006]根據本公開的各種實施方案將參照附圖進行描述,其中:
[0007]圖1是示出用於根據至少一個實施方案實施的多個方面的示例性環境的示意圖;
[0008]圖2是描繪根據至少一個實施方案的示例性虛擬資源供應架構的多個方面的示意圖;
[0009]圖3是描繪根據至少一個實施方案的示例性虛擬資源提供者的多個方面的示意圖;
[0010]圖4是描繪根據至少一個實施方案的示例性控制平面的多個方面的示意圖;
[0011]圖5是描繪用於根據至少一個實施方案製作虛擬資源提供者中可用的應用程式工具的示例性步驟的流程圖;
[0012]圖6是描繪用於根據至少一個實施方案訪問應用程式工具功能的示例性步驟的流程圖;
[0013]圖7是描繪用於根據至少一個實施方案的動態特徵激活的示例性步驟的流程圖;以及[0014]圖8是描繪用於根據至少一個實施方案的工作流程管理的示例性步驟的流程圖。
[0015]本公開案和附圖自始至終使用相同的數字來表示同樣的組件和功能,但是這種數字的重複是出於說明和理解簡單化的目的,而不應該視為對各種實施方案的限制。
[0016]發明詳述
[0017]在以下描述中,將描述各種實施方案。出於解釋的目的,將闡述具體的配置和細節,以便提供實施方案的透徹理解。然而,對本領域的技術人員將是顯而易見的是,沒有具體細節的情況下也可以實行實施方案。此外,為了不使所描述的實施方案變得模糊,可能會省略或簡化眾所周知的特徵。
[0018]在至少一個實施方案中,通過控制對實施計算應用程式功能的可執行指令的訪問,可以至少部分地減輕計算應用程式功能的非法、未授權、無補償和/或欠補償利用。所述可執行指令可以由一組一個或多個虛擬計算機器(「虛擬機」)執行,所述虛擬機由多租戶虛擬資源提供者來供應。虛擬資源提供者可以通過一組受管理的實施資源來供應虛擬機和其它虛擬資源,所述實施資源如物理伺服器、物理網絡交換機和物理網絡路徑。可以通過虛擬資源提供者的控制平面來管理實施資源的供應,包括分配和持續再分配。控制平面可以為虛擬資源提供者執行許多控制功能,包括虛擬資源訪問策略的管理和施行。
[0019]例如,虛擬資源提供者可以供應所述虛擬機組和一組通信連接,所述通信連接組使得能夠與虛擬機組進行通信。由虛擬資源提供者的控制平面所施行的虛擬資源訪問策略組可以包括一個或多個策略,所述一個或多個策略共同指定,執行實施計算應用程式功能的可執行指令的供應虛擬機組將通過所述供應的通信連接組(所述「允許」的通信連接組))進行訪問,並沒有其它方式。在通信協議允許通信埠或子地址或類似信息規範的情況下,此類策略可以在最精細粒度級別上指定所允許的通信連接。虛擬資源訪問策略組可以進一步包括一個或多個策略,所述一個或多個策略共同指定將根據計算應用程式功能性的第三方提供者或供應商與計算應用程式功能性的用戶之間的許可證或協議來訪問計算應用程式功能性。
[0020]在至少一個實施方案中,所允許的通信連接組對應於由虛擬資源提供者供應的虛擬機之間的通信連接。例如,所允許的通信連接組可以位於執行實施所述計算程序功能(「應用程式工具」)的供應虛擬機組與由虛擬資源提供者供應的一個或多個虛擬機之間,在所述一個或多個虛擬機中,由作業系統(一個或多個「用戶VM」)來維護用戶帳戶和工作環境。在至少一個實施方案中,所允許的通信連接組可以包括所述應用程式工具與一個或多個虛擬機和/或計算設備之間的通信連接,所述計算設備不由虛擬資源提供者供應但參與由所述虛擬資源提供者維護的虛擬私有雲(VPC)計算中,使得控制平面可以施行關於應用程式工具和/或所允許通信連接組的訪問策略。
[0021]可以在各種環境中針對各種應用程式來實施各種方法。例如,圖1示出示例性環境100的多個方面,用於實施根據各種實施方案的多個方面。如將了解的,雖然為了解釋的目的可以利用基於網絡的環境,但是在適當情況下也可以利用不同的環境來實施各種實施方案。所展示的環境100包括測試或開發部分(或側)和生產部分。生產部包括電子客戶端設備102,所述設備102可以包括可操作以通過適當的網絡104發送和接收請求、消息或信息且將信息傳回給設備102的用戶的任何適當的設備。此類客戶設備的實例包括個人計算機、手機、手持通信設備,筆記本計算機、平板計算機、機頂盒,個人數據助理、電子書閱讀器坐寸O
[0022]網絡104可以包括任何適當的網絡,所述網絡包括企業內部網、網際網路、蜂窩網絡、區域網、廣域網、無線數據網絡或任何其它此類網絡或其組合。用於此類系統的組件可能至少部分地取決於所選網絡和/或環境的類型。用於經由此類網絡進行通信的協議和組件是眾所周知的,且本文將不再詳細論述。通過有線或無線連接及其組合可以啟用所述網絡上的通信。在這個實例中,網絡104包括網際網路,因為所述環境包括用於接收請求並對請求做出響應而提供內容的網絡伺服器106,雖然針對其它網絡也可以利用服務於相似目的的可替代設備,這對本領域普通技術人員而言將是顯而易見的。
[0023]所述說明性環境100包括至少一個應用程式伺服器108和數據存儲110。應當理解的是,可能存在一些應用程式伺服器、層或其它元件、過程或組件,所述各項可以是鏈式的或以其它方式配置的,所述各項可以進行互動以執行任務,如從適當的數據存儲中獲取數據。如本文所使用的,術語「數據存儲」是指能夠存儲、訪問和/或檢索數據的任何設備或設備的組合,這些設備或設備組合可以包括任何標準、分布式或集群式環境中任何組合式的和任何數量的數據伺服器、資料庫、數據存儲設備和數據存儲介質。
[0024]應用程式伺服器108可以包括用於與為客戶端設備102執行一個或多個應用程式的多個方面的數據存儲集成的任何適當的硬體和軟體,並且甚至也可以處理針對應用程式的大多數數據訪問和業務邏輯。應用程式伺服器108通過與數據存儲110合作而提供訪問控制服務,並且能夠產生有待轉移給用戶的內容,如文本、圖形、音頻和/或視頻,在該實例中,所述內容可以通過網絡伺服器106以HTML、XML或另一種適當的結構化語言形式提供給用戶。
[0025]所有請求和響應的處理,以及客戶端設備102與應用程式伺服器108之間的內容的傳遞均可由網絡伺服器106來處理。應當理解的是,網絡伺服器106和應用程式伺服器108不是必需的,而僅僅是示例性組件,因為本文所討論的結構化代碼可以在任何適當的設備或主機(如本文其它地方所論述的)上執行。此外,環境100可以按照合適的方式進行構建,從而使得可以提供測試自動化框架作為用戶或應用程式可以訂閱的服務。可以提供測試自動化框架作為本文所論述的各種測試模式中任一模式的實現方式,雖然也可以利用如本文所論述或建議的各種其它實現方式。
[0026]環境100也可以包括開發和/或測試側,所述開發和/或測試側包括允許用戶(如開發者、數據管理員或測試員)訪問系統的用戶設備118。用戶設備118可以是任何適當的設備或機器,如上文參照客戶端設備102所描述的。環境100也可以包括開發伺服器120,例如,所述開發伺服器與應用程式伺服器108發揮類似作用,但通常在開發和測試期間,在代碼部署和執行於生產側上以及可以被外部用戶訪問之前運行代碼。在一些實施方案中,應用程式伺服器可以充當開發伺服器,且可以不利用單獨的生產和測試存儲裝置。
[0027]數據存儲110可以包括用於存儲與特定方面相關的數據的幾個單獨的數據表、資料庫或其它數據存儲機構和介質。例如,所示出的數據存儲110包括用於存儲生產數據112和用戶信息116的機構,可以利用所述機構來為生產側提供內容。數據存儲110也被示出包括用於存儲測試數據114的機構,所述測試數據114可以與用戶信息一起用於測試側。應當理解的是,可能存在許多存儲在數據存儲110中的其它多個方面,如針對頁面圖像信息和訪問權限信息,這些方面可以存儲在上文列出的適當機構中的任一個機構中,或存儲在數據存儲110中的另外機構中。
[0028]數據存儲110可以通過與其相關聯的邏輯進行操作,以從應用程式伺服器108或開發伺服器120接收指令,並響應於所述指令而獲取、更新或以其它方式處理數據。在一個實例中,用戶可以針對某種類型的項目提交搜索請求。在這種情況下,數據存儲110可以訪問所述用戶信息116來驗證用戶的身份,並且可以訪問目錄詳細信息,來獲取關於此種類型項目的信息。然後,可以將所述信息返回給用戶,如在網頁上的結果列表中,用戶經由用戶設備102上的瀏覽器能夠查看所述結果列表。可以在專門網頁或瀏覽器窗口中查看感興趣的特定項目的信息。
[0029]每個伺服器通常會包括提供針對該伺服器的一般管理和操作的可執行程序指令的作業系統,且通常包括存儲指令的計算機可讀介質,當這些指令被所述伺服器的處理器執行時,所述指令允許所述伺服器執行其期望的功能。針對作業系統和伺服器一般功能的合適實現方式是已知的或可商購獲得,並且本領域的普通技術人員,特別是根據本公開,較易實施這些方式。
[0030]一個實施方案中的環境100是利用幾個計算機系統和組件的分布式計算環境,所述計算機系統和組件經由通信鏈路,使用一個或多個計算機網絡或直接連接來進行互連。然而,本領域的普通技術人員將要了解的是,與圖1示出的系統相比,這種系統和具有更少或更大數量的組件的系統一樣可以良好地操作。因此,圖1中的系統100的描繪在本質上應被視為是說明性的,且不限制本公開的範圍。
[0031]在至少一個實施方案中,環境100的一個或多個方面可以併入有和/或被併入至虛擬資源供應架構中。圖2描繪根據至少一個實施方案的示例性虛擬資源供應架構200的多個方面。示例性虛擬資源供應架構200包括多個客戶端202至204,這些客戶端通過網絡208通信連接至虛擬資源提供者206。例如,客戶端202至204可以對應於計算設備(如圖1的計算設備102)和/或併入至此類計算設備中的客戶端程序。客戶端202與客戶端204之間的省略號指示虛擬資源供應架構200可以包括任何合適數量的客戶端,雖然為清楚起見,僅僅在圖2中展示兩個。在附圖中自始至終類似地使用省略號。
[0032]與虛擬資源提供者206的租戶相關聯的一個或多個授權用戶可以利用客戶端202至204中的一個或多個客戶端來與虛擬資源提供者206的控制平面210進行互動,從而供應一個或多個虛擬計算資源212。可替代地或另外地,可以利用客戶端202至204中的一個或多個客戶端來與所供應的虛擬計算資源212進行互動。所供應的虛擬計算資源212可以包括任何合適類型和/或數量的虛擬資源214至216。合適虛擬資源214至216的實例包括虛擬機(如虛擬計算機系統(VCS ))、虛擬網絡、虛擬專用網(VPN)、虛擬網絡連接,虛擬數據存儲、虛擬文件系統卷、專業數據處理代理、媒體流代理(包括音頻和視頻流代理)、消息隊列、發布-訂閱主題(其經過配置來通知訂閱者具有與向發布-訂閱主題所發布的事件相匹配的訂閱)、監測代理、負載平衡代理及其合適的組合。
[0033]虛擬資源提供者206可以進一步包括任何合適類型和/或數量的實施資源218。所供應的計算資源212中的每個資源可以通過一組實施資源218來實施。在至少一個實施方案中,實施資源218的各種實施資源可以經過配置而至少部分地參與實施多個供應的計算資源212。合適實施資源218的實例包括VCS伺服器、數據存儲伺服器、計算機、伺服器機架、組網硬體(包括交換機、路由器、網關、網橋、集線器、中繼器、防火牆和無線收發器)、電源供應器、發電機、數據中心、數據中心中的空間、移動數據中心,以及非易失性存儲設備(包括硬碟驅動器)、處理單元(如中央處理器(CPU))、處理單元中的高速緩存、多核處理單元中的處理內核、易失性存儲設備(如存儲器模塊,包括隨機存取存儲器(RAM)模塊和多晶片存儲器模塊的RAM晶片)、網絡接口硬體及其合適的組合。
[0034]在至少一個實施方案中,一個或多個類型的供應的計算資源212 (如虛擬計算機系統)默認通過具有標準的實施資源能力組(例如,標準數量的易失性和/或非易失性存儲)的實施資源組來實施。可以供應不同的實施資源能力用於這種計算資源212。例如,可以根據實施資源供應這種計算資源212,所述實施資源全體具有實施資源能力組,所述實施資源能力組的一個或多個是所述標準組中的對應的實施資源能力的倍數。假設虛擬計算機系統對應於「小的」尺寸具有I千兆字節的可用RAM。例如,對應於2千兆字節和4千兆字節的RAM,可能要求虛擬計算機系統分別具有「中等」和「大的」尺寸。具有較大的「尺寸」供應的計算資源212可能具有相當高的關聯成本。
[0035]所供應的虛擬計算資源212可以進一步包括任何合適類型和/或數量的應用程式工具220至222。在至少一個實施方案中,應用程式工具可以配置一個或多個虛擬資源組(例如,對應於虛擬資源214至216)和/或實施資源218來提供計算應用程式功能組。可以以與供應所述虛擬資源214至216的方式對應的方式供應應用程式工具220至222。在所述實例中,虛擬資源提供者206、應用程式工具220至222位於不同於所供應的計算資源212的一般用戶空間226的應用程式供應商空間224中。所供應的不同計算資源空間224至226中的位置可能對應於不同的訪問策略和/或成本會計處理,這反映關於所述虛擬資源提供者206的不同角色。
[0036]例如,一般用戶空間226中供應的虛擬資源214至216可以促進租戶的業務最終使用。相反地,可以由第三方供應商提供應用程式工具220至222以提供一組計算應用程式功能。與一般用戶空間226中的虛擬資源214至216相關聯的訪問策略可以允許來自公共網絡的訪問。相反地,與應用程式工具220至222相關聯的訪問策略可能會限制訪問其它供應的計算資源212或訪問所述虛擬資源214-216的具體的子集,如一組具體的用戶VM和/或通信連接。可以至少部分地基於所分配的實施資源218來確定與一般用戶空間226中的虛擬資源214至216相關聯的成本。相反地,可以至少部分地基於固定費用、每個合適的時間單位內的費用、相關聯的實施資源218成本加上附加費、功能使用和/或任何合適的成本核算方法來確定與應用程式工具220至222相關聯的成本。
[0037]控制平面210可以響應於供應請求而通過實施資源218來供應計算資源212。控制平面210可以進一步管理和施行控制對所供應計算資源的訪問的策略,所述策略包括定義和/或維護不同於一般用戶空間226的應用程式供應商空間224的一個或多個策略。控制平面210可以進一步跟蹤與維護所供應計算資源212相關聯的成本並且向租戶帳戶分配適當的成本。將在下文參照圖4更詳細地描述根據至少一個實施方案的示例性控制平面。
[0038]在至少一個實施方案中,至少部分地通過施行至少一個策略來控制對實施應用程式工具220至222的計算應用程式功能的可執行指令的訪問,所述至少一個策略指定通過一組具體的通信連接來訪問具體的應用程式工具220至222,而沒有其它方式。圖3描繪根據至少一個實施方案的示例性虛擬資源提供者302。圖3的示例性虛擬資源提供者302包括與圖2的控制平面210、一般用戶空間226和應用程式供應商空間224相對應的控制平面304、一般用戶空間306和應用程式供應商空間308。圖3的一般用戶空間306包含多個虛擬機310至314,這些虛擬機通過多個供應的通信連接322至324而通信連接至多個應用程式工具316至320。例如,虛擬機310至314可以是用戶VM,並且應用程式工具316至320可以與圖2的應用程式工具220至222相對應。在至少一個實施方案中,應用程式工具316至320上的用戶控制相對於所述虛擬機310至314處在較低的級別上。例如,應用程式工具316至320上的用戶控制可能會受限於啟動、暫停和終止所述應用程式工具316至320。相反地,授權用戶能夠全面配置且登錄到所述虛擬機310至314。
[0039]在示例性虛擬資源提供者302中,一般用戶空間306和應用程式供應商空間308由通信障礙326隔開,以指示通過控制平面304施行的一個或多個策略來阻止虛擬機310至314與應用程式工具316至320之間特別的和/或不兼容的通信連接。可以通過策略兼容性通信連接322至324,將所述虛擬機310至314中的一個或多個虛擬機連接至應用程式工具316至320中的一個或多個裝置。在示例性虛擬資源提供者302中,通過策略兼容性通信連接322將虛擬機314連接至所述應用程式工具320。通過策略兼容性通信連接324將虛擬機310至312的組326連接至應用程式工具316至318的組。通過控制平面304描繪策略兼容性通信連接322至324來指示控制平面304施行相關聯的訪問策略的能力。
[0040]策略兼容性通信連接322至324可以通過任何合適的通信介質和/或通信協議維護。例如,策略兼容性通信連接322至324可以通過根據傳輸控制協議和/或網際網路協議(例如,TCP/IP)的通信協議維護。虛擬機310至314和/或應用程式工具316至320的每個可以與通信協議地址和/或通信埠相關聯,例如,與所述通信連接322相關聯的所述訪問策略組可以指定通過所述通信連接322傳送的協議消息的目的地,所述目的地與具體的通信協議地址和具體的通信埠對應。可替代地或另外地,應用程式工具316至320可以向計算應用程式功能整合和/或提供一個或多個接口 328至332,並且,例如,所述訪問策略組可以指定通過通信連接322傳送的協議消息根據和/或定向到接口 332的一個或多個元件(例如,此類接口元件的選定子集)。
[0041]接口 328至332可以包括任何合適的接口元件,如與計算應用程式的功能或功能組相對應的接口元件。接口 328至332可以併入有和/或被併入在用戶接口(UI)中,如圖形用戶接口(⑶I)、基於網絡的接口、編程接口(如應用程式編程接口(API))和/或與供應的接口元件對應的遠程程序調用(RPC)、消息接口,如接口 328至332的接口元件與通信協議的消息相對應的消息接口,遠程桌面協議,如遠程的幀緩衝協議(例如,RFB)或如在「X窗口系統」,Scheifler等,ACM圖形會刊,1986年4月,79-109頁中描述的「X窗口系統(XffINDOff SYSTEM)」協議和/或其任何合適的組合。基於網絡的接口可以包括網絡服務接口,如具象狀態傳輸(REST)兼容(「RESTful 」)網絡服務接口,或簡單對象訪問協議(SOAP)兼容網絡服務接口,或者其它「非具象狀態傳輸兼容(non-RESTful)」網絡服務接口。
[0042]圖4描繪根據至少一個實施方案的示例性控制平面402的多個方面。控制平面402可以包括能讓授權用戶訪問控制平面402功能的用戶接口(I/F) 404和應用程式供應商接口(I/F)406,所述應用程式供應商接口 406使應用程式供應商能夠管理由所述應用程式供應商提供的應用程式工具組(例如,圖3的應用程式工具316至320)。用戶接口 404和應用程式供應商接口 406可以併入有和/或被併入在任何合適類型的功能接口中(例如,圖3所描述的接口 328至332)。[0043]併入有控制平面402的虛擬資源提供者302 (圖3)可能具有多個租戶,所述租戶負責與租戶授權用戶所供應的計算資源212 (圖2)相關聯的成本。由租戶指定的管理用戶可能會與用戶接口 404進行互動來管理與所述租戶相關聯的不同類型用戶,包括授權產生成本的用戶,例如,通過供應計算資源212。授權用戶可以與用戶接口 404進行互動來供應計算資源212且管理(例如,瀏覽、標記、分配、路由和排放)相關聯的成本。
[0044]應用程式供應商也可以是虛擬資源提供者302 (圖3)的租戶,雖然這在每個實施方案中並非必要的。當可用於供應時,所述應用程式供應商可能會與應用程式供應商接口406進行互動,來配置和/或註冊應用程式工具(如圖3的應用程式工具316至320),以及指定許可證條件,配置相關聯的成本計劃和管理相關聯的成本。所述許可證條件可以包括任何合適的關於訪問計算應用程式功能的條件,如存在一個有效的、未過期的許可證,沒有超過最大數量的用戶已訪問所述計算應用程式功能或其一些具體的部分,沒有超過最大數量的並發用戶正在訪問所述計算應用程式功能或其一些指定的部分,訪問所述計算應用程式功能或其一些具體的部分沒有超過閾值數量的次數等等。取決於所述相關聯的成本計劃,針對由應用程式供應商提供的應用程式工具的供應的示例所產生的成本,所述應用程式供應商可以對虛擬資源提供者302負責。可替代地或另外地,所述相關聯的成本計劃可以指定所述供應的租戶對關聯的成本和由供應的租戶支付的費用負責,所述費用可以在所述應用程式供應商與所述虛擬資源提供者之間根據他們之間的協議被分配。
[0045]控制平面402的供應組件408響應於供應請求可以供應計算資源212 (圖2),例如,接收來自用戶接口 404的請求。供應組件408可以確定實施資源218的類型和能力,所述實施資源被要求來實施特定供應的計算資源212,並且向實施虛擬資源214至216和/或應用程式工具220至222的任務分配可用的這種實施資源,以及實施資源212的持續再分配,例如,為了提高利用效率和/或降低由於實施資源失敗導致的供應資源失敗的可能性。
[0046]控制平面402的策略施行組件410可以管理和施行虛擬資源提供者206 (圖2)策略。例如,策略施行組件410可以通過用戶接口 404接收來自授權用戶有待施行的策略,可以在供應期間在策略施行組件410中建立關於具體供應的資源的策略,可以通過所述虛擬資源提供者206的管理員在策略施行組件410中建立策略,和/或可以與供應的資源212訪問和/或來自客戶端202至204的進行互動請求一起接收策略(例如,加密籤名策略)。虛擬資源提供者206策略可以統治虛擬資源提供者206功能的任何合適的方面,所述功能包括由供應的資源提供的功能212。可以命名、標記和/或尋址具體的由供應的資源212提供的功能集和/或子集。虛擬資源提供者206策略可以單個地統治每個這種集和/或子集。這種統治可能包括關於實施資源分配和利用,以及用戶訪問和向特定供應的資源212的數據傳輸及來自具體供應的資源212的數據傳輸的約束。供應的資源212的用戶可以包括客戶端202至204用戶,包括匿名用戶、虛擬資源提供者206用戶,包括管理用戶和虛擬資源提供者206組件,所述組件包括實施資源218、所供應的資源212和控制平面402組件404至 416。
[0047]虛擬資源提供者206(圖2)策略可以指定有待滿足的任何合適條件組。例如,所述策略可以指定相應條件,在所述條件下允許訪問具體的應用程式工具。根據任何合適的條件規範語言,包括合適的程式語言,可以指定此類條件,並且所述條件可以包括複合條件,例如,根據布爾操作符指定。條件參數可以包括任何合適的對所述虛擬資源提供者206數據可用的數據。狀態參數的實例包括環境數據,如日曆日期和當日時間和與請求相關聯的數據,如原始網絡地址、原始地理位置、原始策略和/或管理部門和採用的通信協議。
[0048]控制平面402的成本跟蹤組件412可以跟蹤與供應和/或維護計算資源212 (圖2)相關聯的成本(例如,計算和/或財務成本)。可以向帳戶,包括租戶帳戶分配成本。例如,可以向所述租戶的帳戶分配與由具體租戶相關聯的一個或多個用戶所供應的計算資源212相關聯的成本。租戶帳戶和/或所述供應的資源212的一個或多個可以與一個或多個成本計劃相關聯,且可以根據所述成本計劃確定向所述租戶帳戶分配的成本。成本計劃可以依照固定費用和/或基於任何合適的度量指定成本。例如,成本計劃可以基於具體供應的資源212可用於至少一個與所述租戶相關聯的用戶的一些時間單位、分配具體的實施資源218來維護與所述租戶相關聯的供應的資源212的一些時間單位、具體供應的資源212的具體功能組的一些使用和/或合適的它們的組合來指定成本。關於應用程式工具220至222,所述成本計劃可以指定與所述租戶關聯的成本帳單,包括成本轉嫁、成本加上附加費、固定收費、定期訪問費、功能訪問費、啟用和停用費、獨立計費和它們合適的組合。
[0049]控制平面402的應用程式權限管理(ARM)組件414可能採取行動來建立和維護關於供應的應用程式工具220至222 (圖2)的用戶和供應商權限。例如,應用程式權限管理組件414可以提供和/或建立虛擬資源提供者206策略,所述策略控制訪問實施供應的應用程式工具220至222的功能的可執行指令。所述應用程式權限管理組件414可以進一步促進多個應用程式功能組和/或應用程式功能組的激活和/或去活。例如,應用程式權限管理組件414可以向應用程式工具220至222通知用戶請求來激活和/或去活應用程式功能,並且響應於從應用程式工具220至222接收的激活狀態更新來修改虛擬資源提供者206策略和/或成本計劃。
[0050]控制平面402可以進一步包括工作流程組件416,所述工作流程組件至少被配置為建立和維護工作流程,如供應的資源工作流程、供應工作流程和/或策略施行工作流程,所述工作流程分別由供應的資源212(圖2)、供應組件408和策略施行組件410建立。工作流程可以包括一個或多個有待執行的任務序列來執行工作,如虛擬資源配置、供應或策略管理。工作流程,作為本文使用的術語,雖然不是它們自己的任務,但是任務控制結構,所述任務控制結構可以控制去向和來自任務的信息流量,也控制所述任務的執行順序。例如,工作流程可以被視為狀態機,所述狀態機在執行期間任何時間可以管理和返回過程狀態。工作流程可以從工作流程模板創建。例如,可以通過策略施行組件410根據參數配置從策略施行工作流程模板來創建策略施行工作流程。
[0051]工作流程組件416可以修改、進一步指定和/或進一步配置既定的工作流程。例如,工作流程組件416可以選擇虛擬資源提供者206 (圖2)的特定實施資源來執行和/或分配給具體的任務。這種選擇可以至少部分地基於所述具體的如由所述工作流程組件416評估的任務的計算資源需求。作為另一實施方案,工作流程組件416可以向既定的工作流程添加額外的和/或複製的任務和/或在所述既定的工作流程中的任務之間重新配置信息流。這種既定的工作流程的修改可以是至少部分地基於通過工作流程組件416的執行效率分析。例如,某些任務可以高效並行執行,而其它任務取決於先前任務的成功完成。
[0052]通過一組供應的資源212 (圖2)、一組實施資源218和/或對應的計算資源,可以實施控制平面402。通過控制平面210可以控制實施資源218的每個。例如,每個實施資源可以參與和/或整合控制平面210的部分、代理和/或組件。通過控制平面210可以控制所述供應的資源212的每個。例如,每個供應的資源可以參與和/或整合所述控制平面210的部分、代理和/或組件。控制平面210貫穿實施資源218和/或供應的資源212可以是分布式的。例如,可以通過對本領域技術人員來說是眾所周知的分布式計算技術來實施所述控制平面210。
[0053]現在根據至少一個實施方案將描述轉向可能會執行的示例性步驟。圖5描繪根據至少一個實施方案、用於製作在虛擬資源提供者中可用的應用程式工具的示例性步驟。在步驟502中,可以配置原型應用程式工具。第三方應用程式供應商的授權用戶可以在虛擬資源提供者206 (圖2)中供應虛擬機並且配置所述虛擬機來執行指令,所述指令實施一組所需的計算應用程式功能。例如,所述虛擬機可以是併入有計算機作業系統的虛擬計算機系統,並且授權用戶可以將一個或多個應用程式模塊安裝和配置到所述虛擬計算機系統和/或所述計算機作業系統中。可替代地,所述虛擬機可以獨立於計算機作業系統而併入有所需的計算應用程式功能組。
[0054]在步驟504中,可以將所述原型應用程式工具包裝成適用於供應的形式。例如,授權用戶可以請求虛擬資源提供者206 (圖2)創建所述來自步驟502中配置的原型的設置包。用戶接口 404和/或應用程式供應商接口 406 (圖4)可以包括一個或多個使能所述授權用戶來做出這種請求的接口元件。在步驟506中,所述包裝的原型可以被提交到和/或註冊到虛擬資源提供者206。例如,應用程式供應商接口 406的製造包括一個或多個使能這種提交和/或註冊的接口元件。步驟506可以併入至步驟504中。
[0055]在步驟508中,可以指定一個或多個應用程式工具功能成本。例如,授權用戶可以與應用程式供應商接口 406 (圖4)的一個或多個接口元件進行互動來指定針對所述應用程式工具的用戶的成本計劃。可以指定與基本功能的訪問相關聯的成本,以及與一組非基本和/或高級功能的每個相關聯的成本。具體的應用程式功能代碼可以與人類可讀的名稱、簡短描述和/或長描述相關聯。在步驟510中,可以做出請求來使所述應用程式工具可用於供應。例如,所述授權用戶可以通過所述應用程式供應商接口 406的一個或多個接口元件提交所述命令。
[0056]在步驟512中,可以驗證所述提交的和/或註冊的應用程式工具原型。例如,所述應用程式權限管理組件414 (圖4)可以驗證應用程式工具原型包括在安全方面的靜態和/或動態完整性。如果驗證了所述應用程式工具,那麼然後在步驟516中它可以被製成通過虛擬資源提供者206 (圖2)的租戶的授權用戶可用於供應。另外的,在驗證期間發生的一個或多個問題可以在步驟514中報告給所述供應商。
[0057]圖6描繪根據至少一個實施方案、用於訪問應用程式工具功能的示例性步驟。在步驟602中,可以接收向用戶供應VM的請求。例如,與虛擬資源提供者206 (圖2)的租戶相關聯的授權用戶可以通過控制平面402的用戶接口元件404 (圖4)提交供應請求。在步驟604中,可以供應所請求的用戶VM。例如,供應組件408可以供應所請求的在一般用戶空間306 (圖3)中的虛擬機314。所述請求的虛擬機314可以是整合有計算機作業系統的虛擬計算機系統。
[0058]在步驟606中,可以接收供應應用程式工具的請求。例如,授權用戶可以通過用戶接口組件404 (圖4)提交另一供應請求。在至少一個實施方案中,所述授權用戶不需要知道如何實施與所述應用程式工具相關聯的計算應用程式功能。例如,所述授權用戶不需要知道應用程式工具實例被供應來實施所述計算應用程式功能。所述授權用戶可以請求所述計算應用程式功能可用於步驟602中供應的用戶VM,並且作為響應可以產生步驟606的供應請求,例如,作為應用程式工具供應工作流程的一部分。當所述應用程式工具提供一個或多個可選功能時,所述供應要求在供應期間可以進一步指定一組可選功能來激活。在至少一個實施方案中,所述供應要求可以進一步指定一組可選實施資源218 (圖2)和/或資源能力使可用於所述供應的應用程式工具。在步驟608中,可以供應所述應用程式工具。例如,供應組件408可以根據步驟606的供應請求供應所述請求的應用程式供應商空間308中的應用程式工具320 (圖3)。
[0059]在步驟610中,可以供應在用戶VM與應用程式工具之間的通信連接。例如,供應組件408 (圖4)可以通過合適的實施資源218 (圖2)來供應通信連接322 (圖3)。在步驟612中,可以配置應用程式工具訪問策略。例如,應用程式權限管理組件414可以通過一個或多個統治供應的應用程式工具320、供應的用戶VM314和/或它們之間的通信連接322的策略來配置策略施行組件410。可替代地,所述應用程式權限管理組件414可以為這種策略提供一個或多個由應用程式工具供應工作流程配置的模板。
[0060]在步驟614中,可以根據步驟612中配置的訪問策略組使能訪問供應的應用程式工具。例如,策略執行組件410 (圖4)可以開始施行步驟612的訪問策略組,可以激活通信接口 322 (圖3)和/或可以使與應用程式工具320的接口 332對應的本地接口可用於由虛擬機314維護的過程。
[0061]圖7描繪根據至少一個實施方案、用於動態功能激活的示例性步驟。在步驟702中,供應的應用程式工具實例可以訂閱功能激活請求。例如,應用程式權限管理組件414可以為應用程式工具320 (圖3)訂閱這種請求。在步驟704中,可以接收功能激活請求。例如,與虛擬資源提供者206 (圖2)的租戶相關聯的授權用戶可以請求使由所述應用程式工具320實施的可選的計算應用程式功能組可用於用戶VM314。可以通過用戶接口 404 (圖4)來做出所述功能激活請求並且通過應用程式權限管理組件414和/或工作流程組件416來接收和處理。
[0062]在步驟706中,可以通知應用程式工具實例步驟704中接收的功能激活請求。例如,應用程式權限管理組件414 (圖4)可以通過應用程式工具320的合適的接口元件來通知所述應用程式工具320 (圖3)功能激活請求。在步驟708中,可以接收對步驟706的通知的響應。例如,所述應用程式實例320可以響應的是:所述請求的功能已激活和/或是可用的,或者另外地存在處理所述功能激活請求的問題。
[0063]在步驟710中,例如,根據步驟708中接收到的響應,可以確定所述請求的功能是否已激活。如果所述請求的功能已激活,整合步驟710的過程可以前進至步驟714。否則,所述過程可以前進至步驟712。在步驟712中,可以通知步驟704中所接收到的請求的發送者在所述功能激活請求處理期間發生的問題。在步驟714中,可以通知成本跟蹤組件412(圖4)所請求的功能的成功激活,例如,通過應用程式權限管理組件414。在步驟716中,可以更新與所述應用程式工具實例相關聯的帳戶。例如,成本跟蹤組件412可以更新與用戶VM314相關聯的租戶帳戶,來根據對應的成本計劃開始針對所述激活的功能進行計費。
[0064]如上文參照圖4所描述的,通過由工作流程組件416維護的一個或多個工作流程,可以促進控制平面402。圖8描繪根據至少一個實施方案、用於工作流程管理的示例性步驟。在步驟802中,可以由所述控制平面402 (圖4)的接口來接收請求。例如,所述控制平面402的用戶接口 404或應用程式供應商接口 406,可以接收來自虛擬資源提供者202的用戶和/或管理員的請求。在步驟804,可能分析所述請求來確定成功處理所述請求所需的一個或多個行動。例如,供應組件408可以分析所述請求,並且確定所需的一組行動來供應一組計算資源212 (圖2)。當接口元件接收與有待執行的特定行動相對應的請求時,所述接口可以從所述請求提取有待利用於確定有待執行的行動的多個方面和/或參數的信息。
[0065]在步驟806中,請求可以至少部分地基於一個或多個步驟804中確定的行動被發送來創建工作流程。例如,供應組件408 (圖4)可以向工作流程組件416發送所述請求。創建工作流程的所述要求可能包括行動、行動元數據,如行動的類型和/或行動參數。在至少一個實施方案中,控制平面402和/或所述工作流程組件416為這種請求維護作業隊列,並且響應於新條件創建工作流程到作業隊列中。在步驟808中,可以創建工作流程和一個或多個子任務。例如,所述工作流程416可以分析步驟806中的請求來確定創建適當的工作流程和子任務。
[0066]在步驟810中,根據工作流程可以引導子任務的執行。例如,工作流程組件416(圖4)可以激活各種實施資源的接口的元件來供應虛擬資源組。可替代地或另外地,工作流程組件416可以通過虛擬資源提供者206 (圖2)的組件管理針對所述子任務的執行的出價。在步驟812中,可以確定所述工作流程是否已結束。例如,工作流程組件416可以確定是否已完成由所述工作流程管理的任務序列中的最終任務。如果這樣,併入有步驟812的程序可以前進至步驟814。否則,所述過程可以返回至步驟810用於下一個任務和/或任務序列。工作流程可以指導多個並行執行的任務序列。在這種情況下,可能是所述工作流程沒有完成直到多任務序列的每個都完成和/或通過所述子任務之一設置明顯的工作流程完成的標誌。在步驟814中,可以將所述行動的結果通知給步驟802的請求的發送者。
[0067]可以通過以下條款來描述本公開的各種實施方案:
[0068]條款1.一種用於管理計算應用程式功能的權限的計算機實施方法,其包括:
[0069]在一個或多個配置有可執行指令的計算機系統的控制下,
[0070]供應包括作業系統的第一虛擬機,與多租戶虛擬資源提供者的租戶相關聯的至少一個用戶能夠訪問所述第一虛擬機,所述第一虛擬機的供應至少部分地由所述多租戶虛擬資源提供者的控制平面加以促進;
[0071]供應第二虛擬機,所述虛擬機至少經過配置來執行應用程式的至少一部分,所述第二虛擬機的供應至少部分地由所述多租戶虛擬資源提供者的控制平面加以促進;
[0072]至少部分地通過在所述第一虛擬機與所述第二虛擬機之間建立至少一個通信連接,並且在所述第二虛擬機中維護至少一個通向應用程式的接口來向應用程式的功能提供至少一個用戶訪問;
[0073]通過所述至少一個用戶,來施行所述應用程式的功能的訪問條件,所述訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口發生訪問,所述訪問條件的施行至少部分地由所述多租戶虛擬資源提供者的所述控制平面來執行;以及
[0074]準許通過所述至少一個通信連連接來傳送數據,以便呈現給所述至少一個用戶。
[0075]條款2.根據條款I所述的計算機實施方法,其中供應所述第一虛擬機和所述第二虛擬機包括分配來自實施資源池的實施資源,所述實施資源池由所述多租戶虛擬資源提供者的控制平面管理。
[0076]條款3.根據條款2所述的計算機實施方法,其進一步包括:
[0077]接收至少一個資源能力規範,使其可用於所述應用程式;以及
[0078]通過一組來自所述實施資源池的實施資源來供應一組包括所述第二虛擬機的虛擬資源,所述實施資源共同具有一組資源能力,此組資源能力包括所述至少一個指定的資源能力。
[0079]條款4.根據條款3所述的計算機實施方法,其中指定所述至少一個指定的資源能力作為預定義的實施資源組的倍數。
[0080]條款5.—種用於管理計算應用程式功能的權限的計算機實施方法,其包括:
[0081]在一個或多個配置有可執行指令的計算系統的控制下;
[0082]供應經過配置來執行應用程式的至少一部分的至少一個虛擬機,至少部分地通過虛擬資源提供者來執行所述供應;
[0083]至少部分地通過建立針對至少一個所述應用程式的接口的至少一個通信連接,來向所述應用程式的功能提供至少一個用戶訪問,至少部分地通過所述至少一個虛擬機來維護所述至少一個接口;
[0084]施行所述應用程式的功能訪問的條件,所述應用程式的功能的訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口發生訪問,所述應用程式的功能的訪問條件的施行至少部分地通過所述虛擬資源提供者來執行;以及
[0085]準許通過所述至少一個通信連接來傳送數據,以便呈現給所述至少一個用戶。
[0086]條款6.根據條款5所述的計算機實施方法,所述方法進一步包括施行訪問所述至少一個虛擬機的條件,訪問所述至少一個虛擬機的所述條件至少指定通過所述至少一個通信連接和所述至少一個接口發生訪問,至少部分地通過所述虛擬資源提供者的控制平面來執行訪問所述至少一個虛擬機的所述條件的所述施行。
[0087]條款7.根據條款5所述的計算機實施方法,其中利用一組實施資源來實施所述至少一個虛擬機,並且所述實施資源組的功能的訪問由所述虛擬資源提供者的控制平面加以控制。
[0088]條款8.根據條款7所述的計算機實施方法,其中所述實施資源組包括易失性存儲設備、非易失性存儲設備、處理器、物理伺服器、網絡接口埠、網絡交換機和網絡路徑中的至少一項。
[0089]條款9.根據條款5所述的計算機實施方法,其中利用一組實施資源來實施所述至少一個通信接口,並且所述實施資源組的功能的訪問由所述虛擬資源提供者的控制平面加以控制。
[0090]條款10.根據條款5所述的計算機實施方法,其中,向所述應用程式的功能提供所述至少一個用戶訪問包括創建至少一個指定所述訪問的條件的策略,以及施行所述訪問條件包括利用所述虛擬資源提供者的策略施行組件來施行所述至少一個策略。
[0091]條款11.根據條款5所述的計算機實施方法,其中所述至少一個接口包括與多個所述應用程式的功能特徵相對應的多個接口元件,並且所述應用程式的功能的訪問條件進一步指定所述訪問與所述多個接口元件的選定子集相對應。[0092]條款12.根據條款5所述的計算機實施方法,其中供應所述至少一個具有相關聯的成本組的虛擬機,所述成本組是向與所述至少一個用戶相關聯的帳戶收取。
[0093]條款13.根據條款12所述的計算機實施方法,其中所述應用程式成本組包括與所述至少一個能夠激活和去活的應用程式特徵相對應的至少一個成本。
[0094]條款14.根據條款5的所述計算機實施方法,其進一步包括:
[0095]在所述虛擬資源提供者的控制平面上,接收來自所述至少一個用戶的用戶請求,來激活所述應用程式的至少一個特徵;
[0096]向所述應用程式的特徵配置接口提交激活所述至少一個功能的控制平面請求,至少部分地通過所述至少一個虛擬機來維護所述特徵配置接口,並且不能通過所述至少一個通信連接對所述特徵配置接口進行訪問;
[0097]在所述控制平面中接收所述至少一個特徵已被激活的確認;以及
[0098]通知所述控制平面的成本跟蹤組件,與所述至少一個激活特徵相關聯的成本,將向與所述至少一個用戶相關聯的帳戶收取。
[0099]條款15.—種根據條款5的計算機實施方法,其中供應所述至少一個具有相關聯的實施資源成本組的虛擬機,所述成本組是向與所述至少一個用戶相關聯的帳戶收取。
[0100]條款16.根據條款5所述的計算機實施方法,其進一步包括接收用戶請求來供應所述至少一個虛擬機,所述用戶請求至少部分地指定至少一個實施資源的至少一個能力可以用於所述至少一個虛擬機。
[0101]條款17.—種用於管理計算應用程式功能的權限的計算機實施方法,其包括:
[0102]在一個或多個配置有可執行指令的計算系統的控制下;
[0103]至少部分地通過建立針對至少一個所述應用程式的接口的至少一個通信連接,來向應用程式的功能提供至少一個用戶訪問,至少部分地通過在虛擬資源提供者中所供應的至少一個虛擬機來維護所述至少一個接口;
[0104]施行所述應用程式的功能的訪問條件,所述應用程式的功能的訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口發生訪問,所述應用程式的功能的訪問條件的施行至少部分地通過所述虛擬資源提供者的控制平面來執行;
[0105]跟蹤與通過所述至少一個通信連接和所述至少一個接口進行的所述應用程式功能的訪問相關聯的至少一個成本;以及
[0106]提供跟蹤到的成本數據,以便呈現給所述虛擬資源提供者的租戶。
[0107]條款18.根據條款17所述的計算機實施方法,其中至少部分地通過所述虛擬資源提供者的至少一個實施資源來實施所述應用程式的功能,並且跟蹤所述至少一個成本包括跟蹤許多時間單位,在所述時間單位期間所述至少一個實施資源參與實施所述功能。
[0108]條款19.根據條款17所述的計算機實施方法,其中跟蹤所述至少一個成本包括跟蹤所述應用程式的所述至少一個接口的至少一個接口元件的一些利用。
[0109]條款20.—種用於管理計算應用程式功能的權限的計算機化系統,其包括:
[0110]一組實施資源,其至少可以經過配置來實施多個虛擬資源的;
[0111]虛擬資源供應組件,其至少經過配置而響應於供應請求,利用實施資源組來供應虛擬資源,所述虛擬資源包括至少一個虛擬機,所述虛擬機經過配置來執行應用程式的至少一部分和通向所述應用程式至少一個接口的至少一個通信連接;以及[0112]策略施行組件,其至少經過配置來施行所述應用程式的功能的訪問條件,所述應用程式的功能的訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口來發生訪問。
[0113]條款21.根據條款20所述的計算機化系統,其中所述計算機化系統進一步包括用戶接口組件,所述用戶接口組件至少經過配置來使用戶能夠提交訪問所述應用程式的所述功能的請求,且所述至少一個虛擬機是由所述虛擬資源供應組件至少部分地響應於訪問所述應用程式的所述功能的所述請求而供應的。
[0114]條款22.根據條款20所述的計算機化系統,其中所述計算機化系統進一步包括供應商接口組件,其至少經過配置而使應用程式供應商能夠配置所述至少一個虛擬機,來執行所述應用程式的所述至少一部分,並且能夠配置與所述應用程式的所述功能的訪問相關聯的至少一個成本。
[0115]條款23.—個或多個計算機可讀介質,在其上共同具有計算機可讀指令,所述計算機可讀指令配置一個或多個計算機來至少共同進行以下操作:
[0116]供應至少一個虛擬機,其經過配置來執行應用程式的至少一部分,至少部分地通過虛擬資源提供者的控制平面來促進所述供應;
[0117]至少部分地通過建立針對至少一個所述應用程式的接口的至少一個通信連接,來向所述應用程式的功能提供至少一個用戶訪問,至少部分地通過所述至少一個虛擬機來維護所述至少一個接口;
[0118]施行所述應用程式的功能的訪問條件,所述應用程式的功能的訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口來發生訪問,所述應用程式的功能的訪問條件的施行至少部分地通過所述虛擬資源提供者的控制平面來執行;以及
[0119]準許通過所述至少一個通信連接來傳送數據,以便呈現給所述至少一個用戶。
[0120]條款24.根據條款23所述的一個或多個計算機可讀介質,其中在對於所述至少一個用戶的作業系統而言是遠程的通信網絡位置中維護所述至少一個接口,並且通過對於所述作業系統來說是本地的所述至少一個對應接口來訪問所述至少一個通信連接。
[0121]條款25.根據條款23所述的一個或多個計算機可讀介質,其中所述至少一個接口包括根據遠程桌面協議的接口。
[0122]本文所描述的各種實施方案可以在多種操作環境中實施,所述實施方案在某些情況下可以包括一個或多個可以利用來操作一些應用程式的任一個的用戶計算機、計算設備或處理設備。用戶或客戶端設備可以包括一些通用個人計算機的任一個,如運行標準作業系統的臺式或筆記本計算機,以及運行移動軟體並能夠支持一些網絡和通信協議的行動電話、無線和手持設備。這種系統也可以包括運行各種市場上可買到的作業系統和其它已知的應用程式的一些工作站,所述應用程式針對如開發和資料庫管理的目的。這些設備還可以包括其它電子設備,如偽終端、瘦客戶端、遊戲系統以及其它經由網絡能夠進行通信的設備。
[0123]大多數實施方案利用至少一個對於本領域技術人員來說是熟悉的使用各種市場上可買到的協議的任一個的網絡用於支持通信,所述協議如TCP/IP、OS1、FTP、UPnP, NFS、CIFS和AppleTalk。這種網絡可以包括,例如,區域網、廣域網、虛擬專用網、網際網路、內聯網、外聯網、公共交換電話網絡、紅外網絡、無線網絡和任何它們的組合。所述網絡可以進一步整合任何合適的網絡拓撲結構。合適的網絡拓撲結構的實例可以包括但不限於,簡單的點對點、星形拓撲結構、自組織對等拓撲結構和它們的組合。
[0124]在實施方案中利用網絡伺服器,所述網絡伺服器可以運行各種伺服器或中間層應用程式的任一種,包括HTTP伺服器、FTP伺服器、CGI伺服器、數據伺服器、Java伺服器和業務應用伺服器。所述伺服器還能夠響應來自用戶設備的請求而執行程序或腳本,如通過執
行一個或多個可以實施為一個或多個以任何程式語言(如Java'K、C、C#或C++)或任何腳本語言(如PerUPython或TCL)及其組合寫的腳本或程序的網絡應用程式。所述伺服器還可以包括資料庫伺服器,包括但不限於這些可商購的Oracle?、Microsoft?、Sybase?和IBMli0
[0125]環境可以包括如上文討論的各種數據存儲和其它存儲器和存儲介質。這些可以駐留在各種位置中,如在存儲介質上,所述存儲介質對於一個或多個計算機是本地的(和/或駐留在)一個或多個計算機中或貫穿網絡遠離任一或所有所述計算機。在一組具體的實施方案中,信息可以駐留在對本領域技術人員熟悉的存儲區域網絡(「SAN」)中。類似地,用於執行歸於計算機、伺服器或其它網絡設備的功能的任何必要的文件可以以適當的方式本地和/或遠程地存儲。在系統包括計算機的設備的情況下,每種這樣的設備可以包括可經由總線進行電耦合的硬體元件,所述元件包括,例如,至少一個中央處理器(CPU)、至少一個輸入設備(例如,滑鼠、鍵盤、控制器、觸控螢幕或小鍵盤)和至少一個輸出設備(例如,顯示器設備、印表機或揚聲器)。這種系統也可以包括一個或多個存儲設備,如磁碟驅動器、光存儲設備和固態存儲設備,如隨機存取存儲器(「RAM」)或只讀存儲器(「ROM」),以及可移動介質設備、存儲卡、快閃記憶體卡等。
[0126]這類設備還可以包括計算機可讀存儲介質讀取器、通信設備(例如,數據機、網卡(無線或有線的)、紅外線通信設備等)和如上文所描述的工作存儲器。計算機可讀存儲介質讀取器可以與計算機可讀存儲介質連接或者被配置來接收計算機可讀存儲介質,其代表遠程的、本地的、固定的和/或可移動的存儲設備以及用於臨時和/或永久包含、存儲、傳輸和檢索計算機可讀信息的存儲介質。所述系統和各種設備通常還包括一些軟體應用程式、模塊,包括程序模塊、服務或定位於至少一個工作存儲器設備內的其它元件,包括作業系統和應用程式,如客戶端應用程式或網絡瀏覽器。應當了解的是可替代的實施方案可以擁有來自上文所描述的許多變化。例如,也可以利用定製的硬體和/或可以在硬體、軟體(包括可攜式軟體,如小應用程式)或兩者中實施具體的元件。此外,可以採用與其它計算設備的連接,所述計算設備如網絡輸入/輸出設備。
[0127]用於包含代碼或部分代碼的存儲介質和計算機可讀介質可以包括在本領域中已知或使用的任何合適的介質,所述介質包括存儲器介質和通信介質,如但不限於易失性和非易失性、可移動和不可移動介質,以任何針對信息(如計算機可讀指令、數據結構、程序模塊或其它數據)的存儲和/或傳輸的方法或技術來實施所述介質,所述方法或技術包括RAM、ROM、EEPR0M、快閃記憶體或其它存儲器技術、CD-ROM、數字通用光碟(DVD)或其它光存儲器、盒式磁帶、磁帶、磁碟存儲器或其它磁存儲設備或任何其它可利用於存儲所需的信息且可以通過所述系統設備訪問的介質。程序模塊、程序組件和/或編程對象可以包括計算機可讀和/或計算機可執行的任何合適的計算機程式語言的和/或與任何合適的計算機程式語言對應的指令。在至少一個實施方案中,每個計算機可讀介質可以是有形的。在至少一個實施方案中,每個計算機可讀介質可以是在時間中永久的。基於本文所提供的公開和教義,本【技術領域】的普通技術人員將了解其它實施各種實施方案的方式和/或方法。
[0128]因此,應將說明書和附圖視為說明性的而不是限制性的意義。然而,將是顯而易見的是:在不脫離如在權利要求中闡述的本發明的概括的精神和範圍的情況下,可以對其做出各種修改和改變。
[0129]在描述實施方案的上下文中(尤其是在以下權利要求的上下文中)術語「一個(a,an)」和「所述」以及類似的提及的使用意圖解釋為涵蓋單數和複數兩者,除非在本文另外地指示或明顯地與上下文矛盾。術語「包含」、「具有」、「包括」、「含有」意圖解釋為開放式的術語(即,意味著「包括但不限於」)除非另外地註解。術語「連接的」意圖解釋為部分地或全部地納入在以下解釋內:附接至或接合在一起,即使存在介入物。本文的值的範圍的記述僅僅意圖用作單獨地提及每個落在所述範圍內的獨立的值的速記方法,除非在本文另外地指示,並且將每個獨立的值併入本說明書中,如同它在本文中被單獨地記述一樣。可以以任何合適的順序執行本文所描述的所有方法,除非在本文另外地指示或另外明顯地與上下文矛盾。本文提供的任何和所有實施方案或示例性語言(例如,「如」)的使用僅僅意圖更好地說明實施方案,並不構成對範圍的限制,除非另外地要求。在說明書中的語言都不應解釋為指示任何非要求的元件作為對於至少一個實施方案的實行是必要的。
[0130]本文描述了優選的實施方案,包括發明人所知的最佳模式。閱讀上述說明後各種那些優選的實施方案對於本領域的普通技術人員可以變得顯而易見。發明人希望技術人員採用適當的這種變化,並且發明人意圖以其它方式而不是如本文所特別描述的來構造實施方案。因此,合適的實施方案包括在隨附的適用法律允許的權利要求中敘述的主題的所有修改和等同物。此外,預期將上述要素的任何組合以其所有可能的變化形式加以涵蓋,如同併入某一合適的實施方案中一樣,除非在本文另外地說明或另外明顯地與上下文矛盾。
[0131]本文所引用的所有參考文件,包括出版物、專利申請和專利,據此按照相同的程度以引用方式併入本文中,如同每個參考文件都單個地和特別地表示為併入到本文中並且其全部內容都進行了陳述。
【權利要求】
1.一種用於管理計算應用程式功能的權限的計算機實施方法,包括: 在一個或多個配置有可執行指令的計算機系統的控制下, 供應至少一個虛擬機,所述虛擬機至少被配置成執行應用程式的至少一部分,所述供應至少部分地由虛擬資源提供者來執行; 至少部分地通過建立至所述應用程式的至少一個接口的至少一個通信連接,來提供對所述應用程式的功能的至少一個用戶訪問,所述至少一個接口至少部分地由所述至少一個虛擬機來維護; 施行所述應用程式的功能的訪問條件,所述應用程式的功能的所述訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口來發生訪問,所述應用程式的功能的所述訪問條件的施行至少部分地由所述虛擬資源提供者來執行;以及 準許通過所述至少一個通信連連接來傳送數據,以便呈現給所述至少一個用戶。
2.根據權利要求1所述的計算機實施方法,其進一步包括施行所述至少一個虛擬機的訪問條件,所述至少一個虛擬機的所述訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口來發生訪問,所述至少一個虛擬機的所述訪問條件的所述施行至少部分地由所述虛擬資源提供者的控制平面來執行。
3.根據權利要求1所述的計算機實施方法,其中利用一組實施資源來實施所述至少一個虛擬機,並且由所述虛擬資源提供者的控制平面來控制對所述一組實施資源的功能的訪問。
4.根據權利要求3所述的計算機實施方法,其中所述一組實施資源包括下述各項中的至少一項:易失性存儲設備 、非易失性存儲設備、處理器、物理伺服器、網絡接口埠、網絡交換機和網絡路徑。
5.根據權利要求1所述的計算機實施方法,其中利用一組實施資源來實施所述至少一個通信連接,並且由所述虛擬資源提供者的控制平面來控制對所述一組實施資源的功能的訪問。
6.根據權利要求1所述的計算機實施方法,其中提供對所述應用程式的功能的所述至少一個用戶訪問包括創建至少一個指定所述訪問條件的策略,以及施行所述訪問條件包括利用所述虛擬資源提供者的策略施行組件來施行所述至少一個策略。
7.根據權利要求1所述的計算機實施方法,其中所述至少一個接口包括與所述應用程式的多個功能特徵相對應的多個接口元件,並且所述應用程式的功能的所述訪問條件進一步指定所述訪問對應於所述多個接口元件的選定子集。
8.根據權利要求1所述的計算機實施方法,其中供應所述至少一個虛擬機具有一組關聯成本,所述一組關聯成本是向與所述至少一個用戶相關聯的帳戶收取。
9.根據權利要求8所述的計算機實施方法,其中所述一組應用程式成本包括與至少一個應用程式特徵相對應的至少一個成本,所述應用程式特徵能夠被激活和去活。
10.根據權利要求1所述的計算機實施方法,其進一步包括: 在所述虛擬資源提供者的控制平面上接收來自所述至少一個用戶的激活所述應用程式的至少一個特徵的用戶請求; 向所述應用程式的特徵配置接口提交激活所述至少一個特徵的控制平面請求,所述特徵配置接口至少部分地由所述至少一個虛擬機來維護,並且所述至少一個用戶不能通過所述至少一個通信連接來對所述特徵配置接口進行訪問; 在所述控制平面上接收所述至少一個特徵已被激活的確認;以及 通知所述控制平面的成本跟蹤組件,與所述至少一個激活特徵相關聯的成本將向所述至少一個用戶相關聯的帳戶收取。
11.根據權利要求1所述的計算機實施方法,其中供應所述至少一個虛擬機具有一組關聯實施資源成本,所述一組實施資源成本是向與所述至少一個用戶相關聯的帳戶收取。
12.根據權利要求1所述的計算機實施方法,其進一步包括接收用戶請求來供應所述至少一個虛擬機,所述用戶請求至少部分地指定至少一個實施資源的至少一個能力將對所述至少一個虛擬機可用。
13.一種用於管理計算應用程式功能的權限的計算機化系統,包括: 一組實施資源,至少能被配置成實施多個虛擬資源; 虛擬資源供應組件,至少被配置成響應於供應請求而利用所述一組實施資源來供應虛擬資源,所述虛擬資源包括至少一個虛擬機以及至所述應用程式的至少一個接口的至少一個通信連接,所述虛擬機至少被配置成執行應用程式的至少一部分;以及 策略施行組件,至少被配置成施行所述應用程式的功能的訪問條件,所述應用程式的功能的所述訪問條件至少指定通過所述至少一個通信連接和所述至少一個接口來發生訪問。
14.根據權利要求13所述的計算機化系統,其中所述計算機化系統進一步包括用戶接口組件,所述用戶接口組件至少被配置成使用戶能夠提交訪問所述應用程式的功能的請求,且所述至少一個虛擬機是由所述虛擬資源供應組件至少部分地響應於訪問所述應用程式的功能的所述請求而供應的。`
15.根據權利要求13所述的計算機化系統,其中所述計算機化系統進一步包括供應商接口組件,所述供應商接口組件至少被配置成使應用程式供應商能夠配置所述至少一個虛擬機以執行所述應用程式的所述至少一部分,並且能夠配置與訪問所述應用程式的功能相關聯的至少一個成本。
【文檔編號】G06F7/04GK103703443SQ201280014130
【公開日】2014年4月2日 申請日期:2012年3月22日 優先權日:2011年3月22日
【發明者】M·J·布魯克, D·布朗, C·R·J·德卡德特 申請人:亞馬遜技術股份有限公司