1.一种多租户模式下租户扩展属性合并方法,其特征在于,其包括以下步骤:步骤1:审核租户的扩展属性申请信息;
获取当前租户的扩展属性申请信息的审核结果fA,U(A)使用审核函数对租户的扩展属性申请信息A进行审核,公式如下所示:;
式中:fA表示租户的扩展属性申请信息的审核结果;A表示当前租户的扩展属性申请信息;U表示审核函数;
步骤2:根据租户属性扩展申请的审核结果,判断是否持久化当前租户的扩展属性;
获取步骤1的计算结果,当fA=1且当前租户的待扩展属性不存在,则采用元数据记录当前租户的扩展属性,成功持久化后并产生一个扩展属性变更通知;
步骤3:接收到扩展属性变更通知,为当前租户执行扩展属性合并操作,公式如下所示:;
式中:M表示扩展属性合并结果;Bt表示被扩展的基本表;Tid表示租户唯一标识;Get表示依据Bt和Tid获取到租户对被扩展表的全部扩展属性信息的函数;Merge表示扩展属性合并函数;
步骤4:重复步骤1、步骤2和步骤3,使得每个租户都拥有唯一的扩展属性视图,不同的基本表各自对应唯一含有扩展属性列的视图,完成不同租户的扩展属性合并。
2.一种用于实现权利要求1所述的多租户模式下租户扩展属性合并方法的多租户系统,其特征在于,所述系统包括:请求处理模块、数据读写模块、扩展属性合并模块、服务管理模块、健康监测模块和分布式存储模块;
所述请求处理模块包括请求解析单元、数据源选择单元和数据源连接单元,用于处理不同租户的数据访问请求;
所述数据读写模块在当前租户数据所在的存储区域上存取数据;
所述扩展属性合并模块能够实现租户扩展属性的合并,包含属性扩展单元和扩展属性合并单元;
所述服务管理模块管理租户的数据使用权限;
所述健康监测模块用于监测各数据服务器的运行状况;
所述分布式存储模块保存不同租户的应用数据,并且租户数据由共享存储区域和私有存储区域中的数据组成。
3.根据权利要求2所述的多租户系统,其特征在于,所述请求处理模块,具体为:所述请求处理模块接收到用户的数据访问请求,查找当前用户映射的租户,从归属的租户中获取唯一标识传递给数据源选择单元;所述数据源选择单元根据租户唯一标识动态匹配数据源,租户标识作为私钥使用对称加密算法解密出数据源明文信息并传递给数据源连接单元,动态匹配数据源公式如下所示:;
式中:Ds表示数据源信息,包含主机IP、Port、User、Pwd信息;Q表示依据Tid和M动态匹配数据源的函数;Pk表示当前租户的私钥;O表示加密信息;Decrypt表示使用Pk对加密信息进行解密的函数,当Ds值为null时,表示匹配失败,否则Ds即为数据源信息;
所述数据源连接单元依据传递来的数据源信息按照规则动态构造连接语句,公式如下所示:;
式中:Dc表示当前数据服务器的连接驱动;Generate表示依据Ds和Dc构造连接语句的函数;Conn表示生成的连接语句;
实现依据当前租户的数据访问请求动态匹配数据源,连接数据源时验证当前租户是否具有访问权限,若有权限则从连接池中获取一个已建立连接的空闲连接对象;若权限不足则拒绝连接,提示当前租户权限不足。
4.根据权利要求2所述的多租户系统,其特征在于,所述服务管理模块为首次租用服务的租户初始化数据存储区域的具体步骤如下所示:步骤51:获取租户填写的租户规模、活跃时间作为匹配数据服务器的条件;
步骤52:依据健康监测模块的监测信息为当前租户匹配数据存储服务器,将其分配到性能良好的主机上;
步骤53:若匹配成功,则在当前主机上为租户创建数据存储区域并依据预定的规则命名和为租户初始化默认的数据架构;
步骤54:为当前租户创建数据访问租户、授予租户数据使用权限以及在共享存储区域中以租户标识为筛选条件创建属于当前租户的视图,将共享区域中的数据按照不同的租户在逻辑上实现隔离;
步骤55:将租户数据所在的主机IP、Port、User和Pwd使用加密算法加密后记录在映射表中,最终完成租户存储区域的初始化;
步骤56:若匹配失败,提示数据服务器数量不足,需要水平扩展,扩展后在健康监测模块中加入对主机的监测并将当前租户分配在新的数据服务器上,然后重新执行初始化步骤。
5.根据权利要求2所述的多租户系统,其特征在于,所述健康监测模块能够监测CPU、内存、磁盘使用情况并可视化显示,当系统监测到异常状态时及时将异常信息以邮件通知,以便以最快速度做出应对措施;为服务管理模块提供监测信息,在为新租户开辟存储区域时提供选择依据。
6.根据权利要求2所述的多租户系统,其特征在于,所述分布式存储模块能够帮助提高租户数据的安全性,租户数据由共享存储区域和私有存储区域两部分组成,其中,共享存储区域共享表中的数据分别以租户标识为筛选条件创建视图,限制其所能浏览和编辑的数据内容,使得不同租户的数据在逻辑上实现相互隔离;所述私有存储区域唯一地归属于一个租户,在物理上实现租户数据的隔离,只有被授权的租户才可访问。