蒋赞
摘要:结合SaaS环境的实际需求,在分析表单定制技术的基础上,提出基于SaaS环境的动态表单解决方案。该方案以表单动态定制和流程定制为核心,建立了以SaaS为载体的动态表单体系架构,基于JSON实现了表单、列表和视图的动态可定制及功能扩展。同时,实现了对流程的定制,租户可以快速定制满足个性化需求的业务模块。通过在西安中服软件有限公司SaaS环境中的应用,验证了该定制技术的有效性。
关键词:SaaS;动态表单;表单定制;流程定制
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2015)003-0021-03
0 引言
表单在各行各业业务流程中扮演着非常重要的角色,是业务流程中的纽带和信息承载体[1]。而表单需求会随着业务变动不断变化,主要体现在:①表单数据的不确定性,表现为表单的名称、表单中的字段名称、字段类型以及字段数量等;②表单的新增与删除等。由于表单需求的易变动性,要满足用户业务发展的需要,必须经常对原来系统的数据结构及功能进行升级,从而导致软件开发成本的增加,加重了软件文档管理负担。为让开发人员将注意力集中到业务流程上,可以让系统操作人员参与表单管理,因此研究表单的动态可定制性尤为必要。
当前,国内虽然实现了表单定制的部分功能,但定制灵活性和对复杂表单的支持并不尽如人意,而且表单定制工具的开发成本和维护费用比较高、升级维护也较困难。随着云计算技术和SaaS[2]应用的发展,现有研究在多租户数据结构存储技术[3,4]、用户个性化定制技术[5,6]等方面取得了一定成果,而对基于多租户的动态表单的研究很少。
SaaS环境下的动态表单的最大特点是多租户[7,8]。企业租户类型的多样性、地理位置的分布性以及业务需求的差异性等特点,使得SaaS应用在设计和开发上需采用基于模块化的可动态扩展的体系结构,支持租户业务需求的动态变更;在运行和部署上需要基于Internet环境,支持租户以协作的方式定制和租用平台功能。多租户对定制有较高的要求,具体表现在以下几个方面:
(1)不同租户需要不同的定制界面。SaaS平台上参与的租户较多,各租户的经营种类、经营方式不同,需要定制不同的界面。
(2)同一租户下不同类别的界面所展示的内容不同。
(3)不同的租户要求的界面风格、界面肤色等不同。
综上所述,基于SaaS环境的动态表单实际上是一个以SaaS环境为核心,面向多租户、多界面的表单定制,能根据租户和系统类型的变化进行动态定制。本文在现有研究成果基础上,提出了基于SaaS环境的动态表单定制模型,此模型能实现简单而强大的B/S应用快速开发,且嵌入了流程引擎,能灵活应对业务需求。本文动态单可实现如下功能:①对多租户的良好支持;②插件化特性,良好的功能扩展性;③拖拽化设计,无代码的简单快速开发;④对流程的良好支持,轻松定制流程类应用。
1 SaaS环境分析
SaaS环境是动态表单运行的核心,动态表单的所有功能都建立在SaaS环境基础之上,也是整个系统的访问入口。SaaS环境包括租户管理、用户管理、模块管理、系统管理等功能。SaaS环境功能如图1所示。
SaaS环境可以记录所有的用户信息和系统信息,根据用户不同显示不同的系统入口,将不同的租户进行隔离,从而实现SaaS的多租户的需求。并且给每一个系统分配一个单独的数据库,从而保证系统数据的安全性。
平台注册用户即租户可以根据需求从模块池选择模块,通过模块动态组装来创建特定的系统,或者直接根据系统模版创建系统。租户需要根据所选择的业务模块来支付租金。系统订购及开通流程如图2所示。
2 基于SaaS环境的动态表单技术
2.1 动态表单体系架构
基于SaaS环境的动态表单体系架构旨在建立一个基于平台的动态表单定制的软件环境,租户通过租用动态表单来开发业务模块。设计架构时,需注意以下问题:
(1)SaaS模式是一种可配置即自定制的方式,架构必须具有良好的扩展性,支持企业租户和业务系统扩展。
(2)架构必须支持租户业务的柔性特征,能够支持租户需求的不断变化。
(3)架构支持各业务系统,即插即用机制,能够保障各业务系统变化的独立性及与平台的松耦合性。
基于OSGI技术,动态表单被固化成一个功能模块放入模块池,作为开发工具被租户租用。基于SaaS环境的表单定制体系架构如图3所示。
该体系框架具有以下特点:①支持用户在线租赁,用户只需通过在线注册,就能使用动态表单的服务功能;②支持表单柔性定制,用户可以根据自己的需求灵活地定制出满足用户的表单,包括定制表的名称、表单中的字段名称、字段类型以及字段数量等;③支持表单动态修改,用户可以对已成功定制的表单进行相应的修改操作(修改表单的名称、删除表单中的字段、修改表单中字段的基本信息等);④支持表单个性化配置,用户可以配置表单展示界面上需要的表单字段,以及这些表单字段在界面上的展示顺序;⑤支持列表柔性定制,用户可以根据自己的需求定制列表展示字段;⑥支持列表查询定制,用户可以根据自己的需要定制查询字段以及查询字段的类型;⑦支持列表动作定制,用户可以根据自己的需要定制列表的动作,比如增、删、改、查及页面跳转;⑧支持视图柔性定制,用户可以根据需求配置表单、列表、流程启动等元素在视图上的属性及展示顺序;⑨支持Web开发,将开发的流程与视图结合。
2.2 动态表单实现
只有租用了动态表单的租户才能使用动态表单的功能,使用权限通过平台的权限管理进行控制。在动态表单中,不管是表单、列表,还是视图,都采用可视化的拖拽式设计,真正做到无代码快速开发。在设计思想上,将表单、列表和视图的结构进行合理划分,并抽象成容器对象,通过实例化容器对象,并有效组合这些对象,确定并存储它们之间的逻辑关系。同时使用解析引擎解析这些逻辑,最终显示出来。动态表单是基于JSON的数据结构,通过各种手段将租户填写的数据录入到JSON数据结构中,或者将JSON中的数据动态表示出来。
基于SaaS环境的动态表单可以被租户租用,用来自定义开发业务模块。动态表单主要实现了表单的定制、列表的定制、视图的定制,并能结合流程引擎实现流程业务的定制。具体表单定制流程如图4所示。
(1)租户提交身份验证数据,登录平台。
(2)平台验证租户是否为合法用户,如是,则转到步骤(3);否则,返回给租户登录失败信息。
(3)进入租户的可用系统列表,若已租用了动态表单,则转到步骤(4);否则,租户可选择创建动态表单系统,或其它操作。
(4)租户首先要创建一个新应用,选择进入表单定制、列表定制或者视图定制;若要修改应用内容,则转到步骤(5)。
(5)进入设计器,设计需要的表单、列表和视图,将表单、列表或视图数据转换成JSON格式的数据,并在各自的table中保存,table中保存的是最近一次修改的数据,旧数据会被覆盖。
(6)将定制好的应用发布,即可启动应用,进行业务操作。
对于列表来说,首先要将列表与某个表单绑定,然后将表单中的所有字段抽取出来,将需要在列表中展示的字段选取出来,然后可以配置查询条件和动作。
对于流程应用的定制,首先创建应用、表单;然后进入流程Web建模界面,创建此应用下的流程实例,并配置全
局变量、活动表单和参与者等相关信息;最后,返回导航设
计器,配置runProcess的流程属性。这样,在启动应用后,
就可以通过runProcess来发起一条特定流程。表单中添
加的每个字段都有一个workflow属性,通过这个属性可将字段值传送给流程中的全局变量,控制流程走向。
3 结语
本文研究了基于SaaS环境的动态表单定制技术,主要实现了表单、列表、视图的动态可定制;实现了功能元素的插件化,具有良好的扩展性;实现了动态表单与流程的结合,能让租户实现无代码的个性化快速开发,能满足租户对流程类应用和非流程类应用的定制需求。目前,表单技术已经被应用到西安中服软件有限公司PaaS平台中。
参考文献:
[1] 李厚福,韩燕波,虎嵩林,等.一种面向服务、事件驱动的企业应用动态联盟构造方法[J].计算机学报,2005,28(4):739- 749.
[2] WOOLLEN R. The internal design of salesforce.com's multi-tenant architecture[C]. In: Proceedings of the 1st ACM symposium on Cloud computing. Indianapolis, USA, 2010: 161-161.
[3] AULBACH S, JACOBS D, KEMPER A, SEIBOLD M. A comparison of flexible schemas for software as a service[C]. In: Proceedings of the 35th SIGMOD international conference on management of data. Zurich, Switzerland, 2009: 1021-1024.
[4] LEI QIU, YONGQING ZHENG, YULIANG SHI.CET:clustering extension table research in multi-tenant database for SaaS applications[C].Third International Conference on Information Science and Technology,2013 : 23-28.
[5] 张一川,张斌,刘莹.支持多租约个性化业务定制的SaaS业务——租约模型[J].东北大学学报:自然科学版,2012,33(5):636-640.
[6] 史玉民,染帅,李庆忠,等.基于TLA的SaaS业务流程定制及验证机制研究[J].计算机学报,2010,33(11):2055-2067.
[7] 徐栋,顾春华. SaaS 数据层的多租户设计模式研究[J]. 计算机应用与软件,2013,30(5):.216-219.
[8] LI HENG, YANG DAN, ZHANG XIAOHONG. Survey on multi-tenant data architecture for SaaS[J]. IJCSI International Journal of Computer Science Issues, 2012, 9(3):198-203.
(责任编辑:陈福时)