您现在所在的位置是:首页 > 业界新闻

几点说说共享多用户模式的库存软件

随着近年来我国政府持续推进库存软件正版化工作,国产软件企业迎来前所未有的发展机遇,秘奥等企业迅速崛起,高速发展。但与此同时,仍面临软件巨头的低价竞争和盗版软件的两面夹击。

随着互联网技术的高速发展和应用软件的日渐成熟,软件即服务SaaS模式已经成为一种新型的软件运营模式。在国外,SaaS正在渗透到库存软件应用的各个方面,甚至开始成为主流。全球SaaS模式的创始者就是以SaaS模式的CRM取得巨大成功的。而在国内还是以传统按需求定制软件的方式为主,SaaS还处于起步阶段。在传统软件的基础上向SaaS软件转型已经成为当前势不可挡的潮流。SaaS作为一种新的软件服务模式,技术架构与传统软件相比有很大差别,在技术上还有很多新的挑战。

库存软件共享数据库共享架构的多租户模式
(1) 多租户技术
多租户技术是SaaS服务模式区别于传统模式最本质的区别,达到SaaS模式的成熟度模型的必要条件是解决数据的隔离性,实现多租户模式。在SaaS模式下建立多租户,必须在业务表增加一个TenantID字段用来区别每个不同的租户,保证每个租户数据的安全。
通过TenantID字段来获得对应租户的业务数据。当系统用到租户的业务数据时,需要在每条SQL语句中增加‘TenantID = ?’ 条件进行业务数据操作。
(2) 数据扩展技术
为了满足不同租户的不同需求,SaaS库存软件必须能够保证对数据可扩展。多租户模式满足大规模租户对数据的个性化需要,最常见的解决方案就是实现扩展数据的可配置。实现数据的可配置有以下3种常见方案。
方案1:定制字段,就是根据租户的需要在各租户共有的数据表上添加相应的定制字段来保存扩展数据。这种方案数据扩展非常简单但是其扩展性非常有限,当租户量达到一定数量,表中添加的字段就会非常多,而且每个租户添加的字段对另外租户是没有任何意义的,严重破坏了表的结构,有些扩展字段可能为空,浪费了表空间。

方案2:XML共享模型的数据扩展,这种方案在数据表中采用一种XML数据类型字段来存储租户间的数据。当今主流的关系数据系统都支持XML数据的存储和管理,并提供了很多函数来直接对XML文档节点进行管理。下面以Oracle数据库系统为例。
表结构:TableName(TenantID,Col1,Col2,,XMLDataField),其中TenantID、Col1、Col2字段是所有租户共用的字段;XMLDataField字段存储租户特有的异构数据,其格式完全遵循XML的格式。设计XMLDataField字段的格式如下:
XML文档中每个子节点代表租户的一个扩展列,包括列名、列的数据类型、列所对应的值等信息。每增加一个扩展列就在相应的XML文档中添加一个子节点,满足租户对数据扩展的个性化需要。
使用XML字段作为数据扩展方案,对扩展数据的操作简单,不需频繁地多表连接,可以灵活地满足多租户模式下的异构数据的定制,提高了性能。该方案的使用需要在系统的架构模式中添加一层对XML数据进行解析再呈现给客户以及对客户数据封装成XML数据再保存到数据库中。

方案3:预分配字段,该方法在表格中提供一定数量的预设字段,当租户要扩展数据时,从表中选取适当的预设字段进行扩展,但是不同租户选取同一个预设字段的含义可能也不一样。如表2中TenantID字段区分每个租户,除了一些固定的字段外,还提供了一些预分配字段,Ext1、Ext2、Ext3就是预分配的字段,预分配字段的使用由租户自己预定,一般初始为字符串类型,其真实类型可以采用元数据表来进行跟踪。

这种方案虽然能满足可配置、可扩展的需求,但是预留过多浪费空间,预设过少,又不能满足租户的需求。
方案4:名称值对,本方案采用一个单独的表来存储扩展数据。扩展表将数据表的横向扩展列转换成纵向的扩展数据集,为每一条原数据记录设一个扩展字段,保存为扩展表中的一条记录。将数据表中的数据记录与元数据表中的配置记录相关联,构成扩展数据记录。
虽然这种方案很好地达到了多租户数据扩展的灵活性要求,但增加了查询、更新记录等数据库操作的复杂度,每次操作都涉及到多个表间的关联,因此该方案也有待优化。
国产库存软件如何在竞争中胜出?如何在政府采购之外拓展企业市场?业内人士认为,尽管政府采购量大且稳定,但软件的使用主体仍在企业,谁能在稳定政府客户的同时拿下更多的企业订单,将成为决定国产软件企业成败的关键。

文章来源:秘奥软件网,中小企业信息化领跑者!全国咨询热线:400-9908-527_www.misall.com

最新新闻: