乐思软件

提交需求|联系我们|请电400-603-8000

传统软件向SaaS软件转型方案的研究

    这种方案虽然能满足可配置、可扩展的需求,但是预留过多浪费空间,预设过少,又不能满足租户的需求。


    方案3:名称值对,本方案采用一个单独的表来存储扩展数据。扩展表将数据表的横向扩展列转换成纵向的扩展数据集,为每一条原数据记录设一个扩展字段,保存为扩展表中的一条记录。将数据表中的数据记录与元数据表中的配置记录相关联,构成扩展数据记录。如图1所示。

 

    名称值对扩展表结构

    图1 名称值对扩展表结构


    虽然这种方案很好地达到了多租户数据扩展的灵活性要求,但增加了查询、更新记录等数据库操作的复杂度,每次操作都涉及到多个表间的关联,因此该方案也有待优化。


    方案4:XML共享模型的数据扩展,这种方案在数据表中采用一种XML数据类型字段来存储租户间的数据。当今主流的关系数据系统都支持XML数据的存储和管理,并提供了很多函数来直接对XML文档节点进行管理。下面以Oracle数据库系统为例。


    表结构:TableName(TenantID,Col1,Col2,,XMLDataField),其中TenantID、Col1、Col2字段是所有租户共用的字段;XMLDataField字段存储租户特有的异构数据,其格式完全遵循XML的格式。设计XMLDataField字段的格式如下:


    value1


    value2


    value3


    ……


    XML文档中每个子节点代表租户的一个扩展列,包括列名、列的数据类型、列所对应的值等信息。每增加一个扩展列就在相应的XML文档中添加一个子节点,满足租户对数据扩展的个性化需要。


    使用XML字段作为数据扩展方案,对扩展数据的操作简单,不需频繁地多表连接,可以灵活地满足多租户模式下的异构数据的定制,提高了性能。该方案的使用需要在系统的架构模式中添加一层对XML数据进行解析再呈现给客户以及对客户数据封装成XML数据再保存到数据库中。


    2.3 多租户模式下的功能可配置


    SaaS软件所强调的是“按需使用,按需付费”。在SaaS模式下,租户根据自己不同的需求来使用同一软件,则需达到可配置性要求。实现功能的可配置,可采用如图2所示的四级表结构。

 

    四级表结构

    图2 四级表结构


    每个租户对应一个预设的功能模式,预设了租户的基本功能。功能模式由多个原子功能构成。租户表存储租户的相关信息,TenantID:租户的唯一标识;UserName:租户的登录账号;Password:租户的登录密码;PatternNo:租户使用系统包括的功能模式。功能表存储了系统所有的原子功能相关信息,MENU_No:原子功能唯一标识;MENU_NAME:原子功能的名称。模式表存储了功能模式信息。PatternNo:系统中包括的所有模式标识。MENU_No:功能模式包括的原子功能。模式表可以作为租户选择功能的向导。租户模式功能表存储了租户所拥有的功能的相关信息。租户模式功能表定义了该租户所有的功能信息,该表可以作为租户所拥有的所有功能的查询。

集成系统网络情报信息数据库

CIO频道人物视窗
CIO频道方案案例库
大数据建设方案案例库
电子政务建设方案案例库
互联集成系统构建方案案例库
商务智能建设方案案例库
系统集成类软件信息研发企业名录