CN103154960A - 用于生成授权虚拟设备的系统和方法 - Google Patents

用于生成授权虚拟设备的系统和方法 Download PDF

Info

Publication number
CN103154960A
CN103154960A CN2010800696855A CN201080069685A CN103154960A CN 103154960 A CN103154960 A CN 103154960A CN 2010800696855 A CN2010800696855 A CN 2010800696855A CN 201080069685 A CN201080069685 A CN 201080069685A CN 103154960 A CN103154960 A CN 103154960A
Authority
CN
China
Prior art keywords
virtual unit
virtual
device modules
module
ability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010800696855A
Other languages
English (en)
Inventor
A·奥尔沃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN103154960A publication Critical patent/CN103154960A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

在一个实施例中,虚拟设备生成系统从客户端经由通信链路接收与虚拟设备模块的能力相关联的选择标识符,响应于接收而访问与虚拟设备模块的能力相关联的授权值,并且在虚拟设备描述符内存储虚拟设备模块的能力的标识符。授权值还存储于虚拟设备描述符内。基于虚拟设备描述符生成摘要以及生成虚拟设备容器,虚拟设备容器包括虚拟设备模块、虚拟设备描述符和摘要中的一部分。然后虚拟设备生成系统向客户端提供虚拟设备容器。

Description

用于生成授权虚拟设备的系统和方法
背景技术
基于网络的虚拟设备生成系统允许用户通过选择与服务相关的软件栈和软件模块来限定虚拟设备。这种基于网络的虚拟设备生成系统将软件栈和软件模块封装成虚拟设备。然后能够在虚拟操作平台处下载和实例化虚拟设备以使服务可用(即,提供服务)。
但是,由于软件许可,这种虚拟设备的使用总的来说是复杂的或者甚至是受挫的。例如,一些服务不能够自由在虚拟设备处实施,这是因为提供这些服务的软件模块的供应商通过要求这些软件模块的实例被许可而限制了这些软件模块的使用。公知的虚拟设备生成系统典型地不生成这样的虚拟设备:该虚拟设备包括在这些虚拟设备内所包含的软件模块的可配置许可。此外,这种虚拟设备生成系统典型地不能够提供充分的安全措施以防止无意识的公开或者无意识的许可变更。
结果,这种虚拟设备生成系统的用户典型地通过在虚拟设备生成系统处限定和访问虚拟设备而分别获取对虚拟设备的软件模块的许可。因此,这种虚拟设备生成系统不能够提供虚拟设备(例如,预许可的虚拟设备)来满足这种虚拟设备生成系统的用户的需求和要求。
附图说明
图1是根据实施例的生成虚拟设备的过程的流程图。
图2是根据实施例的包括虚拟设备生成系统的环境的示意图。
图3是根据实施例的计算设备的示意框图。
图4是根据实施例的虚拟设备生成系统的示意框图。
图5是根据实施例的生成虚拟设备的过程的流程图。
图6是根据实施例的虚拟设备容器的示意图。
图7是根据实施例的包括管理程序和虚拟设备的计算设备的示意框图。
图8是根据实施例的包括处理器和存储介质的系统的示意框图。
具体实施方式
虚拟设备是一种软件模块(或软件模块的集合),其包括服务(或一组服务)的部件或者元件,服务存储于存储器中并且在处理器(诸如虚拟操作平台)处执行(或驻留(host))以提供服务。换句话说,虚拟设备包括能够驻留于处理器(例如,一个或多个虚拟操作平台)处以实现服务的软件模块和软件栈。服务可以是数据处理服务或者数据存储服务,例如网络服务器(即,超文本传输协议("HTTP")服务器)、网络应用、电子邮件服务器、文件传输协议("FTP")服务器、数据库服务器、网络或者云数据存储服务或者一些其他服务。作为特定示例,虚拟设备包括网络服务器应用模块和刚好够用操作系统("JeOS")(即,操作系统中应用模块使用的那些部分,此处所述应用模块为网络服务器应用模块)。当在虚拟操作平台处实例化(或驻留)虚拟设备时,网络服务器是可访问的。换句话说,当在虚拟操作平台处实施虚拟设备时,虚拟设备包括可用的(例如,诸如计算设备驻留网络或者网络浏览器的客户端可访问的)网络服务器的所有部件(即,服务)。
虚拟操作平台是一种解译或者执行指令或者代码的环境。例如,虚拟操作平台可以是处理器或者机器的软件实现,其执行在处理器或者机器处可执行的代码(或者指令)。换句话说,虚拟操作平台是存储于存储器中并在处理器处执行的软件模块(即,虚拟操作平台是驻留于处理器处的软件模块),其起到处理器或者计算设备的作用。作为特定示例,虚拟操作平台可以是存储于存储器中并在处理器处执行的软件模块,其仿真计算机服务器。
管理程序是硬件模块、存储于存储器中并在处理器处执行的软件模块,和/或硬件模块和/或软件模块(其控制、监视和/或提供一个或多个虚拟操作平台)的组合。例如,管理程序能够实例化、初始化、暂停、关闭和/或重启虚拟操作平台。另外,管理程序能够与虚拟操作平台通信。作为特定示例,管理程序能够使用由管理程序限定的虚拟化网络接口与虚拟操作平台通信。此外,管理程序能够供应或提供对计算设备(或机器)的部件的访问(例如,多路复用),例如通信接口(例如,通用串行总线("USB")接口、RS232接口或者网络接口),数据储存器(诸如硬盘驱动器或者光盘("CD")驱动器),和/或计算设备至虚拟操作平台的其他部件。换句话说,管理程序可以是虚拟操作平台与计算设备和/或其他虚拟操作平台之间的媒介物。作为特定示例,管理程序能够限定计算设备的物理部件的虚拟化部件。与管理程序相关联的虚拟操作平台能够访问虚拟化部件,并且管理程序能够运行作为虚拟化部件和这些虚拟化部件表示的物理部件之间的多路复用器和多路分路器。因而,虚拟设备驻留于由管理程序控制的虚拟操作平台处以向客户端提供服务(即,计算设备驻留与服务相互作用或通信的软件模块)。
虚拟设备在传输服务方面是有用的,因为虚拟设备包括操作这些服务所需的这些服务的部件。也即,仅通过在虚拟操作平台处实例化虚拟设备可以使得服务可用,这是因为虚拟设备包括实现服务的软件模块(或多个软件模块)以及该软件模块所使用的软件栈(例如,中间件、操作系统部件,和/或驱动器)。典型地,生成(或构建或构造)虚拟设备以避免实现服务的软件模块(或多个软件模块)与该软件模块所使用的下层软件栈之间的不兼容。因而,虚拟设备的用户能够提供服务而不用配置软件模块与软件栈相互作用。
此外,能够基于用户要求生成虚拟设备。例如,基于网络的虚拟设备生成系统允许用户通过选择与服务相关的软件栈和软件模块的元件来限定虚拟设备并且将软件栈和软件模块封装成虚拟设备。然后该虚拟设备能够在虚拟操作平台处被下载和实例化以使服务可用(即,以提供服务)。
但是,由于软件许可,虚拟设备的使用总的来说是复杂的或者甚至是受挫的。换句话说,一些服务不能够自由在虚拟设备处实施,因为实现这些服务的软件模块的供应商通过要求这些软件模块的实例的许可而限制了这些软件模块的使用。公知虚拟设备生成系统不包括这样的能力:生成包括这些虚拟设备内所包括的软件模块的许可虚拟设备。这种虚拟设备的用户典型地在接收虚拟设备之后获取对这些软件模块的许可。例如,用户能够从该软件模块的供应商处获取对软件模块的许可,并且在接收软件模块之后将该许可安装于包括该软件模块的虚拟设备处。作为另一例子,用户能够获取许可来操作一定数量的软件模块的实例,并且监控包括该软件模块的虚拟设备的实例的数量以将虚拟设备的实例的数量限制到软件模块的实例的许可数量。因此,如果不分开获取虚拟设备和许可的话,一些服务不能通过使用虚拟设备来提供,因为实现这些服务的软件模块(即,软件应用)包括许可限制(例如,被配置为仅当唯一的许可密钥存在于诸如计算设备或者虚拟操作平台的主机系统时才操作)。
此处公开的实施例能够生成虚拟设备,所述虚拟设备包括授权(例如,许可)以使用包括在这些虚拟设备内的软件模块。因而,用户能够在虚拟设备生成系统处请求虚拟设备,并且接收包括授权(或者权限或者许可)的授权(例如,许可)虚拟设备以使用包括在虚拟设备中的软件模块来实现服务。
例如,虚拟设备生成系统能够包括虚拟设备选择接口模块,该模块限定诸如网络接口(例如,使用网页或者网页组)的接口,以访问虚拟设备模块库中的虚拟设备模块。虚拟设备模块是软件模块或者软件模块组,其包括限定(或实现)虚拟设备的指令、命令和/或代码。例如,虚拟设备模块能够包括:存储软件栈和实现服务的软件应用的虚拟磁盘映像,诸如虚拟机磁盘("VMDK");以及可扩展标记语言("XML")文件,其包括对虚拟设备的说明。在一些实施例中,虚拟设备模块能够包括一组虚拟磁盘映像以及包括虚拟设备的说明的XML文件。例如,一个虚拟磁盘映像能够包括操作系统,而另一虚拟磁盘映像能够包括实现服务的软件模块。作为特定示例,虚拟设备模块能够符合开放虚拟化格式("OVF")。OVF限定虚拟设备模块的封装、描述符以及实例化。虚拟设备模块库包括一组虚拟设备模块。
虚拟设备生成系统的用户能够经由客户端(诸如,驻留于客户端设备(即,计算设备)处的网络浏览器)访问虚拟设备选择接口模块以从虚拟设备模块库选择虚拟设备模块。例如,用户能够使用客户端设备的鼠标点击虚拟设备模块的例如图片或文本说明的表示(或虚拟设备表示),以选择虚拟设备模块。
在虚拟设备模块被选择之后,能够经由虚拟设备选择接口模块和客户端向用户显示由虚拟设备模块限定的虚拟设备的能力的表示(例如,图标或者图像或者文本说明)(或能力代表)。例如,虚拟设备模块能够包括由该虚拟设备模块实现的虚拟设备的能力(或功能)的列表,并且虚拟设备选择接口模块能够向用户(例如,经由客户端)显示这些能力的表示。用户能够选择通过例如点击能力的表示而启用或者激活的虚拟设备的能力,以改变(或切换)每个能力的状态(即,从启用至禁止或者从禁止至启用)。一些能力能够在虚拟设备内默认启用或激活。例如,这种能力可以是由虚拟设备提供的服务的必要能力。其他能力可以是默认禁止的并且能够被无限制地启用和使用。例如,这种能力可以不经许可而使用。其他能力也可以是默认禁止的,而其启用和使用受制于许可限制。此外,一些能力可以是默认启用的并且能够被用户禁止。
而且,一些能力的特征在于以下或者由以下限定:经由虚拟设备选择接口模块能够被选择和/或被指定的多个选项、属性、参数或者值。例如,能力可以是在虚拟设备内实现的数据库服务器能够维持的多个并发连接。更具体来说,例如,识别为(例如,命名为)"最大连接限制"的能力可以是在虚拟设备内实现的数据库(即,数据库服务器)被授权(或被许可)以维持或者接受的并发连接的数量。虚拟设备选择接口模块能够显示(经由客户端)用户能够选择的值的列表,或者能够显示诸如文本框的字段,用户能够将限定数据库服务器能够维持的并发连接的数量的值输入该字段中。作为另一例子,能力可以是通信或者网络连通性,用户能够经由虚拟设备选择接口模块指定(即,从列表选择或者输入到字段中),客户端能够指定用于该能力的网络协议("IP")地址,诸如IP版本4("IPv4")或者IP版本6("IPv6")地址。此外,能力可以是:可在任何时间被实例化的软件应用的并发实例的数量,主机或者计算设备名字或标识符,虚拟设备或者虚拟设备内的软件应用能够被实例化成该名字或标识符;或者虚拟设备或者虚拟设备内的软件应用能够被实例化或者实施的有效期间。
除了能够被启用和/或被禁止的能力以外,虚拟设备部件(此处还称为"部件")能够被添加至虚拟设备模块。虚拟设备部件是软件模块,该软件模块实现虚拟设备内的其他软件模块所不能获得的能力。换句话说,通过添加一个或多个虚拟设备部件到与虚拟设备关联的虚拟设备模块,能够将额外能力添加至虚拟设备。部件能够是软件模块,例如应用模块;或者是库,例如存储于虚拟磁盘映像处的动态加载库。虚拟磁盘映像能够作为虚拟盘在驻留虚拟设备的虚拟操作平台内可用(或安装),虚拟设备能够访问虚拟磁盘处的虚拟设备部件。作为虚拟设备部件的例子,虚拟设备能够是实现HTTP的网络服务器服务,部件能够是实现安全套接字层协议和/或传输层安全协议的软件模块。部件能够添加至虚拟设备以提供对网络服务器服务处的HTTP安全("HTTPS")的支持。
类似于虚拟设备模块和能力,虚拟设备部件的表示(或虚拟设备部件表示)能够经由虚拟设备选择接口模块和客户端显示给用户,用户能够选择一个或多个虚拟设备部件(例如,通过点击诸如图像或者文本说明的虚拟设备部件的表示)。而且,一些虚拟设备部件能够包括如上关于虚拟设备的能力所讨论的能够被启用和/或被禁止的多个能力。此外,一些虚拟设备部件能够包括这样的能力:正如如上关于虚拟设备的能力所讨论的,具有能够经由虚拟设备选择接口模块被选择和/或被指定的多个选项、属性、参数或者值。
一些能力和/或部件能够被许可限制。换句话说,如果没有从这些能力和/或部件的供应商处获取的许可,则一些能力和/或部件在虚拟设备内不能够被使用或者被启用。在经由虚拟设备选择接口模块选择虚拟设备模块、能力和/或部件之后,将虚拟设备模块、能力和/或部件的选择标识符提供至虚拟设备生成系统的授权模块,在授权模块处能够获取与这些能力和/或部件相关的许可。例如,授权模块能够确定针对所选择的能力和/或部件的一个或多个许可的价格,用户能够经由虚拟设备生成系统的订单处理模块来购买许可。作为特定示例,订单处理模块能够包括基于网络的接口(或能够与虚拟设备选择接口模块耦合以提供基于网络的接口),用户能够经由客户端访问该接口以使用信用卡或者账号购买许可。订单处理模块能够对与信用卡或者账号关联的账户收费,并且向授权模块提供指示已经购买许可的支付确认。在一些实施例中,订单处理模块能够集成在虚拟设备生成系统(或其一部分或元件)内。在其他实施例中,订单处理模块能够在虚拟设备生成系统的外部,虚拟设备生成系统能够与订单处理模块通信以确定何时处理与虚拟设备相关的订单。
然后授权模块能够对于要购买许可的每个所选择的能力和部件生成授权值(例如,许可密钥)。在一些实施例中,授权值能够被加密,使得当在虚拟操作平台处实例化虚拟设备以启用这些能力和/或部件时,虚拟设备中包括的许可实施模块能够解密授权值并且将解密后的授权值提供至能力(或实现能力的软件模块)和/或部件。
虚拟磁盘映像包括软件栈、软件应用和虚拟设备的部件以及虚拟设备描述符,诸如,XML文件,XML文件包括标识符、选项、属性、参数、值,和/或虚拟设备、能力和/或部件的授权值,虚拟磁盘映像能够被聚集至虚拟设备容器中,虚拟设备容器包括虚拟设备的所有元件(例如,虚拟磁盘映像、授权值、虚拟设备和能力以及部件的标识符、与虚拟设备和能力以及部件关联的选项、属性、参数和/或值)。虚拟设备容器(或容器)可以例如是档案文件,诸如TAR文件。在一些实施例中,虚拟设备容器能够被压缩以降低虚拟设备容器的尺寸(例如,字节数)。
然后能够将虚拟设备容器提供至用户。例如,虚拟设备容器能够经由下载网页可用以下载,具有对虚拟设备容器的引用(例如,诸如超链接或者链接的统一资源标识符("URI"))的电子邮件信息(或另一通知)能够被发送至用户的电子邮箱。用户能够下载虚拟设备容器,并且将容器提供至配置为解译虚拟设备描述符的虚拟操作平台,以使用虚拟设备容器的元件(例如,虚拟磁盘映像和虚拟设备描述符)在虚拟设备处实例化虚拟设备。因为能力和部件的授权值和标识符、选项、属性、参数和/或值包括在虚拟设备描述符中,所以用户不需要分开地获取例如用于能力和/或部件的许可。因而,用户能够与虚拟设备生成系统相互作用以生成能够在虚拟操作平台处被实例化为虚拟设备的虚拟设备容器,而无需分开获取许可。
如此处使用的,除非文本明确指出,否则单数形式的"一(a)"、"一(an)"和"该"也包括多个的情形。因而,例如,术语"虚拟设备"旨在指的是一个或多个虚拟设备或者虚拟设备的组合。另外,如此处使用的,术语"模块"指的是电路和/或软件、固件、程序、存储于存储器并且在处理器处实施或解译的机器或者处理器可读指令、命令或者代码。
图1是根据实施例的生成虚拟设备的过程的流程图。过程100能够实现为硬件模块、软件模块和/或硬件模块和软件模块的结合。例如,过程100能够实现为专用电路或者软件模块,软件模块包括存储于存储器并且在与存储器通信的处理器处实施的指令。更具体来说,例如,过程100能够在虚拟设备生成系统处实现。
在块110,接收虚拟设备能力的选择。例如,可以将选择标识符提供至虚拟设备生成系统的授权模块,所述选择标识符例如是经由虚拟设备生成系统的基于网络的接口所选择的虚拟设备或者虚拟设备部件的能力的名字或者数值标识符。然后在块120,能够使用选择标识符以访问用于能力的授权值。
授权值可以是例如字母数字字符序列的值,其由应用模块和/或虚拟设备的部件所解译以启用虚拟设备的能力、部件和/或部件的能力。在一些实施例中,授权值可以是数字证书。而且,授权值能够是启用虚拟设备内的能力或者部件的许可密钥(或许可密钥值)。
授权值能够从一个或多个源被访问。例如,虚拟设备生成系统能够从应用模块或者虚拟设备的部件的供应商请求授权值。换句话说,虚拟设备生成系统能够与第三方系统(例如,计算机服务器)通信以访问授权值。可替换地,例如,虚拟设备生成模块能够生成授权值。换句话说,在虚拟设备生成值处生成授权值之后,授权值能够在虚拟设备生成系统中被访问。
在访问授权值之后,在块130,将在块110接收的选择标识符的能力的标识符存储于虚拟设备描述符,在块140,将授权值存储于虚拟设备描述符。虚拟设备描述符是描述虚拟设备和虚拟设备的元件的值、标识符和/或文本串的集合。例如,虚拟设备描述符可以是包括标识符、选项、属性、参数、值的XML文件,和/或虚拟设备和/或能力的和/或虚拟设备的部件的授权值。作为特定示例,虚拟设备描述符能够是OVF描述符。
在块150,基于虚拟设备描述符和虚拟设备的虚拟磁盘映像生成虚拟设备的摘要。摘要是根据一组其他值计算出的值。例如,通过将散列函数应用至虚拟设备描述符和虚拟磁盘映像所生成的散列值能够是虚拟设备描述符。在一些实施例中,使用加密散列函数或者具有强雪崩属性、强抗碰撞和抗前像(即,抗第一和第二前像冲击的散列函数)的其他散列函数来生成摘要。作为特定示例,能够通过将SHA1散列算法应用至虚拟设备描述符和虚拟设备的虚拟磁盘映像来生成摘要。这种散列函数是值得期望的,因为对特定输入(例如,虚拟设备描述符和虚拟磁盘映像)给定由这种散列函数生成的摘要,很难生成或者识别使得散列函数生成该摘要的不同输入。因而,通过将虚拟设备描述符和虚拟磁盘映像应用至在块150生成摘要所使用的散列函数,能够稍后生成另一摘要。如果该摘要具有的值与在块150生成的摘要的值相同,则虚拟设备描述符或者虚拟磁盘映像不可能改变或者变化(即,当在块150生成摘要时以及当生成稍后生成的摘要时,虚拟设备描述符和虚拟磁盘映像是相同的)。换句话说,与在块150生成的摘要匹配的稍后生成的摘要(即,这两个摘要具有共同值)指示虚拟设备描述符和虚拟磁盘映像没有变化。
在块160,通过结合虚拟设备的所有元件(诸如虚拟设备描述符以及虚拟设备的任何虚拟磁盘映像)至虚拟设备容器来生成虚拟设备容器。换句话说,在块160,虚拟设备的所有元件被聚集成虚拟设备容器。虚拟设备容器(或容器)可以是例如档案文件,诸如TAR文件。可替换地,例如,虚拟设备容器能够是包括虚拟设备的元件的虚拟磁盘映像(即,代表诸如光盘、磁盘或者FLASH盘的处理器可读介质的文件)。在一些实施例中,虚拟设备容器能够被压缩以降低虚拟设备容器的尺寸(即,所占用的字节数)。
然后在块170,使虚拟设备容器可用于(或提供给)虚拟设备生成系统的客户端。例如,可以将对虚拟设备容器的引用或者超链接张贴在对于客户端可用的网页处。因而,客户端的用户能够访问或者下载虚拟设备模块。可替换地,例如,通过将虚拟设备容器发送至客户端,可使得虚拟设备容器能够用于(或提供给)客户端。虚拟设备容器能够经由一个或多个协议可用,所述协议包括例如HTTP、HTTPS和FTP。在一些实施例中,用户名和密码、密钥、数字证书和/或一些其他证明能够从客户端接收,并且在响应于来自客户端的对虚拟设备容器的请求而向客户端发送虚拟设备容器之前被验证。而且,虚拟设备生成系统能够发送诸如电子邮件消息或者即时消息("IM")的通知至虚拟设备生成系统的用户,虚拟设备生成系统包括对虚拟设备容器的引用或者超链接。
过程100能够包括除了图1图示的这些之外的块。另外,能够重新布置一个或多个块。此外,虽然以上参考包括虚拟设备生成系统的示例环境讨论了过程100,但是过程100可应用于其他环境。
图2是根据实施例的包括虚拟设备生成系统的环境的示意图。环境200包括客户端设备210、客户端设备220、虚拟设备系统230和通信链路240。逻辑地图示出环境200。换句话说,环境200的元件(例如,客户端设备210、客户端设备220和虚拟设备生成系统230)之间的布置和连接表示元件之间的逻辑关系而非它们的物理构造。换句话说,环境200的元件之间的布置和连接图示了环境内传递的数据符号或者数据信号的通信。
客户端设备210和220是计算设备,诸如个人计算机、膝上型或者笔记本计算机、智能手机、瘦客户端、平板电脑或者能够经由通信链路240访问虚拟设备生成系统的其他计算设备。作为计算设备的例子,图3是根据实施例的计算设备的示意框图。如图3所图示的,计算设备300包括通信接口320、处理器310和存储器330。处理器310可操作地耦合至通信接口320和存储器330。典型地,如图3所图示的,存储器330包括限定了在计算设备310的操作期间由处理器310执行的软件模块的指令或者代码(例如,计算机代码或者对象代码)。例如,存储器330包括限定操作系统331、设备驱动器332和应用333(例如,软件应用程序)的指令。换句话说,作为指令(未示出)存储于存储器330中并且在处理器310处执行的操作系统331、设备驱动器332、应用333和其他软件模块驻留于计算设备300处。应用333能够包括例如应用模块、管理程序、虚拟设备模块和/或诸如运行时间环境和/或虚拟操作平台实例的环境。
存储器330能够包括:易失存储器,诸如静态随机存取存储器("SRAM")和/或动态随机存取存储器("DRAM");以及非易失存储器,诸如磁性介质(例如,硬盘驱动器)、光学介质(例如,光盘("CD")和/或数字视频光盘("DVD"))、固态介质(例如,USB闪存设备),和/或其他处理器可读介质。例如,非易失存储器能够用作用于存储为指令(未示出)的操作系统331、设备驱动器332、应用333、数据文件(未示出)和/或其他软件模块的长期储存器,存储为指令(未示出)的操作系统331、设备驱动器332、应用333、数据文件(未示出)和/或其他软件模块能够下载到易失存储器中用于在处理器310处实施。
通信接口320是处理器310可访问的接口以经由通信链路与其他处理器和/或计算设备通信(即,传送表示数据的符号至其他处理器和/或计算设备以及从其他处理器和/或计算设备接收这种符号)。换句话说,通信接口320能够经由通信链路从处理器310接收数据并且传送表示该数据的符号。而且,通信接口320能够经由通信链路从其他通信接口接收符号并且发送由这些符号表示的数据至处理器310。例如,通信接口320能够是电话网络接口、双绞线网络接口、同轴网络接口、光纤网络接口、诸如无线局域网络("WLAN")或者蜂窝网络的无线网络接口,和/或一些其他网络或通信接口。
参考图2,通信链路240能够包括允许客户端设备210和220与虚拟设备生成系统230通信的任何连接器和/或系统。例如,通信链路240能够是一个或多个线缆(例如,通信线缆、双绞线线缆、同轴线缆或者光纤线缆)、无线链路或者连接(例如,射频链路、无线光学链路、红外链路或者声音(sonic)链路),或者任何其他支持通信符号的传送的连接器或者系统。另外,通信链路240可以包括能够传输信息(例如,表示数据的符号或者信号)的通信网络或者通信网络的组合,例如以太网网络、光纤网络、无线网络、内联网和/或因特网。
在一些实施例中,通信链路240能够包括例如通过桥、路由器、交换机、集线器和/或网关而可操作地彼此耦合的多个通信链路和/或通信网络。例如,客户端设备210能够可操作地耦合至蜂窝网络(未示出),虚拟设备生成系统230能够可操作地耦合至光纤网络(未示出)。蜂窝网络和光纤网络经由一个或多个桥、路由器、交换机和/或网关均能够可操作地彼此耦合,使得蜂窝网络和光纤网络可操作地耦合以形成通信链路。可替换地,蜂窝网络和光纤网络能够经由一个或多个额外的通信网络均可操作地彼此耦合。例如,蜂窝网络和光纤网络能够均可操作地耦合至因特网,使得蜂窝网络、光纤网络和因特网可操作地耦合以形成通信链路。
如图2中图示的,客户端设备210和220能够经由通信接口240与虚拟设备生成系统230通信。例如,虚拟设备生成系统230能够包括虚拟设备选择接口模块,虚拟设备选择接口模块限定了基于网络的接口,例如响应于来自驻留于客户端设备210处的网络浏览器的输入或者请求动态产生的一组网页,客户端设备210的用户经由客户端设备210能够访问虚拟设备生成系统230并且选择或者指定虚拟设备模块、能力、虚拟设备部件,和/或在虚拟设备生成系统210处生成的虚拟设备的选项、属性、参数或者值。换句话说,用户能够经由客户端设备210和/或客户端设备220访问虚拟设备生成系统230。
虚拟设备生成系统230包括:一个或多个计算设备,例如计算服务器;和/或虚拟操作平台,其实现配置为生成授权(或许可)的虚拟设备的服务。换句话说,虚拟设备生成系统230能够包括多个计算设备或者实现虚拟设备生成服务的虚拟操作平台。例如,计算设备和/或限定虚拟设备生成系统230的虚拟操作平台能够被包括在一个或多个数据中心内。在一些实施例中,计算设备和/或限定虚拟设备生成系统230的虚拟操作平台能够被包括在地理分布式的数据中心内。此外,计算设备和/或限定虚拟设备生成系统230的虚拟操作平台能够彼此独立,或者能够联合和/或以其他方式可操作地耦合以协同操作。
作为特定示例,第一组计算设备和/或虚拟操作平台实现虚拟设备生成系统230的前端,例如基于网络的接口。第二组计算设备和/或虚拟操作平台实现授权或者许可服务,该授权或者许可服务生成和/或访问用于用户选择的能力和/或虚拟操作平台的部件的授权值。第三组计算设备和/或虚拟操作平台实现FTP服务,经由该FTP服务用户访问虚拟设备容器,该容器包括响应于从这些用户到虚拟设备生成系统的前端的输入来构造(或构建)的虚拟操作平台。每组计算设备和/或虚拟操作平台与一个或多个其他组计算设备和/或虚拟操作平台通信以生成虚拟设备容器。例如,第一组计算设备和/或虚拟操作平台经由前端向第二组计算设备和/或虚拟操作平台提供用户选择的能力和/或虚拟设备部件的选择标识符,第二组计算设备和/或虚拟操作平台基于这些选择标识符来访问或者生成授权值。第三组计算设备和/或虚拟操作平台响应于来自客户端设备的对虚拟设备容器的请求,经由前端提供虚拟设备容器,虚拟设备容器包括由用户的选择所限定的虚拟设备的元件。
图4是根据实施例的虚拟设备生成系统的示意框图。虚拟设备生成系统400包括虚拟设备提交模块410、虚拟设备模块库420、兼容模块430、虚拟设备选择接口模块440、订单处理模块450、授权模块470、虚拟设备聚集模块490、虚拟设备容器资源库480和虚拟设备分配模块460。虚拟设备提交模块410、虚拟设备模块库420、兼容模块430、虚拟设备选择接口模块440、订单处理模块450、授权模块470、虚拟设备聚集模块490、虚拟设备容器资源库480和虚拟设备分配模块460中的每个能够包括硬件模块、存储于存储器并且在处理器处执行(或驻留于处理器处)的软件模块、和/或硬件模块和软件模块的组合。如上所述,虚拟设备提交模块410、虚拟设备模块库420、兼容模块430、虚拟设备选择接口模块440、订单处理模块450、授权模块470、虚拟设备聚集模块490、虚拟设备容器资源库480和虚拟设备分配模块460能够实现不同的计算设备和/或虚拟操作平台。换一种说法,虚拟设备生成系统400被逻辑地图示。换句话说,虚拟设备生成系统400的模块之间的布置和连接表示模块之间的逻辑关系而非它们的物理配置。
虚拟设备提交模块410限定接口,诸如基于网络的接口,经由该接口,虚拟设备生成系统400的用户能够上传或者提交虚拟设备模块至虚拟设备生成系统400。也即,虚拟设备提交模块410是虚拟设备生成系统400的后端接口,经由该接口将虚拟设备模块输入或者添加至虚拟设备模块库420。例如,用户能够使用诸如VMware StudioTM的虚拟设备工具来限定虚拟设备模块(例如,包括依照OVF封装的一个或多个虚拟磁盘映像的虚拟设备模块)。然后用户能够经由网络浏览器(或其他客户端)访问虚拟设备提交模块410,并且使用网络浏览器上传虚拟设备模块至虚拟设备生成模块400。虚拟设备提交模块410接收虚拟设备模块,并且将虚拟设备模块存储于虚拟设备模块库420。虚拟设备模块库420是数据存储或者数据储存服务,例如硬盘驱动器、网络可访问存储设备诸如网络附加存储("NAS")设备或者存储区域网络("SAN")设备、数据库,或者一些其他数据存储或者数据储存服务。
虚拟设备部件还能够经由虚拟设备提交模块410上传到虚拟设备生成系统400。例如,软件应用能够存储或者封装于虚拟磁盘映像,使用例如网络浏览器经由虚拟设备提交模块410将虚拟磁盘映像上传到虚拟设备生成系统400。
元数据(例如与虚拟设备模块、虚拟设备部件和/或能力相关的说明和/或图像)还能够经由虚拟设备提交模块410上传到虚拟设备生成系统400。例如,由虚拟设备提交模块410限定的用于将虚拟设备模块或者虚拟设备部件上传至虚拟设备生成系统400的网页能够包括接受虚拟设备模块或者虚拟设备部件的说明的文本字段。可替换地,例如,虚拟设备模块或者虚拟设备部件的说明能够被包括在诸如文本文件或者XML文件的文件中,经由虚拟设备提交模块410将所述文件上传到虚拟设备生成系统400。所述说明能够存储于具有虚拟设备模块或者虚拟设备部件的虚拟设备模块库420,并且当用户经由虚拟设备选择接口模块440访问虚拟设备生成系统400以选择虚拟设备模块、虚拟设备部件和/或虚拟设备的能力时,能够经由虚拟设备选择接口模块440向虚拟设备生成系统400的用户显示所述说明。
另外,与虚拟设备模块、虚拟设备的能力、虚拟设备部件和/或虚拟设备部件的能力相关的兼容信息能够经由虚拟设备提交模块410而被上传到虚拟设备生成系统400。这种信息能够存储于虚拟设备生成系统400的兼容模块430内。兼容模块430包括数据储存器,例如硬盘驱动器、网络可访问存储设备、数据库或者一些其他数据储存器以存储兼容信息。
兼容信息能够包括:虚拟设备模块的一个或多个软件模块处可用的能力的列表;一个或多个虚拟设备部件处可用的能力的列表;能够与另一虚拟设备模块驻留于通用虚拟操作平台(或一组通用虚拟操作平台)的虚拟设备模块的列表;与虚拟设备模块兼容(即,能够相互作用或者共存于虚拟操作平台内)的虚拟设备部件列表;不能够与另一虚拟设备模块驻留于通用虚拟操作平台(或一组通用虚拟操作平台)的虚拟设备模块的列表;与虚拟设备模块不兼容(即,不能够相互作用或者共存于虚拟操作平台内)的虚拟设备部件列表。而且,兼容信息能够包括说明、图像和/或其他信息,例如版本号或者供应商标识符或者虚拟设备模块、虚拟设备部件或者能力的名字。此外,兼容信息能够包括经由虚拟设备选择接口模块440能够显示于虚拟设备生成系统400的用户、由用户选择和/或指定的能力的选项、属性、参数和/或值的范围。
当将虚拟设备模块或者虚拟设备部件上传到虚拟设备生成系统400时,能够为虚拟设备模块、虚拟设备部件或者能力指定兼容信息。例如,由虚拟设备提交模块410限定的用于将虚拟设备模块或者虚拟设备部件上传至虚拟设备生成系统400的网页能够包括文本字段,文本字段接受与虚拟设备模块、虚拟设备部件和/或虚拟设备模块或者虚拟设备部件的能力相关的兼容信息。可替换地,例如,与虚拟设备模块、虚拟设备部件和/或虚拟设备模块或者虚拟设备部件的能力相关的兼容信息能够被包括在文件中,所述文件例如为纯文本文件或者诸如XML文件的分级(或结构化)文件,该文件经由虚拟设备提交模块410上传到虚拟设备生成系统400并且存储于兼容模块430。
虚拟设备选择接口模块440限定接口,虚拟设备生成系统400的用户经由该接口能够选择虚拟设备模块、虚拟设备部件和/或用于虚拟设备的能力。此外,用户能够经由虚拟设备选择接口模块440选择和/或指定能力的选项、属性、参数和/或值。作为特定示例,虚拟设备选择接口模块能够是基于网络的接口,其由虚拟设备生成系统400的用户在网络浏览器处经由HTTP或者HTTPS可访问。虚拟设备选择接口模块440与虚拟设备模块库420通信以访问虚拟设备模块,并且经由虚拟设备选择接口模块440向用户显示这些虚拟设备模块的表示。
虚拟设备选择接口模块440还接收用户选择的虚拟设备模块的选择标识符,并且基于存储于兼容模块430的兼容信息来向用户显示与选择的虚拟设备模块兼容的虚拟设备部件和/或能力的表示。例如,虚拟设备选择接口模块440能够接收虚拟设备模块的选择标识符,并且提供该选择标识符至兼容模块430。兼容模块430能够访问存储于与被选择标识符识别的虚拟设备模块关联的兼容模块430中(或其可访问)的兼容信息,并且向虚拟设备选择接口模块440发送例如与虚拟设备模块兼容的能力和/或虚拟设备部件的列表的兼容信息。类似地,虚拟设备选择接口模块440能够向兼容模块430提供用户选择的虚拟设备部件的选择标识符,兼容模块430能够提供兼容信息,例如该虚拟设备部件的能力的列表、与虚拟设备部件兼容的其他虚拟设备部件的能力的列表、和/或与虚拟设备部件兼容的其他虚拟设备模块的能力的列表。此外,虚拟设备选择接口模块440能够向兼容模块430提供能力的选择标识符或者能力的选项、属性、参数或者值,兼容模块430能够提供兼容能力的列表、兼容虚拟设备部件和/或兼容虚拟设备模块。
在经由虚拟设备选择接口模块440选择或者指定虚拟设备模块、虚拟设备部件、能力以及能力的选项、属性、参数和/或值之后,虚拟设备选择接口模块440能够向订单处理模块450提供虚拟设备模块、虚拟设备部件和/或能力的选择标识符以及能力的选项、属性、参数和/或值。订单处理模块450确定,如有存在的话,应该授权或者许可虚拟设备模块、虚拟设备部件、能力以及能力的选项、属性、参数和/或值中的哪个。例如,在生成包括虚拟设备模块、虚拟设备部件和/或能力的虚拟设备容器之前,订单处理模块450能够访问应该被授权的虚拟设备模块、虚拟设备部件和/或能力的列表。此外,在生成包括虚拟设备模块、虚拟设备部件和/或能力的虚拟设备容器之前,订单处理模块450能够访问不需要被授权的虚拟设备模块、虚拟设备部件和/或能力的列表。在一些实施例中,存储于兼容模块430的兼容信息能够包括这种信息。
订单处理模块450还限定诸如基于网络的接口的接口,以接收对于应该被授权的虚拟设备模块、虚拟设备部件和/或能力的支付。可替换地,订单处理模块450能够与虚拟设备选择接口模块440或者支付处理服务通信,以接收对于应该被授权的虚拟设备模块、虚拟设备部件和/或能力的支付。例如,订单处理模块450能够与虚拟设备选择接口模块440通信以向用户提供安全的支付网页,经由该网页用户能够提供信用卡号或者账户,用于为对虚拟设备模块、虚拟设备部件和/或能力的授权而付费。订单处理模块能够从虚拟设备选择接口模块接收信用卡号或者账户,并且将该信用卡号或者账户提供至支付处理服务(例如银行或者其他财务机构提供的服务)以要求与信用卡号或者账户关联的账户为授权进行支付。此外,订单处理模块450能够(例如,从支付处理服务处)接收账户成功付费的确认。
然后,订单处理模块450能够向授权模块470提供权限确认(例如,支付确认)或者多个权限确认(即,对于支付已经处理完的虚拟设备模块、虚拟设备部件和/或能力和能力的选项、属性、参数和/或值中的每个有一个权限确认)、虚拟设备模块、虚拟设备部件和/或能力的选择标识符、和能力的选项、属性、参数和/或值。可替换地,例如,授权模块470能够从虚拟设备选择接口模块440接收虚拟设备模块、虚拟设备部件和/或能力的选择标识符以及能力的选项、属性、参数和/或值,并且能够从订单处理模块450接收与支付已经处理完的虚拟设备模块、虚拟设备部件和/或能力以及能力的选项、属性、参数和/或值相关的权限确认。授权模块470生成或者访问用于应该被许可的虚拟设备模块、虚拟设备部件和/或能力的授权值,诸如许可密钥值。换句话说,授权模块470生成或者访问用于已接收权限确认的虚拟设备模块、虚拟设备部件和/或能力的授权值。
基于由选择的虚拟设备模块、虚拟设备部件和/或能力的供应商指定的用于生成这些虚拟设备模块、虚拟设备部件和/或能力的值授权值的过程或者算法,授权模块470能够生成授权值。可替换地,授权模块470能够访问一个或多个数据存储(诸如数据库)中的授权值,该数据存储包括用于这些虚拟设备模块、虚拟设备部件和/或能力的值授权值。而且,授权模块470能够与虚拟设备模块、虚拟设备部件和/或能力的供应商的许可服务通信,并且能够访问(例如,请求和接收)这些许可服务处的授权值。
虚拟设备聚集模块490从授权模块470接收授权值和选择的虚拟设备模块、虚拟设备部件和/或能力的选择标识符以及能力的选项、属性、参数,和/或值,并生成虚拟设备描述符,所述描述符包括授权值和选择的虚拟设备模块、虚拟设备部件和/或能力的标识符以及能力的选项、属性、参数和/或值。如上所述,虚拟设备描述符描述虚拟设备。也即,虚拟设备描述符包括与虚拟设备模块、虚拟设备部件和/或虚拟设备的能力相关的标识符、描述符、选项、属性、参数、值和/或其他信息。例如,虚拟设备能够是包括这种信息的文件。作为更具体的例子,虚拟设备描述符能够是XML文档,所述XML文档包括虚拟设备模块、能力和/或虚拟设备的部件的标识符、选项、属性、参数、值和/或授权值。作为特定示例,虚拟设备描述符能够是OVF描述符。
虚拟设备聚集模块490还使用例如从授权模块470所接收的选择标识符来访问虚拟设备模块和虚拟设备的部件。例如,虚拟设备聚集模块490能够对于从授权模块470接收的虚拟设备模块的每个选择标识符访问虚拟设备描述符和虚拟磁盘映像。另外,虚拟设备聚集模块490能够对于从授权模块470接收的虚拟设备部件的每个选择标识符访问虚拟磁盘映像。
与虚拟设备模块关联的虚拟设备描述符(或其中的部分)能够包括于在虚拟设备聚集模块490处生成的虚拟设备描述符中。换句话说,在虚拟设备模块库420处访问的虚拟设备描述符的一部分能够被聚集或者合并入在虚拟设备聚集模块490处生成的虚拟设备描述符。应该理解的是,当整个第一虚拟设备描述符被聚集入第二虚拟设备描述符时,第一虚拟设备描述符的一部分被聚集入第二虚拟设备描述符。
然后,虚拟设备聚集模块490生成虚拟设备的一些或者所有元件的摘要。也即,虚拟设备聚集模块490能够生成虚拟设备模块和虚拟设备部件的虚拟设备描述符和虚拟磁盘映像的摘要。如上所述,这些摘要随后与随后生成的摘要进行比较,以确定在虚拟设备聚集模块490处生成摘要之后虚拟设备的元件是否已经被改变、被变化和/或被毁坏。在一些实施例中,虚拟设备聚集模块490用虚拟设备生成系统400的数字证书对摘要进行签名(或对摘要应用数字签名)。例如,虚拟设备聚集模块490能够将摘要存储于清单文件(即,包括摘要的文件),能够生成清单文件的摘要,并且用与虚拟设备生成系统400关联的公共/私有加密密钥对的私有加密密钥来加密清单文件的摘要以对摘要签名。可替换地,例如,虚拟设备聚集模块490能够将摘要存储于清单文件(即,包括摘要的文件),并且用与虚拟设备生成系统400关联的公共/私有加密密钥对的私有加密密钥来加密清单文件的摘要以对摘要签名。
这种数字签名允许虚拟设备生成系统400的客户端随后访问虚拟设备生成系统400的数字证书(诸如X.509证书);该数字证书包括与虚拟设备生成系统400关联的公共/私有加密密钥对的公共加密密钥,并且验证在虚拟设备生成系统400处已经生成摘要。更具体来说,客户端能够使用数字证书内的证书机构的签名来验证数字证书的内容,然后使用包括在数字证书内的公共加密密钥来解密清单文件(或清单文件的摘要)。因为数字证书(已经过验证的)证实了公共加密密钥的拥有者的身份(即,公共加密密钥属于(或关联)虚拟设备生成系统400的公共/私有加密密钥对),并且公共加密密钥解密了清单文件(或清单文件的摘要,其能够通过生成清单文件的摘要并且比较该摘要与解密后的摘要而被验证),所以客户端能够信任或确信摘要在虚拟设备生成系统400处生成。
在摘要生成之后,虚拟设备聚集模块490然后将虚拟设备聚集模块490处生成的虚拟设备描述符、摘要(例如,清单文件)和相关签名、与虚拟设备模块关联的虚拟磁盘映像、以及与虚拟设备部件关联的虚拟磁盘映像聚集入虚拟设备容器。在一些实施例中,摘要和相关签名能够被包括在于虚拟设备聚集模块490处生成的虚拟设备描述符中。虚拟设备容器是元件的集合或元件组(例如,虚拟设备描述符和虚拟磁盘映像)。作为特定示例,虚拟设备聚集模块490处的虚拟设备描述符以及与虚拟设备模块和虚拟设备部件关联的虚拟磁盘映像能够被包括在诸如TAR文件的档案文件中。换句话说,虚拟设备模块的一个或多个部分能够被聚集入虚拟设备容器。应该理解的是,当整个虚拟设备模块被聚集入虚拟设备容器时,虚拟设备模块的部分被聚集入虚拟设备容器。在一些实施例中,虚拟设备容器能够被压缩以降低虚拟设备容器的尺寸(例如,字节数)。
然后虚拟设备容器被提供至虚拟设备容器资源库480,并且可以经由虚拟设备分配模块460对于客户端可用。虚拟设备资源库480是数据存储或者数据储存服务,例如硬盘驱动器、网络可访问存储设备诸如NAS设备或者存储区域网络SAN设备、数据库,或者虚拟设备容器被存储于其上的一些其他数据存储或者数据储存服务。虚拟设备分配模块460限定接口,经由该接口,存储于虚拟设备容器资源库480的虚拟设备容器对于虚拟设备生成系统400的客户端来说是可访问的。例如,虚拟设备分配模块460能够提供FTP服务。可替换地,例如,虚拟设备分配模块460能够是网络服务器并且能够限定网页,所述网页包括对虚拟设备容器资源库480内的虚拟设备容器的超链接,经由该超链接,虚拟设备生成系统400的客户端能够访问和/或下载虚拟设备容器。
虚拟设备生成系统400能够包括与图4中图示相比额外的和/或其他的模块。例如,虚拟设备生成系统400能够包括一个或多个认证模块,从而例如在允许虚拟设备生成系统400的客户端经由虚拟设备分配模块460访问虚拟设备容器之前认证客户端。作为另一例子,虚拟设备生成系统400能够包括通知模块,从而在虚拟设备聚集模块490将虚拟设备容器提供至虚拟设备容器资源库480之后,发送通知至虚拟设备生成系统400的客户端,该通知包括对虚拟设备容器的引用(例如,对虚拟设备容器的超链接,或者对由虚拟设备分配模块460限定的包括虚拟设备容器的超链接的网页的超链接)。此外,虚拟设备生成系统400能够包括比图4中图示的模块更少的模块。例如,一个或多个模块的功能能够被包括在其他模块中。换句话说,图4中图示的两个或更多的模块能够被聚集为较少模块。
图5是根据实施例的生成虚拟设备的过程的流程图。过程500能够实现为硬件模块、软件模块、和/或硬件模块以及软件模块的组合。例如,过程500能够实现为专用电路或者软件模块,所述软件模块包括存储于存储器并且在与存储器通信的处理器处执行的指令。更具体来说,例如,过程500能够在虚拟设备生成系统处实现。
用户接口用于选择虚拟设备模块、虚拟设备部件、能力、和/或用于虚拟设备的能力的选项、属性、参数、和/或值,在块510,向客户端呈现用户接口。例如,如上所述,能够通过网络服务向客户端(或客户端的用户)呈现驻留于客户端的网络浏览器内的网页或者一组网页。作为特定示例,基于例如网页的超链接响应于来自网络浏览器的对于该网页的请求,能够通过网络服务将包括一组虚拟设备模块的表示的网页发送至网络浏览器。
用户能够通过在网络浏览器的视图内选择(例如,点击)虚拟设备模块的表示来选择虚拟设备模块,并且在块521,接收所选择的虚拟设备模块的选择标识符。选择标识符能够是虚拟设备模块的URI、名字、参考号或者其他标识符。然后例如在虚拟设备生成系统的能力模块处访问一组能力和用于所选择的虚拟设备模块的能力的选项、属性、参数和/或值域,并将其显示给用户。例如,网页包括与能力和所选择的虚拟设备模块的能力的选项、属性和参数相关的复选框、单选按钮、列表、和/或输入字段,能够将该网页发送至驻留于客户端处的网络浏览器,并且在网络浏览器内将该网页显示至客户端。用户能够通过选择与能力关联的复选框和/或单选按钮来选择(例如,启用或者禁用)能力。另外,用户通过从列表选择值或者通过在网页的输入字段输入值而能够指定用于能力的选项、属性和/或参数的值。在块522,接收能力的选择标识符(例如,复选框和单选按钮的值或者状态和/或选项、属性和/或参数的值)。
除了能力,与所选择的虚拟设备模块和能力兼容的虚拟设备部件能够显示给用户,而用户能够选择包含在虚拟设备中的虚拟设备部件。例如,网页包括与所选择的虚拟设备模块(例如,与在块521接收的选择标识符关联的虚拟设备)兼容的虚拟设备部件的表示以及能力(例如,与在块522接收的选择标识符关联的能力)的表示,该网页能够被发送至客户端处的网络浏览器。类似于以上关于虚拟设备模块讨论的网页,用户能够选择一个或多个虚拟设备部件,并且在块523处接收所选择的虚拟设备部件的选择标识符。在一些实施例中,虚拟设备部件包括类似于虚拟设备模块的能力。这些能力能够被显示给用户,正如以上关于虚拟设备模块的能力讨论的那样,并且用户所选择的能力的选择标识符和/或用户对于能力的选项、属性和/或参数指定或选择的值能够在虚拟设备生成模块处被接收。
在对于虚拟设备模块完成块521、522和523之后,用户能够提供是否将选择更多虚拟设备模块的指示。例如,虚拟设备生成系统能够发送网页至用户,经由该网页,用户能够指定是否将选择更多虚拟设备模块。在块530,虚拟设备生成模块能够接收指示,如果将选择额外的虚拟设备模块就返回至块521。如果没有额外的虚拟设备模块将被选择,则在块530,过程500能够进行至块541。
在块541,访问用于所选择的虚拟设备模块、虚拟设备部件和/或能力的授权值。如上所述,基于例如在块521、522和/或523处接收的虚拟设备模块、虚拟设备部件的选择标识符和/或能力,能够于数据库或者其他包括授权值的数据存储访问授权值。可替换地,例如,能够从虚拟设备模块和/或虚拟设备部件的供应商请求授权值。例如,虚拟设备生成系统能够向虚拟设备部件的供应商发送对于用于该部件的许可密钥值(授权值)的请求,以访问许可密钥值。
在一些实施例中,虚拟设备生成系统生成授权值。例如,能够使用虚拟设备模块的供应商、虚拟设备模块的软件应用和/或虚拟设备部件的供应商所指定的算法来生成授权值。更具体来说,例如,虚拟设备生成模块能够生成许可密钥值,在虚拟设备部件内的软件应用将接受所述许可密钥值作为有效值。在一些实施例中,授权值能够包括虚拟设备模块的能力(例如,虚拟设备模块的软件应用的能力)或者虚拟设备部件的能力的选项、属性和/或参数的值。例如,能够在虚拟设备生成系统中使用编码或者加密处理用特定算法或者密钥编码或者加密包括能力的选项、属性和/或参数的值的纯文本文件或者分级文件(例如XML文件)。虚拟设备模块(或虚拟设备模块的软件应用)或者与这些能力关联的部件能够使用相同或者免费算法或者密钥来解码或者解密文件以访问选项、属性和/或参数的值。
在块542,访问与所选择的虚拟设备模块和/或虚拟设备部件关联的虚拟磁盘映像(例如,存储指令或者代码的虚拟磁盘映像,所述指令或者代码实现虚拟设备模块和/或虚拟设备部件的功能或者能力)。例如,可以在虚拟设备模块和/或虚拟设备部件的数据存储或者数据库访问虚拟磁盘映像,或者从该数据存储或者数据库取出虚拟磁盘映像。在块543生成虚拟设备描述符,虚拟设备描述符包括与所选择的虚拟设备模块(例如,所选择的虚拟设备模块的软件应用)、虚拟设备部件和/或能力相关的信息。也即,虚拟设备描述符描述了虚拟设备的配置。例如,虚拟设备描述符包括:关于虚拟设备和/或虚拟设备部件的启用和/或禁止能力的信息;能力的选项、属性和/或参数的值;哪个虚拟设备部件包括在虚拟设备内;和/或其他配置信息。
作为特定示例,虚拟设备描述符包括例如与虚拟设备描述符关联的虚拟设备的虚拟磁盘映像的标识符(即,在块521和523选择的虚拟设备模块和虚拟设备部件的虚拟磁盘映像)、授权值、虚拟设备模块内包含的软件应用的说明、能力的说明、能力的选项、属性和/或参数的值,和/或虚拟设备部件的说明。作为特定示例,虚拟设备描述符能够符合OVF。
除了与虚拟设备模块和虚拟设备部件相关的信息,虚拟设备描述符能够包括与驻留由虚拟设备描述符所描述的虚拟设备的虚拟操作平台的配置相关的指令或者指示。例如,虚拟设备描述符能够包括这样的指示:其指定用于当在虚拟操作平台内被实例化时将虚拟设备描述符提供至由虚拟设备描述符所描述的虚拟设备的传输介质和/或传输协议(或传输指示)。作为例子,传输指示能够指定该虚拟设备描述符(以及因此,例如虚拟设备部件的授权值和说明的信息)被安装在虚拟操作平台内,作为诸如虚拟光盘的只读介质。更具体来说,例如,传输指示能够指定该虚拟设备描述符被安装为符合ISO9660文件系统的虚拟驱动器。
在块543生成虚拟设备描述符之后,在块545,生成虚拟设备描述符以及虚拟设备描述符所识别的虚拟磁盘映像的摘要。摘要是基于虚拟设备描述符和虚拟磁盘映像的内容(即,字节和/或位数)被限定的值或者值的集合。例如,如上所述,能够通过应用散列函数至虚拟设备描述符和虚拟磁盘映像来生成摘要,从而生成用于虚拟设备描述符和虚拟磁盘映像中每个的摘要。每个数字摘要能够存储于清单文件中,清单文件将与虚拟设备描述符和虚拟磁盘映像包括在虚拟设备容器内。
然后,在块545对摘要进行签名,以将虚拟设备生成系统识别为生成摘要的实体或者系统。例如,通过使用与虚拟设备生成系统关联的公共/私有加密密钥对的私有加密密钥来加密摘要,可以对摘要进行签名。虚拟设备生成系统的客户端随后通过以与生成签名摘要相同方式生成另一摘要能够验证虚拟设备生成系统已经生成摘要,并且使用与虚拟设备生成系统关联的公共/私有加密密钥对的公共加密密钥来解密签名的摘要。如果解密的摘要和客户端生成的摘要匹配(即,具有共同值),则客户端能够信任虚拟设备生成系统已生成摘要。
然后,在块546,将虚拟设备描述符、摘要和虚拟设备描述符所识别的虚拟磁盘映像聚集在或者包括在虚拟设备容器内。如上所述,虚拟设备容器是包括虚拟设备的元件的封装。在块550,将虚拟设备容器存储于数据存储或者资源库,在块560,将与虚拟设备容器的可用性相关的通知发送至虚拟设备生成系统的用户。例如,能够发送电子消息至用户,该电子消息包括虚拟设备容器的超链接或者URI或者可访问虚拟设备容器的网页的超链接或者URI。
用户然后能够经由例如网络浏览器发送请求以访问虚拟设备容器。在块570,接收请求。作为特定示例,在块570,从虚拟设备生成系统的网络服务的客户端接收HTTP GET请求。在块580,将虚拟设备容器提供至客户端。例如,能够经由诸如网络浏览器的客户端来下载虚拟设备容器。也即,客户端可以访问虚拟设备容器和/或将虚拟设备容器发送至客户端。
过程500能够包括除了图5图示的这些之外的块。另外,能够重新布置一个或多个块。例如,过程500能够包括这样的块:在该块,虚拟设备生成系统确定所选择的虚拟设备部件是否与虚拟设备模块和/或能力(即,虚拟设备模块的能力或者不同虚拟设备部件的能力)兼容。虚拟设备生成系统能够访问用于虚拟设备部件、虚拟设备模块和/或能力的兼容信息,以确定虚拟设备部件是否兼容。可替换地,例如,基于文件类型(例如,虚拟设备部件的软件应用的文件类型)、虚拟设备部件(例如,在实施虚拟设备部件期间访问的软件库)的依赖度,或者虚拟设备部件的一些其他属性或者特性,虚拟设备生成系统能够确定虚拟设备部件是否兼容。此外,虽然参考包括虚拟设备生成系统的示例环境讨论了过程500,但是过程500可应用于其他环境内。
图6是根据实施例的虚拟设备容器的示意图。虚拟设备容器600包括虚拟设备描述符610、虚拟磁盘映像630和虚拟磁盘映像650。虚拟设备描述符610包括与由虚拟设备描述符610描述的虚拟设备相关的信息。例如,虚拟设备描述符610包括虚拟设备标识符611和虚拟磁盘映像标识符612。虚拟磁盘映像标识符612包括对虚拟磁盘映像630的标识符或者引用,虚拟磁盘映像630包括操作系统631、数据632和包括能力634的应用633。换句话说,虚拟磁盘映像标识符612识别虚拟磁盘映像,虚拟磁盘映像包括软件栈(例如,操作系统631)和软件模块(例如,应用633)以在虚拟操作平台处实例化的虚拟设备处提供服务。
虚拟设备描述符610还包括与能力634相关的信息。更具体来说,虚拟设备能力标识符614识别能力634,虚拟设备描述符610内包括的授权值615是与能力634关联的授权值。因而,虚拟设备描述符610包括授权值以启用或者激活能力634。在一些实施例中,虚拟设备描述符610包括能力634的选项、属性或者参数的值。例如,虚拟设备描述符610包括选项值616,所述选项值616是能力634的选项的值。
与虚拟设备部件651相关的信息还包括在虚拟设备容器610上。虚拟设备部件标识符617识别虚拟设备部件651,虚拟磁盘映像标识符618识别存储有虚拟设备部件651的虚拟磁盘映像650。此外,授权值619是启用或者激活虚拟设备部件651(或一个或多个虚拟设备部件651的能力)的授权值。在一些实施例中,虚拟设备描述符610包括虚拟设备部件651的和/或虚拟设备部件651的能力的选项、属性或者参数的值。
此外,虚拟设备描述符610包括传输指示613,该传输指示指定或者识别传输介质和/或传输协议,传输介质和/或传输协议用于提供对基于虚拟设备描述符610在虚拟操作平台处被实例化的虚拟设备内的虚拟设备描述符的访问。换句话说,传输指示613指定了过程或者方式,通过该过程或者方式,虚拟设备描述符610内包括的信息能够在由虚拟设备容器600所描述(或限定)的虚拟设备内被访问。
如图7所示,虚拟设备容器600能够被实例化为虚拟操作平台710处的虚拟设备720。图7是根据实施例的包括管理程序和虚拟设备的计算设备的示意框图。计算设备700驻留与虚拟操作平台710通信的管理程序730。虚拟设备容器(例如以上结合图6讨论的虚拟设备容器600)提供至管理程序730并且被实例化为虚拟设备720。虚拟设备容器600中的虚拟磁盘映像630被作为虚拟盘730在虚拟操作平台710内可用或者安装在虚拟操作平台710,操作系统631在虚拟设备720内被引导或者被初始化。换句话说,基于虚拟磁盘映像630能够在计算设备700处实例化虚拟机器(或虚拟机器实例)。换句话说,虚拟盘730能够是虚拟机器的元件或者部件。
因为虚拟盘730在虚拟操作平台710内是可用的,所以数据632和包括能力634的应用633在虚拟设备720内也是可用的。另外,虚拟磁盘映像650被作为虚拟盘750在虚拟操作平台710内可用或者安装在虚拟操作平台710,因而,虚拟设备部件651在虚拟设备720内可访问。在一些实施例中,基于虚拟磁盘映像650在计算设备700处实例化虚拟机器(或虚拟机器实例),以驻留虚拟设备部件651。换句话说,虚拟盘750能够被包括在虚拟机器内。因此,应用633和虚拟设备部件651能够被开启、被实例化、或者运行以在虚拟设备720处提供服务。
虚拟设备描述符610还可在虚拟设备720内于虚拟盘740处可访问。在一些实施例中,虚拟设备描述符610或者虚拟设备容器的一部分作为文件在不同于虚拟设备描述符610的虚拟设备描述符中是可用的。例如,OVF提供包括来自虚拟设备描述符或者虚拟设备容器的信息的OVF环境文件。换句话说,通过被OVF所指定,管理程序可解译虚拟设备描述符,并且如果虚拟设备描述符被确定为有效(例如,虚拟设备描述符的摘要和/或相关数字签名能够被验证)则生成OVF环境文件。因而,图7中图示的虚拟设备描述符610能够是虚拟设备描述符、虚拟设备描述符的部分、或者从虚拟设备描述符导出的数据集(例如,文件)。
虚拟盘740是传输介质,其由虚拟设备容器600内的虚拟设备描述符610的传输指示613指定。例如,虚拟盘740可以是只读虚拟光盘,其在虚拟操作平台710内可用或被安装在虚拟操作平台710内。操作系统631、应用633和/或虚拟设备部件651当在虚拟设备720内被实例化时能够访问虚拟设备描述符610,例如以访问能力的授权值和/或选项、属性以及参数。作为特定示例,应用633能够访问虚拟盘740处的虚拟设备描述符610的选项值616以配置能力634。因而,当生成虚拟设备容器600时,操作系统631、应用633和/或虚拟设备部件651能够访问虚拟设备生成系统的用户指定的配置选项、参数或者变元。
如上所述,应用633和/或虚拟设备部件651的一些能力(诸如能力634)被配置为没有有效授权值时不可操作或者不起作用。因为应用633和虚拟设备部件651的授权(或许可)能力的授权值存储于在虚拟盘740处虚拟设备描述符610内,所以应用633和/或虚拟设备部件651能够访问虚拟设备720内的这些授权值,并且确定特定能力是否被授权。
在一些实施例中,虚拟设备720包括实施模块(或许可实施模块)760。例如,实施模块760能够被包括在内操作系统631或者作为虚拟盘730处的软件应用被实例化在虚拟设备720内。实施模块760能够从虚拟设备描述符610访问授权值,并且将这些授权值提供至软件应用和/或虚拟设备部件,例如在虚拟设备720内实例化的应用633和虚拟设备部件651。这会是有用的,例如,为了防止授权值以可用形式在虚拟设备描述符610内可访问。更具体地,例如,在将许可密钥值(授权值)存储于虚拟设备描述符610内之前,能够在虚拟设备生成系统中对许可密钥值加密。实施模块760能够包括加密密钥以解密虚拟设备720内的许可密钥值,并且将未加密的许可密钥值例如提供至虚拟设备部件651和应用634。因而,许可密钥值不能够直接在虚拟设备描述符610处被访问。
一些实施例包括处理器和相关处理器可读介质,该介质上具有指令或者计算机代码用于执行各种处理器实现的操作。这种处理器可以是通用处理器或者专用处理,并且能够实现为硬件模块和/或软件模块。硬件模块可以是例如微处理器、微控制器、专用集成电路("ASIC")、可编程逻辑设备("PLD")诸如现场可编程门列阵("FPGA"),和/或其他执行操作的电子电路。软件模块可以是例如存储于存储器并且在另一处理器上执行的指令、命令和/或代码。能够使用一种或多种程序语言来限定这种软件模块,诸如JavaTM、C++、C、汇编语言、硬件描述语言和/或另一合适的程序语言。例如,处理器可以是驻留于包括微处理器和存储器的计算机服务器的虚拟操作平台。
在一些实施例中,处理器能够包括多个处理器。例如,处理器可以是包括多个处理引擎(例如,计算、算法或者线程核心)的微处理器。作为另一例子,处理器可以是包括多个处理器的计算设备,处理器具有共享锁、存储器总线、输入/输出总线和/或其他共享资源。此外,处理器可以是分布式处理器。例如,处理器能够包括多个计算设备,每个计算设备均包括处理器,计算设备经由诸如计算机网络的通信链路彼此通信。
处理器可读介质的例子包括但不限于:磁性存储介质,诸如硬盘、软磁盘,和/或磁带;光学存储介质,诸如光盘("CD")、数字视频光盘("DVD")、光盘只读存储器("CD-ROM")、和/或全息设备;光磁储存介质;非易失性存储器,诸如只读存储器("ROM")、可编程控只读储存器("PROM")、可擦除可编程只读存储器("EPROM")、电可擦除只读存储器("EEPROM"),和/或闪存;以及随机访问存储器("RAM")。计算机代码的例子包括但不限于:诸如编译器产生的微代码或者微指令、机器指令,以及包含计算机使用编译程序执行的较高水平指令的文件。例如,可以使用JavaTM、C++或者其他面向对象程序语言和开发工具实现实施例。计算机代码另外的例子包括但不限于控制信号、加密代码以及压缩代码。
作为包括一个或多个处理器和处理器可读存储介质的系统的例子,图8是根据实施例的包括处理器和存储介质的系统800的示意框图。如图8所图示的,系统800包括可操作地耦合至存储介质821、存储介质822和存储介质823的一个或多个处理器810。一个或多个处理器810能够访问存储介质821、存储介质822和存储介质823处的指令或者代码。存储介质821、822和823可以是任何处理器可读介质和/或是访问处理器可读介质的相关设备。例如,存储介质821可以是包括磁性存储介质的硬盘驱动器,存储介质822可以是诸如DVD驱动器的光学驱动器,并且能够接受存储处理器可读指令的DVD存储介质,存储介质823可以是具有通用串行总线("USB")接口的闪存驱动器。在一些实施例中,存储介质821、822和/或823对于一个或多个处理器810可以是本地的(例如,耦合至公用的计算设备)。在一些实施例中,存储介质821、822和/或823可以远离一个或多个处理器810(例如,耦合至单独的计算设备),并且经由通信链路与一个或多个处理器810通信。此外,存储介质821、822和/或823中的一个或多个对于一个或多个处理器810可以是本地的,而剩余存储介质821、822和/或823中的一个或多个可以远离一个或多个处理器810。
作为更具体的例子,一个或多个处理器810能够包括在计算设备内,计算设备具有由存储介质821呈现的硬盘驱动器以及具有包括由存储介质822呈现的DVD介质的DVD驱动器。计算设备还可以包括USB主控制器以与存储介质823呈现的闪存驱动器通信。一个或多个处理器810能够访问处理器可读指令,诸如实现操作系统、软件应用和/或任何存储介质821、822和/或823处的一个或多个处理的处理器可读指令。换句话说,一个或多个处理器810能够经由存储介质821、存储介质822和/或存储介质823解译或者执行处理器可读介质上的指令。在一些实施例中,系统800能够包括一个或多个存储器,诸如RAM,其用作存储介质821、存储介质822和/或存储介质823中的一个或多个与一个或多个处理器810之间的高速缓存,其中处理器810用于存储于存储介质821、存储介质822和/或存储介质823中的一个或多个(或在其上可访问的)指令或者代码。
尽管以上描述和示出了特定实施例,但是在形式和细节上可以做各种改变。例如,结合一个实施例和/或过程描述的实施例的一些特征能够与其他实施例相关。换句话说,结合一个实施例描述的各实施例的过程、特征和/或特性在其他实施例中是有用的。此外,应该理解的是,此处描述的系统和方法能够包括所描述的不同实施例的部件和/或特征的各种组合和/或子组合。作为特定示例,结合限定包括单个虚拟设备模块的虚拟设备容器讨论的实施例对于限定包括多个虚拟设备模块的虚拟设备容器也是有用的。因而,参考一个或多个实施例描述的特征能够与此处描述的其他实施例结合。

Claims (20)

1.一种处理器可读介质,其存储表示使得处理器执行一过程的指令的代码,所述过程包括:
基于虚拟设备部件的标识符来访问与所述虚拟设备部件关联的授权值;
在虚拟设备描述符内存储所述虚拟设备部件的标识符;
在所述虚拟设备描述符内存储所述授权值;
基于所述虚拟设备描述符生成摘要;
生成虚拟设备容器,所述虚拟设备容器包括虚拟设备模块、所述虚拟设备部件、所述虚拟设备描述符和所述摘要中的一部分;以及
向客户端提供所述虚拟设备容器。
2.根据权利要求1所述的处理器可读介质,其中,所述虚拟设备模块是选择的虚拟设备模块,所述虚拟设备部件是选择的虚拟设备部件,并且其中,所述过程进一步包括:
向所述客户端发送多个虚拟设备表示,所述多个虚拟设备表示中的每个虚拟设备表示唯一地与多个虚拟设备模块中的虚拟设备模块相关联,所述多个虚拟设备模块包括所述选择的虚拟设备模块;以及
向所述客户端发送多个虚拟设备部件表示,所述多个虚拟设备部件表示中的每个虚拟设备部件表示唯一地与虚拟设备部件相关联,所述多个虚拟设备部件表示包括所述选择的虚拟设备部件表示。
3.根据权利要求1所述的处理器可读介质,其中,所述过程进一步包括:
接收所述虚拟设备部件的所述标识符;以及
确定所述虚拟设备模块与所述虚拟设备部件兼容。
4.根据权利要求1所述的处理器可读介质,其中,所述过程进一步包括:
接收所述虚拟设备模块的能力的选择标识符;
访问与所述能力相关联的授权值;
在所述虚拟设备描述符内存储所述能力的标识符;以及
在所述虚拟设备描述符内存储与所述能力相关联的授权值。
5.根据权利要求1所述的处理器可读介质,其中,所述过程进一步包括:
基于所述摘要生成数字签名,所述虚拟设备容器包括所述数字签名。
6.根据权利要求1所述的处理器可读介质,其中,所述过程进一步包括:
响应于基于对虚拟设备容器的引用的来自客户端的对于所述虚拟设备容器的请求,向客户端提供所述虚拟设备容器。
7.一种限定虚拟设备的方法,包括:
从客户端经由通信链路接收与虚拟设备模块的能力相关联的选择标识符;
响应于接收而访问与所述虚拟设备模块的能力相关联的授权值;
在虚拟设备描述符内存储所述虚拟设备模块的能力的标识符;
在所述虚拟设备描述符内存储与所述能力相关联的授权值;
基于所述虚拟设备描述符生成摘要;
生成虚拟设备容器,所述虚拟设备容器包括虚拟设备模块、所述虚拟设备描述符和摘要中的一部分;以及
向客户端提供所述虚拟设备容器。
8.根据权利要求7所述的方法,进一步包括:
接收与所述虚拟设备部件相关联的选择标识符;
确定所述虚拟设备模块与所述虚拟设备部件兼容;
访问与所述虚拟设备部件相关联的授权值;以及
在所述虚拟设备描述符内存储与所述虚拟设备部件相关联的授权值,所述虚拟设备容器包括所述虚拟设备部件。
9.根据权利要求7所述的方法,其中:
所述授权值是许可密钥值;以及
所述虚拟设备模块包括许可实施模块。
10.根据权利要求7所述的方法,其中:
所述授权值是许可密钥值;
所述许可密钥值被加密;以及
所述虚拟设备模块包括被配置为对所述许可密钥值进行解密的许可实施模块。
11.根据权利要求7所述的方法,进一步包括:
在访问所述授权值之前,接收与所述虚拟设备的能力相关联的支付确认。
12.根据权利要求7所述的方法,进一步包括:
向客户端发送对所述虚拟设备容器的引用,所述提供响应于基于所述引用的来自所述客户端的对于所述虚拟设备容器的请求。
13.根据权利要求7所述的方法,其中,所述虚拟设备模块包括许可实施模块,所述方法进一步包括:
指定只读传输介质以向所述许可实施模块提供授权值。
14.根据权利要求7所述的方法,进一步包括:
基于所述摘要生成数字签名,所述虚拟设备容器包括所述数字签名。
15.一种虚拟设备生成系统,包括:
选择接口模块,其向客户端提供多个虚拟设备模块中的每个虚拟设备模块的表示以及所述多个虚拟设备模块中的每个虚拟设备模块的能力的表示;
虚拟设备库,其与虚拟设备定制模块通信以存储所述多个虚拟设备模块;
授权模块,其接收所述多个虚拟设备模块中的虚拟设备模块的选择标识符、虚拟设备模块的能力的选择标识符以及与虚拟设备模块的能力相关联的权限确认,所述授权模块能够操作以限定与所述虚拟设备模块的能力相关联的授权值;以及
聚集模块,其接收所述虚拟设备模块、所述虚拟设备模块的能力的标识符和所述授权值中的一部分,
所述聚集模块能够操作以基于所述虚拟设备模块、所述授权值和所述虚拟设备模块的能力的标识符中的一部分来生成摘要,
所述聚集模块能够操作以生成虚拟设备容器,所述虚拟设备容器包括所述虚拟设备模块、所述授权值、所述虚拟设备模块的能力的标识符和所述摘要中的一部分。
16.根据权利要求15所述的系统,进一步包括:
虚拟设备分配模块,其与所述聚集模块通信以接收对于所述虚拟设备容器的请求,以及响应于所述请求向客户端提供所述虚拟设备容器。
17.根据权利要求15所述的系统,其中,所述选择接口模块能够操作以向客户端提供多个虚拟设备部件中的每个虚拟设备部件的表示,所述多个虚拟设备部件中的每个虚拟设备部件与所述多个虚拟设备模块中的至少一个虚拟设备模块兼容。
18.根据权利要求15所述的系统,进一步包括:
虚拟设备提交模块,其与所述虚拟设备库通信以接收所述多个虚拟设备模块并且将所述多个虚拟设备模块存储于所述虚拟设备库。
19.根据权利要求15所述的系统,其中:
所述选择接口模块能够操作以向客户端提供多个虚拟设备部件中的每个虚拟设备部件的表示;
所述授权模块能够操作以接收所述多个虚拟设备部件中的虚拟设备部件的选择标识符以及与所述虚拟设备部件相关联的权限确认,所述授权模块能够操作以限定与所述虚拟设备部件相关联的授权值;以及
所述聚集模块能够操作以接收所述虚拟设备部件和与所述虚拟设备部件相关联的授权值,所述虚拟设备容器包括所述虚拟设备部件和与所述虚拟设备部件相关联的授权值。
20.根据权利要求15所述的系统,其中:
所述选择接口模块能够操作以向客户端提供多个虚拟设备部件中的每个虚拟设备部件的表示,
所述授权模块能够操作以接收所述多个虚拟设备部件中的虚拟设备部件的选择标识符以及与所述虚拟设备部件相关联的权限确认,所述授权模块能够操作以限定与所述虚拟设备部件相关联的授权值,
所述聚集模块能够操作以接收所述虚拟设备部件和与所述虚拟设备部件相关联的授权值,以及
所述虚拟设备容器包括所述虚拟设备部件和与所述虚拟设备部件相关联的授权值,
所述系统进一步包括:
兼容模块,其可操作地耦合至所述选择接口模块,以确定所述多个虚拟设备模块中的虚拟设备模块与所述多个虚拟设备部件中的虚拟设备部件兼容。
CN2010800696855A 2010-10-19 2010-10-19 用于生成授权虚拟设备的系统和方法 Pending CN103154960A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/053122 WO2012054016A1 (en) 2010-10-19 2010-10-19 Methods and systems for generation of authorized virtual appliances

Publications (1)

Publication Number Publication Date
CN103154960A true CN103154960A (zh) 2013-06-12

Family

ID=45975500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800696855A Pending CN103154960A (zh) 2010-10-19 2010-10-19 用于生成授权虚拟设备的系统和方法

Country Status (4)

Country Link
US (1) US8856889B2 (zh)
EP (1) EP2630580A4 (zh)
CN (1) CN103154960A (zh)
WO (1) WO2012054016A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702566A (zh) * 2013-12-06 2015-06-10 苏州海博智能系统有限公司 一种虚拟设备的授权使用方法及装置
CN106537366A (zh) * 2014-06-30 2017-03-22 惠普发展公司,有限责任合伙企业 全虚拟机功能
CN111274184A (zh) * 2018-12-05 2020-06-12 西安诺瓦星云科技股份有限公司 串行接口设备驱动器、嵌入式处理器和视频控制器
CN112948771A (zh) * 2019-12-11 2021-06-11 浙江宇视科技有限公司 权限校验方法、装置、可读存储介质及电子设备

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639787B2 (en) 2009-06-01 2014-01-28 Oracle International Corporation System and method for creating or reconfiguring a virtual server image for cloud deployment
US9087196B2 (en) * 2010-12-24 2015-07-21 Intel Corporation Secure application attestation using dynamic measurement kernels
US8874888B1 (en) * 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US9612803B2 (en) * 2011-04-15 2017-04-04 Oracle International Corporation System and method for use of a virtual assembly builder
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US9235856B2 (en) * 2011-11-10 2016-01-12 Verizon Patent And Licensing Inc. Providing overlay networks via elastic cloud networking
US9311160B2 (en) 2011-11-10 2016-04-12 Verizon Patent And Licensing Inc. Elastic cloud networking
US9519472B2 (en) * 2011-11-23 2016-12-13 Red Hat, Inc. Automation of virtual machine installation by splitting an installation into a minimal installation and customization
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US10282221B2 (en) 2011-12-09 2019-05-07 International Business Machines Corporation Controlling usage of virtual disks before their attachment to virtual machines
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US10445121B2 (en) 2012-02-23 2019-10-15 Red Hat Inc. Building virtual machine disk images for different cloud configurations from a single generic virtual machine disk image
US9378255B2 (en) * 2012-05-11 2016-06-28 Sap Se Cloud logistics
US8438654B1 (en) 2012-09-14 2013-05-07 Rightscale, Inc. Systems and methods for associating a virtual machine with an access control right
GB2508160A (en) * 2012-11-21 2014-05-28 Ibm Avoiding conflicts between computing machines
KR101558065B1 (ko) * 2013-01-30 2015-10-06 지티이 (유에스에이) 인크. 심리스 (분산된) 가상 네트워크 자원 관리를 위해 가상 네트워크 요소와 네트워크 하이퍼바이저 간의 인터페이스를 위한 요구 사항을 결정하기 위한 방법 및 시스템
US9973375B2 (en) * 2013-04-22 2018-05-15 Cisco Technology, Inc. App store portal providing point-and-click deployment of third-party virtualized network functions
WO2014180769A1 (en) * 2013-05-06 2014-11-13 Core-Software Gmbh Automated generation of an appliance for a computing machine
US9342669B2 (en) * 2013-07-11 2016-05-17 Dialogic, Inc. Systems and methods of licensing and identification of virtual network appliances
US10171501B2 (en) * 2013-09-20 2019-01-01 Open Text Sa Ulc System and method for remote wipe
EP2851833B1 (en) * 2013-09-20 2017-07-12 Open Text S.A. Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations
US9734325B1 (en) * 2013-12-09 2017-08-15 Forcepoint Federal Llc Hypervisor-based binding of data to cloud environment for improved security
US9792140B2 (en) 2015-03-04 2017-10-17 International Business Machines Corporation Maintenance of a software discovery catalog in a virtual machine environment
US10755590B2 (en) 2015-06-18 2020-08-25 The Joan and Irwin Jacobs Technion-Cornell Institute Method and system for automatically providing graphical user interfaces for computational algorithms described in printed publications
EP3311265B1 (en) 2015-06-18 2020-06-17 The Joan & Irwin Jacobs Technion-Cornell Innovation Institute A computing platform and method thereof for searching, executing, and evaluating computational algorithms
US10020941B2 (en) * 2015-09-30 2018-07-10 Imperva, Inc. Virtual encryption patching using multiple transport layer security implementations
US9940470B2 (en) * 2015-10-06 2018-04-10 Symantec Corporation Techniques for generating a virtual private container
US11593075B2 (en) 2015-11-03 2023-02-28 Open Text Sa Ulc Streamlined fast and efficient application building and customization systems and methods
CN105472612A (zh) * 2015-12-09 2016-04-06 广东顺德中山大学卡内基梅隆大学国际联合研究院 使用Wi-Fi热点广播和接收关键字并获取其信息的方法及系统
WO2017127011A1 (en) * 2016-01-19 2017-07-27 Telefonaktiebolaget Lm Ericsson (Publ) Implicit derivation of frequency synchronization from dmrs assignment
US11388037B2 (en) 2016-02-25 2022-07-12 Open Text Sa Ulc Systems and methods for providing managed services
EP3437306B1 (en) * 2016-04-15 2023-11-22 Telefonaktiebolaget LM Ericsson (PUBL) User equipment containers and network slices
US10831370B1 (en) * 2016-12-30 2020-11-10 EMC IP Holding Company LLC Deduplicated and compressed non-volatile memory cache
CN106874785A (zh) * 2017-01-13 2017-06-20 北京元心科技有限公司 多操作系统的系统文件访问方法及装置
US10228965B2 (en) 2017-05-15 2019-03-12 Synopsys, Inc. Architecture, system and method for creating and employing trusted virtual appliances
US10705855B2 (en) * 2017-11-29 2020-07-07 Forcepoint Llc Method for securely configuring an information system
JP7195796B2 (ja) * 2018-07-23 2022-12-26 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
US11394538B2 (en) * 2019-11-05 2022-07-19 David Lee Anthony Ramirez System and method for verifying the no-later-than date-of-existence, data integrity, identity of the recorder, and timestamp of the recording for digital content
US11599375B2 (en) * 2020-02-03 2023-03-07 EMC IP Holding Company LLC System and method virtual appliance creation
US20230015789A1 (en) * 2021-07-08 2023-01-19 Vmware, Inc. Aggregation of user authorizations from different providers in a hybrid cloud environment

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1448851A (zh) * 2003-04-24 2003-10-15 上海交通大学 采用硬件加解密的虚拟私有网络
US20040111375A1 (en) * 2002-02-07 2004-06-10 Oracle International Corporation Methods and systems for authentication and authorization
CN1687862A (zh) * 2005-06-16 2005-10-26 北京航空航天大学 智能卡安全环境的控制方法
US20060136708A1 (en) * 2004-12-20 2006-06-22 Hassan Hajji Information processing system, program product, and information processing method
CN1957351A (zh) * 2004-04-01 2007-05-02 诺基亚公司 使用虚拟设备域的设备组管理
US20080047015A1 (en) * 2006-08-08 2008-02-21 Andrew Cornwall Method to provide a secure virtual machine launcher
US20080243703A1 (en) * 2007-03-28 2008-10-02 Ahmed Ibrahim Al-Herz Virtual account based new digital cash protocols with combined blind digital signature and pseudonym authentication
US20090249329A1 (en) * 2008-03-25 2009-10-01 Sambit Kumar Dash Limited service life through virtualized service images
WO2010065168A1 (en) * 2008-11-25 2010-06-10 Ringcentral, Inc. Authenticated facsimile transmission from mobile devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373451B2 (en) * 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US7900243B2 (en) * 2006-10-19 2011-03-01 Oracle America, Inc. Method and system for managing execution of an application module
US20110004676A1 (en) * 2008-02-04 2011-01-06 Masahiro Kawato Virtual appliance deploying system
US20090217263A1 (en) * 2008-02-25 2009-08-27 Alexander Gebhart Virtual appliance factory
US8560649B2 (en) * 2009-03-13 2013-10-15 Aspect Software, Inc. Virtual appliance automation tool
US9158912B2 (en) 2009-04-01 2015-10-13 Dell Products L.P. Method and apparatus for a virtual machine hosting network with user devices
US8627274B2 (en) * 2011-04-11 2014-01-07 International Business Machines Corporation Software tool and method for generating a virtual appliance

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111375A1 (en) * 2002-02-07 2004-06-10 Oracle International Corporation Methods and systems for authentication and authorization
CN1448851A (zh) * 2003-04-24 2003-10-15 上海交通大学 采用硬件加解密的虚拟私有网络
CN1957351A (zh) * 2004-04-01 2007-05-02 诺基亚公司 使用虚拟设备域的设备组管理
US20060136708A1 (en) * 2004-12-20 2006-06-22 Hassan Hajji Information processing system, program product, and information processing method
CN1687862A (zh) * 2005-06-16 2005-10-26 北京航空航天大学 智能卡安全环境的控制方法
US20080047015A1 (en) * 2006-08-08 2008-02-21 Andrew Cornwall Method to provide a secure virtual machine launcher
US20080243703A1 (en) * 2007-03-28 2008-10-02 Ahmed Ibrahim Al-Herz Virtual account based new digital cash protocols with combined blind digital signature and pseudonym authentication
US20090249329A1 (en) * 2008-03-25 2009-10-01 Sambit Kumar Dash Limited service life through virtualized service images
WO2010065168A1 (en) * 2008-11-25 2010-06-10 Ringcentral, Inc. Authenticated facsimile transmission from mobile devices

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702566A (zh) * 2013-12-06 2015-06-10 苏州海博智能系统有限公司 一种虚拟设备的授权使用方法及装置
CN106537366A (zh) * 2014-06-30 2017-03-22 惠普发展公司,有限责任合伙企业 全虚拟机功能
CN111274184A (zh) * 2018-12-05 2020-06-12 西安诺瓦星云科技股份有限公司 串行接口设备驱动器、嵌入式处理器和视频控制器
CN111274184B (zh) * 2018-12-05 2021-07-02 西安诺瓦星云科技股份有限公司 串行接口设备驱动器、嵌入式处理器和视频控制器
CN112948771A (zh) * 2019-12-11 2021-06-11 浙江宇视科技有限公司 权限校验方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
US20130276068A1 (en) 2013-10-17
WO2012054016A1 (en) 2012-04-26
EP2630580A4 (en) 2014-04-02
US8856889B2 (en) 2014-10-07
EP2630580A1 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
CN103154960A (zh) 用于生成授权虚拟设备的系统和方法
US10776513B2 (en) Device using secure storage and retrieval of data
AU2017323588B2 (en) Systems and methods for providing identity assurance for decentralized applications
KR100539987B1 (ko) 피어 컴포넌트를 인증하는 시스템 및 방법
EP2016543B1 (en) Authentication for a commercial transaction using a mobile module
US8156049B2 (en) Universal DRM support for devices
US20110085667A1 (en) Various methods and apparatuses for securing an application container
JP4818664B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
CN107533501A (zh) 使用区块链自动认证设备完整性
EP1645984A1 (en) Information processing apparatus, information processing method, and program
JP2008541206A (ja) ネットワーク商取引
WO2023030450A1 (zh) 数据共享方法和电子设备
KR20080108549A (ko) 온라인 거래 인가 방법, 컴퓨터 시스템, 프로그램, 모바일 모듈 인증 방법, 휴대용 장치, 액세스 방법, 컴퓨팅 프레임워크, 전송 레벨 보안 통신의 설정 방법, 안전 상거래 제공 방법, 안전 상거래 수행 방법, 지불 인가 방법, 지불 인가의 유효성 검사 방법, 자동 지불 배분 방법, 지불 옵션 제시 방법
WO2007024823A1 (en) Changing product behavior in accordance with license
WO2023005838A1 (zh) 数据共享方法和电子设备
US9886685B2 (en) Distributed digital rights-managed file transfer and access control
Islam et al. Remote device management via smart contracts
CN110599184A (zh) 用于网络服务账号交易的方法和装置、服务器和存储介质
CN110879876A (zh) 用于发行证书的系统和方法
US11750397B2 (en) Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization
Veeresh et al. Data Privacy in Cloud Computing, An Implementation by Django, A Python-Based Free and Open-Source Web Framework
WO2024115152A1 (en) Updating secure guest metadata of a specific guest instance
CN112866226A (zh) 网络安全防护方法和装置
AU2011202945B2 (en) Network commercial transactions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20170201

C20 Patent right or utility model deemed to be abandoned or is abandoned