《多租户环境中租户特定数据集的管理.pdf》由会员分享,可在线阅读,更多相关《多租户环境中租户特定数据集的管理.pdf(27页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104160381A43申请公布日20141119CN104160381A21申请号201380012870422申请日2013022113/414,78620120308USG06F12/0020060171申请人国际商业机器公司地址美国纽约72发明人M奥伯霍费尔DJ曼德尔施泰因IM米尔曼S潘迪特CD沃尔夫森74专利代理机构北京市中咨律师事务所11247代理人于静张亚非54发明名称多租户环境中租户特定数据集的管理57摘要一种用于通过以下方式管理多租户系统中的租户特定数据集的方法、计算机程序产品和系统接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部。
2、署的请求,检索标识作出请求的租户的租户标识元数据,基于第二类型的多租户部署修改物理数据存储库中的数据集,以及修改与抽象层相关联的元数据以允许修改后的数据集被访问。30优先权数据85PCT国际申请进入国家阶段日2014090586PCT国际申请的申请数据PCT/IB2013/0513982013022187PCT国际申请的公布数据WO2013/132377EN2013091251INTCL权利要求书6页说明书12页附图8页19中华人民共和国国家知识产权局12发明专利申请权利要求书6页说明书12页附图8页10申请公布号CN104160381ACN104160381A1/6页21一种用于管理多租户系。
3、统中的租户特定数据集的用计算机实现的方法,包括接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求;检索标识作出所述请求的租户的租户标识元数据;基于所述第二类型的多租户部署修改所述物理数据存储库中的所述数据集;以及修改与抽象层相关联的元数据以允许访问修改后的数据集。2如权利要求1所述的用计算机实现的方法,其中所述物理数据存储库由所标识的租户拥有并且是下述中的一种私有数据存储库;或者共享数据存储库中的私有模式;其中修改所述物理数据存储库中的所述数据集包括创建目标数据结构,其中所述目标数据结构是下述中的一种私有数据存储库;或者共享数据存储库中的私有模式;其中所述目标。
4、数据结构由所标识的租户拥有;将所述物理数据存储库中的第一表格转移到所述目标数据结构;以及在将所述第一表格转移到所述目标数据结构时在接收到选择查询时,将所述选择查询发布给所述物理数据存储库中的所述表格和所述目标数据结构中的转移后的表格,其中将取并集操作应用于每个产生的数据集并返回所得结果作为响应于所述选择查询的结果集;在接收到插入查询时,将所述插入查询发布给所述目标数据结构中的所述转移后的表格;以及在接收到更新查询或删除查询时,将所述更新查询或删除查询发布给所述第一表格和所述目标数据结构中的所述转移后的表格。3如权利要求2所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中所述。
5、第一表格是所述物理数据存储库中的由所标识的租户拥有的私有模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库。4如权利要求2所述的用计算机实现的方法,其中所述物理数据存储库是由所标识的租户拥有的私有数据存储库,其中所述目标数据结构是共享物理数据存储库中的由所标识的租户拥有的私有模式。5如权利要求1所述的用计算机实现的方法,其中修改所述物理数据存储库中的所述数据集包括选择来自所述物理数据存储库中的第一表格的数据;将所选的数据转移到目标数据结构,其中所述目标数据结构是与所述第二类型的多租户部署相对应的下述中的一种私有物理数据存储库,共享数据存储库中的私有模式,或者共享数据存储库中的共享模。
6、式;以及在将所选的数据转移到所述目标数据结构时,在接收到指向所述第一表格的查询时,返回错误消息。6如权利要求5所述的用计算机实现的方法,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述物理数据存储库是由所标识的租户拥有的私有物理数据存储库,所述方法还包括在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所权利要求书CN104160381A2/6页3述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。7如权利要求5所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中。
7、所述目标数据结构是共享物理数据存储库中的共享模式,其中所述第一表格采用所述物理数据存储库中的由所标识的租户拥有的私有模式,所述方法还包括在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。8如权利要求5所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库,其中所选的数据由所标识的租户拥有,所述方法还包括在选择来自第一租户的数。
8、据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。9如权利要求5所述的用计算机实现的方法,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是共享数据存储库中的由所标识的租户拥有的私有模式,其中所选的数据由所标识的租户拥有,所述方法还包括在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。10如权利要求1所述的用计算机实现的方法,其中访问采用所述第一类型的多租。
9、户部署的租户特定数据集的应用能够访问采用所述第二类型的多租户部署的租户特定数据集而无需修改代码,其中访问采用多租户部署的租户特定数据集中的数据的应用不知道所述租户特定数据集的物理实现。11一种用于管理多租户系统中的租户特定数据集的计算机程序产品,所述计算机程序产品包括具有与其一起体现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括计算机可读程序代码,其配置成接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求;计算机可读程序代码,其配置成检索标识作出所述请求的租户的租户标识元数据;计算机可读程序代码,其配置成基于所述第二类型的多租户部署修改所。
10、述物理数据存储库中的所述数据集;以及计算机可读程序代码,其配置成修改与抽象层相关联的元数据以允许访问修改后的数据集。12如权利要求11所述的计算机程序产品,其中所述物理数据存储库由所标识的租户权利要求书CN104160381A3/6页4拥有并且是下述中的一种私有数据存储库;或者共享数据存储库中的私有模式;其中修改所述物理数据存储库中的所述数据集包括创建目标数据结构,其中所述目标数据结构是下述中的一种私有数据存储库;或者共享数据存储库中的私有模式;其中所述目标数据结构由所标识的租户拥有;将所述物理数据存储库中的第一表格转移到所述目标数据结构;以及在将所述第一表格转移到所述目标数据结构时在接收到选。
11、择查询时,将所述选择查询发布给所述物理数据存储库中的所述表格和所述目标数据结构中的转移后的表格,其中将取并集操作应用于每个产生的数据集并返回所得结果作为响应于所述选择查询的结果集;在接收到插入查询时,将所述插入查询发布给所述目标数据结构中的所述转移后的表格;以及在接收到更新查询或删除查询时,将所述更新查询或删除查询发布给所述第一表格和所述目标数据结构中的所述转移后的表格。13如权利要求12所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述第一表格是所述物理数据存储库中的由所标识的租户拥有的私有模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库。14如权利要求12。
12、所述的计算机程序产品,其中所述物理数据存储库是由所标识的租户拥有的私有数据存储库,其中所述目标数据结构是共享物理数据存储库中的由所标识的租户拥有的私有模式。15如权利要求11所述的计算机程序产品,其中修改所述物理数据存储库中的所述数据集包括选择来自所述物理数据存储库中的第一表格的数据;将所选的数据转移到目标数据结构,其中所述目标数据结构是与所述第二类型的多租户部署相对应的下述中的一种私有物理数据存储库,共享数据存储库中的私有模式,或者共享数据存储库中的共享模式;以及在将所选的数据转移到所述目标数据结构时,在接收到指向所述第一表格的查询时,返回错误消息。16如权利要求15所述的计算机程序产品,其。
13、中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述物理数据存储库是由所标识的租户拥有的私有物理数据存储库,所述方法还包括在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。17如权利要求15所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述第一表格采用所述物理数据存储库中的由所标识的租户拥有的私有模式,所述方法还包括在选择来自所述第一表格的数据之前,阻挡对所述第。
14、一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所权利要求书CN104160381A4/6页5述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。18如权利要求15所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库,其中所选的数据由所标识的租户拥有,所述方法还包括在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。19如权利。
15、要求15所述的计算机程序产品,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是共享数据存储库中的由所标识的租户拥有的私有模式,其中所选的数据由所标识的租户拥有,所述方法还包括在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。20如权利要求11所述的计算机程序产品,其中访问采用所述第一类型的多租户部署的租户特定数据集的应用能够访问采用所述第二类型的多租户部署的租户特定数据集而无需修改代码,其中访问采用多租户部署的租户特定数据集中的数。
16、据的应用不知道所述租户特定数据集的物理实现。21一种系统,包括一个或多个计算机处理器;包含程序的存储器,所述程序在由所述一个或多个计算机处理器执行时被配置成执行用于管理多租户系统中的租户特定数据集的操作,所述操作包括接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求;检索标识作出所述请求的租户的租户标识元数据;基于所述第二类型的多租户部署修改所述物理数据存储库中的所述数据集;以及修改与抽象层相关联的元数据以允许访问修改后的数据集。22如权利要求21所述的系统,其中所述物理数据存储库由所标识的租户拥有并且是下述中的一种私有数据存储库;或者共享数据存储库中的私有模。
17、式;其中修改所述物理数据存储库中的所述数据集包括创建目标数据结构,其中所述目标数据结构是下述中的一种私有数据存储库;或者共享数据存储库中的私有模式;其中所述目标数据结构由所标识的租户拥有;将所述物理数据存储库中的第一表格转移到所述目标数据结构;以及在将所述第一表格转移到所述目标数据结构时在接收到选择查询时,将所述选择查询发布给所述物理数据存储库中的所述表格和所述目标数据结构中的转移后的表格,其中将取并集操作应用于每个产生的数据集并返回所得结果作为响应于所述选择查询的结果集;权利要求书CN104160381A5/6页6在接收到插入查询时,将所述插入查询发布给所述目标数据结构中的所述转移后的表格;。
18、以及在接收到更新查询或删除查询时,将所述更新查询或删除查询发布给所述第一表格和所述目标数据结构中的所述转移后的表格。23如权利要求22所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述第一表格是所述物理数据存储库中的由所标识的租户拥有的私有模式,其中所述目标数据结构是由所标识的租户拥有的私有数据存储库。24如权利要求22所述的系统,其中所述物理数据存储库是由所标识的租户拥有的私有数据存储库,其中所述目标数据结构是共享物理数据存储库中的由所标识的租户拥有的私有模式。25如权利要求21所述的系统,其中修改所述物理数据存储库中的所述数据集包括选择来自所述物理数据存储库中的第一表格的数据;将。
19、所选的数据转移到目标数据结构,其中所述目标数据结构是与所述第二类型的多租户部署相对应的下述中的一种私有物理数据存储库,共享数据存储库中的私有模式,或者共享数据存储库中的共享模式;以及在将所选的数据转移到所述目标数据结构时,在接收到指向所述第一表格的查询时,返回错误消息。26如权利要求25所述的系统,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述物理数据存储库是由所标识的租户拥有的私有物理数据存储库,所述方法还包括在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新。
20、列中;以及恢复对所述第一表格的访问。27如权利要求25所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述目标数据结构是共享物理数据存储库中的共享模式,其中所述第一表格采用所述物理数据存储库中的由所标识的租户拥有的私有模式,所述方法还包括在选择来自所述第一表格的数据之前,阻挡对所述第一表格的访问;在选择来自所述第一表格的数据之后,将所述租户标识元数据插入到通过选择来自所述第一表格的数据而产生的数据集的新列中;以及恢复对所述第一表格的访问。28如权利要求25所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是由所标。
21、识的租户拥有的私有数据存储库,其中所选的数据由所标识的租户拥有,所述方法还包括在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。29如权利要求25所述的系统,其中所述物理数据存储库是共享数据存储库,其中所述第一表格采用所述物理数据存储库中的共享模式,其中所述目标数据结构是共享数据存权利要求书CN104160381A6/6页7储库中的由所标识的租户拥有的私有模式,其中所选的数据由所标识的租户拥有,所述方法还包括在选择来自第一租户的数据之后,如果选择了包含租户标识的列,则去除包含租户标识元数据的列;。
22、在将所述数据转移到所述目标数据结构之前,创建所述目标数据结构。30如权利要求21所述的系统,其中访问采用所述第一类型的多租户部署的租户特定数据集的应用能够访问采用所述第二类型的多租户部署的租户特定数据集而无需修改代码,其中访问采用多租户部署的租户特定数据集中的数据的应用不知道所述租户特定数据集的物理实现。权利要求书CN104160381A1/12页8多租户环境中租户特定数据集的管理技术领域0001本发明的领域涉及多租户数据库。更具体地,本发明的领域涉及多租户平台即服务PAAS和软件即服务SAAS的服务在下文中统称为“服务”。背景技术0002服务可以在公共、混合和私有云环境中提供。由服务提供者提。
23、供的服务可以访问存储在数据库管理系统DBMS中的数据,DBMS代表计算机化的信息存储和检索系统。DBMS可以管理多个数据库,每一个数据库可以由不同的实体拥有。服务可以由多个客户组织租户同时订购。因此,服务处理不同租户的数据。出于安全和监管的原因,租户要求不同程度的数据隔离,这在租户订购服务时被规定为“政策要素”。更为重要的是,隔离程度必须在安全和监管要求随时间改变时能够无缝改变。因此,服务提供者需要实现允许数据和配置分开的针对服务的多租户架构,使得每个租户接收到适当水平的数据隔离。0003当前存在用于管理多租户数据的三种部署选项。第一部署选项将租户数据存储在分离的数据库中,这是数据隔离的最简单。
24、方案。计算资源和应用代码通常在服务器上的所有租户之间共享,但是每个租户具有其自己的与属于所有其他租户的数据在逻辑上保持隔离的数据集。元数据将每个数据库与正确的租户相关联,并且数据库安全性会防止任何租户无意或恶意地访问其他租户的数据。然而,该选项倾向于导致服务提供者维护设备和备份租户数据的更高成本。硬件成本也比在备选部署选项下更高,这是由于在给定数据库服务器上能够容纳的租户数量受限于服务器可以支持的数据库的数量。0004第二部署选项涉及在相同的数据库中容纳多个租户,每个租户具有其自己的表格集以及集合到专门为该租户创建的模式中的其他数据库产物。尽管不如完全隔离系统,这种方案为有安全意识的租户提供中。
25、等程度的逻辑数据隔离,并且能够支持每个数据库服务器上的更大数量的租户。0005第三部署方案涉及使用相同的数据库和相同的表格集来托管多个租户的数据。给定表格可以包括以任何次序存储的来自多个租户的记录,并且租户标识列将每个记录与适当的租户相关联。在这三个选项之中,共享模式方案具有最低的硬件和备份成本,这是因为其允许每个数据库服务器服务于最大数量的租户。0006以透明的方式将数据库部署从一个选项转换为另一个选项在当前并不被支持,并且只能用手动数据移动和系统停机来解决。此外,当前在这类转换时必须记录访问数据库的任何应用以反映对该数据库的改变。发明内容0007各实施例提供了一种方法、计算机程序产品和系统。
26、,用于执行操作以便通过以下方式管理多租户系统中的租户特定数据集接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求,检索标识作出请求的租户的租户标识元数据,基于第二类型的多租户部署修改物理数据存储库中的数据集,以及修改与抽象层说明书CN104160381A2/12页9相关联的元数据以允许修改后的数据集被访问。附图说明0008因此,可以参考附图来提供上述方面被实现并详细理解的方式、上面简要概括的本发明的实施例的更具体的描述。0009然而,应该注意的是,附图仅仅示出本发明的典型实施例,并且因此不应视为是对本发明范围的限制,因为本发明可以容纳其他等同有效的实施例。00。
27、10图1是示出根据本发明实施例的云计算环境的框图。0011图2是示出根据本发明的实施例,管理和转换多租户环境中的部署选项的架构的框图。0012图3是示出根据本发明实施例的两层应用架构的组件的框图。0013图4是示出根据本发明的实施例的用于转换数据库部署选项的方法的流程图。0014图5是示出根据本发明的实施例的用于转移数据以完成数据库从一个多租户部署选项到另一个多租户部署选项的转换的方法的流程图。0015图6是示出根据本发明的实施例,用于转移数据以完成数据库从一个多租户部署选项到另一个多租户部署选项的转换的方法的流程图。0016图7描绘根据本发明实施例的云计算环境。0017图8描绘根据本发明实施。
28、例的抽象模型层。具体实施方式0018本发明的实施例提供了用于管理多租户环境中的租户特定数据的技术。在某些实施例中,提供了一种从一个多租户数据库部署转换为另一个多租户数据库部署的方法。在某些实施例中,通过抽象层接收在多租户部署之间转换的请求,使得作出请求的应用不知道用于存储租户数据的物理实现。在某些实施例中,提供了一种转换数据库部署的应用。在某些实施例中,该应用是数据库管理系统DBMS的一部分。该应用可以配置成接收将物理数据存储库中的数据集从第一类型的多租户部署转换为第二类型的多租户部署的请求。该应用然后可以通过抽象层检索标识作出该请求的租户的租户标识元数据。该应用然后可以基于第二类型的多租户部。
29、署修改物理数据存储库中的数据集。最后,该应用可以根据第二类型的多租户部署,修改与抽象层相关联的元数据以访问修改后的数据集。0019提前应当理解的是,尽管包括了关于云计算的详细描述,但是本文中记载的教导的实现不限于云计算环境。而是,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境而实现。0020为方便起见,详细描述包括已经从以下文献中得到的后面的定义PETERMELL和TIMGRANCE在2009年10月7日发表的“DRAFTNISTWORKINGDENITIONOFCLOUDCOMPUTING”,其在随附提交的IDS中被引用,并且其副本随附在后。0021云计算是一种服务交付模型。
30、,用于实现对可配置的计算资源例如,网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务的共享池的便利、按需的网络访问,所述可配置的计算资源能够以最小的管理成本或与服务提供者的最少交互而被快速供应和释放。这种云模型可以包括至少五个特征、至少三个服务模型和至少四个部署模型。说明书CN104160381A3/12页100022其特征如下0023按需自助服务云的消费者无需与服务提供者进行人为交互就能够单方面自动地按需供应诸如服务器时间和网络存储等之类的计算能力。0024广泛的网络访问能力可以通过网络获取并通过标准机制访问,所述标准机制促进不同种类的瘦客户端平台或厚客户端平台例如移动电话、膝上型。
31、电脑和PDA对云的使用。0025资源池化提供者的计算资源被池化以使用多租户模型服务于多个消费者,并且根据需求动态地分配和再分配不同的物理和虚拟资源。存在着位置独立感,因为消费者通常不能控制或不知晓所提供的资源的确切位置,但是能够在较高的抽象层面例如国家、州或数据中心上规定位置。0026迅速弹性能力能够迅速且有弹性地被供应,在一些情况下被自动地供应以快速扩展,并且能够迅速释放以快速缩减。对于消费者而言,用于供应的可用能力往往看上去是无限的,并且能够在任何时候购买任意数量。0027被测量的服务云系统通过利用适于服务类型例如存储、处理、带宽和有效用户帐户的某个抽象层面上的计量能力,自动地控制和优化资。
32、源使用。可以监测、控制和报告资源使用,从而为被利用的服务的提供者和消费者双方提供透明度。0028服务模型如下0029软件即服务SAAS向消费者提供的能力是使用在云基础设施上运行的提供者的应用。该应用可通过诸如网络浏览器的瘦客户端接口例如基于网络的电子邮件从各种客户端装置访问。除了有限的特定于用户的应用配置设置的可能例外,消费者并不管理或控制包括网络、服务器、操作系统、存储、乃至个体应用能力的下层云基础设施。0030平台即服务PAAS向消费者提供的能力是把使用提供者支持的程序设计语言和工具创建的消费者创建或获取的应用部署到云基础设施上。消费者并不管理或控制包括网络、服务器、操作系统或存储的下层云。
33、基础设施,但是对部署的应用和可能的应用托管环境配置具有控制权。0031基础设施即服务IAAS向消费者提供的能力是在消费者能够部署并运行包括操作系统和应用的任意软件的地方供应处理、存储、网络和其他基础计算资源。消费者并不管理或控制下层云基础设施,但是对操作系统、存储、部署的应用具有控制权,并且可能对选择联网组件例如主机防火墙具有有限的控制权。0032部署模型如下0033私有云云基础设施单独为某个组织运行。其可以由该组织或第三方管理、并且可以存在于该组织内部或外部。0034社区云云基础设施被若干组织共享并且支持具有共同关注的问题例如使命、安全要求、政策和合规考虑的特定社区。其可以由这些组织或第三方。
34、管理并且可以存在于该社区内部或外部。0035公共云云基础设施对于一般公众或大型行业群体而言可用并且由出售云服务的组织拥有。0036混合云云基础设施是两个或多个云私有云、社区云或公共云的组成物,所述两个或多个云依然是独特的实体,但是通过使数据和应用能够移植的标准化或私有技术说明书CN104160381A104/12页11例如用于云之间的负荷平衡的云突发CLOUDBURSTING绑定在一起。0037云计算环境是面向服务的,聚焦于无状态性、低耦合性、模块性和语意互操作性。云计算的核心是包含互连节点的网络的基础设施。云计算网络中的节点是计算装置,包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、。
35、厚客户端、手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机、小型机系统、大型计算机系统、以及包括上述系统或装置中的任意一个的分布式云计算环境、等等。云计算节点能够实现和/或执行上文中阐述的任何功能。0038下面参照本发明的实施例。然而,应当理解,本发明并不局限于特定描述的实施例。相反,以下特征和元件的任何组合,无论其是否与不同的实施例相关,都被预期到用于实现和实践本发明。而且,尽管本发明的实施例可以实现优于其他可能的解决方案和/或现有技术的优点,但是给定的实施例是否实现了特定优点并非是对本发明进行限制。因此,以下方面、特征、实施例和优点仅是说明性。
36、的,除非在权利要求中明确陈述,否则其不应被视为所附权利要求的要素或限制。同样,对“本发明”的提及不应被解释为本文公开的任何发明主题的概括,并且不应被认为是所附权利要求的要素或限制,除非在权利要求中明确陈述。0039所属领域的技术人员将理解的是,本发明的各个方面可以实施为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取以下形式,即完全的硬件实施方式、完全的软件实施方式包括固件、驻留软件、微代码等,或软件和硬件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以采取用一个或多个计算机可读介质实施的计算机程序产品的形式,该计算机可读介质上包含有计算机。
37、可读程序代码。0040可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的适当组合。计算机可读存储介质的更具体的例子非穷举的列表包括具有一个或多个导线的电连接、便携式计算机软盘、硬盘、随机存取存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑盘只读存储器CDROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令。
38、执行系统、装置或者器件使用或者与其结合使用。0041计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采用各种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。0042计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。0043可以以一种或多种程序设计语言的任意组合来编写用于执行本发。
39、明各方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如JAVA、说明书CN104160381A115/12页12SMALLTALK、C等,还包括常规的过程式程序设计语言诸如“C”程序设计语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网LAN或广域网WAN连接到用户计算机,或者,可以连接到外部计算机例如利用因特网服务提供商来通过因特网连接。0044下面参照根据本发明。
40、实施例的方法、装置系统和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。0045也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括实。
41、现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品。0046计算机程序指令还可以加载到计算机、其它可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。0047本发明的实施例可以通过云计算基础设施提供给最终用户。云计算通常指的是通过网络提供作为服务的可伸缩计算资源。更为正式地,云计算可以被定义为在计算资源与其下层技术架构例如,服务器、存储、网络之间提供抽象的计算能力,从而实现对可配置的计算资源的共享池的便。
42、利、按需的网络访问,所述可配置的计算资源能够以最小的管理成本或与服务提供者的最少交互而被快速供应和释放。因此,云计算允许用户访问“云”中的虚拟计算资源例如,存储、数据、应用甚至完全虚拟的计算系统,而不管用于提供计算资源的下层物理系统或这些系统的位置如何。0048通常,云计算资源在按使用付费的基础上向用户提供,其中用户仅被收取实际使用的计算资源的费用例如,用户消费的存储空间的量或由用户实例化的虚拟化系统的数量。用户可以访问在任何时间驻留在云中以及跨越互联网来自任何地方的任何资源。在本发明的上下文下,用户可以访问云中可用的应用或相关数据。例如,多租户数据库部署转换应用可以在云中的计算系统上执行、并。
43、将数据库从一个多租户部署转换为另一个多租户部署。在这类情况下,多租户数据库部署转换应用可以转换数据库部署、并在云中的存储位置存储物理数据存储库和相关联的租户元数据。这样做允许用户从附连到与云连接的网络例如,互联网的任何计算系统访问该信息。0049图1是示出根据本发明的实施例的用于提供软件即服务的云计算系统100的框图,其中服务器提供应用、并以三种不同部署中的一种部署存储多个客户租户的数据。联网的系统100包括服务器102和客户端计算机132。服务器102和客户端132经由网络130彼此连接,并且可以经由网络130连接到其他计算机。一般来说,网络130可以是电信说明书CN104160381A12。
44、6/12页13网和/或广域网WAN。在特定实施例中,网络130是互联网。0050服务器102通常包括经由总线115连接到存储器106、网络接口装置124、存储装置108、输入装置126以及输出装置128的处理器104。服务器102通常在操作系统107的控制下。操作系统的示例包括UNIX,MICROSOFT操作系统的各版本,以及操作系统的发行版。更一般地,可以使用支持本文公开的功能的任何操作系统。处理器104被包括以表示单个CPU、多个CPU、具有多个处理核的单CPU等。类似地,存储器106可以是随机存取存储器。尽管存储器106被示为单数个体,但应当理解,存储器106可以包括多个模块,并且存储器。
45、106可以以多个级别存在,从高速寄存器和高速缓存到较低速度但更大的DRAM芯片。网络接口装置124可以是允许服务器102经由网络130与其他计算机通信的任何类型的网络通信装置。0051存储装置108可以是持久存储装置。尽管存储装置108被示为单个单元,但是存储装置108可以是固定和/或可移除存储装置的组合,例如固定的磁盘驱动器、固态驱动器、软盘驱动器、磁带驱动器、可移除存储卡或光存储装置。存储器106和存储装置108可以是跨越多个主要和次级存储装置的一个虚拟地址空间的一部分。0052如图所示,服务器的存储装置108包含多个数据库。在该特定附图中,示出四个数据库,尽管任何数量的数据库可以存储在服。
46、务器102的存储装置108中。存储装置108被示为包含编号为118、120和122的租户特定数据库,每个数据库对应于不同的部署选项。存储装置108也被示为包含元数据仓库125,其存储租户标识信息、系统策略和任何其他相关信息。0053输入装置126可以是用于向服务器102提供输入的任何装置。例如,可以使用键盘和/或鼠标。输出装置128可以是用于向服务器102的用户提供输出的任何装置。例如,输出装置108可以是任何常规的显示屏或扬声器组。尽管与输入装置126分开示出,但是输出装置128和输入装置126可以组合在一起。例如,可以使用带有集成的触摸屏的显示屏。0054如图所示,服务器102的存储器10。
47、6包括配置成经由网络130向用户提供多个服务的多租户应用110。如图所示,服务器102的存储器106还包含配置成管理包含在服务器102的存储装置108中的多个数据库的数据库管理系统DBMS112。服务器102的存储器106还包含网络服务器114,其执行传统的网络服务功能,并且还可以提供作为不同应用例如多租户应用110的运行时环境的应用服务器功能例如,J2EE应用服务器。0055根据本发明的实施例,如图所示,客户端计算机132包含处理器134、存储器136、操作系统138、存储装置142、网络接口144、输入装置146和输出装置148。这些组件的描述和功能与参照服务器102描述的等效组件相同。如。
48、图所示,客户端计算机132的存储器136也包含网络浏览器140,在某些实施例中网络浏览器140被用于访问由服务器102提供的服务。0056图1的特定描述仅用于说明目的;应当理解,本发明并不局限于特定描述的实施例,并且可预期到实现和实践本发明的任何组合。尽管图1示出单个服务器102,但是本发明的实施例预期到用于提供本文所述服务和功能的任何数量的服务器。而且,尽管在图1中被示出与服务器102在一起,但是两层多租户应用110的服务和持久功能可以被容纳在分离的物理服务器中或者容纳在相同服务器内的分离的虚拟服务器中。在某些实施例中,说明书CN104160381A137/12页14多租户应用110可以被部。
49、署在计算集群中的多个实例中。如本领域的普通技术人员所知,为多租户应用110执行其相应功能的模块可以被容纳在相同服务器、不同服务器或其任何组合中。存储装置中的项目例如元数据仓库125、数据库118、120和122也可以存储在相同服务器、不同服务器或其任何组合中,并且也可以作为应用模块驻留在相同或不同服务器上。0057图2是示出根据本发明的实施例管理和转换多租户环境中的部署选项的架构的框图200。如图所示,多租户2051N经由网络130连接到服务器102、并且访问包含在服务器102的存储器106中的多租户应用110。下面进一步详细描述的多租户应用110配置成向租户提供服务,在某些实施例中多租户应用110包括云计算环境中的多个软件即服务应用。还示出的是抽象层220,其充当多租户应用110和DBMS112之间的中介。通过抽象层220,可以完成不同数据库部署选项之间的透明转换,使得多租户应用110不需要知道每个数据库的物理实现、并且多租户应用110不需要被记录以反映数据库中的变化。抽象层220配置成接收来自多租户应用110的查询,然后将租户特定信息插入到该查询中,使得查询被引导到适当的数据库和/或数据库表格。租户特定信息可以包括但不限于与每个租户拥有的数据库、模式、表格和列的物理实现相关的细节。这类细节可以包括数据库、模式、表格和列的名称和位置。在备选实施例中,抽象层220可以被实现为数据。