[发明专利]多租户环境下扩展数据库表的方法和系统有效
申请号: | 201010132487.0 | 申请日: | 2010-03-23 |
公开(公告)号: | CN102200977A | 公开(公告)日: | 2011-09-28 |
发明(设计)人: | 刘长浩;王宁;王启荣;王小锋;周英华;肖振春;张春林 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华;李辉 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 租户 环境 扩展 数据库 方法 系统 | ||
技术领域
本发明涉及数据库技术,尤其涉及在多租户环境下对数据库表进行扩展的技术。
背景技术
由于SaaS(Software as a Service软件作为服务、软件即服务)的出现,软件行业正在经历一场深刻的变革。SaaS在许多国家已经流行并进入了普及阶段。SaaS的安全技术日新月异,越来越多的企业开始认可SaaS安全性和可靠性。基于互联网的特点,SaaS软件有许多区别于前一代软件的独特性,从服务器端软件和数据库、数据传输、到客户端浏览器都出现了许多新技术。
开发SaaS软件系统时,均建立在多重租赁(Multi-Tenant),又称“多租户”的基础上,也就是一套软件和数据库平台,经过软件和数据库的隔离及保密等技术,多个企业(或者企业内部多个租户)同时使用。虽然非多重租赁的SaaS产品不一定是“假SaaS”产品,然而多重租赁大大提高了运营效率、稳定性,降低运营商的维护和升级成本,变相地说最终消费者得到了价格上的实惠。
在SaaS系统中,相对于应用程序计算逻辑/层面而言,如何处理多租户(Multi-Tenant)对数据库的访问更具有挑战性。在与“多租户对数据库的访问”相关的问题中,如何满足不同的租户对于扩展数据库表的不同需求是一个基础性的问题。举例而言,在某SaaS员工信息系统中,存在一个基础信息统计表I,在表I中,租户A需要对其内部每个员工的员工代码进行记录,用于标识员工,而租户B不需要记录其每个员工的员工代码,而是通过记录员工的家庭住址来标识员工。这就导致该员工信息系统在设计数据库表时会产生难题,因为在设计该系统时无法充分预料到未来的租户可能会有哪些对数据库表的需求。
目前存在一些在多租户环境下扩展数据库表的技术方案。根据一种现有技术中的解决方案,可以在设计多租户SaaS应用系统时为每个数据库表定义好所有的允许租户根据各自不同的需求去扩展的数据库表列。根据上面的例子,可以在设计该员工信息系统时就在表I中定义好一个可扩展的空表列。“员工代码”列和“员工家庭住址”列。这样,租户A就可以选择该空表列作为“员工代码”列,而租户B就可以选择该空表列作为“员工家庭住址”列,从而根据各自的需求将该预先定义好的可扩展的空表列定义为其所需的表列,并完成相应的数据输入、查询等数据库操作。该解决方案的显著缺点是:如果在设计系统时开发人员只提供了较少的可扩展的空表列,那么大量租户的对数据库表进行扩展的需求可能将无法得到满足。而如果在设计系统时开发人员提供了大量的可扩展的空表列,那么又会使得数据库表占用并且浪费大量空间,因为有许多可扩展表列可能仅仅是极个别租户所需的。在有些情况下,上述两个缺点可能同时发生:既存在一些租户的需求无法被满足,又存在大量的可扩展表列的使用率极低导致大量空间被浪费。该解决方案的再一缺点是:由于事先定义的可扩展的空表列不包含数据类型等相关信息(如数字型、日期型、字符串型),这些信息必须由租户自行定义,因此必须通过联合操作(JointOperation)才能对数据正确进行解释,这就会耗费大量的运算资源从而影响系统性能以及用户体验。并且这样的解决方案需要多租户应用系统的开发者对于该产生的租户需求非常了解,会加大系统开发者的负担。
根据另一种现有技术中的解决方案,通过创建私有表来为每个租户存储其私有数据(需要扩展的数据表列)。该解决方案的显著缺点是:其一,需要在多租户系统中创建大量的私有表以满足大量未知租户的需求,并且所能创建的私有表的数量受到数据库管理系统DBMS的限制;其二,租户对其创建的私有数据(扩展表列中的数据)进行操作时,必须通过私有表和公有表之间的联合操作(Join Operation)才能进行,会耗费大量的运算资源从而影响系统性能以及用户体验。
发明内容
考虑到上述存在的问题,本发明的目的之一在于提供一种对应用的开发者透明的扩展数据库表(定制化)的方法和系统。本发明的又一目的在于提供一种对租户而言具有统一的数据模型的扩展数据库表(定制化)的方法和系统。本发明的再一目的在于提供一种无需占用大量数据库空间并且在执行数据库处理操作时无需进行联合操作(Joint Operation)的扩展数据库表(定制化)的方法和系统。
根据本发明的一个方面,提供了一种用于扩展数据库表的方法,包括:接收租户关于扩展数据库表的请求;以及根据所接收到的请求,生成对应于所述租户的描述文件,所述描述文件将为数据库表定义的扩展字段描述为至少一个扩展列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010132487.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种从猪血中提取免疫球蛋白G的方法
- 下一篇:装配式涡轮壳体