admin 管理员组

文章数量: 1086019


2024年4月19日发(作者:jquery 选择器 a 标签)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.2

(22)申请日 2012.12.28

(71)申请人 山东地纬计算机软件有限公司

地址 250101 山东省济南市高新区舜华路软件学院高性能计算中心

(72)发明人 李庆忠 孔兰菊 张世栋

(74)专利代理机构 济南圣达知识产权代理有限公司

代理人 张勇

(51)

G06F9/44

权利要求说明书 说明书 幅图

(10)申请公布号 CN 103077024 A

(43)申请公布日 2013.05.01

(54)发明名称

一种支持SaaS应用流程按需定制

与运行的装置及方法

(57)摘要

本发明公开了一种支持SaaS应用

流程按需定制与运行的装置,包括租户感

知代理模块、流程描述组件、流程数据映

像模块、执行管理器和原始工作流引擎,

所述执行管理器包括流程部署组件、流程

创建组件和流程运行组件。本发明还公开

了一种支持SaaS应用流程按需定制与运行

的方法,支持流程构造与业务服务的松耦

合,开发商只需开发基本业务服务,通过

装置支持租户编排复杂的业务流程,能够

自动获取当前流程信息,实现业务流程的

流程变量存取与驱动;实现了多租户流程

的映像和隔离,支持多个租户共享一个流

程引擎,租户流程互不干扰,充分利用软

件资源。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种支持SaaS应用流程按需定制与运行的装置,其特征是,包括租户感知代理

模块、 流程描述组件、流程数据映像模块、执行管理器和原始

程部署组件、流程创建组件工作流引擎,所述执行管理器包括流

和流程运行组件;

所述租户感知代理模块用于获取当前租户对应的租户上下文信息Context;

所述流程描述组件用于业务流程中流程节点信息、控制结构信息、相关的角色与用

户、

所述流程数据映像模块用于根据租户的Context,将租户相关的流程信息、角色、

用户进

所述执行管理器用于解析用户请求消息,与租户感知代理模块交互获得当前租户的

Context,并调用流程数据映像模块以响应流程的请求,所述

实例的创建与执行;

行标识,实现流程数据的映像和隔离;

流程节点与业务服务映射关系的描述;

流程的请求包括流程部署、流程

所述流程部署组件用于与租户感知代理模块交互获得当前租户的Context,调用流

程数据 映像模块,接收流程数据映像模块合成的、具有租户特

实现流程的隔离; 征的流程描述信息;部署该流程,并

所述流程创建组件用于创建工作流实例,保存租户的Context;

所述流程运行组件用于与租户感知代理模块交互获得当前租户的Context,调用流

程描述 组件,获取流程数据映像模块合成的具有租户特征的流

租户服务;租户服务执行完

程信息,组织流程参数,执行相应的

毕,调用流程描述组件,获取改变的服务资源,回写流程信息;

原始工作流引擎与执行管理器进行交互,完成对应操作。

2.如权利要求1所述的一种支持SaaS应用流程按需定制与运行的装置,其特征是,

所述 工作流实例创建是在业务系统根据当前租户信息获得租户的

数据服务获得工作流接口信息,工

的,如

Context,租户的Context调用元

作流接口信息检查此时满足工作流实例创建的条件时创建

果满足则获得流程变量读取规则,并创建工作流实例,作为流程数据映像模块的基

础。

3.如权利要求1所述的一种支持SaaS应用流程按需定制与运行的装置,其特征是,

所述流程描述组件包括工作流定义文件和工作流接口文件;所述工作流定义文件使

jpdl作为流程描述语言,所述工作流接口文件使用xml作为描

述语言;

所述工作流定义文件用于业务流程中流程节点信息、控制结构信息、相关的角色与

用户、

所述工作流接口文件用于工作流在运行时读取相应信息,所述相应信息包括SaaS

应用中 服务的界面、关键服务名、关键操作名以及流程变量读

流程节点与业务服务映射关系的描述;

取规则。

4.如权利要求1所述的一种支持SaaS应用流程按需定制与运行的装置,其特征是,

所述

5.如权利要求1-4任一所述的一种支持SaaS应用流程按需定制与运行的装置所采用

的方

步骤(1):租户感知代理模块根据租户基本信息,访问保存租户信息的数据库,

取得当

步骤(2):流程描述组件的工作流定义文件使用jpdl作为流程描述语言,工作流

接口文 件使用xml作为描述语言;所述工作流接口文件实现

SaaS应用中服务的界面、

前租户对应的租户Context信息;

法,其特征是,具体包括如下步骤:

原始工作流引擎,与执行管理器进行交互,完成对应操作。

工作流在运行时读取相应的信息,包括

关键服务名、关键操作名以及流程变量读取规则;

步骤(3):执行管理器解析用户请求消息,获得当前租户信息,与租户感知代理

模块交 互获得当前租户的Context,并调用流程数据映像模块

使得流程的请求;

步骤(4):流程数据映像模块实现租户流程数据映像模块:将Executive Manager

分析租 户请求得出的流程相关信息用所得的租户Context进行

的流程信息标以唯一ID,处理,根据租户Context,将租户相关

实现流程数据的映像和隔离;

步骤(5):原始工作流引擎与工作流数据库直接进行交互,能完成流程的部署,

流程实

6.如权利要求4所述的一种支持SaaS应用流程按需定制与运行的方法,其特征是,

所述

步骤(3-1):流程部署组件:完成流程部署操作,与租户感知代理模块交互获得

当前租户 Context,调用流程数据映像模块,接收流程数据映像

信息;进而工作流引擎部署

步骤(3)包括如下步骤:

例创建执行操作。

模块合成的、具有租户特征的流程描述

该流程;因为流程为租户特有,所以部署后的工作流实现了隔离;

步骤(3-2):流程创建组件:业务系统根据当前租户信息获得租户Context,根据

租户 Context调用元数据服务获得工作流接口信息,根据工作流接

实例创建的条件,如满足则获得流

作为流

口信息检查此时是否满足工作流

程变量读取规则,并创建工作流实例,保存租户Context,

程数据映像模块的基础;

步骤(3-3):流程运行组件:完成流程运行操作,包括流程实例的创建,流程的

执行;与 租户感知代理模块交互获得当前租户Context,调用流

块合成的具有租户特征的流

程数据映像模块,接收流程数据映像模

程信息,然后调用工作流引擎创建针对该租户的流程实例或者执

行租户请求的任务。

说 明 书

技术领域

本发明涉及SaaS平台运行技术领域,特别是涉及一种支持SaaS应用流程按需定制

与运

背景技术

SaaS(Software-as-a-Service)是基于互联网提供软件服务的软件运行模式。SaaS

运营商 将SaaS应用部署在统一的服务器上,通过租赁的方式,向终

统软件开发和购买方式,SaaS模式免除

维护的支出,终端用

行的装置及方法。

端用户提供软件服务。相比于传

了终端用户的服务器硬件、网络安全设备和软件升级

户只需要根据自身的需求租赁服务,按照租赁的内容和时间支付费用。

SaaS应用通常引入工作流,以支持业务流程的按需定制,提高SaaS应用的适应性。

但 是,在单实例多租赁的SaaS应用环境中,不同租户的业务流程需要

且,不同租户对同一个业务流程有着不同的需求,

断发生变化的,如:流程变

尚无法

隔离运行,互不影响;并

即便是同一个租户,其业务需求往往是不

量初始化,任务执行顺序,任务属性设置等。现有的工作流引擎

支持流程的多租户与按需定制。

Jbpm是业界流行的工作流开发框架,使用嵌入式的工作流开发平台,不需要独立

的工 作流服务器,减少了硬件投入;Jbpm为100%java实现,最大限度的

的支持;Jbpm作为开源工作流框架已经比较成

引擎意识不到租户的存在,

流引擎

实现跨平台,跨数据库

熟,并且易于二次开发与扩展。但是,Jbpm

无法有效的识别多个租户下同名的角色、用户名等,这使得工作

无法按照角色、用户驱动、分发任务;另外,各租户业务流程中的任务及它们的相

互 顺序关系,流程及任务的起止条件以及对每个任务的描述,包括流程

变量的获取及回写都不 尽相同,传统的工作流任务描述与业务服务相绑

求。 定的开发方式难以满足多租户的按需定制需

符合Bpel规范的引擎能够实现业务流程与业务服务开发的松耦合,但是相应的一

些实现 技术(如activebpel等),基于面向服务的技术架构,只支持

型的任务,无法实现人工任务的参与;更

法区分不同租户的流

web服务组合,尚不支持带界面

为重要的是,传统工作流引擎没有租户的概念,无

程,不能实现隔离。

中国专利(申请号:2,专利名称:一种支持SaaS应用生成与部署的

方法 和装置),这篇专利提出了将传统应用部署为SaaS应用的方法和装

生成、发布所面临的问题,但是并未涉及业务流

置,解决目前SaaS软件

程的具体的驱动引擎的创新。

中国专利(申请号:2,专利名称:一种元数据驱动的SaaS应用的可

视化 定制方法及系统),这篇专利提出了多租户业务流程定制的概念,但

统一的、符合业务逻辑、方便的的可视化定制,

制模版,对应用的数据、流

定制操

是该专利只针对如何进行

并为此设计了可视化的定制界面及相应的定

程、界面等多个层次进行统一的定制及验证工作,以方便租户的

作,并利于实现定制类型的扩展。

中国专利(申请号:2,专利名称:一种适应多业务抽象层次的服务化

软件 构造方法和系统),这篇专利提出了多租户的概念,遵照Bpel规范

Bpel规范的约束,依然不能支持带界面型的任

进行服务组合,但是由于

务,无法实现人工任务的参与。

需要发明一种新的多租户环境下的工作流引擎,以支持多租户业务流程的按需定制、

流 程部署和流程执行。

发明内容

本发明的目的就是为了解决上述问题,提供一种支持SaaS应用流程按需定制与运

行的装 置及方法,对业务流程和业务服务进行解耦,支持租户对包含

主编排;编排的流程通过本装置创建并执

人工任务在内的业务逻辑的自

行,满足租户隔离运行及业务快速变更的需求。

为了实现上述目的,本发明采用如下技术方案:

一种支持SaaS应用流程按需定制与运行的装置,包括租户感知代理模块、流程描

述组件、 流程数据映像模块、执行管理器和原始工作流引擎,所述执行

程创建组件和流程运行组件; 管理器包括流程部署组件、流

所述租户感知代理模块用于获取当前租户对应的租户上下文信息Context;

所述流程描述组件用于业务流程中流程节点信息、控制结构信息、相关的角色与用

户、

所述流程描述组件包括工作流定义文件(.文件)和工作流接口文件

(WorkFlow_);所述工作流定义文件使用jpdl作为流程描述

口文件使用xml作为描述语言;

流程节点与业务服务映射关系的描述;

语言,所述工作流接

所述工作流定义文件用于业务流程中流程节点信息、控制结构信息、相关的角色与

用户、

所述工作流接口文件用于工作流在运行时读取流程节点与业务服务映射关系,所述

映射 信息包括SaaS应用中服务的界面、关键服务名、关键操作名以及流

流程节点与业务服务映射关系的描述。

程变量读取规则。

所述流程数据映像模块用于根据租户的Context,将租户相关的流程信息、角色、

用户进

所述执行管理器用于解析用户请求消息,与租户感知代理模块交互获得当前租户的

Context,并调用流程数据映像模块以响应流程的请求,所述流程的

实例的创建与执行;

行标识,实现流程数据的映像和隔离;

请求包括流程部署、流程

所述流程部署组件用于与租户感知代理模块交互获得当前租户的Context,调用流

程数据 映像模块,接收流程数据映像模块合成的、具有租户特征的流

实现流程的隔离; 程描述信息;部署该流程,并

所述流程创建组件用于创建工作流实例,保存租户的Context;所述工作流实例创

建是在 业务系统根据当前租户信息获得租户的Context,租户的

接口信息,工作流接口信息检查此

流程变量读取

Context调用元数据服务获得工作流

时满足工作流实例创建的条件时创建的,如果满足则获得

规则,并创建工作流实例,作为流程数据映像模块的基础;

所述流程运行组件用于与租户感知代理模块交互获得当前租户的Context,调用流

