APP下载

面向产业链协同SaaS平台的企业群应用配置技术研究

2014-11-30王淑营刘述雅李月霞

计算机工程与设计 2014年1期
关键词:表单租户字段

钟 军,王淑营,刘述雅,李月霞

(1.西南交通大学CAD工程中心,四川 成都610031;2.成都市国龙信息工程有限责任公司中心,四川 成都610031;3.北京铁路局石家庄职工培训基地,河北 石家庄050061)

0 引 言

随着网络技术和信息技术的不断发展,企业之间的竞争由单个企业之间的个体竞争已发展成为以龙头企业为核心的供应链的整体竞争,随之信息化技术也由原来的企业内部已ERP/PDM为核心的集成,发展成为跨企业边界的企业间的集成与协同服务[1,2]。在企业间的集成与协同解决方案中,软件服务及应用 (software as a service,SaaS)以其特有的集成资源、软硬件价格和专业化服务优势发挥越来越重要的作用。产业链协同SaaS平台正是在这种背景下应运而生的,它以专业化的第三方服务的方式的集成软硬件资源,为以龙头企业为核心的企业群提供个性化应用解决方案。

按需配置是SaaS软件的本质特征,目前国内外关于面向SaaS平台的配置技术研究很多,也取得了许多研究成果,如基于元数据定制技术、基于业务规则定制技术[3]等。许多国外的公司很早就开始对SaaS配置技术进行研究,Salesforce专注开发在线客户关系管理 (CRM)软件,Google开发大量在线办公套件。在国内许多公司,如八百客针对中国用户开发CRM和在线Office,阿里软件开发的AEP(Alisoft ecommerce platform)平台,这些软件都在研究业务流程配置、业务规则配置、界面配置等可配置技术。

在技术上,文献 [4]采用原图的观点来描述基于多租户的个性化定制,使用邻接矩阵和闭合矩阵来存储原图中各个定制点之间的关系。从数学上保证定制的正确性和定制点之间的依赖性,但是这种方案会产生巨大的矩阵,使得在实际应用中很难管理。文献 [5]将系统业务描述成一系列路径,然后为路径上的点设置开关来实现个性化业务需求,这种方案需要设置大量预定义点只适应一类业务的定制,并不能完全个性化定制。文献 [6]根据树形节点的属性以及继承性和边属性来分类定制节点,但是这使得服务提供商的管理复杂度增加。文献 [7-9]基于BPEL语言在过程中定制业务可变点,每个业务可变点包含一系列选择,虽然这种方式实现过程的扩展性,但是在功能实例化后不可以再改变。文献 [10]提出一个面向SaaS服务个性化定制的解决方案,服务提供商根据租户的要求进行验证,如果通过验证就更新提供的服务。这个方式,服务器需要时刻处理租户的请求,导致服务器负担过大,影响效率。文献 [11]引入业务驱动模型来完成SOA复杂环境各个方面的配置,通过规则来引导层次之间的通信,但是这种方式缺乏自定义业务规则的灵活性。在研究SaaS定制问题上,多租户的数据存储管理是一个关键领域。文献 [12]设计一个查询重写引擎,将逻辑查询映射到物理查询,但是这篇文章是基于宽表来设计的,并不适于名称对形式存储数据的查询重写。文献 [13]提出一个基于继承的SaaS模型,方便定制管理、减少定制冗余。文献 [14,15]分别对名值对数据存储形式进行改进,改进查询效率。在产业链协同SaaS平台上,强调以龙头企业为核心,实现基于平台上下游企业群协同工作。因此,针对其定制技术主要体现在以龙头企业为核心的基于协作系统的多主体应用界面的定制上,这方面的研究目前尚无成熟的解决方案。

本文在上述成果的基础上,针对产业链协同SaaS平台以龙头企业为核心的应用模式,提出了产业链协同SaaS平台企业群应用配置模型,并对其实现技术进行了研究。

1 产业链协同SaaS平台的企业群应用配置需求

产业链协同SaaS平台支持以龙头企业为核心的企业群对零部件协同采购、产品协同销售、产品协同维修以及售后配件的协同调拨等[16]。在企业群应用过程中,不同的龙头企业对业务协同功能、单据格式、数据存储等需求均不同,对同一龙头企业的同一业务,不同的协作企业类型在参与过程中对应用的需求也不同,面向企业群的应用配置是解决个性化需求的有效手段。

在产业链协同SaaS平台的支持下,租户只需购买相应的服务和功能就能够使用软件,同时具有表单视图编辑功能,以实现租户个性化业务需求。用户可以修改已购买的服务也可以退租所有服务,保证租户实际利益。产业链协同SaaS平台对企业群应用配置的需求主要体现在:①组织结构种类繁多、数量庞大,对于组织结构中角色修改、成员的增减时有发生,对组织结构的配置非常必要;②由于企业群用户的不同,用户界面的元素具有差异性,包括元素的名字、页面的样式以及一些额外信息;③对于具有不同角色的用户使用报表的查询条件以及查询后的样式也需要进行配置,以满足他们实际需求。

上面的配置工作需要实现数据配置的支持,数据配置主要是添加新数据、改变存在数据、删除数据。表1列出了定制的各种需求及其相应操作。

表1 产业链协同SaaS平台配置的需求及其操作

2 面向SaaS平台企业群应用配置模型

为了满足租户个性化需求,将产业链协同SaaS平台中所有功能进行划分和定义为原子功能。功能划分的粒度为相互独立、不相交、总组合为原来系统[17]。租户购买的服务也就是这些功能的集合。按照功能的属性加载不同的模板,根据模板和字段属性选择界面生成表单视图。在产业链协同SaaS平台中将用户数据垂直切分成用户公共字段和用户个性化配置字段,将公共字段存入公用基本表,个性化配置字段存入用户扩展表[18],保证租户数据的隔离性。字段属性选择界面是由后台多张表组合得到。根据上面描述,结合实际软件开发本文提出个性化定制拓扑结构图,如图1所示。

2.1 应用配置模型的数学描述

为了方便对SaaS平台的表单定制功能描述,我们对上述涉及到的对象进行抽象和定义。

