CN102932405B - 对应用的多租户访问 - Google Patents

对应用的多租户访问 Download PDF

Info

Publication number
CN102932405B
CN102932405B CN201210339535.2A CN201210339535A CN102932405B CN 102932405 B CN102932405 B CN 102932405B CN 201210339535 A CN201210339535 A CN 201210339535A CN 102932405 B CN102932405 B CN 102932405B
Authority
CN
China
Prior art keywords
user
application
instantiation
desktop
single user
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
CN201210339535.2A
Other languages
English (en)
Other versions
CN102932405A (zh
Inventor
M·达斯
S·亚达夫
A·坎德哈雷
S·马尔帕尼
R·K·巴拉钱德拉
A·赫歇尔
N·K·斯里尼瓦斯
R·米特尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102932405A publication Critical patent/CN102932405A/zh
Application granted granted Critical
Publication of CN102932405B publication Critical patent/CN102932405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了对应用的多租户访问。提供一种用于向云计算环境中的多个用户呈现软件应用的机制。例如,在基于云的平台中提供被设计成供单个用户使用的应用,而不重建该应用。使用基于web的界面,多个云用户可启动和执行该应用。向云用户提供该应用的各种实例,就像该应用被设计成多用户应用那样。

Description

对应用的多租户访问
技术领域
本发明涉及对单租户应用的多用户使用。
背景技术
一种日益流行的联网形式一般被称为远程呈现系统,其能使用诸如远程桌面协议(RDP)以及独立计算体系结构(ICA)等协议来与远程客户端共享桌面和在服务器上执行的其他应用。云计算指的是用于允许对共享的计算资源池进行按需网络访问的计算环境。许多云计算服务涉及诸如上文所述的那些虚拟化的资源,并且可以采取用户能够通过web浏览器来访问和使用的基于web的工具或应用的形式,就好像它们是本地地安装在用户自己的计算机上的程序那样。
许多应用被设计成供单个用户使用。例如,AutoCAD被设计为单租户应用并且旨在由单个用户使用,而不是由多个用户同时使用。相反,诸如Bing等基于web的多租户应用旨在由数百万个用户同时访问。
发明内容
在云计算系统中,经常期望提供对未被设计成在这一环境中执行的软件应用的访问。公开了用于向云计算环境中的多个用户呈现软件应用的方法和系统。例如,在基于云的平台中提供被设计成供单个用户使用的应用,而不重建该应用。使用基于web的界面,多个云用户可启动和执行该应用。向云用户呈现该应用的各种实例,就像该应用被设计成多用户应用那样。
附图说明
参考附图来进一步描述根据本说明书的用于向虚拟化的计算环境中的多个用户部署软件应用的系统、方法和计算机可读介质,在附图中:
图1描绘了其中可实现本发明的各方面的示例计算环境。
图2描绘了其中可实现本发明的各方面的示例计算环境。
图3描绘了包括数据中心的示例计算环境。
图4描绘了数据中心的操作环境。
图5描绘了用于实施本发明的各方面的操作环境。
图6示出了用于实施此处所公开的某些方法的示例体系结构。
图7示出了描绘此处所公开的某些方法的示例框图。
图8示出了描绘云数据服务的计算组件的示例框图。
图9示出了描绘云数据服务的存储组件的示例框图。
图10示出了描绘云数据服务的结构控制器组件的示例框图。
图11示出了描绘云数据服务的CDN组件的示例框图。
图12示出了描绘云数据服务的连接组件的示例框图。
图13示出了此处所公开的方法的示例实施例。
图14示出了此处所公开的方法的示例实施例。
图15示出了用于实施本公开的各方面的操作过程的示例。
图16示出了用于实施本发明的各方面的示例系统。
图17示出了用户数据装载场景的示例实施例。
图18示出了此处所公开的方法的示例实施例。
具体实施方式
在以下描述和附图中阐明了某些具体细节,以提供对本公开的各个实施例的全面理解。通常与计算和软件技术相关联的某些公知细节不在以下公开中描述,以避免不必要地使本公开的各实施例晦涩难懂。此外,相关领域的普通技术人员会理解,他们可以无需以下描述的细节中的一个或多个而实现本公开的其它实施例。最后,尽管在以下公开中参考了步骤和序列来描述各个方法,但是如此的描述是为了提供本公开的实施例的清楚实现,且步骤以及步骤序列不应被认为是实现本公开所必需的。
应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组合来实现。因此,本公开的方法和装置或其某些方面或部分,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载至诸如计算机等机器并由其运行时,该机器成为用于实现本公开的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如,通过使用应用编程接口(API)、可重用控件等来实现或利用结合本发明描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
远程桌面系统是维护可由客户端计算机系统远程地执行的应用的计算机系统。输入是在客户计算机系统处被输入的,并通过网络(例如,使用基于国际电信联盟(ITU)T.120系列协议等协议,如远程桌面协议(RDP))传送到终端服务器上的应用。该应用如同该输入是在终端服务器处输入的那样来处理该输入。该应用响应于所接收到的输入来生成输出,并且通过网络将该输出传送到客户端。
各实施例可以在一个或多个计算机系统上执行。图1和以下讨论旨在提供其中可以实现所公开的主题的适当计算环境的简要描述。本领域的技术人员可以理解,计算机系统200、300可具有相对于图1的计算机100描述的组件中的一部分或全部。
贯穿本公开使用的术语电路可包括诸如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操作这些硬件的固件/软件。术语电路还可包括被配置成通过固件或通过开关集来以特定方式执行功能的微处理器,或一个或多个逻辑处理器,例如,多核通用处理单元的一个或多个核。此示例中的逻辑处理器可以通过从存储器,例如,RAM、ROM、固件和/或虚拟存储器中加载的体现可操作以执行功能的逻辑的软件指令来配置。在其中电路包括硬件和软件的组合的示例实施例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由逻辑处理器执行的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件的组合之间几乎没有差别的地步,因而选择硬件还是软件来实现功能只是一个设计选择。因此,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬件结构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现是无足轻重的且留给了实现者。
图1描绘了以本公开的各方面来配置的计算系统的示例。计算系统可包括计算机20等等,其中包括处理单元21、系统存储器22,以及将包括系统存储器在内的各种系统组件耦合到处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)被存储在ROM24中,该基本输入/输出系统26包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。计算机20还可以包括用于读写硬盘(未示出)的硬盘驱动器27、用于读写可移动磁盘29的磁盘驱动器28,以及用于读写诸如CDROM或其他光学介质之类的可移动光盘31的光盘驱动器30。在一些示例实施例中,实施本公开的各方面的计算机可执行指令可存储在ROM24、硬盘(未示出)、RAM25、可移动磁盘29、光盘31和/或处理单元21的高速缓存中。硬盘驱动器27、磁盘驱动器28,以及光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33,以及光盘驱动器接口34连接到系统总线23。驱动器以及它们相关联的计算机可读介质为计算机20提供了计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然此处所描述的环境使用了硬盘、可移动磁盘29、以及可移动光盘31,但是,那些本领域普通技术人员应该理解,在操作环境中也可以使用诸如盒式磁带、闪存卡、数字视频盘、伯努利磁带盒、随机存取存储器(RAM)、只读存储器(ROM)等等之类的可以存储可由计算机进行访问的数据的其他类型的计算机可读介质。
可以有若干个程序模块存储在硬盘、磁盘29、光盘31、ROM24或RAM25上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。用户可以通过诸如键盘40和定点设备42之类的输入设备向计算机20中输入命令和信息。其他输入设备(未示出)可包括话筒、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些及其他输入设备常常通过耦合到系统总线的串行端口接口46连接到处理单元21,但是,也可以通过诸如并行端口、游戏端口、通用串行总线(USB)之类的其他接口来连接。显示器47或其他类型的显示设备也可以通过诸如视频适配器48之类的接口连接到系统总线23。除了显示器47之外,计算机通常包括其他外围输出设备(未示出),如扬声器和打印机。图1的系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56,以及连接到SCSI总线56的外部存储设备62。
计算机20可使用到一个或多个远程计算机(诸如,远程计算机49)的逻辑连接而在联网环境中操作。远程计算机49可以是另一计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点、虚拟机,并通常包括上文相对于计算机20所描述的许多或全部元件,但是在图1中只示出了存储器存储设备50。图1中所描绘的逻辑连接可包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍的。
当用于LAN联网环境中时,计算机20可通过网络接口或适配器53连接到LAN51。当用于WAN联网环境中时,计算机20可通常包括调制解调器54,或用于通过诸如因特网之类的广域网52建立通信的其他手段。可以是内置的或外置的调制解调器54可通过串行端口接口46连接到系统总线23。在联网环境中,相对于计算机20所示的程序模块或其部分可被存储在远程存储器存储设备中。可以理解,所示出的网络连接只是示例,也可以使用用于在计算机之间建立通信链路的其他手段。此外,虽然可构想本发明的许多实施例尤其适用于计算机系统,然而在本文中不意味着将本公开限于这些实施例。
现在参考图2,所描绘的是被配置成实现虚拟机的计算机系统的高级框图。如图所示,计算机系统100可包括图1和2中所描述的元件,以及可用于实现虚拟机的组件。一个这样的组件是在本领域中也可被称为虚拟机监控程序的系统管理程序(hypervisor)202。所描绘的实施例中的系统管理程序202可被配置成控制并仲裁对计算机系统100的硬件的访问。广泛而言,系统管理程序202可以生成称为分区的执行环境,如子分区1到子分区N(其中N是大于或等于1的整数)。在各实施例中,子分区可被认为是系统管理程序202所支持的基本隔离单位,即,每一子分区可被映射到在系统管理程序202和/或父分区的控制下的一组硬件资源,例如存储器、设备、逻辑处理器周期等,并且系统管理程序202可以隔离一个分区使其无法访问另一分区的资源。在各实施例中,系统管理程序202可以是独立软件产品,操作系统的一部分、被嵌入在主板的固件内、专门的集成电路,或其组合。
在以上示例中,计算机系统100包括父分区204,父分区在开源社区中也可被认为是域0。父分区204可被配置成通过使用虚拟化服务向在子分区1-N中执行的客操作系统提供资源。每一子分区可包括一个或多个虚拟处理器,例如客操作系统220到222可管理并调度线程在其上执行的虚拟处理器230到232。一般而言,虚拟处理器230到232是提供带有特定体系结构的物理处理器的表示的可执行指令和相关联状态信息。例如,一个虚拟机可具有带有英特尔x86处理器特性的虚拟处理器,而另一虚拟处理器可具有PowerPC处理器的特性。本示例中的虚拟处理器可被映射到计算机系统的逻辑处理器,使得实现虚拟处理器的指令将受到逻辑处理器的支持。如此,在这些示例实施例中,多个虚拟处理器可以同时执行,而同时例如另一逻辑处理器正执行系统管理程序指令。一般而言,且如图所示,分区中的虚拟处理器以及存储器的组合可被认为是虚拟机,如虚拟机240或242。
一般而言,客操作系统220到222可包括诸如,例如,来自 开放源代码社区等等的操作系统之类的任何操作系统。客操作系统可包括用户/内核操作模式,并且可具有包括调度器、存储器管理器等的内核。内核模式可包括逻辑处理器中的执行模式,该执行模式授予对至少特权处理器指令的访问。每一客操作系统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所示的示例数据中心中,LAN401被用来与服务器计算机402互连。LAN401还可连接到图3所示的WAN306。应该理解,图3和4所示的网络拓扑结构已经被极大地简化,并且可利用多得多的网络和联网设备来互连此处所公开的各种计算系统。合适的负载平衡设备或软件模块还可用于在数据中心之间、在每一个数据中心中的每一个服务器计算机402之间、以及在由数据中心的每一个客户购买的实例406之间进行负载平衡。这些网络拓扑结构和设备对于本领域技术人员而言应该是显而易见的。
云计算一般指的是用于实现对诸如上文所述的计算资源(例如,应用、服务器和存储)的共享池的按需网络访问的计算环境。此类计算环境可用最少的管理工作或服务提供者交互来快速地供应和释放。云计算服务通常不要求终端用户知晓递送服务的系统的物理位置以及配置。服务可以是基于消耗的并且经由因特网来递送。许多云计算服务涉及诸如上文所述的那些虚拟化的资源,并且可以采取用户能够通过web浏览器来访问和使用的基于web的工具或应用的形式,就好像它们是本地地安装在用户自己的计算机上的程序那样。
云计算服务通常构建在某种类型的平台上。对于诸如在组织的数据中心内部运行的某些应用而言,此类平台可包括操作系统以及被配置成存储数据的数据存储服务。运行在云中的应用可使用类似的基础。
图5提供了图3所示的实例环境的进一步细节。用户计算机304处的管理员可建立桌面配置501,包括标识操作系统、应用、策略和存储设置。此类偏好可由管理员改变,并且服务的提供者可针对提供所请求的配置向管理员收费。
在一实施例中并且如图6进一步描述的,云服务可实现如下包括四层栈的体系结构:
·云计算平台601,被配置成提供资源以支持云服务
·桌面供应和管理层602,用于创建和管理云计算资产,所述云计算资产使得应用提供者能够提供应用、企业桌面提供者和桌面零售商能够创建和管理桌面、用户能够连接到他们的桌面等。这一层可将应用和桌面的逻辑视图转换成云计算平台的物理资产。
·应用提供者/企业桌面提供者/桌面零售商/用户体验层603,为上述四种类型的实体中的每一种实体提供独特的端到端体验。
·垂直层604,为特定的用户组提供由桌面零售商提供的一组自定义体验。
在云计算平台的一个实施例中,可实现戳记(stamp)并使用戳记来定义隔离单元,并且可将戳记配置成定义传统的远程桌面部署。可提供维护顾客人工制品和凭证、跨戳记管理负载、以及供应戳记并调整戳记的大小的远程桌面控制器组件。远程桌面控制器还可创建并管理应用和桌面。特定端点提供用户桌面的虚拟等价物,一个(或多个)戳记提供公司的计算基础架构的虚拟等价物。
上文所述的各层可涉及多个组件。此类组件可包括在下文中进一步描述的下列组件。
·计算组件(例如,图8),运行云中的应用。
·存储组件(例如,图9),存储云中的二进制和结构化数据
·结构控制器组件(例如,图10),部署、管理和监控应用。结构控制器还处理整个平台上对系统软件的更新
·内容递送网络(CDN)组件(例如,图11),通过在全世界范围内维护云存储中的数据的高速缓存的副本来提高该数据的全球访问速度。
·连接组件(例如,图12),允许在本地计算机和云应用之间创建IP层连接。
参考描绘计算组件810的图8,应用可被实现为如上所述的一个或多个角色800801802。云服务可通过使用负载平衡来跨角色地传播请求来运行每一个角色的多个实例。
可向开发者提供门户以将应用提交给云服务。门户可被配置成接收配置信息,该配置信息通知云平台每一个角色要运行多少实例。结构控制器组件可为每一个实例创建虚拟机(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部门要求来对用户可访问和配置。用户可使用提供给用户的凭证来登录系统。凭证可以是诸如WindowsLiveID或OpenID(开放ID)之类的持久ID。用户随后将被重定向至认证服务器,该认证服务器可要求通过安全连接输入用户名和口令。一旦通过认证,用户可被发放对于该用户而言持久的口令,所述口令被提供给其他服务以使得不再需要附加的授权。在一实施例中,即使桌面会话结束,口令对于该用户而言可能是持久的,除非用户显式地从会话登出。
可以提供一种用于自动地登录到基于云的系统的机制,在所述基于云的系统中,单次用户认证和授权过程准许用户访问用户具有访问许可的基于云的系统中的资源而无需输入多次口令。提供单次登录允许用户登录一次并且访问多个应用而无需输入更多次的口令。单次登录通过经由减少必须被维护的口令数量来提升安全性和效率,对于企业而言是合乎需要的。对于云服务提供者而言,单次登录通过允许用户更大的访问权而无需附加的认证工作来提供更好的用户体验。
基于云的服务可能不接受由单次登录服务所生成的令牌登录凭证。例如,web-ID提供者或单次登录服务可向用户提示单次凭证,并且服务可生成可用于连接到其他服务的权证或令牌。此类系统的示例包括Windows、Linux和iOS。给予本地企业域中的用户例如对在云服务中运行的应用的单次登录是合乎需要的。
在一实施例中,当用户登录到基于云的桌面并提供认证凭证时,可自动地生成和保持一次性口令。所生成的一次性口令可用于自动地登录到基于云的系统中的其他过程。在一实施例中,所生成的一次性口令可被保持到用户显式地登出为止。因此,即使在桌面会话被意外终止的情况下,口令也可被保持。
在另一实施例中,用户可具有用于提供诸如WindowsLive或Yahoo之类的集成在线服务的服务的账户。此类服务可提供诸如能使用单个用户ID和口令来访问的电子邮件和多媒体服务之类的服务和软件产品集。在一实施例中,此类集成服务的用户也可被提供如上所述地访问基于云的计算服务的选项。因此,当用户选择了基于云的计算服务作为此类集成服务的一部分时,一旦用户登录了服务,则可向用户呈现访问基于云的计算服务并请求远程桌面会话的选项。因为例如远程桌面之类的基于云的服务可能不接受来自集成服务的凭证,所以基于云的服务可生成带有允许用户访问桌面会话的一次性口令的账户。一次性口令的细节不必提供给用户,因为该口令仅在会话期间存在或者仅存在至用户登出为止。在一实施例中,一次性口令可被保持以使得在桌面被无意地断开连接的情况下用户可返回至桌面而不必重启登录过程。
在图14所示的一实施例中,客户机1404可输入他的公司的基于云的服务主页1400的URL。另选地,用户可输入集成在线服务的URL。用户可被定向至向用户提示认证凭证的在线认证服务1404。在线认证服务1401可以是用户的管理员所使用的服务,并且用户的凭证信息可由管理员提供给云服务,从而授权服务创建用户简档并允许用户启动和访问桌面。另选地,在线认证服务1401可由集成在线服务提供。一旦用户经过认证,该用户被定向至主页1402,该用户可使用由在线认证服务所提供的凭证来访问云服务1410。云服务1410生成一次性口令1405和/或临时用户账户,并且用户的一次性口令被发送140至端点1407。如上所述,端点1407可以是用户桌面会话。
一次性口令可基于在线认证服务接收到的凭证来生成。在一实施例中,口令可被存储在主存用户会话的虚拟机中的本地凭证存储中。因此,口令不随着用户被保持在用户简档中,从而允许增强的安全性并避免了对云服务为每一个用户维护口令的需要。
可向用户呈现可被选择和登录的多个桌面,例如,工程桌面、财务桌面等。例如,每一个桌面可针对特定的功能来定制。可基于预定义的授权来向用户呈现特定的桌面。一旦用户选择了桌面,可为该用户实例化新的桌面实例。如果先前的桌面实例被选择,则可恢复与先前的桌面实例相关联的会话。该用户的会话以及其他用户的会话可作为主存多个此类会话的虚拟机内的端点而被启动。所保存的简档可与被创建的或被恢复的每一个端点相关联,所述简档包括来自先前会话的用户偏好和状态信息以及用于维护用户状态所需的其他信息,从而用户的会话可被保持、暂停和恢复。一般地,桌面可由操作系统、应用和设置构成。桌面实例一般指的是桌面加上特定的用户简档。在某些情况下,桌面实例和桌面会话可互换地使用。
在一实施例中,可为额外的用户启动多个会话。参考图14所示的示例实施例,当额外的用户登录到系统时,可实例化对应于多个端点的多个会话。此外,用户可包括如用户组的管理员所定义的多个用户类型。例如,如图所示,类型1和类型2的多个用户可登录到系统并开始会话。例如,类型1可以是财务类型桌面而类型2可以是工程类型桌面。当然,其它示例也是可能的。虚拟机可被配置成主存一个或多个类型的多个会话。在一实施例中,会话数量可独立于主存各个用户会话的底层虚拟机配置。当在虚拟机上实例化额外的用户会话时,可启动额外的虚拟机。在一实施例中,一组多个远程桌面会话可被配置成在虚拟机上执行。在需要更多的远程桌面会话时,可启动另一虚拟机。可提供弹性的虚拟机池,以使得可在任何时候动态地添加会话而无需终端用户或管理员理解提供服务的结构的底层细节。
因为用户可被分配来自可用虚拟机(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的界面,多个云用户可启动和执行该应用。向云用户呈现该应用的各种实例,就像该应用被设计成多用于应用那样。
在一实施例中,针对单个用户构建的应用可以在基于云的平台上提供。应用提供者可访问网站或其他用户界面以上传单用户应用,并请求该单用户应用经由基于云的平台对多个用户是可访问的。尽管该应用并非针对多用户访问而设计,但本发明提供了一种可用于在无需应用提供者重建应用的情况下使得这一应用可由无限数量的用户访问的机制。
在云计算环境中,执行针对单个用户设计的应用可能导致其中处理能力/硬件是容易地可用的情况,但在这种情况下软件体系结构使得应用无法呈现给多个用户或多个用户会话。例如,在单个用户的情况下,可根据单用户应用的需求来为该应用分配资源,并且该应用可以在单个资源集上执行。
在一实施例中,可解析单用户应用的一个或多个部分,并且可以在正在一个或多个虚拟机中运行的一个或多个端点中实例化该软件的该一个或多个部分的多个实例。该软件的一个或多个部分中的每一个然后可以与一个或多个用户会话相关联并被交付以便呈现给每一个用户会话。该一个或多个用户会话中的每一个都可以与该软件的一个或多个部分的对应实例进行通信,并且可收发指示与该应用的进程相关联的指令的数据。由此,与该一个或多个用户会话相关联的软件的一个或多个部分可经由用户会话向用户发送数据以及从用户接收数据。该软件的一个或多个部分的实例接收到的请求可以在一个或多个虚拟机上执行。
在另一实施例中,针对单个用户构建的应用的单个实例可以在虚拟机中执行。多租户应用管理器可以与多个用户会话通信,并且对于每一个用户会话,该多租户应用管理器可维护用户会话与应用的交互的状态。该应用可接收和处理来自用户会话的请求。对于每一个用户会话,可呈现用户显示画面的快照。
在一个实施例中,多租户应用管理器可以在对应用可用的资源池中添加和/或移除资源。此外,多租户应用管理器可使得每一个用户会话的请求排队。在另一实施例中,可实例化应用的多个实例,每一个实例都与一用户会话相关联应用的每一个实例然后可维护其自己的对应于它们各自的用户会话的状态。
在一实施例中,应用提供者可访问云数据服务,并且使用web或其他用户界面可上传该提供者希望变得对多个用户可用的单用户应用。提供者可选择各选项,诸如URL(例如,www.mysingleapp.com)以及用户为了使用该单用户应用而应支付的费用。通常,这一单用户应用将会是复杂的应用,该复杂的应用最初针对单个用户设计并且在按使用的基础上重新构建以作为多用户应用提供将会是昂贵的。用户可能经常希望为对这一应用的单次使用支付固定费用,而不是付出购买可能不频繁地使用的复杂应用的高成本。应用提供者可将软件上传至云并选择例如基于使用或日、月或周访问的费用。用户可通过信用卡或账单等来付费。
云服务提供者可主存可通过应用提供者选择的URL访问的网站。可以向用户提供网页,该网页提供关于单用户应用的信息。可以向用户提供用于选择费用支付选项的选项。参考图18,用户可被定向到支付和认证服务1801,该服务提示用户以获取支付信息。一旦用户经过认证,该用户就被定向至欢迎主页1802。云服务1810生成一次性口令1805和/或临时用户账户,并且用户的一次性口令被发送1806至端点1807。如上所述,端点1807可以是用户桌面会话。用户桌面会话然后开始单用户应用1807的实例并且根据上述实施例中的一个。经由用户的屏幕来向用户呈现单用户应用的图形表示,对于该用户就像是该单用户应用的实例。
在另一实施例中,从用户会话的观点来看,在经由网页登录到云计算系统后,可以向用户呈现还可包括选择单用户应用的选项的桌面。用户可选择单用户应用,并且表示单用户应用的实际用户界面的外观和感觉的界面可经由该用户的web浏览器来呈现给用户,就像该单用户应用正在本地的计算资源集上本地地执行那样。多个用户可以在并行用户会话中访问单用户应用,每一个会话都看上去是独立访问和执行该单用户应用。
如上所述,用户偏好和状态数据可被保存到可与用户相关联的数据结构,以使得任何时候用户登录并被分配桌面时,都可获得用户偏好和状态数据并且可恢复用户先前的桌面状态。根据本发明的一方面,关于单用户应用的用户状态是独立于特定会话和特定虚拟机主机而保存的。这一用户数据集可被称为如上所述的VHD。因此,当用户重新访问网站以经由远程桌面会话访问单用户应用或重新启动该单用户应用时,可将先前的用户数据和保存的数据文件以及关于单用户应用的任何偏好转移到新会话。
图15描绘了用于向虚拟化的计算环境中的多个用户部署软件应用的示例性操作过程,包括操作1500、1502、1504、1506、1508和1510。参考图15,操作1500开始该操作过程并且操作1502示出实例化虚拟化的计算基础架构,该虚拟化的计算基础架构经由远程网络连接使得一个或多个用户远程桌面操作环境经由基于web的用户界面对多个用户可用。该用户远程桌面配置可包括所保存的关于操作环境和在该操作环境中执行的软件应用的状态信息。远程桌面配置可各自对应于一用户角色。例如,管理员可使用用户界面来为中等大小的公司定义两个桌面环境。管理员可定义用于工程人员的第一桌面环境,并且可选择操作系统和版本、电子邮件和日历应用、浏览器应用、办公应用以及制图应用。管理员可进一步指定一次可使用最多五十个这样的桌面。管理员还可定义用于财务人员的第二桌面环境,并且可选择操作系统和版本、电子邮件和日历应用、浏览器应用、办公应用以及数据库应用。管理员可进一步指定一次可使用最多二十五个这样的桌面。远程桌面配置可经由因特网通过使用URL来访问。例如,在配置桌面环境之后,桌面环境可由各个用户通过输入例如www.company.com/tech和www.company.com/finance来访问。
操作1504示出经由一个或多个用户远程桌面操作环境来提供对能够接受来自单个用户的输入的应用的指示的访问。
操作1506示出经由一个或多个用户远程桌面操作环境来接收访问单用户应用的请求。
操作1508示出对于每一个请求,在一个或多个用户远程桌面操作环境中的每一个上实例化单用户应用,并允许多个用户中的每一个基本上同时访问实例化的单用户应用中的一个。
操作1510示出维护关于实例化的单用户应用的状态数据以使得该实例化的单用户应用能够在后续会话中恢复。
图16描绘了用于如上所述地向虚拟化的计算环境中的多个用户部署软件应用的示例性系统。参考图16,系统1600包括处理器1610和存储器1620。存储器1620还包括用于向虚拟化的计算环境中的多个用户部署软件应用的计算机指令。框1622示出实例化虚拟化的计算基础架构,该虚拟化的计算基础架构经由远程网络连接使得一个或多个用户远程桌面操作环境经由基于web的用户界面对多个用户可用。框1624示出经由一个或多个用户远程桌面操作环境来提供对能够接受来自单个用户的输入的应用的指示的访问。框1626示出经由一个或多个用户远程桌面操作环境来接收访问单用户应用的请求。框1628示出对于每一个请求,在一个或多个用户远程桌面操作环境中的每一个上实例化单用户应用,并允许多个用户中的每一个基本上同时访问实例化的单用户应用中的一个。框1630示出维护关于实例化的单用户应用的状态数据以使得该实例化的单用户应用能够在后续会话中恢复。
上文所提及的方面中的任何一个方面都可以以方法、系统、计算机可读介质或任何类型的产品来实现。例如,计算机可读介质可以在其上存储用于向虚拟化的计算环境中的多个用户部署软件应用的计算机可执行指令。这一介质可包括用于实例化虚拟化的计算基础架构的第一指令子集,该虚拟化的计算基础架构经由远程网络连接使得一个或多个用户远程桌面操作环境经由基于web的用户界面对多个用户可用;用于经由一个或多个用户远程桌面操作环境来提供对能够接受来自单个用户的输入的应用的指示的访问的第二指令子集;用于经由一个或多个用户远程桌面操作环境来接收访问单用户应用的请求的第三指令子集;用于执行以下操作的第四指令子集:对于每一个请求,在一个或多个用户远程桌面操作环境中的每一个上实例化单用户应用,并允许多个用户中的每一个基本上同时访问实例化的单用户应用中的一个;以及用于维护关于实例化的单用户应用的状态数据以使得该实例化的单用户应用能够在后续会话中恢复的第五指令子集。本领域技术人员可以理解,可以使用附加指令集来捕捉此处所公开的各其他方面,且根据本发明,目前所公开的五个指令子集可以在细节方面不同。

Claims (8)

1.一种用于向虚拟化的计算环境中的多个用户部署软件应用的方法,所述方法包括:
实例化虚拟化的计算基础架构,所述虚拟化的计算基础架构经由远程网络连接使得一个或多个用户远程桌面操作环境经由基于web的用户界面对多个用户可用;
经由所述一个或多个用户远程桌面操作环境来提供对能够接受来自单个用户的输入的单用户应用的指示;
经由所述一个或多个用户远程桌面操作环境来接收访问所述单用户应用的至少一个请求;
对于所述至少一个请求,在所述一个或多个用户远程桌面操作环境上实例化所述单用户应用,并允许所述多个用户同时访问实例化的单用户应用中的一个;以及维护关于所述实例化的单用户应用的状态数据,其中所述状态数据允许所述实例化的单用户应用在至少一个后续会话中恢复。
2.如权利要求1所述的方法,其特征在于,还包括为多个用户呈现和维护关于所述单用户应用的多个实例的状态数据。
3.如权利要求1所述的方法,其特征在于,所述实例化的单用户应用是在虚拟机上实例化的。
4.如权利要求1所述的方法,其特征在于,所述实例化包括实例化所述单用户应用的单个副本的各部分。
5.如权利要求1所述的方法,其特征在于,所述维护是由被配置成管理对所述实例化的单用户应用的访问的多租户应用管理器来执行的。
6.如权利要求5所述的方法,其特征在于,所述维护是由被配置成管理对所述单个副本的实例化的各部分的访问的多租户应用管理器来执行的。
7.一种用于向虚拟化的计算环境中的多个用户部署软件应用的系统,所述系统包括:
用于实例化虚拟化的计算基础架构的装置,所述虚拟化的计算基础架构经由远程网络连接使得一个或多个用户远程桌面操作环境经由基于web的用户界面对多个用户可用;
用于经由所述一个或多个用户远程桌面操作环境来提供对能够接受来自单个用户的输入的单用户应用的指示的装置;
用于经由所述一个或多个用户远程桌面操作环境来接收访问所述单用户应用的至少一个请求的装置;
用于对于所述至少一个请求,在所述一个或多个用户远程桌面操作环境上实例化所述单用户应用,并允许所述多个用户同时访问实例化的单用户应用中的一个的装置;以及
用于维护关于所述实例化的单用户应用的状态数据其中所述状态数据允许所述实例化的单用户应用在至少一个后续会话中恢复的装置。
8.如权利要求7所述的系统,其特征在于,还包括用于为多个用户呈现和维护关于所述单用户应用的多个实例的状态数据的装置。
CN201210339535.2A 2011-09-14 2012-09-13 对应用的多租户访问 Active CN102932405B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/232,863 2011-09-14
US13/232,863 US8589481B2 (en) 2011-09-14 2011-09-14 Multi tenant access to applications

Publications (2)

Publication Number Publication Date
CN102932405A CN102932405A (zh) 2013-02-13
CN102932405B true CN102932405B (zh) 2016-03-30

Family

ID=47647102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210339535.2A Active CN102932405B (zh) 2011-09-14 2012-09-13 对应用的多租户访问

Country Status (5)

Country Link
US (2) US8589481B2 (zh)
EP (1) EP2756392B1 (zh)
CN (1) CN102932405B (zh)
ES (1) ES2709275T3 (zh)
WO (1) WO2013039846A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225209B2 (en) 2015-01-21 2019-03-05 Oracle International Corporation System and method for interceptors in a multitenant application server environment

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782238B2 (en) 2010-11-05 2014-07-15 Verizon Patent And Licensing Inc. Server clustering in a computing-on-demand system
US8589481B2 (en) * 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US9369504B1 (en) * 2011-10-31 2016-06-14 Rollapp, Inc. Enabling seamless remote access to online applications through a web server
US9311457B1 (en) * 2011-11-02 2016-04-12 Google Inc. Platform for cloud application software
CN103107905B (zh) * 2011-11-14 2017-08-04 华为技术有限公司 异常处理方法、装置和客户端
WO2013078532A1 (en) * 2011-12-02 2013-06-06 Research In Motion Limited Methods and devices for configuring a web browser based on an other party's profile
US9954718B1 (en) * 2012-01-11 2018-04-24 Amazon Technologies, Inc. Remote execution of applications over a dispersed network
CN102646190B (zh) * 2012-03-19 2018-05-08 深圳市腾讯计算机系统有限公司 一种基于生物特征的认证方法、装置及系统
US20130325796A1 (en) * 2012-06-05 2013-12-05 Michael Basnight System and Method for Integrating Databases in a Cloud Environment
US10225164B2 (en) * 2012-09-07 2019-03-05 Oracle International Corporation System and method for providing a cloud computing environment
US8438654B1 (en) 2012-09-14 2013-05-07 Rightscale, Inc. Systems and methods for associating a virtual machine with an access control right
US9503310B1 (en) * 2012-11-27 2016-11-22 Leidos, Inc. Methods and systems of dynamic management of resources in a virtualized environment
CA2897042A1 (en) 2013-01-09 2014-07-17 Evernym, Inc. Systems and methods for access-controlled interactions
US9195513B2 (en) * 2013-02-22 2015-11-24 Sas Institute Inc. Systems and methods for multi-tenancy data processing
US9292713B2 (en) * 2013-03-13 2016-03-22 Intel Corporation Tiered access to on chip features
US9325632B2 (en) * 2013-03-15 2016-04-26 International Business Machines Corporation Multi-tenancy support for enterprise social business computing
US8769644B1 (en) 2013-03-15 2014-07-01 Rightscale, Inc. Systems and methods for establishing cloud-based instances with independent permissions
CN104050201B (zh) * 2013-03-15 2018-04-13 伊姆西公司 用于多租户分布式环境中的数据管理的方法和设备
US9848000B2 (en) 2013-04-28 2017-12-19 Hewlett-Packard Development Company, L.P. Resource access
US9135042B2 (en) * 2013-06-13 2015-09-15 International Business Machines Corporation Provisioning a secure customer domain in a virtualized multi-tenant environment
US9264289B2 (en) 2013-06-27 2016-02-16 Microsoft Technology Licensing, Llc Endpoint data centers of different tenancy sets
EP3042307A4 (en) 2013-09-04 2017-05-03 Hewlett-Packard Enterprise Development LP Providing resources to customers via node-relationship models
EP3042299A1 (en) 2013-09-04 2016-07-13 Hewlett Packard Enterprise Development LP Providing services as resources for other services
WO2015034484A1 (en) 2013-09-04 2015-03-12 Hewlett-Packard Development Company, L.P. Providing recursively-generated instantiated computing resource in a multi-tenant environment
EP3042306A1 (en) 2013-09-04 2016-07-13 Hewlett Packard Enterprise Development LP Policy based selection of resources for a cloud service
US10409625B1 (en) * 2013-09-17 2019-09-10 Amazon Technologies, Inc. Version management for hosted computing workspaces
GB2518367B (en) * 2013-09-18 2020-07-22 Ibm Authorized remote access to an operating system hosted by a virtual machine
US10027753B2 (en) * 2013-10-15 2018-07-17 Microsoft Technology Licensing, Llc Cloud service hosting on client device
US9798769B2 (en) 2013-11-22 2017-10-24 Microsoft Technology Licensing, Llc Sharing document links from multiple data providers
US10063654B2 (en) 2013-12-13 2018-08-28 Oracle International Corporation Systems and methods for contextual and cross application threat detection and prediction in cloud applications
US9692789B2 (en) * 2013-12-13 2017-06-27 Oracle International Corporation Techniques for cloud security monitoring and threat intelligence
US10356161B2 (en) 2014-01-21 2019-07-16 Oracle International Corporation System and method for classloading in a multitenant application server environment
US10635491B2 (en) 2014-01-21 2020-04-28 Oracle International Corporation System and method for use of a multi-tenant application server with a multitasking virtual machine
CN105900059B (zh) 2014-01-21 2019-06-07 甲骨文国际公司 用于在应用服务器、云或其它环境中支持多租户的系统和方法
US10476938B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for multitenancy store in a multitenant application server environment
US10348822B2 (en) 2014-01-21 2019-07-09 Oracle International Corporation System and method for clustering in a multitenant application server environment
CN104866513B (zh) 2014-02-26 2018-09-11 国际商业机器公司 用于跨租户数据访问的系统和方法
CN104754040B (zh) * 2014-03-31 2019-02-12 惠州Tcl移动通信有限公司 用于端到端云服务虚拟化的系统
US9507921B2 (en) * 2014-04-07 2016-11-29 Microsoft Technology Licensing, Llc User-specific application activation for remote sessions
US10834072B2 (en) 2014-04-11 2020-11-10 Nulinx Intl., Inc. Dynamic, customizable, controlled-access child outcome planning and administration resource
US10873627B2 (en) 2014-06-23 2020-12-22 Oracle International Corporation System and method for supporting use of an in-memory data grid with a multitenant application server environment
US10594619B2 (en) 2014-06-23 2020-03-17 Oracle International Corporation System and method for supporting configuration of dynamic clusters in a multitenant application server environment
KR102399421B1 (ko) 2014-06-23 2022-05-19 오라클 인터내셔날 코포레이션 멀티테난트 어플리케이션 서버 환경에서의 파티션 마이그레이션을 위한 시스템 및 방법
US11477278B2 (en) 2014-06-24 2022-10-18 Oracle International Corporation System and method for supporting partitions in a multitenant application server environment
US10284486B2 (en) 2014-07-10 2019-05-07 Oracle International Corporation System and method for resource isolation and consumption in a multitenant application server environment
US10193754B2 (en) 2014-07-14 2019-01-29 Oracle International Corporation System and method for supporting connectors in a multitenant application server environment
US9405530B2 (en) 2014-09-24 2016-08-02 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10469401B2 (en) 2014-09-25 2019-11-05 Oracle International Corporation System and method for supporting lifecycle plugins in a multitenant application server environment
US10348565B2 (en) 2014-09-25 2019-07-09 Oracle International Corporation System and method for rule-based elasticity in a multitenant application server environment
US10382537B2 (en) 2014-09-25 2019-08-13 Oracle International Corporation System and method for use of a global runtime in a multitenant application server environment
US10467061B2 (en) 2014-09-25 2019-11-05 Oracle International Corporation System and method for resource overriding in a multitenant application server environment
US10523709B2 (en) 2014-09-26 2019-12-31 Oracle International Corporation System and method for dynamic security configuration in a multitenant application server environment
JP6564026B2 (ja) 2014-09-26 2019-08-21 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
US11057272B2 (en) 2014-09-26 2021-07-06 Oracle International Corporation System and method for transactions in a multitenant application server environment
JP2016072793A (ja) * 2014-09-30 2016-05-09 ブラザー工業株式会社 遠隔会議システム、プログラム、セキュリティサーバ及びアプリケーションサーバ
US9722873B2 (en) 2014-12-04 2017-08-01 Microsoft Technology Licensing, Llc Zero-downtime, reversible, client-driven service migration
US11659693B2 (en) 2014-12-30 2023-05-23 Dale LeFebvre Heat removal systems and methods
SI3241418T1 (sl) * 2014-12-30 2021-09-30 Dale Lefebvre Sistemi in postopki za odvajanje toplote iz podatkovnega centra
US10178184B2 (en) 2015-01-21 2019-01-08 Oracle International Corporation System and method for session handling in a multitenant application server environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
JP6350302B2 (ja) * 2015-01-22 2018-07-04 オムロン株式会社 プログラマブル表示器
US20160350481A1 (en) * 2015-05-27 2016-12-01 University Of Utah Research Foundation Multi-tenant cloud for healthcare data application delivery
US9736166B2 (en) 2015-06-08 2017-08-15 Microsoft Technology Licensing, Llc System and method for using per-application profiles in a computing device
US10375072B2 (en) * 2015-11-09 2019-08-06 Microsoft Technology Licensing, Llc Dashboard as remote computing services
US10200387B2 (en) * 2015-11-30 2019-02-05 International Business Machines Corporation User state tracking and anomaly detection in software-as-a-service environments
US9867021B1 (en) * 2015-12-02 2018-01-09 Hopgrade, Inc. Specially programmed computing devices being continuously configured to allow unfamiliar individuals to have instantaneous real-time meetings to create a new marketplace for goods and/or services
US10536478B2 (en) 2016-02-26 2020-01-14 Oracle International Corporation Techniques for discovering and managing security of applications
CN107402862A (zh) * 2016-03-17 2017-11-28 阿里巴巴集团控股有限公司 用于在客户端实现资源编排的方法与设备
US20170269916A1 (en) * 2016-03-21 2017-09-21 Microsoft Technology Licensing, Llc Selective Application Installation Or Application Running Without Installation
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
US10536446B2 (en) 2017-01-31 2020-01-14 Microsoft Technology Licensing, Llc. Single authentication to a multi-tenancy single-page cloud application
US11151253B1 (en) * 2017-05-18 2021-10-19 Wells Fargo Bank, N.A. Credentialing cloud-based applications
US11075799B2 (en) 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
CN107395753B (zh) * 2017-08-24 2020-09-01 无锡清华信息科学与技术国家实验室物联网技术中心 一种云协作过程冲突检测及通知方法
US11165800B2 (en) 2017-08-28 2021-11-02 Oracle International Corporation Cloud based security monitoring using unsupervised pattern recognition and deep learning
WO2019140565A1 (zh) * 2018-01-17 2019-07-25 新联智慧信息技术(深圳)有限公司 云存储命令管理方法及系统
WO2019140578A1 (zh) * 2018-01-17 2019-07-25 新联智慧信息技术(深圳)有限公司 数据备份指令管理方法及系统
KR102483834B1 (ko) * 2018-01-17 2023-01-03 삼성전자주식회사 음성 명령을 이용한 사용자 인증 방법 및 전자 장치
US11281673B2 (en) 2018-02-08 2022-03-22 Parallel Wireless, Inc. Data pipeline for scalable analytics and management
CN109358866B (zh) * 2018-08-09 2021-06-25 南京易捷思达软件科技有限公司 一种面向应用的多云管理系统
CN109145005B (zh) * 2018-09-05 2022-05-10 郑州云海信息技术有限公司 一种网站系统的重构方法和装置
US11323449B2 (en) * 2019-06-27 2022-05-03 Citrix Systems, Inc. Unified accessibility settings for intelligent workspace platforms
US11937142B2 (en) 2019-07-31 2024-03-19 Parallel Wireless, Inc. Real-time any-G SON
CN112565158B (zh) * 2019-09-25 2022-10-04 阿里巴巴集团控股有限公司 数据访问方法、装置、系统、电子设备及计算机可读介质
CN112783514B (zh) * 2020-12-31 2022-06-14 罗普特科技集团股份有限公司 一种web前端项目部署管理的方法与系统
US11824794B1 (en) * 2022-05-20 2023-11-21 Kyndryl, Inc. Dynamic network management based on predicted usage

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101014945A (zh) * 2003-11-24 2007-08-08 微软公司 用于远程应用程序发现的web服务
CN101354677A (zh) * 2008-09-11 2009-01-28 青岛海信移动通信技术股份有限公司 一种应用程序运行状态的检测方法、恢复方法及装置
CN101493724A (zh) * 2007-12-20 2009-07-29 英特尔公司 用于改变计算环境的基于位置策略的系统和方法
CN101939729A (zh) * 2008-02-15 2011-01-05 国际商业机器公司 在虚拟化数据处理系统中对管理的虚拟机镜像重新布置任务
CN102150105A (zh) * 2008-09-09 2011-08-10 凯思网络公司 虚拟容器的部署和管理
CN102160036A (zh) * 2008-09-15 2011-08-17 国际商业机器公司 服务环境中虚拟机的安全动态迁移

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684259B1 (en) * 1995-10-11 2004-01-27 Citrix Systems, Inc. Method for providing user global object name space in a multi-user operating system
US6055637A (en) * 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US6023721A (en) * 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
WO2001077824A1 (en) * 2000-04-07 2001-10-18 Agora Interactive, Inc. Method for managing the simultaneous utilization of diverse real-time collaborative software applications
TWI229528B (en) * 2003-10-31 2005-03-11 Benq Corp Method of controlling dataflow for a media player system
US20070260702A1 (en) * 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US7680848B2 (en) 2007-03-29 2010-03-16 Microsoft Corporation Reliable and scalable multi-tenant asynchronous processing
US8019812B2 (en) 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
US20080034408A1 (en) 2007-04-23 2008-02-07 Sachin Duggal Network-Based Computing Service On A Streamed Virtual Computer
US9053162B2 (en) 2007-04-26 2015-06-09 Microsoft Technology Licensing, Llc Multi-tenant hosted application system
US8412809B2 (en) 2007-10-24 2013-04-02 International Business Machines Corporation Method, apparatus and computer program product implementing multi-tenancy for network monitoring tools using virtualization technology
US20090187834A1 (en) * 2008-01-17 2009-07-23 Disney Enterprises, Inc. Method and system for implementing a single user computer application in a multi-user session
US8271536B2 (en) 2008-11-14 2012-09-18 Microsoft Corporation Multi-tenancy using suite of authorization manager components
US8180905B2 (en) 2008-12-09 2012-05-15 Microsoft Corporation User-mode based remote desktop protocol (RDP) encoding architecture
US9141412B2 (en) 2009-06-16 2015-09-22 Microsoft Technology Licensing, Llc Terminal services application virtualization for compatibility
EP2275981A1 (en) 2009-06-17 2011-01-19 SMART Technologies ULC Distributed system and method for management of multiple users and workspaces
US8738781B2 (en) * 2009-06-22 2014-05-27 Red Hat Israel, Ltd. Launching a virtual machine associated with a client during startup
US8556713B2 (en) 2009-10-20 2013-10-15 Michael Pilip Single to multi-user synchronous application conversion
US8370510B2 (en) * 2009-12-18 2013-02-05 Microsoft Corporation Remote application presentation over a public network connection
US9274821B2 (en) 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US20120220875A1 (en) * 2010-04-20 2012-08-30 Suri Jasjit S Mobile Architecture Using Cloud for Hashimoto's Thyroiditis Disease Classification
US20120059918A1 (en) * 2010-09-08 2012-03-08 Qualcomm Incorporated Location based service data connection support across multiple profiles
US8635152B2 (en) * 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US8589481B2 (en) * 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101014945A (zh) * 2003-11-24 2007-08-08 微软公司 用于远程应用程序发现的web服务
CN101493724A (zh) * 2007-12-20 2009-07-29 英特尔公司 用于改变计算环境的基于位置策略的系统和方法
CN101939729A (zh) * 2008-02-15 2011-01-05 国际商业机器公司 在虚拟化数据处理系统中对管理的虚拟机镜像重新布置任务
CN102150105A (zh) * 2008-09-09 2011-08-10 凯思网络公司 虚拟容器的部署和管理
CN101354677A (zh) * 2008-09-11 2009-01-28 青岛海信移动通信技术股份有限公司 一种应用程序运行状态的检测方法、恢复方法及装置
CN102160036A (zh) * 2008-09-15 2011-08-17 国际商业机器公司 服务环境中虚拟机的安全动态迁移

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225209B2 (en) 2015-01-21 2019-03-05 Oracle International Corporation System and method for interceptors in a multitenant application server environment

Also Published As

Publication number Publication date
ES2709275T3 (es) 2019-04-15
US20130066945A1 (en) 2013-03-14
EP2756392A2 (en) 2014-07-23
US8589481B2 (en) 2013-11-19
EP2756392A4 (en) 2015-07-15
CN102932405A (zh) 2013-02-13
US20140082059A1 (en) 2014-03-20
WO2013039846A3 (en) 2013-05-10
WO2013039846A2 (en) 2013-03-21
EP2756392B1 (en) 2018-11-07
US9361080B2 (en) 2016-06-07

Similar Documents

Publication Publication Date Title
CN102932405B (zh) 对应用的多租户访问
US20210409483A1 (en) Multi tenancy for single tenancy applications
CN102917018B (zh) 端点的负载平衡
CN102882947A (zh) 自动化的桌面服务供应
CN102929685A (zh) 自动化基础架构供应
US9807153B2 (en) Managing user state of cloud desktops
US8856917B2 (en) Single sign-on for remote desktops
CN103023960A (zh) 用户状态的地理迁移
Krieger et al. Enabling a marketplace of clouds: VMware's vCloud director
Ahmad et al. The cloud computing: a systematic review
Wagner et al. User managed virtual clusters in comet
Padhy et al. Architecture & Design of Affordable and Highly Available Enterprise Cloud Service
von Oven et al. Remote Desktop Solutions
von Oven et al. Architecting Horizon for Deployment
Schwertner The Virtual Business Organization
Barnier et al. Virtualization and Its Benefits
Sucik et al. Experience with Server Self Service Center (S3C)
Tùng et al. SaaS in Cloud Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant