CN102567436B - 多租户系统 - Google Patents
多租户系统 Download PDFInfo
- Publication number
- CN102567436B CN102567436B CN201110143572.1A CN201110143572A CN102567436B CN 102567436 B CN102567436 B CN 102567436B CN 201110143572 A CN201110143572 A CN 201110143572A CN 102567436 B CN102567436 B CN 102567436B
- Authority
- CN
- China
- Prior art keywords
- tenant
- attribute
- application
- behavior
- configuration template
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本文描述了用于为租户(104)识别多租户应用的应用行为的方法和系统。所述方法包括确定所述租户(104)是否遇到所述多租户应用的参考属性。所述参考属性是应用属性,对于所述参考属性可获得源自所述多租户应用的缺省行为的变化。基于所述确定,查明是否为所述租户(104)定义了配置模板。进一步地,基于所述配置模板的查明,识别与所述租户(104)对应的所述应用行为。所述识别出的应用行为提供至所述多租户应用以便所述多租户应用展示所述识别出的应用行为。
Description
技术领域
本发明总体涉及计算系统,具体而言涉及多租户系统。
背景技术
一般而言,由信息技术(IT)服务提供商提供的多租户系统托管应用,所述应用也称为多租户应用。在这样的系统中,所述应用的单个实例在服务器上运行,其可由多个客户端(也称为租户)访问,这是因为所述客户端订阅了所述IT服务提供商提供的服务。在所述多租户系统中,所述租户共享用于处理和存储数据的同一应用、同一平台和架构元件。因而,所述多租户系统给所述租户提供基于网络的集中式数据访问并且带来的费用比使用单个供应软件应用时要少。
诸如信息技术(IT)服务提供商之类的越来越多的组织提供多租户系统以最小化成本并最大化效率。而且,这些组织可能不得不满足不同租户的要求并可能要求所述应用基于所述租户的偏好运行。为了满足租户的所述偏好,所述多租户系统可以配置成以使所提供的应用及其行为基于租户对应用的访问而变化。所述应用行为方面包括:所述应用的用户接口,所述应用的处理步骤,业务规则,工作流程,访问控制,应用数据结构,报告,与其他应用的结合,以及其他的应用属性。例如,同一应用可以为一租户产生一种版面的报告而为另一租户产生另外版面的报告。
然而,随着租户数量的增长,所述多租户系统托管的多租户应用所要求的变化或配置也相应的增长。而且,支持更多的变化需要维护额外的租户特有元数据,这可能对应用性能、维护元数据的管理努力以及所消耗的存储有不利影响。因此,当为数目增长了的有多样化应用行为要求的租户实施时,传统的多租户系统支持的可配置性有限。
发明内容
本发明提供的发明内容是为介绍与多租户系统和应用有关的概念,这在具体实施方式中将进一步的说明。本发明内容并不意在识别权利要求所要求的本发明的关键特征也不意在用来确定或限定权利要求所要求的本发明的范围。
本文描述了用于多租户的方法和系统。在一种实施方式中,确定多租户应用的参考属性是否被遇到。所述参考属性是一种应用属性,所述参考属性对于不同租户可以在多租户应用的行为上有变化。基于所述确定,查明是否为所述租户定义了配置模板。并且,所述配置模板可以与单个租户或倾向于类似应用行为的一组租户相关联。
在一种实施方式中,如果查明没有为所述租户定义配置模板,基于所述参考属性来识别所述租户的多租户应用的应用行为。然而,如果确定为所述租户定义了配置模板,至少部分基于所述配置模板和所述参考属性来识别所述应用行为。所述识别出的应用行为可以作为缺省行为或源自所述缺省行为的变化。
附图说明
具体实施方式是参考附图进行描述。在附图中,参考标号的最左边数字识别所述附图,其中所述参考标号首先出现。同一标号贯穿所述附图使用以引用同样的特征和元件。
图1图示了根据本发明实施方式的实施多租户系统的网络环境。
图2a图示了根据本发明实施方式的所述多租户系统的元件。
图2b图示了根据本发明实施方式的与所述多租户系统托管的多租户应用有关的元数据。
图3图示了根据本发明实施方式的基于租户偏好确定多租户应用的应用行为的示例性方法。
具体实施方式
本文所述的本发明涉及多租户系统,该系统方便了多租户应用的配置并提供了基于租户访问所述多租户应用的偏向的应用行为。本文所述的系统和方法可以在各种设备上实施,例如服务器,台式电脑,笔记本或便携式电脑,主机计算机,移动计算设备等等。
在现今竞争激烈的商业环境中,促使诸如信息技术(IT)服务提供商之类的组织在为其客户提供的IT架构中实现高质量和高成本效率。为了实现高质量和高成本效率,许多这样的组织实施多租户系统。在多租户系统中,应用的单个实例提供给多个客户,因而与每个客户具有专用安装的系统相反,所述多租户系统要求的架构较小。因而,所述多租户系统相当地降低了的成本、管理开支和复杂度。
一般而言,多租户系统托管的应用(也称为多租户应用)对于多客户环境可能不可配置。为了满足不同客户(即租户)的偏向,多租户系统可方便提供多租户应用和配置所述应用行为。所述多租户系统可包括配置各种不同类型的应用行为。通常,需要为多租户应用的每个租户保持管理识别出的应用属性的应用行为的元数据。随着租户数量的增加,所要求的变化也相应的增加。因而,随着客户数量的增加,这样的多租户系统可能实施有限。
在这样传统的多租户系统中,为了配置多租户应用,要创建与每个租户独特偏向的应用行为有关的元数据的多个实例。这可能不仅是存储不高效的方案而且还给管理大量租户造成困难。例如,考虑多租户应用由1000租户访问,其中每个租户的所述元数据可具有每个1KB的10个词目。在这样的多租户环境中,要存储与租户访问多租户系统有关的所述元数据可能要消耗10000KB的存储空间。因而,随着所述租户数量的增长,应用行为元数据线性增长。而且,应用行为元数据的变化,这对于多个租户而言很常见,需要制作所有的复制拷贝而不是在从这样的多个租户受益的单个位置开始制作。这样的租户系统由于管理开支、可扩展性和存储不高效而应用有限。
而且,在某些其他的传统多租户系统中,当添加现有应用属性的新的变化时,所述现有多租户应用要重新编译和重新部署,这反过来可能导致较长的回车时间和较长的服务故障时间。
本发明描述了用于配置多租户应用和用于基于租户的偏向提供所述多租户应用的各种不同应用行为的方法和系统。多租户应用由多个租户访问。在一种实施方式中,所述多租户应用设计和研发为包括多个与之相关的应用属性。所述多租户应用的应用行为可以通过其应用属性定义。所述应用属性对于不同租户可能不同。所述应用属性包括,但不限于,多租户应用的用户接口,多租户应用的处理步骤,多租户应用的业务规则,多租户应用的工作流程,多租户应用的访问控制,多租户应用的应用数据结构,多租户应用的报告,以及多租户应用与其他应用的结合。例如,发票应用的处理步骤对于不同垂直行业的租户可能不同,而所述发票应用的基本功能保持不变。因而,处理步骤可以认为是所述多租户应用的一种应用属性。在另外的例子中,一个或一个以上租户可能更喜欢在所述发票应用中有除所述缺省域之外的额外的域。在所述例子中,扩展所述应用数据结构以适应额外的域的可用性可以认为是一种应用属性。
而且,对于每个多租户应用,可以识别出其缺省行为。所述缺省行为表示租户可能选择的最典型的应用行为。所述缺省行为包括所述多租户应用的所有应用属性。在一种实施方式中,所述多租户应用具有与之相关联的基础模板。所述基础模板管理所述多租户应用的缺省行为并保存与所述多租户应用的缺省行为有关的元数据。这样形成的所述基础模板具有所有所述应用属性的缺省值。
在一种实施方式中,同一应用属性的所有变化由共用代码(所述参考属性)引用。所述应用源代码通过此参考属性引用所述属性的所有变化。然而,为适应不同租户期望的变化,所述参考属性映射至一个或一个以上微分属性或者,可以说是,一个或一个以上应用行为。参考属性到多种微分属性的所述映射保持在所述多租户应用之外。每个微分属性表示所述多租户应用相对于所述参考属性的行为。而且,所述微分属性可以表示所述缺省行为相对于所述参考属性的变化。例如,如果应用属性有10个变体型;与所述10个变体型分别对应的10个不同微分属性可以与所述参考属性相关联。相应地,所述微分属性还可以表示要遵循的所述缺省行为。因而,由于提供了所述参考属性和所述微分属性,在许多情况下(例如,添加现有应用属性的新的变化时)附有所述应用变化的现有多租户应用可以既不用重新编译又不用重新部署。应用属性的这样的新的变化可以独立地添加至所述多租户系统中使用。
尽管要求在应用行为中有变化,不是所有变化都可以对租户而言独一无二。在一种实施方式中,这些变化是针对租户组的。所述租户组可以基于因素组合形成,例如工作的国家或地区,垂直行业,以及业务规模。组内的所有租户可以体验同样的应用行为。在一种实施方式中,所述多租户应用可以具有与之相关联的除基础模板之外的一种或一种以上配置模板。配置模板可包含一种或一种以上微分属性,所述微分属性针对租户要求变化。在一种实施方式中,当所述多租户应用的缺省行为的变化对于多个租户之中的一组租户是共同的时,配置模板还可以与所述一组租户相关联。所述配置模板可以反过来包含对于该组租户共同的微分属性。
另外或可选地,配置模板可以从一个或一个其他配置模板中继承,所述其他配置模板可以称为母配置模板。例如,配置模板可以从另外的配置模板(即母配置模板)中继承。应理解这样的继承等级可以有多种级别。配置模板从母配置模板中继承与所述应用行为变化有关的元数据。在所述例子中,所述应用行为将由与所述母配置模板对应的微分属性管理。
在一种实施方式中,当多租户应用被一个或一个以上租户访问时,确定源自所述多租户应用的缺省行为的变化是否可用。例如,可以确定参考属性是否已在应用代码中遇到。如前所述,所述参考属性表示所述缺省属性行为以及可用的变化。而且,如果确定所述参考属性被遇到,确定是否为所述租户定义了配置模板。如果没有为所述租户定义配置模板,基于所述参考属性和所述租户对所述多租户应用的访问识别微分属性(即与所述租户对应的应用行为)。而且,如果确定为所述租户定义了配置模板,那么基于所述配置模板,所述参考属性以及所述租户对所述多租户应用的访问识别与所述租户对应的应用行为。所述微分属性包括表示将要由所述多租户应用为所述遇到的参考属性和所述遇到参考属性的租户展示的应用行为的属性值。
在一种例子中,对于给定的参考属性,微分属性对于租户而言可以是唯一特地的。在所述例子中,可以基于所述参考属性和所述租户对所述多租户应用的访问识别所述微分属性。
在另外的例子中,可以为所述租户识别配置模板。而且,可以搜索所述识别出的模板来查明基于所述参考属性的微分属性。
在另外的例子中,在识别配置模板之后,可以确定出与所述配置模板相关联的一个或一个以上母配置模板。然而,可以搜索所述母配置模板来查明基于所述参考属性的微分属性。
在一种实施方式中,配置模板可以仅具有一个映射至参考属性的微分属性。在另外的实施中,在同一配置模板内参考属性可映射至多个微分属性。在所述实施中,与租户相关联的用户对应的区域设置属性或所述租户偏向的区域设置属性根据相应的元数据查明。然后,可以搜索所述配置模板来查明基于所述查出的区域设置属性和所述参考属性的微分属性。
当查明所述微分属性时,对于所述租户,根据与所述微分属性有关的元数据运行所述多租户应用。而且,在一种实施方式中,如果没有微分属性映射至租户的所述参考属性,根据由所述基础模板管理的缺省行为运行所述多租户应用。换而言之,如果没确定出微分属性,所述参考属性的缺省值将作为所述微分属性。
与所述多租户应用有关的元数据包括,例如,租户-属性关系,租户-配置模板关系,属性-配置模板关系,属性-区域设置-配置关系,配置模板继承以及应用属性定义。所述元数据可以保存在永续性存储体或,在运行时间,位于高速缓冲存储器内。由于提供了配置模板,其对于租户组可以是共同的且可以从其他配置模板中继承,避免了对与多个租户所要求的变化有关的元数据进行复制,这不仅在存储空间上提高效率,而且在应用性能、元数据管理和应用可扩展性上也提高了效率。因而,所述系统和方法可以满足大量租户而不会带来额外的管理、存储等花费。
尽管所述的用于提供多租户应用的各种应用行为的方法和系统可以在任何数目的不同的计算系统、环境和/或配置中实施,实施方式将在下面的示例性系统的背景下描述。
示例性系统
图1示出了根据本发明(subject mater)的实施方式实施多租户系统102的网络环境100。网络环境100包括多租户系统102、通过网络106与多租户系统102连接的多个租户设备104-1、104-2、104-3……104-N。为了解释说明的目的,将所述租户设备104-1、104-2、104-3……104-N共同称为租户设备104。应当理解,如果针对多租户系统102的租户是团体,则租户设备104也可以是所述团体用户的用户设备。进一步地,租户设备104可替换称为租户104。
网络106可以是无线网络、有线网络或者它们的结合。网络106可以实现为不同类型的网络之一,例如内部网、局域网(LAN)、广域网(WAN)、因特网等。网络106可以是专用网络或共享网络,表示互相通信的、使用不同协议的不同类型网络的联合,所述协议例如超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等。
多租户网络102和租户104可以实现为任意的各种传统计算机设备,包括服务器、台式PC、笔记本或者便携式计算机、工作站、大型计算机、移动计算设备、娱乐设备和因特网设备。进一步地,可以将多租户系统102与一个或一个以上应用服务器(图中未示出)连接用于托管多租户应用,并且用于向租户104提供和从租户104接收与所述多租户应用有关的数据。可以局部地或跨一个或一个以上地区布置的应用服务器可以物理上或逻辑上连接至多租户系统102。然而,应当理解,多租户系统102还可以实现为应用服务器。
在一种实施方式中,多租户系统102与元数据储存库108相关联,元数据储存库108存储与所述多租户应用和租户104有关的元数据。所述元数据储存库可以包括与租户、基础模板、一个或一个以上配置模板、配置模板的继承、参考属性、与多租户应用相关联的微分属性有关的元数据。尽管图示的元数据储存库108在多租户系统102的外部,但应当理解,元数据储存库108也可以在多租户系统102的内部。例如,元数据储存库108包括表示访问多租户应用的租户104的参数选择的元数据。进一步地,所述元数据可以存储在可扩展标记语言(XML)文件中,或者存储在诸如表格之类的各种数据结构的形式的数据库中。例如,元数据储存库108可以实现为单独数据库、分布式数据库或分布式数据库的集合。
租户104可访问一个或一个以上的多租户应用。所述多租户应用设计并开发成包括与其相关联的多个应用属性。所述应用属性控制所述多租户应用的行为。例如,所述应用属性包括多租户应用的用户界面、处理步骤、业务规则、工作流程、访问控制、数据结构、报告和与其他应用的结合。
除其他方面,多租户系统102包括属性识别模块110。属性识别模块110还可以在外部存储介质中提供,所述外部存储介质可以与多租户系统102连接。在一种实施方式中,属性识别模块110确定在应用代码中是否遇到多租户应用的参考属性。所述参考属性是多租户应用的应用属性,对不同的租户所述参考属性可以根据所述多租户应用的缺省行为而变化。
当多租户系统102确定在租户104的应用代码中没有遇到所述参考属性时,则多租户应用遵循缺省行为,该缺省行为可以在与多租户应用相关联的基础模板中定义。所述基础模板控制多租户应用的缺省行为,并且保存与多租户应用的缺省行为有关的元数据。所述缺省行为表示租户104可能选择的最典型的应用行为。然而,如果确定在应用代码中遇到参考属性,则属性识别模块110被配置为识别所遇到的参考属性。在一种实施方式中,多租户应用可包括一种或一种以上的参考属性,每一个参考属性通过参考属性身份证(ID)唯一识别。
每一个参考属性可以与多个微分属性相关联。进一步地,每一个微分属性表示所述多租户应用相对于所述参考属性的行为。所述微分属性可包括表示相对于所述参考属性变化的缺省行为的属性值,或者包括表示相对于所述参考属性没有变化的多租户应用的缺省行为的缺省属性值。一旦识别出所述参考属性,则属性识别模块110查明是否为租户104定义配置模板。根据所述查明的结果,识别与遇到所述参考属性的租户104对应的应用行为。应当理解,所述应用行为可以通过微分属性的方式识别。此外,每一个租户104可以通过相应的租户ID的方式识别。
在一种实施方式中,多租户应用可具有与其相关联的一个或一个以上配置模板。进一步地,所述配置模板可以包括一个或一个以上微分属性,该微分属性指定由一个或一个以上租户104请求的应用行为。在一种实施例中,配置模板对一组租户可以是共有的。在另一种实施例中,配置模块可以仅针对单独的租户来定义。进一步地,对于给定的参考属性和租户104,属性识别模块110可以根据租户的配置模板确定相应的微分属性。此外,配置模板可以从一个或一个以上其他的配置模板继承。被配置模板继承的配置模板可以称为母配置模板。如果配置模板从一个或一个以上母配置模板继承,则对于给定的参考属性和租户(例如租户104),属性识别模块110可以根据所述母配置模板确定相应的微分属性。
所述应用属性、参考属性、微分属性、基础模板和配置模板可以人工确定,或者可以通过多租户系统102来确定,正如参考图2a所详细描述的那样。如前所述,识别出的微分属性可以具有微分值或缺省属性值。属性识别模块110可以将所述识别出的微分属性提供给多租户应用以使所述应用行为是基于与所述微分属性相关联的属性值。
根据本发明的实施方式,图2a示出多租户系统102的示例性元件,图2b示出与多租户系统102托管的多租户应用有关的元数据。多租户系统102包括接口202、一个或一个以上处理器204和与处理器204连接的存储器,例如高速缓冲存储器206和存储器208。
接口202可以包括各种软件接口和硬件接口,例如用于外围设备的接口,例如键盘、鼠标、外部存储器和打印机。进一步地,接口202可以使多租户系统102能够与诸如web服务器和外部数据库之类的其他计算系统通信。接口202可以帮助实现在种类繁多的网络和协议类型下的多种通信,所述网络包括有线网络,例如局域网(LAN)、电报等,还包括无线网络,例如无线LAN(WLAN)、手机或人造卫星。为了这个目的,接口202可以包括用于将多个计算系统彼此连接或者连接至其他服务器计算机的一个或一个以上端口。在一种实施方式中,多租户系统102通过接口202与元数据储存库108和应用服务器通信。
处理器204可以是单独的处理单元或多个处理单元,其全部可包括多个计算单元。处理器204可以实现为一个或一个以上微处理器、微型计算机、微型控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来处理信号的任意设备。除其他功能之外,处理器204配置用来获取并执行计算机可读的指令和存储在存储器208中的数据。
在一种实施方式中,高速缓冲存储器206也称为缓存206,起到临时存储介质的作用,所述临时存储介质频繁地并新近地存取可以存储用来快速存取的数据。一旦数据存储在缓存206中,则此后可以通过访问该数据的缓存副本来使用该数据,而不是从永久性存储器(例如元数据储存库108)重新获取或重新计算所述数据,从而减少执行时间。尽管如图所示的缓存206与处理器204分开放置,但缓存206可以在相同的集成电路中与处理器204一起放置。
存储器208可以包括本领域公知的任意计算机可读介质,例如易失性存储器和/或非易失性存储器,所述易失性存储器例如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM),所述非易失性存储器例如只读存储器(ROM)、可擦除可编程ROM、闪存、硬盘、光盘和磁带。尽管存储器208和缓存206已经图示为分开的元件,但应当理解,存储器208可以与缓存206结合。存储器208包括模块210和数据212。除其他内容之外,模块210包括例行程序、程序、对象、要素、数据结构等,其执行特定任务或实现特定的抽象数据类型。除其他内容之外,数据212作为用于存储由一个或一个以上模块210处理、接收和产生的数据的数据库。模块210还包括例如配置模块214、属性识别模块110和其他模块216。其他模块216可以包括在多租户系统102上补充应用的程序,例如操作系统中的程序。数据212包括作为一个或一个以上模块210的执行结果而产生的数据。
由租户104访问的多租户应用可以由多租户系统102托管,或者他们可以存储在外部并且连接至多租户系统102。进一步地,由多租户应用产生的数据可以存储在多租户系统102中或者任意的外部数据库中。在一种实施方式中,与多租户系统102(在下文中称作系统102)相关联的多租户应用被配置成满足租户104首选的各种应用行为。在一种实施例中,可以人工配置所述多租户应用。在另一种实施例中,可以通过配置模块214来配置所述多租户应用。
为了配置多租户应用,创建包括与租户104通过访问多租户应用首选的应用行为有关的元数据的知识库(图中未示出)。元数据储存库108可以包括所述知识库。所述知识库可以包括与多租户应用的典型应用行为有关的详细说明。进一步地,由不同的租户首选的应用行为可以通过调查、会见、反馈论坛、小组会议等方式来确定,并且所收集的信息可以存储在所述知识库中。应当理解,所述典型的应用行为还可以根据由不同租户104首选的应用行为来识别。
根据所述信息,配置模块214可以识别与多租户应用相关联的应用属性。配置模块214还可以根据如下因素来确定所述多租户应用的缺省行为:例如由租户104通过访问多租户应用最首选的行为,或者作为另一个实施例,对全部租户而言的可接受的行为,或者作为又一个实施例,资源利用最有效的行为。进一步地,根据所述缺省行为,识别缺省应用属性。缺省属性值是表示要遵循多租户应用的缺省行为的应用属性的属性值。进一步地,配置模块214可以配置成识别针对不同租户可具有不同值的应用属性。这种应用属性被识别为参考属性。每一个参考属性可以通过唯一的参考属性ID来识别,该参考属性ID可以存储在元数据储存库108中。
所述参考属性由应用的源代码来具体化以使所述参考属性可以在任意时间改变,并且对所述参考属性的任意改变不需要多租户应用重新编码或重新部署。在一种实施方式中,在基础模板中提供与所有应用属性有关的元数据用于多租户应用。所述基础模板包括参考属性,以致于应用行为随着所述参考属性的改变而改变。所述基础模板托管与缺省行为有关的元数据,其对所有租户104而言是共有的,并且相应地,这种元数据的单一副本可以存储在永久性存储器中,例如元数据储存库108,或者在运行时存储在缓存206或应用服务器的高速缓冲存储器中。元数据储存库108可以包括一个或一个以上租户-属性关系元数据250、租户-模板关系元数据252、属性-模板关系元数据254、应用属性主元数据256、模板继承元数据258、属性-现场-模板关系元数据260和模板-属性主元数据262。
在一种实施方式中,一旦识别出参考属性,则由不同租户104首选的应用行为可以存储为微分属性。每一个微分属性(即:针对参考属性的应用行为的每一次执行)可以具有与其相关联的唯一的微分属性ID。进一步地,可以确定改变是否仅仅是租户或一组租户首选的。如果所述改变是租户(例如租户104-1)首选的,那么可以为所述租户104-1唯一定义微分属性,并且相应的元数据可以存储在元数据储存库108中。然而,如果对关于给定参考属性的缺省行为的相同改变(即:相同的微分属性)是由一个以上的租户首选,则可以创建托管与多租户应用的应用行为有关的元数据的配置模板。在这种情况下,包含在所述配置模板中的有关这种微分属性的元数据可以仅存储一次,而不是为组内的每一个租户创建元数据的副本。
在另一种实施方式中,可以创建配置模板以使其从一个或一个以上其他的配置模板(称作母配置模板)继承元数据。进一步地,应当理解,同样可以针对租户来唯一定义从一个或一个以上母配置模板继承的配置模板。既然配置模板从一个或一个以上母配置模板继承,则不创建相同元数据的多个副本。
在一种实施方式中,可以根据配置用于一个租户的特定应用行为来提取配置模板。在一种实施例中,这样的租户可以是企业创始人并且可以完善多租户应用的应用行为。通过新的配置模板可以使这种应用行为对其他租户是可用的。可以使这种新的配置模板对其他类似租户可用并且因此能形成新的租户组。类似地,通过根据多个单独的配置模板来提取特定的微分属性可以形成新的混合模板。
在多租户系统的配置阶段可以完成进一步创建基础模板、配置模板和母配置模板。如前所述,元数据储存库108可以配置成包括基础模板、配置模板、母配置模板以及与参考属性和微分属性有关的元数据。
在运行过程中,当多租户应用被租户104访问时,与多租户应用有关的元数据被带到系统102的缓存206中用于快速访问。当多租户应用被访问时,属性识别模块110确定在租户(例如租户104-1)的应用代码中是否遇到参考属性。如前所述,每一个租户和参考属性可以分别通过唯一的租户ID和参考属性ID来识别。因此,当多租户应用由租户104-1访问时,属性识别模块110通过参考属性ID的方式可以确定所遇到的应用属性是否是参考属性。
当属性识别模块110确定出所遇到的应用属性不是参考属性时,可以将所遇到的应用属性的缺省值提供给多租户应用。相应地,多租户应用为租户104-1展示相对于所遇到的应用属性的缺省行为。然而,如果确定出所述参考属性存在,则属性识别模块110至少基于所述参考属性和租户104-1来识别与租户104-1相应的应用行为。例如,在用于计算税费的多租户应用中,尽管税务应用的基本规则可能是相同的,但是在不同管辖区居住的租户可能具有用于计算税费的特定规则。在这种情况下,所述参考属性可以是业务规则。因此,对于不同管辖区的租户所述参考属性可以遵循不同的税务应用。
在一种实施方式中,属性识别模块110确定是否为租户(例如租户104-1)定义了配置模板。在一种实施例中,与租户104-1相应的配置模板可以是基础模板。所述配置模板可以包括与一个或一个以上微分属性有关的元数据。由所述配置模板定义的属性值优先于由所述基础模板定义的相同的应用属性的属性值。进一步地,所述配置模板可以对首选了相似的应用行为的一组租户共有,或者可以仅定义用于单独的租户。例如,具有相同的企业管理生产和销售的全部过程、地理位置或者具有相似的当地惯例的租户可以共享共同的配置模板。所述配置模板可以通过配置模板ID的方式唯一识别。属性识别模块110可以利用租户-模板关系元数据252来识别与租户104-1相应的配置模板。例如,假定租户104-1的租户ID为TN04,那么可以在租户-模板关系元数据252中检查与所述配置模板ID对应的入口,并且可以将CT02识别为所述配置模板。
进一步地,如果确定所述关键字不存在于租户-模板关系元数据252中,则确定是否为租户104-1唯一地定义微分属性。例如,如果特定的应用行为是由租户(例如租户104-1)首选并且不是由其他租户首选,那么表示所述特定的应用行为的微分属性可以定义用于多租户应用。在所述实施方式中,属性识别模块110可以查询与所述多租户应用有关的元数据来确定这种单独特定的微分属性,所述元数据例如在租户-属性关系元数据250中的元数据。为了这个目的,属性识别模块110可以形成包括与租户104-1对应的租户ID和与所遇到的参考属性对应的参考属性ID的关键字。进一步地,如果在租户-属性关系元数据250中存在所述关键字,则相应的微分属性可以通过微分属性ID的方式识别。进一步地,所述微分属性的属性值可以通过利用应用属性主元数据256来确定,该应用属性主元数据256包括全部应用属性的属性值,即:缺省属性值和微分属性值。
例如,假定租户104-1的租户ID是TN09,并且其遇到的参考属性是AA1-01。在所述实施例中,属性识别模块110可以形成关键字TN09 + AA1-01,并且为租户-属性关系元数据250中的微分属性查询相应的入口。使用TN09 + AA1-01作为关键字,确定出AA1-09是相应的微分ID。随后,AA1-09被用作应用属性主元数据256中的关键字并且取回相应的属性值,该属性值表示由租户104-1首选的应用行为。
然而,如果属性识别模块110确定没有为租户104-1唯一地定义微分属性并且也没有定义配置模块,那么将参考属性的缺省值提供给多租户应用。应当理解,属性识别模块110可以首先确定是否为租户唯一地定义微分属性,并且基于确定的结果,属性识别模块110可以查明是否为租户104-1定义配置模板。
在一种实施方式中,如果确定为租户104-1定义配置模板,则一旦识别出所述配置模板,则属性识别模块110可以确定所述配置模板是否定义了所述遇到的参考属性的微分属性。例如,属性识别模块110可以在属性-模板关系元数据254中查询,把配置模板ID和参考属性ID作为关键字。如果存在所述关键字,则可以确定所述配置模板定义了所述遇到的参考属性的微分属性。随后,确定出相应的微分属性的属性值并且将其提供给多租户应用。在一种实施例中,假定配置模板ID为例如CT02,以及参考属性ID为例如AA1-01。现在,CT02 + AA1-01被用作属性-模板关系元数据254中的关键字并且可以将AA1-02识别为所述微分属性。
然而,如果在属性-模板关系元数据254中不存在所述关键字,则属性识别模块110可以查询模板集成元数据258并且检查与识别出的配置模板对应的母配置模板的入口。因此,属性识别模块110确定识别出的配置模板是否与一个或一个以上母配置模板相关联。在一种实施方式中,所述配置模板可以具有所有应用属性的属性值,在这种情况下,这种应用属性的值可以从所述母配置模板继承。例如,属性识别模块110可以识别与所述配置模板关联的全部母配置模板。换句话说,确定所述母配置模板直到识别出基础模板为止。可以利用模板继承元数据258基于“IsBaseTemplate”标记来识别所述基础模板。
例如,假定识别出的配置模板的配置模板ID为CT02,并且所遇到的参考属性是AA2-01,那么CT02 + AA2-01被用作关键字来查询属性-模板关系元数据254中的相应微分属性。因为关键字CT02 + AA2-01不存在,所以确定配置模板CT02是否从任何母配置模板继承,CT02被用作模板继承元数据258中的关键字并且确定CT01为其母配置模板。随后,对于参考属性例如AA2-01和母配置模板CT01,根据属性-模板关系元数据254确定相应的微分属性NULL。微分属性NULL表示要采用所述参考属性的缺省值。因此,属性识别模块110将所述参考属性的缺省值提供给应用,表示由租户104-1首选的多租户应用的缺省行为。
进一步地,应当理解,可以有多级继承级别。此外,没有在配置模板和相应的母配置模板中指定的属性值可以把缺省属性值作为在基础模板中定义的属性值。对于模板继承元数据258,在CT04中定义的参考属性值可优先于CT02中相同的参考属性值。相似地,在CT04中定义的参考属性值可优先于CT03中相同的参考属性值。更进一步地,在CT02中定义的应用属性值可优先于CT01中相同的应用属性值,并且仅仅是在CT04、CT02和CT03中缺少的属性值将会采用由CT01定义的缺省属性值,即:所述基础模板。
在一种实施例中,假定识别出的配置模板的配置模板ID为CT04,那么CT04被用作模板继承元数据258中的关键字。根据所述配置模板IDCT04,CT02和CT03可以识别为母配置模板。现在假定参考属性ID为AA1-01,可以用每一个配置模板IDCT02和CT03来形成钥匙,其可以在属性-模板关系元数据254中查询。通过在属性-模板关系元数据254中查询,可以确定存在关键字CT02 + AA1-01,而CT03 + AA1-01不存在,从而保证应用属性没有重叠并且避免不一致的应用行为。相应地,识别出与CT02 + AA1-01对应的微分属性为AA1-02。所述属性值AA1-02可以根据应用属性主元数据256来确定。
进一步地,在一种实施方式中,如果确定出没有定义用于租户104的单独的租户特定的微分属性、配置模板、母配置模板,那么在这种情况下,属性识别模块110可以将参考属性的缺省属性值提供给多租户应用。在一种实施方式中,属性识别模块110访问模板继承元数据258以根据“IsBaseTemplate”标记来识别基础模板。进一步地,根据所述基础模板和所遇到的参考属性,利用属性-模板关系元数据254来识别相应的微分属性。此外,利用应用属性主元数据256来确定所述微分属性的值。
此外或可选地,多租户应用的参考属性可以是区域设置敏感的。例如,针对相同租户104的不同用户所述参考属性可以改变。这种用户特定的改变可以通过区域设置属性的方式来识别,通过区域设置属性ID来唯一识别。当遇到参考属性时,可以确定出所遇到的参考属性是区域设置敏感的并且相应地识别出租户104的区域设置属性。在所述实施方式中,根据所述参考属性和区域设置属性,识别出针对租户104或者租户104的用户的微分属性。如前所述,所述微分属性可以唯一定义或者可以通过配置模板的方式来识别。进一步地,如果没有识别出配置模板或者确定没有为租户唯一地定义微分属性,则将所述参考属性的缺省值提供给多租户应用。
例如,一旦确定针对租户104的配置模板并且确定其继承,则可以利用属性-区域设置-模板关系元数据260来确定微分属性。属性识别模板110可以将配置模板ID、参考属性ID和区域设置ID用作属性-区域设置-模板关系元数据260中的关键字。假定针对租户的配置模板为CT01,并且所遇到的参考属性为AA3-01,则需要识别针对与运行多租户应用的租户相关的终端用户的微分属性。属性识别模块110根据区域设置属性元数据(图中未示出)确定参考属性AA3-01是区域设置敏感的,并且在属性-模板关系元数据254中不存在针对CT01 + AA3-01的入口。随后根据所述区域设置属性元数据识别所述用户的地点。假定识别出所述用户的区域设置ID为LC03。属性识别模块110随后利用CT01 + AA3-01 + LC03作为关键字来查询属性-区域设置-模板关系元数据260以识别出AA3-03为所述微分属性ID。可以根据应用属性主元数据256来确定针对AA3-03的属性值。应当理解,在所述实施例中,在缺少用户区域设置信息的情况下,存储在所述区域设置属性元数据中的租户的首选区域设置属性可以取代用户的区域设置。
在另一种实施方式中,一旦识别出与租户104相关联的配置模板,则并不是查询属性-模板关系元数据254、应用属性主元数据256、属性-区域设置-模板关系元数据260,而是属性识别模块110查询模板-属性关系元数据262以识别由租户首选的应用行为,即:识别微分属性。模板-属性关系元数据262包括与关于配置模板和参考属性的多租户应用的应用行为有关的细节。在所述实施方式中,所遇到的参考属性的配置模板ID和参考属性ID被用作模板-属性关系元数据262中的关键字以识别由租户104首选的应用行为。例如,如果CT02被识别为配置模板并且AA1-01为所遇到的参考属性,那么<Variation value 02 for Attribute 01>被识别为表示租户104首选的对于所遇到的参考属性的改变2的微分属性值。进一步地,类似的,也可使用母配置模板的配置模板ID。同样的,对于区域设置敏感参考属性的情况,模板-属性关系元数据262可以包括区域设置属性ID的字段,并且相应地,配置模板ID、参考属性ID和区域设置属性ID可以用作关键字。
进一步地,应当理解,上述与多租户应用有关的元数据的例子仅仅是示例性的而不是限制性的。可以改变所述元数据的布局和配置用于不同的实施方式。
因此,由于提供了对租户进行的归类,该租户共享共同的配置模板和对与参考属性有关的元数据的继承,所以避免复制元数据。因此,系统102是高效的存储器,在不承担额外消耗的情况下容易支持并满足大量租户的需要。
图3示出根据本发明实施方式的用于根据租户的参数选择确定并提供多租户应用的行为的示例性方法300。
所述示例性方法可以以一般情况下的计算机可执行指令来描述。通常,计算机可执行指令包括例行程序、程序、对象、要素、数据结构、步骤、模块、功能等,其执行特定功能或者实现特定的抽象数据类型。所述方法还可以在分布式计算环境下实施,在该分布式计算环境下,功能由通过通信网络连接的远程处理设备执行。在分布式计算环境下,计算机可执行指令可以位于本地也可以位于远程计算机存储介质中,包括记忆存储设备。
并不意在将描述的所述方法的顺序解释为限制性的,并且可以以任意顺序结合任意数量的所描述的方法块来实现所述方法或者可选的方法。相应地,单独的块可以从所述方法中删除而不会背离本文描述的本发明的精神和范围。此外,所述方法可以在任何合适的硬件、软件、固件或他们的结合中实施。参照多租户应用来解释所述方法,然而,应当理解,可以实施方法300用于许多多租户应用。进一步地,可以实现方法300用于所述多租户应用中的每一个参考属性。
在块302中,初始化多租户应用。例如,由多租户系统102或应用服务器托管的多租户应用由租户104初始化。在一种实施方式中,当所述多租户应用被初始化时,来自元数据储存库108的相应的元数据被带到缓存206中。
在块304中,确定是否遇到多租户应用的参考属性。在一种实施方式中,属性识别模块110确定是否遇到所述参考属性。如果确定出没有遇到所述参考属性,则块304分支到(NO分支)块306。例如,如果遇到没有可用的改变的应用属性,则块304分支到块306。
在块306中,确定应用属性的缺省值。该缺省值可以包括在多租户应用的基础模板中。因此,在这种情况下,多租户应用遵循由所述基础模板管理的缺省行为。
回到块304中,如果确定出遇到参考属性,则块304分支(YES分支)到块308。例如,如果确定出对于所遇到的应用属性而言多个属性值可用,则块304分支到块308。
在块308中,识别出所遇到的参考属性。例如,唯一的ID可以与多租户应用的每一个参考属性相关联。在一种实施方式中,属性识别模块110识别与所遇到的参考属性相应的参考属性ID。相应地,属性识别模块110还识别与遇到所述参考属性的租户相应的租户ID。
在块310中,确定与所述参考属性相应的微分属性是否唯一定义用于遇到所述参考属性的租户。在一种实施方式中,属性识别模块110通过访问租户-属性关系元数据250来确定对于所述参考属性的单独特定的应用行为是否定义用于所述租户104。属性识别模块110根据租户ID和参考属性ID识别定义用于租户104的微分属性。如果确定出所述微分属性唯一定义用于所述租户,则块310分支(YES分支)到块312。
在块312中,确定与所述参考属性相应的微分属性值。在一种实施方式中,属性识别模块110根据识别出的微分属性在应用属性主元数据256中查询所述属性值。例如,如果租户104首选的是三级访问控制而不是缺省的两级,那么在这种访问控制的情况下,所述参考属性可以具有表示由租户104首选的三级访问控制的微分属性。
回到块310中,如果确定微分属性不是唯一定义用于租户,则块310分支(NO分支)到块314。在块314中,确定与所述租户相应的配置模板是否被识别。所述配置模板可以包括一个或一个以上参考属性的属性值。由所述配置模板定义的属性值优先于由基础模板定义的相同的应用属性的属性值。进一步地,所述配置模板可以对首选了相似的应用行为的一组租户共有,或者可以仅定义用于单独的租户。在一种实施例中,与租户相应的配置模板可以使基础模板。在一种实施方式中,属性识别模块110通过访问租户-模板关系元数据252来识别与租户104相应的配置模板。如果没有识别与租户104相应的配置模板,则块314分支(NO分支)到块316。
在块316中,确定参考属性的缺省值。将参考属性的缺省值提供给多租户应用,并且相应地多租户应用展示针对由租户给定的参考属性的缺省行为。在一种实施方式中,属性识别模块110访问模板继承元数据258以根据“IsBaseTemplate”标记来识别基础模板。进一步地,根据所述基础模板和所遇到的参考属性,利用属性-模板关系元数据254来识别相应的微分属性。此外,利用应用属性主元数据256来确定所述微分属性的值。
回到块314中,如果识别出对于所述租户的配置模板,则块314分支(YES分支)到块318。在块318中,确定微分属性是否由所述配置模板和所遇到的参考属性定义。在一种实施方式中,属性识别模块110确定所述微分属性是否由所述配置模板和所遇到的参考属性定义。例如,属性识别模块110根据参考属性ID和配置模板ID在属性-模板关系元数据254中查询所述微分属性。如果确定出所述微分属性被定义,则块318分支(YES分支)到块312,其中所述微分属性的属性值被确定。然而,如果确定出所述微分属性没有被定义,则块318分支(NO分支)到块320。
在块320中,确定配置模板是否与一个或一个以上母配置模板相关联。换句话说,可以确定所述配置模板是否从一个或一个以上母配置模板继承元数据。在一种实施方式中,属性识别模块110通过访问模板继承元数据258来确定配置模板是否从任何母配置模板继承元数据。如果确定出配置模板从一个或一个以上母配置模板继承,则块320分支(YES分支)到块318。如前所述,在块318中确定微分属性是否由配置模板和所遇到的参考属性定义,在这个实例中所述配置模板就是母配置模板。然而,如果确定出配置模板没有从任何母配置模板继承,则块320分支(NO分支)到块316,其中参考属性的缺省值被确定。
可以重复块318和块320直到在块320中确定出母配置模板是基础模板。例如,属性识别模块110访问模板继承元数据258以根据“IsBaseTemplate“标记来识别母配置模板是否是基础模板。
在块312中,根据母配置模板和参考属性确定微分属性的值。在一种实施方式中,属性识别模块110利用应用属性主元数据256来确定微分属性的值。
进一步地,应当理解,对于区域设置敏感的参考属性可以重复方法300。然而,在这种情况下,至少根据区域设置属性和参考属性来确定微分属性。
因此,当租户访问多租户应用时,不用为每一个租户复制对于一组或全部租户而言可以是共有的元数据,从而避免数据冗余。对租户元数据进行归类连同所提供的创建继承元数据的多个配置模板,而为保存在存储空间做准备,对于大量租户的情况容易管理并且具有增强的可扩展性。
尽管用具体到结构特征和/或方法的语言来描述用于多租户的方法和系统的实施方式,但应当理解,本发明不必限制于所描述的具体特征或方法。而是公开所述具体特征和方法作为多租户的示例性实施方式。
Claims (14)
1.一种为租户识别多租户应用的应用行为的方法包括:
接收来自租户的访问多租户应用的请求;
配置所述多租户应用,其中所述多租户应用包括应用属性,其中每个所述应用属性与所述多租户应用的一个应用行为相关联,其中所述配置包括:
确定应用属性是否为所述多租户应用的参考属性,其中因租户的不同而发生改变的应用属性具有共用代码,所述参考属性与所述共用代码对应,所述共用代码具体化于所述多租户应用的源代码,其中所述参考属性被映射到元数据储存库中所述多租户应用的至少一个微分属性,其中所述至少一个微分属性是指所述应用属性相对于所述参考属性的变化;
基于所述确定查明是否为所述租户(104)定义了配置模板,其中所述配置模板包括针对所述租户所在的租户组的所述至少一个微分属性;
基于所述查明识别所述应用属性的所述应用行为,其中至少基于所述参考属性和所述至少一个微分属性识别所述应用行为;以及
对于每个应用属性向所述多租户应用提供所述识别出的应用行为以便所述多租户应用为所述租户(104)展示所述识别出的应用行为。
2.如权利要求1所述的方法,还包括:
确定导出所述配置模板的至少一个母配置模板;以及
其中,所述应用行为至少部分基于所述至少一个母配置模板而被识别。
3.如权利要求1所述的方法,还包括:
确定与所述租户(104)对应的区域设置属性;以及
其中,所述应用行为至少基于所述区域设置属性而被识别。
4.如权利要求1所述的方法,还包括当所述参考属性没有被遇到时,确定所述应用属性的缺省值。
5.如权利要求1所述的方法,其中所述参考属性至少是如下一种:用户接口、处理步骤、业务规则、工作流程、访问控制、应用数据结构、报告、以及与其他多租户应用的结合。
6.如权利要求1所述的方法,其中所述识别出的应用行为至少表示缺省行为和源自所述缺省行为的变化中的一个。
7.如权利要求1所述的方法,其中所述配置模板与所述租户组相关联。
8.一种多租户系统(102)包括:
处理器(204);以及
存储器(208),其连接至处理器(204),存储器(208)包括属性识别模块(110),所述属性识别模块(110)配置为
确定在为租户(104)配置所述多租户应用时是否遇到多租户应用的参考属性,其中因租户的不同而发生改变的应用属性具有共用代码,所述参考属性与所述共用代码对应,所述共用代码具体化于所述多租户应用的源代码,其中所述参考属性被映射到元数据储存库中所述多租户应用的至少一个微分属性,其中所述至少一个微分属性是指所述应用属性相对于所述参考属性的变化,而其中所述应用属性与应用行为相关联;
当所述参考属性遇到时,查明是否为所述租户(104)定义了配置模板,其中所述配置模板包括针对所述租户所在的租户组的所述至少一个微分属性;以及
至少基于所述参考属性和所述至少一个微分属性识别所述应用属性的所述应用行为。
9.如权利要求8所述的多租户系统(102),其中,当为所述租户(104)定义了配置模板时,所述属性识别模块(110)还配置为至少部分基于所述配置模板和所述参考属性识别所述应用行为。
10.如权利要求9所述的多租户系统(102),其中所述属性识别模块(110)还配置为:
确定导出所述配置模板的至少一个母配置模板;以及
至少部分基于所述至少一个母配置模板识别所述应用行为。
11.如权利要求8至10任意一项所述的多租户系统(102),其中所述属性识别模块(110)还配置为:
确定与租户(104)对应的区域设置属性;以及
至少基于所述区域设置属性识别所述应用行为。
12.如权利要求8所述的多租户系统(102),其中所述多租户系统(102)与所述元数据储存库(108)相关联,并且其中所述元数据储存库(108)包括与租户、基础模板、一个或一个以上配置模板、配置模板的继承、参考属性、以及与所述多租户应用相关联的微分属性相关的元数据。
13.如权利要求8所述的多租户系统(102)还包括配置模块(214),其配置为为所述多租户应用创建至少一个基础模板和为所述多租户应用创建一个或一个以上配置模板。
14.如权利要求8所述的多租户系统(102),其中,当没有为所述租户(104)识别出应用行为时,所述属性识别模块(110)配置为提供所述参考属性的缺省属性值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN3508/MUM/2010 | 2010-12-22 | ||
IN3508MU2010 | 2010-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567436A CN102567436A (zh) | 2012-07-11 |
CN102567436B true CN102567436B (zh) | 2017-04-12 |
Family
ID=44799485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110143572.1A Active CN102567436B (zh) | 2010-12-22 | 2011-05-31 | 多租户系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9317706B2 (zh) |
EP (1) | EP2469444B1 (zh) |
CN (1) | CN102567436B (zh) |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2720398C (en) | 2008-04-02 | 2016-08-16 | Twilio Inc. | System and method for processing telephony sessions |
US8837465B2 (en) | 2008-04-02 | 2014-09-16 | Twilio, Inc. | System and method for processing telephony sessions |
WO2010040010A1 (en) | 2008-10-01 | 2010-04-08 | Twilio Inc | Telephony web event system and method |
WO2010101935A1 (en) | 2009-03-02 | 2010-09-10 | Twilio Inc. | Method and system for a multitenancy telephone network |
US9210275B2 (en) | 2009-10-07 | 2015-12-08 | Twilio, Inc. | System and method for running a multi-module telephony application |
US20120208495A1 (en) | 2010-06-23 | 2012-08-16 | Twilio, Inc. | System and method for monitoring account usage on a platform |
US9590849B2 (en) | 2010-06-23 | 2017-03-07 | Twilio, Inc. | System and method for managing a computing cluster |
US8838707B2 (en) | 2010-06-25 | 2014-09-16 | Twilio, Inc. | System and method for enabling real-time eventing |
US8649268B2 (en) | 2011-02-04 | 2014-02-11 | Twilio, Inc. | Method for processing telephony sessions of a network |
WO2012162397A1 (en) | 2011-05-23 | 2012-11-29 | Twilio, Inc. | System and method for connecting a communication to a client |
US20140044123A1 (en) | 2011-05-23 | 2014-02-13 | Twilio, Inc. | System and method for real time communicating with a client application |
US9648006B2 (en) | 2011-05-23 | 2017-05-09 | Twilio, Inc. | System and method for communicating with a client application |
US10182147B2 (en) | 2011-09-21 | 2019-01-15 | Twilio Inc. | System and method for determining and communicating presence information |
US9495227B2 (en) | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
US9602586B2 (en) | 2012-05-09 | 2017-03-21 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US9247062B2 (en) | 2012-06-19 | 2016-01-26 | Twilio, Inc. | System and method for queuing a communication session |
US8737962B2 (en) | 2012-07-24 | 2014-05-27 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US9417892B2 (en) | 2012-09-28 | 2016-08-16 | International Business Machines Corporation | Configuration command template creation assistant using cross-model analysis to identify common syntax and semantics |
US8948356B2 (en) | 2012-10-15 | 2015-02-03 | Twilio, Inc. | System and method for routing communications |
US8938053B2 (en) | 2012-10-15 | 2015-01-20 | Twilio, Inc. | System and method for triggering on platform usage |
TWI490716B (zh) * | 2012-12-07 | 2015-07-01 | Ind Tech Res Inst | 多租戶應用程序的開發方法、資料存取方法與系統 |
US9661143B1 (en) | 2013-03-13 | 2017-05-23 | Shoretel, Inc. | Multi-tenant service |
US9282124B2 (en) | 2013-03-14 | 2016-03-08 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US20140359557A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Creating applications |
US9225840B2 (en) | 2013-06-19 | 2015-12-29 | Twilio, Inc. | System and method for providing a communication endpoint information service |
US9240966B2 (en) | 2013-06-19 | 2016-01-19 | Twilio, Inc. | System and method for transmitting and receiving media messages |
CN103312721B (zh) * | 2013-07-04 | 2016-12-28 | 北京迈普华兴信息技术有限公司 | 一种云平台访问控制架构及其实现方法 |
US9137127B2 (en) | 2013-09-17 | 2015-09-15 | Twilio, Inc. | System and method for providing communication platform metadata |
US9274858B2 (en) | 2013-09-17 | 2016-03-01 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US9553799B2 (en) | 2013-11-12 | 2017-01-24 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US9325624B2 (en) | 2013-11-12 | 2016-04-26 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
KR102271265B1 (ko) | 2014-01-21 | 2021-07-01 | 오라클 인터내셔날 코포레이션 | 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법 |
US9967324B2 (en) * | 2014-01-21 | 2018-05-08 | Oracle International Corporation | System and method for providing data sources for use in a multitenant application server environment |
US9344573B2 (en) | 2014-03-14 | 2016-05-17 | Twilio, Inc. | System and method for a work distribution service |
US9226217B2 (en) | 2014-04-17 | 2015-12-29 | Twilio, Inc. | System and method for enabling multi-modal communication |
US9246694B1 (en) | 2014-07-07 | 2016-01-26 | Twilio, Inc. | System and method for managing conferencing in a distributed communication network |
US9516101B2 (en) | 2014-07-07 | 2016-12-06 | Twilio, Inc. | System and method for collecting feedback in a multi-tenant communication platform |
US9251371B2 (en) | 2014-07-07 | 2016-02-02 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US9774687B2 (en) | 2014-07-07 | 2017-09-26 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US9438673B2 (en) * | 2014-07-16 | 2016-09-06 | Microsoft Technology Licensing, Llc | Dynamic update streams for real time provisioning |
US9391972B2 (en) | 2014-09-12 | 2016-07-12 | Oracle International Corporation | Multi-tenant application using hierarchical bean factory container |
US10318280B2 (en) | 2014-09-24 | 2019-06-11 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US9749428B2 (en) | 2014-10-21 | 2017-08-29 | Twilio, Inc. | System and method for providing a network discovery service platform |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
US9477975B2 (en) | 2015-02-03 | 2016-10-25 | Twilio, Inc. | System and method for a media intelligence platform |
US9948703B2 (en) | 2015-05-14 | 2018-04-17 | Twilio, Inc. | System and method for signaling through data storage |
US10419891B2 (en) | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
US10942900B2 (en) | 2015-06-02 | 2021-03-09 | Oracle International Corporation | Techniques for tenant controlled visualizations and management of files in cloud storage systems |
US10484483B1 (en) * | 2015-09-30 | 2019-11-19 | EMC IP Holding Company LLC | Method and system for providing software functionalities to users of multi-tenant applications via inheritance |
US10659349B2 (en) | 2016-02-04 | 2020-05-19 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US9838377B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
US10341410B2 (en) | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
US10454940B2 (en) | 2016-05-11 | 2019-10-22 | Oracle International Corporation | Identity cloud service authorization model |
US10878079B2 (en) | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10425386B2 (en) | 2016-05-11 | 2019-09-24 | Oracle International Corporation | Policy enforcement point for a multi-tenant identity and data security management cloud service |
US10686902B2 (en) | 2016-05-23 | 2020-06-16 | Twilio Inc. | System and method for a multi-channel notification service |
US10063713B2 (en) | 2016-05-23 | 2018-08-28 | Twilio Inc. | System and method for programmatic device connectivity |
US10255061B2 (en) | 2016-08-05 | 2019-04-09 | Oracle International Corporation | Zero down time upgrade for a multi-tenant identity and data security management cloud service |
US10585682B2 (en) | 2016-08-05 | 2020-03-10 | Oracle International Corporation | Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service |
US10516672B2 (en) | 2016-08-05 | 2019-12-24 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud service |
US10721237B2 (en) | 2016-08-05 | 2020-07-21 | Oracle International Corporation | Hierarchical processing for a virtual directory system for LDAP to SCIM proxy service |
US10530578B2 (en) | 2016-08-05 | 2020-01-07 | Oracle International Corporation | Key store service |
US10735394B2 (en) | 2016-08-05 | 2020-08-04 | Oracle International Corporation | Caching framework for a multi-tenant identity and data security management cloud service |
US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
US10511589B2 (en) | 2016-09-14 | 2019-12-17 | Oracle International Corporation | Single logout functionality for a multi-tenant identity and data security management cloud service |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
EP3513542B1 (en) * | 2016-09-16 | 2021-05-19 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
US10341354B2 (en) | 2016-09-16 | 2019-07-02 | Oracle International Corporation | Distributed high availability agent architecture |
US10791087B2 (en) | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
US10567364B2 (en) | 2016-09-16 | 2020-02-18 | Oracle International Corporation | Preserving LDAP hierarchy in a SCIM directory using special marker groups |
US10484243B2 (en) * | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
US10445395B2 (en) | 2016-09-16 | 2019-10-15 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
US10454915B2 (en) | 2017-05-18 | 2019-10-22 | Oracle International Corporation | User authentication using kerberos with identity cloud service |
US11500836B2 (en) * | 2017-06-27 | 2022-11-15 | Salesforce, Inc. | Systems and methods of creation and deletion of tenants within a database |
US10348858B2 (en) | 2017-09-15 | 2019-07-09 | Oracle International Corporation | Dynamic message queues for a microservice based cloud service |
US10831789B2 (en) | 2017-09-27 | 2020-11-10 | Oracle International Corporation | Reference attribute query processing for a multi-tenant cloud service |
US10834137B2 (en) | 2017-09-28 | 2020-11-10 | Oracle International Corporation | Rest-based declarative policy management |
US11271969B2 (en) | 2017-09-28 | 2022-03-08 | Oracle International Corporation | Rest-based declarative policy management |
US10705823B2 (en) | 2017-09-29 | 2020-07-07 | Oracle International Corporation | Application templates and upgrade framework for a multi-tenant identity cloud service |
US10866893B2 (en) * | 2018-01-23 | 2020-12-15 | Home Depot Product Authority, Llc | Cache coherency engine |
US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
US11012444B2 (en) | 2018-06-25 | 2021-05-18 | Oracle International Corporation | Declarative third party identity provider integration for a multi-tenant identity cloud service |
CN109191351A (zh) * | 2018-07-23 | 2019-01-11 | 武汉网信安全技术股份有限公司 | 一种基于多租户技术的智能城市管理系统和方法 |
US11693835B2 (en) | 2018-10-17 | 2023-07-04 | Oracle International Corporation | Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service |
US11321187B2 (en) | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
US11651357B2 (en) | 2019-02-01 | 2023-05-16 | Oracle International Corporation | Multifactor authentication without a user footprint |
US11061929B2 (en) | 2019-02-08 | 2021-07-13 | Oracle International Corporation | Replication of resource type and schema metadata for a multi-tenant identity cloud service |
US11321343B2 (en) | 2019-02-19 | 2022-05-03 | Oracle International Corporation | Tenant replication bootstrap for a multi-tenant identity cloud service |
US11669321B2 (en) | 2019-02-20 | 2023-06-06 | Oracle International Corporation | Automated database upgrade for a multi-tenant identity cloud service |
US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
US10956140B2 (en) | 2019-04-05 | 2021-03-23 | Sap Se | Software installation through an overlay file system |
US11232078B2 (en) | 2019-04-05 | 2022-01-25 | Sap Se | Multitenancy using an overlay file system |
US11113249B2 (en) * | 2019-04-05 | 2021-09-07 | Sap Se | Multitenant application server using a union file system |
US11165764B2 (en) * | 2019-05-09 | 2021-11-02 | Open Text Sa Ulc | Data isolation and two-factor access control |
US11687378B2 (en) | 2019-09-13 | 2023-06-27 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability |
US11870770B2 (en) | 2019-09-13 | 2024-01-09 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration |
US11611548B2 (en) | 2019-11-22 | 2023-03-21 | Oracle International Corporation | Bulk multifactor authentication enrollment |
CN110928669B (zh) * | 2019-12-10 | 2022-05-20 | 浙江工商大学 | 基于多种群遗传算法的能耗感知云工作流调度优化方法 |
US11567808B2 (en) * | 2019-12-12 | 2023-01-31 | Sap Se | Dependency handling for configuration transport |
US11363095B1 (en) | 2021-01-29 | 2022-06-14 | Netskope, Inc. | Policy-driven client and destination priority |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823384B1 (en) * | 1999-10-15 | 2004-11-23 | James Wilson | Methods and apparatus for securely collecting customer service agent data in a multi-tenant environment |
CN101258483A (zh) * | 2005-09-09 | 2008-09-03 | 易享信息技术(上海)有限公司 | 用于在多租户数据库环境中导出、发布、浏览和安装随需应用的系统及其方法 |
CN101620609A (zh) * | 2008-06-30 | 2010-01-06 | 国际商业机器公司 | 多租户数据存储和访问方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7933869B2 (en) * | 2006-12-29 | 2011-04-26 | Sap Ag | Method and system for cloning a tenant database in a multi-tenant system |
US8869099B2 (en) * | 2008-07-28 | 2014-10-21 | Infosys Limited | System and method of enabling multi-tenancy for software as a service application |
-
2011
- 2011-05-31 CN CN201110143572.1A patent/CN102567436B/zh active Active
- 2011-09-27 EP EP11007844.1A patent/EP2469444B1/en active Active
- 2011-09-28 US US13/247,927 patent/US9317706B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823384B1 (en) * | 1999-10-15 | 2004-11-23 | James Wilson | Methods and apparatus for securely collecting customer service agent data in a multi-tenant environment |
CN101258483A (zh) * | 2005-09-09 | 2008-09-03 | 易享信息技术(上海)有限公司 | 用于在多租户数据库环境中导出、发布、浏览和安装随需应用的系统及其方法 |
CN101620609A (zh) * | 2008-06-30 | 2010-01-06 | 国际商业机器公司 | 多租户数据存储和访问方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102567436A (zh) | 2012-07-11 |
EP2469444A1 (en) | 2012-06-27 |
EP2469444B1 (en) | 2017-05-31 |
US9317706B2 (en) | 2016-04-19 |
US20120166488A1 (en) | 2012-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567436B (zh) | 多租户系统 | |
Bean | Laravel 5 essentials | |
US11443232B1 (en) | Active learning-based data labeling service using an augmented manifest | |
US10671593B2 (en) | Normalization engine to manage configuration management database integrity | |
US9760589B2 (en) | Mechanism for deprecating object oriented data | |
US7895176B2 (en) | Entry group tags | |
CN102915331B (zh) | 用于云选择的协调引擎 | |
CN109977110A (zh) | 数据清洗方法、装置及设备 | |
CN107003906A (zh) | 云计算技术部件的类型到类型分析 | |
US20100185658A1 (en) | MDR FEDERATION FACILITY FOR CMDBf | |
US20060265583A1 (en) | Method, system, and product for identifying provisioning operations via planning methods | |
CN102170457A (zh) | 向应用的多租户提供服务的方法和装置 | |
CN105589874A (zh) | Etl任务依赖关系的检测方法、装置及etl工具 | |
US8489547B2 (en) | System and method for transforming configuration data items in a configuration management database | |
CN106503217B (zh) | 基于业务驱动的数据交互装置及方法 | |
CN110225039A (zh) | 权限模型获取、鉴权方法、网关、服务器以及存储介质 | |
Lehmann et al. | Managing Geospatial Linked Data in the GeoKnow Project. | |
CN102158533B (zh) | 基于QoS的分布式web服务选择方法 | |
US20140006351A1 (en) | Method, a server, a system and a computer program product for copying data from a source server to a target server | |
US20050033795A1 (en) | Identifying resource and data instances in management systems | |
CN107368578A (zh) | 一种快速生成es查询语句的方法及系统 | |
US20220150121A1 (en) | Provisioning resources for a datacenter on a cloud platform based on a platform independent declarative specification | |
CN107295060A (zh) | 内容传送网络(cdn)中的无效 | |
Zárate et al. | K2E: Building MLOps environments for governing data and models catalogues while tracking versions | |
US7689584B2 (en) | Hybrid groups |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |