具有机器级隔离的多租户多会话目录的制作方法

文档序号:14649817发布日期:2018-06-08 21:33阅读:165来源:国知局
具有机器级隔离的多租户多会话目录的制作方法

本申请要求于2015年10月19日申请的名称为“MULTI-TENANT MULTI-SESSION CATALOGS WITH MACHINE-LEVEL ISOLATION”的美国非临时申请序号14/886,217的优先权。此在先申请通过引用全部并入本文中。

技术领域

本文中描述的各个方面一般涉及计算机、网络、硬件以及软件。更具体地,本公开的一个或多个方面一般涉及用于云主机(cloud hosting)和提供机器级隔离的相关服务的计算机硬件和软件。



背景技术:

许多企业(enterprise)(例如公司、合伙企业、政府、学术机构、其它组织等)目前使用计算资源的虚拟化和云来满足其信息技术和计算需求。云服务提供者(CSP)通过按需提供创建虚拟服务器的能力,能够传送基于云的计算服务(例如基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)和存储服务)。此类虚拟服务器可具有定义的属性,例如操作系统、安装软件应用程序和服务等等。由云服务提供者使用的虚拟化技术使单个虚拟服务器可将一个或多个远程桌面服务(RDS)会话同时部署到一个或多个用户。虚拟服务器中的多个会话可保持分开,使得一个会话中一个用户的活动不会影响其它用户的体验。在一些实例中,通过要求每个虚拟服务器只可以服务于来自其特定企业的用户,企业可能更喜欢较高的隔离等级。

目前,云服务提供者为其客户或租户驻存桌面和应用程序,其可提供不同的租户隔离等级的服务。两个常见的租户隔离等级是共享和专用。在共享模式中,多个租户可共享单个目录的虚拟服务器,并且每个虚拟服务器可接待来自多个租户的用户。共享模式只在租户中提供会话级隔离。此模式通常是最便宜的选择,因为其在由云服务提供者提供的虚拟服务上提供最佳的用户密度。在专用模式中,每个租户被指定单独的虚拟服务器目录,并且每个虚拟服务器只可接待来自特定租户的用户。专用模式提供租户间更好的安全性和机器级隔离,但成本较高,因为其要求云服务提供者提供更大量的虚拟服务器以服务相同数量的租户。



技术实现要素:

下面给出本文中描述的各方面的简要总结。此总结不是详尽的概述,不旨在标识关键或重要元件或界定权利要求的范围。以下总结只以简化形式介绍一些概念作为下面提供的更详细描述的介绍性前序。

为了克服上文描述的现有技术的局限性,并且为了克服通过阅读和理解本说明书可以明白的其它局限性,本文中描述的各方面涉及用于创建和管理具有机器级隔离的多租户多会话目录的系统、方法和技术。具体地,本公开的各方面提供了云服务提供者将软件应用程序和服务传送至与多个租户对应的多个用户同时仍保持租户间的机器级隔离的高效、成本有效和方便的方式。下面更详细地描述的本公开的各方面可以由云服务提供者使用以创建虚拟服务器目录,其可以合并上文描述的共享和专用隔离模式的优点。具体地,本公开的各方面涉及多租户多会话目录,其可以将专用模式的机器级隔离与由共享模式的较高用户密度实现的成本节约相组合。

所述方法可以包括由云服务提供者接收来自一个或多个租户组织对于预定数目的服务器的请求。所述租户组织可以订阅所述云服务提供者以接收驻存在被请求服务器上的一个或多个软件应用程序和服务。所述云服务提供者可以初始化多个服务器,其中,所述多个服务器少于来自所述一个或多个租户组织的全体服务器请求的和。所述云服务提供者可以创建所述多个初始化服务器的未指定服务器的目录。

在下面更详细地讨论的一个或多个实施例中,所述云服务提供者可以接收来自第一租户的第一用户访问服务器的登录请求。响应于所述登录请求,所述云服务提供者可以将来自所述未指定服务器的目录的第一服务器指定给所述第一租户;从所述未指定服务器的目录中去除所述第一服务器;安排所述第一租户的第一用户连接至所述第一服务器;以及将对所述第一服务器的访问限制到只是所述第一租户的用户。此外,所述云服务提供者可以接收来自第二租户的第一用户访问服务器的登录请求。响应于所述登录请求,所述云服务提供者可以将来自所述未指定服务器的目录的第二服务器指定给所述第二租户;从所述未指定服务器的目录中去除所述第二服务器;安排所述第二租户的第一用户连接至所述第一服务器;以及将对所述第二服务器的访问限制到只是所述第二租户的用户。

在一些实施例中,所述云服务提供者可以用共同映象(common image)初始化多个服务器。所述共同映象可以包括操作系统、应用程序和传送至订阅到云服务提供者的租户的其它软件。在其它实施例中,所述多个服务器可以被配置成将远程桌面服务(RDS)同时提供至一个或多个用户。在一个或多个布置中,所述多个服务器可以驻存在云服务中。在其它布置中,所述云服务提供者可以从所述未指定服务器的目录中随机地选择特定服务器以指定给所述第一租户。

所述方法还可以包括由所述云服务提供者接收来自所述第一租户的第二用户访问服务器的登录请求。响应于所述登录请求,所述云服务提供者可以确定所述第一服务器的可用容量;以及所述第一服务器的所述可用容量是否小于预定阈值容量。一旦确定所述第一服务器的所述可用容量小于所述预定阈值容量,所述云服务提供者可以将来自所述未指定服务器的目录的第三服务器指定给所述第一租户;从所述未指定服务器的目录中去除所述第三服务器;安排所述第一租户的第三用户连接至所述第三服务器;以及将对所述第三服务器的访问限制到只是所述第一租户的用户。

在一些实施例中,所述方法还可以包括由所述云服务提供者接收来自第一租户的第二用户访问服务器的登录请求。响应于所述登录请求,所述云服务提供者可以确定指定给所述第一租户的一个或多个服务器;以及指定给所述第一租户的所述一个或多个服务器中每一个的可用容量。所述云服务提供者可以基于所述可用容量确定,进一步确定指定给所述第一租户的所述一个或多个服务器中具有最大可用容量的一个被指定服务器。所述云服务提供者可以将所述第一租户的第二用户安排至指定给所述第一租户的所述一个或多个服务器中确定具有最大可用容量的被指定服务器。