程描述 组件,获取流程数据映像模块合成的具有租户特征的流程信息,

租户服务;租户服务执行完毕,调用流程

组织流程参数,执行相应的

描述组件,获取改变的服务资源,回写流程信息;

所述原始工作流引擎用于接收执行管理器的命令,执行对应的操作。

一种支持SaaS应用流程按需定制与运行的方法,具体包括如下步骤:

步骤(1):租户感知代理模块根据租户基本信息,访问保存租户信息的数据库,

取得当

前租户对应的租户的Context信息;

步骤(2):流程描述组件的工作流定义文件使用jpdl作为流程描述语言,工作流

接口文 件使用xml作为描述语言;所述工作流接口文件实现工作流

SaaS应用中服务的界面、关键服务名、

在运行时读取相应的信息,包括

关键操作名以及流程变量读取规则;

步骤(3):执行管理器(EM)解析用户请求消息,获得当前租户信息,与租户感

知代理 模块交互获得当前租户的Context,并调用流程数据映像模块

程实例的创建与执行); 使得流程的请求(流程部署、流

步骤(4):流程数据映像模块(PDM)实现租户流程数据映像模块:将

Executive Manager 分析租户请求得出的流程相关信息用所得的租户

户相关的流程信息标以唯一Context进行处理,根据租户Context,将租

ID,实现流程数据的映像和隔离;

步骤(5):原始工作流引擎与工作流数据库直接进行交互,能完成流程的部署,

流程实

所述步骤(3)包括如下步骤:

步骤(3-1):流程部署组件:完成流程部署操作,与租户感知代理模块交互获得

当前租户 Context,调用流程数据映像模块,

信息;进而工

例创建执行操作。

接收流程数据映像模块合成的、具有租户特征的流程描述

作流引擎部署该流程;因为流程为租户特有,所以部署后的工作流实现了隔离;

步骤(3-2):流程创建组件:业务系统根据当前租户信息获得租户Context,根据

租户 Context调用元数据服务获得工作流接口信息,根据工作流接口信息

实例创建的条件,如满足则获得流程变量读取规

作为流程数据映像模块的基

检查此时是否满足工作流

则,并创建工作流实例,保存租户Context,

础;

步骤(3-3):流程运行组件:完成流程运行操作,包括流程实例的创建,流程的

执行;与 租户感知代理模块交互获得当前租户Context,调用流程数据

块合成的具有租户特征的流程信息,然后

行租户请求的任务。

映像模块,接收流程数据映像模

调用工作流引擎创建针对该租户的流程实例或者执

本发明的有益效果:

1、支持流程构造与业务服务的松耦合,开发商只需开发基本的业务逻辑,无需关

注流程

2、支持租户编排更加复杂的业务流程,流程任务可以是web服务、Java节点、带

界面

3、租户可按需增加流程、变更或解除流程,快速响应租户业务需求的变更。

4、统一的流程执行管理器,自动获取当前流程信息,驱动SaaS应用业务流程的创

建与

5、流程执行管理器统一获取应用状态,实现业务流程的流程变量存取。

6、流程数据映像模块主动获取并注入当前租户信息,实现多租户流程数据的映像

运行。

的人工任务等,任务相关的流程变量读写规则可以按需定制。

的相关技术。

和隔离。

7、实现了同一个流程引擎为多个租户共享使用,租户流程互不干扰,充分利用软

件资源。

附图说明

图1为一种支持SaaS应用流程按需定制与运行的装置;

其中,201、租户感知代理模块,202、流程描述组件,203、执行管理器,204、流

程数 据映像模块,205、原始工作流引擎,2031、流程部署组件,2032、

程运行组件。

流程创建组件,2033、流

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

如图1所示,一种支持SaaS应用流程按需定制与运行的装置,包括租户感知代理

模块 201、流程描述组件202、流程数据映像模块204、执行管理器203和

所述执行管理器203

原始工作流引擎205,

包括流程部署组件2031、流程创建组件2032和流程运行组件2033。

所述租户感知代理模块201用于获取当前租户对应的租户上下文信息(Context)。

所述流程描述组件202包括工作流定义文件(.文件)和工作流接口文件

(WorkFlow_);所述工作流定义文件使用jpdl作为流程描述

口文件使用xml作为描述语言。其中,工作流

包括SaaS应用中服

语言,所述工作流接

接口文件用于工作流在运行时读取相应的信息,

务的界面、关键服务名、关键操作名以及流程变量读取规则。

所述流程数据映像模块204根据租户Context,将租户相关的流程信息、角色、用

户进行

所述执行管理器203包括流程部署组件2031、流程创建组件2032和流程运行组件

2033; 所述执行管理器203负责解析用户请求消息,与租户感知代理

Context,并调用流程数据映像模块204

行)。

标识,实现流程数据的映像和隔离。

模块201交互获得当前租户的

以响应流程的请求(流程部署、流程实例的创建与执

所述流程部署组件2031,首先与租户感知代理模块201交互获得当前租户Context,

调用 流程数据映像模块204,接收流程数据映像模块204合成的、具有租

然后,部署该流程,并实现流程的隔离。 户特征的流程描述信息;

所述流程创建组件2032,业务系统根据当前租户信息获得租户Context,根据租户

Context 调用元数据服务获得工作流接口信息,根据工作流接口信息检

建的条件,如满足则获得流程变量读取规

程数据映像模块的基

查此时是否满足工作流实例创

则,并创建工作流实例,保存租户Context,作为流

础。

所述流程运行组件2033,首先,与租户感知代理模块201交互获得当前租户

Context,调 用流程描述组件202,获取流程数据映像模块204合成的具有

程参数,执行相应的租户服务;其次,租

变的服务资源,回写

租户特征的流程信息,组织流

户服务执行完毕,调用流程描述组件202,获取改

流程信息。

所述原始工作流引擎205,负责与执行管理器进行交互,完成对应操作。

一种支持SaaS应用流程按需定制与运行的方法,具体包括如下步骤:

步骤(1):租户感知代理模块201根据租户基本信息,访问保存租户信息的数据

库,取

步骤(2):流程描述组件202的工作流定义文件使用jpdl作为流程描述语言,工

作流接 口文件使用xml作为描述语言;所述工作流接口文件实现工

包括SaaS应用中服务的界面、关键服务

得当前租户对应的租户Context信息;

作流在运行时读取相应的信息,

名、关键操作名以及流程变量读取规则;

步骤(3):执行管理器203(EM)解析用户请求消息,获得当前租户信息,与租

户感知 代理模块201交互获得当前租户的Context,并调用流程数据

程部署、流程实例的创建与执行); 映像模块204使得流程的请求(流

步骤(4):流程数据映像模块204(PDM)实现租户流程数据的映像:将

Executive Manager 分析租户请求得出的流程相关信息用所得的租户

户相关的流程信息标以唯一Context进行处理,根据租户Context,将租

ID,实现流程数据的映像和隔离;

步骤(5):原始工作流引擎205与执行管理器进行交互,完成对应操作。

所述步骤(3)包括如下步骤:

步骤(3-1):流程部署组件2031:完成流程部署操作,与租户感知代理模块201

交互获 得当前租户Context,调用流程数据映像模块204,接收流程

租户特征的流程描述信息;进而工作流引

的工作流实现了隔离;

数据映像模块204合成的、具有

擎部署该流程;因为流程为租户特有,所以部署后

步骤(3-2):流程创建组件2032:业务系统根据当前租户信息获得租户Context,

根据租 户Context调用元数据服务获得工作流接口信息,根据工作流

作流实例创建的条件,如满足则获得流程

Context,作为流程数据映

接口信息检查此时是否满足工

变量读取规则,并创建工作流实例,保存租户

像模块的基础;

步骤(3-3):流程运行组件2033:完成流程运行操作,包括流程实例的创建,流

程的执 行;与租户感知代理模块201交互获得当前租户Context,调

流程数据映像模块204合成的具有租户特

户的流程实例或者执

用流程数据映像模块204,接收

征的流程信息,然后调用工作流引擎创建针对该租

行租户请求的任务。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围

的限 制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本

出创造性劳动即可做出的各种修改或变形仍在本

领域技术人员不需要付

发明的保护范围以内。


本文标签: 流程 租户 工作 模块