CN107710157B - 多租户计算***以及多租户计算***的计算机实现方法 - Google Patents
多租户计算***以及多租户计算***的计算机实现方法 Download PDFInfo
- Publication number
- CN107710157B CN107710157B CN201680033463.5A CN201680033463A CN107710157B CN 107710157 B CN107710157 B CN 107710157B CN 201680033463 A CN201680033463 A CN 201680033463A CN 107710157 B CN107710157 B CN 107710157B
- Authority
- CN
- China
- Prior art keywords
- customization
- deltas
- tenant
- delta
- computing system
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
在定制通道中的各个级别上进行的定制被保存为单独的定制差量集合,该定制差量集合被应用到基础计算***以生成给定的解决方案。在多租户环境中,租户组访问不同的解决方案或定制差量。租户根据他们访问的解决方案或定制差量自动进行分组,并且对每个组而言,这些定制的差量在运行时被应用于基础***。
Description
背景技术
计算机***目前被广泛使用。一些计算机***被终端用户组织使用,以帮助他们执行他们通常执行的任务、活动和其他处理。
一些这样的计算机***提供了在其上各级开发者生成定制的平台,该定制最终包括终端用户解决方案。例如,计算机***制造商可制造基础计算机***。独立的软件供应商可为生成对基础***的定制,并将其提供给增值经销商或开发者或终端用户组织。增值经销商、开发者或终端用户组织可做出他们自己的定制以生成最终解决方案,该最终解决方案最终被部署用于终端用户组织。
这种类型的定制通道可能使得多租户是困难的。例如,每个不同的租户可表示单独的组织。每个组织都可具有它自己的、表示它自己的解决方案的定制的集合。因此,在多租户中提供任何给定的解决方案可能是困难的,因为每个租户都可具有其自己的对基础***的特定定制。
上面的讨论仅仅提供了一般的背景信息,并不旨在用于帮助确定所要求保护的主题的范围。
发明内容
在定制通道中的各个级别进行的定制被保存为单独的定制差量(“delta”)集合,并且可被应用于基础计算***以便生成定制解决方案。在多租户环境中,租户组可共享公共资源(如应用程序、元数据和公共数据的缓存),但可访问不同的定制差量。使用定制差量的租户基于它们访问的定制差量而被自动地分组,并且针对每个组,这些定制的差量在运行时可以被应用于基础***。
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念的选择。本发明内容并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。要求保护的主题不限于解决在背景技术中提到的任何或全部缺点的实现。
附图说明
图1是定制通道的一个示例的框图。
图2是图示图1中的开发环境在从基础***单独地保存定制差量时的操作的一个示例的流程图。
图3是计算***架构的一个示例的框图。
图4是图示图1中所示出的架构中的多租户功能的操作的一个示例的流程图。
图5是图3所示的架构被部署在云计算架构中的的一个示例的框图。
图6-图8示出了在前面的图中示出的架构中可被使用的移动设备的各种示例的框图。
图9是在前面的图中示出的架构中可被使用的计算环境的一个示例的框图。
具体实施方式
在本说明书中,图1和图2将描述在定制通道的一个示例中定制差量如何被生成。图3和图4将描述差量如何被应用在运行时环境中。定制通道和运行时环境仅仅是示例。
图1是定制通道100的一个示例的框图,在该示例中,由***制造商104制造的基础计算机***102被定制为终端用户解决方案106和108的集合,该终端用户解决方案106和108的集合可被部署在终端用户组织中。基础***102可由各种不同类型的***组成。基础***可以是企业***或其他***。在一个示例中,例如,基础***可以是文档管理***、电子邮件***、企业资源计划***、客户关系管理***或各种其他***。
在一个示例中,基础***102是元数据驱动***。因此,各种形式、功能、数据记录(或实体)等由元数据定义。基础***102中的功能被访问和配置的特定方式可由开发者开发。开发者可通过生成在基础***之上应用的定制元数据来生成差量。例如,如果基础***中的给定表单是具有两个地址字段的客户表单,则开发者可通过向该表单添加附加的元数据来添加第三个地址字段。然而,由基础***元数据标识的表单将与添加附加字段的差量元数据分开存储。这仅仅是定制差量如何被使用的一个示例,并且存在很多其他示例。
作为概述,在一个示例中,基础***102在独立软件供应商(ISV)开发环境110处被接收。开发环境110示意性地包括允许独立软件供应商在基础***102上开发的开发功能。在这种情况下,它们示意性地生成对基础***102的改变或定制。差量标识符112示意性地标识来自基础***102的改变,并且开发环境110因此输出包括基础***102、以及由差量标识符112标识的单独保存的ISV差量116的ISV解决方案114。
ISV解决方案114也可以被提供给多个不同的开发者环境118-120。这些环境中的每一个示意性地具有开发功能,使得开发者可开发或以其他方式定制ISV解决方案114。
环境118-120中的每一个示意性地包括差量标识符122-124,其标识每个开发者(使用对应的开发环境118-120)对ISV解决方案114做出的改变。这些改变作为开发者差量而被示意性地单独保存。因此,开发环境118的输出示意性地是开发者解决方案106,该开发者解决方案包括ISV解决方案114,该ISV解决方案自身包括基础***102和单独保存的ISV差量116。由差量标识符122标识的开发者差量126也作为开发者解决方案106的一部分而与ISV解决方案114分开保存。
类似地,环境120的输出示意性地是开发者解决方案108。开发者解决方案108包括ISV解决方案114以及单独保存的开发者差量128,ISV解决方案114具有基础***102和单独保存的ISV差量116,开发者差量128由差量标识符124标识为使用开发环境120的开发者生成的定制。
如下面更详细描述的,因为基础***102被单独地保存(与在定制通道100中的不同级别处进行的各种定制分开),所以多租户***中的个体租户可使用个体解决方案(或定制差量),同时共享基础***102、ISV解决方案114等的公共功能。如下面讨论的,这增强了多租户中的可扩展性、易于应用更新和维护等等。
图2是示出了图1所示的定制架构100的操作的一个示例的流程图。基础***102在开发环境中首先被接收。这由图2中的框150表示。在图1所示的示例中,基础***102首先由ISV开发环境110接收,尽管这仅仅是示例,并且它可由许多不同的开发环境接收。
然后,差量标识符112检测定制基础***102的开发输入。这由方框152指示。然后,其确定基础***102在定制之前与进行定制之后之间的差异。这由框154指示。在一个示例中,其示意性地在定制之前获取基础***102的快照(或者将各种元数据值和其他值保存在基础***102中),然后在定制被应用之后进行相同操作。然后,它标识两个***之间的差异并将它们保存为ISV差量116。在定制之前和之后保存基础***102的快照以标识差量由框156指示。在另一个示例中,差量(或定制)可以被保存当它们被进行时。这由框158指示。ISV差量也可用其他方式标识,并且这由框160指示。
由ISV开发环境110中的定制引入的差异作为ISV差量116与基础***102被分开地保存。这由框162指示。
如果存在更多级别的定制,则该过程重复其自身。即,如果将ISV解决方案(其分别存储基础***102和ISV差量116)提供给任何其他开发者环境118和120,则处理返回到框152,其中,在那些开发环境中的定制输入被检测,并且差异(或定制差量)不仅与基础***110的源代码分开地被标识和保存,而且还与ISV差量116分开地被标识和保存。返回到框152以执行这些操作,由图4中的框164指示。
当不再执行定制时,输出是保存的解决方案,该解决方案分层地保存定制差量的集合,以指示在定制通道100中它们被进行定置的位置。差量的每个集合也与基础***102的源代码分开保存。它们被保存为将在给定解决方案中应用的差量。该解决方案然后被保存用于由运行时***的运行时访问。这由框166指示。
图3是一个示例计算***架构170的框图。架构170示意性地包括由租户组174-176的集合访问的计算***172。租户组174示意性地包括租户178-180。租户组176示意性地包括租户182-184。每个租户组174-176示意性地访问由计算***172运行的解决方案(或定制差量的公共集合)。因此,计算***172示意性地提供对全部从基础***102生成的解决方案的集合的多租户访问。
还应当注意到,多租户可以被提供在在多个不同级别处,而不仅仅是终端用户解决方案。例如,如果租户组访问ISV差量的公共集合,则这些租户关于那些ISV差量被分组并且从相同的高速缓存被服务,同时它们关于开发者定制差量的另一集合不被分组。本文预期了所有这些场景。因此,尽管本描述关于分组访问相同终端用户解决方案的租户进行,然而这仅仅是多租户的一个示例。
继续图3的描述,计算***172示意性地包括数据存储装置186、处理器或服务器集合188、提供用于执行多租户操作的功能的多租户功能***190以及执行向租户组提供对运行时解决方案的访问的运行时操作的运行时***集合192。在图3所示的示例中,数据存储装置186示意性地包括与ISV差量116、以及在各种开发者环境118-120中生成的各种开发者差量126-128分开存储的基础***102。多租户功能***190示意性地包括解决方案生成部件200、组检测部件202,并且其可包括其他项204。解决方案生成部件200示意性地包括差量标识符部件206和差量应用部件208,并且它可以包括其他项210。
运行时***192-194各自运行解决方案212-214。每个解决方案示意性地包括应用程序216-218、处理220-222、工作流程224-226、实体228-230的集合,并且它们可包括其他项232-234。运行时***192示意性地运行应用程序216。在这种情况下,它可以执行处理220或工作流程224。它也可在解决方案212中的实体228或任何其他数据记录上运行。相同类型的操作可以在运行时***194中发生,除了它基于定制差量的不同集合来运行不同的定制版本的基础***102之外。
解决方案生成部件200中的差量标识符部件206针对每个解决方案212和214标识将被应用于基础***的一个或多个特定的差量集合。例如,如果租户组174已经订阅或者已经以其他方式指示他们正在使用给定的解决方案212,则差量标识符部件206标识被应用于生成解决方案212的分层布置的差量的集合。然后,针对运行时***192,差量应用部件208将这些差量应用于基础***以便生成解决方案212。
组检测部件202可自动标识不同租户是否正在访问相同的解决方案。如果是,则他们被分组,以便多租户操作可有效地执行。例如,针对正在访问相同解决方案(或者在差量的分层中的任何一个或多个级别处的定制差量的同一集合或子集)的租户组,多租户解决方案可以被缓存在一起。
图4是图示图3所示架构170的操作的一个示例的流程图。多租户功能***190首先检测访问计算***172中的各种解决方案(或定制差量的集合)的一个或多个租户输入。这由图4中的框250指示。
如由框206指示的,组检测部件202检测租户的分组。例如,单个租户可以订阅或以其他方式指示他们希望通过多租户功能***192访问的特定解决方案(或定制差量的集合)。在另一个示例中,部件202可示意性地监视每个租户在访问解决方案中的操作。因此,部件202可自动标识正在访问相同解决方案(或定制差量的相同集合)的租户。在任何情况下,部件202示意性地标识正在访问基于相同差量集合生成的相同功能或相同解决方案的租户的分组。然后它将这些租户分组成组(如174-176组)。这由图4中的框254指示。
解决方案生成部件200然后标识用于租户组的解决方案和差量的对应集合。例如,如果一个租户或租户组正在访问具有由ISV差量116和开发者差量126定制的基础***102的解决方案,则这由解决方案生成部件200标识。另一方面,如果它标识租户或租户组正在访问由ISV差量116和开发者差量128定制的基础***102,则其将租户或租户组标识为访问单独的解决方案。标识用于租户组的解决方案和差量集合由图4中的框256指示。
然后,解决方案生成部件200构建基础***102并且针对组户组应用差量。在这种情况下,它为每个组分别缓存结果。因此,它可将解决方案212(应用了差量116和126的基础***102)与解决方案214(即,该解决方案将缓存应用了差量116和128的基础***102)分开地进行缓存。构建基础***并针对租户组应用差量、并且针对每个组分别缓存运行时结果分别由框258和260指示。
应当注意的是,在一个示例中,一旦给定租户访问解决方案,则差量应用部件208针对整个解决方案应用差量。在另一个示例中,它可针对运行中(“on-the-fly”)的给定的解决方案应用差量,因为正在访问该解决方案的各个租户需要解决方案的这些部件。应用在运行中的差量由框262指示。当然也可以其他方式应用差量,并且这由框264指示。
该***有利地提供一种成本有效的托管机制,其可要求减少的硬件和较容易的管理和维护操作。这些解决方案可更容易更新,并且从而降低拥有成本。存储交叉租户元数据(例如缓存租户共同使用的解决方案)也可提高存储器利用效率。
此外,因为基础***与分层布置的差量分开存储,所以更新可以更容易地进行。例如,当基础***制造商(或解决方案的任何部件的任何开发者)生成更新时,更新可以更容易地被向上进行,因为可对该特定部件进行更新而无需应用任何定制。这比试图对部件(其中差量被应用于该部件并且解决方案以该形式被存储)进行更新要容易得多。
本讨论已经提到了处理器和服务器。在一个实施例中,处理器和服务器包括与存储器和定时电路相关联的计算机处理器,未被单独示出。它们是***或设备的功能部分,它们属于该***或设备并且由该***或设备激活,并且有助于这些***中其他部件或项的功能。
此外,已经讨论了多个用户界面显示器。它们可采用各种不同的形式,并且可具有布置在其上的各种不同的用户可致动的输入机制。例如,用户可致动的输入机制可为文本框、复选框、图标、链接、下拉菜单、搜索框等。它们也可以各种不同的方式被致动。例如,可使用点击设备(例如跟踪球或鼠标)来致动它们。可使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来致动它们。也可使用虚拟键盘或其他虚拟致动器来致动它们。另外,在显示它们的屏幕是触敏屏幕的情况下,可使用触摸手势来致动它们。此外,在显示它们的设备具有语音识别部件的情况下,可使用语音命令来致动它们。
多个数据存储装置也已经被讨论。应当注意到,它们各自可以被分解成多个数据存储装置。对于访问它们的***,它们全部可以是本地的、全部可以是远程的或者一些是本地的而另一些是远程的。所有这些配置在本文中被预期。
此外,附图示出了具有归因于每个框的功能的多个框。应当注意到,更少的框可以被使用,因此功能由更少的部件执行。此外,更多的方框可以与分布在更多部件中功能一块使用。
图5是图3所示的架构170的框图,除了其元件被布置在云计算架构500中之外。云计算提供计算、软件、数据访问和存储服务,其不要求终端用户知道递送服务的***的物理位置或配置。在各种实施例中,云计算使用适当的协议在诸如因特网的广域网上递送服务。例如,云计算提供商在广域网上递送应用程序,并且它们可通过网络浏览器或任何其他计算部件而被访问。架构100的软件或部件以及对应的数据可被存储在远程位置的服务器上。云计算环境中的计算资源可在远程数据中心位置被整合或者它们可被分散。云计算基础设施可通过共享数据中心递送服务,即使它们针对用户表现为的单个访问点。因此,本文描述的部件和功能可从在远程位置外的使用云计算架构的服务提供商提供。备选地,它们可从传统的服务器提供,或者它们可直接或者以其他方式安装在客户端设备上。
该描述旨在包括公共云计算和私有云计算两者。云计算(包括公共和私有)提供了实质上无缝的资源池,以及减少的对管理和配置底层硬件基础设施的需求。
公共云由供应商管理,并且通常支持使用相同基础设施的多个消费者。此外,与私有云相反,公共云可从管理硬件中释放终端用户。私有云可由组织自己管理,并且基础设施通常不与其他组织共享。该组织仍然在一定程度上维护硬件,诸如安装和维修等。
在图5所示的示例中,一些项类似于图1所示的那些项并且它们被类似的编号。图5具体示出了多租户数据中心(例如计算***172)位于云502(其可是公共的、私有的或其中一部分是公共的而其他是私有的组合)中。因此,租户组174-176使用租户设备504-506以通过云502访问那些***。
图5还描绘了云架构的另一个示例。图5示出了也可以预期数据中心172的一些元件可以被布置在云502中,而其他元件则不可以。举例而言,数据存储装置186可布置在云502之外,并且通过云502来访问。在另一个示例中,解决方案生成部件200也可在云502之外。无论它们位于何处,它们可由设备504-506通过网络(广域网或局域网)直接访问,它们可通过服务在远程站点被托管,或者它们可以通过云被提供为服务或者通过驻留在云中的连接服务来访问。所有这些架构在本文中被预期。
还应当注意到,架构170或其部分可被布置在各种各样的不同设备上。这些设备中的一些包括服务器、台式计算机、膝上型计算机、平板电脑或其他移动设备,诸如掌上电脑、蜂窝电话、智能电话、多介质播放器、个人数字助理等等。
图6是手持或移动计算设备的一个示意性实施例的简化框图,该手持或移动计算设备可被用作用户或客户端手持设备16,其中可部署本***(或其一些部分)。图7-图8是手持或移动设备的示例。
图6提供了客户端设备16的部件的通用框图,该客户端设备可运行数据中心172的部件或与架构170交互的租户组174-176的部件或两者。在设备16中,提供通信链路13,其允许手持设备与其他计算设备通信,并且在一些实施例中提供用于诸如通过扫描自动接收信息的通道。通信链路13的示例包括红外端口、串行/USB端口、诸如以太网端口的有线网络端口,以及允许通过一个或多个通信协议进行通信的无线网络端口,所述通信协议包括通用分组无线业务(GPRS)、LTE、HSPA、HSPA+和其他3G和4G无线电协议、1Xrtt、和短消息服务(这些是用于提供对网络的蜂窝接入的无线服务),以及提供到网络的本地无线连接的Wi-Fi协议和蓝牙协议。
在其他示例中,应用程序或***在被连接到SD卡接口15的可移除安全数字(SD)卡上被接收。SD卡接口15和通信链路13沿着总线19与处理器17(其也可体现为来自图3的处理器或服务器188)通信,所述总线还被连接到存储器21和输入/输出(I/O)部件23以及时钟25和定位***27。
在一个实施例中,I/O部件23被提供以促进输入和输出操作。用于设备16的各种实施例的I/O部件23可包括诸如按钮、触摸传感器、多点触摸传感器、光学或视频传感器、语音传感器、触摸屏、接近传感器、麦克风、倾斜传感器和重力开关的输入部件以及诸如显示设备、扬声器和/或打印机端口的输出部件。也可使用其他I/O部件23。
时钟25示意性地包括输出时间和日期的实时时钟部件。它也可示意性地为处理器17提供定时功能。
位置***27示意性地包括输出设备16的当前地理位置的部件。这可包括例如全球定位***(GPS)接收机、LORAN***、航位推算***、蜂窝三角测量***或其他定位***。它还可包括例如生成所需的地图、导航路线和其他地理功能的地图软件或导航软件。
存储器21存储操作***29、网络设置31、应用程序33、应用程序配置设置35、数据存储装置37、通信驱动器39以及通信配置设置41。存储器21可包括所有类型的有形易失性和非易失性计算机可读存储器设备。它也可包括计算机存储介质(如下所述)。存储器21存储计算机可读指令,该计算机可读指令当由处理器17执行时使处理器根据指令执行计算机实施的步骤或功能。类似地,设备16可具有客户端业务***24,该客户端业务***可运行各种业务应用或者以实施组174-176中部分或全部租户。处理器17可由其他部件激活以促进它们的功能。
网络设置31的示例包括诸如代理信息、因特网连接信息和映射的信息。应用程序配置设置35包括针对特定企业或用户定制应用程序的设置。通信配置设置41提供用于与其他计算机通信的参数,并且包括诸如GPRS参数、SMS参数、连接用户名和密码的项目。
应用程序33可为之前已经被存储在设备16上的应用程序或在使用期间被安装的应用程序,然而这些应用程序也可为操作***29的一部分或者也可在设备16的外部托管。
图7示出了在其中设备16为平板电脑600的一个实施例。在图6中,计算机600被示出为具有用户界面显示屏幕602。屏幕602可为触摸屏幕(因此来自用户手指的触摸手势可用于与应用程序交互)或从笔或手写笔接收输入的笔使能界面。它也可使用屏幕上的虚拟键盘。当然,它也可通过诸如例如无线链路或USB端口的适当附接机制被附接到键盘或其他用户输入设备。计算机600也可示意性地接收语音输入。
设备16的附加示例也可以被使用。设备16可为功能电话、智能电话或移动电话。该电话可包括用于拨打电话号码的键盘集合,能够显示包括应用程序图像、图标、网页、照片和视频的图像的显示器,以及用于选择显示器上所示出的项目的控制按钮。该电话可包括用于接收蜂窝电话信号(诸如为通用分组无线业务(GPRS)和1Xrtt以及短消息服务(SMS)信号)的天线。在一些示例中,电话还包括安全数字(SD)卡插槽,该插槽可接收SD卡。
移动设备也可为个人数字助理、或者多介质播放器、或者平板电脑等(以下称为PDA)。PDA可包括感应屏幕,当触控笔被定位于屏幕上方时,感应屏幕感测触控笔(或其他指示件,诸如用户的手指)的位置。这允许用户选择、突出显示和移动屏幕上的项以及绘制和书写。PDA还可包括多个用户输入键或按钮,这些用户输入键或按钮允许用户滚动显示在显示器上的菜单选项或其他显示选项,并允许用户在不接触显示器的情况下改变应用程序或选择用户输入功能。PDA还可包括允许与其他计算机进行无线通信的内部天线和红外发射机/接收机以及允许硬件连接到其他计算设备的连接端口。这种硬件连接通常通过支架(“cradle”)进行,该支架通过串口或USB端口连接到另一台计算机。因此,这些连接是非网络连接。
图8示出电话可为智能电话71。智能电话71具有触敏显示器73,其显示图标或图块或其他用户输入机制75。用户可使用机制75来运行应用、拨打电话、执行数据传送操作等。一般而言,智能电话71建立在移动操作***上,并且提供比功能电话更高级的计算能力和连接性。
应当注意到,设备16的其他形式是可能的。
图9是在其中可部署(例如)架构170或其一些部分的计算环境的一个示例。参考图9,用于实现一些实施例的示例***包括以计算机810形式的通用计算设备。计算机810的部件可包括但不限于处理单元820(其可包括处理器188)、***存储器830以及将包括***存储器的各种***部件耦合到处理单元820的***总线821。***总线821可以是几种类型的总线结构中的任何一种,所述总线结构包括存储器总线或存储器控制器、***总线以及使用各种总线架构中的任何一种的本地总线。举例而言且非限制地,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及***部件互连(PCI)总线(也称为夹层总线)。参考图1描述的存储器和程序可被部署在图9的对应部分中。
计算机810通常包括各种计算机可读介质。计算机可读介质可为任何可用介质,该任何可用介质可由计算机810访问并且包括易失性和非易失性介质、可移动和不可移动介质。举例而言且非限制地,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质不同于且不包括调制数据信号或载波。它包括硬件存储介质,该硬件存储介质包括以用于存储诸如计算机可读指令、数据架构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储器或其他磁存储设备或可用于存储所需信息并可由计算机810访问的任何其他介质。通信介质通常实现传输机制中的计算机可读指令、数据结构、程序模块或其他数据,并且包括信息传递介质。术语“调制数据信号”是指具有以这种方式设置或改变的其特征中的一个或多个以便对信号中的信息进行编码的信号。举例而言且非限制地,通信介质包括诸如有线网络或直接有线连接的有线介质以及诸如声学、RF、红外线和其他无线介质的无线介质。任何上述的组合也应当被包括在计算机可读介质的范围内。
***存储器830包括以诸如只读存储器(ROM)831和随机存取存储器(RAM)832的易失性和/或非易失性存储器形式的计算机存储介质。包含诸如在启动期间有助于在计算机810内的元件之间传输信息的基础例程的基本输入/输出***833(BIOS)通常被存储在ROM831中。RAM 832通常包含可立即访问和/或当前正在由处理单元820操作的数据和/或程序模块。举例而言且非限制地,图9图示了操作***834、应用程序835、其他程序模块836和程序数据837。
计算机810还可包括其他可移动/不可移动的易失性/非易失性计算机存储介质。仅举例而言,图9图示了硬盘驱动器841和光盘驱动器855,该硬盘驱动器841从不可移动、非易失性磁介质读取或向其写入,该光盘驱动器855从诸如CD ROM或其他光学介质的可移动、非易失性光盘856读取或向其写入。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840的不可移动存储器接口被连接到***总线821,并且光盘驱动器855通常通过诸如接口850的可移动存储器接口被连接到***总线821。
备选地或附加地,本文描述的功能可至少部分地由一个或多个硬件逻辑部件来执行。例如非限制性地,可被使用的示意性硬件逻辑部件的类型包括现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑器件(CPLD)等。
以上讨论并在图9中图示的驱动器及其相关联的计算机存储介质为计算机810提供计算机可读指令、数据结构、程序模块和其他数据的存储。例如在图9中,硬盘驱动器841图示为存储操作***844、应用程序845、其他程序模块846和程序数据847。应当注意到,这些部件可与操作***834、应用程序835、其他程序模块836和程序数据837相同或不同。操作***844、应用程序845、其他程序模块846和程序数据847在这里被给定不同的标号以说明在最低程度上,它们是不同的副本。
用户可通过诸如键盘862,麦克风863和诸如鼠标、轨迹球或触摸板的指点设备861的输入设备将命令和信息输入到计算机810中。其他输入设备(未示出)可包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过被耦合到***总线的用户输入接口860被连接到处理单元820,但是可通过其他接口和总线结构(例如并行端口、游戏端口或通用串行总线(USB))连接。视觉显示器891或其他类型的显示设备也经由诸如视频接口890的接口被连接到***总线821。除了监视器之外,计算机还可包括诸如扬声器897和打印机896的其他***输出设备,这些***输出设备可通过输出***接口895连接。
计算机810在使用到一个或多个远程计算机(诸如远程计算机880)的逻辑连接的联网环境中***作。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上文描述的与计算机810有关的多个或全部元件。图9所描述的逻辑连接包括局域网(LAN)871和广域网(WAN)873,然而也可包括其他网络。这样的网络环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机810通过网络接口或适配器870被连接到LAN871。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或用于在WAN 873(例如互联网)上建立通信的其他部件。可为内部或外部的调制解调器872可经由用户输入接口860或其他适当的机制被连接到***总线821。在联网环境中,相对于计算机810所描述的程序模块或其一些部分可被存储在远程存储器存储设备中。举例而言而非限制性地,图9将远程应用程序885示图示为驻留在远程计算机880上。应当理解,所示网络连接是示意性的,并且可使用在计算机之间建立通信链路的其他部件。
还应当注意,本文描述的不同实施例可以不同的方式组合。也即,一个或多个实施例的部分可与一个或多个其他实施例的部分组合。所有这些都在本文中被预期。
示例1是多租户计算***,包括:
差量标识符部件,该差量标识符部件检测访问给定解决方案的租户输入,并且标识根据定制层级而被布置的定制差量的分层集合,所述定制差量表示与给定解决方案相对应的、对基础***的定制;以及
差量应用部件,该差量应用部件以由层级所标识的顺序将所标识的层级定制差量的集合应用于基础***,以向租户提供对给定解决方案的运行时访问。
示例2是任何或所有先前示例的计算***,并且还包括:
组检测部件,该组检测部件检测访问定制差量的分层集合中的定制差量的公共集合的不同租户,并将不同租户分组到租户组中。
任何或所有先前示例的任何或所有先前示例的计算***还包括:
多租户功能***,该多租户功能***针对租户组执行多租户处理,多租户功能***将该租户组视为与公共定制差量的公共集合有关的单个租户。
示例4是任何或所有先前示例的计算***,其中组检测部件通过检测不同租户均在访问公共解决方案,来检测访问定制差量的公共集合的不同租户。
示例5是任何或所有先前示例的计算***,其中组检测部件通过检测不同租户均在定制层级中的相同级别处的访问定制差量的公共集合,来检测访问定制差量的公共集合的不同租户
示例6是任何或所有先前示例的计算***,其中在运行时期间当所标识的分层定制差量的集合被租户请求时,差量应用部件应用所标识的分层定制差量的集合。
示例7是任何或所有先前示例的计算***,并且还包括:
开发者环境,该开发者环境包括开发功能,该开发功能用于检测定制输入并且基于定制输入来生成相对于基础***的定制。
示例8是任何或所有先前示例的计算***,其中开发环境包括:
差量生成器,该差量生成器检测基础***在定制被应用之前和定制被应用之后之间的差异,并且生成表示所检测的差异的定制差量。
示例9是计算机实现的方法,包括:
检测访问多租户***中的给定解决方案的租户输入;
标识根据定制层级而被布置的定制差量的分层集合,所述定制差量表示与给定解决方案相对应的对基础***的定制;
以由层级标识的顺序,将所标识的分层定制差量的集合应用于基础***;以及
向租户运行时***提供被应用有所标识的分层定制差量的集合的所述基础***,用于对给定的解决方案的运行时访问。
示例10是任何或所有先前示例的计算机实现的方法,并且还包括:
检测第一多个不同租户,该第一多个不同租户访问定制差量的分层集合中的定制差量的第一公共集合;以及
将第一多个不同租户分组到第一租户组中。
示例11是任何或所有先前示例的计算机实现的方法,并且还包括:
检测第二多个不同租户,该第二多个不同租户访问定制差量的分层集合中的定制差量的第二公共集合;以及
将第二多个不同租户分组到第二租户组中。
示例12是任何或所有先前示例的计算机实现的方法,并且还包括:
针对第一租户组和第二租户组执行多租户多租户处理,将第一租户组视为与定制差量的第一公共集合有关的第一租户,将第二租户组视为与定制差量的第二公共集合有关的第二租户。
示例13是任何或所有先前示例的计算机实现的方法,其中检测访问定制差量的第一公共集的第一多个不同租户合包括:
检测第一多个不同租户都在访问公共的解决方案。
示例14是任何或所有先前示例的计算机实现的方法,其中检测访问定制差量的第一公共集合的第一多个不同租户包括:
检测第一多个不同租户都在定制层级中的相同级别处访问定制差量的公共集合。
示例15是任何或所有先前示例的计算机实现的方法,其中在运行时期间,当所标识的分层定制差量的集合由租户请求时,所标识的分层定制差量的集合的应用被执行。
示例16是任何或所有先前示例的计算机实现的方法,并且还包括:
检测开发环境中的定制输入;
基于定制输入来生成相对于基础***的定制;
检测基础***在定制被应用之前和定制被应用之后之间的差异;以及
生成表示检测到的差异的定制差量。
示例17是任何或所有先前示例的计算机实现的方法,并且还包括:
基于定制差量被生成的定制通道中的级别生成分层定制差量的集合。
示例18是任何或所有先前示例的计算机实现的方法,其中生成分层定制差量的集合包括:
检测定制通道中的级别,在所述级别处定制差量被生成;以及基于定制通道中的级别,将定制差量分配给定制层级中的级别。
示例19是一种计算***,包括:
差量标识部件,该差量标识部件检测访问给定解决方案的租户输入,并且标识根据定制层级而被布置的定制差量的分层集合,所述定制差量表示与给定解决方案相对应的对基础***的定制;
差量应用部件,该差量应用部件以由层级标识的顺序将所标识的分层定制差量的集合应用于基础***,以向租户提供对给定解决方案的运行时访问;
组检测部件,该组检测部件检测访问定制差量的分层集合中的定制差量的公共集合的不同租户并将不同租户分组到租户组中;以及
多租户功能***,该多租户功能***针对租户组执行多租户处理,多租户功能***将该租户组视为与定制差量的公共集合有关的单个租户。
示例20是任何或所有先前示例的计算***,并且还包括:
开发者环境,该开发者环境包括用于检测定制输入并且基于定制输入生成相对于基础***的定制的开发功能;以及
差量生成器,该差量生成器检测基础***在定制被应用之前和定制被应用之后之间的差异,并且生成表示所检测差异的定制差量。
尽管已经用结构特征和/或方法动作专用的语言描述了本发明主题,然而应当理解,在所附权利要求中限定的主题并非必然限于上文描述的特定特征或动作。相反,上述的具体特征和动作被公开为实施权利要求的示例形式。
Claims (19)
1.一种多租户计算***,包括:
处理器;以及
存储器,存储有由所述处理器可执行的指令,其中所述指令在被执行时配置所述多租户计算***以提供:
差量标识符部件,所述差量标识符部件被配置为:
检测与租户相关联的租户输入;
基于所述租户输入,标识给定计算解决方案;
标识与所述给定计算解决方案相对应的多个定制差量,每个定制差量包括差量元数据,
所述差量元数据与其他定制差量和与定义基础计算***的基础***元数据分离地被存储,并且
所述差量元数据表示与用于生成所述给定计算解决方案的计算功能的所述基础***元数据不同的定制;
标识定制层级,所述定制层级与所述多个定制差量相关联并且定义所述多个定制差量中的定制差量之间的层级关系;以及
差量应用部件,所述差量应用部件被配置为:
基于所述层级关系,确定所述多个定制差量的应用的顺序;以及
生成运行时计算***,所述运行时计算***被配置为向所述租户提供对所述给定计算解决方案的运行时访问,其中所述运行时计算***是由以下项生成的:
根据经确定的所述顺序来将来自所述多个定制差量中的每个定制差量的所述差量元数据应用于所述基础***元数据。
2.根据权利要求1所述的计算***,其中所述指令在被执行时配置所述多租户计算***以提供:
组检测部件,所述组检测部件被配置为:
检测访问定制差量的公共集合的不同租户;以及
将所述不同租户分组到单个租户组中。
3.根据权利要求2所述的计算***,其中所述指令在被执行时配置所述多租户计算***以提供:
多租户功能***,所述多租户功能***被配置为:
基于经确定的所述顺序来来将定制差量的所述公共集合应用于所述基础计算***以生成运行时计算***,所述运行时计算***具有被配置为运行所述公共计算解决方案的资源集合;以及
向所述单个租户组中的每个租户提供对所述运行时计算***中的相同资源集合的运行时访问。
4.根据权利要求3所述的计算***,其中,所述组检测部件被配置为:
通过确定所述不同租户中的每个租户正在请求对相同功能集合的访问,来检测访问定制差量的所述公共集合的所述不同租户。
5.根据权利要求3所述的计算***,其中,所述定制层级将每个定制差量与对应的层级级别相关联,并且其中,所述组检测部件被配置为:
确定定制差量的所述公共集合中的每个定制差量被分配到所述定制层级中的相同层级级别。
6.根据权利要求1所述的计算***,其中,所述差量应用部件被配置为:
在运行时期间,
接收针对与定制差量的公共集合相关联的计算功能的请求;以及
响应于针对与相应定制差量相关联的所述计算功能的所述请求,将定制差量的所述公共集合中的每个所述相应定制差量应用于所述基础计算***。
7.根据权利要求1所述的计算***,其中所述指令在被执行时配置所述多租户计算***以提供:
开发者环境,所述开发者环境包括开发功能,所述开发功能被配置为检测定制输入的指示,并且基于所述定制输入的所述指示来生成相对于所述基础***的定制。
8.根据权利要求7所述的计算***,其中,所述开发环境包括:
差量生成器,所述差量生成器被配置为检测所述基础***在所述定制被应用之前和所述定制被应用之后之间的差异,并且生成表示经检测的所述差异的定制差量。
9.一种计算机实现的方法,包括:
确定由多个不同租户的请求对应于具有定制差量的公共集合的公共计算解决方案,每个定制差量包括差量元数据,所述差量元数据与其他定制差量和与定义基础计算***的基础***元数据分离地被存储,并且所述差量元数据表示与用于生成所述计算解决方案的计算功能的所述基础计算***元数据不同的定制;
基于所述确定,将所述多个不同的租户分组到租户组中;
标识与定制差量的所述公共集合相关联的并且定义定制差量的所述公共集合中的定制差量之间的层级关系的定制层级;
基于所述层级关系,确定定制差量的所述公共集合的应用的顺序;
基于经确定的所述顺序来将定制差量的所述公共集合应用于所述基础计算***,以通过根据经确定的所述顺序来将来自定制差量的所述公共集合的每个定制差量的所述差量元数据应用于所述基础***元数据来生成运行时计算***,所述运行时计算***具有被配置为运行所述公共计算解决方案的资源集合;以及
向所述租户组中的所述多个不同租户的每个租户提供对相同资源集合的运行时访问,所述运行时访问被配置为运行所述运行时计算***中的所述公共计算解决方案。
10.根据权利要求9所述的计算机实现的方法,其中:
所述多个不同租户包括第一多个不同租户,所述第一多个不同租户访问所述定制差量的分层集合中的定制差量的第一公共集合;
分组所述多个不同租户包括将所述第一多个不同租户分组到第一租户组中;以及
所述公共计算解决方案包括第一公共计算解决方案。
11.根据权利要求10所述的计算机实现的方法,还包括:
检测与所述多个不同租户相关联的输入,所述输入指示由所述多个不同租户的、用于访问多租户计算***的请求;
检测与第二多个不同租户相关联的输入,所述输入指示由所述第二多个不同租户的、用于访问所述多租户计算***的请求;
确定由所述第二多个不同租户的所述请求对应于具有定制差量的第二公共集合的第二公共计算解决方案;以及
将所述第二多个不同租户分组到第二租户组中。
12.根据权利要求11所述的计算机实现的方法,还包括:
针对所述第一租户组和所述第二租户组执行多租户处理,所述多租户处理将所述第一租户组视为与定制差量的第一公共集合有关的第一租户,并且将所述第二租户组视为与定制差量的第二公共集合有关的第二租户,
其中所述第二多个不同租户中的每个租户被提供有对相同资源集合的运行时访问,所述运行时访问被配置为运行所述运行时计算***中的所述第二公共计算解决方案。
13.根据权利要求10的所述的计算机实现的方法,其中所述定制层级将每个定制差量与对应层级级别相关联,并且其中确定由所述多个不同租户的所述请求对应于公共计算解决方案包括:
确定定制差量的所述公共集合中的每个定制差量被分配在所述定制层级中的相同层级级别处。
14.根据权利要求9所述的计算机实现的方法,其中,应用定制差量的所述公共集合包括:
在运行时期间,
接收针对与定制差量的所述公共集合相关联的计算功能的请求;以及
响应于针对与相应定制差量相关联的所述计算功能的所述请求,将每个所述相应定制差量应用于所述公共集合。
15.根据权利要求9所述的计算机实现的方法,还包括:
检测开发环境中的定制输入的指示;
基于所述定制输入的所述指示,生成相对于所述基础***的定制;
检测所述基础计算***在所述定制被应用之前和所述定制被应用之后之间的差异;以及
生成表示经检测的所述差异的定制差量。
16.根据权利要求9所述的计算机实现的方法,还包括
基于定制通道中的级别,生成所述定制层级,在所述级别处每个所述定制差量被生成。
17.根据权利要求16所述的计算机实现的方法,其中生成所述定制层级包括:
检测所述定制通道中的所述级别,在所述级别处所述定制差量中的每个定制差量被生成;以及
基于所述定制通道中的所述级别,将所述定制差量中的每个定制差量分配给所述定制层级中的级别。
18.一种计算***,包括:
至少一个处理器;以及
存储器,存储有由所述至少一个处理器可执行的指令,其中所述指令在被执行时配置所述计算***以提供:
差量标识符部件,所述差量标识符部件被配置为:
确定由多个不同租户的请求对应于具有定制差量的公共集合的公共计算解决方案,每个定制差量包括差量元数据,所述差量元数据与其他定制差量和与定义基础计算***的基础计算***元数据分离地被存储,并且所述差量元数据表示与用于生成所述公共计算解决方案的计算功能的所述基础计算***元数据不同的定制;以及
标识定制层级,所述定制层级与定制差量的所述公共集合相关联并且定义定制差量的所述公共集合中的定制差量之间的层级关系;以及
差量应用部件,所述差量应用部件被配置为:
基于所述层级关系,确定所述多个定制差量的应用的顺序;以及
基于经确定的所述顺序来将定制差量的所述公共集合应用于所述基础计算***,以便于通过根据经确定的所述顺序来将来自定制差量的所述公共集合的每个定制差量的所述差量元数据应用于所述基础***元数据来生成运行时计算***,所述运行时计算***具有被配置为运行所述公共计算解决方案的资源集合;
组检测部件,所述组检测部件被配置为:
基于由所述多个不同租户的所述请求对应于公共计算解决方案的所述确定,将所述多个不同租户分组到租户组中;以及
多租户功能***,所述多租户功能***被配置为:
针对租户的所述组通过提供每个租户在所述租户组中执行多租户处理,其中对相同资源集合的运行时访问被配置为运行所述运行时计算***中的所述公共计算解决方案。
19.根据权利要求18所述的计算***,其中所述指令配置所述计算***以提供:
开发者环境,所述开发者环境包括被配置为检测定制输入并且基于所述定制输入生成相对于所述基础***的定制的开发功能;以及
差量生成器,所述差量生成器被配置为检测所述基础***在所述定制被应用之前和所述定制被应用之后之间的差异,并且生成表示经检测的所述差异的定制差量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/747,527 US9996321B2 (en) | 2015-06-23 | 2015-06-23 | Multi-tenant, tenant-specific applications |
US14/747,527 | 2015-06-23 | ||
PCT/US2016/037954 WO2016209716A1 (en) | 2015-06-23 | 2016-06-17 | Multi-tenant, tenant-specific applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107710157A CN107710157A (zh) | 2018-02-16 |
CN107710157B true CN107710157B (zh) | 2020-12-25 |
Family
ID=56292936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680033463.5A Active CN107710157B (zh) | 2015-06-23 | 2016-06-17 | 多租户计算***以及多租户计算***的计算机实现方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9996321B2 (zh) |
EP (1) | EP3314417B1 (zh) |
CN (1) | CN107710157B (zh) |
WO (1) | WO2016209716A1 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9823919B2 (en) * | 2015-12-30 | 2017-11-21 | Microsoft Technology Licensing, Llc | Controlled deployment of application feature in mobile environment |
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 |
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 |
US10878079B2 (en) | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10516672B2 (en) | 2016-08-05 | 2019-12-24 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud 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 |
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 |
US10530578B2 (en) | 2016-08-05 | 2020-01-07 | Oracle International Corporation | Key store service |
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 |
US10505941B2 (en) | 2016-08-05 | 2019-12-10 | Oracle International Corporation | Virtual directory system for LDAP to SCIM proxy service |
US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management 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 |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials 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 |
US10791087B2 (en) | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
US10484243B2 (en) * | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
US10567364B2 (en) | 2016-09-16 | 2020-02-18 | Oracle International Corporation | Preserving LDAP hierarchy in a SCIM directory using special marker groups |
WO2018053258A1 (en) * | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
US10445395B2 (en) | 2016-09-16 | 2019-10-15 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
US10341354B2 (en) | 2016-09-16 | 2019-07-02 | Oracle International Corporation | Distributed high availability agent architecture |
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 |
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 |
US11271969B2 (en) | 2017-09-28 | 2022-03-08 | Oracle International Corporation | Rest-based declarative policy management |
US10834137B2 (en) | 2017-09-28 | 2020-11-10 | 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 |
US11048663B2 (en) * | 2017-11-15 | 2021-06-29 | Salesforce.Com, Inc. | Database systems and methods for automated database modifications |
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 |
US11042660B2 (en) | 2018-10-10 | 2021-06-22 | International Business Machines Corporation | Data management for multi-tenancy |
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 |
US10673749B1 (en) * | 2018-12-28 | 2020-06-02 | Paypal, Inc. | Peer-to-peer application layer distributed mesh routing |
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 |
CN110443062A (zh) * | 2019-06-17 | 2019-11-12 | 平安科技(深圳)有限公司 | 多租户数据库的操作方法、装置和计算机设备 |
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 |
CN111641675A (zh) * | 2020-04-28 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 多租户访问服务实现方法、装置、设备及存储介质 |
CN114942753B (zh) * | 2022-07-26 | 2022-11-18 | 北京智象信息技术有限公司 | 一种基于差量的多项目多语言生成方法、装置、设备以及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546314B1 (en) * | 2004-05-21 | 2009-06-09 | Sap Ag | Customizing application programs |
CN103455512A (zh) * | 2012-05-31 | 2013-12-18 | 上海博腾信息科技有限公司 | Saas平台多租户数据管理模型 |
CN104216725A (zh) * | 2013-06-04 | 2014-12-17 | Sap欧洲公司 | 用于软件解决方案托管的存储库层策略调整 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040177339A1 (en) * | 2003-03-07 | 2004-09-09 | Microsoft Corporation | Customization of fields in objects in a computing environment |
US8255901B2 (en) * | 2005-12-16 | 2012-08-28 | Sap Ag | Methods and systems for configuring software applications |
US8095618B2 (en) * | 2007-03-30 | 2012-01-10 | Microsoft Corporation | In-memory caching of shared customizable multi-tenant data |
US8019812B2 (en) * | 2007-04-13 | 2011-09-13 | Microsoft Corporation | Extensible and programmable multi-tenant service architecture |
US9053162B2 (en) * | 2007-04-26 | 2015-06-09 | Microsoft Technology Licensing, Llc | Multi-tenant hosted application system |
US8560938B2 (en) | 2008-02-12 | 2013-10-15 | Oracle International Corporation | Multi-layer XML customization |
US8473594B2 (en) * | 2008-05-02 | 2013-06-25 | Skytap | Multitenant hosted virtual machine infrastructure |
US8356274B2 (en) | 2008-07-07 | 2013-01-15 | International Business Machines Corporation | System and methods to create a multi-tenancy software as a service application |
US8869099B2 (en) * | 2008-07-28 | 2014-10-21 | Infosys Limited | System and method of enabling multi-tenancy for software as a service application |
US9208188B2 (en) * | 2009-02-17 | 2015-12-08 | Microsoft Technology Licensing, Llc | Tenant management of a hosted multi-tenant application |
US20110154441A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Online development environment server, online marketplace server, online development environment constituting method, and developed application providing method |
US20110289141A1 (en) | 2010-05-20 | 2011-11-24 | Salesforce.Com, Inc. | Methods and systems for providing a user interface in a multi-tenant database environment |
US20110296386A1 (en) * | 2010-05-28 | 2011-12-01 | Salesforce.Com, Inc. | Methods and Systems for Validating Changes Submitted to a Source Control System |
CN102346744B (zh) * | 2010-07-30 | 2013-11-13 | 国际商业机器公司 | 用于在多租户应用***中处理物化表的装置 |
US8504990B2 (en) | 2010-08-30 | 2013-08-06 | Sap Ag | Middleware configuration processes |
US9015493B2 (en) * | 2010-09-16 | 2015-04-21 | Microsoft Technology Licensing, Llc | Multitenant-aware protection service |
US9104514B2 (en) * | 2011-01-11 | 2015-08-11 | International Business Machines Corporation | Automated deployment of applications with tenant-isolation requirements |
US20130232165A1 (en) * | 2011-02-01 | 2013-09-05 | Salesforce.Com, Inc. | Methods and Systems for Shared Data Sets in an On-Line Services Environment |
US9778915B2 (en) * | 2011-02-28 | 2017-10-03 | Microsoft Technology Licensing, Llc | Distributed application definition |
KR101283019B1 (ko) | 2012-03-15 | 2013-07-17 | 주식회사 엘지씨엔에스 | SaaS 어플리케이션 생성 방법 및 이를 실행하는 어플리케이션 생성 서버 |
US10282196B2 (en) * | 2012-04-06 | 2019-05-07 | Oracle International Corporation | System and method for moving enterprise software application components across environments |
US8954923B2 (en) * | 2012-05-22 | 2015-02-10 | Salesforce.Com, Inc. | Mechanism for facilitating dynamic interaction with development applications and tools an on-demand services enviroment |
US8856727B2 (en) * | 2012-07-16 | 2014-10-07 | Sap Se | Generation framework for mapping of object models in a development environment |
US20140101528A1 (en) * | 2012-10-04 | 2014-04-10 | Tomer Pelleg | Automatic generation of portal themes and components |
US8990772B2 (en) * | 2012-10-16 | 2015-03-24 | International Business Machines Corporation | Dynamically recommending changes to an association between an operating system image and an update group |
US9268533B2 (en) * | 2013-01-30 | 2016-02-23 | International Business Machines Corporation | Method and apparatus for enabling layered property definition in traditional and cloud computing environments |
US9304762B2 (en) * | 2013-03-01 | 2016-04-05 | Apple Inc. | Automatically customizing a computer-executable application at runtime |
US9405532B1 (en) * | 2013-03-06 | 2016-08-02 | NetSuite Inc. | Integrated cloud platform translation system |
US9043458B2 (en) | 2013-03-19 | 2015-05-26 | Cognizant Technology Solutions India Pvt. Ltd. | Framework for facilitating implementation of multi-tenant SaaS architecture |
US9294482B2 (en) * | 2013-07-25 | 2016-03-22 | Oracle International Corporation | External platform extensions in a multi-tenant environment |
US20150113499A1 (en) * | 2013-10-21 | 2015-04-23 | Microsoft Corporation | Runtime support for modeled customizations |
US9792099B2 (en) * | 2014-06-24 | 2017-10-17 | Oracle International Corporation | System and method for supporting deployment 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 |
US9904534B2 (en) * | 2015-05-29 | 2018-02-27 | Oracle International Corporation | Inter-tenant and intra-tenant flock management |
-
2015
- 2015-06-23 US US14/747,527 patent/US9996321B2/en active Active
-
2016
- 2016-06-17 CN CN201680033463.5A patent/CN107710157B/zh active Active
- 2016-06-17 WO PCT/US2016/037954 patent/WO2016209716A1/en active Application Filing
- 2016-06-17 EP EP16733815.1A patent/EP3314417B1/en active Active
-
2018
- 2018-05-10 US US15/975,832 patent/US10379818B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546314B1 (en) * | 2004-05-21 | 2009-06-09 | Sap Ag | Customizing application programs |
CN103455512A (zh) * | 2012-05-31 | 2013-12-18 | 上海博腾信息科技有限公司 | Saas平台多租户数据管理模型 |
CN104216725A (zh) * | 2013-06-04 | 2014-12-17 | Sap欧洲公司 | 用于软件解决方案托管的存储库层策略调整 |
Also Published As
Publication number | Publication date |
---|---|
WO2016209716A1 (en) | 2016-12-29 |
EP3314417A1 (en) | 2018-05-02 |
US9996321B2 (en) | 2018-06-12 |
US20180336016A1 (en) | 2018-11-22 |
US10379818B2 (en) | 2019-08-13 |
CN107710157A (zh) | 2018-02-16 |
US20160378436A1 (en) | 2016-12-29 |
EP3314417B1 (en) | 2023-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107710157B (zh) | 多租户计算***以及多租户计算***的计算机实现方法 | |
CN110678844B (zh) | 基于租户排名来控制租户服务 | |
CN108431763B (zh) | 通过网络服务管理多个云存储装置 | |
CN106537346B (zh) | 针对实时供应的动态更新流 | |
WO2015057592A1 (en) | Incrementally compiling software artifacts from an interactive development environment | |
US10402290B2 (en) | Using a pre-installation environment to debug a server without a functioning operating system | |
KR20170016362A (ko) | 컴파일 동안 표시 메타데이터를 브라우저 렌더링 가능 포맷으로 변환하는 기법 | |
WO2015123121A1 (en) | Caching queries for dynamic webpages | |
US20160274736A1 (en) | Synchronized multi-window interaction with hierarchical data on thin-client | |
US10895963B2 (en) | Using sections for customization of applications across platforms | |
US9804749B2 (en) | Context aware commands | |
CN109074357B (zh) | 动态地管理服务的不同版本 | |
CN107533487B (zh) | 云掌控的设置 | |
US9811333B2 (en) | Using a version-specific resource catalog for resource management | |
US10530860B2 (en) | Single multi-instance tenant computing system | |
US10572324B2 (en) | Intelligent listening system for agile delivery of cloud services | |
US9753788B2 (en) | Extensibility of engines in computing systems | |
US20180189290A1 (en) | Content object indexing and resolution system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |