首页> 中国专利> 并发优化的BPMN组合服务执行引擎及方法

并发优化的BPMN组合服务执行引擎及方法

摘要

本发明提供一种并发优化的BPMN组合服务执行引擎及方法,该并发优化的BPMN组合服务执行引擎包括服务接口模块、任务管理模块、解析执行模块和监控模块,服务接口模块用于根据接收到的报文文件,获得业务流程描述文件和输入参数信息;任务管理模块用于对业务流程描述文件进行分片,生成流程分片文件;解析执行模块包括任务接收单元、流程解析单元、实例执行单元、图元解析单元和自适应单元;监控模块,包括运行时监控单元,用于根据执行结果,对数据库进行访问。本发明提供的并发优化的BPMN组合服务执行引擎及方法,提高了BPMN组合服务执行引擎部署的灵活性和并发能力。

著录项

  • 公开/公告号CN102650953A

    专利类型发明专利

  • 公开/公告日2012-08-29

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201110047642.3

  • 申请日2011-02-28

  • 分类号G06F9/46(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人刘芳

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 07:55:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-16

    未缴年费专利权终止 IPC(主分类):G06F9/46 授权公告日:20140507 终止日期:20170228 申请日:20110228

    专利权的终止

  • 2014-05-07

    授权

    授权

  • 2012-10-17

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20110228

    实质审查的生效

  • 2012-08-29

    公开

    公开

说明书

技术领域

本发明涉及计算机组合服务技术,尤其涉及一种并发优化的BPMN组合 服务执行引擎及方法。

背景技术

随着Internet和网络技术的快速发展,面向服务体系结构SOA等网络化 服务软件模式得到了广泛应用,特别是Web服务作为SOA的最佳实践,极 大的推动了SOA在金融、电信、电子商务等领域的发展。在实际的业务应用 中独立的Web服务功能有限,不可能完成复杂的业务需求,一些多方参与的 复杂业务流程需要集成已存在的Web服务形成更高级服务组合来完成。Web 服务组合作为实现灵活的跨组织应用集成和资源共享的核心技术得到了许多 研究机构的共同关注,成为新兴的研究热点。

组合服务建模和服务的执行,是服务组合生命周期中的两个重要组成部 分。在业务建模阶段,业务分析人员通常使用各种流程建模语言描述业务流 程,进行组合服务建模。目前常见的流程建模语言包括面向设计的语言(如 BPMN、WS-CDL)和面向执行的语言(如BPEL、XPDL)等。业务流程建 模标记(Business Process Modeling Notation,简称BPMN)是由业务流程管理 计划组织(Business Process Management Initiative,简称BPMI)提出的用类 似流程图的形式描述业务流程的标准,目前由对象管理组织(Object Management Group,简称OMG)来维护管理。

可以通过BPMN的建模方式对商业业务流程进行建模并且将其绑定成为 组合服务,通过BPMN的组合服务执行引擎驱动建模产生的业务流程按序执 行,其实质为将业务流程转换为组合服务并驱动其按照建模人员的要求执行。 常见的BPMN组合服务执行方法是将BPMN建模图元转换为XML SCHEMA 文件,通过解析XML文件获得业务流程的执行顺序并且驱动其组合服务的 按序执行,同时在执行过程中需要提供监控端口来不间断地监控业务流程的 执行状况。

在SOA体系中,由于网络环境是松散耦合的,同时也是跨组织跨平台应 用集成的,现有BPMN组合服务执行方法在实际应用中至少存在以下缺陷:

一、引擎部署不够灵活

组合服务执行引擎大多为本地程序或者插件形式,这样就导致其部署可 能会依赖于某种平台并且部署实施相对比较复杂。当组合服务执行引擎包括 多个松耦合模块,例如监控模块,需要考虑多个松耦合模块能否进行自适应 的跨环境部署。

二、并发能力有限

没有考虑并发能力的因素,需要借鉴传统软件应用中的一些并发解决方 法来提高系统的并发能力,同时BPMN组合服务执行方法可能涉及到不同服 务交互的问题,这样的同步调用也有可能导致并发能力的下降。

发明内容

本发明提供一种并发优化的BPMN组合服务执行引擎及方法,以提高 BPMN组合服务执行引擎部署的灵活性和并发能力。

本发明提供一种并发优化的BPMN组合服务执行引擎,包括:

服务接口模块,用于根据接收到的报文文件,获得业务流程描述文件和 输入参数信息,并将所述业务流程描述文件和所述输入参数信息发送;

任务管理模块,用于接收所述服务接口模块发送的所述业务流程描述文 件和所述输入参数信息,对所述业务流程描述文件进行分片,生成流程分片 文件,根据所述流程分片文件和所述输入参数信息生成任务文件,并根据所 述流程分片文件将所述任务文件发送;

解析执行模块,包括任务接收单元、流程解析单元、实例执行单元、图 元解析单元和自适应单元;

所述任务接收单元,用于接收所述任务管理模块发送的所述任务文件;

所述流程解析单元,用于对所述任务接收单元接收的所述任务文件中的 所述流程分片文件进行解析,获得执行顺序,并生成对象模型;

所述实例执行单元,用于按照所述执行顺序,根据所述任务文件中的所 述输入参数信息和所述图元解析单元中存储的解析执行方法,调用线程执行 所述流程解析单元生成的所述对象模型,并产生执行结果;

所述自适应单元,用于判断获知所述任务接收单元中的所述任务文件的 数量小于预设值时,采用Web服务调用方式调用监控模块,并向所述监控模 块发送所述实例执行单元产生的所述执行结果;否则,采用本地进程异步调 用方式调用所述监控模块,并向所述监控模块发送所述执行结果;

监控模块,包括运行时监控单元,所述运行时监控单元用于根据所述执 行结果,对数据库进行访问。

如上所述的并发优化的BPMN组合服务执行引擎,其中,

所述任务接收单元包括任务池,所述任务池用于将多个所述任务文件进 行排序,并根据预设顺序向所述流程解析单元提供所述任务文件。

如上所述的并发优化的BPMN组合服务执行引擎,其中,所述解析执行 模块包括:

线程池,用于为所述实例执行单元分配空闲线程。

如上所述的并发优化的BPMN组合服务执行引擎,其中,所述监控模块 还包括:

数据库连接池,用于存储所述数据库的链接,并对所述链接进行分配。

如上所述的并发优化的BPMN组合服务执行引擎,其中,所述监控模块 还包括:

所述服务接口模块包括服务接口、报文转换单元和请求单元;

所述报文转换单元用于对所述服务接口接收的所述报文进行转换,以获 得所述业务流程描述文件和所述输入参数信息;

所述请求单元用于将所述业务流程描述文件和所述输入参数信息发送。

如上所述的并发优化的BPMN组合服务执行引擎,其中,所述任务管理 模块包括:

接收单元,用于接收所述服务接口模块发送的所述业务流程描述文件和 所述输入参数信息;

分片单元,用于对所述接收单元接收到的所述业务流程描述文件进行分 片,生成流程分片文件;

任务文件生成单元,用于根据所述流程分片文件和所述输入参数信息生 成任务文件;

流程调度单元,用于根据所述流程分片文件进行流程调度,并将所述任 务文件发送。

本发明提供一种并发优化的BPMN组合服务执行方法,包括:

根据接收到的报文文件,获得业务流程描述文件和输入参数信息;

对所述业务流程描述文件进行分片,生成流程分片文件,根据所述流程 分片文件和所述输入参数信息生成任务文件,并根据所述流程分片文件将所 述任务文件发送;

对接收到的所述任务文件中的所述流程分片文件进行解析,获得执行顺 序,并生成对象模型;

按照所述执行顺序,根据所述任务文件中的所述输入参数信息和所述图 元解析单元中存储的解析执行方法,调用线程执行所述对象模型,并产生执 行结果;

判断获知接收到的所述任务文件的数量小于预设值时,采用Web服务调 用方式调用监控服务,并发送所述执行结果;否则,采用本地进程异步调用 方式调用所述监控服务,并发送所述执行结果;

根据所述执行结果,对数据库进行访问。

如上所述的并发优化的BPMN组合服务执行方法,其中,所述对接收到 的所述任务文件中的所述流程分片文件进行解析,具体为:

按照预设顺序对接收到的所述任务文件中的所述流程分片文件进行解 析。

如上所述的并发优化的BPMN组合服务执行方法,其中,所述调用线程 执行所述对象模型,具体为:

向线程池请求空闲线程,所述线程池根据线程分配状况分配线程,以执 行所述对象模型。

如上所述的并发优化的BPMN组合服务执行方法,其中,所述对数据库 进行访问,具体为:

向数据库连接池请求数据库链接,根据数据库连接池分配的所述数据库 链接对所述数据库进行访问。

由上述技术方案可知,本发明提供的并发优化的BPMN组合服务执行引 擎及方法,可以实现对BPMN组合服务的解析执行,且在进行监控服务调用 时,可以根据不同的业务需求将松耦合的监控模块部署为多个服务,同时也 能够绑定在一起成为一个服务,服务内部使用异步调用的方式保证运行,提 高了BPMN组合服务执行引擎部署的灵活性。而且,当业务需求量大时,通 过采用异步调用方式,提高了BPMN组合服务执行引擎部署的并发能力。

附图说明

图1为发明实施例一提供的并发优化的BPMN组合服务执行引擎结 构示意图;

图2为本发明实施例二提供的并发优化的BPMN组合服务执行引擎 结构示意图;

图3为本发明实施例三提供的并发优化的BPMN组合服务执行方法 流程图。

附图标记:

11-服务接口模块;       12-任务管理模块;   13-解析执行模块;

14-监控模块;           131-任务接收单元;  132-流程解析单元;

133-实例执行单元;      134-图元解析单元;  135-自适应单元;

141-运行时监控单元;    15-数据库;         136-任务池;

137-线程池;            142-数据库连接池;  111-报文转换单元;

112-请求单元;          121-接收单元;      122-分片单元;

123-任务文件生成单元;  124-流程调度单元。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明 的是,在附图或说明书中,相似或相同的元件皆使用相同的附图标记。

实施例一

图1为发明实施例一提供的并发优化的BPMN组合服务执行引擎结构示 意图,如图1所示,该并发优化的BPMN组合服务执行引擎包括服务接口模 块11、任务管理模块12、解析执行模块13和监控模块14。服务接口模块11 用于根据接收到的报文文件,获得业务流程描述文件和输入参数信息,并将 业务流程描述文件和输入参数信息发送。在实际应用中,服务接口模块11首 先接收报文文件,报文文件具体可以为外部的服务请求消息,该服务请求消 息可以为简单对象访问协议(Simple Object Access Protocol,简称SOAP)消 息。业务流程描述文件具体可以为一二级制形式的XLM描述文件,输入参 数信息具体为用户进行Web服务调用时输入的必要的参数信息。任务管理模 块12用于接收服务接口模块11发送的业务流程描述文件和输入参数信息, 对业务流程描述文件进行分片,生成流程分片文件,根据流程分片文件和输 入参数信息生成任务文件,并根据流程分片文件将任务文件发送。具体的, 任务管理模块12按照BPMN规范中的池(pool)进行流程分片,生成流程分 片文件,以实现一个流程分片文件被一个业务实体执行,不同pool的业务实 体能够同时运行,根据流程分片文件找到流程执行的入口。解析执行模块13 包括任务接收单元131、流程解析单元132、实例执行单元133、图元解析单 元134和自适应单元135。任务接收单元131用于接收任务管理模块12发送 的任务文件。流程解析单元132用于对任务接收单元131接收的任务文件中 的流程分片文件进行解析,获得执行顺序,并生成对象模型。具体的,对象 模型可以为java对象模型,流程分片文件中包含多个图元,将流程分片文件 中的图元映射为java对象模型,所获得的java对象模型也为多个。解析获取 执行顺序,就可以按照执行顺序对java对象模型进行执行。实例执行单元133 用于按照执行顺序,根据任务文件中的输入参数信息和图元解析单元134中 存储的解析执行方法,调用线程执行流程解析单元132生成的对象模型,并 产生执行结果。具体的,一个图元对应的对象模型需要通过一个线程来执行, 可以向发送线程请求,以进行线程调用。自适应单元135用于判断获知任务 接收单元131中的任务文件的数量小于预设值时,采用web服务调用方式调 用监控模块14,并向监控模块14发送实例执行单元133产生的执行结果; 否则,采用本地进程异步调用方式调用监控模块14,并向监控模块14发送 执行结果。监控模块14包括运行时监控单元141,运行时监控单元141用于 根据执行结果,对数据库15进行访问。具体的可以根据执行结果对数据库 15进行查询或者存储操作,以监控业务流程的运行情况以及结果信息。

该并发优化的BPMN组合服务执行引擎以web服务的形式部署在web 服务容器中,可以简易地实现远程调用,而不需要本地部署,其工作过程具 体可以为:用户通过Web服务描述语言(Web Services Description Language, 简称)文档找到BPMN组合服务执行引擎的服务调用方式,具体的,该并发 优化的BPMN组合服务执行引擎的服务接口模块11为用户提供服务说明文 件。用户根据WSDL文档说明,构造合适的SOAP消息,并将其发送给服务 接口模块11。服务接口模块11接收到SOAP消息,将其通过报文转换,转 换成为运行层所需的参数信息,即获取业务流程描述文件和输入参数信息。 服务接口模块11具体可以向任务管理模块12发送流程执行请求,任务管理 模块12接收到流程执行请求后,对服务接口模块11获得的流程描述文件 BPMN规范中的pool进行流程分片,生成流程分片文件,根据流程分片文件 和输入参数信息生成任务文件,具体可以将流程分片文件和输入参数信息进 行封装,以形成任务文件,任务文件具体可以为任务内存对象。根据流程分 片文件找到流程执行的入口,将任务文件交给解析执行模块13去解析执行。 解析执行模块13的任务接收单元131接收任务文件,具体的,任务管理模块 12可以先向的任务接收单元131发送业务流程执行请求,任务接收单元131 将接收到的任务文件提供给流程解析单元132,流程解析单元132对任务文 件中的流程分片文件进行解析,将流程分片文件中的图元映射成java对象模 型,并获取执行顺序。实例执行单元133根据执行顺序,请求系统线程对java 对象模型进行执行,具体根据图元解析单元134中存储的解析执行方法来获 取java对象模型的行为语义和属性,据此来执行,并产生执行结果。在解析 执行过程中,每个线程执行完的java对象模型后都会将执行结果传递给监控 模块14,自适应单元135可以根据任务接收单元131中的任务文件的数量, 自适应选择监控模块14的调用方式。自适应单元135判断获知任务接收单元 131中的任务文件的数量小于预设值时,即业务流程的执行请求较少时,采 用web服务调用方式调用监控模块14,并向监控模块14发送实例执行单元 133产生的执行结果;否则,业务流程需要提供高并发能力,采用本地进程 异步调用方式调用监控模块14,并向监控模块14发送执行结果。自适应单 元135还可以通过配置文件进行手动配置。当业务流程执行请求量比较大时, 可以在配置文件的配置项中手动控制调用方式,以提高并发能力。监控模块 14根据执行结果,对数据库15访问,进行数据查询或存储。

本实施例提供的并发优化的BPMN组合服务执行引擎,可以实现对 BPMN组合服务的执行,且通过自适应单元135的设置,可以根据不同的业 务需求将松耦合的监控模块14部署为多个服务,同时也能够绑定在一起成为 一个服务,服务内部使用异步调用的方式保证运行,基于这样的环境进行软 件的发布、发现、绑定和调用灵活,能够满足较大的用户业务请求量,提高 了BPMN组合服务执行引擎部署的灵活性。而且,当业务需求量大时,通过 采用异步调用方式,提高了BPMN组合服务执行引擎部署的并发能力。

实施例二

图2为本发明实施例二提供的并发优化的BPMN组合服务执行引擎结构 示意图,如图2所示,在本实施例中,任务接收单元131具体可以包括任务 池136,任务池136用于将多个任务文件进行排序,并根据预设顺序向流程 解析单元132提供任务文件。通过任务池136对接收到的任务文件进行管理, 任务池136中的任务文件可以以队列的形式进行存储,具体可以依照先入先 出(First Input First Output,简称FIFO)的执行方式,将任务文件提供给流 程解析单元132进行解析。还可以为任务文件设定优先权,根据优先权为流 程解析单元132提供任务文件,任务池136的中任务文件的执行顺序可以按 照实际的业务流程需要来设定,不以本实施例为限。

通过任务池136的设置,作为业务流程执行请求的缓冲,可以控制同时 执行的业务流程执行请求数量,通过先将任务放在任务池136中,通过一定 的顺序提供给流程解析单元132解析,保证BPMN组合服务执行引擎不会因 为业务流程执行请求数量过多而陷入阻塞家私状态,提高了BPMN组合服务 执行引擎的并发能力。

在本实施例中,解析执行模块13具体可以包括线程池137,线程池137 用于为实例执行单元133分配空闲线程。线程池137对线程进行管理,当实 例执行单元133需要调用线程来执行对象模型时,不需要直接向系统发送线 程请求,而通过线程池137对实例执行单元133进行线程分配,将线程池137 中的空闲线程提供给实例执行单元133,并将实例执行单元133释放的线程 返还线程池137,避免了大量重复的现场申请以及释放,进一步提高BPMN 组合服务执行引擎的并发能力。

在本实施例中,监控模块14还可以包括数据库连接池142,数据库连接 池142用于存储数据库15的链接,并对链接进行分配。通过数据库连接池 142管理数据库15的相应链接,当需要连接至数据库15时,统一从数据库 连接池142中获取链接,当使用结束后,并不直接释放链接,而是将链接返 回给数据库连接池142,以避免对数据库15的频繁访问造成的性能的急剧下 降,进一步提高BPMN组合服务执行引擎的并发能力。

在本实施例中,服务接口模块11具体可以包括服务接口、报文转换单元 111和请求单元112。报文转换单元111用于对服务接口接收的报文进行转换, 以获得业务流程描述文件和输入参数信息,服务接口具体为Web服务接口。 请求单元112用于将业务流程描述文件和输入参数信息发送。

在本实施例中,任务管理模块12具体可以包括接收单元121、分片单元 122、任务文件生成单元123和流程调度单元124。接收单元121用于接收服 务接口模块11发送的业务流程描述文件和输入参数信息,分片单元122用于 对接收单元121接收到的业务流程描述文件进行分片,生成流程分片文件, 任务文件生成单元123用于根据流程分片文件和输入参数信息生成任务文 件,流程调度单元124用于根据流程分片文件进行流程调度,并将任务文件 发送。

实施例三

图3为本发明实施例三提供的并发优化的BPMN组合服务执行方法流程 图,该并发优化的BPMN组合服务执行方法包括:

步骤10、根据接收到的报文文件,获得业务流程描述文件和输入参数信 息;

步骤20、对业务流程描述文件进行分片,生成流程分片文件,根据流程 分片文件和输入参数信息生成任务文件,并根据流程分片文件将任务文件发 送;

步骤30、对接收到的任务文件中的流程分片文件进行解析,获得执行顺 序,并生成对象模型;

步骤40、按照执行顺序,根据任务文件中的输入参数信息和图元解析单 元中存储的解析执行方法,调用线程执行对象模型,并产生执行结果;

步骤50、判断任务接收单元中的任务文件的数量是否小于预设值;

若判断获知接收到的任务文件的数量小于预设值,则执行步骤60、采用 web服务调用方式调用监控服务,并发送执行结果;

否则,执行步骤70、采用本地进程异步调用方式调用监控服务,并发送 执行结果;

步骤80、根据执行结果,对数据库进行访问。

本实施例提供的并发优化的BPMN组合服务执行方法,可以实现对 BPMN组合服务的执行,且在进行监控服务调用时,可以根据不同的业务需 求将松耦合的监控模块部署为多个服务,同时也能够绑定在一起成为一个服 务,服务内部使用异步调用的方式保证运行,提高了BPMN组合服务执行引 擎部署的灵活性。而且,当业务需求量大时,通过采用异步调用方式,提高 了BPMN组合服务执行引擎部署的并发能力。

在本实施例中,对接收到的任务文件中的流程分片文件进行解析具体可 以为:按照预设顺序对接收到的任务文件中的流程分片文件进行解析。具体 可以通过任务池的设置对任务文件进行管理,将接收到的任务文件在任务池 中进行存储,并按照一定的预设顺序对任务文件进行解析,具体可以按照 FIFO的执行顺序,也可以通过设定优先权的方式,不以本实施例为限。

在本实施例中,调用线程执行对象模型具体可以为:向线程池请求空闲 线程,线程池根据线程分配状况分配线程,以执行对象模型。通过向线程池 请求线程来执行对象模型,避免了对系统大量重复的现场申请及释放,提高 了系统的并发能力。

在本实施例中,对数据库进行访问具体为:向数据库连接池请求数据库 链接,根据数据库连接池分配的数据库链接对数据库进行访问。由数据连接 池统一对数据库链接进行管理,通过向数据连接池请求数据库链接,避免了 由于请求过多造成的系统性能的下降。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者 对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术 方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号