在其它实施例中,所述方法还可以包括接收来自登录进入特定服务器的用户的登出请求。响应于接收来自所述用户的所述登出请求,所述云服务提供者可以使所述用户登出所述特定服务器。进一步响应于来自所述用户的所述登出请求,所述云服务提供者可以确定是否没有任何用户登录进入所述特定服务器。基于没有任何用户登录进入所述特定服务器的确定,所述云服务提供者可以重新映射所述特定服务器;从所述特定服务器上去除所述指定;以及使所述特定服务器返回所述未指定服务器的目录。例如,一旦所述特定服务器已经被重新映射且未指定,所述特定主机服务器可以指定给任何租户,并且响应于后续的登录请求,任何用户可以连接至所述特定主机服务器。

替代性地,在又一些其它实施例中,所述方法还可以包括对于所述第一租户和所述第二租户,保存未指定服务器的单个空闲池。例如,响应于后续的登录请求,所述空闲池中的未指定主机服务器根据需要可以被指定。

系统和非瞬态计算机可读介质可以被配置成提供和/或支持本文中描述的各个方面。得益于在下面更详细讨论的本公开,将认识到这些和附加方面。

附图说明

通过考虑附图参照以下描述,可以获得对本文中描述的各方面和其优点的更加全面的理解,图中相同的附图标记表示相同的特征,并且其中:

图1描绘了根据本文中描述的一个或多个示意性方面可以使用的示意性计算机系统架构。

图2描绘了根据本文中描述的一个或多个示意性方面可以使用的示意性远程访问系统架构。

图3描绘了根据本文中描述的一个或多个示意性方面可以使用的示意性虚拟化(管理程序)系统架构。

图4描绘了根据本文中描述的一个或多个示意性方面可以使用的示意性基于云的系统架构。

图5描绘了根据本文中描述的一个或多个示意性方面可以用于创建并管理具有机器级隔离的多租户多会话目录的示意性系统架构。

图6描绘了根据一个或多个示例性实施例图解说明创建具有机器级隔离的多租户多会话目录的方法的流程图。

图7描绘了根据一个或多个示例性实施例图解说明由具有机器级隔离的多租户多会话目录对用户登录请求进行响应的方法的流程图。

图8描绘了根据一个或多个示例性实施例图解说明由具有机器级隔离的多租户多会话目录对用户登出请求进行响应的方法的流程图。

具体实施方式

在以下对各个实施例的描述中,参照上文指出的附图,附图形成其一部分,并且在附图中通过示意示出可以实践本文中描述的各方面的各个实施例。要理解在不偏离本文中描述的范围下可以使用其它实施例,并且可以进行结构和功能的变形。能够在其它实施例中实现各个方面并且能够以各种不同的方式实践或实施各个方面。

作为对下面更加详细地描述的主题的大致介绍,本文中描述的各方面涉及用于创建并管理具有机器级隔离的多租户多会话目录的系统、方法和技术。具体地,本文中描述的各方面可以用来将来自多租户多会话目录的主机服务器指定给租户,并响应于来自用户的登录请求将来自相应租户的用户连接至指定的主机服务器。本文中描述的其它方面可以用来响应于来自已连接的用户的登出请求,解除指定并重新映像指定的主机服务器。

在更加详细地讨论这些概念之前,将参照图1-4首先讨论可以用于实现和/或另外提供本发明的各个方面的计算架构和系统的几个示例。

要理解本文中使用的措词和术语是为了描述目的,不应当认为是限制。相反,本文中使用的词语和术语被赋予其最广泛的解释和含义。“包括”、“包含”和其变形的使用旨在包括之后所列的各个项目和其等同物以及附加项目和其等同物。“安装”、“连接”、“耦连”、“定位”、“接合”这些术语和相似术语的使用旨在包括直接和间接的安装、连接、耦连、定位和接合。

计算架构

计算机软件、硬件和网络可以用在各种不同的系统环境中,包括单机、联网、远程访问(亦称远程桌面)、虚拟化和/或基于云的环境及其它。图1图解说明可以用来在单机和/或联网环境中实现本文中描述的一个或多个示意性方面的系统架构和数据处理装置的一个示例。各个网络节点103、105、107和109可以通过广域网(WAN)101(例如互联网)互联。也可以或者替代性地使用其它网络,包括私有内部网、企业网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等等。网络101用于示意目的,可以用更少或更多的计算机网络替代。局域网可以具有一个或多个任何已知的LAN拓扑,并且可以使用各种不同协议中的一个或多个,例如以太网。装置103、105、107、109和其它装置(未示出)可以通过双绞线、同轴电缆、光纤、无线电波或其它通信介质连接至一个或多个网络。

本文中使用并在附图中描绘的“网络”这个术语不仅指其中远程存储装置通过一个或多个通信路径耦连在一起的系统,还指可以不时地耦连到具有存储能力的这类系统的单机装置。因此,“网络”这个术语不仅包括“物理网络”还包括“内容网络”,其包括可属于单个实体的驻存在所有物理网络上的数据。

所述部件可以包括数据服务器103、网络服务器105和客户端计算机107、109。数据服务器103提供用于执行本文中描述的一个或多个示意性方面的数据库和控制软件的总体访问、控制和管理。数据服务器103可以连接至网络服务器105,用户通过网络服务器105交互并且获得所请求的数据。替代性地,数据服务器103本身可以充当网络服务器,并且可以直接连接至互联网。数据服务器103可以通过网络101(例如互联网)、经由直接或间接连接或者经由某种其它网络连接至网络服务器105。用户可以使用远程计算机107、109(例如使用网络浏览器经由网络服务器105为主机的一个或多个暴露于外部的网站连接至数据服务器103)与数据服务器103交互。可以与数据服务器103相呼应地使用客户端计算机107、109以访问其中存储的数据,或者客户端计算机107、109可以用于其它目的。例如,用户可以从客户端装置107使用如本领域已知的互联网浏览器,或者通过执行通过计算机网络(例如互联网)与网络服务器105和/或数据服务器103通信的软件应用程序,访问网络服务器105。

服务器和应用程序可以组合在相同的物理机上,并且可以保留单独的虚拟或逻辑地址,或者可以驻存在单独的物理机上。图1仅图解说明可以使用的网络架构的一个示例,本领域技术人员会认识到使用的具体网络架构和数据处理装置可以变化,相对其提供的功能是次要的,正如本文中进一步描述的。例如,由网络服务器105和数据服务器103提供的服务可以组合在单个服务器上。

每个部件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理装置。数据服务器103例如可以包括控制数据服务器103的总体操作的处理器111。数据服务器103还可以包括随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(I/O)119可以包括用于读、写、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可以存储操作系统软件123以用于控制数据处理装置103、控制逻辑125和其它应用软件127的总体操作,控制逻辑125用于命令数据服务器103执行本文中描述的各方面,其它应用软件127提供可以或者可以不与本文中描述的各方面结合使用的辅助、支持和/或其它功能。控制逻辑在本文中也可以称作数据服务器软件125。数据服务器软件的功能可以指基于编码到控制逻辑中的规则自动进行的、由用户将输入提供到系统中手动进行的操作或决策和/或基于用户输入(例如查询、数据更新等)的自动处理的组合。

