一种应用于PaaS平台的多租户数据隔离方案制造技术

技术编号:14884362 阅读:615 留言:0更新日期:2017-03-24 23:23
本发明专利技术公开了一种应用于PaaS平台的多租户数据隔离方案,所述多租户数据隔离方案将异构系统的数据库配置注册在配置文件Datasource.xml中,采用了混合数据隔离方式同时兼容了toB级别和toC级别的数据隔离,所述配置文件Datasource.xml指定了该异构系统的数据库配置信息,提供了基于指向一个或多个源数据库的映射信息以及多租户元数据,为各个租户创建的当不同系统登录当前云应用系统时,携带自身租户id;本技术方案能够兼容toB、toC两种领域的需求,实现了伸缩性、扩展性与共享性的融合。

【技术实现步骤摘要】

本专利技术属于计算机软件云计算领域,尤其涉及一种应用于PaaS平台的多租户数据隔离方案
技术介绍
随着云计算技术的发展和虚拟化技术的成熟,PaaS(即Platform-as-a-Service的缩写,意思是平台即服务)已然成为云计算应用的热点,传统软件应用商不断向云端转型,将服务器平台或者开发环境作为服务提供给用户,由提供商负责管理和维护资源来有效减少SaaS应用的成本。多租户架构是PaaS平台上一种最重要的模型,为PaaS平台的实际应用提供了强有力支撑。多租户架构在架构层面保证了在一台服务器上运行单个应用实例的同时,为多个租户提供服务,有效减少了PaaS应用的成本。与此同时,也为多租户架构应用层数据访问控制和数据隔离提供了更多挑战。微软2006年在MSDN上指出,目前多租户架构在数据层面主要表现为三种形式:1.独立数据库2.共享数据库、独立Schema3.共享数据库、共享Schema、共享数据表。独立数据库指的是一个租户独享一个数据库实例,租户数据彼此物理不可见,备份与恢复都很灵活;共享数据库、独立Schema将每个租户关联到同一个数据库的不同Schema,租户间数据彼此逻辑不可见,上层应用程序的实现和独立数据库一样简单,但备份恢复稍显复杂;最后一种模式则是租户数据在数据表级别实现共享,它提供了最低的成本,但引入了额外的编程复杂性(程序的数据访问需要用tenantId来区分不同租户),备份与恢复也更复杂。目前市面上的厂商提供的多租户的支持,大抵都是遵循上文所述的这几类模式,或者混合了几种策略。因此,需要一种新的通信加密技术来避免上述缺陷的产生。专利技术内容针对现有技术的不足,本专利技术提供一种应用于PaaS平台的多租户数据隔离方案,从云产品的实际应用出发,针对应用真实需求,提供了同时面向toB(面向企业)和toC(面向个人)的混合数据隔离方案,基于对Spring框架的理解,使用面向切面编程的方式实现了一种动态确定数据源的解决途径,满足了多租户架构对数据访问控制的要求,实现了客户对资源弹性伸缩的需求,填补了该细分领域的一个空白。一种应用于PaaS平台的多租户数据隔离方案,所述多租户数据隔离方案将异构系统的数据库配置注册在配置文件Datasource.xml中,采用了混合数据隔离方式同时兼容了toB级别和toC级别的数据隔离,所述配置文件Datasource.xml指定了该异构系统的数据库配置信息,提供了基于指向一个或多个源数据库的映射信息以及多租户元数据,为各个租户创建的当不同系统登录当前云应用系统时的携带自身租户id。优选地,所述配置文件Datasource.xml涵盖了被集成系统数据库配置信息,包括被集成系统唯一标识、数据库驱动类、数据库连接串和数据库管理业信息。优选地,所述toB级别的数据隔离包括以下步骤:S1,携带租户id发出数据操作请求;S2,系统根据租户id从预置配置文件中读取数据库连接信息;S3,基于spring框架的动态数据源机制将当前容器中的数据源设为该租户在文件中对应的数据源;S4,该操作请求可以对对应的数据库进行相关操作。优选地,所述toC级别的数据隔离包括以下步骤:S1,在应用对应的数据库表中增加TenantId字段;S2,当个人用户发起请求时,从登录信息中取出当前个人用户对应的租户id;S3,在操控数据库时,携带租户信息,基于所述租户信息完成相应CRUD关系的创建;S4,以租户信息实现了数据库中业务数据信息的隔离。优选地,所述基于spring框架的动态数据源机制包括以下过程:所述Spring的AbstractRoutingDataSource类继承自AbstractDataSource,重写了基于数据源获取连接的方法,对外暴露出determineCurrentLookupKey方法,由具体的实现确定获取数据源的策略。同时对外暴露了setTargetDataSources方法,其子类可以根据实际需要完成数据源的初始化工作;默认从配置文件中读取注册在当前系统的所有数据源信息,然后重写setTargetDataSources方法,完成数据源的初始化工作;建立一个获得和设置上下文环境的类,负责改变上下文数据源的名称;读取当前系统的租户Id,根据租户信息返回当前租户对应的真实数据源名称;在Spring的数据源中设置该动态数据源实现类。本专利技术的技术方案具有以下有益效果:本专利技术提供的一种应用于PaaS平台的多租户数据隔离方案,是一种混合式的数据库隔离方案,登录后根据上下文环境动态确定数据源的新形式吗,其技术方案能够兼容toB、toC两种领域的需求,实现了伸缩性、扩展性与共享性的融合,已经成功应用于用友新一代PaaS平台产品-云表单,实现了面向企业与面向个人用户的整合,丰富了产品维度,解决了多租户架构对数据访问控制的要求,实现了客户对资源弹性伸缩的需求,填补了该细分领域的一个空白。附图说明下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。图1为本专利技术一种应用于PaaS平台的多租户数据隔离方案的toB端数据源配置方式图;图2为本专利技术一种应用于PaaS平台的多租户数据隔离方案的toC端通过租户id实现C端租户隔离图。具体实施方式为了清楚了解本专利技术的技术方案,将在下面的描述中提出其详细的结构。显然,本专利技术实施例的具体施行并不足限于本领域的技术人员所熟习的特殊细节。本专利技术的优选实施例详细描述如下,除详细描述的这些实施例外,还可以具有其他实施方式。下面结合附图和实施例对本专利技术做进一步详细说明。本专利技术实施例提供了一种应用于PaaS平台的多租户数据隔离方案,所述多租户数据隔离方案将异构系统的数据库配置注册在配置文件Datasource.xml中,采用了混合数据隔离方式同时兼容了toB级别和toC级别的数据隔离,所述配置文件Datasource.xml指定了该异构系统的数据库配置信息,提供了基于指向一个或多个源数据库的映射信息以及多租户元数据,为各个租户创建的当不同系统登录当前云应用系统时,会携带自身租户id。本专利技术实施例根据产品面向的定义域,从实际需求出发,采用了混合数据隔离方案,同时兼容了toB级别和toC级别的数据隔离,该方案可以满足对租户隔离性、数据安全性、数据源可配置性的综合要求。在多租户架构中,toB级别的数据隔离上,我们选用了多个租户共享同一个应用程序实例的形式。这样可以共享硬件成本,降低了开发和维护成本。不同异构系统,由于安全性、数据隔离程度的综合考量,势必会存在不同的数据库使用不同连接串的场景。本专利技术将异构系统的数据库配置注册在配置文件Datasource.xml中,该文件指定了该异构系统的数据库配置信息,也就在物理上提供了一种逻辑视图,提供了基于指向一个或多个源数据库的映射信息以及多租户元数据。为各个租户创建的当不同系统登录当前云应用系统时,会携带自身租户id。Datasource.xml是本方案实现数据源可扩展性的关键,它主要涵盖了被集成系统数据库配置信息,主要包括:被集成系统唯一标识、数据库驱动类、数据库连接串、数据库管理业信息等,通过该标识,可以唯一确定被集成系统的数据源信息。通过该配置文件的切割,被集成系统的数据源信息变成具有原子性、可配置的部分,不同租户间的本文档来自技高网...
一种应用于PaaS平台的多租户数据隔离方案

【技术保护点】
一种应用于PaaS平台的多租户数据隔离方案,其特征在于,所述多租户数据隔离方案将异构系统的数据库配置注册在配置文件Datasource.xml中,采用了混合数据隔离方式同时兼容了toB级别和toC级别的数据隔离,所述配置文件Datasource.xml指定了该异构系统的数据库配置信息,提供了基于指向一个或多个源数据库的映射信息以及多租户元数据,为各个租户创建的当不同系统登录当前云应用系统时的携带自身租户id。

【技术特征摘要】
1.一种应用于PaaS平台的多租户数据隔离方案,其特征在于,所述多租户数据隔离方案将异构系统的数据库配置注册在配置文件Datasource.xml中,采用了混合数据隔离方式同时兼容了toB级别和toC级别的数据隔离,所述配置文件Datasource.xml指定了该异构系统的数据库配置信息,提供了基于指向一个或多个源数据库的映射信息以及多租户元数据,为各个租户创建的当不同系统登录当前云应用系统时的携带自身租户id。2.根据权利要求1所述的应用于PaaS平台的多租户数据隔离方案,其特征在于,所述配置文件Datasource.xml涵盖了被集成系统数据库配置信息,包括被集成系统唯一标识、数据库驱动类、数据库连接串和数据库管理业信息。3.根据权利要求1所述的应用于PaaS平台的多租户数据隔离方案,其特征在于,所述toB级别的数据隔离包括以下步骤:S1,携带租户id发出数据操作请求;S2,系统根据租户id从预置配置文件中读取数据库连接信息;S3,基于spring框架的动态数据源机制将当前容器中的数据源设为该租户在文件中对应的数据源;S4,该操作请求可以对对应的数据库进行相关操作。4.根据权利要求1所述的应用于PaaS平台的多租户数据隔离方案,其特征在于,所述toC级...

【专利技术属性】
技术研发人员:樊兆龙刘昆鹏
申请(专利权)人:用友网络科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1