APP下载

基于MDA统一配置的SaaS元模型

2017-09-08虎,熊伟,2

湖北文理学院学报 2017年8期
关键词:租户菜单统一

潘 虎,熊 伟,2

(1.湖北文理学院 数学与计算机科学学院,湖北 襄阳 441053;2.武汉大学 软件工程国家重点实验室,湖北 武汉 430072)

基于MDA统一配置的SaaS元模型

潘 虎1,熊 伟1,2

(1.湖北文理学院 数学与计算机科学学院,湖北 襄阳 441053;2.武汉大学 软件工程国家重点实验室,湖北 武汉 430072)

为了适应用户个性化与多元化的定制需求,基于SaaS的多租户特性建立了一种由MDA统一配置的SaaS元模型,内容包括各种场景下的SaaS配置元模型和统一的用户配置接口. 模型将各种配置场景参数转化为元数据及其关系,让SaaS模型进一步地抽象并统一起来. 设计了相应的原型系统进行规模实验验证. 结果表明:该方法能够对系统进行有效的多租户定制,可以满足用户对SaaS服务的特殊定制需求,降低了服务定制复杂度,适宜应用到大型SaaS系统中.

SaaS;多租户;个性化定制;MDA

要在竞争中获胜,企业必须保证业务的敏捷性,尽可能降低系统的服务代价[1-3]. 随着云计算技术的发展和面向服务架构(SOA)技术的日渐成熟,SaaS模式使用外包方法降低了租户费用(冷启动具有较低代价,对市场反应具有敏捷性),赢得了多数企业的支持. SaaS模式的一个典型特征是“单实例多租赁”,对于每个租户来说,实例像是只为自己工作. 通过给大量租户供应服务能够实现规模化定制. 这种统一的软件服务方式通过按需定制,可以让具有不同服务要求的租户基于单实例构建定制流程和服务. 其中流程逻辑可以虚拟化并可以重用. 另外现存的大批不同性质的服务也应使用统一架构整合起来.

SaaS模式的服务定制过程在界面、流程、服务、数据等层次上比以往的服务定制模式都复杂,租户的服务定制行为必须遵从这些层次间的大量依附和约束关系.

本文的第1节回顾了与本文相关的研究工作;第2节提出了各种场景下SaaS配置元模型;第3节提出了支持统一的用户配置接口架构,通过实验对本文提出的方法进行了评估;最后展示了未来的研究方向.

1 相关研究及本文贡献

传统模式的业务流程定制是针对服务组合、形式化验证与流程演进等进行研究. SaaS模式下的服务定制研究刚起步,很多问题(包括安全策略、构造方法、定制方法、可扩展性等)才开始研究[4-7]. 文献[8]中的复杂业务流定制框架将业务流程执行语言(BPEL)规范引入了SaaS业务流程定制,它独立于BPEL引擎与Web服务,支持流程逻辑验证,依照租户提出的规则实现自适应. 文献[9]提出了一种基于TLA的模型定制方法,主要关注对象是如何实现验证. 文献[10]中先设计了层次化定制框架(能够描述流程、服务、数据等层次的定制活动及其之间的依赖关系并进行相应验证,为提高定制效率,该框架还提供了推荐机制). 上述方法都将流程定制作为目标,并且对流程间的依赖规则进行验证,确保了流程定制的正确性. 但是,流程定制仅仅是SaaS服务定制中的一种,在动态多变的网络环境中,需要满足更多用户个性化的定制需求.

目前SaaS模型在“多租户”特征下已支持功能、流程和界面的可配置,但缺乏将上述配置数据统一起来的办法. 本文设计了一个MDA(Model Driven Architecture)驱动的统一配置SaaS元模型与相应体系结构. 将各种配置场景的参数转化为元数据及其关系,使SaaS模型更进一步地抽象并统一起来. 然后使用了4个支持SaaS的开源项目进行实验,验证了本文方法的有效性.

2 各种场景下的SaaS配置元模型

2.1 研究场景

本文假定某项目组开发一个在线客户管理系统(CRM)平台. 考虑以下几个场景:场景A:根据项目时间需求的紧迫性和现有技术储备,采用面向对象方法,利用“Struts+Spring+Hibernate”开源框架进行开发,项目顺利上线,由于采用了成熟技术,系统稳定可靠. 场景B:经过一段时间的业务发展,公司接手了若干类似项目,在原有系统的基础上为这些项目定制开发多个系统,系统版本分支逐渐增多,公司需要响应多个项目的需求变更,版本管理越来越复杂. 公司通过抽象提取现有项目的共性需求,将原有项目转型为支持功能可配置的产品. 场景C:又经历了一些时日,公司需要支持的可配置能力变得更多起来,除了功能可配置,还希望支持流程、界面和数据的可配置. 为了维护方便,引入了SaaS的多租户思想,以实现用户深度定制. 另外,对于原有功能模块进行重构并服务化,便于系统的复用、对外开放OpenAPI以及支持第三方开发.

2.2 配置扩展数据

为了适应实际业务个性化定制对于自定义扩展字段的需求,关系模式表可以用key/value方式转化来实现可扩展性. 如图1如示,可以为SaaS系统提供灵活的数据扩展.

图1 扩展数据元模型 图2 功能包元模型

2.3 配置功能

为提供规模化定制服务,SaaS需要支持功能的可配置性.

图3 界面元模型

1)SaaS服务的碎片化.是功能配置实现的基础,可以从两个方面入手:第一是原子功能的划分. 资源分解遵循原则是每个功能自有价值,并具有原子性(功能不重叠且不能形成依赖环). 功能的并集要完整覆盖系统功能,功能划分最好由价值驱动. 第二是功能描述和功能关系. 功能描述包括对功能名称、关键字、内容、以及所依赖的功能列表的描述. 每个原子功能在系统内要求具有唯一关键字,实现功能引用和校验. 2)针对租户的特殊要求设计功能包.实时构建满足需求的服务组合需要很高代价, 可以在线下根据用户类型和场景聚类原子功能并打包,用户可根据需要在功能包中选择. 但是,由于原子功能具有依赖性,必须遵循高内聚、低耦合的原则. 3)功能验证.包括功能验证和互操作验证,系统根据租户定制的配置,递归查找其包含的功能包,并据此进行相关验证. 功能包元模型如图2所示.

2.4 配置界面

SaaS服务需要规模化自定制界面,用于配置系统菜单和页面内容.

1)系统菜单配置. 出于个性化需要,不同租户对于相同功能的菜单可能使用不同标示,对于菜单结构和分布可能会有不同要求.租户可以定制唯一菜单,其中各个菜单项关联一项原子功能. 菜单采用树状结构,同级菜单项为顺序排列. 2)页面内容配置. 租户对界面都会提出特殊需求,包括页面上元素的数量、顺序、位置、含义,还需要支持数据可扩展性. 页面内容的实现一般比较复杂,多采用标签语言来描述. 界面元模型如图3所示.

2.5 配置流程

通过改造工作流系统可以在支持多租户的基础上实现流程的可配置. 为方便性考虑,系统通过提供公用流程模板,租户可以复制该模板并根据自身需要修改,设计出符合要求的工作流程. 另外,由于租户流程是私有的,其他租户应该不可见,因此要确保租户间的数据隔离. 流程元模型如图4所示.

图4 流程元模型

图5 配置数据元模型

图6 配置数据元模型用例

2.6 配置数据管理

一个完整的SaaS应用有很多配置需要. 如果配置达到原子功能,系统业务逻辑的实现会过于复杂,用户体验也差,实现系统可配置的成本较高. 根据MDA核心思想,基于模型所在领域提取一个相对核心的领域模型. 经过抽象发现在系统的各种配置场景下(数据扩展、功能、界面、流程可配置等),表面上配置参数各不相同,实际上仍然存在很多共性. 如果采用Key/value方案,各种配置场景的实现完全一样. 因此,可以实现统一的接口,简化实现系统可配置性的复杂度,同时保证统一的配置规划和管理风格. 配置数据元模型如图5所示.

图5中配置元数据间的关系为包含关系、依赖关系和关联关系. ConfigType表示类别. 类别包括表、原子功能、功能包、菜单、页面、页面元素、流程等,每个类别对应一个处理类,负责处理相应配置元数据. ConfigMeta表示可共享属性. MetaProperty表示私有属性. 以CRM为例,如图6所示,其中箭头表示关联. 配置元数据与系统设计紧密关联,必须根据系统的规划设计确定可配置点,才能定义出配置元数据内容.

2.7 租户配置数据

租户配置数据即租户定制配置信息,包括自定义菜单、自定义界面元素、自定义流程、数据表扩展字段、租户购买包等. 由系统管理员设置租户购买包,其他信息均由租户管理员配置. 租户元模型如图7所示.

3 可配置系统架构及实验验证

在一套统一的租户配置接口下,管理员可以轻松设置和修改相应配置以适应各种场景,为用户提供更好的服务. 运行结构如图8所示. 可以通过界面元模型实现系统菜单定制与页面定制,通过扩展数据元模型实现扩展数据引擎并提供对于扩展数据的查询、使用、提交和检查等支持,通过功能包元模型实现功能引擎(根据租户定制的功能包找到所有原子功能集合),更进一步通过结合租约与流程实现配置数据和工作流引擎的融合.

图7 租户元模型 图8 可配置系统的运行结构

