对单租赁应用的多重租赁的制作方法

文档序号:7860367阅读:199来源:国知局
专利名称:对单租赁应用的多重租赁的制作方法
技术领域
本发明涉及对单租户应用的多用户租赁。
背景技术
一种日益流行的联网形式一般被称为远程呈现系统,其能使用诸如远程桌面协议(RDP)以及独立计算体系结构(ICA)等协议来与远程客户端共享桌面和在服务器上执行的其他应用。云计算指的是用于允许对共享的计算资源池进行按需网络访问的计算环境。许多云计算服务涉及诸如上文所述的那些虚拟化的资源,并且可以采取用户能够通过web浏览器来访问和使用的基于web的工具或应用的形式,就好像它们是本地地安装在用户自己的计算机上的程序那样。许多应用被设计成供单个用户使用。例如,AutoCAD被设计为单租户应用并且旨在由单个用户使用,而不是由多个用户同时使用。相反,诸如Bing等基于web的多租户应用旨在由数百万个用户同时访问。

发明内容
公开了用于部署云计算环境中的软件应用的方法和系统。向诸如管理员等用户提供用于允许由多个云计算用户使用被设计成供单个租户使用的软件应用的界面。本发明的一方面是提供一种用于快速且容易地将多用户资格给予诸如autoCAD之类的单租户应用的机制。在一实施例中,AutoCAD被移至云并且在虚拟桌面或会话环境中运行。期望访问AutoCAD的用户然后能够访问网页并且使虚拟桌面或会话自行生成(spin up)该单版本应用的副本。由此,多个用户能够访问该应用而无需在他们自己的系统上本地地下载和安装一版本。通过在虚拟桌面或会话中只运行单个应用并且通过URL将用户连接到该单个应用进一步给予用户访问基于web的应用的表现。


参考附图来进一步描述根据本说明书的用于部署计算环境中的软件应用的系统、方法和计算机可读介质,在附图中图I描绘了其中可实现本发明的各方面的示例计算环境。图2描绘了其中可实现本发明的各方面的示例计算环境。图3描绘了包括数据中心的示例计算环境。图4描绘了数据中心的操作环境。图5描绘了用于实施本发明的各方面的操作环境。图6示出了用于实施此处所公开的某些方法的示例体系结构。图7示出了描绘此处所公开的某些方法的示例框图。图8示出了描绘云数据服务的计算组件的示例框图。图9示出了描绘云数据服务的存储组件的示例框图。
图10示出了描绘云数据服务的结构控制器组件的示例框图。图11示出了描绘云数据服务的⑶N组件的示例框图。图12示出了描绘云数据服务的连接组件的示例框图。图13示出了此处所公开的方法的示例实施例。图14示出了此处所公开的方法的示例实施例。图15示出了用于实施本公开的各方面的操作过程的示例。图16示出了用于实施本发明的各方面的示例系统。图17示出了用户数据装载场景的示例实施例。图18示出了此处所公开的方法的示例实施例。
具体实施例方式在以下描述和附图中阐明了某些具体细节,以提供对本公开的各个实施例的全面 理解。通常与计算和软件技术相关联的某些公知细节不在以下公开中描述,以避免不必要 地使本公开的各实施例晦涩难懂。此外,相关领域的普通技术人员会理解,他们可以无需以 下描述的细节中的一个或多个而实现本公开的其它实施例。最后,尽管在以下公开中参考 了步骤和序列来描述各个方法,但是如此的描述是为了提供本公开的实施例的清楚实现, 且步骤以及步骤序列不应被认为是实现本公开所必需的。应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组 合来实现。因此,本公开的方法和装置或其某些方面或部分,可以采用包含在诸如软盘、 CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(S卩,指令)的 形式,其中,当程序代码被加载至诸如计算机等机器并由其运行时,该机器成为用于实现本 公开的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处 理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、 以及至少一个输出设备。一个或多个程序可以例如,通过使用应用编程接口(API)、可重用 控件等来实现或利用结合本发明描述的过程。这样的程序优选地用高级过程语言或面向对 象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器 语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。远程桌面系统是维护可由客户端计算机系统远程地执行的应用的计算机系统。输 入是在客户计算机系统处被输入的,并通过网络(例如,使用基于国际电信联盟(ITU)T. 120 系列协议等协议,如远程桌面协议(RDP))传送到终端服务器上的应用。该应用如同该输入 是在终端服务器处输入的那样来处理该输入。该应用响应于所接收到的输入来生成输出, 并且通过网络将该输出传送到客户端。各实施例可以在一个或多个计算机系统上执行。图1和以下讨论旨在提供其中可 以实现所公开的主题的适当计算环境的简要描述。本领域的技术人员可以理解,计算机系 统200、300可具有相对于图1的计算机100描述的组件中的一部分或全部。贯穿本公开使用的术语电路可包括诸如硬件中断控制器、硬盘驱动器、网络适配 器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操作这些硬件的固 件/软件。术语电路还可包括被配置成通过固件或通过开关集来以特定方式执行功能的微 处理器,或一个或多个逻辑处理器,例如,多核通用处理单元的一个或多个核。此示例中的逻辑处理器可以通过从存储器,例如,RAM、ROM、固件和/或虚拟存储器中加载的体现可操作以执行功能的逻辑的软件指令来配置。在其中电路包括硬件和软件的组合的示例实施例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由逻辑处理器执行的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件的组合之间几乎没有差别的地步,因而选择硬件还是软件来实现功能只是一个设计选择。因此,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬件结构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现是无足轻重的且留给了实现者。图I描绘了以本公开的各方面来配置的计算系统的示例。计算系统可包括计算机20等等,其中包括处理单元21、系统存储器22,以及将包括系统存储器在内的各种系统组件耦合到处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。系统存储器包括只读存储器(ROM) 24和随机存取存储器(RAM) 25。基本输入/输出系统26 (BIOS)被存储在ROM 24中,该基本输入/输出系统26包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。计算机20还可以包括用于读写硬盘(未示出)的硬盘驱动器27、用于读写可移动磁盘29的磁盘驱动器28,以及用于读写诸如CD ROM或其他光学介质之类的可移动光盘31的光盘驱动器30。在一些示例实施例中,实施本公开的各方面的计算机可执行指令可存储在ROM 24、硬盘(未示出)、RAM 25、可移动磁盘29、光盘31和/或处理单元21的高速缓存中。硬盘驱动器27、磁盘驱动器28,以及光盘驱动器30分别通过硬盘驱动器接口 32、磁盘驱动器接口 33,以及光盘驱动器接口 34连接到系统总线23。驱动器以及它们相关联的计算机可读介质为计算机20提供了计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然此处所描述的环境使用了硬盘、可移动磁盘29、以及可移动光盘31,但是,那些本领域普通技术人员应该理解,在操作环境中也可以使用诸如盒式磁带、闪存卡、数字视频盘、伯努利磁带盒、随机存取存储器(RAM)、只读存储器(ROM)等等之类的可以存储可由计算机进行访问的数据的其他类型的计算机可读介质。可以有若干个程序模块存储在硬盘、磁盘29、光盘31、R0M 24或RAM25上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。用户可以通过诸如键盘40和定点设备42之类的输入设备向计算机20中输入命令和信息。其他输入设备(未示出)可包括话筒、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些及其他输入设备常常通过耦合到系统总线的串行端口接口 46连接到处理单元21,但是,也可以通过诸如并行端口、游戏端口、通用串行总线(USB)之类的其他接口来连接。显示器47或其他类型的显示设备也可以通过诸如视频适配器48之类的接口连接到系统总线23。除了显示器47之外,计算机通常包括其他外围输出设备(未示出),如扬声器和打印机。图I的系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56,以及连接到SCSI总线56的外部存储设备62。计算机20可使用到一个或多个远程计算机(诸如,远程计算机49)的逻辑连接而在联网环境中操作。远程计算机49可以是另一计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点、虚拟机,并通常包括上文相对于计算机20所描述的许多或全部元件,但是在图I中只示出了存储器存储设备50。图I中所描绘的逻辑连接可包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍的。当用于LAN联网环境中时,计算机20可通过网络接口或适配器53连接到LAN 51。当用于WAN联网环境中时,计算机20可通常包括调制解调器54,或用于通过诸如因特网之类的广域网52建立通信的其他手段。可以是内置的或外置的调制解调器54可通过串行端口接口 46连接到系统总线23。在联网环境中,相对于计算机20所示的程序模块或其部分可被存储在远程存储器存储设备中。可以理解,所示出的网络连接只是示例,也可以使用用于在计算机之间建立通信链路的其他手段。此外,虽然可构想本发明的许多实施例尤其适用于计算机系统,然而在本文中不意味着将本公开限于这些实施例。现在参考图2,所描绘的是被配置成实现虚拟机的计算机系统的高级框图。如图所示,计算机系统100可包括图I和2中所描述的元件,以及可用于实现虚拟机的组件。一个这样的组件是在本领域中也可被称为虚拟机监控程序的系统管理程序(hypervisor) 202。所描绘的实施例中的系统管理程序202可被配置成控制并仲裁对计算机系统100的硬件的访问。广泛而言,系统管理程序202可以生成称为分区的执行环境,如子分区I到子分区N(其中N是大于或等于I的整数)。在各实施例中,子分区可被认为是系统管理程序202所支持的基本隔离单位,即,每一子分区可被映射到在系统管理程序202和/或父分区的控制下的一组硬件资源,例如存储器、设备、逻辑处理器周期等,并且系统管理程序202可以隔离一个分区使其无法访问另一分区的资源。在各实施例中,系统管理程序202可以是独立软件产品,操作系统的一部分、被嵌入在主板的固件内、专门的集成电路,或其组合。在以上示例中,计算机系统100包括父分区204,父分区在开源社区中也可被认为是域O。父分区204可被配置成通过使用虚拟化服务向在子分区I-N中执行的客操作系统提供资源。每一子分区可包括一个或多个虚拟处理器,例如客操作系统220到222可管理并调度线程在其上执行的虚拟处理器230到232。一般而言,虚拟处理器230到232是提供带有特定体系结构的物理处理器的表示的可执行指令和相关联状态信息。例如,一个虚拟机可具有带有英特尔x86处理器特性的虚拟处理器,而另一虚拟处理器可具有PowerPC处理器的特性。本示例中的虚拟处理器可被映射到计算机系统的逻辑处理器,使得实现虚拟处理器的指令将受到逻辑处理器的支持。如此,在这些示例实施例中,多个虚拟处理器可以同时执行,而同时例如另一逻辑处理器正执行系统管理程序指令。一般而言,且如图所示,分区中的虚拟处理器以及存储器的组合可被认为是虚拟机,如虚拟机240或242。一般而言,客操作系统220到222可包括诸如,例如,来自Microsoft 、Apple 、幵放源代码社区等等的操作系统之类的任何操作系统。客操作系统可包括用户/内核操作模式,并且可具有包括调度器、存储器管理器等的内核。内核模式可包括逻辑处理器中的执行模式,该执行模式授予对至少特权处理器指令的访问。每一客操作系统220到222可具有相关联的文件系统,该文件系统上存储有诸如终端服务器、电子商务服务器、电子邮件服务器等应用以及客操作系统本身。客操作系统220-222可以调度线程来在虚拟处理器230-232上执行,并可以实现这样的应用程序的实例。图3和以下描述旨在提供其中可实现此处描述的各实施例的示例计算环境的简要概括描述。具体地,图3描绘了包括用于提供计算资源的数据中心308的说明性操作环境300。数据中心308可提供用于执行应用的计算资源并且在连续的或按需的基础上提供数据服务。数据中心308所提供的计算资源可包括各种类型的资源,诸如数据处理资源、数据存储资源、数据通信资源等。每一种类型的计算资源可以是通用的或者可以在多个特定配置上可用。例如,数据处理资源可供用作虚拟机实例。虚拟机实例可被配置成执行应用,包括Web服务器、应用服务器、媒体服务器、数据库服务器等。数据存储资源可包括文件存储设备、块存储设备等。数据中心不仅仅包括虚拟机计算资源,还包括多个物理计算设备,所述物理计算设备可被配置成运行一个或多个虚拟机,所述虚拟机可以跨物理资源被迁移以进行负载平衡。数据中心308所提供的计算资源可由一个或多个单独的数据中心来启用。数据中心308是用于容纳和操作计算机系统和相关联的组件的架构。数据中心308通常包括冗余且备用的供电、通信、冷却和安全系统。数据中心302还可位于在地理上不同的位置。下文将参考图3来描述实现此处所公开的概念和技术以便可缩放地部署虚拟化的计算基础架构的数据中心308的一个说明性配置。数据中心308的客户和其他使用者可通过网络306访问数据中心302所提供的计算资源。应该理解,可使用将数据中心308连接到远程使用者的局域网(“LAN”)、因特网或本领域已知的任何其他联网拓扑结构。还应该理解,还可使用此类网络的组合。用户计算机304可以是数据中心308的客户或其他使用者所使用的计算机。例如,用户计算机304可以是服务器计算机、台式机或膝上型个人计算机、瘦客户机、平板计算机、无线电话、个人数字助理(“PDA”)、电子阅读器、游戏控制台、机顶盒或能够访问数据中心308的任何其他计算设备。用户计算机304用于配置数据中心308所提供的计算资源的各方面。在这一点上,数据中心308可提供Web界面,该数据中心的操作的各方面可通过使用在客户计算系统304上执行的Web浏览器应用程序来配置。另选地,在客户计算系统304上执行的独立应用程序可访问由数据中心308展示的应用编程接口(“API”)来执行配置操作。还可使用用于配置数据中心308的操作的其他机制,包括向应用部署更新。图4描绘了一计算系统图,该图食醋了数据中心308的一种配置,包括此处所公开的用于可缩放地部署虚拟化的计算基础架构的概念和技术。图2包括用于提供计算资源以供执行应用的服务器计算机402。服务器计算机402可以是被合适地配置为提供上述计算资源的标准服务器计算机。例如,在一种实现中,服务器计算机402被配置成提供进程406。在一实施例中,进程406可以是虚拟机实例。虚拟机实例可以是非常像物理机执行程序那样执行程序的机器(即计算机)的软件实现的实例。在虚拟机实例的示例中,每一个服务器402都可被配置成执行能够执行实例的实例管理器。实例管理器可以是系统管理程序、或者是被配置成例如在单个服务器402上实现多个进程406的执行的另一类型的程序。应该理解,尽管此处所公开的某些实施例在虚拟机实例的上下文中进行讨论,但还可将其他类型的实例用于此处所公开的概念和技术。例如,此处所公开的技术可用于存储资源、处理资源、数据通信资源的实例以及用于其他类型的资源的实例。此处所公开的各实施例还可用于不利用虚拟机实例的计算系统,即使用物理机和虚拟机的组合的计算系统。
在图4所示的示例数据中心中,LAN 401被用来与服务器计算机402互连。LAN401还可连接到图3所示的WAN 306。应该理解,图3和4所示的网络拓扑结构已经被极大地简化,并且可利用多得多的网络和联网设备来互连此处所公开的各种计算系统。合适的负载平衡设备或软件模块还可用于在数据中心之间、在每一个数据中心中的每一个服务器计算机402之间、以及在由数据中心的每一个客户购买的实例406之间进行负载平衡。这些网络拓扑结构和设备对于本领域技术人员而言应该是显而易见的。云计算一般指的是用于实现对诸如上文所述的计算资源(例如,应用、服务器和存储)的共享池的按需网络访问的计算环境。此类计算环境可用最少的管理工作或服务提供者交互来快速地供应和释放。云计算服务通常不要求终端用户知晓递送服务的系统的物理位置以及配置。服务可以是基于消耗的并且经由因特网来递送。许多云计算服务涉及诸如上文所述的那些虚拟化的资源,并且可以采取用户能够通过web浏览器来访问和使用的基于web的工具或应用的形式,就好像它们是本地地安装在用户自己的计算机上的程序那样。云计算服务通常构建在某种类型的平台上。对于诸如在组织的数据中心内部运行的某些应用而言,此类平台可包括操作系统以及被配置成存储数据的数据存储服务。运行在云中的应用可使用类似的基础。图5提供了图3所示的实例环境的进一步细节。用户计算机304处的管理员可建立桌面配置501,包括标识操作系统、应用、策略和存储设置。此类偏好可由管理员改变,并且服务的提供者可针对提供所请求的配置向管理员收费。在一实施例中并且如图6进一步描述的,云服务可实现如下包括四层栈的体系结构·云计算平台601,被配置成提供资源以支持云服务·桌面供应和管理层602,用于创建和管理云计算资产,所述云计算资产使得应用提供者能够提供应用、企业桌面提供者和桌面零售商能够创建和管理桌面、用户能够连接到他们的桌面等。这一层可将应用和桌面的逻辑视图转换成云计算平台的物理资产。 应用提供者/企业桌面提供者/桌面零售商/用户体验层603,为上述四种类型的实体中的每一种实体提供独特的端到端体验。·垂直层604,为特定的用户组提供由桌面零售商提供的一组自定义体验。在云计算平台的一个实施例中,可实现戳记(stamp)并使用戳记来定义隔离单元,并且可将戳记配置成定义传统的远程桌面部署。可提供维护顾客人工制品和凭证、跨戳记管理负载、以及供应戳记并调整戳记的大小的远程桌面控制器组件。远程桌面控制器还可创建并管理应用和桌面。特定端点提供用户桌面的虚拟等价物,一个(或多个)戳记提供公司计算基础架构的虚拟等价物。上文所述的各层可涉及多个组件。此类组件可包括在下文中进一步描述的下列组件。·计算组件(例如,图8),运行云中的应用。·存储组件(例如,图9),存储云中的二进制和结构化数据·结构控制器组件(例如,图10),部署、管理和监控应用。结构控制器还处理整个平台上对系统软件的更新
·内容递送网络(⑶N)组件(例如,图11),通过在全世界范围内维护云存储中的数据的高速缓存的副本来提高该数据的全球访问速度。·连接组件(例如,图12),允许在本地计算机和云应用之间创建IP层连接。参考描绘计算组件810的图8,应用可被实现为如上所述的一个或多个角色800801 802。云服务可通过使用负载平衡来跨角色地传播请求来运行每一个角色的多个实例。可向开发者提供门户以将应用提交给云服务。门户可被配置成接收配置信息,该配置信息通知云平台每一个角色要运行多少实例。结构控制器组件可为每一个实例创建虚拟机(VM)并且在该VM中为合适的角色运行代码。来自应用的用户的请求可使用诸如HTTP、HTTPS和TCP之类的协议作出。请求可跨一角色的全部实例来进行负载平衡。参考描绘存储组件910的图9,云平台可提供使用多个数据结构和格式的数据存储。例如,数据存储可作为二进制数据的未结构化团块来提供。元数据可用于提供关于内容的信息。为了允许应用以更结构化的方式来对数据进行操作,云存储服务可将存储作为与属性相关联的实体组来提供。还可向应用提供查询数据的装置,诸如例如包括搜索参数的API。另外,云存储可提供一种供web角色实例与工作者角色实例异步通信的方式。例如,用户可提交请求以经由由web角色实现的web界面来执行某种计算密集的任务。接收这一请求的web角色实例可将消息写入描述要完成的工作的队列902。在这一队列上等待的工作者角色实例随后可读取该消息并执行指定的任务。结果可经由另一队列返回。云存储服务可复制数据以便提供容错。此外,数据可被备份复制在位于不同物理位置的另一数据中心中以实现冗余和增强的可用性。参考图10,结构控制器组件1000可以是跨一组机器而复制的分布式应用。结构控制器组件可被配置成拥有其环境中的全部资源,诸如计算机、交换机和负载平衡器。结构控制器组件1000还可监控正在运行的应用,确定新应用应该在哪里运行,以及选择物理服务器来优化硬件利用。结构控制器组件还可被配置成启动、监控和终止虚拟机。在一实施例中并且参考图11,云服务可将数据副本存储在离使用该数据的客户机1000较近的站点处。例如,用户第一次访问特定数据片时,内容递送网络组件可将该数据的副本存储(即高速缓存)在地理上离该用户较近的位置处。下一次访问该数据时,内容可从高速缓存而非从更远的源来递送。在一实施例中并且参照图11,为了支持组织内使用的应用和数据,本地环境可与云服务连接。在一实施例中,此类组合可通过在云应用以及在云外部运行的机器之间提供IP层连通性来实现。端点代理1201可被安装在连接到云应用的每一本地计算机1202上。云应用还可被配置成与云连接组件1200 —起工作。代理可使用诸如IPsec之类的协议来与该应用中的特定角色交互。通过使用此类代理,配置诸如IPsec协议1203之类的协议的潜在复杂性对于用户而言可能是透明的,同时提供了比诸如虚拟专用网络(VPN)之类的方法更简单的连接。一旦建立了连接,云应用中的角色可显得像在本地机器上一样地在同一IP网络上。通过建立此类连接,云应用可直接访问本地数据库。云应用还可域加入(domain-join)到本地环境中,从而允许本地用户到云应用的单次登录,并且使用用于访问控制的现有的活动目录账户和组。在各实施例中,可提供远程桌面计算体验,其中桌面提供者可提供灵活的桌面池,管理员可以几乎与供应和管理单个用户桌面相同的方式从该池中容易地供应和管理多个用户桌面。远程桌面用户因此可被提供总是可用、无需管理过程并且基于消费来计费的桌面体验。对于应用提供者,此类服务可使得应用提供者以最小的工作用web应用形式向用户提供的传统桌面应用。随着企业开始采用远程或虚拟桌面作为集中化对安全和兼容的员工桌面的管理的手段,对于IT管理员而言能够提供同构的桌面环境以便控制和最小化成本将是有利的。因此,能提供多个远程或虚拟桌面的平台能以低成本提供可缩放的且同构的计算环境。通过以与同构的计算模型类似的方式在云平台上构建托管桌面解决方案,IT管理员可被提供与传统的“作为服务的桌面”的替换方案相比能够极大地降低成本的环境。云计算平台可被配置成与多个用户和提供者一起操作并且向该多个用户和提供者提供益处。例如,对于向企业桌面提供者或桌面零售商提供应用的应用提供者而言,云计算平台可被配置成在可缩放的云模型中供应和销售传统的桌面应用。可使得应用提供者能够创建带有支出账户信息的应用提供者账户、上传应用包、在所选操作系统上测试所上传的应用、在云上的应用市场上发布应用、监控应用使用和设置每个用户的用户收费。参考图13,示出了描绘用于在云计算框架中提供远程桌面服务的过程的示例框图。用户可经由浏览器来访问提供到远程桌面服务的接入点的网页,所述远程桌面服务根据用户的IT部门要求来对用户可访问和配置。用户可使用提供给用户的凭证来登录系统。凭证可以是诸如Windows Live ID或OpenID (开放ID)之类的持久ID。用户随后将被重定向至认证服务器,该认证服务器可要求通过安全连接输入用户名和口令。一旦通过认证,用户可被发放对于该用户而言持久的口令,所述口令被提供给其他服务以使得不再需要附加的授权。在一实施例中,即使桌面会话结束,口令对于该用户而言可能是持久的,除非用户显式地从会话登出。可以提供一种用于自动地登录到基于云的系统的机制,在所述基于云的系统中,单次用户认证和授权过程准许用户访问用户具有访问许可的基于云的系统中的资源而无需输入多次口令。提供单次登录允许用户登录一次并且访问多个应用而无需输入更多次的口令。单次登录通过经由减少必须被维护的口令数量来提升安全性和效率,对于企业而言是合乎需要的。对于云服务提供者而言,单次登录通过允许用户更大的访问权而无需附加的认证工作来提供更好的用户体验。基于云的服务可能不接受由单次登录服务所生成的令牌登录凭证。例如,web-ID提供者或单次登录服务可向用户提示单次凭证,并且服务可生成可用于连接到其他服务的权证或令牌。此类系统的示例包括Windows、Linux和iOS。给予本地企业域中的用户例如对在云服务中运行的应用的单次登录是合乎需要的。在一实施例中,当用户登录到基于云的桌面并提供认证凭证时,可自动地生成和保持一次性口令。所生成的一次性口令可用于自动地登录到基于云的系统中的其他过程。在一实施例中,所生成的一次性口令可被保持到用户显式地登出为止。因此,即使在桌面会话被意外终止的情况下,口令也可被保持。在另一实施例中,用户可具有用于提供诸如Windows Live或Yahoo之类的集成在线服务的服务的账户。此类服务可提供诸如能使用单个用户ID和口令来访问的电子邮件和多媒体服务之类的服务和软件产品集。在一实施例中,此类集成服务的用户也可被提供如上所述地访问基于云的计算服务的选项。因此,当用户选择了基于云的计算服务作为此类集成服务的一部分时,一旦用户登录了服务,则可向用户呈现访问基于云的计算服务并请求远程桌面会话的选项。因为基于云的服务可能不接受来自集成服务的凭证,所以基于云的服务可生成带有允许用户访问桌面会话的一次性口令的账户。一次性口令的细节不必提供给用户,因为该口令仅在会话期间存在或者仅存在至用户登出为止。在一实施例中,一次性口令可被保持以使得在桌面被无意地断开连接的情况下用户可返回至桌面而不必重启登录过程。在图14所不的一实施例中,客户机1404可输入他的公司的基于云的服务主页1400的URL。另选地,用户可输入集成在线服务的URL。用户可被定向至向用户提示认证凭证的在线认证服务1404。在线认证服务1401可以是用户的管理员所使用的服务,并且用户的凭证信息可由管理员提供给云服务,从而授权服务创建用户简档并允许用户启动和访问桌面。另选地,在线认证服务1401可由集成在线服务提供。一旦用户经过认证,该用户被定向至主页1402,该用户可使用由在线认证服务所提供的凭证来访问云服务1410。云服务1410生成一次性口令1405和/或临时用户账户,并且用户的一次性口令被发送1406至端点1407。如上所述,端点1407可以是用户桌面会话。一次性口令可基于在线认证服务接收到的凭证来生成。在一实施例中,口令可被存储在主存用户会话的虚拟机中的本地凭证存储中。因此,口令不随着用户被保持在用户简档中,从而允许增强的安全性并避免了对云服务为每一个用户维护口令的需要。因为用户可被分配来自可用虚拟机(VM)端点池的VM端点,因此下一次用户登录时,用户可连接到该池中的任何一个VM端点。为了为用户创建自定义的桌面体验,可保存用户偏好和状态数据。在一实施例中,用户偏好和状态数据可被保存到可与用户相关联的数据集,以使得任何时候用户登录并被分配桌面时,可获得用户偏好和状态数据从而可恢复用户先前的桌面状态。因此,例如,如果用户与第一虚拟机上的会话(即端点)相关联并且稍后被分配到不同虚拟机上的不同会话,则来自第一虚拟机的用户桌面状态对于第二虚拟机上的会话而言一般将不可用。然而,根据本发明的一方面,用户状态独立于会话和特定的VM端点而被保存。如本发明中所述的,此类用户数据集可被成为虚拟简档。在各实施例中,虚拟简档可被实现并且被成为虚拟硬盘驱动器或虚拟硬盘(VHD)。由此,当用户与不同虚拟机上的会话连接时,先前的用户状态可被迁移至新的会话。此特征允许被设计成提供特定类型以对每一个特定用户而言具有自定义的感觉的单个主机桌面。结果是其他方面通用的会话环境的用户被用户感知为具有个人桌面外观和感觉。如上所讨论的,在用户会话的过程期间,客户机可打开和关闭到云服务的远程访问连接,并且在任何给定的连接期间,客户机可改变会话中的设置和偏好。此处描述了一种用于在基于云的基础架构中供应远程桌面同时维护用户个性化的机制。在基于云的系统中,用户可能无法一直重新连接到同一个虚拟桌面。在一实施例中,分配给用户的虚拟简档可被装载到分配给用户的端点。虚拟简档可包括诸如用户个人数据和个性化信息(例如,设置、简档、文件、应用数据等)之类的信息。因为用户可被分配来自可用VM端点池的VM端点,因此下一次用户登录时,用户可连接到该池中的任何一个VM端点。为了为用户创建自定义的桌面体验,用户的被保存的偏好和状态数据可用于提供自定义的桌面体验,而不管用户连接到的特定VM端点。
尽管术语虚拟简档和VHD用于描述用于保存用户偏好和状态信息的数据结构,但应该理解,本发明不旨在限于任何特定的文件或数据格式。在一实施例中,虚拟简档或VHD可以是被配置为通常在物理数据盘驱动器上找到的数据的虚拟硬盘文件格式。最初,虚拟简档或VHD可用可用于根据由例如公司IT管理员所定义的标准桌面配置来配置用户桌面的数据来填充。因此,虚拟简档或VHD可包括定义桌面的“黄金映像”(即,对于用户角色而言标准的桌面配置)的数据。然而,当用户使用特定的远程桌面并开始通过例如改变墙纸、添加音乐、保存本地文档等来自定义桌面时,该信息被存储到虚拟简档或VHD,并且之后每一次用户连接到标准远程桌面时,就用来自虚拟简档或VHD的数据来进行填充以提供自定义用户体验的外观和感觉。可在单个云服务边界的界限内定义用户类型(即桌面类型)的任意组合。例如,云服务边界1410可定义单个服务边界,所述单个服务边界如所定义的并且被配置成用于提供给特定公司并且可使用预先确定的URL来访问的服务集,当经由浏览器输入所述URL时,可提供用于登录到服务并且访问被配置成用于服务的桌面的web界面。在一实施例中,在请求用户会话时,最初可请求到连接代理的连接。连接代理可确定与所请求的用户会话相关联的戳记,并且选择正主存所标识的戳记内的用户会话的虚拟机。例如,如果请求指示需要一用户会话,则连接代理可搜索包括IP地址端口号组合或网络标识符的数据库以寻找正被主存在云服务器上的合适的虚拟机。连接代理可生成重定向请求,所述重定向请求使得用户会话与所标识的虚拟机相关联。参考图17所述的实施例,端点可被通知1700用户已经登录了系统。系统搜索虚拟简档1701并确定用户的虚拟简档已经存在1702。如果不存在用户的虚拟简档,则创建虚拟简档1703。如果用户的虚拟简档已经存在或者如果虚拟简档被创建,则用户虚拟简档被移动至端点1704。用户桌面会话可被启动1705。当确定用户已经登出时1706,虚拟简档从端点被卸载1707并且被保存以供后续使用。对单租赁应用的多重租赁现在描述一种用于向云计算环境中的多个用户呈现软件应用的机制。例如,在基于云的平台中提供被设计成供单个用户使用的应用,而不重建该应用。使用基于web的界面,多个云用户可启动和执行该应用。在一实施例中,针对单个用户构建的应用可以在基于云的平台上提供。应用提供者可访问网站或其他用户界面以上传单用户应用,并请求该单用户应用经由基于云的平台对多个用户是可访问的。尽管该应用并非针对多用户访问而设计,但本发明提供了一种可用于在无需应用提供者重建应用的情况下使得这一应用可由无限数量的用户访问的机制。在云计算环境中,执行针对单个用户设计的应用导致其中处理能力/硬件是容易地可用的情况,但在这种情况下软件体系结构使得应用无法呈现给多个用户或多个用户会话。例如,在单个用户的情况下,可根据单用户应用的需求来为该应用分配资源,并且该应用可以在单个资源集上执行。在一实施例中,可解析单用户应用的一个或多个部分,并且可以在一个或多个虚拟机中实例化该软件的该一个或多个部分的多个实例。该软件的一个或多个部分中的每一个然后可以与一个或多个用户会话相关联并被交付以便呈现给每一个用户会话。该一个或多个用户会话中的每一个都可以与该软件的一个或多个部分的对应实例进行通信,并且可
13收发指示与该应用的进程相关联的指令的数据。由此,与该一个或多个用户会话相关联的软件的一个或多个部分可经由用户会话向用户发送数据以及从用户接收数据。该软件的一个或多个部分的实例接收到的请求可以在一个或多个虚拟机上执行。在另一实施例中,针对单个用户构建的应用的单个实例可以在虚拟机中执行。多租户应用管理器可以与多个用户会话通信,并且对于每一个用户会话,该多租户应用管理器可维护用户会话与应用的交互的状态。该应用可接收和处理来自用户会话的请求。对于每一个用户会话,可呈现用户显示画面的快照。在一个实施例中,多租户应用管理器可以在对应用可用的资源池中添加和/或移除资源。此外,多租户应用管理器可使得每一个用户会话的请求排队。在另一实施例中,可实例化应用的多个实例,每一个实例都与一用户会话相关联应用的每一个实例然后可维护其自己的对应于它们各自的用户会话的状态。在一实施例中,应用提供者可访问云数据服务,并且使用web或其他用户界面可上传该提供者希望变得对多个用户可用的单用户应用。提供者可选择各选项,诸如URL(例如,www.mysingleapp.com)以及用户为了使用该单用户应用而应支付的费用。通常,这一单用户应用将会是复杂的应用,该复杂的应用最初针对单个用户设计并且在按使用的基础上重新构建以作为多用户应用提供将会是昂贵的。用户可能经常希望为对这一应用的单次使用支付固定费用,而不是付出购买可能不频繁地使用的复杂应用的高成本。应用提供者可将软件上传至云并选择例如基于使用或日、月或周访问的费用。用户可通过信用卡或账单等来付费。在一实施例中,云系统可确定给定用户使用应用的次数和时间段,这部分地是因为每一个应用都在作为云环境的一部分的资源上运行。因此,应用提供者在不对现有应用进行再工程的情况下经由基于使用的模型(例如,按小时或天)或在按使用的基础上来对应用收费是可能的。云服务提供者可主存可通过应用提供者选择的URL访问的网站。可以向用户提供网页,该网页提供关于单用户应用的信息。可以向用户提供用于选择费用支付选项的选项。参考图18,用户可被定向到支付和认证服务1801,该服务提示用户以获取支付信息。一旦用户经过认证,该用户就被定向至欢迎主页1802。云服务1810生成一次性口令1805和/或临时用户账户,并且用户的一次性口令被发送1806至端点1807。如上所述,端点1807可以是用户桌面会话。用户桌面会话然后开始单用户应用1807的实例并且根据上述实施例中的一个。经由用户的屏幕来向用户呈现单用户应用的图形表示,对于该用户就像是该单用户应用的实例。在另一实施例中,从用户会话的观点来看,在经由网页登录到云计算系统后,可以向用户呈现还可包括选择单用户应用的选项的桌面。该桌面可包括取决于如上所述的用户的桌面配置的其他应用。此外,桌面可包括多个这样的单用户应用。用户可选择单用户应用,并且表示单用户应用的实际用户界面的外观和感觉的界面可经由该用户的web浏览器来呈现给用户,就像该单用户应用正在本地的计算资源集上本地地执行那样。多个用户可以在并行用户会话中访问单用户应用,每一个会话都看上去是独立访问和执行该单用户应用。如上所述,用户偏好和状态数据可被保存到可与用户相关联的数据结构,以使得任何时候用户登录并被分配桌面时,都可获得用户偏好和状态数据并且可恢复用户先前的桌面状态。根据本发明的一方面,关于单用户应用的用户状态是独立于特定会话和特定虚拟机主机而保存的。这一用户数据集可被称为如上所述的VHD。因此,当用户重新访问网站以经由远程桌面会话访问单用户应用或重新启动该单用户应用时,可将先前的用户数据和保存的数据文件以及关于单用户应用的任何偏好转移到新会话。图15描绘了用于部署计算环境中的软件应用的示例性操作过程,包括操作1500、1501、1502、1504、1506和1508。参考图15,操作1500开始该操作过程,并且操作1501示出接收被配置成接受来自单个用户的输入的单用户应用。操作1502示出向多个用户提供对单用户应用的指示的访问。操作1504示出经由远程网络连接来基本上同时处理来自多个客户机计算设备的访问单用户应用的多个请求。操作1506示出对于来自多个客户机计算设备的每一个请求,实例化远程桌面操作环境并在该远程桌面操作环境中的每一个上实例化单用户应用。操作1508示出允许多个客户机计算设备中的每一个基本上同时访问实例化的单用户应用中的一个。图16描绘了用于如上所述地部署计算环境中的软件应用的示例性系统。参考图16,系统1600包括处理器1610和存储器1620。存储器1620还包括被配置成用于计算环境中的软件应用的计算机指令。框1621示出接收被配置成接受来自单个用户的输入的单用户应用。框1622示出向多个用户提供对单用户应用的指示的访问。框1624示出经由远程网络连接来基本上同时处理来自多个客户机计算设备的访问单用户应用的多个请求。框1626示出对于来自多个客户机计算设备的每一个请求,实例化远程桌面操作环境并在该远程桌面操作环境中的每一个上实例化单用户应用。框1628示出允许多个客户机计算设备中的每一个基本上同时访问实例化的单用户应用中的一个。上文所提及的方面中的任何一个方面都可以以方法、系统、计算机可读介质或任何类型的产品来实现。例如,计算机可读介质可以在其上存储用于部署计算环境中的软件应用的计算机可执行指令。这一介质可包括用于接收被配置成接受来自单个用户的输入的单用户应用的第一指令子集;用于向多个用户提供对单用户应用的指示的访问的第二指令子集;用于经由远程网络连接来基本上同时处理来自多个客户机计算设备的访问单用户应用的多个请求的第三指令子集;用于对于来自多个客户机计算设备的每一个请求,实例化远程桌面操作环境并在该远程桌面操作环境中的每一个上实例化单用户应用的第四指令子集;以及用于允许多个客户机计算设备中的每一个基本上同时访问实例化的单用户应用中的一个的第五指令子集。本领域技术人员可以理解,可以使用附加指令集来捕捉此处所公开的各其他方面,且根据本发明,目前所公开的五个指令子集可以在细节方面不同。
权利要求
1.一种部署计算环境中的软件应用的方法,所述方法包括 接收(1501)被配置成接受来自单个用户的输入的单用户应用; 向多个用户提供(1502)对所述单用户应用的指示的访问; 经由远程网络连接来基本上同时处理(1504)来自多个客户机计算设备的访问所述单用户应用的多个请求; 对于来自所述多个客户机计算设备的每一个请求,实例化(1506)远程桌面操作环境并在所述远程桌面操作环境中的每一个上实例化所述单用户应用;以及 允许(1508)所述多个客户机计算设备中的每一个基本上同时访问实例化的单用户应用中的一个。
2.如权利要求I所述的方法,其特征在于,所述用户界面能用于在web浏览器上显示。
3.如权利要求I所述的方法,其特征在于,虚拟化的远程桌面操作环境能使用URL来经由因特网访问。
4.如权利要求I所述的方法,其特征在于,虚拟化的远程桌面操作环境包括操作系统以及将被包括在所述操作系统中的软件应用。
5.如权利要求I所述的方法,其特征在于,所述实例化的单用户应用是在虚拟机上实例化的。
6.如权利要求I所述的方法,其特征在于,还包括监视终端用户对所述单用户应用的使用。
7.如权利要求6所述的方法,其特征在于,还包括基于所述监视来收取访问费用。
8.一种计算系统(1600),包括 包括至少一个处理器的计算设备; 在所述系统运行时通信地耦合到所述处理器的存储器,所述存储器具有存储于其中的计算机指令,所述计算机指令在由所述至少一个处理器执行时致使 接收(1621)被配置成接受来自单个用户的输入的单用户应用; 向多个用户提供(1622)对所述单用户应用的指示的访问; 经由远程网络连接来基本上同时处理(1624)来自多个客户机计算设备的访问所述单用户应用的多个请求; 对于来自所述多个客户机计算设备的每一个请求,实例化(1626)远程桌面操作环境并在所述远程桌面操作环境中的每一个上实例化所述单用户应用;以及 允许(1628)所述多个客户机计算设备中的每一个基本上同时访问实例化的单用户应用中的一个。
9.如权利要求8所述的计算系统,其特征在于,还包括监视终端用户对所述单用户应用的访问并基于支付结构来收取用户访问费用。
10.一种其上存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令用于部署计算环境中的软件应用,所述计算机可读存储介质包括 用于接收被配置成接受来自单个用户的输入的单用户应用的指令; 用于向多个用户提供对所述单用户应用的指示的访问的指令; 用于经由远程网络连接来基本上同时处理来自多个客户机计算设备的访问所述单用户应用的多个请求的指令;用于对于来自所述多个客户机计算设备的每一个请求,实例化远程桌面操作环境并在所述远程桌面操作环境中的每一个上实例化所述单用户应用的指令;以及 用于允许所述多个客户机计算设备中的每一个基本上同时访问实例化的单用户应用中的一个的指令。
全文摘要
本发明公开了对单租赁应用的多重租赁。提供了一种用于部署云计算环境中的软件应用的机制。向管理员提供用于允许由多个用户使用针对单个租户设计的软件应用的界面。本发明的一方面是提供一种用于快速且容易地将多用户资格给予诸如autoCAD之类的单租户应用的机制。由此,多个用户能够访问该应用而无需在他们自己的系统上本地地下载和安装一版本。该系统能够确定给定用户使用应用的时间段,因为每一个应用都在作为云环境的一部分的资源上运行。因此,应用提供者在不对现有应用进行任何再工程的情况下以基于使用的模型(例如,按小时或天)来对应用收费是可能的。
文档编号H04L29/08GK102932404SQ20121033941
公开日2013年2月13日 申请日期2012年9月13日 优先权日2011年9月14日
发明者M·达斯, S·亚达夫, A·坎德哈雷, S·马尔帕尼, R·K·巴拉钱德拉, A·赫歇尔, N·K·斯里尼瓦斯, R·米特尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1