CN105393219B - 用于虚拟桌面的应用市场 - Google Patents

用于虚拟桌面的应用市场 Download PDF

Info

Publication number
CN105393219B
CN105393219B CN201480024124.1A CN201480024124A CN105393219B CN 105393219 B CN105393219 B CN 105393219B CN 201480024124 A CN201480024124 A CN 201480024124A CN 105393219 B CN105393219 B CN 105393219B
Authority
CN
China
Prior art keywords
user
application program
data center
computing
computing device
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.)
Active
Application number
CN201480024124.1A
Other languages
English (en)
Other versions
CN105393219A (zh
Inventor
迪帕克·苏亚那拉亚南
尤金·迈克尔·法雷尔
大卫·埃弗拉德·布朗
史帝芬·威廉·卢什切
阿吉特·纳根德拉·帕杜科内
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105393219A publication Critical patent/CN105393219A/zh
Application granted granted Critical
Publication of CN105393219B publication Critical patent/CN105393219B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q99/00Subject matter not provided for in other groups of this subclass
    • 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
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/18Licensing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明呈现用于访问可从程序执行服务的数据中心获得的应用程序的系统和方法。与用户计算装置相关联的元数据可以用来确定所述用户计算装置是否被授权借助虚拟桌面实例来访问所述应用程序。所述应用程序的至少一部分可以由所述虚拟桌面实例来执行并提供给用户。应用程序可以由用户购买、特许或租赁。

Description

用于虚拟桌面的应用市场
相关申请
本申请要求2013年3月11日提交的且标题为“用于虚拟桌面的应用市场(APPLICATION MARKETPLACE FOR VIRTUAL DESKTOPS)”的美国申请第13/794,600号的优先权,其全部公开内容以引用的方式并入本文中。此外,本申请涉及以下申请:2013年3月11日提交的且标题为“自动化桌面布置(AUTOMATED DESKTOP PLACEMENT)”的美国申请第13/794,490号;2013年3月11日提交的且标题为“自动化数据中心选择(AUTOMATED DATACENTER SELECTION)”的美国申请第13/794,595号;以及2013年3月11日提交的且标题为“自动化数据同步(AUTOMATED DATA SYNCHRONIZATION)”的美国申请第13/794,515号。这些申请中的每个的全部公开内容以引用的方式并入本文中。
背景
公司和组织运营计算机网络,所述计算机网络使众多计算系统互相连接以便支持它们的操作。所述计算系统可位于单个地理位置中(例如,作为局部网络的一部分)或者位于多个截然不同的地理位置中(例如,经由一个或多个私人或公共中间网络来连接)。数据中心可以容纳巨大数量的互连计算系统,例如像由单个组织运营的私人数据中心和由第三方运营的公共数据中心,以便向客户提供计算资源。公共数据中心和私人数据中心可提供网络访问、电力、硬件资源(例如,计算和存储)以及针对数据中心、组织或由其他客户所拥有的硬件的安全安装设施。许多数据中心还可以组织为单个程序执行服务(PES)的一部分,所述程序执行服务可以促进PES的客户对数据中心的资源的利用。
为了促进数据中心资源的加大利用,虚拟化技术可允许单个物理计算机器托管虚拟机的一个或多个实例,所述虚拟机作为独立计算机机器向所连接的计算机用户展现并操作。利用虚拟化,单个物理计算装置可按照动态方式创建、维护或删除虚拟机。反过来,用户可从数据中心请求计算机资源并在“按需”基础上或至少在“按请求”基础上提供有变化数量的虚拟机资源。
随着数据中心的规模和范围不断扩大,预备、管控和管理数据中心的物理计算资源和虚拟计算资源的任务已经变得日益复杂。
附图简述
参考编号在全部附图中重复使用以便指示参考元件之间的一致性。提供附图用以说明本文所述的发明主题的实施方案且并不限制其范围。
图1A示出可经由通信网络向多个用户计算系统提供计算资源的程序执行服务环境的示例。
图1B示出可经由通信网络向多个用户计算系统提供计算资源的程序执行服务环境的另外示例。
图2示出应用市场的示例,在一些实施方案中,所述应用市场可包括为程序执行服务环境的一部分。
图3示出数据中心的示例,在一些实施方案中,所述数据中心可包括为程序执行服务环境的一部分。
图4A示出托管计算环境资源分配系统的示例,在一些实施方案中,所述托管计算环境资源分配系统可包括为程序执行服务环境的一部分。
图4B示出数据中心资源分配系统的示例,在一些实施方案中,所述数据中心资源分配系统可包括为数据中心的一部分。
图5示出实例的示例,在一些实施方案中,所述实例可由数据中心的数据中心计算机托管。
图6示出数据中心选择过程的示例。
图7示出延时因数计算过程的示例。
图8示出桌面布置配置过程的示例。
图9示出桌面预备过程的示例。
图10示出借助应用市场来访问应用程序的过程的示例。
图11示出文件同步系统的示例。
图12示出文件同步过程的示例。
图13示出借助通向虚拟桌面实例的现有连接的文件同步过程的示例。
详细说明
I.引言
在传统台式计算环境中,用户通常访问物理上位于用户桌子附近的台式计算机的计算资源或存储资源。所述台式计算机可连接至显示器和数据输入装置(例如,键盘和鼠标),所述显示器和数据输入装置允许用户访问可由台式计算机执行的应用程序(例如,文字处理应用程序、电子邮件应用程序等等)。膝上型计算环境总体上类似于台式计算环境,除了使用便携式膝上型计算机代替台式计算机。传统台式计算环境或膝上型计算环境的缺点包括,用户仅能访问存储在台式计算机或膝上型计算机上的应用程序而不能跨越不同计算平台来轻松共享应用程序或数据。随着许多各种各样的固定计算装置和便携式计算装置(例如,台式计算机、膝上型计算机、平板计算机、智能电话、电子书阅读器等等)的使用增多,用户可能期望在这些平台中的每个上访问相同应用程序。例如,用户可能希望使用文字处理应用程序以便在位于用户办公室中的用户台式计算机上编辑文档。用户随后可能希望在机场等待航班时在用户的膝上型计算机上继续编辑所述文档。然后,在飞机上或者在去参加会议的出租车中时,用户可能希望在智能电话上查看或编辑所述文档。在所有这些情况(或其他情况)下,用户可能希望使用相同文字处理应用程序、无缝地编辑相同文档,并在与每个计算装置交互时具有类似用户体验(经受每个装置的计算约束和物理约束)。简而言之,用户可能希望具有允许用户访问用户的应用程序和数据的“虚拟桌面”,而无论用户在何处并且无论用户那时在什么计算装置上使用。
本申请描述系统和方法的示例,依靠所述系统和方法,用户可通过使用通向程序执行服务(有时称为“云计算”服务)的连接而在许多各种各样的计算装置上访问应用程序和数据,所述程序执行服务托管应用程序和数据而不是通过用户访问存储在每个单独计算装置上的单独应用程序和数据。在各种实施形式中,所述程序执行服务可提供用户可购买或租赁应用程序以便在他们的计算装置上使用的应用市场。所述程序执行服务也可提供允许用户访问在所有用户计算装置上自动同步的数据的数据存储。现将描述各种基于云的实施形式的详细示例。
本文描述系统和方法的实施方案,用于提供对由数据中心的计算机系统托管或赋权使用的计算资源的访问权限,所述数据中心包括为程序执行服务(PES)的一部分。图1A示出PES环境100的一个示例,所述PES环境100可经由通信网络106向多个用户计算系统104提供计算资源。
PES环境100包括用于提供计算资源(如虚拟机实例)的按需访问权限的PES平台120(其可称为PES 120),所述虚拟机实例可包括虚拟桌面环境的应用和/或访问。如以下将参照图9更加详细描述的,所述计算资源可基于一组桌面布置规则和/或一组计算资源布置规则来启动或以其他方式实例化。
PES平台120可在永久性或按需基础上提供用于执行应用程序的计算资源。由PES平台120提供的计算资源可包括各种类型的资源,如数据处理资源、数据存储资源、数据通信资源、应用资源、文件管理资源、用户认证资源、虚拟桌面资源等等。尽管并不受限于此,但是虚拟桌面资源仍可包括用于与文件和/或应用程序交互的界面,所述文件和/或应用程序存储在PES平台120上和/或由PES平台120托管,正如与存储在用户计算系统104上和/或由用户计算系统104托管的情形相反的,其中用户计算系统104用来与PES平台120通信。所述虚拟桌面资源可与操作系统相关联(或模仿操作系统)。例如,可存在可配置来执行Windows应用程序的Windows虚拟桌面。所述虚拟桌面可使得用户能够访问由PES平台提供的服务,例如像应用程序、文件管理器和/或文件存储。
在一些情况下,虚拟桌面可以是与或可以看上去与用户计算系统104的桌面完全一样的。例如,虚拟桌面可提供对经由PES平台120而利用的应用资源的访问权限,并可提供文件管理能力以便经由图形界面来管理存储在PES平台120处的文件。在一些情况下,虚拟桌面可被配置来提供单个资源(如应用程序)的访问权限。在一些情况下,虚拟桌面是数据中心102的计算系统上可访问的图形容器。这个容器可流动传送至用户计算系统104并可与文件管理器和文件存储相关联。此外,在一些情况下,虚拟桌面可以是用户计算系统104上的用户计算系统104上可访问的应用程序。在其他情况下,虚拟桌面可通过建立与数据中心102的计算系统的通信来访问,所述数据中心102可将用于虚拟桌面的图形界面流动传送至用户计算系统104。尽管虚拟桌面通常不经由浏览器来访问,但是在一些情况下,通向虚拟桌面的图形界面也可经由网络浏览器来呈现。
每种类型的计算资源可以是通用的,或者可以利用于一些特定配置中。例如,数据处理资源可用作虚拟机实例。在一些情况下,计算资源可以是具有配置有操作系统的虚拟机的计算节点。所述计算节点可在物理计算装置(如服务器)上实施。所述实例可被配置来执行应用程序,包括网络服务器、应用服务器、媒体服务器、数据库服务器等等。数据存储资源可包括文件存储装置、区块存储装置等等。应用资源可包括所租赁的或所购买的应用程序。此外,应用资源可包括在执行期间由PES平台120托管的和/或在执行期间暂时性或永久性地流动传送至用户计算系统104的应用程序。
每种类型或每种配置的计算资源可以具有不同大小,如大型资源,其由许多处理器、大量存储器和/或较大存储容量组成,以及小型资源,其由较少处理器、更少量的存储器和/或更小的存储容量组成。例如,客户可选择分配许多如网络服务器的小型处理资源和/或如数据库服务器的一个大型处理资源。
PES平台120包括托管计算环境114,所述托管计算环境114包括许多数据中心102A至102N(其在本文中可单数地称为“一个数据中心102”或复数地称为“多个数据中心102”),所述数据中心102A至102N向用户或客户提供上文所述计算资源的访问权限。在2011年1月4日发布的且标题为“配置计算节点之间的通信(Configuring Communications BetweenComputing Nodes)”的美国专利第7,865,586号中给出了托管计算环境和数据中心的另外示例,所述专利的全部内容在此以引用的方式并入本文中。在一些实例中,托管计算环境也可称为云计算环境。
尽管示出四个数据中心102,但是PES平台120也可包括任何数量的数据中心,如一个数据中心、十个数据中心或五十个数据中心。此外,尽管概念性地示出数据中心102作为单个托管计算环境114的一部分,但是数据中心102也可位于地理上完全不同的位置中。例如,数据中心102A可位于地理区域122A内,数据中心102B和数据中心102C可位于地理区域122B内,并且数据中心102N可位于图1A中未示出的又一个地理区域内。如下文将详细描述的,地里区域122A、地理区域122B可位于不同的市、县或州中或者甚至不同的国家中。
数据中心102是用以容纳并操作计算机系统和关联部件的设施。例如,数据中心102通常包括冗余和备用电力、通信、冷却以及安全系统。下文将参照图3来描述用于数据中心102的一个说明性配置,所述数据中心102实施本文所公开的概念和技术以便向用户提供各种计算资源的访问权限。
PES平台120的客户和其他用户可访问由数据中心102在网络106上提供的计算资源。网络106可包括任何类型的有线或无线网络,所述网络包括广域网络(WAN)、局域网络(LAN)、细胞网络等等。此外,在一些情况下,网络106可包括互联网。此外,在一些情况下,网络106可包括将数据中心102连接至远程客户或用户的任何其他已知网络拓扑。还应了解的是,也可利用此类网络的组合。
如图1A中所示出的,客户或用户可经由一个或多个用户计算系统104A至104C(其在本文中可单数地称为“一个用户计算系统104”或复数地称为“多个用户计算系统104”)与PES平台120通信。尽管示出三个用户计算系统104,但是PES环境100可包括任何数量的用户计算系统104。此外,用户计算系统104可包括可由用户利用来访问PES平台120的任何类型计算系统。例如,用户计算系统104可以是服务器计算机、台式或膝上型个人计算机、平板计算机、无线电话(例如,智能电话)、个人数字助理(PDA)、电子书阅读器(例如,电子阅读器)、游戏机、机顶盒或能够访问PES平台120的任何其他计算装置。
用户计算系统104中的每个可位于一个或多个完全不同的地理区域122A至122B中。例如,如图所示,用户计算系统104A可位于地理区域122A中,并且用户计算系统104B和用户计算系统104C可位于地理区域122B中。作为另一示例,计算系统104中的每个可位于其自己的地理区域122中或位于同一地理区域122中。
每个地理区域122可具有变化的大小。例如,地理区域122可以是住宅或建筑物(例如,商务场所、公司总部或机场)。作为第二示例,地理区域122可以是地理面积,如平方英里。在一些情况下,地理区域122可基于地缘政治边界。例如,地理区域122A可以是市、县、州或国家,并且地理区域122B可以是另一市、县、州或国家。在一些情形中,地理区域122可至少部分地基于组网设备来界定。例如,地理区域122A可基于处在地理区域122A中的路由器(未图示)的范围来界定。
用户计算系统104可经由网络106来与PES平台120或其数据中心102通信。与数据中心102通信可包括与数据中心102的计算机系统通信。例如,用户计算系统104可访问数据中心计算系统上托管的虚拟桌面或应用程序。许多连接协议可用来访问数据中心计算系统。例如,用户计算系统104可使用基于远程桌面协议(RDP)的连接或基于用户数据报协议(UDP)的连接来与数据中心处的计算机系统通信。此外,用户计算系统104可使用任何用于访问或流动传送另一机器所托管的应用程序的协议,而访问数据中心处所托管的应用实例。例如,用户计算系统104可通过使用应用虚拟化或应用流软件(如App-V(可从位于美国华盛顿州雷德蒙德市的微软公司购得)或ThinApp(可从位于美国加州帕罗奥多的VMware公司购得))来访问数据中心计算机上托管的应用程序。
A.数据中心选择
如先前提到的,用户计算系统104可访问PES平台120以便获取各种计算资源的访问权限。通常,与PES平台120的通信是通过与单个数据中心102通信而发生。尽管在一些情况下用户计算系统104可与多个数据中心102通信。为了简化论述,并且除非另有说明,本文所述的示例将假设用户计算系统104在给定的时间点上与单个数据中心102通信。然而,在不同的时间点上,用户计算系统104可与不同数据中心102通信,尤其是当用户计算系统104已经移动至不同地理区域122或正尝试访问不同计算资源时。
在一些情况下,用户可选择与之通信的数据中心102。由用户选择的数据中心102可能经常是次优的。例如,由用户选择的数据中心102可能不提供最低延时连接。此外,由用户选择的数据中心102可能不包括用户期望访问的一个或多个计算资源。
本文描述系统和方法的实施方案,用于自动选择数据中心102,所述数据中心102可在提供减少或最小延时的连接上与用户计算系统104通信。在一些情况下,所述连接的延时相比于给定时间点上与其他数据中心的连接而言可能不是减少或最小的,但可在一段时间内是减少或最小的。此外,在一些情形中,所选择的数据中心102可能不提供绝对最小延时连接,但可提供低于延时阈值水平的延时连接。在一些情况下,所述系统可基于一个或多个延时因数的计算来选择所述数据中心,所述延时因数至少部分地与处于数据中心与用户计算系统之间的通信信道的延时相互关联。此外,所选择的数据中心102可从一组数据中心102识别,所述组数据中心102包括用户已经识别为期望访问的所述一个或多个计算资源。
在某些实施方案中,可通过测量与用户计算系统104和来自托管计算环境114的数据中心102中的一个或多个之间的连接相关联的许多延时因数,而选择数据中心102。例如,可基于数据中心102与用户计算系统104之间的地理距离来选择数据中心102。下文参照图6和图7进一步描述选择数据中心102。
B.桌面实例布置
与数据中心102通信可包括与提供计算资源(如应用程序和虚拟桌面)访问权限的一个或多个数据中心计算机通信。在一些情况下,使用数据中心102来向许多用户(例如,员工或客户)提供计算资源的实体可能期望指定如何在数据中心102处分布计算资源的规则。例如,当数据中心102的计算机系统掉线时,提供经纪服务的实体可能想要减少所影响的员工(或客户)的数量。同样地,所述实体可能想要将处理交易的员工分布在许多计算机系统当中,而不是将整个部门聚集在一个或两个数据中心102计算机系统中。
本公开的实施方案使得用户(例如,管理员)能够为雇用用户或与用户相关联的实体提供数据中心102处计算资源(例如,虚拟桌面)的布置或配置规则。数据中心102可使用布置规则来选择数据中心计算机系统,以便为用户托管计算资源。例如,数据中心102可确定用户是工程公司的会计部门的成员。基于管理员在工程公司指定的规则,数据中心102可选择并未托管公司会计部门的其他成员的数据中心计算机。此外,数据中心102可确保为会计部门员工所创建的虚拟桌面预先配置有会计部门员工执行其工作职能所需要的应用程序。
C.应用访问
程序执行服务(PES)的用户可在通过应用市场得到的各种应用程序和操作系统当中进行选择。用户可搜索其想要在其虚拟桌面实例上使用的操作系统和应用程序。PES平台120可配置所述应用程序以便可从运行用户所选择的操作系统的虚拟桌面实例来执行。例如,用户可选择在其虚拟桌面实例上安装Apple MAC OS。用户也可以选择在其虚拟桌面实例中包括Microsoft PowerPoint软件。用户最初可在家中从用户的膝上型计算机访问PowerPoint软件。用户随后可行进至另一个城市,在所述城市中用户想要使用与PES平台120上的虚拟桌面实例的连接,而在用户的宾馆中从用户的膝上型计算机来访问相同的软件和操作系统。PES平台120可检查与用户以及用户的膝上型计算机相关联的元数据,并确定授权用户来访问所述程序。
用户随后可行进至商务会议并从用户的平板装置进行演示。PES平台120可检查与用户以及用户的平板装置相关联的元数据,并确定授权用户从用户的平板装置来访问PES平台120上的虚拟桌面实例上的PowerPoint软件。
D.云文件夹同步
很多人具有一个以上计算装置。用户可能想要从许多不同装置(如台式计算机、服务器计算机、平板装置、智能电话等等)来访问远程存储在PES平台120上的文件。尽管用户可访问这些装置上的文件,但是在一些实施方案中,安全和访问等级设置可被配置成仅允许用户在某些装置上同步文件。一旦文件被允许在计算装置上同步,那么从其他计算装置或在虚拟桌面实例上对所述文件做出的所有变化便可自动地同步至计算装置。在一些情形中,文件可被配置成可在计算装置上访问而无论网络连接性如何。
例如,用户可在其办公室中具有台式PC、平板装置和智能电话,它们全部被配置成访问存储在PES平台120上的文件。用户可通过PES平台120上托管的虚拟桌面实例来操作其台式PC上的Microsoft 文档。在虚拟桌面实例上编辑Microsoft Word文档之后,用户可关闭其办公室中他的台式PC。用户可能到达机场并期望编辑相同Microsoft Word文档。
可能在用户的各种计算装置之间存在许多同步点。设想下述说明性实例,其中用户Bob具有虚拟桌面实例Foo。由Bob使用虚拟桌面实例Foo修改的文件可与Bob的计算装置中的一个(例如,计算装置0)同步。由Bob使用虚拟桌面实例Foo在其计算装置0上修改的文件也可与PES同步,从而使得PES将所修改文件的复本存储在Bob可访问的文件储存器(例如,可由虚拟桌面Foo访问的文件夹Foo)中。用户Bob随后可选择访问PES所存储的文件中的一个或多个,但使用第二计算装置,例如,计算装置1。计算装置1可访问所述文件(例如,从PES上的文件夹Foo),从而使得Bob可使用计算装置1上的虚拟桌面实例Foo而继续在计算装置1上操作并修改所述文件。PES可在PES中的文件储存器与计算装置1上的本地储存器之间同步文件。因此,存储在PES中的文件可与Bob的计算装置0和计算装置1同步。因此,计算装置0或计算装置1中的一者或两者上的文档的变化可与PES并与虚拟桌面实例Foo同步。此外,如果通向PES的网络连接性丢失或需要本地访问,那么用户Bob便具有计算装置0和计算装置1两者上的文件的访问权限。
II.示例性程序执行服务环境
图1B示出可经由通信网络106向多个用户计算系统104提供计算资源的程序执行服务环境100的另外示例。除了图1A中所示的部件之外,程序执行服务环境100可包括经由网络106来与PES平台120通信的一个或多个提供商计算系统108。
提供商计算系统108的用户可经由网络130将用于特定类型功能性的服务图像提交给应用市场130,所述应用市场130包括为PES平台120的一部分并在下文参照图2更加详细地进行描述。服务图像可包括应用程序、虚拟桌面配置或可经由应用市场130得到的任何其他类型计算资源的图像。应用市场130可制作所提交的服务图像和提交给所述市场的其他服务图像,所述图像对于用户计算系统104的用户而言是可用的。因此,利用用户计算系统104的用户可浏览从应用市场130得到的服务图像,获得所期望的服务图像,并在用户计算系统104处或在数据中心102的计算机系统中启动所获得的服务图像,正如下文将参照图10所进一步描述的。
在一些情况下,提供商计算系统108的用户可隶属于实体,所述实体隶属于PES平台120。在其他情况下,提供商计算系统108的用户可以是不隶属于PES平台的第三方。在所获得的服务图像是由第三方提供商提交给电子服务图像市场100的情况下,可以在由所述第三方提供商操作、维护、提供或者以其他方式与其相关联的提供商托管计算环境110中启动所获得的服务图像。提供商托管计算环境110可包括一个或多个物理计算机系统,并且在一些情况下,其自身可为PES平台。
PES平台120还可包括托管计算环境资源分配系统140,所述托管计算环境资源分配系统140可包括可促进从托管计算环境114选择数据中心102的任何系统。托管计算环境资源分配系统140可基于许多因素来选择数据中心102,所述因素包括数据中心102与用户计算系统104之间的连接的预期延时以及数据中心102处的可用计算资源。
为了促进选择数据中心102,在一些情况下,托管计算环境资源分配系统140可从共同资源库112来访问与数据中心102相关联的元数据。这个元数据可以包括可与数据中心102相关联的任何信息。例如,所述元数据可包括数据中心的102位置、数据中心102处的可用计算资源、针对数据中心102与各种地理区域122之间的连接的延时信息、对数据中心102具有访问权限的实体的身份、用于确定用户或关联实体是否被授权来访问数据中心102的访问规则等等。
在一些情形中,用户可能想要在用户计算系统104与数据中心102之间同步数据。此外,如果用户由于(例如)切换地理位置而因此访问新的数据中心102,那么其可能必须在数据中心102之间同步数据。在此类情况下,PES平台120可使用文件同步系统170来促进数据同步。下文将参照图11更加详细地描述文件同步系统170。
尽管示出为PES平台120的一部分,但是在一些情形中,托管计算环境资源分配系统140和应用市场130中的一个或多个可与PES平台120分离。此外,在一些情况下,托管计算环境资源分配系统140和应用市场中的一个或多个可包括为托管计算环境114的一部分。此外,在一些情况下,共同资源库112可包括为托管计算环境114的一部分。
III.示例性电子服务图像市场
图2示出应用市场130的示例,在一些实施方案中,所述应用市场130可包括为程序执行服务环境100的一部分。如之前提到的,应用市场可使得服务图像对用户而言是可用的。这些服务图像可包括应用程序、虚拟桌面以及可由与PES平台120相关联的实体或第三方实体提供的其他计算资源。
在示出的实施方案中,应用市场130被示出为可包括几个系统的计算机环境,所述系统包括电子目录216、市场界面212、应用资源库220、计费系统218和使用监控系统214。在一些情况下,应用市场130的系统可以是单个计算系统的一部分。在其他情况下,应用市场130的系统的至少一些可分布在多个计算机系统上。在此类情况下,计算机系统可使用一个或多个网络(如网络106等等)进行互连。下文将更加详细地描述应用市场130的系统中的每个系统。然而,应用市场130可具有比图2中所示出的更少或更多数量的部件。另外,应用市场130可包括各种网络服务或网页服务和/或端对端网络配置。因此,图2中的应用市场130的描述应被视为说明性的而不是对本公开的限制。
市场界面212促进第三方提供商所做的网络提交以及用户或客户在应用市场130中对服务图像的浏览和获得。因此,利用提供商计算系统108的提供商或其他用户可经由市场界面212向应用市场130提交一个或多个服务图像。随后,可将所提交的服务图像纳入电子目录216中。用于提交服务图像(如应用程序)的实施方案或过程在2011年9月29日提交的且标题为“托管服务图像的电子市场(Electronic Marketplace for Hosted ServiceImages)”的美国申请第13/248,227号中更加详细地加以描述,所述申请以引用方式整体并入本文中。
电子目录216包括与从多个提供商得到的服务图像和通过应用市场100的运营商得到的服务图像有关的信息,所述运营商可以与PES平台130的运营商是相同的运营商。因此,市场系统212可获取用于由多个提供商和所述市场提供的服务图像的服务图像信息,并且使得服务图像可用于来自单个网络资源(如网页)的客户。客户随后可从应用市场获取服务图像,并在利用服务图像市场布置的单个交互或顺序中或者作为与PES平台120的多个交互的一部分而在托管计算环境114或其数据中心102中启动所述服务图像。在不背离本公开范围的情况下,电子目录216可以是包含关于项目(如商品和服务)和服务图像(如应用程序和虚拟桌面)两者的信息的目录,或者可以是单独的目录,其中一个目录包含关于项目的信息并且另一个目录包含关于服务图像的信息。
说明性地,市场界面212可以生成一个或多个用户界面,通过所述用户界面,客户可利用用户计算系统104来浏览服务图像(例如,应用程序或虚拟桌面)、提交用于匹配服务图像的查询并查看关于特定服务图像的信息和细节。
在客户从应用市场130选择所期望的服务图像之后,市场界面212可促进服务图像的配置和获得并引起数据中心102处的计算机系统上的服务图像的启动。在这方面,市场界面212可接收来自用户计算系统104的付款信息,以及在一些情况下,指定服务图像应如何在数据中心102处的计算机系统上实施的信息。在一些实施方案中,客户可选择特定数据中心102以便托管所选择的服务图像。
一旦服务图像启动并在数据中心102处的计算机系统上运行,应用市场130便可经由使用监控系统214来监控服务图像提供的功能性或服务的使用。此外,应用市场130可经由计费系统218相应地对客户计费和/或向服务图像提供商付款。计费系统218可经由与市场系统212的交互来接收并提供付款信息。在一些实施方案中,计费系统218可替代地经由其他过程(如经由额外服务器、经由电话交互或其他机制)来接收并提供付款信息。此外,应用市场130可以向客户提供工具来对服务图像的配置进行管理、监控、修改等。
服务图像可存储在应用资源库220处。当用户购买、租赁、许可或获取对服务图像(如应用程序或预先配置的虚拟桌面)的访问权限时,应用市场130可访问应用资源库以便获取服务图像的复本并可将它安装在已经使用本文所述的方法选择的数据中心102处的计算机系统上。
在一些实施方案中,应用程序的提供商可向应用市场130提供限制所提供应用程序的部署或购买的规则。例如,提供商可对与提供商位于同一国家的数据中心102限制应用程序的部署。提供商可指定地域规则以便确保符合提供商国家的出口限制法律。作为另一个示例,提供商可对与提供商相关联的实体已经购买访问权限的数据中心102限制应用程序的部署。例如,如果应用程序仅针对员工使用来开发,那么提供商可指定应用程序应限于员工可访问的数据中心102。
IV.示例性数据中心
图3示出数据中心102的示例,在一些实施方案中,所述数据中心102可包括为程序执行服务环境100的一部分。如之前所述的,数据中心102可以是托管计算环境114的一部分并可包括结合应用市场130或第三方提供商来托管的快速预备和释放计算资源的集合。所述计算资源可包括彼此通信的许多计算、组网和存储装置。在一些实施方案中,计算装置可对应于物理计算装置(例如,数据中心计算机302)。在其他实施方案中,计算装置可对应于由一个或多个物理计算装置实施的虚拟机实例(例如,实例306)。在又一些其他实施方案中,计算装置可对应于虚拟计算装置和物理计算装置两者。
图3中所示的示例性数据中心102包括用于提供执行应用程序的计算资源的几个数据中心计算机302A至302N(其在本文中可单数地称为“一个数据中心计算机302”或复数地称为“多个数据中心计算机302”)。数据中心计算机302可以是任何类型的计算装置,所述计算装置包括适当地配置而用于提供上文所述计算资源的客户端计算机系统和塔式或机架安装式服务器计算机。例如,在一个实施形式中,数据中心计算机302被配置成提供计算资源的实例306A至306N。
在一个实施方案中,实例306A至306N(其在本文中可单数地称为“一个实例306”或复数地称为“多个实例306”)是虚拟机实例。在某些实施方案中,实例306可基于本文所述的、与PES平台120相关联的实体或第三方实体所提供的服务图像,或者可以是所述服务图像的实例。虚拟机实例可包括像物理机一样执行程序的机器(例如,计算机)的软件实施形式的实例。在虚拟机实例的示例中,数据中心计算机302中的每个可被配置成执行能够执行所述实例的实例管理器308。实例管理器308可以(例如)是管理程序或被配置成使得能够在单个数据中心计算机302上执行多个实例306的另一种类型程序。实例306中的每个可被配置成执行应用程序的全部或一部分。此外,在一些情况下,实例306可被配置成提供虚拟桌面环境的访问权限。
应了解,尽管本文所公开的实施方案主要是在虚拟机实例的情境中描述的,但是其他类型的实例也可与本文所公开的概念和技术一起使用。例如,本文所公开的技术可与存储资源的实例、数据通信资源的实例以及其他类型的资源一起使用。本文所公开的实施方案也可直接在计算机系统上执行应用程序的全部或一部分,而不利用虚拟机实例。
图3中所示的数据中心102也包括可执行软件或硬件部件来管理数据中心102的操作的管理计算机304,在一些情况下,所述数据中心102包括数据中心计算机302和/或实例306。详细而言,管理计算机304可包括管理部件310。在一些情况下,PES平台120的用户(例如,管理员)可利用用户计算系统104来访问管理部件310以便配置数据中心102和客户购买的实例206的操作的各种方面。在一些情况下,客户(例如,企业客户的管理员)可访问管理部件310以便配置数据中心102的购买或租赁部分。例如,客户可购买实例并对所述实例的配置做出改变,或者如下文进一步描述的,向额外用户(例如,企业客户的额外员工)供给用于在数据中心102处分配计算机资源的布置规则。客户也可指定关于所购买的实例如何响应于需求而定标的设置。此外,客户也可提供请求来启动管理部件310的实例。在一些实施方案中,用户可能不具有关于数据中心102的功能性和/或管理的知识。在此类情况下,数据中心102可使用(例如)管理部件310来自动地配置数据中心102的计算资源以供用户使用。
管理计算机304还可以包括可基于PES平台108的用户(例如,管理员)所定义的规则来定标实例306的自动定标部件312。例如,在一个实施方案中,自动定标部件312允许用户指定用于确定新实例应何时实例化的放大规则以及用于确定现有实例应何时终止的缩小规则。在一些实施方案中,放大规则和缩小规则可基于数据中心102的利用、服务品质保证、一天中的时间和/或提供有数据中心102的访问权限的客户,等等。
在一些情况下,自动定标部件312可在单个管理计算机304上执行或者在数据中心102和/或PES平台120中的多个计算机上并行地执行。另外,自动定标部件312可由在PES平台120中的不同数据中心302或其他计算装置上执行的许多子部件组成。自动定标部件312可实施为软件、硬件或两者的组合。在一些情况下,自动定标部件312可(例如)在内部管理网络上促进在PES平台120中监控可用计算资源。另外或作为替代地,可用计算资源可由数据中心资源分配系统330监控。
管理计算机304也可包括部署部件314以便辅助计算资源的新实例306的部署。部署部件314可从用户或系统接受包括描述新实例306应如何配置的数据的配置。例如,假设新实例306A用于虚拟桌面,所述配置可指定应安装有新实例306A或可由实例306A的虚拟桌面访问的一个或多个应用程序。
此外,部署部件314可提供将为配置新实例306而执行的脚本和/或其他类型的代码,可提供指定应用高速缓存器应如何准备的高速缓存器预热逻辑和可促进创建实例306的其他类型信息。在一些情况下,所述配置、高速缓存器预热逻辑和其他信息可由用户利用管理部件310来指定或通过直接将此信息提供给部署部件314来指定。也可利用其他机制来配置部署部件314的操作。
在一些实施方案中,数据中心102包括数据中心资源分配系统330,所述数据中心资源分配系统330可包括促进选择数据中心计算机302以便向用户提供计算资源访问权限的任何系统。数据中心资源分配系统330可基于许多因素来选择数据中心计算机302,所述因素包括数据中心计算机302的负载、数据中心计算机302上的可用资源、所请求的计算资源的类型、与请求用户相关联的元数据等等。在一些情况下,数据中心资源分配系统330可基于由与关联于用户实体相关联的用户和/或管理员提供的实例或计算资源布置规则来选择数据中心。这些计算资源布置规则可以包括可用来确定在何处布置实例306以便使得用户能够访问计算资源的任何因素。下文将参照图8和图9更加详细地论述计算资源布置规则和数据中心计算机的选择。
计算资源布置规则和/或与数据中心102相关联的属性或元数据可存储在数据中心资源库332处。与数据中心102相关联的属性或元数据可以包括可与数据中心相关联的任何信息。例如,所述元数据可包括与数据中心102处的可用物理资源有关的信息、数据中心102处的可用软件资源、数据中心102的位置、被授权来访问数据中心102的用户和/或实体的身份、与数据中心102相关联的延时信息等等。
在图3中所示的示例性数据中心102中,网络306用来将数据中心计算机302A至302N、管理计算机304、数据中心资源分配系统330以及数据中心资源库332互连。网络306可包括之前已经参照网络106所描述的任何类型的网络,包括LAN。此外,网络306也可连接至图1A和图1B中所示出的网络106。应了解,图1A、图1B和图3中所示出的网络拓扑已经极大地简化,并且更多的网络和网络装置可用来将本文所公开的各种计算系统互连。适当的负载平衡装置或软件模块也可用于平衡数据中心102A至102N中的每个之间、每个数据中心102中的数据中心计算机302A至302N中的每个之间,以及由PES平台120的每个客户购买或租赁的实例306之间的负载。
应了解,图3中所述的数据中心102仅是说明性的并且可利用其他实施形式。详细而言,本文中描述为由管理部件310、自动定标部件312和部署部件314执行的功能性可由彼此执行、可由其他部件执行或者可由这些部件或其他部件的组合来执行。此外,描述为由数据中心资源分配系统330执行的功能性可由管理计算机304的一个或多个部件执行,或者反之亦然。另外,在一些情况下,数据中心资源分配系统330可包括为管理计算机304的一部分,或者反之亦然。另外地,应了解,数据中心102的各种部件可在软件、硬件或者软件和硬件的组合中实施。
V.示例性资源分配系统
图4A示出托管计算环境资源分配系统140的示例,在一些实施方案中,所述托管计算环境资源分配系统140可包括为程序执行服务环境100的一部分。如之前所述的,托管计算环境资源分配系统140可包括用于促进从托管计算环境114选择数据中心102的任何系统。托管计算环境资源分配系统140可以包括可用来帮助识别数据中心102的许多子系统。这些子系统可包括数据中心计算机容量识别模块402、实例利用模块404、延时计算模块406和应用资源识别模块408。
在使用数据中心计算机容量识别模块402的情况下,托管计算环境资源分配系统140可识别与每个数据中心102处的数据中心计算机302的容量相关的容量信息。容量可指代与数据中心计算机302相关联的物理资源,如处理器、存储器以及存储资源或软件资源,如应用程序或虚拟机容量。此外,由数据中心计算机容量识别模块402确定的信息可包括与数据中心计算机302的容量相关联的任何信息。例如,数据中心容量信息可包括由数据中心计算机302或数据中心102支持的总容量、数据中心102处所用的和/或可用的容量、数据中心102处可用的数据中心计算机302的类型,等等。
在一些实施方案中,托管计算环境资源分配系统140可通过访问数据中心资源分配系统330来识别数据中心计算机302的容量信息。另外或作为替代地,托管计算环境资源分配系统140可访问共同资源库112以便确定数据中心102的容量信息。
实例利用模块404可识别数据中心102处所利用的和/或可用的实例302的数量。在一些情况下,可由数据中心102支持的实例302的数量是无限的。在其他情况下,可由数据中心102支持的实例302的数量是基于可用的计算资源(例如,数据中心计算机302的处理器或存储器)和/或数据中心计算机302的管理员设置。类似于数据中心计算机容量识别模块,在一些情况下,实例利用模块404可访问数据中心102的数据中心资源分配系统330和共同资源库112中的一个或多个以便确定数据中心102处的实例306的利用。在一些实施方案中,实例利用模块404可包括为数据中心计算机容量识别模块402的一部分。
应用资源识别模块408可通过访问数据中心资源分配系统330和/或共同资源库112来识别数据中心102处可用的应用程序或服务图像。在一些实施方案中,特定应用程序可从数据中心102的子集进行限制。例如,应用程序提供商可能期望限制可提供应用程序访问权限的数据中心102,例如,由于成本原因或为了防止所述应用程序违反出口法律。在一些情况下,数据中心102可具有用于应用程序的有限数量许可的访问权限。在此类情况下,应用资源识别模块408可识别许可是否可用于所述应用程序。在一些实施方案中,应用资源识别模块408可包括为数据中心容量识别模块402和/或实例利用模块404的一部分。
在某些情况下,重要的是在与数据中心102的通信中具有尽可能小的延时。延时计算模块406可计算数据中心102与用户计算系统104之间的估计延时,从而优化数据中心选择以便提供最小延时。用于选择数据中心102并计算预期延时的过程在下文中将参照图6和图7进一步加以描述。
VI.示例性数据中心资源分配系统
图4B示出数据中心资源分配系统330的示例,在一些实施方案中,所述数据中心资源分配系统330可包括为数据中心102的一部分。在一些情形中,每个数据中心102可包括其自己的数据中心资源分配系统330,所述数据中心资源分配系统330可与PES平台120的托管计算环境资源分配系统140通信。
如可通过比较图4B和图4A而看出的,数据中心资源分配系统330可包括与托管计算环境资源分配系统140类似的系统。在一些实施方案中,托管计算环境资源分配系统140的系统可促进识别PES平台120内的资源的可用性,而数据中心资源分配系统330可促进识别包括数据中心资源分配系统330的特定数据中心102内的资源的可用性。
在一些情形中,数据中心资源分配系统330可包括数据中心计算机容量识别模块452、实例利用模块454、延时计算模块456和应用资源识别模块458。在一些情况下,数据中心资源分配系统330的系统可提供信息给托管计算环境资源分配系统140的对应系统以便促进托管计算环境资源分配系统140所做的确定和/或计算。
因此,例如,数据中心计算机容量识别模块452可将用于数据中心102的数据中心计算机302的容量信息提供给托管计算环境资源分配系统140的数据中心计算机容量识别模块402。同样地,实例利用模块454可将与数据中心102的实例306的利用和/或可用性有关的信息提供给托管计算环境资源分配系统140的实例利用模块404。此外,应用资源识别模块458可将与数据中心102处的可用应用程序相关的信息提供给应用资源识别模块408。
除了上文所述的系统之外,数据中心资源分配系统330也可包括延时计算模块456。延时计算模块456可识别信息以便促进延时计算模块406计算与用户计算系统104的连接的预期延时。例如,延时计算模块456可提供针对通向地理区域122B中的用户计算系统104的连接的历史延时信息。
在一些实施方案中,数据中心资源分配系统330的一些子系统可进行组合和/或是可选的。例如,在一些情况下,数据中心资源分配系统330可不包括延时计算模块456。作为第二示例,数据中心计算机容量识别模块452和实例利用模块454可进行组合。
VII.示例性桌面实例
图5示出实例500的示例,在一些实施方案中,所述实例500可由数据中心102的数据中心计算机302托管。例如,实例500可以是实例306的示例,所述实例306可经过创建而向用户提供对数据中心计算机302上通过数据中心计算机302的实例管理器308而创建的虚拟桌面的访问权限。在一些情况下,实例500可由或致使由部署部件314响应于用户的请求来创建。
一般而言,实例500包括经过实例化而向用户提供计算资源或计算节点(如虚拟桌面)访问权限的虚拟机。然而,在一些情况下,实例500可在不使用虚拟机的情况下创建于数据中心计算机302上。
在图5所示出的示例中,实例500包括桌面环境502。桌面环境502可包括表示虚拟桌面的任何类型环境。例如,所述桌面环境可包括用于与存储在PES平台120上或由PES平台120托管的文件和/或应用程序进行交互的界面。在一些情况下,桌面环境502可包括用于访问由另一个实例306包括或托管的数据和/或应用程序的快捷方式。此外,在一些情况下,桌面环境502可提供用于访问除桌面之外的文件和应用程序的额外或替代界面。例如,桌面环境502可包括文件管理器或可为文件管理器。在一些情况下,无论底层操作系统和/或硬件如何,桌面环境502都可呈现具体外观和感觉。例如,桌面环境502可被配置成模仿Windows桌面、Linux桌面或iOS桌面。在其他情况下,实例500可以是由用户选择的虚拟机计算资源的一部分。在此类情况下,桌面环境502可以是用于虚拟机计算资源的所选操作系统(例如,Windows、Linux等等)的桌面环境。
桌面环境502可包括应用访问模块504、应用市场界面506和文件访问模块508。当用户尝试经由实例500(例如,从桌面环境502上的快捷方式)访问应用程序时,应用访问模块504可向用户提供所述应用程序的访问权限。在一些情况下,应用访问模块504可获取包括用户所期望的应用程序的另一个实例的访问权限。在一些实施方案中,获取应用程序的访问权限可包括应用访问模块504确定是否授权用户来访问应用程序,并且,如果不授权,那么应用访问模块504可使用应用市场界面506来向用户提供从应用市场130购买或租赁应用程序的机会。此外,用户可使用应用市场界面506来浏览可经由应用市场130得到的应用程序或服务图像。
文件访问模块508可向用户提供不包括在实例500内的文件或数据的访问权限。例如,如果用户尝试经由桌面环境502来访问文件,那么文件访问模块508可定位所述文件,所述文件可存储在另一个实例306或另一个数据中心计算机302(如存储服务器)中。一旦文件访问模块508已经定位所述文件,它便可经由桌面环境502向用户提供文件的访问权限。如果所述文件被用户修改,那么文件访问模块508可同步所述文件,从而使得所修改的文件可由用户在相同计算装置或不同计算装置上访问。下文将参照图12和图13来描述用于同步文件的过程。
VIII.示例性数据中心选择过程
图6示出数据中心选择过程600的示例。过程600可以至少部分地由可选择供用户(例如,客户或其员工)使用的数据中心的任何系统来实施。例如,过程600可完全地或部分地由PES平台120、托管计算环境资源分配系统140、数据中心计算机容量识别模块402、实例利用模块404、延时计算模块406、应用资源识别模块408和数据中心资源分配系统330等来实施。尽管任何数量的系统可完全地或部分地实施过程600,但是为了简化论述,将参考特定系统描述过程600的部分。
在某些情况下,过程600至少部分地基于用户的计算机系统与数据中心之间的延时的测量来为用户选择最佳数据中心。有利地,在某些实施方案中,过程600可自动地执行和/或在不知悉用户的情况下执行。在其他实施方案中,用户可发起过程600。
过程600在方框602处开始,其中(例如)PES平台120从用户计算系统104(例如,用户计算系统104A)接收用以获取计算资源的访问权限的请求。所述计算请求可响应于用户命令而接收或自动地从与用户计算系统104相关联的应用程序或系统来接收。此外,所请求的计算资源可以包括可由PES平台120提供的任何类型资源。例如,计算资源可以是应用程序、虚拟桌面环境、用于数据中心或用户计算系统104处托管的应用程序的计算资源、文件存储空间或可由PES平台120提供的任何其他资源。
在方框604处,托管计算环境资源分配系统140识别用户计算系统104的地理位置。识别用户计算系统104的地理位置可包括在特定性阈值程度内识别用户计算系统104的位置。例如,方框604可包括识别特定地址、邮政编码、乡镇、县城、国家或用户计算系统104所位于的任何其他地理区域。
此外,托管计算环境资源分配系统140可使用一个或多个机制来识别或确认用户计算系统104的地理位置。例如,资源分配系统140可使用用户计算系统104的互联网协议(IP)地址来识别其位置。作为另一个示例,托管计算环境资源分配系统140可使用全球定位系统(GPS)数据来识别用户计算系统104的位置。在又一个示例中,托管计算环境资源分配系统140可查询用户计算系统104的用户以便建立其位置。
在方框606处,托管计算环境资源分配系统140确定一组数据中心102,所述组数据中心102包括在方框602处请求的、处于用户计算装置104的半径内的计算资源。托管计算环境资源分配系统140可使用数据中心计算机容量识别模块402、实例利用模块404和应用资源识别模块408中的一个或多个来促进识别包括所请求计算资源的所述组数据中心102。此外,在一些情况下,托管计算环境资源分配系统140可访问每个数据中心102的数据中心资源分配系统330,以便促进确定包括所请求计算资源的所述组数据中心102。此外,在一些情况下,托管计算环境资源分配系统140从用户被授权访问的数据中心来确定所述组数据中心102。确定数据中心102是否包括所请求的资源也可包括,基于(例如)与用户或雇用用户的实体相关联的用户概要或者一组桌面布置规则来确定数据中心102是否包括额外资源,下文将更加详细地描述所述用户概要文件桌面布置规则。例如,托管计算环境资源分配系统140可确定在与用户相关联的使用概要指示用户利用超过使用阈值量的存储资源时,每个数据中心102是否包括至少可用性阈值量的数据存储可用性。
在一些情况下,所述半径可预先定义或可由用户设置。在其他情况下,可识别包括计算资源的所有数据中心,而无论它们相对于用户计算系统104的位置如何。在一些实施方案中,在方框602处接收的请求可识别多个计算资源。在此类情况下,托管计算环境资源分配系统140识别包括所有期望计算资源的所述组数据中心102。
然而,在没有任何数据中心102包括所有期望计算资源的情况下,托管计算环境资源分配系统140可识别包括最大数量的请求计算资源的所述组数据中心102。在一些情况下,用户可识别比其他资源更重要的某些请求计算资源。在此类情况下,当识别包括所请求计算资源中的一些但不是全部的数据中心102时,托管计算环境资源分配系统140可使所述更重要的计算资源的权重更高。
尽管使用术语“半径”,但是资源分配系统140所检查的地理区域不必须是圆形的或以用户计算装置104为中心。相反,在一些情况下,所搜索的地理区域可以是任何其他几何形状,或者可基于地理区(如州或国家)的地缘政治细分。
在一些实施方案中,在方框606处识别的所述组数据中心102可基于用户的任何属性或与用户相关联的元数据来过滤。例如,数据中心的选择可基于请求资源访问权限的用户的从属关系来过滤。例如,假设用户是实体的员工,如果所述实体已经购买三个数据中心的访问权限,那么在方框606处识别的所述组数据中心102将受限于所述三个数据中心,即使额外的数据中心存在于包括用户所期望的计算资源的半径内也是如此。作为另一个示例,所识别的所述组数据中心102可基于用户购买的服务的品质来过滤。因此,用户需要无停用期的数据中心102的计算资源的恒久访问权限可购买白金等级访问权限。在此类情况下,方框606处识别的数据中心102可经过过滤来识别相比于用于满足于青铜等级访问权限的用户的数据中心102而言具有更高可靠率和更低订阅率的数据中心102。
在一些实施方案中,如果在方框606处没有识别到数据中心102,那么托管计算环境资源分配系统140可扩展搜索半径。另外或作为替代地,托管计算环境资源分配系统140可致使将计算资源从包括所述资源的数据中心复制到方框606处搜索的半径内的数据中心。在其他情况下,如果搜索半径内没有数据中心102包括所期望的计算资源,那么便可拒绝用户访问计算资源。
在一些实施方案中,方框606是可选的。例如,在一些情况下,每个数据中心102可包括相同资源和/或可位于指定半径内。作为第二示例,过程600可为所有数据中心102执行。
在方框608处,延时计算模块406为来自方框606处识别的所述组数据中心的每个数据中心102计算延时因数。所述延时因数表示数据中心102与用户计算系统104之间的通信的预期延时。此外,所述延时因数可基于各种因素,包括数据中心102与用户计算系统104之间的距离、一个或多个延时测试的结果和历史延时信息等等。在一些实施方案中,所述延时因数是基于与用户计算机系统104和/或数据中心102相关联的特定系统来计算。例如,所述延时因数可基于数据中心102处的出口计算系统(例如,在网络306处将数据中心连接至网络106的路由器或网关)与用户计算系统104之间的通信。作为第二示例,所述延时因数可基于定位在地理区域122中、与用户计算系统104通信的路由器和数据中心102处的系统之间的通信。在一些情况下,数据中心102中的至少一些的延时因数可并行地计算,从而相比于每个数据中心102的延时因数是循序计算的情况而言加快过程600的执行。下文将参照图7更加详细地论述延时因数的计算。
托管计算环境资源分配系统140在方框610处识别具有最低延时因数的数据中心102。如果一个以上数据中心102共享最低延时因数,那么托管计算环境资源分配系统140可使用平局决胜因素来选择数据中心102。所述平局决胜因素可以包括可用来相对于另一个数据中心而选择一个数据中心的任何特性。例如,平局决胜因素可基于每个数据中心102的利用率、每个数据中心102处的未分配资源、每个数据中心102至用户计算系统104的距离、具有每个数据中心102的访问权限的额外用户等等中的一个或多个。或者,托管计算环境资源分配系统140可从共享最低延时率的所述组数据中心102来随机选择数据中心102处。作为另一个替代方案,托管计算环境资源分配系统140可使用按特定顺序为每个所处理的请求来选择不同数据中心102的轮循过程。
在一些实施方案中,在方框610处选择的数据中心102可以不是具有最低延时因数的数据中心,但可以是具有最低延时因数的、满足一个或多个额外要求的数据中心102。举例而言,假设出于冗余目的,每个数据中心102被配置成分配最多90%的可用处理器资源。如果数据中心102a已经分配有90%的可用处理器资源,那么数据中心102a可能不符合选择条件,即使它与特定请求用户计算系统104的最低延时因数相关联。
在方框612处,托管计算环境114向用户计算系统104的用户授予所识别数据中心102处的计算资源的访问权限。在一些实施方案中,向用户授予数据中心102的访问权限可包括将用户的一个或多个账户与数据中心102相关联。另外或作为替代地,向用户授予数据中心102的访问权限可包括将用户计算系统104与数据中心102相关联。此外,在一些情况下,用户的每个用户计算系统104可与数据中心102相关联以便(例如)维护用户的可用数据和资源的一致性。此外,在一些情况下,授予数据中心102的访问权限可包括每次用户或相关联的用户计算系统104尝试从PES平台120访问数据或计算资源时,便自动地连接至数据中心102。
在一些实施方案中,托管计算环境资源分配系统140可使用用户计算系统104的位置来确定用于执行与过程600相关联的一个或多个操作的顺序。例如,在方框608处执行延时计算的顺序可基于用户计算系统104的位置。
IX.示例性延时因数计算过程
图7示出延时因数计算过程700的示例。过程700可以至少部分地由可为数据中心102计算延时因数的任何系统来实施。所述延时因数可包括用户计算系统104与数据中心102之间的通信的预期延时等级的测量。此外,过程700可作为过程600的一部分(例如,作为方框608的一部分)来执行。过程700可完全地或部分地(例如)由PES平台120、托管计算环境资源分配系统140、延时计算模块406、数据中心资源分配系统330和延时计算模块456等来实施。尽管任何数量的系统都可完全地或部分地实施过程700,但是为了简化论述,将参考特定系统来描述过程700的部分。
过程700在方框702处开始,其中(例如)延时计算模块406接收用户计算系统104的地理位置。所述地理位置可从托管计算环境资源分配系统140或可确定用户计算系统104的地理位置的任何系统来接收。或者,延时计算模块406可(例如)基于用户计算系统104的IP地址自行确定地理位置。在一些实施方案中,方框702可包括上文参照方框604所描述的实施方案中的一些或全部。
在方框704处,延时计算模块406接收数据中心102的识别信息。延时计算模块406在方框706处确定数据中心102的地理位置。数据中心102的地理位置可通过访问共同资源库112来确定。或者,每个数据中心102的地理位置可存储在延时计算模块406处。作为另一个替代方案,延时计算模块406可查询数据中心102以便确定其地理位置。
基于用户计算系统102和数据中心102的地理位置,延时计算模块406可在方框708处计算用户计算系统104与数据中心102之间的距离。在一些情况下,所述距离可至少部分地基于用户计算系统104与数据中心102之间的物理距离。另外或作为替代地,所述距离可至少部分地基于数据中心102与用户计算系统104之间的一个或多个网络通信路径的长度。
在方框710处,延时计算模块406可基于在方框708处计算的距离来确定第一延时数L1。在一些实施方案中,第一延时数还可至少部分地基于用户计算系统104与数据中心102之间利用的连接和/或网络硬件的类型。例如,如果数据中心102与用户计算系统104之间的路线的一半包括光纤,那么与铜线服务于所述路线的那部分的情况下相比,可确定不同的第一延时数。
延时计算模块406在方框712处执行一个或多个延时测试以便获取第二延时数L2。所述延时测试可以包括可用来获取两个计算系统之间的延时估计的任何类型网络或连接测试。例如,所述延时测试可包括ping操作、路由跟踪操作、路由跟踪6操作、跟踪操作、路径跟踪操作等等。在执行多个延时测试的实施方案中,方框712可包括汇总所述延时测试的结果(例如,求平均值、求和等等)。
在方框714处,延时计算模块406检索数据中心102与最接近用户计算系统104的网络跃点之间的历史延时信息。所述网络跃点可包括在数据中心102与用户计算系统104之间发送和/或转发通信数据包的任何网络或通信硬件(例如,路由器或网关)。最接近用户计算系统104的网络跃点可指代物理上最接近用户计算系统104的网络跃点和/或当由用户计算系统104发送至PES平台120时接收数据包的第一个网络跃点。在一些实施方案中,识别所述网络跃点可包括访问查找表和/或访问网络拓扑图来确定最接近用户计算系统104的网络跃点。所述查找表和/或网络图可存储在共同资源库112处或存储在网络106中所包括的公共可访问资源库处。
在使用历史延时信息的情况下,延时计算模块406在方框716处生成第三延时数L3。第三延时数可从历史延时信息中得出(例如,历史延时信息的平均数或时间加权平均数等等)。在方框718处,延时计算模块406基于第一延时数、第二延时数和第三延时数来为数据中心102计算延时因数D。此外,在一些情况下,每个延时数可使用(例如)凭经验确定的加权因数(例如,A1、A2和A3)加权。因此,例如,延时因数可使用下述公式1来计算。
D=A1*L1+A2*L2+A3*L3 (1)
尽管使用公式1计算的延时因数是第一延时数、第二延时数和第三延时数的加权总和,但是将延时因数基于延时数的其他数学组合也是可能的。此外,在一些情况下,延时因数可通过访问由延时数中的一个或多个或者其组合进行索引的延时因数表来确定。
在一些实施方案中,延时数中的一个或多个可从计算延时因数排除。在此类情形中,来自图7的关联方框是可选的。例如,延时因数可在没有与历史延时信息相关的第三延时数的情况下进行计算。在此类情况下,方框714和方框716是可选的。
在一些情况下,延时数或延时因数中的一个或多个至少部分地和数据中心102与用户计算系统104之间的通信信道的延时相互关联。因此,在一些实施方案中,过程7和过程6可用来选择相比于用户计算系统104与其他数据中心102之间的通信信道而言预期具有最小延时的数据中心102。另外或作为替代地,过程7和过程6可用来选择在与用户计算装置104通信时预期具有低于阈值级别的延时的数据中心102。
X.示例性桌面布置配置过程
图8示出桌面布置配置过程800的示例。过程800可至少部分由可基于针对实例(例如,虚拟桌面、应用程序等等)分配的一组规则(例如,桌面布置规则)来配置PES平台120和/或其一个或多个数据中心102的任何系统来实施。例如,过程800可完全地或部分地由PES平台120、托管计算环境114、托管计算环境资源分配系统140、数据中心资源分配系统330、管理计算机304、管理部件310和部署部件314等来实施。尽管任何数量的系统都可完全地或部分地实施过程800,但是为了简化论述,将参考特定系统来描述过程800的部分。
尽管是参照虚拟桌面和桌面布置规则来描述图8,但是过程800并不受限于此。过程800可用来基于任何类型的计算资源布置规则而配置数据中心102,所述计算资源布置规则用于确定如何分配任何类型的计算资源,包括虚拟桌面、应用程序、处理器利用、数据存储等等。
过程800在方框802处开始,其中(例如)托管计算环境114经由(例如)用户计算系统104接收来自用户的用户认证信息。在一些情况下,托管计算环境114的特定数据中心102接收所述认证信息。尽管并非所有情况下都是必要的,但是通常用户相比于至少一些其他用户而言与升级权限相关联(例如,管理员或其他超级用户)。
在方框804处,托管计算环境114接收来自用户的桌面布置规则。所述桌面布置规则可与特定数据中心102相关联或与多个数据中心相关联。例如,桌面布置规则可与用户被授权访问的所有数据中心相关联。作为第二示例,桌面布置规则可与特定群组的用户(例如,实体的开发团队或市场营销团队)被授权访问的所有数据中心相关联。
此外,桌面布置规则可包括用于在数据中心102处布置虚拟桌面的任何类型规则。例如,桌面布置规则可指定数据中心102处的任何特定计算系统服务不超过实体的阈值百分比的用户或者实体的子群组或部门(例如,会计、研发等等)的用户。在一些情况下,桌面布置规则可指定特定群组的两个成员不会由数据中心102处的同一计算机系统来服务。此外,在一些情况下,桌面布置规则可指定用户子集被分配至不共享机架、备用电池、电力总线、机架交换机、电源、路由器、数据存储、数据存储系统等的计算机系统。有利地,在某些实施方案中,通过限制被分配有来自特定计算系统或来自共享一些类型资源(例如,备用电池)的一组计算系统的计算资源的用户的百分比,失去访问权限或需要转移至另一个计算系统的用户的数量便被限制以防计算系统变得不可访问或资源变得不可访问(例如,数据中心102处的路由器),从而减轻计算资源丢失时可能发生的负面后果。
在一些情况下,桌面布置规则可基于与由桌面布置规则管控的用户相关联的用户概要。例如,桌面布置规则可指定用户概要指示用户利用许多图形密集型应用程序的用户分配有在数据中心102处包括比数据中心102处的一些其他计算系统更强显卡的计算系统。作为第二示例,用户概要指示用户需要许多存储空间的用户可被分配有数据中心102处的计算系统的访问权限,所述计算系统与具有超过阈值的或比其他数据储存器的存储空间可用性更大的存储空间可用性的数据储存器相关联。
另外,在一些情况下,桌面布置规则可包括直接地或经由虚拟桌面来指定一组用户被授权访问的应用程序的规则。此外,桌面布置规则可指定用户所要求的虚拟桌面默认配置。
此外,如上文陈述的,在一些实施方案中,桌面布置规则可与任何类型的计算资源而不仅是桌面或虚拟桌面相关联。
在方框806处,托管计算环境114识别与桌面布置规则相关联的实体(例如,雇用用户的公司)。在一些实施方案中,托管计算环境114在方框806处识别与实体相关联的用户子群。用户子群可以是(例如)实体的组织结构内的部门或位于特定位置(例如,实体的英国办公室)的用户群组。在一些实施方案中,方框806是可选的。例如,用户可设置供用户个人使用的桌面布置规则。
托管计算环境114在方框808处确认用户被授权来为方框806处识别的实体设置桌面布置规则。授权的这个确定可至少部分地基于方框802处接收的用户认证信息来做出。此外,在一些情况下,授权的确定可基于与用户相关联的元数据(如用户在所述实体中的部门、角色、职称)来做出。
在方框810处,托管计算环境114识别与用户相关联的一个或多个数据中心102。另外或作为替代地,托管计算环境114可基于桌面布置规则来识别所述一个或多个数据中心102。在一些实施方案中,方框810是可选的。例如,桌面布置规则可为托管计算环境114的所有数据中心102指定桌面布置规则。
在方框812处,托管计算环境114在方框810处识别的所述一个或多个数据中心102处将桌面布置规则与实体相关联。在一个或多个数据中心102处将桌面布置规则与实体相关联,可包括将桌面布置规则存储在方框810处所识别的每个数据中心102的数据中心资源库332处。此外,在一些情况下,方框812可包括将桌面布置规则提供给管理计算机304。
XI.示例性桌面预备过程
图9示出桌面预备过程900的示例。过程900可以至少部分地由可在数据中心102处的计算系统(例如,数据中心计算机302)上部署实例的任何系统来实施。例如,过程900可完全地或部分地由PES平台120、托管计算环境114、数据中心102、管理计算机304、管理部件310和部署部件314等来实施。尽管任何数量的系统都可完全地或部分地实施过程900,但是为了简化论述,将参考特定系统来描述过程900的部分。
尽管是参考虚拟桌面和桌面实例来描述图9,但是过程900并不受限于此。过程900可以用来部署可在数据中心102的计算系统处实例化的任何类型实例,包括(例如)应用程序、存储文件夹等等。
过程900在方框902处开始,其中(例如)管理计算机304从用户计算系统104接收用以获取虚拟桌面会话的访问权限的请求。所述请求可从用户或应用程序接收。如之前所陈述的,所述请求不限于虚拟桌面。例如,所述请求可针对应用程序的实例的访问权限。
在方框904处,管理部件310识别与用户计算系统104相关联的用户。管理部件310可基于在方框902处利用请求而接收的认证信息来识别用户。另外或作为替代地,管理部件310可基于与用户计算系统104相关联的元数据(如与用户计算系统104相关联的IP地址或名称)来识别用户。在一些情况下,不是识别用户或除了识别用户之外,管理部件310可识别与用户相关联的实体、部门或其他群组。在一些实施方案中,方框904是可选的。例如,桌面实例的预备可基于数据中心102处的每个数据中心计算机302的利用的测量或者不需要请求用户或关联实体等的识别的任何其他因素。
在决策方框906处,部署部件314确定是否存在与用户相关联的活动桌面实例306。活动实例306可包括在数据中心计算机302上运行或当前正执行的实例。此外,在一些情况下,活动实例306可包括已经缓存在数据中心计算机302处的实例。如果部署部件314确定存在与用户相关联的活动桌面,那么部署部件314在方框908处可向用户提供托管现有桌面实例306的数据中心计算机302处的现有桌面实例306的访问权限。
在一些实施方案中,决策方框906和方框908中的一个或多个是可选的。例如,如果请求用户是新用户或在方框902处接收的请求明确地请求新的桌面实例,那么决策方框906便是可选的。作为另一个示例,如果托管现有桌面实例306的数据中心计算机302的负载或利用超出阈值(例如,归因于访问数据中心计算机302的额外用户),那么用户可能不被授予现有桌面实例的访问权限并且方框908是可选的。或者,现有桌面实例可作为方框908的一部分转移至另一个数据中心计算机302,从而使用户能够获取现有桌面实例的访问权限,尽管最初托管现有桌面实例的数据中心计算机302满足其阈值负载或利用也是如此。
如果部署部件314确定不存在与用户相关联的活动桌面,那么在方框910处管理部件310便识别与用户相关联的元数据。另外或作为替代地,管理部件识别与用户计算系统104相关联的元数据。在一些实施方案中,管理部件310通过访问目录来识别元数据以便获取与用户相关联的信息,如用户在实体中的角色、职称、部门等等。这个目录可使用轻量目录访问协议(LDAP)或用于访问和维护分布式目录的任何其他已知应用协议来实施和/或访问。在一些情况下,所述目录可存储在数据中心资源库332处。在一些实施方案中,所述元数据可包括与用户的计算资源使用相关联的用户概要信息。例如,用户概要可指示用户是否利用图形密集型的许多应用程序(例如,动画程序、建模程序等等)。作为第二示例,用户概要可指示相比隶属于雇用数据中心102的所述用户或其他用户的实体的其他用户而言,所述用户生成许多数据,并且因此可能比其他用户需要更多的存储空间。
在方框912处,管理部件310基于在方框910处获取的元数据来识别桌面布置规则。这些桌面布置规则可从数据中心资源库332访问。例如,如果用户被识别为属于经纪实体处的交易柜台部门,那么管理部件310可检索与经济实体的交易柜台部门相关联的桌面布置规则。
在方框914处部署部件314基于桌面布置规则来识别数据中心计算机302。如上文参照图8所述的,桌面布置规则可包括用于选择数据中心102处的数据中心计算机302以便托管实例(例如,虚拟桌面实例)和/或提供计算资源给用户的任何规则。例如,桌面布置规则可指定没有任何数据中心计算机会托管来自实体部门的两个以上员工。作为第二示例,桌面布置规则可指定特定部门或特定实体不共享同一数据中心计算机302的访问权限。在一些实施方案中,部署部件314可使用用户的使用概要来促进识别数据中心计算机302。
在一些实施方案中,部署部件314可使用数据中心资源分配系统330来促进识别数据中心计算机302。例如,部署部件314可使用数据中心计算机容量识别模块452来识别数据中心计算302的可用容量。作为第二示例,部署部件314可使用实例利用模块454来确定数据中心计算机302处的额外实例的可用性。此外,部署部件314可使用应用资源识别模块458来确定数据中心计算机302是否具有用户所请求的或指定为用于配置虚拟桌面实例的桌面布置规则的一部分的应用资源的访问权限。
一旦数据中心计算机302已经选择,在方框916处部署部件314便在所识别数据中心计算机302上创建桌面实例。在一些情况下,创建桌面实例可基于桌面布置规则。例如,桌面布置规则可指定用于桌面实例的配置(例如,为桌面实例或预先配置来经由桌面实例访问的应用程序所分配的存储器量)。
在方框918处,管理部件310向用户提供桌面实例的访问权限。在一些实施方案中,方框918还可包括记录桌面实例的创建和/或访问。此外,在一些情况下,可向另一个用户(例如,管理员)通知桌面实例的创建和/或访问。
XII.示例性应用访问过程
图10示出访问可从PES平台120的数据中心得到的应用程序的过程的实施方案。如之前在图1B中所描述的,每个数据中心包括可配置来执行许多虚拟桌面实例的一个或多个物理计算系统。每个虚拟桌面实例可包括操作系统,如Microsoft操作系统、MAC 操作系统、Linux操作系统、Solaris操作系统等等。包括在每个虚拟桌面实例中的操作系统可被配置来执行应用市场130中的一个或多个应用程序。虚拟桌面实例可由PES的用户经由网络来访问。此外,PES的用户可经由市场界面212而在应用市场130中搜索应用程序或虚拟桌面实例。
在所示出的实施方案中,过程1000在方框1002处开始,其中向与PES的用户相关联的用户计算装置提供应用市场130的访问权限。访问应用市场的用户计算装置可经由市场界面212来搜索将要由虚拟桌面实例执行的应用程序。例如,用户可经由市场界面212而在应用市场130中搜索软件的Linux版本。
过程1000继续进行至方框1004并从用户接收请求以便从用户计算装置来访问虚拟桌面实例上的应用程序。所述请求可由用户通过应用市场130做出。在上文参考的示例中,用户可请求软件的Linux版本的访问权限。用户的虚拟桌面实例可至少包括Linux操作系统和软件。
过程1000继续进行至方框1006并访问与用户计算装置相关联的元数据。所述元数据可指示用户是否被授权在用户计算装置上访问来自PES的应用程序。例如,与用户计算装置相关联的元数据可指示用户当前正使用位于其办公室中的台式PC,并且根据与用户的PES账户和应用市场偏好相关联的安全设置,用户被授权从其办公室中的桌面PC来访问软件。在另一个示例中,与另一个用户计算装置相关联的元数据可指示用户正从其智能电话来访问虚拟桌面实例,并且根据与用户PES账户和应用市场偏好相关联的安全设置,用户未被授权从其智能电话来访问软件。在一些实施方案中,所述元数据可包括信息,例如像用户的应用市场账户、账户类型、访问等级、用户使用的装置的类型(平板计算机、台式计算机等等)、装置的名称、媒体访问控制(MAC)地址、用户的位置、用户的域、用户是否通过住宅互联网或用户的雇主提供的连接来访问应用市场130和/或用户是否使用代理来访问应用市场130,等等。
过程1000继续进行至决策方框1008,以便至少部分地基于所述元数据来确定用户是否被授权在用户计算装置上访问应用程序。在一些实施方案中,确定用户是否被授权访问应用程序可包括确定应用程序是否可用于在与用户相关联的或用户的虚拟桌面实例所位于的数据中心102处进行访问。在一些情况下,如果应用程序的复本在用户的虚拟桌面实例所位于的数据中心102处不可用,那么数据中心102的管理计算机304便可从PES平台120请求应用程序的复本。或者,可拒绝用户访问应用程序。如果用户未被授权访问应用程序,过程1000便结束。
然而,如果用户被授权访问应用程序,过程便继续进行至方框1010,并配置将要在虚拟桌面实例上执行的应用程序。应用程序可被配置成适合于用户和应用市场130所提供的操作系统或其他设置。在一些实施方案中,应用程序可驻留于PES平台120中的数据中心102中的物理计算系统上,并且所述物理计算系统可不同于用户所连接的物理计算系统。在一些情况下,应用程序可处于应用资源库220中。在一些情况下,应用程序的一些部分或全部的复本可下载至用户所连接的物理计算系统。
所述过程继续进行至方框1012并致使从虚拟桌面实例来执行应用程序。所述过程随后继续进行至方框1014并从虚拟桌面实例向用户计算装置提供所述应用程序的至少一部分的访问权限。
在一些实施方案中,仅仅应用程序的用户界面会提供给用户的计算装置,并且所述用户界面接受来自用户计算装置的输入并将用户输入提供给应用程序。在一些其他实施方案中,应用程序中提供给用户的计算装置的部分可以是应用程序的整个复本。例如,在上文的使用情况下,整个软件可提供给用户的计算装置。在一些其他情形中,提供应用程序的至少一部分的访问权限可包括将所述应用程序的一部分递送(例如,流动传送)给用户计算装置。例如,在上文的使用情况下,仅仅用户当前在软件中使用的信息库和软件的界面会提供给用户计算装置。
在另一个示例中,提供应用程序的至少一部分的访问权限可包括将本地虚拟桌面实例流动传送至计算实例。本地虚拟桌面实例可被配置成在用户计算装置上执行应用程序。例如,用户计算装置可接收虚拟桌面实例,所述虚拟桌面实例包括Linux操作系统和在Linux操作系统上运行的应用程序(软件)。在其他实施方案中,虚拟机或容器可流动传送至用户计算系统104。这个虚拟机或容器可被配置成在其流动传送至用户计算系统104时和/或在应用程序的流动传送完成之后运行应用程序。在某些实施方案中,虚拟机、容器和/或流动传送至用户计算系统104的应用程序任何部分会在用户已经完成使用应用程序的当前会话之后从用户计算系统104去除。有利地,在某些实施方案中,通过流动传送应用程序或其一部分至用户计算系统104并且随后在使用会话完成后去除应用程序或其部分,用户便可购买使用应用程序的临时许可。此外,用户可在用户计算系统104上使用应用程序,所述用户计算系统104通常可能由于(例如)存储空间约束、存储器约束、图形约束或用户计算系统104的其他硬件和/或软件约束而不能运行所述应用程序。所述使用会话可包括应用程序使用的单个时间段或者应用程序的租赁或许可时间段。在其他情况下,所述使用会话可包括在应用程序流动传送至用户计算系统104时开始的并且在用户计算系统104从数据中心102和/或数据中心102处托管的实例断开时结束的一段时间。
根据本公开的应用市场130可为用户提供各种选项以便为将在他们的虚拟桌面上执行的应用程序进行付款。例如,用户可选择购买、租赁或特许其感兴趣的应用程序。在一些情况下,用户群组可选择为群组许可付款。因此,在一些情况下,用来确定用户是否被配置成在用户计算装置上访问应用程序的元数据可包括用户是否已经从应用市场130购买、租赁或特许应用程序。应用市场130的计费系统218可以被配置来管理可从应用市场得到的应用程序、操作系统、虚拟桌面等的购买、租赁或特许。
如果用户选择租赁或特许应用程序而不是购买应用程序,那么应用市场130可在租赁或许可期结束之前通知用户。所述通知可包括供用户在某段时间上续订租赁或许可协议的选项和购买软件的选项。在一些实施方案中,在租赁期期满时,如果(例如)用户已经拒绝为额外租赁时间付款,那么为用户托管应用程序的数据中心302便可自动地阻止继续访问应用程序。在一些此类情况下,数据中心计算机302可自动地将用户数据保存至与用户相关联的存储装置和/或文件夹(例如,云文件夹),可从与用户相关联的虚拟桌面实例来访问所述存储装置和/或文件夹。此外,在一些情况下,数据可自动地同步至一个或多个用户计算系统104。
XIII.示例性文件同步系统
为了同步文档,PES平台120可实施图11中所示的文件同步系统1100。在所示出的实施方案中,文件同步系统1100包括连接性模块1102、同步模块1104和文件访问模块1106。连接性模块1102可用来建立PES与用户的计算装置之间的连接。如下文所述论述的,在一些实施形式中,PES与用户的计算装置之间的连接性是双向的。在一些此类实施形式中,PES与计算装置之间的双向连接用于递送虚拟桌面实例的访问权限并在PES与计算装置之间同步文件。继续上文的示例,文件访问模块1106可基于与平板装置相关联的元数据来确定其是被授权访问和修改特定Word文档的计算装置。因此,所述平板装置被授权维护所述Word文档的同步复本,所述复本对用户而言是可访问的,甚至在所述平板装置不具有网络连接时也是如此。例如,当用户编辑所述Word文档时,所述平板装置可丢失通向PES的网络连接。然而,因为所述文件被配置成与平板装置同步,所以在网络连接丢失时做出的修改可经由同步模块1104而与远程存储在PES平台120上的文件的复本同步。例如,对文件的修改可本地存储在用户计算装置上,并且当网络连接性恢复时,所述修改可传递至同步模块1104以便与存储在PES平台上的文件同步。
然后,在用户处于出租车上时,用户可尝试从其智能电话通过与PES的连接来编辑相同文档。由于智能电话可能会轻易地丢失,因此用户(或与用户相关联的实体,如其雇主)可将某些文档的访问权限限制在某些装置上或限制在用户处于某些位置的时候(例如,以便实施出口限制或控制)。因此,在这个示例中,文件访问模块1106可基于与智能电话或用户位置相关联的元数据,而确定用户不被授权在出租车上从其智能电话来更改文件的内容。因此,用户尝试从其智能电话做出的改变并不被PES平台120存储和/或并不本地存储在智能电话上
在另一个示例中,用户可通过PES平台120上的虚拟桌面实例编辑其办公室台式PC上的重要CAD图。在用户关闭其办公室PC后,她对CAD图做出的编辑存储在PES平台120上。用户可在家里打开其膝上型计算机并尝试编辑本地存储的CAD图的同步复本。文件访问模块1106可基于与CAD图和/或用户的膝上型计算机相关联的元数据来确定用户不被授权直接从其膝上型计算机来修改CAD图。然而,文件访问模块1106可确定用户被授权经由PES上的虚拟桌面实例来编辑CAD图。这意味着CAD图仅可从所述虚拟桌面实例来编辑。因此,用户尝试直接从其膝上型计算机对CAD图的同步复本做出的改变中没有一个可被PES平台120存储。然而,如果用户被授权从其膝上型计算机经由连接性模块1102而连接至虚拟桌面实例,并且其从虚拟桌面实例执行程序来编辑CAD图,那么用户便可被允许经由通向所述虚拟桌面实例的连接来编辑所述图。
XIV.第一示例性文件同步过程
图12示出在PES平台120的控制下使用文件同步系统1100的文件同步过程的示例。在所示出的实施方案中,过程1200在方框1202处开始,其中连接性模块1102形成PES与用户的计算装置之间的连接(其可以是双向的)。所述过程继续进行至方框1204,其中PES平台120接收来自计算装置的请求以便在PES平台120上修改文件。所述过程继续进行至方框1206,其中PES平台120使用文件访问模块1106来访问文件元数据。在这个示出的实施方案中,文件元数据可包括指示文件是否可与计算装置等同步的设置。
所述过程继续进行至方框1208以便至少基于文件元数据来确定所述文件是否被配置成与计算装置同步。在一些实施方案中,这个步骤可由文件访问模块508执行。如果所述文件未被配置成与计算装置同步,那么过程1200便结束。然而,如果确定所述文件可与计算装置同步,那么过程1200便继续进行至方框1210,并且所述文件由同步模块1104使用方框1202中形成的双向连接来与计算装置同步。所述过程在方框1210之后结束。
在一些情况下,用户可能需要通过被配置成在虚拟桌面实例上执行的应用程序来同步或修改文件。例如,用户可能已经配置包括Linux操作系统和软件的虚拟桌面实例。用户可能希望同步其已经在她的各种计算装置上做出的程序和模拟。如果用户已经通过虚拟桌面实例而具有通向PES平台120的现有连接,那么用户便可以不需要在本地具有能够修改或打开特定类型文件的程序。
XV.第二示例性文件同步过程
图13进一步示出借助通向数据中心处虚拟桌面实例的现有连接的文件同步过程的示例。在这个实施方案中,过程1300在方框1302处开始,其中对PES中的虚拟桌面实例上的应用程序的访问权限由连接性模块1102提供。过程1300继续进行至方框1304,并且PES可接收来自计算装置的请求以便通过虚拟桌面实例上的应用程序来修改文件。过程1300继续进行至方框1306,并且PES经由文件访问模块1106来访问文件元数据。所述文件元数据可指示文件是否被配置成由(例如)第一计算装置修改。
过程1300继续进行至方框1308以便确定所述文件是否被配置成由计算装置修改。在上文所论述的使用情况下,程序可被配置成与用户的台式计算机、其膝上型计算机同步但不与其平板装置同步。在另一个示例中,用户可能去参加海外销售会议,并且其模拟中的一个可被配置成与其平板装置同步,从而使得用户可轻易地在其会议上展示模拟。在一些情况下,文件可被配置成与用户计算装置同步但不可由用户计算装置在本地进行编辑。在这些情况下,所述文件可被配置成仅可经由虚拟桌面实例来编辑。因此,元数据可用来确定特定计算装置是否被授权修改所述文件,并且如果被授权,那么便确定PES所存储的文件的复本是否进行同步以便反映用户对文件做出的修改。
如果所述文件未被配置成由计算装置修改,那么过程1300便结束。然而,如果文件访问模块1106确定所述文件被配置成由计算装置修改,那么过程1300便继续进行至方框1310,以便允许所述文件由计算装置通过虚拟桌面上的应用程序来修改。由计算装置通过虚拟桌面上的应用程序做出的修改可由PES同步并存储。所述过程在方框1310之后结束。例如,模拟文件可被配置成与用户的平板装置同步,并由所述平板装置经由虚拟桌面实例来修改。在用户对PES平台120上的虚拟桌面实例上的模拟文件做出改变之后,对模拟文件的更新可同步至用户的平板装置,所述平板装置也连接至PES平台120上的虚拟桌面实例。如果所述文件也被配置成由平板装置经由通向虚拟桌面实例的连接来修改,那么用户可从其平板装置来修改所述文件。用户做出的修改将通过PES来与其他授权计算装置同步。在一些实施方案中,用户可在具有或不具有网络连接的情况下,在其平板装置上查看文件的同步本地复本。
在一些情况下,一个以上计算装置可被配置成维护文件的同步复本。另外,在一些情况下,文件的一个以上版本可被配置来进行存储。例如,用户可从其办公室计算机来对模拟文件做出改变,所述办公室计算机连接至运行软件的虚拟桌面实例。在测试更新文件之后,用户可决定取消其刚刚做出的改变。用户可选择维护模拟文件的同步复本,所述模拟文件是不具有其做出的所有改变的先前版本。在另一个示例中,用户可选择在其膝上型计算机上同步用于销售会议的最稳定版本的模拟版本。用户可选择不同步最新的版本。相反,用户可指定其希望在她的膝上型计算机上维护的文件版本。文件的多个版本可提供给用户,所以其可选择她想要在特定计算装置上维护的版本。
在一些实施方案中,同一文件的多个版本之间的差别可呈现给用户,这可帮助用户决定在计算装置上维护文件的哪个版本。
XVI.实施方案
本公开的实施方案可鉴于以下条款来描述:
1.一种用于访问可从程序执行服务的数据中心获得的应用程序的方法,所述方法包括:
在包括许多数据中心的程序执行服务(PES)的控制下,每个数据中心包括可配置来执行一个或多个虚拟桌面实例的一个或多个物理计算系统,每个虚拟桌面实例与计算环境相关联,所述计算环境包括可配置来执行一个或多个应用程序的操作系统,每个虚拟桌面实例可经由网络而通过所述PES的用户的计算装置来访问,所述PES包括可经过访问来搜索所述虚拟桌面实例或者所述一个或多个应用程序中的一个或多个的应用市场:
向与所述PES的用户相关联的用户计算装置提供对所述应用市场的访问权限,以便搜索将要由所述虚拟桌面实例执行的应用程序;
通过所述应用市场而从所述用户接收用以在来自所述用户计算装置的虚拟桌面实例上访问所述应用程序的请求;
访问与所述用户计算装置相关联的元数据,所述元数据包括指示所述用户是否被授权在所述用户计算装置上访问来自所述PES的所述应用程序的授权信息,以及指示所述用户是否已经从所述应用市场购买、租赁或特许所述应用程序的购买信息;
至少部分地基于所述元数据来确定所述用户是否被授权在所述用户计算装置上访问所述应用程序;
响应于确定所述用户被授权在所述用户计算装置上访问所述应用程序,而配置所述应用程序以便从所述虚拟桌面实例来执行;
响应于接收用以执行所述应用程序的命令,而致使从所述虚拟桌面实例来执行所述应用程序;以及
向所述用户计算装置提供从所述虚拟桌面实例来访问所述应用程序的至少一部分的权限。
2.如条款1所述的方法,其中所述应用程序的所述部分包括所述应用程序的用户界面。
3.如条款1所述的方法,其中所述应用程序的所述部分包括所述应用程序的整个复本。
4.如条款1所述的方法,其中提供所述应用程序的至少一部分的访问权限包括将所述虚拟桌面实例流动传送至所述用户计算装置。
5.如条款1所述的方法,其还包括:在应用程序租赁期期满时向所述用户发送通知,从而通知所述用户所述应用程序租赁期已经期满,所述应用程序租赁期包括所述用户被授权访问所述应用程序的一段时间。
6.一种用于访问可从程序执行服务的数据中心获得的应用程序的系统,所述系统包括:
程序执行服务(PES),其包括许多数据中心,每个数据中心包括可配置来执行一个或多个虚拟桌面实例的一个或多个物理计算系统,每个虚拟桌面实例与计算环境相关联,所述计算环境包括可配置来执行一个或多个应用程序的操作系统,每个虚拟桌面实例可经由网络而通过所述PES的用户的计算装置来访问,所述PES包括可经过访问来搜索所述虚拟桌面实例或者所述一个或多个应用程序中的一个或多个的应用市场,所述PES还包括:
应用访问部件,其被配置来:
向与所述PES的用户相关联的用户计算装置提供对所述应用市场的访问权限,以便搜索将要由所述虚拟桌面实例执行的应用程序;
通过所述应用市场而从所述用户接收用以在来自所述用户计算装置的虚拟桌面实例上访问所述应用程序的请求;
访问与所述用户计算装置相关联的元数据,所述元数据包括指示所述用户是否被授权在所述用户计算装置上访问来自所述PES的所述应用程序的信息;
至少部分地基于所述元数据来确定所述用户是否被授权在所述用户计算装置上访问所述应用程序;
响应于确定所述用户被授权在所述用户计算装置上访问所述应用程序,而致使从所述虚拟桌面实例来执行所述应用程序;以及
向所述用户计算装置提供从所述虚拟桌面实例来访问所述应用程序的至少一部分的权限。
7.如条款6所述的系统,其中所述应用程序的所述部分包括所述应用程序的用户界面。
8.如条款6所述的系统,其中所述应用程序的所述部分包括所述应用程序的整个复本。
9.如条款6所述的系统,其中所述应用访问部件还被配置成通过将所述虚拟桌面实例流动传送至所述用户计算装置,而提供所述应用程序的至少一部分的访问权限。
10.如条款6所述的系统,其中所述元数据还包括指示所述用户是否已经从所述应用市场购买、租赁或特许所述应用程序的购买信息。
11.如条款10所述的系统,其中所述应用访问部件还被配置成在应用程序租赁期期满时向所述用户发送通知,从而通知所述用户所述应用程序租赁期已经期满,所述应用程序租赁期包括所述用户被授权访问所述应用程序的一段时间。
12.如条款6所述的系统,其中,为了提供所述应用程序的所述部分的访问权限,所述应用访问部件被配置成将所述应用程序的所述部分流动传送至所述用户计算装置。
13.如条款12所述的系统,其中所述应用访问部件还被配置成在所述应用程序的使用会话完成后致使从所述用户计算装置去除所述应用程序的所述部分。
14.一种非暂时性物理计算机储存器,其包括计算机可执行指令,所述指令引导计算系统来执行一种用于访问可从程序执行服务的数据中心获得的应用程序的方法,所述方法包括:
在包括许多数据中心的程序执行服务(PES)的控制下,每个数据中心包括可配置来执行一个或多个虚拟桌面实例的一个或多个物理计算系统,每个虚拟桌面实例与计算环境相关联,所述计算环境包括可配置来执行一个或多个应用程序的操作系统,每个虚拟桌面实例可经由网络而通过所述PES的用户的计算装置来访问,所述PES包括可经过访问来搜索所述虚拟桌面实例或者所述一个或多个应用程序中的一个或多个的应用市场:
向与所述PES的用户相关联的用户计算装置提供对所述应用市场的访问权限,以便搜索将要由所述虚拟桌面实例执行的应用程序;
通过所述应用市场而从所述用户接收用以在来自所述用户计算装置的虚拟桌面实例上访问所述应用程序的请求;
访问与所述用户计算装置相关联的元数据,所述元数据包括指示所述用户是否被授权在所述用户计算装置上访问来自所述PES的所述应用程序的信息;
至少部分地基于所述元数据来确定所述用户是否被授权在所述用户计算装置上访问所述应用程序;
响应于确定所述用户被授权在所述用户计算装置上访问所述应用程序,而致使从所述虚拟桌面实例来执行所述应用程序;以及
向所述用户计算装置提供从所述虚拟桌面实例来访问所述应用程序的至少一部分的权限。
15.如条款14所述的非暂时性物理计算机储存器,其中所述应用程序的所述部分包括所述应用程序的用户界面。
16.如条款14所述的非暂时性物理计算机储存器,其中所述应用程序的所述部分包括所述应用程序的整个复本。
17.如条款14所述的非暂时性物理计算机储存器,其中提供所述应用程序的至少一部分的访问权限包括将所述应用程序的一部分流动传送至所述用户计算装置。
18.如条款14所述的非暂时性物理计算机储存器,其中提供所述应用程序的至少一部分的访问权限包括将所述虚拟桌面实例流动传送至所述用户计算装置。
19.如条款14所述的非暂时性物理计算机储存器,其中所述元数据还包括指示所述用户是否已经从所述应用市场购买、租赁或特许所述应用程序的购买信息。
20.如条款19所述的非暂时性物理计算机储存器,其中所述方法还包括:在应用程序租赁期期满时向所述用户发送通知,从而通知所述用户所述应用程序租赁期已经期满,所述应用程序租赁期包括所述用户被授权访问所述应用程序的一段时间。
XVII.术语
本公开的全篇内容中已经描述了许多计算系统。这些系统的描述并非意在限制本公开的教示或适用性。例如,本文所述的用户系统一般可包括任何计算装置,如台式计算机、膝上型计算机、视频游戏平台、电视机顶盒、电视(例如,互联网TV)、计算机化的器具和无线移动装置(例如,智能电话、PDA、平板计算机或类似装置)等等。此外,本文所述的用户系统可能为不同类型的装置,可能包括不同应用程序或者可能以其他方式被不同地配置。另外,本文所述的用户系统可包括任何类型的操作系统(“OS”)。例如,本文所述的移动计算系统可实施AndroidTM OS、OS、OS、Linux OS或基于Unix的OS,或者类似操作系统。
此外,所示出系统的各种部件的处理可分布在多个机器、网络和其他计算资源上。另外,系统的两个或两个以上部件可组合为更少的部件。例如,示出为数据中心资源分配系统330的一部分的各种系统可分布在多个计算系统上或组合为单个计算系统。此外,所示出系统的各种部件可在一个或多个虚拟机中实施而不是在专用的计算机硬件系统中实施。同样地,所示的数据资源库可表示物理和/或逻辑数据储存器,包括(例如)存储区网络或其他分布式存储系统。此外,在一些实施方案中,所示部件之间的连接表示数据流的可能路径,而不是硬件之间的实际连接。虽然展示了可能连接的一些示例,但是在各种实施形式中所示部件的子集中的任何部件都可与任何其他部件子集通信。
取决于实施方案,本文所述的算法、方法或过程中的任一者的某些动作、事件或功能可在不同序列中执行,可进行增加、合并或全部一起省去(例如,对于算法的实践而言并不是所有的描述动作或事件都是必要的)。此外,在某些实施方案中,动作或事件可同时执行(例如,通过多线程处理、中断处理或多个处理器或处理器核心或者在其他平行架构上),而不是循序执行。
各种所示出系统中的每个可实施为被编程或配置来执行本文所述的各种功能的计算系统。所述计算系统可包括在网络上进行通信并进行交互操作来执行所述功能的多个截然不同的计算机或计算装置(例如,物理服务器、工作站、存储阵列等等)。每个此类计算装置通常包括执行存储在存储器或其他非暂时性计算机可读存储介质中的程序指令或模块的处理器(或多个处理器)。本文公开的各种功能可体现在此类程序指令中,尽管所公开功能中的一些或全部可替代地在计算机系统的专用电路(例如,ASIC或FPGA)中实施。在计算系统包括多个计算装置的情况下,这些装置可以但不必是同位的。所公开方法和任务的结果可通过将物理存储装置(如固态存储器芯片和/或磁盘)转换为不同状态而持久地存储。所述的每个过程可由一个或多个计算装置(如利用关联服务器代码来编程的一个或多个物理服务器)来实施。
除非另外特别说明,或者使用时在上下文中以其他方式所理解的,否则本文所用的条件语言,特别是诸如“能够”、“可以”、“可能”、“例如”等,一般意在表达如下意思:虽然其他实施方案不包括,但某些实施方案包括特定的特征、元件和/或状态。因此,此类条件性语言一般并非意在暗含如下意思:特征、元件和/或状态对于一个或多个实施方案而言无论如何都是必需的,或者,一个或多个实施方案无论有或没有作者输入或提示都必须包括用于决定在任何特定实施方案中是否包括或将要执行这些特征、元件和/或状态的逻辑。术语“包括”、“包含”、“具有”等是同义的,并以开放的方式包含性地使用,而且不排除额外元件、特征、动作、操作等等。另外,术语“或者”以其包含性意义(并且不以其排除性意义)使用,从而使得当(例如)用来连接一列表元件时,术语“或者”意味着所述列表中元件的一个、一些或全部。另外,除非另有规定,否则字词“一”和“一个”应解释为表示“一个或多个”或“至少一个”的意思。
除非另外特别说明,否则诸如短语“X、Y以及Z中的至少一个”等的连接性语言,在上下文中使用时一般应以其他方式理解为表达如下意思:项目、名目等可以是X、Y或Z。因此,此类连接性语言一般并非意在暗示某些实施方案需要存在X中的至少一个、Y中的至少一个以及Z中的至少一个。
虽然上文的详细说明已经在应用于各种实施方案时展示、描述并指出新颖特征,但是应理解,在所示出装置或算法的形式和细节上的各种省略、代替和改变可在不背离本公开的精神的情况下做出。因此,在前文描述中没有内容意在暗示任何特定特征、特性、步骤、模块或方框是必须的或不可缺少的。如将认识到的,本文所述的过程可在不提供本文所阐述的所有特征和益处的形式内体现,因为一些特征可与其他特征分开使用或实践。保护的范围由随附权利要求书而不是由前文的描述来界定。处于权利要求书的等效意义和范围内的所有改变都应涵盖在权利要求书的范围中。

Claims (15)

1.一种用于访问可从程序执行服务的数据中心获得的应用程序的系统,所述系统包括:
程序执行服务PES,其包括许多数据中心,每个数据中心包括可配置来执行一个或多个虚拟桌面实例的一个或多个物理计算系统,每个虚拟桌面实例与计算环境相关联,所述计算环境包括可配置来执行一个或多个应用程序的操作系统,每个虚拟桌面实例可经由网络而通过所述PES的用户的计算装置来访问,所述PES包括可经过访问来搜索所述虚拟桌面实例或者所述一个或多个应用程序中的一个或多个的应用市场,所述PES还包括:
应用访问部件,其被配置来:
向与所述PES的用户相关联的用户计算装置提供对所述应用市场的访问权限,以便搜索将要由所述虚拟桌面实例执行的应用程序;
通过所述应用市场而从所述用户接收用以在来自所述用户计算装置的虚拟桌面实例上访问所述应用程序的请求;
确定与用户相关联的实体;
访问与所述实体相关联的布置规则,所述布置规则用于确定被授权访问所述应用程序的代表所述实体的多个用户、和可在特定数据中心处访问所述应用程序的所述实体的用户的百分比;
访问与所述用户计算装置相关联的元数据,所述元数据包括指示所述用户是否被授权在所述用户计算装置上访问来自所述PES的所述应用程序的信息;
至少部分地基于所述元数据和所述布置规则来确定所述用户是否被授权在所述用户计算装置上访问所述应用程序;
响应于确定所述用户被授权在所述用户计算装置上访问所述应用程序;
从多个数据中心选择出托管所述虚拟桌面实例的数据中心,被选择的所述数据中心至少部分地基于所述布置规则和访问所述数据中心的用户的数量;
而致使在所选择的数据中心从所述虚拟桌面实例来执行所述应用程序;以及
向所述用户计算装置提供从所述虚拟桌面实例来访问所述应用程序的至少一部分的权限。
2.如权利要求1所述的系统,其中所述应用程序的所述部分包括所述应用程序的用户界面。
3.如权利要求1所述的系统,其中所述应用程序的所述部分包括所述应用程序的整个复本。
4.如权利要求1所述的系统,其中所述应用访问部件还被配置成通过将所述虚拟桌面实例流式传输至所述用户计算装置,而提供所述应用程序的至少一部分的访问权限。
5.如权利要求1所述的系统,其中所述元数据还包括指示所述用户是否已经从所述应用市场购买、租赁或特许所述应用程序的购买信息。
6.如权利要求5所述的系统,其中所述应用访问部件还被配置成在应用程序租赁期期满时向所述用户发送通知,从而通知所述用户所述应用程序租赁期已经期满,所述应用程序租赁期包括所述用户被授权访问所述应用程序的一段时间。
7.如权利要求1所述的系统,其中,为了提供所述应用程序的所述部分的访问权限,所述应用访问部件被配置成将所述应用程序的所述部分流式传输至所述用户计算装置。
8.如权利要求7所述的系统,其中所述应用访问部件还被配置成在所述应用程序的使用会话完成后致使从所述用户计算装置去除所述应用程序的所述部分。
9.一种用于访问可从程序执行服务的数据中心获得的应用程序的方法,其包括:
在包括许多数据中心的程序执行服务PES的控制下执行以下步骤,并且其中,每个数据中心包括可配置来执行一个或多个虚拟桌面实例的一个或多个物理计算系统,每个虚拟桌面实例与计算环境相关联,所述计算环境包括可配置来执行一个或多个应用程序的操作系统,每个虚拟桌面实例可经由网络而通过所述PES的用户的计算装置来访问,所述PES包括可经过访问来搜索所述虚拟桌面实例或者所述一个或多个应用程序中的一个或多个的应用市场:
向与所述PES的用户相关联的用户计算装置提供对所述应用市场的访问权限,以便搜索将要由所述虚拟桌面实例执行的应用程序;
通过所述应用市场而从所述用户接收用以在来自所述用户计算装置的虚拟桌面实例上访问所述应用程序的请求;
确定与用户相关联的实体;
访问与所述实体相关联的布置规则,所述布置规则用于确定被授权访问所述应用程序的代表所述实体的多个用户、和可在特定数据中心处访问所述应用程序的所述实体的用户的百分比;
访问与所述用户计算装置相关联的元数据,所述元数据包括指示所述用户是否被授权在所述用户计算装置上访问来自所述PES的所述应用程序的信息;
至少部分地基于所述元数据和所述布置规则来确定所述用户是否被授权在所述用户计算装置上访问所述应用程序;
响应于确定所述用户被授权在所述用户计算装置上访问所述应用程序;
从多个数据中心选择出托管所述虚拟桌面实例的数据中心,被选择的所述数据中心至少部分地基于所述布置规则和访问所述数据中心的用户的数量;
而致使在所选择的数据中心从所述虚拟桌面实例来执行所述应用程序;以及
向所述用户计算装置提供从所述虚拟桌面实例来访问所述应用程序的至少一部分的权限。
10.如权利要求9所述的方法,其中所述应用程序的所述部分包括所述应用程序的用户界面。
11.如权利要求9所述的方法,其中所述应用程序的所述部分包括所述应用程序的整个复本。
12.如权利要求9所述的方法,其中提供所述应用程序的至少一部分的访问权限包括将所述应用程序的一部分流式传输至所述用户计算装置。
13.如权利要求9所述的方法,其中提供所述应用程序的至少一部分的访问权限包括将所述虚拟桌面实例流式传输至所述用户计算装置。
14.如权利要求9所述的方法,其中所述元数据还包括指示所述用户是否已经从所述应用市场购买、租赁或特许所述应用程序的购买信息。
15.如权利要求14所述的方法,其中所述方法还包括:在应用程序租赁期期满时向所述用户发送通知,从而通知所述用户所述应用程序租赁期已经期满,所述应用程序租赁期包括所述用户被授权访问所述应用程序的一段时间。
CN201480024124.1A 2013-03-11 2014-03-04 用于虚拟桌面的应用市场 Active CN105393219B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/794,600 US10313345B2 (en) 2013-03-11 2013-03-11 Application marketplace for virtual desktops
US13/794,600 2013-03-11
PCT/US2014/020404 WO2014164075A1 (en) 2013-03-11 2014-03-04 Application marketplace for virtual desktops

Publications (2)

Publication Number Publication Date
CN105393219A CN105393219A (zh) 2016-03-09
CN105393219B true CN105393219B (zh) 2018-11-06

Family

ID=51489115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480024124.1A Active CN105393219B (zh) 2013-03-11 2014-03-04 用于虚拟桌面的应用市场

Country Status (9)

Country Link
US (1) US10313345B2 (zh)
EP (1) EP2972838B1 (zh)
JP (1) JP2016521385A (zh)
KR (1) KR101717228B1 (zh)
CN (1) CN105393219B (zh)
AU (2) AU2014249680B2 (zh)
CA (1) CA2903992C (zh)
SG (1) SG11201507019QA (zh)
WO (1) WO2014164075A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135460B2 (en) * 2011-12-22 2015-09-15 Microsoft Technology Licensing, Llc Techniques to store secret information for global data centers
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US9503387B2 (en) * 2013-08-21 2016-11-22 Cisco Technology, Inc. Instantiating incompatible virtual compute requests in a heterogeneous cloud environment
US9800689B2 (en) * 2013-12-19 2017-10-24 Sap Se Distributed application integration auto-adjustment
US11410224B1 (en) * 2014-03-28 2022-08-09 Desprez, Llc Methods and software for requesting a pricing in an electronic marketplace using a user-modifiable spectrum interface
US10530854B2 (en) * 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US20150089626A1 (en) * 2014-08-12 2015-03-26 Fred Korangy System and method providing marketplace for big data applications
US10182103B2 (en) 2014-10-16 2019-01-15 Amazon Technologies, Inc. On-demand delivery of applications to virtual desktops
US10152211B2 (en) * 2014-11-11 2018-12-11 Amazon Technologies, Inc. Application delivery agents on virtual desktop instances
US9495142B2 (en) 2014-11-07 2016-11-15 Amazon Technologies, Inc. Dynamic reconstruction of application state upon application re-launch
US9985953B2 (en) 2014-11-10 2018-05-29 Amazon Technologies, Inc. Desktop application fulfillment platform with multiple authentication mechanisms
US11244261B2 (en) 2014-11-11 2022-02-08 Amazon Technologies, Inc. Catalog service platform for deploying applications and services
US10565534B2 (en) 2014-11-11 2020-02-18 Amazon Technologies, Inc. Constraints and constraint sharing in a catalog service platform
US11068136B1 (en) 2014-11-11 2021-07-20 Amazon Technologies, Inc. Application fulfillment platform with automated license management mechanisms
JPWO2017073050A1 (ja) * 2015-10-28 2018-08-16 日本電気株式会社 サーバ端末装置、クライアント端末装置、シンクライアントシステム、制御方法およびプログラム記録媒体
US10318320B1 (en) 2015-12-07 2019-06-11 Amazon Technologies, Inc. Virtual desktop access using device-native user interfaces
US10037221B2 (en) 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
US10083054B2 (en) 2015-12-28 2018-09-25 Amazon Technologies, Inc. Application-based computing resource management
US10782952B1 (en) * 2016-03-30 2020-09-22 Amazon Technologies, Inc. Generating machine images from software packages
EP3513543B1 (en) 2016-09-16 2021-05-12 Oracle International Corporation Dynamic policy injection and access visualization for threat detection
US10528541B2 (en) * 2016-12-13 2020-01-07 Sap Se Offline access of data in mobile devices
CN107038073B (zh) 2016-12-23 2021-05-11 创新先进技术有限公司 资源处理方法及装置
US10929523B2 (en) 2017-01-25 2021-02-23 Samsung Electronics Co., Ltd. Electronic device and method for managing data in electronic device
US10721239B2 (en) * 2017-03-31 2020-07-21 Oracle International Corporation Mechanisms for anomaly detection and access management
US10581995B1 (en) * 2017-07-13 2020-03-03 Parallels International Gmbh High availability virtual desktop infrastructure
US11169834B2 (en) * 2017-09-28 2021-11-09 Intel Corporation Dynamic platform feature tuning based on virtual machine runtime requirements
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
CN109814886A (zh) * 2019-01-16 2019-05-28 深圳乐信软件技术有限公司 一种软件安装方法、装置、设备和存储介质
US20220108060A1 (en) * 2020-10-05 2022-04-07 Vmware, Inc. Text editing in remote documents on mobile devices
US11782913B2 (en) * 2021-03-18 2023-10-10 International Business Machines Corporation AI-based data virtualization
CN115705229A (zh) * 2021-08-06 2023-02-17 北京小米移动软件有限公司 显示控制方法和系统、移动终端、存储介质
US11695772B1 (en) * 2022-05-03 2023-07-04 Capital One Services, Llc System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user
US20230362234A1 (en) * 2022-05-04 2023-11-09 Microsoft Technology Licensing, Llc Method and system of managing resources in a cloud computing environment
US11943305B2 (en) * 2022-07-20 2024-03-26 Bentley Systems, Incorporated Workspace databases
KR102482423B1 (ko) 2022-10-12 2022-12-28 주식회사 와이드테크 인터넷 텔레비전을 이용한 애플리케이션 마켓형 플랫폼 서비스 제공 방법 및 이를 제공하는 텔레비전

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101395570A (zh) * 2006-04-20 2009-03-25 国际商业机器公司 捕获图像数据

Family Cites Families (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US4853843A (en) 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US4991089A (en) 1988-09-30 1991-02-05 Ibm Corp. Method for establishing current terminal addresses for system users processing distributed application programs in an SNA LU 6.2 network environment
US6044367A (en) 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US5948061A (en) * 1996-10-29 1999-09-07 Double Click, Inc. Method of delivery, targeting, and measuring advertising over networks
US6745224B1 (en) 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
US6574661B1 (en) 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
US6332180B1 (en) 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
US6192361B1 (en) * 1997-12-23 2001-02-20 Alcatel Usa Sourcing, L.P. Full group privileges access system providing user access security protection for a telecommunications switching system
US6223289B1 (en) 1998-04-20 2001-04-24 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
US6574239B1 (en) 1998-10-07 2003-06-03 Eric Morgan Dowling Virtual connection of a remote unit to a server
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6895588B1 (en) 1999-04-09 2005-05-17 Sun Microsystems, Inc. Remote device access over a network
US6785894B1 (en) 1999-04-09 2004-08-31 Sun Microsystems, Inc. Virtual device driver
US6615264B1 (en) 1999-04-09 2003-09-02 Sun Microsystems, Inc. Method and apparatus for remotely administered authentication and access control
US6502103B1 (en) 1999-06-14 2002-12-31 International Business Machines Corporation Providing composed containers and data objects to support multiple resources
US6567818B1 (en) * 1999-06-14 2003-05-20 International Business Machines Corporation Employing management policies to manage instances of objects
US6560609B1 (en) 1999-06-14 2003-05-06 International Business Machines Corporation Delegating instance management functions to underlying resource managers
JP2002007329A (ja) 2000-06-20 2002-01-11 Nec Corp コンピュータシステム
US6959331B1 (en) 2000-08-14 2005-10-25 Sun Microsystems, Inc. System and method for operating a client network computer in a disconnected mode by establishing a connection to a fallover server implemented on the client network computer
US6915347B2 (en) 2000-10-17 2005-07-05 Sun Microsystems, Inc. Associating multiple display units in a grouped server environment
JP2002140532A (ja) 2000-10-31 2002-05-17 Toshiba Eng Co Ltd ソフトウェア販売システム、ソフトウェア販売方法、ソフトウェア販売を行うためのプログラムを記憶した記録媒体
US7349912B2 (en) * 2000-12-22 2008-03-25 Oracle International Corporation Runtime modification of entries in an identity system
US6944860B2 (en) 2001-01-16 2005-09-13 Sun Microsystems, Inc. Method and apparatus for representing and encapsulating active computing environments
US6871232B2 (en) 2001-03-06 2005-03-22 International Business Machines Corporation Method and system for third party resource provisioning management
US20080119207A1 (en) 2001-02-21 2008-05-22 Harris Scott C Applications of broadband media and position sensing phones
JP2002328741A (ja) 2001-05-07 2002-11-15 Fujitsu Ltd 使用権管理方法、使用権管理装置及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
US7392541B2 (en) 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US7010002B2 (en) 2001-06-14 2006-03-07 At&T Corp. Broadband network with enterprise wireless communication method for residential and business environment
US7002995B2 (en) 2001-06-14 2006-02-21 At&T Corp. Broadband network with enterprise wireless communication system for residential and business environment
US20030079030A1 (en) 2001-08-22 2003-04-24 Cocotis Thomas A. Output management system and method for enabling access to private network resources
US20030078965A1 (en) 2001-08-22 2003-04-24 Cocotis Thomas A. Output management system and method for enabling printing via wireless devices
US8200773B2 (en) 2001-09-28 2012-06-12 Fiberlink Communications Corporation Client-side network access policies and management applications
US7124353B2 (en) * 2002-01-14 2006-10-17 International Business Machines Corporation System and method for calculating a user affinity
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7197553B2 (en) 2002-04-19 2007-03-27 Nortel Networks Limited Network system having a virtual-service-module
US20040024861A1 (en) * 2002-06-28 2004-02-05 Coughlin Chesley B. Network load balancing
JP2004062443A (ja) 2002-07-26 2004-02-26 Ntt Docomo Inc サービス管理システム、サービス管理方法、サーバ管理装置、通信端末及びサーバ装置
JP2004072265A (ja) 2002-08-02 2004-03-04 Kddi Corp 機能分散システムおよび負荷分散方法、コンピュータプログラム
US7209945B2 (en) 2002-09-11 2007-04-24 Bellsouth Intellectual Property Corporation Application services gateway
DE10324470A1 (de) 2003-05-30 2005-03-10 Deutsche Telekom Ag Verfahren und Vorrichtung zum Steuern von Datenverbindungen in einem Datennetz mit einer Vielzahl von Datennetzknoten
US20060010392A1 (en) 2004-06-08 2006-01-12 Noel Vicki E Desktop sharing method and system
US7412516B1 (en) 2003-12-29 2008-08-12 Aol Llc Using a network bandwidth setting based on determining the network environment
US20070291739A1 (en) * 2004-05-04 2007-12-20 Sullivan Alan T Systems and Methods for Direction of Communication Traffic
US7584301B1 (en) * 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US8812613B2 (en) 2004-06-03 2014-08-19 Maxsp Corporation Virtual application manager
KR100692011B1 (ko) * 2004-07-28 2007-03-09 엘지전자 주식회사 이동 통신 단말기 컨텐츠의 사용권 만료 기준을 갱신하는방법
JP4400787B2 (ja) 2004-09-29 2010-01-20 日立ソフトウエアエンジニアリング株式会社 Webアクセス監視システム及び管理者用クライアントコンピュータ
US20090026007A1 (en) 2004-09-30 2009-01-29 Pss Belgium N.V. Loudspeaker with an acoustic member
US20060265704A1 (en) 2005-04-21 2006-11-23 Holt John M Computer architecture and method of operation for multi-computer distributed processing with synchronization
US8397287B2 (en) * 2006-08-21 2013-03-12 Citrix Systems, Inc. Method and system for authorizing a level of access of a client to a virtual private network connection, based on a client-side attribute
US7853953B2 (en) * 2005-05-27 2010-12-14 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
GB0525244D0 (en) 2005-12-12 2006-01-18 Nokia Corp Providing communication service sessions
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
CN101583940B (zh) 2006-01-17 2012-10-31 基达罗(以色列)有限公司 多计算环境的无缝集成
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
WO2007089283A2 (en) 2006-02-01 2007-08-09 X2 Technologies, Inc. System and method for providing computer services
JP4866636B2 (ja) 2006-03-22 2012-02-01 株式会社日立製作所 分散型プログラム実行環境における稼動品質管理方法
US8566447B2 (en) 2006-04-10 2013-10-22 Bank Of America Corporation Virtual service switch
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20070255814A1 (en) 2006-04-27 2007-11-01 Securetek Group Inc. System for server consolidation and mobilization
US8141075B1 (en) 2006-05-08 2012-03-20 Vmware, Inc. Rule engine for virtualized desktop allocation system
JP2009537159A (ja) 2006-05-24 2009-10-29 バイエル・クロップサイエンス・アーゲー 焼込損失(bakingloss)を低下させるための改変されたコムギ粉の使用
US8413160B2 (en) * 2006-06-22 2013-04-02 American Express Travel Related Services Company, Inc. Systems, methods, and computer program products for transaction based load balancing
US8312120B2 (en) 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
AU2007309183A1 (en) 2006-10-20 2008-05-02 Citrix Systems,Inc. Methods and systems for accessing remote user files associated with local resources
US20080172720A1 (en) 2007-01-15 2008-07-17 Botz Patrick S Administering Access Permissions for Computer Resources
US8630512B2 (en) 2007-01-25 2014-01-14 Skyfire Labs, Inc. Dynamic client-server video tiling streaming
US20080189700A1 (en) 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US8181206B2 (en) 2007-02-28 2012-05-15 Time Warner Cable Inc. Personal content server apparatus and methods
JP2008225520A (ja) 2007-03-08 2008-09-25 Nec Corp 仮想マシン環境においてメモリ資源を配置するメモリ資源配置制御方法、仮想マシンシステム及びプログラム
US8756293B2 (en) 2007-04-23 2014-06-17 Nholdings Sa Providing a user with virtual computing services
EP2158784A2 (en) 2007-06-06 2010-03-03 Boldstreet Inc. Remote service access system and method
CA2593897C (en) 2007-07-16 2016-06-14 Tet Hin Yeap Method, system and apparatus for accessing a resource based on data supplied by a local user
US8763115B2 (en) 2007-08-08 2014-06-24 Vmware, Inc. Impeding progress of malicious guest software
US8180908B2 (en) 2007-08-14 2012-05-15 Bayerische Motoren Werke Aktiengesellschaft Platform for standardizing vehicle communications with third-party applications
EP2241081B1 (en) 2008-01-26 2018-05-02 Citrix Systems, Inc. Systems and methods for fine grain policy driven cookie proxying
US7953833B2 (en) 2008-01-31 2011-05-31 Wanova Technologies Ltd. Desktop delivery for a distributed enterprise
JP5198584B2 (ja) 2008-02-26 2013-05-15 ヴイエムウェア インク 拡張されたサーバーベースのクライアント用デスクトップ仮想マシン構成
KR101489301B1 (ko) 2008-03-20 2015-02-06 삼성전자주식회사 가상환경 시스템 및 그의 구동방법
US8560593B2 (en) 2008-03-27 2013-10-15 Dell Software Inc. System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment
US7865586B2 (en) 2008-03-31 2011-01-04 Amazon Technologies, Inc. Configuring communications between computing nodes
US9003059B2 (en) 2008-03-31 2015-04-07 Microsoft Technology Licensing, Llc Running applications in an online or offline mode based on the availability of the connection to the remote web server
JP5087456B2 (ja) 2008-04-09 2012-12-05 株式会社インテック サービス提供システム及びそれを構成するユーザ収容装置
US8943575B2 (en) 2008-04-30 2015-01-27 Citrix Systems, Inc. Method and system for policy simulation
US8972978B2 (en) 2008-05-02 2015-03-03 Skytap Multitenant hosted virtual machine infrastructure
US8560713B2 (en) 2008-07-31 2013-10-15 Sap Ag Method and system for mediating enterprise service access for smart devices
US8443370B2 (en) * 2008-08-26 2013-05-14 Microsoft Corporation Method of assigning resources to fulfill a service request by a programming model abstraction layer at a data center based at least in part on a reference of the requested resource class indicative of an abstract amount of resources
CN102197374B (zh) 2008-10-24 2014-04-02 思杰系统有限公司 用于在组合的计算环境中给可修改的机器基本映像提供个性化桌面环境的方法和系统
US8812714B2 (en) 2008-11-12 2014-08-19 Citrix Systems, Inc. Systems and methods for application fluency policies
US9009329B2 (en) 2008-11-25 2015-04-14 Microsoft Technology Licensing, Llc Platform for enabling terminal services virtualization
US8201237B1 (en) 2008-12-10 2012-06-12 Amazon Technologies, Inc. Establishing secure remote access to private computer networks
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8898108B2 (en) 2009-01-14 2014-11-25 Vmware, Inc. System and method for scheduling data storage replication over a network
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US8386757B1 (en) 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
US8549364B2 (en) 2009-02-18 2013-10-01 Vmware, Inc. Failure detection and recovery of host computers in a cluster
TW201032131A (en) 2009-02-24 2010-09-01 Ibm Device, method and computer program product for automatically selecting internet browser and providing web page service
US20100241731A1 (en) 2009-03-17 2010-09-23 Gladinet, Inc. Method for virtualizing internet resources as a virtual computer
WO2010117623A2 (en) 2009-03-31 2010-10-14 Coach Wei System and method for access management and security protection for network accessible computer services
US20100275200A1 (en) 2009-04-22 2010-10-28 Dell Products, Lp Interface for Virtual Machine Administration in Virtual Desktop Infrastructure
US8370938B1 (en) 2009-04-25 2013-02-05 Dasient, Inc. Mitigating malware
EP2425341B1 (en) 2009-05-01 2018-07-11 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8856783B2 (en) 2010-10-12 2014-10-07 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics
WO2010129487A1 (en) 2009-05-02 2010-11-11 Citrix Systems, Inc. Methods and systems for providing a consistent profile to overlapping user sessions
US8352482B2 (en) 2009-07-21 2013-01-08 Vmware, Inc. System and method for replicating disk images in a cloud computing based virtual machine file system
CN101964860A (zh) 2009-07-23 2011-02-02 孙博雅 家庭影院服务器
US8832459B2 (en) 2009-08-28 2014-09-09 Red Hat, Inc. Securely terminating processes in a cloud computing environment
US8365195B2 (en) 2009-08-31 2013-01-29 Red Hat, Inc. Systems and methods for generating sets of model objects having data messaging pipes
US8285218B2 (en) 2009-08-31 2012-10-09 The Nielsen Company (Us), Llc Methods and apparatus to identify wireless carrier performance effects
WO2011030755A1 (ja) 2009-09-10 2011-03-17 日本電気株式会社 ロール設定装置、ロール設定方法及びロール設定プログラム
JP2011060055A (ja) 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
JP2011076251A (ja) 2009-09-29 2011-04-14 Nec Personal Products Co Ltd リモート操作システム、クライアント装置、サーバ、通信方法、プログラム及び記録媒体
US20110078510A1 (en) 2009-09-30 2011-03-31 Virtera Computer Software and Hardware Evaluation System and Device
US20110093847A1 (en) * 2009-10-15 2011-04-21 Shah Dharmesh R Application Hosting Service for Cloud Environments Using Dynamic Machine Images
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US7991859B1 (en) 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
US20110178946A1 (en) 2010-01-15 2011-07-21 Incontact, Inc. Systems and methods for redundancy using snapshots and check pointing in contact handling systems
US8301746B2 (en) 2010-01-26 2012-10-30 International Business Machines Corporation Method and system for abstracting non-functional requirements based deployment of virtual machines
US9477531B2 (en) 2010-01-27 2016-10-25 Vmware, Inc. Accessing virtual disk content of a virtual machine without running a virtual desktop
US9009219B2 (en) 2010-01-27 2015-04-14 Vmware, Inc. Native viewer use for service results from a remote desktop
US9274821B2 (en) 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
JP2011160300A (ja) 2010-02-02 2011-08-18 Fujitsu Ltd ルータ、ルーティング方法、ルーティングプログラム、情報処理装置、仮想マシン構築方法および仮想マシン構築プログラム
US9953178B2 (en) 2010-02-03 2018-04-24 Os Nexus, Inc. Role based access control utilizing scoped permissions
US8527549B2 (en) 2010-02-22 2013-09-03 Sookasa Inc. Cloud based operating and virtual file system
US8468455B2 (en) 2010-02-24 2013-06-18 Novell, Inc. System and method for providing virtual desktop extensions on a client desktop
US8869141B2 (en) 2010-03-09 2014-10-21 Avistar Communications Corp. Scalable high-performance interactive real-time media architectures for virtual desktop environments
JP5733302B2 (ja) 2010-03-11 2015-06-10 日本電気株式会社 リソース配分装置及びプログラム
WO2011123840A2 (en) 2010-04-01 2011-10-06 Citrix Systems, Inc. Interacting with remote applications displayed within a virtual desktop of a tablet computing device
JP2011248419A (ja) 2010-05-24 2011-12-08 Hitachi Ltd 業務計算機割当て方法及び装置
WO2011149558A2 (en) 2010-05-28 2011-12-01 Abelow Daniel H Reality alternate
US8477610B2 (en) 2010-05-31 2013-07-02 Microsoft Corporation Applying policies to schedule network bandwidth among virtual machines
US8434081B2 (en) 2010-07-02 2013-04-30 International Business Machines Corporation Storage manager for virtual machines with virtual storage
US8443367B1 (en) 2010-07-16 2013-05-14 Vmware, Inc. Federated management in a distributed environment
JP2012033096A (ja) 2010-08-02 2012-02-16 Nomura Research Institute Ltd ライセンスチェックシステムおよびリソースプール管理システム
WO2012020482A1 (ja) 2010-08-11 2012-02-16 富士通株式会社 バックアップ方法、情報処理装置及びプログラム
US8612413B2 (en) 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US20120311157A1 (en) 2011-06-03 2012-12-06 Erickson Philip J Integrated information technology service management for cloud resources
US20120066679A1 (en) 2010-09-13 2012-03-15 Startforce, Inc. Disposable virtual desktop for transient use by multiple users
US8661120B2 (en) 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US20120084369A1 (en) 2010-09-30 2012-04-05 Microsoft Corporation Unified Reconnection To Multiple Remote Servers
WO2012044557A2 (en) 2010-10-01 2012-04-05 Imerj, Llc Auto-configuration of a docked system in a multi-os environment
US9632875B2 (en) 2010-10-06 2017-04-25 International Business Machines Corporation Automated and self-adjusting data protection driven by business and data activity events
JP4811830B1 (ja) 2010-10-15 2011-11-09 株式会社 イーシー・ワン コンピュータリソース制御システム
US8607054B2 (en) 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US20120124194A1 (en) 2010-11-14 2012-05-17 Caroline Jacqueline Shouraboura Method and Apparatus for Efficiently Managing Network Distance between Physical Computers in a Computing Cloud
US8566441B2 (en) 2010-11-22 2013-10-22 Microsoft Corporation Network latency estimation for mobile devices
JP5760406B2 (ja) 2010-11-29 2015-08-12 セイコーエプソン株式会社 検出回路、センサーデバイス及び電子機器
US20120166619A1 (en) 2010-12-23 2012-06-28 Microsoft Corporation Licensing and metering of virtualized applications
US9229603B2 (en) 2010-12-28 2016-01-05 Schlumberger Technology Corporation Methods, systems, apparatuses, and computer-readable mediums for provisioning petrotechnical workflows in a cloud computing environment
US9201667B2 (en) 2010-12-31 2015-12-01 Vmware, Inc. Providing virtual desktops using resources accessed on public computer networks
US8863256B1 (en) 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
US8510597B2 (en) 2011-02-08 2013-08-13 Wisconsin Alumni Research Foundation Providing restartable file systems within computing devices
JP5242717B2 (ja) 2011-02-09 2013-07-24 日本電信電話株式会社 リソース管理サーバ、リソース管理システム、リソース管理方法及びリソース管理プログラム
US20120216015A1 (en) 2011-02-22 2012-08-23 Mitra Sumanranjan S System and method to concurrently execute a plurality of object oriented platform independent programs by utilizing memory accessible by both a processor and a co-processor
KR20120096741A (ko) 2011-02-23 2012-08-31 인텔렉추얼디스커버리 주식회사 가상단말 클라우드 네트워크 시스템 및 이기종 단말 플랫폼 어플리케이션 제공방법
US8866701B2 (en) 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US8732267B2 (en) 2011-03-15 2014-05-20 Cisco Technology, Inc. Placement of a cloud service using network topology and infrastructure performance
US9060239B1 (en) 2011-08-09 2015-06-16 Zscaler, Inc. Cloud based mobile device management systems and methods
US9369433B1 (en) 2011-03-18 2016-06-14 Zscaler, Inc. Cloud based social networking policy and compliance systems and methods
JP5772127B2 (ja) 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム
EP2693336A4 (en) 2011-03-28 2016-03-23 Nec Corp VIRTUAL MACHINE MANAGEMENT SYSTEM AND METHOD FOR MANAGING VIRTUAL MACHINES
US8799897B2 (en) 2011-04-07 2014-08-05 Vmware, Inc. Automated cost calculation for virtualized infrastructure
JP5939740B2 (ja) 2011-04-11 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的にリソースを割り当てる方法、システム及びプログラム
US9176744B2 (en) 2011-05-20 2015-11-03 Citrix Systems, Inc. Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot
US8683466B2 (en) 2011-05-24 2014-03-25 Vmware, Inc. System and method for generating a virtual desktop
US9225763B2 (en) 2011-06-07 2015-12-29 Cisco Technology, Inc. Distributed overlay browser for transparent streaming media support in virtualized desktop environment
US8769011B2 (en) 2011-06-21 2014-07-01 Cisco Technology, Inc. Survivable browsing in virtualized desktop environment when host connectivity is lost
US20130006815A1 (en) 2011-06-30 2013-01-03 Ebay Inc. Federated and multi-tenant e-commerce platform
KR101507919B1 (ko) 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
EP2712443B1 (en) 2011-07-01 2019-11-06 Hewlett-Packard Enterprise Development LP Method of and system for managing computing resources
WO2012109876A1 (zh) 2011-08-03 2012-08-23 华为技术有限公司 虚拟化数据备份方法、虚拟化数据重组方法、装置及系统
US8631131B2 (en) 2011-09-07 2014-01-14 Red Hat Israel, Ltd. Virtual machine pool cache
US20130067469A1 (en) 2011-09-14 2013-03-14 Microsoft Corporation Load Balancing By Endpoints
US8812687B2 (en) * 2011-09-15 2014-08-19 Microsoft Corporation Managing user state of cloud desktops
CN103001989A (zh) 2011-09-16 2013-03-27 中兴通讯股份有限公司 参数接收方法及系统
US9143530B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
DE102012217202B4 (de) 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US20140250232A1 (en) 2011-10-14 2014-09-04 National Ict Australia Limited Disaster recovery failover in cloud computing
US8868710B2 (en) 2011-11-18 2014-10-21 Amazon Technologies, Inc. Virtual network interface objects
US9417889B2 (en) 2011-12-29 2016-08-16 Vmware, Inc. Fast provisioning of a centralized virtual desktop using linked clones with overlaid centralized virtual desktop layers
US9208007B2 (en) 2012-01-18 2015-12-08 International Business Machines Corporation Open resilience framework for simplified and coordinated orchestration of multiple availability managers
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
US8891450B2 (en) 2012-02-06 2014-11-18 Juniper Networks, Inc. Mobile node host route installation and withdrawal
US20130219043A1 (en) 2012-02-20 2013-08-22 Moritz M. Steiner Method and apparatus for automatic migration of application service
US9110600B1 (en) 2012-03-19 2015-08-18 Amazon Technologies, Inc. Triggered data shelving to a different storage system and storage deallocation
US8918392B1 (en) 2012-03-29 2014-12-23 Amazon Technologies, Inc. Data storage mapping and management
US9110604B2 (en) 2012-09-28 2015-08-18 Emc Corporation System and method for full virtual machine backup using storage system functionality
US9231987B2 (en) 2012-04-11 2016-01-05 Empire Technology Development Llc Data center access and management settings transfer
US20130275966A1 (en) 2012-04-12 2013-10-17 International Business Machines Corporation Providing application based monitoring and recovery for a hypervisor of an ha cluster
US8954984B2 (en) 2012-04-19 2015-02-10 International Business Machines Corporation Environmentally aware load-balancing
US20130283263A1 (en) 2012-04-19 2013-10-24 Dincloud, Inc. System and method for managing resources in a virtual machine environment
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US9210162B2 (en) 2012-05-02 2015-12-08 Microsoft Technology Licensing, Llc Certificate based connection to cloud virtual machine
US8904081B1 (en) 2012-05-08 2014-12-02 Vmware, Inc. Composing a virtual disk using application delta disk images
US9325530B2 (en) 2012-05-22 2016-04-26 Cisco Technology, Inc. Management of virtual desktop infrastructure (VDI) sessions using real-time network conditions
US8934887B2 (en) 2012-05-31 2015-01-13 Emblaze Ltd. System and method for running mobile devices in the cloud
JP2013250775A (ja) 2012-05-31 2013-12-12 Fujitsu Ltd 仮想マシン管理装置、仮想マシン管理プログラム、仮想マシン管理方法及びネットワークシステム
EP2867771A4 (en) 2012-06-29 2016-06-29 Hewlett Packard Entpr Dev L P OPTIMIZED POSITIONING OF VIRTUAL MACHINES
US9535871B2 (en) 2012-11-27 2017-01-03 Red Hat Israel, Ltd. Dynamic routing through virtual appliances
US9692632B2 (en) 2012-11-29 2017-06-27 International Business Machines Corporation Migration to managed clouds
US20140188977A1 (en) 2012-12-28 2014-07-03 Futurewei Technologies, Inc. Appratus, method for deploying applications in a virtual desktop interface system
US9384208B2 (en) 2013-01-22 2016-07-05 Go Daddy Operating Company, LLC Configuring a cached website file removal using a pulled data list
US20140237070A1 (en) 2013-02-19 2014-08-21 Lg Cns Co., Ltd. Network-attached storage management in a cloud environment
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US20140280436A1 (en) 2013-03-14 2014-09-18 Citrix Systems, Inc. Migration tool for implementing desktop virtualization
US9641559B2 (en) 2013-03-15 2017-05-02 Swyme Ip Bv Methods and systems for dynamic adjustment of session parameters for effective video collaboration among heterogeneous devices
US9645840B2 (en) 2013-04-02 2017-05-09 Amazon Technologies, Inc. User-defined pools
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9740563B2 (en) 2013-05-24 2017-08-22 International Business Machines Corporation Controlling software processes that are subject to communications restrictions by freezing and thawing a computational process in a virtual machine from writing data
US9720712B2 (en) 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
US20150019704A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US20150006614A1 (en) 2013-06-26 2015-01-01 Amazon Technologies, Inc. Management of computing sessions
US20150019728A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US20150019705A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101395570A (zh) * 2006-04-20 2009-03-25 国际商业机器公司 捕获图像数据

Also Published As

Publication number Publication date
AU2014249680A1 (en) 2015-09-24
US20140258155A1 (en) 2014-09-11
US10313345B2 (en) 2019-06-04
EP2972838B1 (en) 2020-05-20
JP2016521385A (ja) 2016-07-21
SG11201507019QA (en) 2015-10-29
WO2014164075A1 (en) 2014-10-09
CN105393219A (zh) 2016-03-09
KR20150128941A (ko) 2015-11-18
CA2903992A1 (en) 2014-10-09
CA2903992C (en) 2020-07-07
AU2014249680B2 (en) 2017-03-09
KR101717228B1 (ko) 2017-03-17
EP2972838A1 (en) 2016-01-20
AU2017203703A1 (en) 2017-06-22
EP2972838A4 (en) 2016-11-16
AU2017203703B2 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
CN105393219B (zh) 用于虚拟桌面的应用市场
CN105408882B (zh) 自动化桌面布置
CN105378698A (zh) 自动化数据中心选择
US9552366B2 (en) Automated data synchronization

Legal Events

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