定义1 产业链协同SaaS平台的龙头企业为核心,通过业务类别和其它企业群建立协同工作实现产业链的协同管理,平台上协作企业的关系可以用一个三元组Ui={Eu,来表示,其中:E= {E,来表示,其中:Eu={EID1,EID2,...,EIDn}表示SaaS平台的企业用户;

图1 SaaS平台企业群应用配置模型

TYPu= {TYPUd,TYPUp,TYPUs,...}表示SaaS平台的不同业务类别,TYPUd、TYPUp、TYPUs分别代表服务商、供应商、经销商协作类别;

Sitems= {S1,S2,...,Sn}表示多个服务的集合,S 的定义参考定义2;

uu别建立协作的服务集合。

定义2 SaaS的一个核心价值就是从设计传统的软件产品模式转为提供软件服务模式,那么对于服务的设计尤为重要,产业链协同SaaS平台对于特定企业群Ui提供的服务Si可以用一个六元组Si=R(Si),Fpackage,S →R (Fpackage) }来表示,其中:

SID表示服务标识;

SDES表示服务描述;

A表示权限;

Fpackage= {F1,F2,...,Fn}表示由原子功能构成的功能集合,F的定义参考定义3;

S→R (Fpackage) 表示一个服务对应一个功能集合。

定义3 在SaaS平台企业群配置模型中,对原有的功能进行细粒度划分,然后重组以实现对定制的服务S的支持,一个实际可执行的功能Fi可用六元组Fi={FID,FDES,A,P,Template→R(FP),F→R{Fi}}来表示,其中:

FID表示功能标识;

FDES表示功能的描述;

P∈ {Add,Update,Select,Delete}表示操作属性;

Template = {Template1,Template2,...,Templaten}表示平台提供的各种属性模板;

Template→R(FP)表示功能根据功能的属性拥有相应的模板;

F→R{Fi}表示一项功能依赖于其它功能而存在。

定义4 配置个性化的企业使用界面是SaaS的一个基本性能,根据SaaS平台企业群配置模型的设计思路,Vi是由配置的字段集合和选择的模板共同生产的,Vi可以用一个二元组Vi= {Fields,V →R(Template,Fields)}来表示,其中:

Fields表示管理员配置的字段集合;

V→R(Template,Fields)表示一个表单视图是基于有效字段和模板规则生成的。

数据存储是产业链协同SaaS平台的一个重要特性,本文采用名值对形式即保证数据的扩展性又保证数据的隔离性。在共享数据库共享模式的数据库存储方式中名值对是最理想的,可以实现租户数据的无限扩展,但是名值对方式存储需要对插入SQL语句的拆分和查询SQL语句的重组,数据库服务器完成这部分工作开销较大,需要最基本的名值对方式进行改进,下面给出一种改进的方案。

定义5 改进的扩展方案可以用一个三元组

Extension_id表示扩展字段的唯一标识;

Extension_lbl表示扩展字段名称;

Data_type表示扩展字段类型;TExtension_table= {Row_id,Tenant_id,Record_id,XML_text,Table_id}表示以XML类型存储某一记录行所有的扩展字段及其值,其中:Record_id表示对于业务实体表中某行记录;

XML_text使用XML数据类型存储Record_id记录行所对应的值。数据行号,也就是ROWID。

2.2 产业链协同SaaS平台配置的依赖与约束

规约1:产业链协同SaaS平台中特定服务是一系列功能的集合,用Scomp→d(Fi)表示,但是在实际应用中如果Fi,这个服务没有实际意义,也为空,他们之间的UML关系图如图2所示。

图2 服务和功能关系

规约2:应用中某些功能是在其它功能的基础上形成的,用Fcomp→d(Fmeta)表示,其中:Fcomp表示具有依赖属性的功能,Fmeta表示被依赖的基础功能集合;例如修改用户订单信息功能是依赖于查询用户订单功能的结果。

规约3:由于功能之间存在依赖关系,在配置过程中必须检测功能之间的约束关系,用Fmeta→c(Fcomp)表示,如果Fmeta不存在,则Fcomp就没有意义,所以在配置过程中要取消Fmeta,必须先取消Fcomp,他们之间的UML关系图如图3所示。

图3 功能与功能关系

3 面向产业链协同SaaS平台的应用配置实现技术研究

3.1 企业群Ui配置数据及其应用数据的存储

3.1.1 配置Si和Fi信息的存储方法

对于服务和功能的配置信息存储,采用关系型数据库就能很好的实现。首先,建立服务表ServiceT、功能表FunctionT、服务和关联功能表Service_Related_FuctionT和功能依赖表Function_Related_FunctionT。定义一项服务,选择包含的功能集合,检查选择的功能集合中的复合功能的被依赖功能项是否被选择。如果满足规约1、规约3,分别将EID、SID插入ServiceT,然后将EID、FID插入FunctionT中。

3.1.2 表单视图数据的存储方法

将表单数据划分成表单的用户数据和样式数据,保证表单的表现与表单逻辑的隔离。如图4所示。

图4 表单视图的数据保存形式

由于XMl成为不同应用之间数据交换标准,XML解析性能提升,对于表单样式采用XML定义+XML存储方式实现。将完成后生产XML文件存入SaaS平台的XML库,每个租户建立单独的文件夹,保证用户安全,租户下载相应的XML样式并存放报本地数据隔离区。

由于用户数据量大、操作频繁,需要采用数据库来存储,具体使用定义5中的改进方案来实现。定义5中的三张表的关系如图4所示,这种改进方案有如下的优点:①没有空值被存储,节约存储空间;②租户定制字段的数据类型没有限制,都是由 Metadata_table的Data_type管理;③数据库的扩展部分只需要这三张表,数量固定,租户定制字段的数量和扩展的表数量是独立;④对于实体业务的一条数据在中只需要一行就可以完成存储,不需要为每个扩展字段存储一行记录;⑤对扩展数据的查询借助临时表使用Extention_table就可以完成,查询效率高。

3.2 视图配置

本文将界面视图进行分离,得到页面的业务属性元素模块和页面的样式及其操作模块。业务属性元素模块采用固定模式的XML文件存储,页面样式及其操作模块采用XSLT文件模板处理,其中XSLT模板由负责样式的CSS文件库和负责操作的JS文件库构成。视图的配置模型和详细过程如图5所示。

图5 视图的配置模型

算法名称:表单视图配置算法

输入:租户的密码、认证口令

输出:XML配置文件

BEGIN

步骤1 系统管理员登陆系统,输入用户名和密码以及httphander中的cookie发送到SaaS共服务平台;

步骤2 在平台中的认证中心完成租户的认证,如果管理员认证成功,转到步骤3;否则返回提示信息;

步骤3 选择某一功能表单,然后设置表单的使用者;

步骤4 根据功能表单加载数据库中和表单相关的所有字段的字段名称、字段类型、字段长度、是否必填、字段来源等,包括实体业务表的字段和该表对于的扩展字段;同时初始化一个XML文件;

步骤5 如果有新增字段则进入新增字段处理器,添加完字段后返回步骤4,然后刷新字段展示中心;如果没有新增字段,则进入步骤6;

步骤6 对需要的字段进入字段属性配置处理器,包括字段的显示名称、显示控件、是否必填、是否加密等信息;根据配置的属性修改初始化的XML文件;

步骤7 使用XSLT处理器对最终配置XML文件进行样式处理,通过效果预览不断调整XSLT模板,直至满意结果;

步骤8 将个性化XML配置文件和XSLT模板存入SaaS平台的XML数据库,然后返回管理员提示信息;

END

对于普通的租户登录平台后,只需要加载XML文件和XSLT模板就可以动态的生成租户界面。表单界面的动态加载模型以及详细算法如图6所示。

图6 表单界面动态加载模型

算法名称:表单界面动态加载算法

输入:租户的密码、认证口令

输出:HTML文件

BEGIN

步骤1 租户在浏览器客户端登陆系统,输入用户名和密码以及httphander中的cookie发送到SaaS共服务平台;

步骤2 在平台中的认证中心完成客户的认证,否则返回错误提示信息;

步骤3 如果通过认证,就去XML数据中读取该租户相应的XML配置文件,同时读取XSLT中心的XSLT文件;

步骤4 其中XSLT文件中包含控制页面功能的JS文件和控制HMTL中控件显示样式的CSS样式文件;

步骤5 在界面生成中心,用XSLT文件去解析XML文件输出位HTML文件;

步骤6 将生成的HTML文件返回给浏览器客户端,浏览器加载HTML文件显示给租户;

END

算法的优点:①充分解耦分离出XML文件和XSLT文件,使得对界面的配置可以并行开发;②SaaS平台提供足够的安全性;③SaaS平台界面的动态生成工作,客户端加载速度快。

4 企业群应用配置的验证

4.1 针对销售企业订单服务视图的配置实例

在产业链协同SaaS平台中,销售企业的订单服务涉通常的功能,同时订单服务涉及较多数据字段,对订单配置具有产业链协同SaaS平台应用配置代表性。下面是企业用户管理员为普通企业用户配置订单服务及其界面的实例,如图7所示。

图7 订单服务配置实例

配置订单服务实例过程如下:EA配置SA(Order)的FA(OrderEdit)和FA(OrderAdd),然后配置 FieldsA(Order),根据TemplateAdd、TemplateEdit模板和FieldsA(Order),生产VA(OrderAdd),VA(OrderEdit);EB配 置 SB(Order) 的FB(OrderAdd),然后配置FieldsB(Order),根据TemplateAdd模板和FieldsB(Order),生产VB(OrderAdd)。

4.2 实现结果

对于不同销售公司由于实际业务需求差异,需要定制不同的销售订单表,对于服务功能的配置如图8所示,字段配置界面如图9所示,最后定制的界面如图10所示。

5 结束语

图8 企业A与企业B服务功能配置

本文研究了SaaS配置技术和产业链协同技术,提出一个面向产业链协同SaaS平台的配置模型,满足企业用户的个性化配置。在文中提出了一个面向产业链协同SaaS平台配置模型的拓扑结构模型,定义了模型中的元素及其规约。研究了配置模型的存储方式,包括服务功能配置数据的存储,表单配置数据的存储,表单业务数据的存储。在此模型上提出了表单定制算法,包括表单视图配置算法和表单界面动态加载算法,并在产业链协同SaaS平台上进行了应用验证。但本文没有考虑后台数据模型的优化,这是需要进一步研究的内容。

[1]WANG Shuying.Research on architecture of collaborative work platform for industrial-chain in enterprises cluster [J].Journal of Computer Applications,2010,30 (5):1363-1366(in Chinese).[王淑营.产业链企业群协同工作平台体系结构研究 [J].计算机应用,2010,30 (5):1363-1366.]

[2]WANG Shuying.Integrated framework of collaborative commercial platform for manufacturing industrial chain [J].Journal of Southwest Jiaotong University,2008,43 (5):643-647(in Chinese).[王淑营.面向制造业产业链的协同商务平台集成框架 [J].西南交通大学学报,2008,43 (5):643-647.]

[3]WANG Shuying.Evolution technology for alliance customization oriented collaborative platform of industrial chain [J].Computer Engineering,2011,37 (9):101-103 (in Chinese).[王淑营.面向联盟定制的产业链协同平台演化技术 [J].计算机工程,2011,37 (9):101-103.]

[4]CUI Lizhen,QANG Haiyang.Customization modeling based on metagraph for multi-tenant applications [C]//5th International Conference on Pervasive Computing and Applications,2010:255-260.

[5]vanderAalst W M P,Dreiling A,Gottschalk F,et al.Jansen-Vullers[G].Lecture Notes in Computer Science 3812:Business Process Management Workshops,2006:512-518.

[6]ZHANG Kou,ZHANG Xin,SUN Wei,et al.A policy-driven approach for software-as-services customization [C]//E-Commerce Technology and the 4th IEEE International Conference on Enterprise Computing,E-Commerce,and E-Services,2007:123-130.

[7]Ralph M.Using variability descriptors to descrtibe customizable SaaS application templates[R].Institute of Architecture of Application Systems,2008:1-27.

[8]Michiel K.VxBPEL:Supporting variability for web services in BPEL [J].Information and Software Technology,2009,51(2):258-269.

[9]Liu Guoqi,Zhang Wei,Li Dancheng.BPEL based service process configuration in SaaS application [J].Advances in Computer,Communication,Control and Automation Lecture Notes I Electrical Engineering,2012,121:157-164.

[10]Kou Z.A policy-driven approach for software-as-services customization [C]//IEEE Computer Society,CEC-EEE,2007:1-8.

[11]Pietro M,Biplav S.Business driven SOA ustomization [G].LNCS 5364:6th International Conference on Service Oriented Computing.Berlin: Springer Berlin Heidelberg,2008:286-301.

[12]LIAO Chunfeng,CHEN Kung,CHEN Jiujye.Toward a tenant-aware query rewriting engine for universal table schemamapping [C]//IEEE 4th International Conference on Cloud Computing Technology and Science,2012:833-838.

[13]Kong Lanju,LI Qingzhong.A novel model supporting customization sharing in SaaS applications [C]//International Conference on Multimedia Information Networking and Security,2010:255-259.

[14]CHEN We,SHEN Beijun.Template-based business logic customiation for SaaS appplications [C]//IEEE International Conference on Progress in Informatics and Computing,2010:584-588.

[15]WANG Hua,ZHENG Zhijun.Software architecture driven configurability of multi-tenant SaaS application [G].Lecture Notes in Computer Science 6318:Web Information Systems and Mining,2010:418-424.

[16]Chong F,Carraro G,Wolter R.Multi-tenant data architecture.MSDN library,Microsoft cororation [M/OL].http://msdn.microsoft.com/en-us/library/aa479086.aspx,2006.

[17]WU Shengqi,ZHANG Shidong.A dyncamic data storage architecture for SaaS [C]//International Conference on Multimedia Information Networking and Security,2010:292-296.

[18]ZHENG Xuxu,LI Qingzhong.A data storage architecture supporting multi-level customizaqtion for SaaS [C]//Web Information Systems and Applications Conference,2010:106-109.

猜你喜欢

表单租户字段
图书馆中文图书编目外包数据质量控制分析
电子表单系统应用分析
多租户数据隔离及加密研究
基于多租户隔离的云安全建设
基于图表示和匹配的表单定位与提取
浅谈网页制作中表单的教学
基于MVC模式的多租户portlet应用研究*
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
企业多租户云存储平台的设计与实现