CN108604187A - 托管的虚拟机部署 - Google Patents

托管的虚拟机部署 Download PDF

Info

Publication number
CN108604187A
CN108604187A CN201780009368.6A CN201780009368A CN108604187A CN 108604187 A CN108604187 A CN 108604187A CN 201780009368 A CN201780009368 A CN 201780009368A CN 108604187 A CN108604187 A CN 108604187A
Authority
CN
China
Prior art keywords
virtual machine
client device
hypervisor
component
management service
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.)
Granted
Application number
CN201780009368.6A
Other languages
English (en)
Other versions
CN108604187B (zh
Inventor
A·M·哈代
A·S·雷科夫斯基
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.)
An Weizhi Co Ltd
Airwatch LLC
Original Assignee
An Weizhi Co Ltd
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 An Weizhi Co Ltd filed Critical An Weizhi Co Ltd
Publication of CN108604187A publication Critical patent/CN108604187A/zh
Application granted granted Critical
Publication of CN108604187B publication Critical patent/CN108604187B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

系统可以包括计算机指令,其可以使计算设备获得代表用户访问应用程序的请求。该请求可以从与用户相关联的客户端设备获得。计算机指令还可以使计算设备确定是否需要客户端设备执行虚拟机,其执行应用程序。计算机指令还可以使计算设备识别虚拟机是否被安装在客户端设备中。计算机指令还可以使计算设备使虚拟机被安装在客户端设备中。

Description

托管的虚拟机部署
相关申请的交叉引用
本申请要求于2016年2月9日提交的标题为“托管的虚拟机部署(MANAGED VIRTUALMACHINE DEPLOYMENT)”的美国非临时专利申请No.15/019,193的权益,其全部内容通过引用并入本文。
背景技术
在企业环境中,用户通常被分配一台计算设备。一些企业允许用户使用他们的个人设备访问企业数据和应用程序。企业可以基于用户的角色或企业内的群组中的成员身份来确定各个用户可以访问哪些数据或应用程序。
一些企业可以使应用程序是基于浏览器的,以便用户可以通过网页浏览器执行特定应用程序并与之交互。在这些情景中,企业可以阻止用户访问基于浏览器的应用程序,直到企业已基于用户名和密码对用户进行了验证为止。
企业还可以提供对专用或公共应用程序存储库的访问,其可以通过下载使应用程序可用。用户可以从存储库下载应用程序的安装包,安装应用程序,然后在其设备上执行应用程序。为了允许用户从存储库下载安装包,企业可以要求用户通过企业移动性管理(EMM)系统注册设备。EMM系统可以强制实施合规规则和政策,以确保用户的设备满足某些信息和数据安全需求。由于可以存在各种类型的先决条件以访问企业应用程序,因此用户可能不希望将设备注册为托管设备,除非用户正在访问需要向EMM系统注册的应用程序。
附图说明
参照以下附图可以更好地理解本公开的许多方面。附图中的组件不一定按比例绘制,而是着重于清楚地示出本公开的原理。而且,在附图中,贯穿几个视图,相同的附图标记表示相应的部分。
图1是联网环境的示例的图。
图2A-2B是由客户端设备呈现的用户界面的示例。
图3A-3B示出了阐述组件交互的示例的序列图。
图4和图5A至图5C是示出由管理服务实现的功能的示例的流程图。
图6至图8是示出由主机管理组件实现的功能的示例的流程图。
图9至图12是示出由超级管理程序实现的功能的示例的流程图。
具体实施方式
本公开涉及可以由企业管理服务管理的客户端设备上的虚拟机的部署和配置。在一个示例中,用户可能希望使用不能由安装在用户的客户端设备中的主机操作系统本地执行的应用程序。尽管主机操作系统不能执行应用程序,但为了向用户提供对应用程序的访问,监视和控制用户的客户端设备的管理服务可以创建并向客户端设备提供虚拟机,其可仿真由用户请求的应用程序的执行。另外,管理服务可以安装其他组件,比如超级管理程序(hypervisor)和访客管理组件,其可以被需要以执行和监视应用程序的活动。此外,管理服务可以使虚拟机以隐藏虚拟机的控制台的模式执行,而超级管理程序为所执行的应用程序生成用户界面,使得应用程序似乎由主机操作系统本地执行。因此,用户可以访问不是由主机操作系统执行的应用程序,并且该应用程序对用户来说看起来好像该应用程序已安装并由用户设备中的主机操作系统执行。
在下面的讨论中,将描述系统及其组件的示例,之后是这些系统的操作的示例。
参照图1,示出了联网环境100的示例。联网环境100可以包括通过网络109进行数据通信的企业计算环境103和客户端设备106。网络109可以包括因特网、一个或更多个内联网、外联网、广域网(WAN)、局域网(LAN)、有线网络、无线网络或两个或更多个这种网络的任何组合。网络109可以包括卫星网络、线缆网络、以太网、蜂窝网络和电话网络。
企业计算环境103可以是由一个或更多个企业(例如公司或其他组织)运营的计算系统。企业计算环境103可以包括可以提供计算能力的计算设备,例如服务器计算机。可选地,企业计算环境103可以包括布置在一个或更多个服务器库或计算机库中的多个计算设备。例如其中企业计算环境103包括多个计算设备,该计算设备可以位于单个安装中,或者该计算设备可以分布在多个不同的地理位置中。
在一些示例中,企业计算环境103可以包括共同形成托管计算资源或网格计算资源的计算设备。在其他示例中,企业计算环境103可以作为弹性计算资源来操作,针对弹性计算资源的计算相关资源(例如处理资源、网络资源和存储资源)分配的容量可以随着时间而变化。在其他示例中,企业计算环境103可以包括或被操作为一个或更多个虚拟计算机实例,其可以被执行以执行本文描述的功能。
企业计算环境103可以包括各种系统。例如,企业计算环境103可以包括管理服务113,其可以监视和管理与操作企业计算环境103的企业相关联的客户端设备106的操作。在一些示例中,管理服务113可以管理和监督注册在由管理服务113提供的移动设备管理服务中的多个客户端设备106的操作。管理服务113还可以向客户端设备106提供对电子邮件、日历数据、联系人信息以及与企业相关联的其他资源的访问。
企业计算环境103还可以包括目录服务116。目录服务116可以对用户进行认证并确定用户有权访问哪些特定的企业资源。目录服务116还可以管理访问企业计算环境103的资源的用户的凭证,例如用户名和密码。在一些示例中,目录服务116可以包括微软活动目录(MICROSOFT ACTIVE DIRECTORY)目录服务。
企业计算环境103还可以包括企业数据存储119。企业数据存储119可以代表联网环境100中的组件可访问的多个企业数据存储119。企业数据存储119可以存储与企业计算环境103相关联的各种数据。例如,企业数据存储119可以存储用户数据123和合规规则126。
存储在企业数据存储119中的用户数据123可以包括表示与关联于企业计算环境103的用户相对应的信息的数据。例如,用户数据123可以指定特定用户有权访问哪些特定资源(诸如数据和应用程序)。在一些示例中,用户数据123可以指定用户在企业中的角色,例如用户的职务或所属的业务组。
管理服务113可以将各种合规规则126分配给各个客户端设备106。合规规则126可以指定例如客户端设备106必须满足以被认为符合合规规则126的一个或更多个条件。在各种示例中,企业计算环境103、客户端设备106或者企业计算环境103和客户端设备106两者都可以确定客户端设备106是否满足合规规则126。例如,客户端设备106可以生成描述客户端设备106的状态以及相关联的信息、设置和参数的数据对象。客户端设备106或管理服务113中的组件可评估数据对象以确定客户端设备106是否符合相应的合规规则126。
在一个示例中,合规规则126可以指定特定应用程序被禁止安装在客户端设备106中。作为另一示例,合规规则126可以指定客户端设备106必须位于安全位置,例如操作企业计算环境103的企业的办公场所(premises),以便客户端设备106被授权访问或呈现客户端设备106中的内容。在另一个示例中,合规规则126可以指定当客户端设备106从低功率“睡眠”状态“唤醒”时被要求生成锁屏,并且用户需要密码来解锁锁屏。
各种合规规则126可以基于时间、地理位置或设备和网络性质。例如,当客户端设备106位于特定地理位置内时,客户端设备106可以满足合规规则126。在其他示例中,当客户端设备106与特定局域网(诸如由企业计算环境103管理的特定局域网)通信时,客户端设备106可以满足合规规则126。此外,在另一示例中,可以在时间和日期匹配指定值时满足合规规则126。
合规规则126的另一个示例涉及用户是否属于特定的用户组。例如,合规规则126可以包括指定特定用户或用户组是否被授权执行各种功能(诸如安装或执行特定应用程序)的白名单或黑名单。
在一些示例中,企业可以操作管理服务113以确保其用户的客户端设备106满足各自的合规规则126。通过确保其用户的客户端设备106按照合规规则126进行操作,企业可以控制对资源的访问并且从而改善与企业和客户端设备106的用户相关联的设备的安全性。
客户端设备106可以代表可以耦合到网络109的多个客户端设备106。客户端设备106可以包括基于处理器的计算机系统,诸如台式计算机、膝上型计算机、个人数字助理、手机或平板电脑。
客户端设备106可以包括主机操作系统136、主机管理组件139和虚拟机执行环境143。主机操作系统136可以管理客户端设备106中的硬件和软件资源。主机操作系统136还可以提供各种服务,诸如可以辅助客户端设备106内的各种组件彼此通信和共享数据的进程间通信服务。
主机管理组件139可以监视客户端设备106中的活动和设置,包括虚拟机执行环境143中的活动和设置,并且确定客户端设备106是否符合分配给客户端设备106的合规规则126。在一些示例中,主机管理组件139可以解析描述客户端设备106的状态和设置的数据对象,以确定客户端设备106是否合规。在其他示例中,主机管理组件139可以与管理服务113通信以确定管理服务113是否认为客户端设备106符合合规规则126。主机管理组件139还可以与客户端设备106中的各种组件(诸如虚拟机执行环境143中的组件)通信。
虚拟机执行环境143可以是一个或更多个虚拟机146在客户端设备106中在其中执行的环境。在一些示例中,虚拟机执行环境143可以是容器化的环境。就这一点而言,客户端设备106可以禁止至少一些数据传入和传出虚拟机执行环境143。以这种方式,虚拟机执行环境143中的组件的操作可以是与客户端设备106中的其他组件分开并隔离的。
虚拟机执行环境143可以包括超级管理程序149和虚拟机146。虚拟机146可以是仿真物理计算机的组件的操作的虚拟化计算机实例。虚拟机146可以由超级管理程序149实例化和执行。超级管理程序149还可以监视虚拟机146的操作并向主机管理组件139或管理服务113提供状态信息。
在一些示例中,超级管理程序149可以是通过提供容器化环境来为一个或更多个虚拟机146提供执行平台的应用程序,在该容器化环境中,只有当满足各种合规规则126时,才允许数据被发送到访客操作系统以及从访客操作系统发送数据。超级管理程序149可以获得用于虚拟机146的包(诸如磁盘映像文件),并且安装或装配该包以由此创建虚拟机146。超级管理程序149还可以呈现用于访客操作系统的用户界面并使得用户界面通过主机操作系统136内的用户接口显示。另外,超级管理程序149可以拦截从访客操作系统或访客应用程序做出的硬件调用,潜在地修改或解释这些调用,并将调用中继到主机操作系统136的内核。超级管理程序149还可以基于管理或主机操作系统136的指令和主机资源的可用性来控制和分配用于虚拟机146的系统资源。超级管理程序149还可以充当虚拟机146和虚拟机执行环境143之外的组件之间的通信接口。
在一些示例中,超级管理程序149可以以使得在虚拟机146中执行的组件看起来由主机操作系统136本地执行的模式来执行。例如,超级管理程序149可以隐藏用于虚拟机146的控制台用户界面。另外,超级管理程序149可以使虚拟机146中的组件的用户界面采用由主机操作系统136本地呈现的用户界面所使用的格式和风格呈现。
虚拟机146可以包括访客操作系统151和安装在虚拟机146中的其他组件(例如应用程序)。访客操作系统151可以管理虚拟机146的仿真硬件和软件资源。访客操作系统151还可以提供各种服务,诸如可以辅助虚拟机146内的各种虚拟化组件彼此通信的进程间通信服务。
访客管理组件153可以监视虚拟机146中的活动和设置。在一些示例中,访客管理组件153可以解析描述虚拟机146的状态和设置的数据对象,以确定虚拟机146是否合规。在其他示例中,访客管理组件153可以与管理服务113通信以确定管理服务113是否认为虚拟机146符合合规规则126。访客管理组件153还可以与客户端设备106中的各种组件通信,诸如超级管理程序149和主机管理组件139。
如图1所示,主机管理组件139可以包括虚拟机管理服务器156,其可以包括虚拟机管理数据存储159。虚拟机管理服务器156可以被配置为可以与超级管理程序149通信的本地服务器。为此,当向虚拟机管理服务器156发送消息时,虚拟机管理服务器156可以与超级管理程序149可以使用的互联网协议(IP)地址和端口号相关联。在一些示例中,本文描述为由虚拟机管理服务器156执行的至少一些功能可替代地由超级管理程序149执行。
虚拟机管理数据存储159可以存储虚拟机包163和虚拟机配置文件(profile)166,其可以通过虚拟机管理服务器156用于超级管理程序149。虚拟机包163可以包括一个或更多个文件,超级管理程序149可以提取并执行这些文件以创建虚拟机146和虚拟机146内的组件,诸如访客操作系统151、访客管理组件153和应用程序。在一些示例中,虚拟机包163可以包括虚拟磁盘文件、配置文件、基本输入/输出系统(BIOS)文件、存储器文件和记录文件。虚拟机包163可以包括可以由超级管理程序149安装的磁盘映像。
虚拟机配置文件166可以指定用于虚拟机146的配置信息和限制条件。例如,虚拟机配置文件166可以指定虚拟机146被禁止访问附接的存储设备,诸如可以附接到客户端设备106的通用串行总线(USB)驱动器。虚拟机配置文件166的另一个示例可以指定为虚拟机146创建特定的虚拟专用网络(VPN),使得虚拟机146可以安全地与企业计算环境103进行通信。作为另一个示例,虚拟机配置文件166可以指定虚拟机146的到期日期,其可以设置虚拟机146不再被允许存在于客户端设备106中的时间。
接下来,描述联网环境100的操作的示例。以下讨论假设主机管理组件139正在客户端设备106中执行,并且客户端设备106被注册到管理服务113,使得管理服务113可以监视和管理客户端设备106中的活动。以下示例还假设虚拟机执行环境143尚未在客户端设备106中被创建。
首先,管理服务113可以提供或辅助对存储库的访问,通过存储库客户端设备106可以获得应用程序。例如,管理服务113可以创建门户,客户端设备106的用户可以通过该门户查看管理服务113已经确定为被授权供客户端设备106使用的应用程序的列表。管理服务113使得对用户可用的特定应用程序可取决于用户在企业中的角色,诸如由存储在企业数据存储119中的用户数据123所指示的职称或用户所属的业务组。例如,如果用户是企业的会计师,则管理服务113可以使会计应用程序对用户可用。
如果用户请求访问特定应用程序,则管理服务113或主机管理组件139可以确定是否需要客户端设备106使用虚拟机146来执行应用程序。管理服务113可以确定由于各种原因,需要客户端设备106使用虚拟机146来执行应用程序。例如,分配给客户端设备106的合规规则126可以指定需要用户通过虚拟机146来执行应用程序。作为另一示例,管理服务113可以确定由于应用程序与客户端设备106中的主机操作系统136不兼容,因此需要虚拟机146来执行该应用程序。管理服务113可以通过例如将该应用程序的兼容操作系统的列表与主机操作系统136进行比较来确定该应用程序是否与客户端设备106兼容,主机操作系统136可以在数据对象中指定,该数据对象由主机管理组件139生成并提供给管理服务113。
一旦管理服务113确定需要客户端设备106通过虚拟机146执行应用程序,则管理服务113可以确定兼容的虚拟机146是否已经安装在客户端设备106中。为此,管理服务113可以从主机管理组件139获得指定客户端设备106中安装的组件的数据对象。在另一示例中,管理服务113可以请求主机管理组件139提供兼容的虚拟机146是否被安装在客户端设备106中的指示。
如果虚拟机146被安装在客户端设备106中,则管理服务113可以确定虚拟机146是否与用户选择的应用程序兼容。另外,管理服务113可以确定虚拟机146是否被授权执行该应用程序。为此,管理服务113可以确定超级管理程序149的名称和版本号是否在与该应用程序兼容并被授权执行该应用程序的虚拟机146的列表中,所述超级管理程序149的名称和版本号如由指定客户端设备106中安装的组件的数据对象所指示的。
如果管理服务113确定虚拟机146未被安装在客户端设备106中,则管理服务113可以确定超级管理程序149是否已经安装在客户端设备106中。为此,管理服务113可以解析描述安装在客户端设备106中的组件的数据对象,或者管理服务113可以请求主机管理组件139提供超级管理程序149是否被安装在客户端设备106中的指示。
如果超级管理程序149被安装在客户端设备106中,则管理服务113可以确定超级管理程序149是否被授权实例化、执行和管理虚拟机146。在一些示例中,管理服务113可以确定超级管理程序149的名称和版本号是否位于被授权实例化、执行和管理虚拟机146的超级管理程序149的列表中,所述超级管理程序149的名称和版本号如由描述安装在客户端设备106中的组件的数据对象所指示的。
另外,管理服务113还可以确定超级管理程序149是否与虚拟机146兼容。为此,管理服务113可以确定超级管理程序149的名称和版本号是否位于与虚拟机146兼容的超级管理程序149的列表中,所述超级管理程序149的名称和版本号如由指定在客户端设备106中安装的组件的数据对象所指示的。
如果授权的超级管理程序149未安装在客户端设备106中,则管理服务113可以向主机管理组件139提供用于超级管理程序149的安装包。例如,管理服务113可以将安装包发送到主机管理组件139并指示主机管理组件139执行安装包。在另一个示例中,管理服务113可以指示主机管理组件139从指定的存储位置检索安装包,并且指示主机管理组件139执行安装包,从而安装超级管理程序149。
一旦超级管理程序149被安装在客户端设备106中,管理服务113可以向客户端设备106提供用户访问所请求的应用程序所需的虚拟机146。在一些示例中,管理服务113可以创建并存储各种配置的若干虚拟机包163。例如,管理服务113可以生成多个虚拟机包163,当其安装在客户端设备106中时,仿真各种计算机系统或包括各种访客操作系统151。在其他示例中,管理服务113可以响应于用户请求访问应用程序而生成用于虚拟机146的虚拟机包163。例如,如果应用程序需要特定类型的访客操作系统151和虚拟机146,则管理服务113可以生成虚拟机包163,其当由客户端设备106安装时,生成具有指定的访客操作系统151的虚拟机146。在一些示例中,虚拟机包163可以包括文件和数据,使得当虚拟机包163由超级管理程序149安装时,应用程序和访客管理组件153已经安装在虚拟机146中。
除了为客户端设备106创建或选择虚拟机包163之外,管理服务113还可以为虚拟机146生成或选择虚拟机配置文件166。如上所述,虚拟机配置文件166可以指定虚拟机146的配置信息和限制条件。管理服务113可以基于分配给客户端设备106的合规规则126来确定虚拟机配置文件166的特定限制。例如,如果合规规则126指定客户端设备106不被允许经由USB端口访问附接到客户端设备106的设备,则虚拟机配置文件166可以例如通过配置与访客操作系统151相关联的BIOS使得虚拟机146的虚拟USB端口被禁用来禁止虚拟机146经由USB端口访问附接到客户端设备106的设备。
一旦管理服务113已经为客户端设备106创建或选择了虚拟机包163和虚拟机配置文件166,管理服务113就可以将虚拟机包163和虚拟机配置文件166提供给主机管理组件139。在一个示例中,管理服务113可以将虚拟机包163和虚拟机配置文件166聚合成管理服务113可以发送至主机管理组件139的单个包。在其他示例中,管理服务113可以将虚拟机包163和虚拟机配置文件166存储在企业数据存储119中,并且指示主机管理组件139从企业数据存储119中检索虚拟机包163和虚拟机配置文件166。在主机管理组件139从企业数据存储119中检索虚拟机包163和虚拟机配置文件166的示例中,管理服务113可以向主机管理组件139提供指定虚拟机包163和虚拟机配置文件166的特定存储位置的信息。
一旦主机管理组件139获得虚拟机包163和虚拟机配置文件166,主机管理组件139就可以将虚拟机包163和虚拟机配置文件166存储在虚拟机管理服务器156的虚拟机管理数据存储159中。对于管理服务113将虚拟机包163和虚拟机配置文件166作为包(package)提供给主机管理组件139的示例,主机管理组件139可以在将虚拟机包163和虚拟机配置文件166存储在虚拟机管理数据存储159中之前提取该包。
在虚拟机包163和虚拟机配置文件166已经被存储在虚拟机管理数据存储159中之后,主机管理组件139可以指示超级管理程序149检索并安装虚拟机包163和虚拟机配置文件166。为此,主机管理组件139可以向超级管理程序149发送命令以安装虚拟机包163和虚拟机配置文件166,并且该命令可以指定虚拟机包163和虚拟机配置文件166的位置。在一些示例中,虚拟机包163和虚拟机配置文件166的位置可以被指定为IP地址和端口号。
当超级管理程序149接收到安装虚拟机包163和虚拟机配置文件166的指令时,超级管理程序149可以从虚拟机管理服务器156检索虚拟机包163和虚拟机配置文件166。然后超级管理程序149可以安装虚拟机包163,导致在虚拟机执行环境143中创建包括访客操作系统151的虚拟机146。在一些示例中,虚拟机包163可以包括磁盘映像,并且安装虚拟机包163可以包括安装或装配虚拟机包163。超级管理程序149还可以安装虚拟机配置文件166,其可以指定超级管理程序149可以违抗虚拟机146强制实施的限制。在一些示例中,虚拟机配置文件166可以安装在访客操作系统151的配置文件库中,导致访客操作系统151按照在虚拟机配置文件166中指定的配置进行操作。
在将虚拟机146安装在客户端设备106中之后,可能必须将虚拟机146与目录服务116中的域进行绑定,使得虚拟机147可以访问与企业计算环境103相关联的资源。该域可以是例如企业网络的分区,其中资源(诸如用户账户和客户端设备106)被注册到由企业计算环境103的域控制器维护的数据库中。为了将虚拟机146绑定与域进行绑定,管理服务113可以收集描述虚拟机146的信息,然后基于该信息代表虚拟机146在目录服务116中创建域对象。响应于正在创建的域对象,目录服务116的域控制器可以将域数据对象返回到管理服务113。管理服务113然后可以将域数据对象转移到虚拟机146的访客操作系统151。一旦访客操作系统151已经获得域数据对象,访客操作系统151就可以执行离线域加入函数,例如用于WINDOWS操作系统的djoin.exe命令,其中域数据对象是该函数的参数。作为结果,虚拟机146可以被绑定到目录服务116中的域。
当超级管理程序149已经完成虚拟机146的安装时,超级管理程序149可以通知主机管理组件139此任务的完成。之后,客户端设备106可以将访客管理组件153安装在虚拟机146中。注意,在一些示例中,访客管理组件153可以已经被安装在虚拟机146中,在这种情况的示例中,虚拟机包163的安装包括导致安装访客管理组件153的安装文件。
客户端设备106可以以各种方式将访客管理组件153安装在虚拟机146中。在一个示例中,主机管理组件139可以从企业数据存储119中检索访客管理组件153的安装包,然后将该安装包提供给超级管理程序149,超级管理程序149具有执行安装包的指令。在另一个示例中,主机管理组件139可以向超级管理程序149提供命令,以从企业数据存储119检索访客管理组件153的安装包。在一些示例中,该命令用于检索访客管理组件153的安装包并指定安装包的存储位置。
一旦超级管理程序149已经获得了访客管理组件153的安装包,则超级管理程序149可以将安装包提供给虚拟机146的访客操作系统151并且指示访客操作系统151安装访客管理组件153。当安装了访客管理组件153时,访客管理组件153可以向管理服务113注册虚拟机146,并从管理服务113获得虚拟机146的合规规则126。然后访客管理组件153可以基于合规规则126监视和控制虚拟机146中的活动。
在一些示例中,访客管理组件153可以通过超级管理程序149与管理服务113通信。例如,访客操作系统151可以将来自访客管理组件153的消息提供给超级管理程序149,其可以通过网络109的虚拟接口将消息路由到管理服务113。超级管理程序149可以通过虚拟接口从管理服务113接收消息,然后将所接收到的消息提供给访客操作系统151以转发给访客管理组件153。
在其他示例中,主机管理组件139可以是用于访客管理组件153和管理服务113之间的通信的接口。例如,超级管理程序149可以将来自访客管理组件153的消息路由到主机管理组件139。当接收到源自访客管理组件153的消息时,主机管理组件139可以通过网络109将该消息转发给管理服务113。当主机管理组件139从管理服务113接收到派往访客管理组件153的消息时,主机管理组件139可以将消息提供给超级管理程序149,然后超级管理程序149可以将消息转发给访客管理组件153。因此,如上所述,在各种示例中,访客管理组件153可以通过主机管理组件139与管理服务113进行通信。
如上所述,在一些示例中,虚拟机包163可以包括安装文件,当虚拟机包163被执行时,所述安装文件使得用户请求的应用程序被安装在虚拟机146中。在其他示例中,在虚拟机146已经被安装在客户端设备106中之后,所请求的应用程序可以被安装在虚拟机146中。在这些示例中,客户端设备106中的各种组件可以使应用程序安装在虚拟机146中。
在一个示例中,主机管理组件139可以从管理服务113检索该应用程序的安装文件。一旦接收到安装文件,主机管理组件139可以将该安装文件提供给超级管理程序149并且指示超级管理程序149执行该安装文件,从而将应用程序安装在虚拟机146中。在另一个示例中,主机管理组件139或管理服务113可以请求超级管理程序149从特定存储位置检索安装文件并执行该安装文件。在另一个示例中,访客管理组件153可以检索该应用程序的安装文件,并通过使访客操作系统151执行检索到的安装文件来安装该应用程序。
一旦将应用程序安装在虚拟机146中,则管理服务113可以指示超级管理程序149以使得在虚拟机146中执行的组件看起来由主机操作系统136本地执行的模式操作。例如,超级管理程序149可以隐藏虚拟机146的控制台用户界面并且使得虚拟机146中的组件的用户界面采用由主机操作系统136呈现的用户界面所使用的格式和风格呈现。以这种方式,用户可以体验和操作应用程序,就好像其由主机操作系统136本地执行一样,即使它实际上是通过虚拟机执行环境143中的仿真来执行的。
参考图2A,示出了可以由管理服务113编码并由客户端设备106呈现的用户界面203的示例。所示出的用户界面203包括应用程序的列表206,管理服务113已经将其确定为客户端设备106的用户可访问。如上所讨论的,管理服务113可以根据用户在企业中的角色使特定应用程序对用户可用。用户的角色可以由职称或用户所属的业务组来说明,其可以由存储在企业数据存储119中的用户数据123来指示。
参照图2B,示出了在客户端设备106的用户已经选择了管理服务113已经将其确定为用户通过虚拟机146可访问的应用程序之后用户界面203的示例。如上所讨论的,分配给客户端设备106的合规规则126可以指定需要用户通过虚拟机146来执行应用程序。作为另一示例,由于应用程序与客户端设备106中的主机操作系统136不兼容,因此客户端设备106可以要求虚拟机146来执行该应用程序。
响应于用户选择需要虚拟机146的应用程序,用户界面203可以提供指示该应用程序需要虚拟机146的通知209。通知209可以通知用户管理服务113正在用户的客户端设备106中发起安装虚拟机146。
参考图3A至图3B,示出了阐述联网环境100中的组件的交互的示例的序列图。图3A至图3B的序列图阐述了使得虚拟机146被安装在客户端设备106中的管理服务113的示例。
从步骤303开始,管理服务113可以生成主机管理组件139的包,其可以包括虚拟机包163和虚拟机配置文件166。在一些示例中,生成的包可以包括主机管理组件139的设备配置文件或以主机管理组件139的设备配置文件的形式被具体化。
在步骤306,管理服务113可以通知主机管理组件139管理服务113已经创建了该包并且指示主机管理组件139检索该包。在其他示例中,管理服务113可以将包推送到主机管理组件139。如步骤309所示,主机管理组件139然后可以从管理服务113检索该包。
一旦主机管理组件139检索到该包,主机管理组件139就可以从检索到的包中提取虚拟机包163和虚拟机配置文件166,如步骤313所示,并将虚拟机包163和虚拟机配置文件166存储在存在于客户端设备106中的虚拟机管理服务器156中。在步骤316,主机管理组件139可以通知超级管理程序149主机管理组件139已经获得了虚拟机包163和虚拟机配置文件166并且指示超级管理程序149从虚拟机管理服务器156检索这些资源。如上所述,主机管理组件139可以向超级管理程序149提供超级管理程序149的虚拟机管理服务器156的IP地址和端口号,以获得虚拟机包163和虚拟机配置文件166。
如步骤319所示,超级管理程序149可以从虚拟机管理服务器156检索虚拟机包163和虚拟机配置文件166。在步骤323,超级管理程序149可以安装虚拟机包,其可以导致在虚拟机执行环境143中创建虚拟机146。
另外,如步骤326所示,超级管理程序149可以安装虚拟机配置文件166。如上所述,虚拟机配置文件166可以指定虚拟机146的配置信息和限制条件。例如,虚拟机配置文件166可以指定超级管理程序149必须在指定的时间销毁虚拟机146。超级管理程序149可以通过例如删除表示虚拟机146的文件来销毁虚拟机146。
在步骤329,如图3B所示,主机管理组件139然后可以向超级管理程序149提供指令,以使得访客管理组件153被安装在虚拟机146中。如在步骤333所示,超级管理程序149然后可以将所接收到的指令提供给访客操作系统151。作为响应,访客操作系统151可以安装访客管理组件153。
一旦访客管理组件153被安装在虚拟机146中,访客管理组件153可以通知管理服务113该安装,如步骤336所示。在一些示例中,该通知可以通过超级管理程序149和主机管理组件139发送。在其他示例中,该通知可以被发送而不通过主机管理组件139中继。
当管理服务113被通知访客管理组件153的安装时,管理服务113可以向管理服务113注册该访客管理组件153。为此,管理服务113可以使用凭证(诸如用户名和密码)认证客户端设备106的用户。另外,访客操作系统151可以将访客管理组件153注册为虚拟机146的设备管理员。
如步骤339所示,管理服务113然后可以向访客管理组件153发送命令以安装应用程序。应用程序可以是客户端设备106的用户请求访问的应用程序。在一些示例中,管理服务113可以通过网络109将通知直接发送到访客管理组件153。在其他示例中,管理服务113可以将命令发送到主机管理组件139,然后主机管理组件139可以将命令转发到访客管理组件153。
如步骤343所示,在接收到安装应用程序的命令后,访客管理组件153可以检索该应用程序的安装包。为此,管理服务113可以指定访客管理组件153可以下载该安装包的存储位置。在其他示例中,主机管理组件139可以下载安装包并将该安装包提供给访客管理组件153。在替代示例中,访客操作系统151可以检索安装包。
在访客管理组件153已经获得应用程序的安装包之后,访客管理组件153可以使访客操作系统151将应用程序安装在虚拟机146中,如步骤346所示。为此,访客管理组件153可以请求访客操作系统151执行安装包,从而将该应用程序安装在虚拟机146中。例如,访客管理组件153可以将安装包提供给访客操作系统151并且指示访客操作系统151执行安装包以安装应用程序。另外,访客管理组件153可以配置所安装的应用程序。例如,访客管理组件153可以为应用程序应用配置策略和修改设置,诸如特定于应用程序的虚拟专用网络配置文件。之后,该过程可以结束。
参照图4,示出了提供管理服务113的一部分操作的示例的流程图。特别地,图4提供管理服务113生成用户界面的示例,诸如用于应用程序存储库的门户的用户界面,其识别管理服务113授权访问的应用程序。图4的流程图可以被看作描绘了在企业计算环境103中实现的方法的示例。
从步骤403开始,管理服务113可以获得认证用户的请求。认证用户的请求可以源自用户输入认证凭证的用户界面203。在步骤406,管理服务113可以基于请求确定用户是否可以被认证。用户可以基于例如用户名和密码或生物数据进行认证。如果用户不能被认证,则该过程可以行进到结束。在一些情况下,可能在用户界面203中呈现错误,指示用户不能被认证,或者用户可以启动另一个尝试来认证他或她的用户凭证。
如果用户在步骤406被认证,则该过程可以行进到步骤409,在步骤409,管理服务113可以识别与客户端设备106用户的用户数据123相关联的应用程序。在一些示例中,在用户数据123中的记录可以指定用户是特定组的成员,并且该特定组与特定应用程序的列表相关联。应用程序的列表可以包括可以在客户端设备106中安装和本地执行的应用程序,可以通过浏览器执行的应用程序以及可以通过客户端设备106中的虚拟机146经由仿真执行的应用程序。在步骤413,管理服务113可以生成列出所识别的应用程序的用户界面203。
参照图5A至图5C,示出了提供管理服务113的另一部分操作的示例的流程图。特别地,图5A至图5C提供了管理服务113的示例,其响应于确定需要虚拟机146执行应用程序而在客户端设备106中部署虚拟机146。图5A至图5C的流程图可以被视为描绘了在企业计算环境103中实现的方法的示例。
从步骤503开始,管理服务113可以获得对应用程序的用户选择。例如,用户可以选择在用户界面203识别的多个应用程序中的特定应用程序。
在步骤506,管理服务113可以确定是否需要虚拟机146来执行所选择的应用程序。例如,合规规则126可以要求在虚拟机146中执行应用程序。作为另一个示例,虚拟机146可以由于该应用程序与客户端设备106中的主机操作系统136不兼容而被需要。
如果不需要虚拟机146执行应用程序,则管理服务113可以移动到步骤509并提供对应用程序的访问。在一些示例中,管理服务113可以在提供对应用程序的访问之前确定客户端设备106符合适用的合规规则126。
如果管理服务113确定需要虚拟机146来执行应用程序,则管理服务113可以移动到步骤513并确定超级管理程序149是否安装在客户端设备106中。如果超级管理程序149未安装,则管理服务113可以命令主机管理组件139安装超级管理程序149,如步骤516所示。此后,或者如果超级管理程序149已经安装在客户端设备106中,则管理服务113可以移动到步骤519,这在图5B中示出。
如步骤519所示,管理服务113可以确定虚拟机146是否已经安装在客户端设备106中。为此,管理服务113可以解析指示客户端设备106特征的数据对象,包括安装在客户端设备106中的特定组件。在其他示例中,客户端设备106可以查询主机管理组件139以确定虚拟机146是否安装在客户端设备106中。
如果虚拟机146并未安装在客户端设备106中,则然后管理服务113可以生成包括虚拟机包163和虚拟机配置文件166的包,如步骤523所示。如上所述,虚拟机包163可以包括超级管理程序149可以提取和安装或装配以创建虚拟机146和虚拟机146内的组件(诸如访客操作系统151、访客管理组件153和应用程序)的一个或更多个文件。虚拟机配置文件166可以指定虚拟机146的配置信息和限制条件。
在步骤526,管理服务113可以将生成的包发送到客户端设备106中的主机管理组件139。然后,如步骤529所示,管理服务113可以指示主机管理组件139从发送的包中提取虚拟机包163和虚拟机配置文件166。
如步骤533所示,管理服务113可以指示超级管理程序149安装所提取的虚拟机包163和虚拟机配置文件166。安装虚拟机包163的指令可以包括安装或装配虚拟机包163的指令,其可以包括虚拟机磁盘映像。在一些示例中,可以将指令提供给主机管理组件139,并且主机管理组件139可以将指令转发给超级管理程序149。在其他示例中,管理服务113可以将指令直接发送给超级管理程序149而不使用主机管理组件139作为中介。
然后管理服务113可以移动到步骤536并指示访客操作系统151将访客管理组件153安装在虚拟机146中。在一些示例中,该指令可以被提供给主机管理组件139,并且主机管理组件139可以通过超级管理程序149将该指令转发到访客操作系统151。在其他示例中,管理服务113可以将该指令直接发送到访客操作系统151,而不需要主机管理组件139转发该指令。
如步骤539所示,管理服务113可以指示访客操作系统151安装用户选择的应用程序。为此,管理服务113可以将该应用程序的安装包连同用于执行安装包的指令一起提供给访客操作系统151。在另一个示例中,管理服务113可以向访客操作系统151提供指定位置(例如统一资源定位符和端口号)的数据,访客操作系统151可以从该数据获得安装包。在替代示例中,主机管理组件139或访客管理组件153可以为访客操作系统151提供指令以安装应用程序。在步骤539之后,该过程可以结束。
如步骤519所示,如果虚拟机146已经安装在客户端设备106中,则管理服务113可以行进到步骤543,如图5C所示。在步骤543,管理服务113可以确定是否更改安装在虚拟机执行环境143中的虚拟机配置文件166。如上所述,特定虚拟机配置文件166可以基于分配给客户端设备106的合规规则126。如果管理服务113确定不更改虚拟机配置文件166,则管理服务113可以行进到步骤549,如图所示。否则,如果管理服务113确定要更改虚拟机配置文件166,则管理服务113可以移动到步骤546,以生成更新的虚拟机配置文件并将其发送到主机管理组件139。
在步骤549,管理服务113可以识别访客管理组件153是否安装在虚拟机146中。为此,管理服务113可以解析用于虚拟机146或客户端设备106的数据对象,其识别安装在虚拟机146中的组件。在其他示例中,管理服务113可以请求主机管理组件139或访客操作系统151提供关于访客管理组件153是否存在于虚拟机146中的指示。如果访客管理组件153已经安装,则管理服务113可以行进到步骤556,如图所示。
否则,如果管理服务113识别访客管理组件153没有安装在虚拟机146中,则管理服务113可以移动到步骤553并指示访客操作系统151安装访客管理组件153。例如,除了用于访客操作系统151执行安装包的指令之外,管理服务113还可以为访客管理组件153提供安装包。在替代示例中,管理服务113可以向访客操作系统151提供访客操作系统151可以从中获得安装包的存储位置。
如步骤556所示,然后管理服务113可以指示访客操作系统151安装用户选择的应用程序。为此,管理服务113可以向访客操作系统151提供该应用程序的安装包以及执行安装包的指令。在其他示例中,管理服务113可以指定安装包的存储位置以及下载和执行安装包的指令。
在步骤559,然后管理服务113可以指示超级管理程序149以使得在虚拟机146中执行的组件看起来似乎由主机操作系统136本机地执行的模式进行操作。在一些示例中,超级管理程序149可以是VMWARE虚拟化产品,并且该指令可以是用于超级管理程序149以“统一模式(unity mode)”进行操作的指令。在其他示例中,超级管理程序149可以是PARALLELS虚拟化产品,并且管理服务113可以指示超级管理程序149以“连贯模式(coherence mode)”进行操作。响应于该指令,超级管理程序149可以隐藏用于虚拟机146的控制台用户界面,并且导致用于虚拟机146中的组件的用户界面采用由主机操作系统136呈现的用户界面所使用的格式化和样式化呈现。当超级管理程序149以该模式操作时,该应用程序对于用户看起来好像该应用程序被安装在客户端设备106中的主机操作系统136下并且由其本地执行。
参照图6,示出了提供主机管理组件139的一部分操作的示例的流程图。特别地,图6提供了主机管理组件139在客户端设备106中安装超级管理程序149的示例。图6的流程图可以被视为描绘了在客户端设备106中实现的方法的示例。
从步骤603开始,主机管理组件139可以确定主机管理组件139是否已经获得了安装超级管理程序149的命令,这可以使主机操作系统136安装超级管理程序149。管理服务113可以发送命令以将超级管理程序149安装到主机管理组件139中。如果主机管理组件139没有获得安装超级管理程序149的命令,则过程可以结束,如图所示。
如果主机管理组件139获得安装超级管理程序149的命令,则主机管理组件139可移动到步骤606并获得超级管理程序149的安装包。在一个示例中,管理服务113可以向主机管理组件139提供安装包。在另一个示例中,管理服务113可以向主机管理组件139指定安装包的存储位置,并且主机管理组件139可以从指定的存储位置检索安装包。
在主机管理组件139已经获得安装包之后,主机管理组件139可以请求主机操作系统136执行安装包,以将超级管理程序149安装在虚拟机执行环境143中,如步骤609所示。此后,该过程可以结束。
参考图7,示出了提供主机管理组件139的另一部分操作的示例的流程图。特别地,图7提供了主机管理组件139使得超级管理程序149安装虚拟机包163和虚拟机配置文件166的示例。图7的流程图可被视为描绘了在客户端设备106中实现的方法的示例。
从步骤703开始,主机管理组件139确定它是否获得了虚拟机包163和虚拟机配置文件166。在一些示例中,管理服务113可以向主机管理组件139提供作为主机管理组件139可以提取的单个包的虚拟机包163和虚拟机配置文件166。如果主机管理组件139没有获得虚拟机包163和虚拟机配置文件166,则过程可以结束,如图所示。
如果主机管理组件139确实获得了虚拟机包163和虚拟机配置文件166,则主机管理组件139可以将虚拟机包163和虚拟机配置文件166存储在虚拟机管理服务器156中,如步骤706所示。特别地,主机管理组件139可以将虚拟机包163和虚拟机配置文件166存储在虚拟机管理服务器156的虚拟机管理数据存储159中。
然后,主机管理组件139可以命令超级管理程序149安装所存储的虚拟机包163和虚拟机配置文件166,如步骤709所示。在一些示例中,该命令可以包括IP地址和端口号,其指示超级管理程序149可从中检索虚拟机包163和虚拟机配置文件166的存储位置。此后,过程可结束。
参考图8,示出了提供主机管理组件139的一部分操作的另一示例的流程图。特别地,图8提供了使得超级管理程序149安装访客管理组件153的主机管理组件139的示例。图8的流程图可以被视为描绘了在客户端设备106中实现的方法的示例。
从步骤803开始,主机管理组件139可以确定是否需要将访客管理组件153安装在虚拟机146中。在一些示例中,管理服务113可以指定需要访客管理组件153。在其他示例中,主机管理组件139可以识别合规规则126指定需要访客管理组件153。
如果不需要访客管理组件153的,则该过程可以结束。否则,如果需要访客管理组件153,则主机管理组件139可以确定访客管理组件153是否安装在虚拟机146中,如步骤806所示。为此,主机管理组件139可以解析数据对象,其指示哪些组件安装在虚拟机146中。
如果访客管理组件153已经安装,则该过程可以结束。否则,如果访客管理组件153未安装,则主机管理组件139可移至步骤809并命令访客操作系统151安装访客管理组件153。在一个示例中,主机管理组件139可向访客操作系统151提供访客管理组件153的安装包以及执行安装包的指令。在另一个示例中,主机管理组件139可以命令访客管理组件153从指定位置获得安装包。在一些示例中,可以提示用户接受使用条款并且同意让虚拟机146注册到管理服务113。
参照图9,示出了提供超级管理程序149的一部分操作的示例的流程图。特别地,图9提供了超级管理程序149安装虚拟机146的示例。图9的流程图可以被视为描绘了在客户端设备106中实现的方法的示例。
从步骤903开始,超级管理程序149可以确定它是否获得了安装虚拟机包163的命令。例如,超级管理程序149可以从主机管理组件139接收命令来安装虚拟机包163。如果超级管理程序149没有获得安装虚拟机包163的命令,则该过程可以结束。
否则,如果超级管理程序149确实获得了安装虚拟机包163的命令,则超级管理程序149可以获得指定虚拟机包163的存储位置的数据,如步骤906所示。在一些示例中,主机管理组件139可以以IP地址和端口号的形式指定存储位置。
在步骤909,超级管理程序149可以从指定位置获得虚拟机包163。然后,在步骤913,如果虚拟机包163是虚拟机映像,则超级管理程序149可以通过例如安装或装配磁盘映像来安装虚拟机包163。结果,可以在虚拟机执行环境143中创建虚拟机146。之后,该过程可以结束。
参考图10,示出了提供超级管理程序149的另一部分操作的示例的流程图。特别是,图10提供了超级管理程序149安装虚拟机配置文件166的示例。图10的流程图可以被视为描绘了在客户端设备106中实现的方法的示例。
从步骤1003开始,超级管理程序149可以确定它是否获得了安装虚拟机配置文件166的命令。例如,超级管理程序149可以从主机管理组件139接收命令来安装虚拟机配置文件166。如果超级管理程序149没有获得安装虚拟机配置文件166的命令,则该过程可以结束。
否则,如果超级管理程序149确实获得了安装虚拟机配置文件166的命令,则超级管理程序149可以获得指定虚拟机配置文件166的存储位置的数据,如步骤1006所示。在一些示例中,主机管理组件139可以以IP地址和端口号的形式指定存储位置。
在步骤1009,超级管理程序149可以从所指定的位置获得虚拟机配置文件166。然后,在步骤1013,超级管理程序149可以安装虚拟机配置文件166。此后,该过程可以结束。
参考图11,示出了提供超级管理程序149的另一部分操作的示例的流程图。特别地,图11提供了超级管理程序149在虚拟机146中安装访客管理组件153的示例。图11可以被视为描绘了在客户端设备106中实现的方法的示例。
从步骤1103开始,超级管理程序149可以确定它是否获得了安装访客管理组件153的命令。例如,超级管理程序149可以从主机管理组件139接收命令来安装访客管理组件153。如果超级管理程序149未获得安装访客管理组件153的命令,则该过程可以结束。
在步骤1106,超级管理程序149可以获取访客管理组件153的安装包。在一些示例中,主机管理组件139可以提供安装包。在其他示例中,访客管理组件153可以获得指定安装包的存储位置的数据,并且访客管理组件153可以从存储位置检索安装包。
如步骤1109所示,超级管理程序149可以将安装包提供给访客操作系统151。然后,在步骤1113,超级管理程序149可以命令访客操作系统151执行访客管理组件153的安装包。此后,该过程可以结束。
参考图12,示出了提供超级管理程序149的另一部分操作的示例的流程图。特别地,图12提供了超级管理程序149在虚拟机146中安装应用程序的示例。图12的流程图可以被看作描绘了在客户端设备106中实现的方法的示例。
从步骤1203开始,超级管理程序149可以确定它是否获得了安装应用程序的命令。例如,超级管理程序149可以从主机管理组件139接收命令以安装客户端设备106的用户已请求访问的应用程序。如果超级管理程序149没有获得安装应用程序的命令,则该过程可以结束。
在步骤1206,超级管理程序149可以获得应用程序的安装包。在一些示例中,主机管理组件139可以提供安装包。在其他示例中,访客管理组件153可以获得指定安装包的存储位置的数据,并且访客管理组件153可以从该存储位置检索安装包。
如步骤1209所示,超级管理程序149可将安装包提供给访客操作系统151。然后,在步骤1213,超级管理程序149可命令访客操作系统151执行该应用程序的安装包。之后,该过程可以结束。
上面讨论的序列图和流程图示出了本文描述的组件的实现的功能和操作的示例。本文描述的联网环境100的组件可以体现为硬件、软件或硬件和软件的组合。如果以软件体现,序列图和流程图中的每个步骤可以代表包括用于实现指定的逻辑功能的计算机指令的模块或代码的一部分。计算机指令可以包括源代码,其包括用编程语言或机器代码编写的人类可读语句,编程语言或机器代码包括可由合适的执行系统(诸如计算机系统中的处理器)识别的机器指令。如果以硬件体现,则每个步骤可以表示实现指定逻辑功能的电路或多个互连电路。
尽管上面讨论的序列图和流程图示出了特定的执行顺序,但是执行顺序可以不同于所示出的顺序。例如,可以相对于所示的顺序交换两个或更多个步骤的执行顺序。此外,连续示出的两个或更多个步骤可以同时执行或部分同时执行。此外,在一些示例中,可以跳过或省略流程图中示出的一个或更多个步骤。此外,为了增强实用性、核算、性能测量或故障排除辅助功能,可以将任意数量的计数器、状态变量、警告信号或消息添加到本文描述的逻辑流程中。
企业计算环境103和客户端设备106可以包括至少一个处理电路。这样的处理电路可以包括耦合到本地接口的一个或更多个处理器和一个或更多个存储设备。本地接口可以包括带有所附地址/控制总线的数据总线。
用于处理电路的存储设备可以存储可由处理电路的一个或更多个处理器执行的数据和组件。在一些示例中,管理服务113、目录服务116、主机操作系统136、主机管理组件139和超级管理程序149的至少部分可以存储在一个或更多个存储设备中,并且可以由一个或更多个处理器执行。此外,企业数据存储119可以位于一个或更多个存储设备中。
本文描述的组件可以以硬件、作为可由硬件执行的软件组件或作为软件和硬件的组合的形式来体现。如果体现为硬件,则本文描述的组件可以被实现为采用任何合适的硬件技术的电路或状态机。这种硬件技术包括例如微处理器,具有用于在应用一个或更多个数据信号时实现各种逻辑功能的逻辑门的分立逻辑电路,具有适当逻辑门的专用集成电路(ASIC),或可编程逻辑器件,诸如现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
此外,本文描述的包括软件或计算机指令的组件中的一个或更多个或更多个组件可体现在任何非暂时性计算机可读介质中,以供指令执行系统使用或与其结合使用,例如,计算机系统或其他系统中的处理器。这样的计算机可读介质可以包含、存储和维护由指令执行系统使用或与其结合使用的软件和计算机指令。
计算机可读介质可以包括物理介质,诸如磁的、光的、半导体或其他合适的介质。合适的计算机可读介质的示例包括固态驱动器、磁驱动器、闪存以及诸如光盘(CD)的存储盘。此外,本文描述的任何逻辑或组件可以以各种方式来实现和构造。例如,所描述的一个或更多个组件可以被实现为单个应用程序的模块或组件。此外,本文描述的一个或更多个组件可以在一个计算设备中执行或者通过使用多个计算设备来执行。
上面描述的示例仅仅是为了清楚地理解本公开的原理而阐述的实现的示例。在本质上不偏离本公开的精神和原理的情况下,可以对上述示例做出许多变化和修改。所有这些修改和变化旨在被包括在本公开的范围内。

Claims (20)

1.一种方法,包括:
获得代表用户访问应用程序的请求,所述请求是从与所述用户相关联的客户端设备获得的;
确定是否需要所述客户端设备执行虚拟机,所述虚拟机执行所述应用程序;
识别所述虚拟机是否被安装在所述客户端设备中;以及
使所述虚拟机被安装在所述客户端设备中。
2.如权利要求1所述的方法,还包括:
识别所述虚拟机的超级管理程序是否被安装在所述客户端设备中;以及
使用于所述虚拟机的所述超级管理程序被安装在所述客户端设备中。
3.如权利要求1所述的方法,还包括使访客管理组件被安装在所述虚拟机中。
4.如权利要求3所述的方法,其中使所述访客管理组件被安装在所述虚拟机中包括命令所述虚拟机的访客操作系统将所述访客管理组件安装在所述虚拟机中。
5.如权利要求4所述的方法,还包括向所述访客管理组件提供安装包。
6.如权利要求4所述的方法,还包括:
向所述访客管理组件提供安装包的存储位置;以及
向所述访客管理组件提供从所述存储位置检索所述安装包的命令。
7.如权利要求1所述的方法,还包括命令所述虚拟机的超级管理程序在所述虚拟机执行所述应用程序时以隐藏所述虚拟机的控制台的模式执行。
8.一种系统,包括:
计算设备;
存储设备,其存储可由所述计算设备执行的多个计算机指令,其中所述多个计算机指令使所述计算设备至少:
获得代表用户访问应用程序的请求,所述请求是从与所述用户相关联的客户端设备获得的;
确定是否需要所述客户端设备执行虚拟机,所述虚拟机执行所述应用程序;
识别所述虚拟机是否被安装在所述客户端设备中;以及
使所述虚拟机被安装在所述客户端设备中。
9.如权利要求8所述的系统,其中所述多个计算机指令还使所述计算设备至少:
识别所述虚拟机的超级管理程序是否被安装在所述客户端设备中;以及
使所述虚拟机的所述超级管理程序被安装在所述客户端设备中。
10.如权利要求8所述的系统,其中所述多个计算机指令还使所述计算设备至少使访客管理组件被安装在所述虚拟机中。
11.如权利要求10所述的系统,其中所述多个计算机指令还使所述计算设备至少提供将所述访客管理组件安装在所述虚拟机中的命令。
12.如权利要求11所述的系统,其中所述多个计算机指令还使所述计算设备至少向所述访客管理组件提供安装包。
13.如权利要求11所述的系统,其中所述多个计算机指令还使所述计算设备至少:
向所述访客管理组件提供安装包的存储位置;以及
向所述访客管理组件提供从所述存储位置检索所述安装包的命令。
14.如权利要求8所述的系统,其中所述多个计算机指令还使所述计算设备至少命令所述虚拟机的超级管理程序在所述虚拟机执行所述应用程序时以隐藏所述虚拟机的控制台的模式执行。
15.一种非暂时性计算机可读介质,存储可由计算设备执行的多个计算机指令,其中所述多个计算机指令使所述计算设备至少:
获得代表用户访问应用程序的请求,所述请求是从与所述用户相关联的客户端设备获得的;
确定是否需要所述客户端设备执行虚拟机,所述虚拟机执行所述应用程序;
识别所述虚拟机是否被安装在所述客户端设备中;以及
使所述虚拟机被安装在所述客户端设备中。
16.如权利要求15所述的非暂时性计算机可读介质,其中所述多个计算机指令进一步使所述计算设备至少:
识别所述虚拟机的超级管理程序是否被安装在所述客户端设备中;以及
使所述虚拟机的所述超级管理程序被安装在所述客户端设备中。
17.如权利要求15所述的非暂时性计算机可读介质,其中所述多个计算机指令进一步使所述计算设备至少使访客管理组件安装在所述虚拟机中。
18.如权利要求17所述的非暂时性计算机可读介质,其中所述多个计算机指令还使所述计算设备至少提供将所述访客管理组件安装在所述虚拟机中的命令。
19.如权利要求18所述的非暂时性计算机可读介质,其中所述多个计算机指令进一步使所述计算设备至少:
向所述访客管理组件提供安装包的存储位置;以及
向所述访客管理组件提供从所述存储位置检索所述安装包的命令。
20.如权利要求15所述的非暂时性计算机可读介质,其中所述多个计算机指令进一步使所述计算设备至少命令所述虚拟机的超级管理程序在所述虚拟机执行所述应用程序时以隐藏所述虚拟机的控制台的模式执行。
CN201780009368.6A 2016-02-09 2017-02-09 托管的虚拟机部署 Active CN108604187B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/019,193 2016-02-09
US15/019,193 US10255092B2 (en) 2016-02-09 2016-02-09 Managed virtual machine deployment
PCT/US2017/017207 WO2017139476A1 (en) 2016-02-09 2017-02-09 Managed virtual machine deployment