存储器121还可以存储执行本文中描述的一个或多个方面时使用的数据,包括第一数据库129和第二数据库131。在一些实施例中,第一数据库可以包括第二数据库(例如作为单独的表、报告等)。即,信息可以存储在单个数据库中,或者根据系统设计分隔到不同的逻辑、虚拟或物理数据库中。装置105、107、109可以具有与关于装置103描述的相似或不同的架构。本领域技术人员会认识到本文中描述的数据处理装置103(或装置105、107、109)的功能可以分散在多个数据处理装置中,例如,在多个计算机之间分配处理负荷,基于地理位置、用户访问等级、服务质量(QoS)等分隔交易。

一个或多个方面可以体现在计算机可使用或可读数据和/或计算机可执行指令中,例如体现在由本文中描述的一个或多个计算机或其它装置执行的一个或多个程序模块中。通常,程序模块包括在由计算机或其它装置中的处理器执行时执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、部件、数据结构等。可以以源代码编程语言编写这些模块,所述源代码编程语言随后被编辑以用于执行,或者可以以脚本语言例如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)编写这些模块。计算机可执行指令可以存储在计算机可读介质(例如非易失性存储装置)上。可以使用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光存储装置、磁存储装置和/或其任何组合。此外,代表本文中描述的数据或事件的各个传输(非存储)介质可以以通过信号传导介质(例如金属线、光纤)和/或无线传输介质(例如空气和/或空间)传播的电磁波的形式在源和目的地之间传输。本文中描述的各方面可以以方法、数据处理系统或计算机程序产品实施。因此,可以全部或部分地在软件、固件和/或硬件或硬件等同物(例如集成电路、现场可编程门阵列(FPGA))等中实施各个功能。特定的数据结构可以用来更有效地实现本文中描述的一个或多个方面,在本文中描述的计算机可执行指令和计算机可使用数据的范围内可预见这些数据结构。

进一步参照图2,可以在远程访问环境中实现本文中描述的一个或多个方面。图2描绘了根据本文中描述的一个或多个示意性方面可以使用的示例性系统架构,包括在示意性计算环境200中的通用计算装置201。在被配置成为客户端访问装置提供虚拟机的单服务器或多服务器桌面虚拟化系统(例如远程访问或云系统)中,通用计算装置201可以用作服务器206a。通用计算装置201可以具有用于控制服务器和其关联部件(包括RAM 205、ROM 207、I/O模块209和存储器215)的总体操作的处理器203。

I/O模块209可以包括鼠标、小键盘、触摸屏、扫描器、光学阅读器和/或触针(或其它输入装置),通过上述这些装置通用计算装置201的用户可以提供输入,I/O模块209还可以包括以下的一个或多个:用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示装置。软件可以存储在存储器215和/或其它存储装置内以向处理器203提供指令用于将通用计算装置201配置成专用计算装置,以便执行本文中描述的各个功能。例如,存储器215可以存储由计算装置201使用的软件,例如操作系统217、应用程序219和相关的数据库221。

计算装置201可以在支持连接至一个或多个远程计算机例如终端240(也称作客户端装置)的联网环境中操作。终端240可以是个人计算机、移动装置、膝上型计算机、平板电脑或包括参照通用计算装置103或201在上文描述的许多或所有元件的服务器。图2中描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,不过还可以包括其它网络。在LAN联网环境中使用时,计算装置201可以通过网络接口或适配器223连接至LAN 225。在WAN联网环境中使用时,计算装置201可以包括调制解调器227或用于通过WAN 229,例如计算机网络230(例如互联网)建立通信的其它广域网接口。要认识到,所示的网络连接是示意性的,可以使用建立计算机之间的通信链接的其它手段。计算装置201和/或终端240也可以是包括各种其它部件(例如电池、扬声器和天线(未示出))的移动终端(例如移动电话、智能电话、个人数字助理(PDA)、上网本等)。

还可以用各种其它通用或专用计算系统环境或配置操作本文中描述的各方面。可以适合用于本文中描述的各方面的其它计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子装置、网络个人计算机(PC)、微型计算机、大型计算机、包括上面的系统或装置中的任何一个的分布式计算环境等等。

如图2所示,一个或多个客户端装置240可以与一个或多个服务器206a-206n(在本文中总称为“服务器206”)通信。在一个实施例中,计算环境200可以包括安装于服务器206和客户机240之间的网络设备。所述网络设备可以管理客户端/服务器连接,并且在一些情况下,可以对多个后台服务器206中的客户端连接进行负载平衡。

在一些实施例中,客户机240可以称作单客户机240或单组客户机240,而服务器206可以称作单服务器206或单组服务器206。在一个实施例中,单客户机240与超过一个服务器206通信,而在另一实施例中,单服务器206与超过一个客户机240通信。在又一实施例中,单客户机240与单服务器206通信。

在一些实施例中,可以用以下非详尽术语中的任何一个称呼客户机240:客户机;客户端;客户端计算机;客户端装置;客户端计算装置;本地机;远程机;客户端节点;端点;或端点节点。在一些实施例中,可以用以下非详尽术语中的任何一个称呼服务器206:服务器;本地机;远程机;服务器场;或主机计算装置。

在一个实施例中,客户机240可以是虚拟机。所述虚拟机可以是任何虚拟机,而在一些实施例中,所述虚拟机可以是由Type 1(类型1)或Type2(类型2)管理程序(例如由Citrix Systems、IBM、VMware开发的管理程序)或任何其它管理程序管理的任何虚拟机。在一些方面,所述虚拟机可以由管理程序管理,而在有些方面,所述虚拟机可以由在服务器206上执行的管理程序或者在客户端240上执行的管理程序管理。

一些实施例包括客户端装置240,客户端装置240显示由远程地在服务器206或其它位于远程的机器上执行的应用程序产生的应用程序输出。在这些实施例中,客户端装置240可以执行虚拟机接收程序或应用程序以在应用程序窗口、浏览器或其它输出窗口显示输出。在一个示例中,应用程序是桌面,而在其它示例中,应用程序是产生或呈现桌面的应用程序。桌面可以包括图形外壳(graphical shell),其对于其中可以集成本地和/或远程应用程序的操作系统的实例提供用户界面。本文中使用的应用程序是在操作系统(可选地也为桌面)的实例已经被加载之后执行的程序。

在一些实施例中,服务器206使用远程呈现协议或其它程序将数据发送至瘦客户端或在客户端上执行的远程显示应用程序,以呈现由在服务器206上执行的应用程序产生的显示输出。瘦客户端或远程显示协议可以是以下非详尽协议列表中的任何一个:由位于Ft.Lauderdale,Florida(佛罗里达州劳德代尔堡市)的Citrix System公司开发的独立计算架构(ICA)协议;或者由位于Redmond,Washington(华盛顿州雷蒙德市)的Microsoft公司制造的远程桌面协议(RDP)。

远程计算环境可以包括超过一台服务器206a-206n,使得例如在云计算环境中,服务器206a-206n从逻辑上被一起组成服务器场206。服务器场206可以包括:地理上分散而逻辑上组合在一起的服务器206,或者位置相互邻近且逻辑上组合在一起的服务器206。在一些实施例中,服务场206内地理上分散的服务器206a-206n可以使用WAN(广域)、MAN(城域)或LAN(局域)通信,其中不同的地理区域可以表征为:不同的洲;一个洲的不同地区;不同的国家;不同的州;不同的城市;不同的校园;不同的房间;或者前述地理位置的任何组合。在一些实施例中,可以作为单个实体管理服务器场206,而在其它实施例中,服务器场206可以包括多个服务器场。

在一些实施例中,服务器场可以包括执行基本相似类型的操作系统平台(例如WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其它实施例中,服务器场206可以包括执行第一类型的操作系统平台的第一组一个或多个服务器以及执行第二类型的操作系统平台的第二组一个或多个服务器。

根据需要,服务器206可以配置为任何类型的服务器,例如文件服务器、应用服务器、网络服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、安全套接层(SSL)VPN服务器、防火墙、网络服务器、应用服务器,或者配置为主应用程序服务器、执行活动目录的服务器或执行应用程序加速程序提供防火墙功能、应用程序功能或负载平衡功能的服务器。也可以使用其它服务器类型。

一些实施例包括第一服务器206a,其接收来自客户机240的请求,将所述请求转发至第二服务器206b,并用来自第二服务器206b的响应对由客户机240生成的请求进行响应。第一服务器206a可以获得客户机240可用的应用程序的列表以及与驻存在应用程序列表内标识的应用程序上的与应用服务器206有关的地址信息。第一服务器206a然后可以使用网络接口呈现对客户端的请求的响应,并与客户端240直接地通信,以给客户端240提供对标识的应用程序的访问。一个或多个客户端240和/或一个或多个服务器206可以通过网络230(例如网络101)传输数据。

图3示出示意性桌面虚拟化系统的高级架构。如所示的,桌面虚拟化系统可以是单服务器或多服务器系统,或者是云系统,包括至少一个虚拟化服务器301,所述至少一个虚拟化服务器301被配置成将虚拟桌面和/或虚拟应用程序提供至一个或多个客户端访问装置240。如本文中使用的桌面指在其中可以驻存和/或执行一个或多个应用程序的图形环境或空间。桌面可以包括图形外壳,其对于其中可以集成本地和/或远程应用程序的操作系统的实例提供用户界面。应用程序可以包括在操作系统(可选地也为桌面)的实例已经被加载之后执行的程序。操作系统的每个实例可以是物理的(例如每个装置一个操作系统)或者是虚拟的(例如在单个装置上运行的OS的许多实例)。可以在本地装置上执行或者在位于远程的(例如远程)装置上执行每个应用程序。

计算机装置301可以被配置为虚拟化环境中的虚拟化服务器,例如单服务器、多服务器或云计算环境。图3中图示的虚拟化服务器301可以被部署为图2中所示的服务器206的一个或多个实施例,和/或可以由图2中所示的服务器206的一个或多个实施例或者由其它已知的计算装置实现。硬件层包括于虚拟化服务器301中,所述硬件层可以包括一个或多个物理盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个物理存储器316。在一些实施例中,固件312可以存储在物理存储器316中的存储元件内,并且可以由一个或多个物理处理器308执行。虚拟化服务器301还可以包括操作系统314,所述操作系统314可以存储在物理存储器316中的存储元件中并且由一个或多个物理处理器308执行。还有,管理程序302可以存储在物理存储器316中的存储元件中,并且可以由一个或多个物理处理器308执行。

一个或多个虚拟机332A-C(总称332)可以在一个或多个物理处理器308上执行。每个虚拟机332可以具有虚拟盘326A-C和虚拟处理器328A-C。在一些实施例中,第一虚拟机332A可以使用虚拟处理器328A执行包括工具栈324的控制程序320。控制程序320可以称作控制虚拟机、Dom0、Domain 0或用于系统管理和/或控制的其它虚拟机。在一些实施例中,一个或多个虚拟机332B-C可以使用虚拟处理器328B-C执行客户操作系统330A-B。

虚拟化服务器301可以包括硬件层310,所述硬件层310具有与虚拟化服务器301通信的一件或多件硬件。在一些实施例中,硬件层310可以包括一个或多个物理盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个存储器216。物理部件304、306、308和316可以包括例如以上描述的部件中的任何一个。物理装置306可以包括例如网络接口卡、视频卡、键盘、鼠标、输入装置、监视器、显示装置、扬声器、光驱、存储装置、通用串行总线连接、打印机、扫描器、网络元件(例如路由器、防火墙、网络地址解析器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等)或连接至或与虚拟化服务器301通信的任何装置。硬件层310中的物理存储器316可以包括任何类型的存储器。物理存储器316可以存储数据,在一些实施例中,可以存储一个或多个程序或一组可执行指令。图3图解说明固件312存储于虚拟化服务器301的物理存储器316内的实施例。存储于物理存储器316中的程序或可执行指令可以由虚拟化服务器301的一个或多个处理器308执行。

虚拟化服务器301还可以包括管理程序302。在一些实施例中,管理程序302可以是由虚拟化服务器301上的处理器308执行的创建并管理任何数目的虚拟机332的程序。管理程序302可以称作虚拟机监视器或平台虚拟化软件。在一些实施例中,管理程序302可以是可执行指令和监测在计算机器上执行的虚拟机的硬件的任何组合。管理程序302可以是Type 2管理程序,其中,在操作系统314内执行的管理程序在虚拟化服务器301上执行。虚拟机则在管理程序以上的级别执行。在一些实施例中,Type 2管理程序在用户的操作系统的背景下执行,使得Type 2管理程序与用户的操作系统交互。在其它实施例中,虚拟化环境中的一个或多个虚拟化服务器301则可以反而包括Type 1管理程序(未示出)。Type 1管理程序通过直接访问硬件层310内的硬件和资源可以在虚拟化服务器301上执行。即,如所示的,Type 2管理程序302通过主机操作系统314访问系统资源,而Type 1管理程序可以没有主机操作系统314直接地访问所有系统资源。Type 1管理程序可以直接地在虚拟化服务器301的一个或多个物理处理器308上执行,并且可以包括存储于物理存储器316中的程序数据。

在一些实施例中,管理程序302可以以模拟操作系统330或控制程序320直接访问系统资源的任何方式将虚拟资源提供至在虚拟机332上执行的操作系统330或控制程序320。系统资源可以包括但不限于物理装置306、物理盘304、物理处理器308、物理存储器316和虚拟化服务器301的硬件层310中包括的任何其它部件。管理程序302可以用来模仿虚拟硬件,分割物理硬件,使物理硬件虚拟化和/或执行虚拟机以提供对计算环境的访问。在又一些其它实施例中,管理程序302控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。管理程序302可以包括:由位于Palo Alto,California的VMWare公司制造的管理程序;XENPROJECT管理程序,一种开源产品,其开发由开源XenProject.org社团监管;由Microsoft提供的HyperV、VirtualServer或虚拟PC管理程序;或者其它。在一些实施例中,虚拟化服务器301执行管理程序302,管理程序302创建客户操作系统可以在其上执行的虚拟机平台。在这些实施例中,虚拟化服务器301可以称作主机服务器。此类虚拟化服务器的一个示例是由位于Fort Lauderdale,FL的Citrix Systems公司提供的XENSERVER。

管理程序302可以创建客户操作系统330在其中执行的一个或多个虚拟机332B-C(通称332)。在一些实施例中,管理程序302可以加载虚拟机映象以创建虚拟机332。在其它实施例中,管理程序302可以执行虚拟机332内的客户操作系统330。在又一些其它实施例中,虚拟机332可执行客户操作系统330。

除了创建虚拟机332之外,管理程序302可以控制至少一个虚拟机332的执行。在其它实施例中,管理程序302可以给至少一个虚拟机332呈现由虚拟化服务器301提供的至少一个硬件资源(例如硬件层310内可用的任何硬件资源)的抽象。在其它实施例中,管理程序302可以控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可以包括确定虚拟机332是否应该访问处理器308,以及将物理处理器的能力呈现给虚拟机332的方式。

如图3所示,虚拟化服务器301可以驻存或执行一个或多个虚拟机332。虚拟机332是一组可执行指令,其由处理器308执行时,模拟物理计算机的操作,使得虚拟机332能够像物理计算装置那样执行程序和过程。尽管图3图解说明了虚拟化服务器301驻存三个虚拟机332的实施例,但在其它实施例中,虚拟化服务器301可以驻存任何数目的虚拟机332。在一些实施例中,管理程序302给每个虚拟机332提供物理硬件、存储器、处理器和虚拟机332可用的其它系统资源的唯一虚拟视图。在一些实施例中,唯一虚拟视图可以基于以下的一个或多个:虚拟机许可,针对一个或多个虚拟机标识符的策略引擎的应用,访问虚拟机的用户,在虚拟机上执行的应用程序,由虚拟机访问的网络或任何其它期望标准。例如,管理程序302可以创建一个或多个不安全的虚拟机332和一个或多个安全的虚拟机332。可以阻止不安全的虚拟机332访问安全虚拟机332可被允许访问的资源、硬件、存储位置和程序。在其它实施例中,管理程序302可以给每个虚拟机332提供物理硬件、存储器、处理器和虚拟机332可用的其它系统资源的基本相似的虚拟视图。

每个虚拟机332可以包括虚拟盘326A-C(通称326)和虚拟处理器328A-C(通称328)。在一些实施例中,虚拟盘326是虚拟化服务器301的一个或多个物理盘304或者虚拟化服务器301的一个或多个物理盘304的一部分的虚拟化视图。物理盘304的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施例中,管理程序302给每个虚拟机332提供物理盘304的唯一视图。因此,在这些实施例中,与其它虚拟盘326相比,每个虚拟机332中包括的特定虚拟盘326可能是唯一的。

虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施例中,物理处理器308的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施例中,虚拟处理器328具有至少一个物理处理器308的基本所有相同特征。在其它实施例中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的至少一些特征与对应的物理处理器308的特征不同。

进一步参照图4,本文中描述的一些方面可以在基于云的环境中实现。图4图解说明云计算环境(或云系统)400的一个示例。如图4可见,客户端计算机411-414可以与云管理服务器410通信,以访问云系统的计算资源(例如主机服务器403、存储资源404和网络资源405)。

管理服务器410可以在一个或多个物理服务器上实现。管理服务器410可以运行例如位于Ft.Lauderdale,FL的Citrix Systems公司的CLOUDPLATFORM,或OPENSTACK及其它。管理服务器410可以管理各种计算资源,包括云硬件和软件资源,例如,主机计算机403、数据存储装置404和联网装置405。云硬件和软件资源可以包括专用和/或公用部件。例如,云可以配置为专用云,以由一个或多个特定客户或客户端计算机411-414和/或通过专用网使用。在其它实施例中,公用云或混合公用-专用云可以由其它客户通过开放或混合网络使用。

管理服务器410可以被配置成提供用户界面,云运营商和云客户可以通过所述用户界面与云系统交互。例如,管理服务器410可以给一组应用编程接口(API)和/或一个或多个云运营商控制台应用程序(例如在独立应用程序上的基于网络的)提供用户界面以允许云运营商管理云资源,配置虚拟化层,管理客户帐户并执行其它云管理任务。管理服务器410还可以包括具有用户界面的一组API和/或一个或多个客户控制台应用程序,所述用户界面被配置成通过客户端计算机411-414从终端用户接收云计算请求,例如创建、修改或破坏云内的虚拟机的请求。客户端计算机411-414可以通过互联网或其它通信网络连接至管理服务器410,并且可以请求访问由管理服务器410管理的一个或多个计算资源。响应于客户端请求,管理服务器410可以包括资源管理器,所述资源管理器被配置成基于客户端请求选择并提供云系统的硬件层中的物理资源。例如,管理服务器410和云系统的另外部件可以被配置成通过网络(例如互联网)为客户端计算机411-414的客户提供、创建和管理虚拟机和其运行环境(例如管理程序、存储资源、由网络元件提供的服务等等),给客户提供计算资源、数据存储服务、联网能力以及计算机平台和应用程序支持。云系统还可以被配置成提供各种特定的服务,包括安全系统、开发环境、用户界面等等。

某些客户端411-414可以有关联,例如代表同一终端用户创建虚拟机的不同客户端计算机或者隶属于同一公司或组织的不同用户。在其它示例中,某些客户端411-414可以不相关,例如隶属于不同公司或组织的用户。对于不相关的客户端,虚拟机上的信息或任何一个用户的存储可以对其它用户隐藏。

现在参照云计算环境的物理硬件层,可用区401-402(或区)可以指物理计算资源的并置集。在计算资源的整个云中,一些区可以与其它区在地理上分开。例如,区401可以是位于加利福尼亚州的第一云数据中心,区402可以是位于佛罗里达州的第二云数据中心。管理服务器410可以位于可用区之一或者位于单独的方位。每个区可以包括与该区外部的装置(例如管理服务器410)通过网关相接的内部网络。云的终端用户(例如客户端411-414)可能知道或不知道区之间的不同。例如,终端用户可以请求创建具有特定量的存储器、处理能力和网络能力的虚拟机。管理服务器410可以响应用户的请求,并且可以分配创建虚拟机的资源,用户不必知道是否使用了来自区401或区402的资源创建过虚拟机。在其它示例中,云系统可以允许终端用户请求在特定的区中或者在一个区内的特定资源403-405上分配虚拟机(或其它云资源)。

在此示例中,每个区401-402可以包括各种物理硬件部件(或计算资源)403-405的布置,例如物理主机资源(或处理资源)、物理网络资源、物理存储资源、交换机和可以用来向客户提供云计算服务的另外的硬件资源。云区401-402中的物理主机资源可以包括一个或多个计算机服务器403,例如上文描述的虚拟化服务器301,其可以被配置成创建并驻存虚拟机实例。云区401或402中的物理网络资源可以包括一个或多个网络元件405(例如网络服务提供者),其包括被配置成向云客户提供网络服务的硬件和/或软件,例如防火墙、网络地址解析器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等等。云区401-402中的存储资源可以包括存储盘(例如固态驱动器(SSD)、磁质硬盘等)和其它存储装置。

图4所示的示例性云计算环境还可以包括具有附加硬件和/或软件资源的虚拟化层(例如图1-3中所示的),所述附加硬件和/或软件资源被配置成创建并管理虚拟机,使用云中的物理资源将其它服务提供至客户。虚拟化层可以包括如上文在图3中描述的管理程序以及其它部件,以提供网络虚拟化、存储虚拟化等。虚拟化层可以是与物理资源层分开的层,或者可以与物理资源层共享一些或全部相同的硬件和/或软件资源。例如,虚拟化层可以包括安装在每个具有物理计算资源的虚拟化服务器403中的管理程序。可以替代性使用已知的云系统,例如,WINDOWS AZURE(位于华盛顿州雷蒙德市的微软公司)、AMAZON EC2(位于华盛顿州西雅图市的Amazon.com公司)、IBM BLUE CLOUD(位于纽约州阿蒙克市的IBM公司)或者其它云系统。

示意性实施例

已经讨论了可以用于提供和/或实现本公开的各个方面的计算架构的几个示例,现在将更详细地讨论几个实施例。具体地,如上面介绍的,本公开的一些方面一般涉及创建并管理具有机器级隔离的多租户多会话目录。在下面的描述中,将讨论各种各样的示例,这些示例根据一个或多个实施例图解说明可以创建并保存具有机器级隔离的这种目录的方式。

图5描绘了可以用于创建并管理具有机器级隔离的多租户多会话目录的示意性系统架构。从图5可见,客户端装置515和525可以与代理服务器542通信以访问云服务提供者540的主机服务器545。图5所描述的系统的架构在许多方面类似于上面参照图4描述的云计算环境400的架构,并且可以包括上面没有提到的附加特征。为了简洁起见,已经省略了上面参照图4描述的云计算环境400的一些部件。

计算环境500可以包括一个或多个租户。例如,计算环境500可以包括一个或多个租户,例如第一租户510(其可以是例如第一企业,并且其可以订阅由云服务提供者540提供的软件服务)和第二租户520(其可以是例如与第一企业不同的第二企业,并且其可以订阅由云服务提供者540提供的与第一租户510相同的软件服务)。第一租户510可以包括一个或多个企业用户,所述一个或多个企业用户可以被允许通过一个或多个客户端装置515连接至云服务提供者540。类似地,第二租户520可以包括一个或多个企业用户,所述一个或多个企业用户可以被允许通过一个或多个客户端装置525连接至云服务提供者540。客户端装置515和525可以是任何类型的计算装置,其能够通过一个或多个用户接口接收并处理输入,通过一个或多个用户接口提供输出并将输入、输出和/或其它信息传送至一个或多个其它计算装置和/或从一个或多个其它计算装置传送输入、输出和/或其它信息。例如,客户端装置515和525可以是服务器计算机、桌面计算机、膝上型计算机、平板计算机、智能电话等。此外,客户端装置515和525可以是上文参照图1、图2和图4描述的计算装置(例如装置103、105、107、109、240和411-414)之一。

计算环境500还可以包括一个或多个网络,所述一个或多个网络可以互连一个或多个客户端装置515、一个或多个客户端装置525、代理服务器542和一个或多个主机服务器545。例如,计算环境500可以包括网络530,网络530可以包括一个或多个专用网络(其可以例如由运营云服务提供者540的组织运营和/或与所述组织有关,并且其可以包括一个或多个局域网、广域网、虚拟专用网络等)和/或一个或多个公用网络(例如互联网)。

参照图5,计算环境500可以包括云服务提供者540。云服务提供者540可以给租户或订阅者提供一个或多个软件服务。云服务提供者540可以安装、操作、维护和更新在包括一个或多个主机服务器545的目录上的一个或多个软件应用程序和服务,并将这些软件应用程序和服务传送至一个或多个租户的用户。目录中的每个主机服务器545可以是单服务器或多服务器系统或基于云的系统,包括上文参照图4描述的至少一个虚拟化服务器。主机服务器545可以被配置为能够将一个或多个远程桌面服务(RDS)同时部署到一个或多个用户的多会话服务器。多会话主机服务器545可以允许多个实例或会话保持分开,使得一个用户的活动不会影响其它用户的体验。例如,在一个实施例中,由位于Fort Lauderdale,Florida的Citrix Systems公司制造的XENAPP可以适于提供本文中描述的一个或多个功能。下文将更详细描述,通过基于用户所属的租户组织将用户切分到主机服务器545,可以实现进一步的安全性。例如,一旦主机服务器545已经指定给第一租户510,则只有来自第一租户510的用户可以连接至所述主机服务器545。来自任何其它租户(例如第二租户520)的用户不可以连接至指定给第一租户510的主机服务器545。在一些实施例中,通过将物理机指定给特定租户,并且只有来自所述特定租户的用户连接至由所述特定物理机驻存的主机服务器545,可以实现进一步的隔离。例如,一旦已经将某个物理机指定给第一租户510,则只有来自第一租户510的用户可以连接至由所述物理机驻存的任何主机服务器545。来自任何其它租户(例如第二租户520)的用户不可以连接至由指定给第一租户510的物理机驻存的主机服务器545。

云服务提供者540的一个或多个租户(例如510和520)可以请求预定数目的主机服务器545对来自所述租户的组织的用户可用。响应于所述请求,云服务提供者540可以被配置成创建目录,所述目录包括的主机服务器545的数目比全体租户主机服务器请求的和要小。即,云服务提供者540可以只提供足以覆盖全体订阅租户的峰值需求的主机服务器545数目,而不是提供数量等于被请求服务器的总数的主机服务器545。例如,第一租户510和第二租户520可以位于两个不同的时区,使得两个租户的服务器能力需求在每个二十四小时周期中交替变化。在另一示例中,第一租户510和第二租户520可以都从云服务提供者540请求1000个服务器(总共2000个服务器)。然而,在峰值需求时,第一租户510和第二租户520可能只需要总共1500个服务器。因此,要将订阅的软件服务传送至第一租户510和第二租户520,云服务提供者540可以提供1500个主机服务器545而不是2000个服务器。

云服务提供者540可以包括代理服务器542。代理服务器542可以是单服务器或多服务器系统,或基于云的系统,包括如上文参照图4描述的至少一个虚拟化服务器。代理服务器可以包括一个或多个处理器、存储器和一个或多个通信接口(未示出)。代理服务器542的存储器可以存储和/或另外包括一个或多个程序模块,所述一个或多个程序模块包括指令,所述指令在由一个或多个处理器执行时使云服务提供者540执行本文中描述的一个或多个功能。此外,代理服务器542的通信接口可以是一个或多个网络接口,所述一个或多个网络接口被配置成支持云服务提供者540和网络530之间以及代理服务器542和一个或多个主机服务器545之间的通信。

代理服务器542可以被配置成创建并管理一个或多个主机服务器545,并执行其它云管理任务。例如,代理服务器542可以使用共同映象(common image)初始化一个或多个主机服务器545。所述共同映象可以包括操作系统、应用程序和传送至订阅了云服务提供者540的租户的其它软件。在此实施例中,云服务提供者540可以将相似的计算环境(包括相同的操作系统和一组已安装应用程序和软件服务)传送至第一租户510和第二租户520的用户。

代理服务器542还可以被配置成代理客户端装置(例如515和525)和主机服务器545之间的连接。客户端装置515和525可以通过网络530连接至代理服务器542,并且可以请求访问一个或多个主机服务器545。响应于客户端请求,代理服务器542可以将一个或多个主机服务器545指定给一个或多个租户,并基于与用户对应的租户,将客户端装置515和525连接至指定的主机服务器545。换言之,可以响应于来自与第一租户510对应的一个或多个客户端装置515的登录请求,代理服务器542将一个或多个主机服务器545指定给第一租户510,并将一个或多个客户端装置515连接至指定的主机服务器545。代理服务器542可以使用一个或多个标准确定哪个未指定的主机服务器545指定给第一租户。例如,代理服务器542可以从未指定主机服务器545的目录中随机地选择一个或多个主机服务器545。而且,一旦指定给第一租户510,代理服务器542可以阻止由与第二租户520对应的客户端装置525对被指定主机服务器545的访问。代理服务器542可以被配置成响应于来自与第一租户510对应的客户端装置515的登录请求,确定是否有一个或多个主机服务器545指定给第一租户510。如果或者当一个或多个主机服务器545指定给第一租户510时,代理服务器542可以确定任何被指定主机服务器545是否有足够的可用容量以接收附加用户。如果或者当没有任何被指定主机服务器545有足够的可用容量时,代理服务器542可以将另外的主机服务器545指定给第一租户510,并且将客户端装置515连接至所述另外的主机服务器545。然而,如果或者当至少一个被指定主机服务器545具有足够的可用容量时,代理服务器542可以将客户端装置515连接至具有足够的可用容量的一个被指定主机服务器545。代理服务器542可以使用一个或多个标准确定哪一个被指定主机服务器545连接至客户端装置515。在几个可能的实施例的一个中,代理服务器542可以将客户端装置515连接至具有最大量的可用容量的被指定主机服务器545。在另一实施例中,代理服务器542可以使用负载平衡技术确定与客户端装置515连接的被指定主机服务器545。

除了登录请求之外,代理服务器542可以从连接至一个或多个主机服务器545的用户接收登出请求。响应于登出请求,代理服务器542可使用户登出特定的主机服务器545。代理服务器542还可以被配置成确定是否没有用户登录进入特定的主机服务器545。如果或者当特定的主机服务器545不再有任何用户登录时,代理服务器542可以重新映射特定的主机服务器545。例如,代理服务器542可以使用服务器提供技术重新映射特定的主机服务器545,所述服务器提供技术如由位于Ft.Lauderdale,Florida(佛罗里达州劳德代尔堡市)的Citrix System公司制造的Citrix Provisioning Services(Citrix提供服务,简写为PVS)和Machine Creation Services(机器创建服务,简写为MCS)。此外,代理服务器542可以从特定的主机服务器545去除租户指定,并将特定的主机服务器545返回未指定主机服务器545的目录。一旦已经重新映射但未指定特定的主机服务器545,则特定的主机服务器545可以指定给任何租户,响应于后续的登录请求,任何用户可以连接至所述特定的主机服务器545。

进一步参照图5,代理服务器542可以扩展到保存未指定主机服务器545的单个空闲池,其可以在订阅到云服务提供者540的租户之间共享。例如,除了在空闲池中保持预定数量之外,代理服务器542可以使所述目录中的所有未指定主机服务器545断电。响应于来自客户端装置(例如515和525)的后续登录请求,空闲池中的未指定主机服务器545可以根据需要变成可用。

有利的是,正如在上文更加详细地描述的,多会话(RDS)主机服务器545可以将一个或多个远程桌面服务(RDS)同时部署到一个或多个用户装置(例如515和525),因此比单会话(VDI)服务器的每个用户的成本更低。此外,与典型的RDS服务器部署不同,多租户多会话目录提供机器级隔离。而且,云服务提供者540可以通过使用本文中描述的多租户多会话目录,通过需要比全体订阅租户所请求的主机服务器545更少的主机服务器545,实现相比典型部署方法的成本节约。通过将目录扩展到包括使用如上文描述的单个空闲池,可以实现进一步的节约。

图5只图解说明可以使用的系统架构的一个示例,本领域技术人员会认识到所使用的具体系统架构和计算装置可以变化,这相对其提供的功能是次要的,正如本文中进一步描述的。例如,由代理服务器542提供的服务可以在单个计算装置上或在一个场所或分布在多个场所由通信网络互连的多个计算装置上执行。

图6描绘了根据一个或多个示例性实施例图解说明创建具有机器级隔离的多租户多会话目录的方法的流程图。图6所示的算法和本文中描述的其它相似的示例可以在计算环境(例如图5中图示的系统)以及具有不同架构的其它系统(例如图1-4的全部或一部分)中执行。在其它实施例中,图6中图示的方法和/或其一个或多个步骤可以在计算机可读介质例如非瞬态计算机可读存储器中实施。

在步骤610,云服务提供者540的一个或多个租户(例如510和520)可以请求预定数目的主机服务器545对来自所述租户的组织的用户可用。

在步骤620,云服务提供者540可以初始化一定数目的主机服务器545,所述数目比全体租户主机服务器请求的和少。即,云服务提供者540可以只提供足以覆盖全体订阅租户的峰值需求的一定数目的主机服务器545,而不是提供与请求的服务器的总数相等数量的主机服务器545。在步骤620,云服务提供者540可以使用共同映象初始化一个或多个主机服务器545。共同映象可以包括操作系统、应用程序和传送至订阅了云服务提供者540的租户的其它软件。主机服务器545可以被配置为能够将一个或多个远程桌面服务(RDS)同时部署到一个或多个用户的多会话服务器。云服务提供者540可以使多个实例或会话保持分开,使得一个用户的活动不会影响其它用户的体验。

在步骤630,云服务提供者540可以创建来自步骤620中提供的一组初始化主机服务器545的未指定主机服务器545的单个目录。如本文中描述的,云服务提供者540可以使用未指定主机服务器545的目录将订阅的软件服务传送至租户。

图7描绘了根据一个或多个示例性实施例图解说明由具有机器级隔离的多租户多会话目录对用户登录请求进行响应的方法的流程图。图7中所示的算法和本文中描述的其它相似的示例可以在计算环境(例如图5中图示的系统)以及具有不同架构的其它系统(例如图1-4的全部或一部分)中执行。在其它实施例中,图7中图示的方法和/或其一个或多个步骤可以在计算机可读介质例如非瞬态计算机可读存储器中实施。

响应于来自订阅租户的用户登录请求,在步骤710,云服务提供者540可以确定与用户对应的订阅租户是否具有指定的一个或多个主机服务器545。

在步骤710,响应于来自订阅租户的用户登录请求,云服务提供者540可以确定是否给所述特定租户指定了一个或多个主机服务器545。如果或者当没有给所述特定租户指定主机服务器545时,云服务提供者540可以到步骤760。然而,如果或者当给所述特定租户指定了一个或多个主机服务器545时,如步骤720所示,云服务提供者540可以确定一个或多个被指定主机服务器545是否有足够的可用容量以接收附加用户。如果或者当有至少一个被指定主机服务器545具有足够的可用容量时,在步骤730,云服务提供者540可以将用户安排到具有足够的可用容量的一个被指定主机服务器545,所述方法结束。云服务提供者540可以使用一个或多个标准确定具有足够的可用容量的哪一个被指定主机服务器545,用其将连接安排给用户。在几个可能的实施例的一个中,云服务提供者540可以将用户连接至具有最大量的可用容量的被指定主机服务器545。在另一实施例中,云服务提供者540可以使用负载平衡技术确定用其安排与用户的连接的被指定主机服务器545。

在步骤740,如果或者当没有任何被指定主机服务器545有足够的可用容量时,云服务提供者540可以确定指定给特定租户的主机服务器545的数目是否大于或等于由所述特定租户请求的服务器的数目。如果或者当所述特定租户已经达到其最大服务器分配量时,在步骤750,云服务提供者540可以用错误消息对用户登录请求进行响应,所述方法结束。

在步骤760,云服务提供者540可以确定所述目录是否包含任何未指定主机服务器545。如果或者当所述目录不包含任何未指定主机服务器545时,在步骤790,云服务提供者540可以用错误消息对用户登录请求进行响应,所述方法结束。然而,如果所述目录包含至少一个未指定主机服务器545时,在步骤770,云服务提供者540可以将未指定主机服务器545指定给所述特定租户。云服务提供者540可以使用一个或多个标准确定特定的未指定主机服务器545以指定给所述特定租户。例如,云服务提供者540可以从未指定主机服务器545的目录中随机地选择一个未指定主机服务器545。在步骤780,云服务提供者可以在用户和新指定的主机服务器545之间安排连接。

图8描绘了根据一个或多个示例性实施例图解说明由具有机器级隔离的多租户多会话目录对用户登出请求进行响应的方法的流程图。图8中所示的算法和本文中描述的其它相似的示例可以在计算环境(例如图5中图示的系统)以及具有不同架构的其它系统(例如图1-4的全部或一部分)中执行。在其它实施例中,图8中图示的方法和/或其一个或多个步骤可以在计算机可读介质例如非瞬态计算机可读存储器中实施。

在步骤810中,响应于用户登出请求,云服务提供者540可以使用户登出特定的主机服务器545。在步骤820,云服务提供者540可以确定是否没有任何用户登录进入所述特定的主机服务器545。如果或者当所述特定的主机服务器545不再有任何用户登录时,如步骤830所示,云服务提供者540可以重新映射所述特定的主机服务器545。例如,云服务提供者540可以使用服务器提供技术重新映射所述特定的主机服务器545,所述服务器提供技术如由位于Ft.Lauderdale,Florida(佛罗里达州劳德代尔堡市)的Citrix System公司制造的Citrix Provisioning Services(Citrix提供服务,简写为PVS)和Machine Creation Services(机器创建服务,简写为MCS)。在步骤840,云服务提供者540可以从所述特定的主机服务器545上去除租户指定。在步骤850,云服务提供者540可以将所述特定的主机服务器545返回未指定主机服务器545的目录。一旦所述特定的主机服务器545已经被重新映射但未指定,则所述特定的主机服务器545可以指定给任何租户,并且响应于后续的登录请求,任何用户都可连接至所述特定的主机服务器545。

尽管已经以特定于结构特征和/或方法行为的语言描述了本发明的主题,但要理解所附权利要求中限定的主题不一定局限于上面描述的特定特征或行为。而是,上面描述的特定特征和行为作为以下权利要求的示例性实现描述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1