针对计算应用程序功能的强大权限管理的制作方法

文档序号:6494668阅读:205来源:国知局
针对计算应用程序功能的强大权限管理的制作方法
【专利摘要】通过控制对实施计算应用程序功能的可执行指令的访问,可以至少部分地减轻计算应用程序功能的非法、未授权、无补偿和/或欠补偿利用。所述可执行指令可以由一组一个或多个虚拟机执行,所述虚拟机由多租户虚拟资源提供者来供应。所述虚拟资源提供者可以通过一组实施资源来供应所述虚拟机和其它虚拟资源,所述实施资源由所述虚拟资源提供者的控制平面加以管理。所述控制平面可以为所述虚拟资源提供者执行许多控制功能,包括虚拟资源访问策略(如共同指定将根据计算应用程序功能的第三方提供者或供应商与计算应用程序功能的用户之间的许可证或协议来访问计算应用程序功能的一个或多个策略)的管理和施行。
【专利说明】针对计算应用程序功能的强大权限管理
[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·德卡德特 申请人:亚马逊技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1