Publications (2)

Publication Number Publication Date
CN108604187A true CN108604187A (zh) 2018-09-28
CN108604187B CN108604187B (zh) 2022-01-21

Family

ID=59496282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780009368.6A Active CN108604187B (zh) 2016-02-09 2017-02-09 托管的虚拟机部署

Country Status (4)

Country Link
US (1) US10255092B2 (zh)
EP (1) EP3365775A4 (zh)
CN (1) CN108604187B (zh)
WO (1) WO2017139476A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161402B (zh) * 2015-04-22 2019-07-16 阿里巴巴集团控股有限公司 基于云环境的加密机密钥注入系统、方法及装置
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
JP6412276B2 (ja) * 2016-04-25 2018-10-24 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. 仮想マシン作成方法及び装置
US10445007B1 (en) * 2017-04-19 2019-10-15 Rockwell Collins, Inc. Multi-core optimized warm-start loading approach
US10552225B2 (en) * 2017-07-04 2020-02-04 Vmware, Inc. Virtual device migration or cloning based on device profiles
DE102018112364A1 (de) 2018-05-23 2019-11-28 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Bereitstellen anwendungsorientierter Software sowie Computersystem
US11201818B2 (en) 2019-04-04 2021-12-14 Cisco Technology, Inc. System and method of providing policy selection in a network
US20220350629A1 (en) * 2021-04-30 2022-11-03 Vmware, Inc. Update management for managed virtual machines

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1526096A (zh) * 2001-03-19 2004-09-01 �����ɷ� 无线设备上系统服务的动态下载和执行
US20040203690A1 (en) * 2002-03-15 2004-10-14 Sprigg Stephen A. Dynamically downloading and executing system services on a wireless device
CN1716148A (zh) * 2004-06-30 2006-01-04 微软公司 使用仿真计算环境收集操作系统许可证收益的系统和方法
US20060010433A1 (en) * 2004-06-30 2006-01-12 Microsoft Corporation Systems and methods for providing seamless software compatibility using virtual machines
US20070250833A1 (en) * 2006-04-14 2007-10-25 Microsoft Corporation Managing virtual machines with system-wide policies
US20090313620A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US20100174894A1 (en) * 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
CN102035849A (zh) * 2010-12-23 2011-04-27 华为技术有限公司 云计算中实现资源管理的方法、设备及系统
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
US20120110164A1 (en) * 2010-11-02 2012-05-03 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
CN102929685A (zh) * 2011-09-15 2013-02-13 微软公司 自动化基础架构供应
US8527982B1 (en) * 2007-01-12 2013-09-03 moka5. Inc. Auto install virtual machine monitor
CN103327108A (zh) * 2013-06-26 2013-09-25 浙江大学城市学院 一种基于云的跨平台的软件管理平台及其构建方法
CN103441986A (zh) * 2013-07-29 2013-12-11 中国航天科工集团第二研究院七〇六所 一种瘦客户端模式的数据资源安全管控方法
US20130347064A1 (en) * 2012-06-15 2013-12-26 Visa International Services Association Method and apparatus for secure application execution
US20140040997A1 (en) * 2012-07-31 2014-02-06 Ca, Inc. Self-deleting virtual machines
CN103685539A (zh) * 2013-12-23 2014-03-26 中国航天科工集团第二研究院七〇六所 一种在国产处理器平台上运行Windows系统的方法
US8886865B1 (en) * 2006-04-24 2014-11-11 Vmware, Inc. Virtual machine image management using delta trees
US20150154039A1 (en) * 2013-12-03 2015-06-04 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
US20150301850A1 (en) * 2014-04-22 2015-10-22 Samsung Electronics Co., Ltd. Apparatus and method for providing virtualization services
US20160036963A1 (en) * 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Mobile device and method of executing application based on particular zone

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7996785B2 (en) * 2004-06-30 2011-08-09 Microsoft Corporation Systems and methods for integrating application windows in a virtual machine environment
US8549513B2 (en) * 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20080184216A1 (en) * 2007-01-25 2008-07-31 Johan Muedsam Managing application software in mobile communication devices
US20090077551A1 (en) * 2007-09-18 2009-03-19 Novell, Inc. Virtual machine image builder for automated installation of fully-virtualized operating system
US20100138829A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Optimizing Configuration of a Virtual Machine Running At Least One Process
US8607224B2 (en) * 2009-05-28 2013-12-10 Yahoo! Inc. System for packaging native program extensions together with virtual machine applications
US8555377B2 (en) * 2010-04-29 2013-10-08 High Cloud Security Secure virtual machine
US9936333B2 (en) * 2010-08-10 2018-04-03 Microsoft Technology Licensing, Llc Location and contextual-based mobile application promotion and delivery
US8966020B2 (en) * 2010-11-02 2015-02-24 International Business Machines Corporation Integration of heterogeneous computing systems into a hybrid computing system
US20120311575A1 (en) * 2011-06-02 2012-12-06 Fujitsu Limited System and method for enforcing policies for virtual machines
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US8806570B2 (en) * 2011-10-11 2014-08-12 Citrix Systems, Inc. Policy-based application management
TWI478063B (zh) * 2011-11-21 2015-03-21 Inst Information Industry 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US8893261B2 (en) * 2011-11-22 2014-11-18 Vmware, Inc. Method and system for VPN isolation using network namespaces
US20130290954A1 (en) * 2012-04-30 2013-10-31 Chia-Chu Sun Dorland Service provider-hosted virtual machine instantiation by hoster user for use by end users
US8756689B2 (en) * 2012-06-29 2014-06-17 Intel Corporation Method, system, and device for securely handling virtual function driver communications with a physical function driver
US8924720B2 (en) * 2012-09-27 2014-12-30 Intel Corporation Method and system to securely migrate and provision virtual machine images and content
GB2507753A (en) * 2012-11-07 2014-05-14 Ibm Dynamic configuration of virtual appliances
GB2513535A (en) * 2012-12-14 2014-11-05 Ibm Software installer with built-in hypervisor
JP6005566B2 (ja) * 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
CN105335207B (zh) * 2014-05-29 2019-04-12 国际商业机器公司 用于管理虚拟机实例的方法和装置
US20150378763A1 (en) * 2014-06-30 2015-12-31 Vmware, Inc. Methods and apparatus to manage monitoring agents
US10693946B2 (en) * 2014-09-16 2020-06-23 Amazon Technologies, Inc. Instance backed mobile devices
US20160085765A1 (en) * 2014-09-22 2016-03-24 Amazon Technologies, Inc. Computing environment selection techniques
US9286102B1 (en) * 2014-11-05 2016-03-15 Vmware, Inc. Desktop image management for hosted hypervisor environments
JP2016103144A (ja) * 2014-11-28 2016-06-02 富士通株式会社 仮想マシン配備方法、仮想マシン配備プログラム及び仮想マシン配備システム
US10684837B2 (en) * 2015-02-25 2020-06-16 Red Hat Israel, Ltd. Repository manager
US9727324B2 (en) * 2015-05-22 2017-08-08 VMware. Inc. Application management in enterprise environments using cloud-based application recipes
CN105100191B (zh) * 2015-05-22 2018-09-21 华为技术有限公司 一种云编译实现Java应用安装的方法、装置及系统
US9720710B2 (en) * 2015-08-18 2017-08-01 Raytheon, Inc. Dynamically provisioning, managing, and executing tasks
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment

Patent Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1526096A (zh) * 2001-03-19 2004-09-01 �����ɷ� 无线设备上系统服务的动态下载和执行
US20040203690A1 (en) * 2002-03-15 2004-10-14 Sprigg Stephen A. Dynamically downloading and executing system services on a wireless device
CN1716148A (zh) * 2004-06-30 2006-01-04 微软公司 使用仿真计算环境收集操作系统许可证收益的系统和方法
US20060010433A1 (en) * 2004-06-30 2006-01-12 Microsoft Corporation Systems and methods for providing seamless software compatibility using virtual machines
US20070250833A1 (en) * 2006-04-14 2007-10-25 Microsoft Corporation Managing virtual machines with system-wide policies
US8886865B1 (en) * 2006-04-24 2014-11-11 Vmware, Inc. Virtual machine image management using delta trees
US8527982B1 (en) * 2007-01-12 2013-09-03 moka5. Inc. Auto install virtual machine monitor
US20090313620A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US20100174894A1 (en) * 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
US20120110164A1 (en) * 2010-11-02 2012-05-03 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
CN102035849A (zh) * 2010-12-23 2011-04-27 华为技术有限公司 云计算中实现资源管理的方法、设备及系统
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
CN102929685A (zh) * 2011-09-15 2013-02-13 微软公司 自动化基础架构供应
US20130347064A1 (en) * 2012-06-15 2013-12-26 Visa International Services Association Method and apparatus for secure application execution
US20140040997A1 (en) * 2012-07-31 2014-02-06 Ca, Inc. Self-deleting virtual machines
CN103327108A (zh) * 2013-06-26 2013-09-25 浙江大学城市学院 一种基于云的跨平台的软件管理平台及其构建方法
CN103441986A (zh) * 2013-07-29 2013-12-11 中国航天科工集团第二研究院七〇六所 一种瘦客户端模式的数据资源安全管控方法
US20150154039A1 (en) * 2013-12-03 2015-06-04 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
CN103685539A (zh) * 2013-12-23 2014-03-26 中国航天科工集团第二研究院七〇六所 一种在国产处理器平台上运行Windows系统的方法
US20150301850A1 (en) * 2014-04-22 2015-10-22 Samsung Electronics Co., Ltd. Apparatus and method for providing virtualization services
US9665389B2 (en) * 2014-04-22 2017-05-30 Samsung Electronics Co., Ltd. Apparatus and method for providing virtualization services
US20160036963A1 (en) * 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Mobile device and method of executing application based on particular zone

Also Published As

Publication number Publication date
CN108604187B (zh) 2022-01-21
US20170228245A1 (en) 2017-08-10
EP3365775A1 (en) 2018-08-29
EP3365775A4 (en) 2019-10-02
US10255092B2 (en) 2019-04-09
WO2017139476A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
CN108604187A (zh) 托管的虚拟机部署
US10761826B2 (en) Dynamic reconstruction of application state upon application re-launch
EP3511822A1 (en) Method and system for managing access to artifacts in a cloud computing environment
EP3053052B1 (en) Managing a number of secondary clouds by a master cloud service manager
US9063763B2 (en) Multitenant hosted virtual machine infrastructure
US8015563B2 (en) Managing virtual machines with system-wide policies
US20160132214A1 (en) Application delivery agents on virtual desktop instances
CN109478149A (zh) 混合云计算系统中的访问服务
US20090043840A1 (en) Centralized management of applications and desktop preferences without requiring configuration of clientside operating systems
US9866547B2 (en) Controlling a discovery component, within a virtual environment, that sends authenticated data to a discovery engine outside the virtual environment
US11068136B1 (en) Application fulfillment platform with automated license management mechanisms
CN113168345A (zh) 云服务的流线型安全部署
EP3488584A1 (en) Usage tracking in hybrid cloud computing systems
CN110098952A (zh) 一种服务器的管理方法和装置
CN107636667A (zh) 在设备中创建多个工作空间
CN115580616B (zh) 一种多租户架构多云平台下的云rpa系统及应用方法
US9843605B1 (en) Security compliance framework deployment
CN103825896A (zh) 中心服务器向终端部署应用的方法及终端应用部署方法
US20200089916A1 (en) Binding a hardware security module (hsm) to protected software
CN111264050B (zh) 计算资源的动态部署的受限访问接口
Hawasli azureLang: a probabilistic modeling and simulation language for cyber attacks in Microsoft Azure cloud infrastructure
AU2021103348A4 (en) BAC: BlackBoxAuthority Coordinator is a device and systems for implementing it to coordinate multiple other IoT devices. It is suitable for a wide variety of situations and applications.
Penberthy et al. Containers
Frank et al. Cloud–The Automated IT Value Chain
WO2023036937A1 (en) Encryption key hybrid deployment management

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant