基于Paas模式下多租户感知BPEL引擎的研究

时间:2022-03-17 07:55:33

基于Paas模式下多租户感知BPEL引擎的研究

摘要:多租户感知工作流程引擎(Multi-Tenant Aware Workflow Engine)是针对目前工作流程引擎系统缺少租户对业务流程的灵活、动态的配置,导致企业信息系统间业务流程的缺乏可重复性使用的现状,提出了基于PaaS模式下多租户感知流程引擎的概念和模型,同时对多租户感知流程引擎的实现提出了总体要求,功能性要求以及非功能性要求,并通过对Orchestra流程引擎的扩展和延伸实现了多租户感知流程引擎的原型。

关键词:云计算;多租户感知;工作流程引擎;PaaS;BPEL;Workflow Engine;BPaaS; Multiple Instance Multi-Tenancy

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)36-8241-03

工作流程引擎是当前企业信息化平台中重要的组成部分,并在办公自动化、企业间的协同工作、工业制造等领域得到了广泛的应用,BPEL是一种基于XML用来组织Web服务(Web Service)的编程语言,BPEL工作流程引擎能执行BPEL流程,随着SOA的发展,云计算的逐步成熟,为了减少Web服务(Web Service)的重复开发,提升Web服务利用的有效性,云平台运营商要求对Web服务能实现定制化配置,以满足不同租户定制化的要求。

为了使工作流程引擎能处理Web服务定制配置的要求,使不同的租户对同一流程实现不同配置的流程实例(Instance),提高流程的可重复性使用,满足不同租户的业务要求,该文提出了多租户感知(Multi-Tenant Aware)工作流程引擎的概念,并基于PaaS模式下,对开源Orchestra工作流程引擎进行扩展和延伸,使Orchestra能够支持多租户感知的工作流程引擎,并支持租户配置的Web 服务(Web Service),满足业务流程作为服务(BPaaS,Business Process as a Service)的要求,实现工作流程引擎在云计算平台的可伸缩性(Elastic)的部署要求。

1 基本概念说明与描述

为了更好的理解本文,将文中的一些专业术语进行解释说明:

1)租户(Tenants):代表一个公司或部门,其租用了云计算平台中的资源并服务自己的用户(Users)。

2)用户(Users):租户(Tenants)所服务的对象。

3)业务流程即服务(Business Process as a Service):简称BPaaS,除 IaaS、Paas、SaaS模式外云计算研究领域的另一模式平台。

4)单实例多租户模型(Single Instance Muti-Tenancy):指所有的租户分享一个应用实例,但每个租户在系统中建立租户独立的环境资源及相关的配置。

5)多实例多租户模型(Multiple Instance Multi-Tenancy):指所有的租户建立了自己独立的应用实例,只有将硬件和操作系统环境作为共享资源。

2 BPaaS成熟度模型

BPaaS系统提供商为企业信息化流程提供所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,实现企业各个信息系统间或者企业间的信息系统协同工作[1],同时BPaaS平台主要基于SOA技术为企业的各个信息系统间提供的数据交换的平台。

根据多租户对业务流程平台的可配置性、高性能、伸缩性的要求,可以将多租户在业务流程平台的流程实例分为四个级别[5]:

级别1:定制开发的架构

每个租户的应用流程实例都有自己的代码,不支持可配置,不支持高性能,不支持可伸缩。

级别2:可配置的架构

每个租户的应用流程实例可以通过租户对流程的不同配置实现满足个性化的需求。

级别3:多租户单实例的架构

通过对应用流程的个性化配置,实现所有租户共用一个应用流程实例,发挥软件的规模效应。

级别4:可伸缩的租户的架构

实现多租户多流程实例的架构,并且在流程实例与用户之间,通过中间件实现均衡负载,满足云计算平台可伸缩性要求。

BPaaS软件的四级成熟度特性的比较如表1所示。

本项目研究的多租户感知流程引擎平台要达到级别4的要求,即平台要求对流程实现可配置,要求多租户支持多流程实例,并对系统实现均衡负载的要求。

3 Orchestra 工作流程引擎的介绍

Orchestra 工作流程引擎是开源的BPEL 工作流程引擎,该引擎基于OASIS的WS-BPEL 2.0的标准,同时支持BPMN2.0的用户可视化设计[3],详细的系统架构如图1所示。

图1 Orchestra 的系统架构[3]

在本文中主要涉及修改扩展的组件为Invoker组件 以及Web Service组件:Invoker 组件主要解析租户的对Web服务的配置,并根据对应的配置要求调用Web服务;Web Service 组件主要解析Web服务中消息的内容,该功能主要通过Apache CXF 的解析器来实现[2]。

4 多感知流程引擎的模型

为了使多感知流程引擎能达到级别4的要求,本章节将对Orchestra进行修改扩展,多感知流程引擎的模型如图2所示。

多租户感知流程引擎模型主要由三部分组成:

1)租户及用户

租户可以根据服务标准对用户分组,为用户配置具体的工作流程,以实现不同的计费标准。

2)业务流程引擎

业务流程引擎要达到级别4的要求,即流程引擎能实现对流程的可配置,支持多租户多流程实例,并对系统实现均衡负载的要求。

要实现以上目标要满足以下条件:

①每个租户发起的流程实例是隔绝的。即除了操作系统及硬件可以共享外,各流程实例及流程实例中的数据具有独立的数据存储空间。

②每个流程实例可以被租户或者用户动态修改。即每个流程根据具体的业务要求,可以动态修改与客户互动的内容,比如发给客户的信息内容,安全机制,租用费用等[1]。

③支持大量用户的并发。流程引擎需要能支持群组动态扩展,单一台服务器超过负载时,通过负载均衡机制启动一台新的服务器,以实现云计算中的可伸缩性的特征。

3)数据库。数据库存放的内容有:① 供租户使用的由流程专家开发的业务流程。② 各业务流程实例隔绝的独立数据。

图2 多租户感知流程引擎模型

5 多租户感知流程引擎实现的要求

本章节主要对多租户感知流程引擎的实现从总体要求,功能要求及非功能要求三个方面进行说明:

5.1 总体要求

根据[6]对工作流程引擎的要求描述:

1)验证租户行为:工作流程引擎要能检测,当前工作流程的状态是否能满足租户的操作行为。

2)验证租户权限:工作流程引擎要能检测,当前的用户是否有权限支持执行该操作。

3)满足以上两个条件后,工作流程引擎将执行操作后的流程实例状态保存到数据库中,并且将操作结果返回给工作流程引擎。

5.2 功能要求

从功能角度,多租户感知流程引擎还需满足以下功能:

1)工作流程引擎能从租户发来消息中提取租户上下文(TenantContext)的内容,并将上下文内容存储到系统变量中或者数据库中,实现工作流程引擎对租户的感知。

2)流程实例能理解并运用租户上下文实现业务流程的个性化配置。

3)SOAP消息的头文件能添加租户上下文中的参数变量,以便工作流程引擎在调用服务时,对服务实例进行个性化配置,同时也能通过TenantContextID来确认服务实例所属的流程实例。

4)工作流程引擎对流程实例、每个流程所所需的数据以及实例的运行进行独立的隔离。从用户的角度看,各个流程好像单独运行在单用户的工作流程环境中[4]。

5.3 非功能性要求

从非功能的角度,多租户感知流程引擎还需要满足以下要求:

1)具有扩展性:多租户感知流程引擎的架构要求具有扩展性,可以通过修改已有模块的代码或者添加新的模块功能。

2)已有流程的可重复性使用:多租户感知流程引擎要支持已有的流程对不同租户的重复性使用,以减少流程重新设计开发的时间。

3)具有兼容性:多租户感知流程引擎既要支持多租户感知流程,也要支持原来的非多租户流程。

6 多租户感知流程引擎的实现设计的描述

本节主要根据对多租户流程引擎的要求多租户流程引擎。其整体工作原理如图3所示。首先介绍一下租户上下文(TenantContext),TenantContext是租户SOAP消息中的一个信息块,主要描述租户及用户配置信息,它的结构如图4所示。

图3 多租户感知系统的工作原理 图4 租户上下文结构图

每个租户都有自己唯一的TenantIdentifier(TID),租户通过SOAP消息将租户上下文发送给多租户感知流程引擎,流程引擎将提取租户上下文的消息,并存放在数据库中,同时启动一个流程实例,在流程执行过程中,将租户上下文中的内容通过SOAP消息随着Orchestra中的Invoker调用Web服务时,发送给Web服务,被调用的Web服务将根据租户及用户的配置要求为客户提供定制化服务。

7 结论与展望

本文提出的多租户感知流程引擎模型主要为了实现云计算平台中流程引擎的部署,使租户使用流程时按需配置,按需付费,减少企业为了搭建业务流程环境所需要的基础设施及专业人员费用的支出,同时实现了各个租户流程实例的数据的独立隔绝,提高了数据隐私保护,在将来的工作中,为了实现多租户感知系统平台,还需要升级Orchestra中的ESB模块,使ESB模块成为多租户感知企业业务总线(Multi-Tenant Aware Enterpreise Service Bus),为企业内部及企业间提供统一企业服务总线,来提升企业信息系统间的业务通信标准。

参考文献:

[1] 张坤.面向多租户应用的云数据隐私保护机制研究[D].济南:山东大学,2012.

[2] Apache CFX Website. Available online at[DB/OL].http://.

[3] Orchestra Website. Availabel online at[DB/OL]. http://

[4] Julia Schroeter, Peter Mucha, Marcel Muth Kay Jugel, et al. Dynamic Configuration Management of Cloud-based Application[Z].

[5] Kwok T,Nguyen T,Lam L. A Software as a Service with Multi-Tenancy Support for an Electronic Contronic Contract Management Application[C]. IEEE International Conference on Services Computing, 2008.

上一篇:浅谈如何保障苏北运河数据通信网络工程成功割... 下一篇:校园一卡通系统需求分析