多租户中间件云服务技术的制作方法

文档序号:15271273发布日期:2018-08-28 22:27阅读:162来源:国知局

背景

“云计算”是用于使得能够对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池进行普遍、方便、按需的网络访问的模型。可配置计算资源的共享池可经由虚拟化而被快速地供应,并可利用低管理努力或服务提供商交互来释放,并随后被相应地缩放。云计算模型可由各种特性(如按需自服务、广泛网络访问、资源池、快速灵活性、测量的服务等)、服务模型(如软件即服务(“saas”)、平台即服务(“paas”)、基础结构即服务(“iaas”))以及部署模型(如私有云、社区云、公共云、混合云等)组成。实现云计算模型的环境通常被称为云计算环境。

云计算可以是多租户的。在多租户云计算体系结构中,相同的软件应用服务多个租户,但该软件应用为每一个租户保持数据和配置的逻辑分区。为每一个租户保护数据,并且该应用可以在按租户的基础上进行配置。

简要概述

本文描述的至少一个实施例涉及一种包括多个主机的系统,每一个主机运行虚拟机。该系统可以是例如其中存在各个服务以及与这些主机和服务通信的服务协调系统的云计算环境。

这些服务包括被配置成维护针对多个租户中的每一个租户的按租户中间件策略的中间件管理服务。该中间件管理服务导致通过将网络话务导向中间件实施机构来对网络话务应用中间件策略,该中间件实施机构对主存对应于网络话务的虚拟机的特定主机实施中间件。该中间件策略是按租户的,因为它取决于租户的身份。



技术实现要素:
不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

附图简述

为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:

图1示出了其中可采用本文描述的一些实施例的计算系统;

图2抽象地示出了其中可采用本文描述的各个原理的环境,包括与多个主机、多个服务通信并通过接口与各客户机通信的服务协调系统;

图3抽象地示出了运行虚拟机的主机,并且其中物理资源经由管理程序来利用,该管理程序从虚拟机中抽象出物理资源并且改为呈现用于虚拟机的虚拟资源;

图4抽象地示出了中间件实施机构的各个组件,该中间件实施机构被配置成对与在主机上运行的虚拟机中的至少某一些相对应的网络话务应用一个或多个中间件功能;

图5示出了可表示图2中所示的各个服务之一并且管理中间件功能策略的中间件管理服务;以及

图6示出了用于中间件管理组件操作以对网络话务项执行按租户中间件功能的方法的流程图。

详细描述

根据本文描述的实施例,一种系统包括多个主机,每一个主机运行虚拟机。该系统可以是例如其中存在各个服务以及与这些主机和服务通信的服务协调系统的云计算环境。

这些服务包括被配置成维护针对多个租户中的每一个租户的按租户中间件策略的中间件管理服务。该中间件管理服务导致通过将网络话务导向中间件实施机构来对网络话务应用中间件策略。例如,中间件实施机构可以在特定主机上运行(例如,作为虚拟机或者可能作为主存对应于网络话务的虚拟机的另一主机组件)。替换地或附加地,中间件实施机构中的全部或部分可以在单独的主机上和/或任何主机之外运行(诸如单独的服务)。

首先,将参考图1来描述关于计算系统的一些引导性讨论。随后,该系统的各实施例将参考图2至6来描述。

计算系统现在越来越多地采取多种多样的形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至通常不被视为计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能含有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。

如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处所使用的那样,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。

在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。

本文描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理的和其他的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。

计算机存储介质包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。

“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“nic”)内的ram中,然后最终被传输到计算机系统ram和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。

计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。

本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络pc、小型计算机、大型计算机、移动电话、pda、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。

图2抽象地示出了其中可采用本文描述的各原理的环境200。环境200包括使用接口202与系统210交互的多个客户机210。环境220被示为具有三个客户机201a、201b和201c,但省略号201d表示本文描述的原理不限于通过接口202与系统210交互的客户机的数量。系统210可以按需向客户机201提供服务并因此从系统210接收服务的客户机201的数量可随时间变化。

每一个客户机201可以例如如上所述地被构造成图1的计算系统100。替换地或附加地,客户机可以是通过接口202与系统210对接的应用或其他软件模块。接口202可以是按照使得能够使用应用程序接口的任何计算系统或软件实体可以与系统210通信的方式定义的应用程序接口。

系统210可以是分布式系统,但并非必需。在一个实施例中,系统210是云计算环境。云计算环境可以是分布式的,但并非必需,并且甚至可以分布在全球和/或具有跨多个组织处理的组件。

在本说明书和接下来的权利要求书中,“云计算”被定义为用于使得能够对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池进行按需的网络访问的模型。“云计算”的定义不限于在适当部署时可以从这一模型获取的其他众多优点中的任意个。

例如,云计算当前在市场中被采用,以便提供对可配置计算资源的共享池的普遍存在且方便的按需访问。此外,可配置计算资源的共享池可经由虚拟化而被快速地供应,并可利用低管理努力或服务提供商干预来发布,并随后因此被缩放。

云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、快速灵活性、测定的服务等。云计算模型还可形成各种服务模型,诸如例如软件即服务(“saas”)、平台即服务(“paas”)以及基础结构即服务(“iaas”)。云计算模型还可以使用不同的部署模型来部署,诸如私有云、社区云、公共云和混合云等。在该描述和权利要求书中,“云计算环境”是其中采用了云计算的环境。

系统210包括各自能够运行虚拟机的多个主机211。尽管系统200可能包括任何数量的主机211,但存在图2所示的三个主机211a、211b和211c,且省略号211d表示本文描述的原理不限于系统210内的主机的确切数量。该数量可能少至一个,且没有上限。此外,主机的数量可以是静态的,或者可能在新主机被添加到系统210时或者在主机被从系统210中丢弃时随时间动态改变。每一个客户机211可以如上所述地被构造成图1的计算系统100。

每一个主机都能够运行一个或多个(且可能许多个)虚拟机。例如,图3更详细地抽象地示出了主机300。作为示例,主机300可表示图2的主机211中的任意个。在图3的情况,主机300被示为操作包括虚拟机310a、310b和310c在内的三个虚拟机310。然而,省略号310d再一次表示本文描述的原理不限于在主机300上运行的虚拟机的数量。可能少至零个虚拟机在主机上运行,且只是上限由主机300的物理能力来定义。

在操作期间,虚拟机对至少包括操作系统并且也可能包括一个或多个其他应用的全操作计算系统进行仿真。每一个虚拟机被分配给特定客户机并且负责支持用于该客户机的桌面环境。

虚拟机生成桌面映像或者表示桌面的当前状态的其他呈现指令,并且然后将映像或指令传送到客户机以供进行桌面呈现。例如,参考图2和3,假设图3的主机300表示图2的主机211a并且虚拟机310a被分配给客户机201a(本文中称为“主示例”),虚拟机310a可生成桌面映像或指令并经由服务协调协调213并经由系统接口202将这些指令从主机211a分派给对应的客户机201a。

当用户在客户机处与桌面交互时,用户输入从该客户机传送到虚拟机。例如,在主示例中且参考图2和3,客户机201a的用户与桌面交互,并且用户输入经由接口201、经由服务协调协调213并经由主机211a从客户机201传送到虚拟机310a。

虚拟机处理用户输入,并且在适当时改变桌面状态。如果桌面状态的这一改变导致所呈现的桌面改变,则虚拟机在适当时更改映像或呈现指令并将更改后的映像或所呈现的指令传送到客户机计算系统以供进行适当的呈现。从用户的角度来看,这就像客户机计算系统本身执行桌面处理。

主机300包括管理程序320,该管理程序使用从虚拟机310的视角抽象出的物理资源321来仿真用于虚拟机310的虚拟资源。管理程序321还提供各虚拟机310之间的适当隔离。由此,从任何给定虚拟机的角度来看,管理程序320提供虚拟机正与物理资源对接的假象,即使该虚拟机只与物理资源的外观(例如,虚拟资源)对接,而不直接与物理资源对接。在图3中,物理资源321被抽象地表示为包括资源321a到321f。物理资源321的示例包括处理容量、存储器、盘空间、网络带宽、媒体驱动器等。

主机300可操作主机代理302,该主机代理302监视主机的执行并执行管理主机的其他操作。此外,主机300可包括其他组件303。此类其他组件303的一个示例是中间件实施机构。

图4抽象地示出了中间件实施机构400的各个组件,该中间件实施机构被配置成对与在对应的主机上运行的虚拟机中的至少某一些相对应的网络话务应用一个或多个中间件功能401。例如,中间件实施机构400被示为应用两个中间件功能401a和401b,但省略号401c表示本文描述的原理不限于被应用于网络话务的中间件功能的数量。中间件功能的示例将在下文中更详细地描述。然而,泛泛而言,中间件功能是对网络话务执行有条件过滤操作或有条件变换操作的功能。中间件环境机构400可表示能够实施中间件功能的子集的多个组件。例如,一个组件可实施中间件功能401a,而另一个组件可实施中间件功能401b。在一些实施例中,中间件实施机构400可以在主机211上操作。例如,中间件实施机构400可以在与网络话务被导向的目标虚拟机相同的主机上操作。替换地或附加地,中间件实施机构400中的部分或全部可以在与运行目标虚拟机的主机不同的主机211上操作。替换地或附加地,中间件实施机构400中的部分或全部可以在任何主机211之外操作(诸如在服务协调系统213中和/或在一个或多个服务212中操作)。

回头参考图2,系统200还包括服务212。在所示示例中,服务200包括五个不同的服务212a、212b、212c、212d和212e,但省略号212f表示本文描述的原理不限于系统210中的服务的数量。服务协调系统213与主机211和服务212通信以由此提供客户机201所请求的服务以及可以是所请求的服务的先决条件的其他服务(诸如授权、记账等)。

图5示出了可表示图2所示的一个服务212的中间件管理服务500。中间件管理服务500被配置成维护针对多个租户中的每一个以及针对可能的多个中间件功能中的每一个的按租户中间件策略。因此,图5示出了其中策略被表示为租户在垂直维度上且中间件功能在水平维度上的二维网格的中间件策略组件501。策略具有标识名501xy,其中x是租户的标识符(租户a到d),而y是中间件功能的标识符(中间件功能a到e)。当然,策略可以按任何方式表示,而不是仅仅二维网格。该网格仅仅为了便于向读者可视化中间件策略的按租户和按功能表示而提供。

中间件功能可以是对相关联的租户的网络话务应用有条件过滤或有条件变换的任何功能。仅仅作为示例,中间件功能可包括以下各项:

1)防火墙功能,该功能过滤传入话务并且不允许特定话务类型到达虚拟机和/或过滤传出话务并且不允许虚拟机分派特定话务类型;

2)防病毒功能,该功能执行对特定类型的传出或传入网络话务的防病毒检查;

3)隔离区功能,该功能在沙箱环境中执行特定类型的网络话务以标识执行将导致发生什么并取决于效果来过滤网络话务;

4)加密和/或解密功能,该功能加密传出网络话务和/或解密传入网络话务;

5)压缩和/或解压缩功能,该功能压缩传出网络话务和/或解压传入网络话务,等等。

对于每一个中间件功能并且对于每一个租户,中间件策略501由此包括策略。注意,这些策略可具有在该策略内表达的默认设置,或者基于缺失信息来推断的其他设置,等等。此外,策略本身可以是接收各种输入的功能的产物。例如,策略501aa可专用于租户a和功能a,该策略是将压缩特定类型的传出网络话务,但只在特定时间期间,且只在主机资源使用低于特定水平的情况下,且只在主机的网络带宽使用高于特定水平的情况下。

注意,策略501支持被抽象地标记为功能a到e的五个中间件功能。然而,策略501可支持从一个到许多个的任何数量的功能。所支持的功能可以是作为默认由中间件管理服务200提供的中间件功能库的一部分的预定义的功能。此外,这些策略中的一个、部分或全部不一定被应用于所有租户。例如,假设租户a不具有相关联的防火墙功能(例如,功能a)并由此对于租户a和功能a不存在相关联的策略501aa。作为另一示例,假设租户b不具有相关联的防病毒功能(例如,功能c)并由此对于租户b和功能c不存在相关联的策略501bc。还注意,策略501支持被抽象地标记为功能a到d的四个租户。然而,策略501可支持从一个到许多个的任何数量的租户。

中间件管理服务500还包括准许改变按租户中间件策略501的策略调整组件502。作为示例,参考图2,具有适当凭证的客户机可改变策略501的一个或多个分量。改变凭证的权力的范围可限于对应于特定租户或租户组的策略,或者限于中间件功能或中间件功能组,或者可以按其他方式受限。

策略确定组件503取决于对应于网络话务的虚拟机且取决于被分配给虚拟机的租户以及取决于中间件功能来确定要应用于网络话务的策略。在图5中,存在各自对应于中间件功能a到e的多个这样的确定组件503a到503e。路由组件504导致网络话务被路由以使得所确定的策略使用中间件来被应用于网络话务。例如,路由组件504可将网络话务路由至图4的中间件实施机构400。

图6示出了用于中间件管理服务操作以对网络话务项执行按租户中间件功能的方法600的流程图。方法600可由例如图5的中间件管理服务500来执行。因此,图6的方法600将频繁地参考图5的中间件管理服务500来描述。

中间件管理服务500访问网络话务项的一个或多个特性(动作601)。这些特性可包括(仅仅作为示例)网络话务是传入还是传出、是否具有特定大小、是否根据特定协议来传送、是否具有特定内容,等等。这些特性可例如由服务协调系统213来提供。中间件管理服务500标识对应于网络话务的虚拟机(动作602)(例如,在传入网络话务的情况下的网络话务去往的虚拟机,或者在传出网络话务的情况下的网络话务源自的虚拟机)。该信息可能已经由服务协调系统213确定并被提供给中间件管理服务500,和/或中间件管理服务500可能已经基于网络话务特性确定虚拟机身份。

中间件管理服务500然后确定什么租户被分配给虚拟机(动作603)。基于租户身份,确定组件503可参照中间件策略501以便标识要应用于网络话务的(诸)中间件功能(动作604),并标识要应用于那些中间件功能的相应配置(动作605)。然后可采用路由组件504以使得适当配置的中间件功能被应用于网络话务的方式来路由网络话务(动作606)。例如,路由组件可使得网络话务被路由到负责对目标虚拟机应用所标识的中间件的中间件实施机构400。网络话务可包括用于中间件实施组件的关于哪些中间件功能、以什么次序以及在具有什么配置的情况下被应用的指令。

例如,在主示例中,中间件管理服务可接收网络话务的特性并确定网络话务对应于图3的主机300中的虚拟机310a(即主示例中的主机210)。中间件管理服务然后可以参照策略501来确定将要执行功能401a和401b。然后,中间件管理服务可以将网络话务分派给中间件实施组件400,在使得中间件实施组件400执行功能401a和401b的配置的情况下该中间件实施组件400将代表目标虚拟机应用中间件功能401a和401b。

再次参考图5,中间件管理服务500可具有用于向由中间件管理服务500服务的可用中间件功能添加中间件服务或功能的扩展性机构505。由此,第三方中间件功能可被添加到中间件管理服务500。例如,假设将要添加新中间件功能f,扩展性机构505可包括准许服务协调系统213导致附加策略被填充以便为一个或多个租户支持功能f的应用程序接口。另外,中间件确定功能可被添加以处理针对该新功能的配置确定。

回头参考图3,记得在一个实施例中主机本身具有中间件实施机构,该中间件实施机构是图3的其他组件303的示例并且被抽象地示为图4中的中间件实施机构400。存在能够在主机上实现这一中间件实施机构400的各种方式。在一个示例中,中间件实施机构是在特定主机上运行的专用虚拟机,并且其操作以执行用于其他虚拟机的中间件功能。由于所有虚拟机都在安全环境中操作并且被防止使用主机操作系统来损害主机,因此这是允许第三方添加中间件功能同时降低对主机的损害的风险的更安全的方式。另一种方式是使得中间件实施机构担当主机操作系统的一部分。然而,记得中间件实施机构400中的部分或全部可以驻留在与目标虚拟机不同的主机中和/或可能驻留在任何主机之外。

因此,本文描述的原理允许中间件功能被灵活地结合到诸如云计算环境等系统中,同时可能允许第三方向云添加自定义中间件功能。

本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

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