基于统一配置的SaaS元模型开发出了相应的原型系统. 为评估此方法,实验采用如下配置环境:1)该集群包括8个节点,每个节点有64位8核CPU和16GB RAM;2)所有节点都用CentOS 6.2和Java 1.6.022;3)开发工具包括Java 5,工作流引擎Yawl版本为2.3,数据库采用MySQL 5.1,使用Mule ESB 2.2.1作为服务总线,有效地串联起各个模块. 为了比较本方法的用户满意度,使用了4个支持SaaS的开源项目(SugarCRM、GladCRM、vTigerCRM、CloudCRM)进行验证,编号为CRM 1、CRM 2、CRM 3、CRM 4. 课题组中的4个成员(编号为U1、U2、U3、U4)对4个开源项目都很熟悉,阅读过它们的源码,熟悉项目架构,规定运用“优、良、中、差”四级评断标准对4个开源项目的用户满意度分别给出贡献等级,未使用本方法的情况为M1,使用了为M2. 最后汇总如表1所示.

通过比较在租户数量不同时,使用与未使用以上方法的平均响应时间,进一步检验以上方法在租户规模化定制下的性能. 结果如图9所示.

图9 多租户下定制性能

表1 用户满意度比较

从图9中可以看出,使用统一配置方法优于未使用统一配置方法. 并且随着定制规模的扩大,定制所需要的响应时间会逐渐增加,但变化幅度较小,便于将其运用到大型系统中.

此项研究提出了一种基于MDA统一配置的SaaS元模型及其系统架构,包括配置扩展数据,功能配置过程,系统菜单和页面内容配置,配置工作流程,配置数据管理和租户配置数据. 经过实验验证了基于以上元模型构建的原型系统,满足用户对于SaaS服务的特殊定制需求. 通过采用统一配置方法,能有效降低服务定制复杂度,验证了它适用于大型系统中. 下一步研究将继续深入探讨SaaS服务的交互行为特性,从多层次分析交互行为产生的涌现行为及其调控机理.

[1] KANG S,MYUNG J,YEON J,et a1. A general maturity model and reference architecture for SaaS service [J].Lecture Notes in Computer Science,2010,5982(2):337-346.

[2] JACOBS D. Enterprise software as service [J].ACM Queue. 2005,3(6):36-42.

[3] JACOBS D,AULBACH S. Ruminations on multi-tenant databases [J].BTW,2007(103):514-521.

[4] FREDERICK C,GIANPAOLO C,ROGER W. Multi-Tenant Data Architecture[R].Microsoft Corporation,2006:36-45.

[5] AULBACH S,GRUST T,JACOBS D,et a1. Multi-Tenant Databases for Software as a Service:Proceedings of SIGMOD’08 [C].ACM,2008,25(7):1195-1206.

[6] AULBACH S,JACOBS D,KEMPER A,et a1. A Comparison of Flexible Schemas for Software as a Service:Proceedings of SIGMOD’09 [C].ACM,2009:881-888.

[7] FRANCLIN S F,IOANNIS M. D,JOHN F S I. A New Hybrid Schema-Sharing Technique for Multitenant Applications:Proceedings of ICDIM 2009[C].IEEE,2009:1-6.

[8] YULIANG S,SHUAI L,QINGZHONG L,et a1. A flexible business process customization framework for SaaS:Proceedings of ICIE 2009[C].IEEE,2009,2(6):350-353.

[9] LUAN S,SHI Y,WANG H. A mechanism of modeling and verification for SaaS customization based on TLA[J].Lecture Notes in Computer Science,2009(5854):337-344.

[10] SHI Y L,LUAN S,LI Q Z,et a1. TLA based customization and verification mechanism of business process for SaaS[J].Chinese Journal of Computers,2010,33(11):2055-2067.

(责任编辑:陈 丹)

A SaaS Meta Model of Unified Configuration Based on MDA

PAN Hu1, XIONG Wei1,2

(1.College of Mathematical and Computer Sciences, Hubei University of Arts and Science, Xiangyang 441053, China; 2.State Key Lab of Software Engineering, Wuhan University, Wuhan 430072, China)

This paper establishs a SaaS meta model of unified configuration based on MDA (Model Driven Architecture) according to multi-tenancy features, in order to meet the requirements of personalized customization for SaaS tenants. The content includes SaaS configuration meta model and unified user configuration interface in various scenarios. The model translates parameters of various deployment scenarios into metadata and its relationship,making the SaaS model more abstract and unified. To validate our approach, large-scale experiments are conducted based on a developed prototype system. The results show that the architecture can customize service effectively in a multi-tenant environment, meeting the user’s special customization demand for SaaS services, reducing the complexity of service customization, suitable for application to large scale systems.

SaaS; multi-tenant; personalized customization; MDA

2016-07-04;

2016-11-20

国家自然科学基金项目(61172084)

潘 虎(1975— ),男,湖北襄阳人,湖北文理学院数学与计算机科学学院讲师.

TP311.5

A

2095-4476(2017)08-0010-05

猜你喜欢

租户菜单统一
坚持严管和厚爱相统一的着力点
碑和帖的统一,心和形的统一,人和艺的统一
中国新年菜单
统一数量再比较
本月菜单
基于MVC模式的多租户portlet应用研究*
租户是大爷
企业多租户云存储平台的设计与实现
SaaS模式下多租户数据比较存储模式研究
坚持“四纳入” 实施“四统一”