CN116860362B - 一种应用于流程编排引擎的插件事务管理方法及装置 - Google Patents
一种应用于流程编排引擎的插件事务管理方法及装置 Download PDFInfo
- Publication number
- CN116860362B CN116860362B CN202310817744.1A CN202310817744A CN116860362B CN 116860362 B CN116860362 B CN 116860362B CN 202310817744 A CN202310817744 A CN 202310817744A CN 116860362 B CN116860362 B CN 116860362B
- Authority
- CN
- China
- Prior art keywords
- plug
- connection
- available
- node
- transaction manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 13
- 238000005096 rolling process Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用于流程编排引擎的插件事务管理方法及装置,通过调用集成流中的第一插件节点;基于编排引擎确定第一插件需要数据库连接,且事务管理器中不存在可用连接时,创建第一可用连接,将第一可用连接缓存到事务管理器中,并将第一可用连接对应的第一连接对象注入到第一插件中,运行第一插件节点;当确定第一插件运行成功,且第一可用连接被使用时,将设置第一标记的第一可用连接归还到事务管理器中;并在第一插件节点为集成流中的最后一个插件节点时,从事务管理器中获取存在第一标记的所有第二可用连接进行统一提交;与现有技术相比,本发明的技术方案通过引入事务管理器,实现对不同插件节点中数据库连接的统一管理。
Description
技术领域
本发明涉及流程管理***的技术领域,特别是涉及一种应用于流程编排引擎的插件事务管理方法及装置。
背景技术
在大型企业中,经常存在着大量的管理***,各***间存在着功能重复、容易产生数据孤岛等问题,如何整合***,做到高集成和可复用成为开发者需要解决的问题;目前,微服务编排是该领域的一个解决方案,在编排管理***中,常使用插件来作为应用连接的方式。
现有的微服务架构中,事务回滚一般有XA、TCC和最终一致性等解决方案;市面上的开源框架,大多都是基于这几种方式实现;目前应用最多的是阿里巴巴的seata和国产的分布式事务开源框架LCN等,基本可以支持上述几种事务管理方式。
但在设计方向上,现有方案的设计初衷大多是基于分布式微服务架构,着重处理多个单体服务间的事务管理,对单体服务中不同插件的事务管理支持十分有限,导致现有的技术方案难以支撑多个独立插件中的统一事务管理的问题;在性能方向上,对于XA方案,事务协调者是一个独立部署的服务,这种方案增加了各个服务的间通信的网络开销以及等待时间,导致服务性能有下降,在最终一致性方案中,无法做到强一致性,有时还需要等待人工去处理数据。
发明内容
本发明要解决的技术问题是:提供一种应用于流程编排引擎的插件事务管理方法及装置,在流程编排引擎中引入事务管理器,实现对不同插件节点中数据库连接的统一管理。
为了解决上述技术问题,本发明提供了一种应用于流程编排引擎的插件事务管理方法,包括:
当接收到用户发起集成流调用时,根据接收到的集成流,调用所述集成流中的第一插件节点;
基于编排引擎确定所述第一插件节点对应的第一插件需要数据库连接时,判断事务管理器中是否存在可用连接;
当确定所述事务管理器中不存在所述可用连接时,调用获取连接接口创建第一可用连接,将所述第一可用连接缓存到所述事务管理器中,并将所述第一可用连接对应的第一连接对象注入到所述第一插件中,运行第一插件节点;
获取所述第一插件的运行状态,当确定所述第一插件运行成功时,判断所述第一可用连接是否被使用,若是,则对所述第一可用连接设置第一标记,并将所述第一可用连接归还到所述事务管理器中;
判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交。
在一种可能的实现方式中,获取所述第一插件的运行状态后,还包括:
当确定所述第一插件运行失败时,从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一回滚。
本发明提供的一种应用于流程编排引擎的插件事务管理方法,还包括:
基于编排引擎确定所述第一插件节点对应的第一插件不需要数据库连接时,运行所述第一插件。
在一种可能的实现方式中,判断事务管理器中是否存在可用连接后,还包括:
当确定所述事务管理器中存在所述可用连接时,从所述事务管理器中调用所述可用连接,并将所述可用连接注入到所述第一插件中,运行第一插件。
在一种可能的实现方式中,判断所述第一可用连接是否被使用后,还包括:
当确定所述第一可用连接还未被使用时,判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交,若否,则运行所述集成流中所述第一插件节点的下一插件节点。
在一种可能的实现方式中,判断事务管理器中是否存在可用连接,具体包括:
获取所述事务管理器中第一连接的连接状态;
当所述连接状态为暂停状态或断开状态时,确定所述事务管理器中不存在可用连接;
当所述连接状态为活动状态时,确定所述事务管理器中存在可用连接。
本发明还提供了一种应用于流程编排引擎的插件事务管理装置,包括:插件节点调用模块、连接判断模块,第一运行模块、连接标记模块和第一连接处理模块;
其中,所述插件节点调用模块,用于当接收到用户发起集成流调用时,根据接收到的集成流,调用所述集成流中的第一插件节点;
所述连接判断模块,用于基于编排引擎确定所述第一插件节点对应的第一插件需要数据库连接时,判断事务管理器中是否存在可用连接;
所述第一运行模块,用于当确定所述事务管理器中不存在所述可用连接时,调用获取连接接口创建第一可用连接,将所述第一可用连接缓存到所述事务管理器中,并将所述第一可用连接对应的第一连接对象注入到所述第一插件中,运行第一插件节点;
所述连接标记模块,用于获取所述第一插件的运行状态,当确定所述第一插件运行成功时,判断所述第一可用连接是否被使用,若是,则对所述第一可用连接设置第一标记,并将所述第一可用连接归还到所述事务管理器中;
所述第一连接处理模块,用于判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交。
本发明提供的一种应用于流程编排引擎的插件事务管理装置,还包括:第一连接处理模块;
其中,所述第一连接处理模块,用于当确定所述第一插件运行失败时,从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一回滚。
本发明提供的一种应用于流程编排引擎的插件事务管理装置,还包括:第二运行模块;
所述第二运行模块,用于基于编排引擎确定所述第一插件节点对应的第一插件不需要数据库连接时,运行所述第一插件。
本发明提供的一种应用于流程编排引擎的插件事务管理装置,还包括:连接调用模块;
其中,所述连接调用模块,用于当确定所述事务管理器中存在所述可用连接时,从所述事务管理器中调用所述可用连接,并将所述可用连接注入到所述第一插件中,运行第一插件。
本发明提供的一种应用于流程编排引擎的插件事务管理装置,还包括:插件节点判断模块;
其中,所述插件节点判断模块,用于当确定所述第一可用连接还未被使用时,判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交,若否,则运行所述集成流中所述第一插件节点的下一插件节点。
在一种可能的实现方式中,所述连接判断模块,用于判断事务管理器中是否存在可用连接,具体包括:
获取所述事务管理器中第一连接的连接状态;
当所述连接状态为暂停状态或断开状态时,确定所述事务管理器中不存在可用连接;
当所述连接状态为活动状态时,确定所述事务管理器中存在可用连接。
本发明还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的应用于流程编排引擎的插件事务管理方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任意一项所述的应用于流程编排引擎的插件事务管理方法。
本发明实施例一种应用于流程编排引擎的插件事务管理方法及装置,与现有技术相比,具有如下有益效果:
通过调用集成流中的第一插件节点;基于编排引擎确定第一插件需要数据库连接,且事务管理器中不存在可用连接时,创建第一可用连接,将第一可用连接缓存到事务管理器中,并将第一可用连接对应的第一连接对象注入到第一插件中,运行第一插件节点;当确定第一插件运行成功,且第一可用连接被使用时,将设置第一标记的第一可用连接归还到事务管理器中;并在第一插件节点为集成流中的最后一个插件节点时,从事务管理器中获取存在第一标记的所有第二可用连接进行统一提交;与现有技术相比,本发明的技术方案通过在编排引擎中引入事务管理器,实现对不同插件节点中数据库连接的统一管理,并在流程运行结束时统一提交,保证了整体流程的事务一致性;同时将新创建的所述第一可用连接缓存到所述事务管理器中,以使事务管理器自动缓存连接,当插件再次使用连接时,无需再次创建,大幅提升了运行性能。
附图说明
图1是本发明提供的一种应用于流程编排引擎的插件事务管理方法的一种实施例的流程示意图;
图2是本发明提供的一种应用于流程编排引擎的插件事务管理装置的一种实施例的结构示意图;
图3是本发明提供的一种实施例的应用于流程编排引擎的插件事务管理方法的又一流程示意图;
图4是本发明提供的一种实施例的插件和事务管理器的关系连接示意图。
具体实施方式
下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1,参见图1,图1是本发明提供的一种应用于流程编排引擎的插件事务管理方法的一种实施例的流程示意图,如图1所示,该方法包括步骤101-步骤105,具体如下:
步骤101:当接收到用户发起集成流调用时,根据接收到的集成流,调用所述集成流中的第一插件节点。
一实施例中,集成流通常需要通过流程设计工具来定义和设计业务流程的各个步骤,业务规则和数据转换规则等,如基于编排管理***,通过编辑页面配置业务流程,每个业务对应的一个插件节点,每个插件节点代表一个插件,插件可以调用接口、连接数据库或者调用插件等方式连接不同***,达到各个***间的快速对接和异构数据的灵活转换;并在业务流程编排完成后,生成一份对应的配置协议。
一实施例中,基于业务流程对插件节点的执行顺序进行编排,得到编排节点文件,基于所述编排节点文件和所述配置协议,生成集成流。
一实施例中,基于所述编排节点文件中的节点顺序,依次选取插件节点,并将选取的所述编排节点文件中节点设置为第一插件节点,基于编排引擎调用所述集成流中的第一插件节点。
优选的,所述第一插件节点为业务插件节点。
步骤102:基于编排引擎确定所述第一插件节点对应的第一插件需要数据库连接时,判断事务管理器中是否存在可用连接。
一实施例中,接收到用户发起集成流调用后,基于编排引擎对接收到的集成流进行解析,得到集成流对应的配置协议。
一实施例中,所述配置协议中包含多个进行逻辑判断并生成分析结果的逻辑插件,其中,所述逻辑插件用于条件判断、递归等操作。
一实施例中,基于配置协议,选取合适的逻辑插件判断所述第一插件节点是否需要对数据库进行修改,若需要,则确定所述第一插件节点对应的第一插件需要数据库连接,若不需要,则确定所述第一插件节点对应的第一插件不需要数据库连接。
优选的,对所述数据库进行修改包括对数据库进行增加、删除和修改的操作。
一实施例中,基于编排引擎确定所述第一插件节点对应的第一插件不需要数据库连接时,直接运行所述第一插件。
优选的,当所述第一插件节点对应的业务内容仅为需要查看数据库,而不涉及对所述数据库进行修改时,认为当前第一插件节点不需要数据库连接,可直接对第一插件进行运行。
一实施例中,事务管理器会在内部缓存各个插件的连接对象,同时维护连接对象与插件的映射关系,定期清理过期的连接,保证连接的可用性。
一实施例中,判断事务管理器中是否存在可用连接,具体的,获取所述事务管理器中第一连接的连接状态;当所述连接状态为暂停状态或断开状态时,确定所述事务管理器中不存在可用连接;当所述连接状态为活动状态时,确定所述事务管理器中存在可用连接。
一实施例中,判断事务管理器中是否存在可用连接前,还包括,基于第一插件对应的业务,选取需要进行业务操作的数据库;同时基于所述第一插件对应的业务操作,确定所述业务操作对应的第一连接,基于第一连接,调用所述事务管理器判断所述数据库中是否存在可用连接。
优选的,基于事务管理器的核心方法checkConnection用于校验连接可用性;当连接过期或不可用,事务管理器会将其销毁。
一实施例中,判断事务管理器中是否存在可用连接后,还包括:当确定所述事务管理器中存在所述可用连接时,从所述事务管理器中调用所述可用连接,并将所述可用连接注入到所述第一插件中,运行第一插件,以使所述第一插件基于所述可用连接,连接到对应的数据库中。
一实施例中,对于事务管理器,所述事务管理器会基于其自身的AbstractConnectionHandler类提供各种插件事务管理相关的接口,插件只需实现连接数据库的接口,例如通过JDBC的方式连接MySQL/PostgreSQL数据库,而插件开发者无需关心连接何时创建、销毁,事务如何提交/回滚,只需要实现具体业务,在需要用到连接的时候调用事务管理器的统一接口,就可以对数据库进行增、删、改等操作。
步骤103:当确定所述事务管理器中不存在所述可用连接时,调用获取连接接口创建第一可用连接,将所述第一可用连接缓存到所述事务管理器中,并将所述第一可用连接对应的第一连接对象注入到所述第一插件中,运行第一插件节点。
一实施例中,调用获取连接接口创建第一可用连接时,从事务管理器中获取可用连接对应的连接对象,基于连接对象,调用事务管理器中所述连接对象对应的获取连接方法,创建新的第一可用连接。
一实施例中,将所述第一可用连接对应的第一连接对象注入到所述第一插件中时,第一插件可以通过依赖注入插件容器或框架获取数据库的第一可用连接,依赖注入框架可以根据插件的注解或配置文件,自动将数据库连接对象注入到插件中。
优选的,以使用线程局部变量在第一插件执行期间记录和传递第一可用连接对应的连接对象;其中,线程局部变量为每个线程维护一个连接对象的副本,这些副本独立于其他线程;当第一插件需要使用连接对象时,可以从线程局部变量中获取该连接对象。
一实施例中,由于数据库连接的创建和销毁较为耗时,传统插件开发模式中,当需要连接数据库时才建立连接,用完立刻销毁,当并发量比较大的时候,频繁建立或销毁连接的操作会占用大量服务器资源,抢占业务运行的时间;而本实施例中,将新创建的所述第一可用连接缓存到所述事务管理器中,以使事务管理器自动缓存连接,当插件再次使用连接时,无需再次创建,大幅提升了运行性能。
步骤104:获取所述第一插件的运行状态,当确定所述第一插件运行成功时,判断所述第一可用连接是否被使用,若是,则对所述第一可用连接设置第一标记,并将所述第一可用连接归还到所述事务管理器中。
一实施例中,获取第一插件的运行状态时,可通过查看插件的日志文件、监控插件的日志输出、基于插件管理工具查看插件的状态,以及监控插件的资源使用情况来得到第一插件的运行状态。
一实施例中,当确定所述第一插件运行失败时,从所述事务管理器中获取存在所述第一标记的所有第二可用连接,对所有第二可用连接进行统一回滚。
一实施例中,在流程运行结束后,基于事务管理器的核心方法rollback()统一回滚。
一实施例中,通过引入事务管理器,将不同插件的数据库连接统一管理,在节点出现异常时统一回滚,实现对不同插件节点中的连接的统一管理。
一实施例中,判断所述第一可用连接是否被使用,具体的,获取数据库连接池中第一可用连接的分配状态,当所述第一可用连接的分配状态为被分配时,确定所述第一可用连接已被使用,当所述第一可用连接的分配状态为未分配时,确定所述第一可用连接未被使用。
优选的,还可以获取数据库的查询日志,基于所述查询日志,判断所述第一插件是否对所述数据库进行修改操作,若是,则确定所述第一可用连接已被使用,则否,则确定所述第一可用连接未被使用。
一实施例中,判断所述第一可用连接是否被使用后,还包括:当确定所述第一可用连接还未被使用时,判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交,若否,则基于状态机运行所述集成流中所述第一插件节点的下一插件节点。
优选的,所述状态机是运行在编排引擎中的组件,可通过解析协议的方式判断节点状态并记录节点运行结果,根据各种逻辑组件和节点运行状态驱动编排流转到下一个节点。
一实施例中,在确定第一可用连接被使用的情况下,对第一可用连接标记后,及时将所述第一可用连接归还到所述事务管理器中,避免第一可用连接长时间被占用或没有及时释放,可能会导致数据库连接池中的连接资源不足,从而影响应用程序的性能和可用性。
步骤105:判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交。
一实施例中,在流程运行结束后,基于事务管理器的核心方法commit()统一提交事务。
一实施例中,基于集成流的编排节点文件,判断所述第一插件节点是否为所述集成流中的最后一个插件节点。
一实施例中,当所述第一插件节点不为所述集成流中的最后一个插件节点时,则运行所述集成流中所述第一插件节点的下一插件节点,重复上述步骤,直至所述集成流中所有插件节点均被调用。
一实施例中,所述第二可用连接为事务管理器中被标记过的连接。
一实施例中,通过引入事务管理器,对不同插件的数据库连接统一管理,并在流程运行结束时统一提交,实现对不同插件节点中的连接的统一管理,同时实现不同的插件节点运行于同一平台,且处理不同的业务数据时,还能保证整体流程的数据一致性。
为了更为清楚的介绍本发明,本实施例针对图3的应用于流程编排引擎的插件事务管理方法的又一流程示意图进行简要说明,如图3所示,基于编排管理***配置业务流程,基于每个业务生成对应的插件,并在业务流程编排完成后,生成一份对应的配置协议,得到集成流,基于所述集成流中的插件顺序,依次运行插件,并在运行插件时,在编排引擎中基于不同的插件都配置事务管理器,实现基于事务管理器对不同插件的数据库连接统一管理;且通过事务管理器内部自动进行连接的映射、过期清理、可用性校验等操作,自动对插件提供可用连接,侧面提升了插件的运行效率。
一实施例中,所述插件和事务管理器之间的关系,如图4所示,图4是插件和事务管理器的关系连接示意图;图中,事务管理器的连接处理器connectionHandler和会话处理器sessonHandle分别与事务管理器的抽象事务管理类AbstractConnectionHandler类相连接,事务管理器的AbstractConnectionHandler类分别与插件的连接接口connectioninterface相连接,插件的MySQL连接MySQLConnection和postgreSQL连接postgreSQLconnection分别与插件的连接接口connectioninterface相连接。
实施例2,参见图2,图2是本发明提供的一种应用于流程编排引擎的插件事务管理装置的一种实施例的结构示意图,如图2所示,该装置包括插件节点调用模块201、连接判断模块202,第一运行模块203、连接标记模块204和第一连接处理模块205,具体如下:
所述插件节点调用模块201,用于当接收到用户发起集成流调用时,根据接收到的集成流,调用所述集成流中的第一插件节点。
所述连接判断模块202,用于基于编排引擎确定所述第一插件节点对应的第一插件需要数据库连接时,判断事务管理器中是否存在可用连接。
所述第一运行模块203,用于当确定所述事务管理器中不存在所述可用连接时,调用获取连接接口创建第一可用连接,将所述第一可用连接缓存到所述事务管理器中,并将所述第一可用连接对应的第一连接对象注入到所述第一插件中,运行第一插件节点。
所述连接标记模块204,用于获取所述第一插件的运行状态,当确定所述第一插件运行成功时,判断所述第一可用连接是否被使用,若是,则对所述第一可用连接设置第一标记,并将所述第一可用连接归还到所述事务管理器中。
所述第一连接处理模块205,用于判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交。
本实施例提供的一种应用于流程编排引擎的插件事务管理装置,还包括:第一连接处理模块;其中,所述第一连接处理模块,用于当确定所述第一插件运行失败时,从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一回滚。
本实施例提供的一种应用于流程编排引擎的插件事务管理装置,还包括:第二运行模块;所述第二运行模块,用于基于编排引擎确定所述第一插件节点对应的第一插件不需要数据库连接时,运行所述第一插件。
本实施例提供的一种应用于流程编排引擎的插件事务管理装置,还包括:连接调用模块;其中,所述连接调用模块,用于当确定所述事务管理器中存在所述可用连接时,从所述事务管理器中调用所述可用连接,并将所述可用连接注入到所述第一插件中,运行第一插件。
本实施例提供的一种应用于流程编排引擎的插件事务管理装置,还包括:插件节点判断模块;其中,所述插件节点判断模块,用于当确定所述第一可用连接还未被使用时,判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交,若否,则运行所述集成流中所述第一插件节点的下一插件节点。
一实施例中,所述连接判断模块202,用于判断事务管理器中是否存在可用连接,具体包括:获取所述事务管理器中第一连接的连接状态;当所述连接状态为暂停状态或断开状态时,确定所述事务管理器中不存在可用连接;当所述连接状态为活动状态时,确定所述事务管理器中存在可用连接。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不在赘述。
需要说明的是,上述应用于流程编排引擎的插件事务管理装置的实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述的应用于流程编排引擎的插件事务管理方法的实施例的基础上,本发明另一实施例提供了一种应用于流程编排引擎的插件事务管理终端设备,该应用于流程编排引擎的插件事务管理终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现本发明任意一实施例的应用于流程编排引擎的插件事务管理方法。
示例性的,在这一实施例中所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述应用于流程编排引擎的插件事务管理终端设备中的执行过程。
所述应用于流程编排引擎的插件事务管理终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述应用于流程编排引擎的插件事务管理终端设备可包括,但不仅限于,处理器、存储器。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述应用于流程编排引擎的插件事务管理终端设备的控制中心,利用各种接口和线路连接整个应用于流程编排引擎的插件事务管理终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述应用于流程编排引擎的插件事务管理终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在上述应用于流程编排引擎的插件事务管理方法的实施例的基础上,本发明另一实施例提供了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时,控制所述存储介质所在的设备执行本发明任意一实施例的应用于流程编排引擎的插件事务管理方法。
在这一实施例中,上述存储介质为计算机可读存储介质,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-On lyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
综上,本发明提供的一种应用于流程编排引擎的插件事务管理方法及装置,通过调用集成流中的第一插件节点;基于编排引擎确定第一插件需要数据库连接,且事务管理器中不存在可用连接时,创建第一可用连接,将第一可用连接缓存到事务管理器中,并将第一可用连接对应的第一连接对象注入到第一插件中,运行第一插件节点;当确定第一插件运行成功,且第一可用连接被使用时,将设置第一标记的第一可用连接归还到事务管理器中;并在第一插件节点为集成流中的最后一个插件节点时,从事务管理器中获取存在第一标记的所有第二可用连接进行统一提交;与现有技术相比,本发明的技术方案通过引入事务管理器,实现对不同插件节点中数据库连接的统一管理。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (10)
1.一种应用于流程编排引擎的插件事务管理方法,其特征在于,包括:
当接收到用户发起集成流调用时,根据接收到的集成流,调用所述集成流中的第一插件节点;
基于编排引擎确定所述第一插件节点对应的第一插件需要数据库连接时,判断事务管理器中是否存在可用连接,其中,所述事务管理器位于所述编排引擎中;
当确定所述事务管理器中不存在所述可用连接时,调用获取连接接口创建第一可用连接,将所述第一可用连接缓存到所述事务管理器中,并将所述第一可用连接对应的第一连接对象注入到所述第一插件中,运行第一插件节点;
获取所述第一插件的运行状态,当确定所述第一插件运行成功时,判断所述第一可用连接是否被使用,若是,则对所述第一可用连接设置第一标记,并将所述第一可用连接归还到所述事务管理器中;
判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交。
2.如权利要求1所述的一种应用于流程编排引擎的插件事务管理方法,其特征在于,获取所述第一插件的运行状态后,还包括:
当确定所述第一插件运行失败时,从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一回滚。
3.如权利要求1所述的一种应用于流程编排引擎的插件事务管理方法,其特征在于,还包括:
基于编排引擎确定所述第一插件节点对应的第一插件不需要数据库连接时,运行所述第一插件。
4.如权利要求1所述的一种应用于流程编排引擎的插件事务管理方法,其特征在于,判断事务管理器中是否存在可用连接后,还包括:
当确定所述事务管理器中存在所述可用连接时,从所述事务管理器中调用所述可用连接,并将所述可用连接注入到所述第一插件中,运行第一插件。
5.如权利要求1所述的一种应用于流程编排引擎的插件事务管理方法,其特征在于,判断所述第一可用连接是否被使用后,还包括:
当确定所述第一可用连接还未被使用时,判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交,若否,则运行所述集成流中所述第一插件节点的下一插件节点。
6.如权利要求1所述的一种应用于流程编排引擎的插件事务管理方法,其特征在于,判断事务管理器中是否存在可用连接,具体包括:
获取所述事务管理器中第一连接的连接状态;
当所述连接状态为暂停状态或断开状态时,确定所述事务管理器中不存在可用连接;
当所述连接状态为活动状态时,确定所述事务管理器中存在可用连接。
7.一种应用于流程编排引擎的插件事务管理装置,其特征在于,包括:插件节点调用模块、连接判断模块,第一运行模块、连接标记模块和第一连接处理模块;
其中,所述插件节点调用模块,用于当接收到用户发起集成流调用时,根据接收到的集成流,调用所述集成流中的第一插件节点;
所述连接判断模块,用于基于编排引擎确定所述第一插件节点对应的第一插件需要数据库连接时,判断事务管理器中是否存在可用连接,其中,所述事务管理器位于所述编排引擎中;
所述第一运行模块,用于当确定所述事务管理器中不存在所述可用连接时,调用获取连接接口创建第一可用连接,将所述第一可用连接缓存到所述事务管理器中,并将所述第一可用连接对应的第一连接对象注入到所述第一插件中,运行第一插件节点;
所述连接标记模块,用于获取所述第一插件的运行状态,当确定所述第一插件运行成功时,判断所述第一可用连接是否被使用,若是,则对所述第一可用连接设置第一标记,并将所述第一可用连接归还到所述事务管理器中;
所述第一连接处理模块,用于判断所述第一插件节点是否为所述集成流中的最后一个插件节点,若是,则从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一提交。
8.如权利要求7所述的一种应用于流程编排引擎的插件事务管理装置,其特征在于,还包括:第一连接处理模块;
其中,所述第一连接处理模块,用于当确定所述第一插件运行失败时,从所述事务管理器中获取存在所述第一标记的第二可用连接,对所有第二可用连接进行统一回滚。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任意一项所述的应用于流程编排引擎的插件事务管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的应用于流程编排引擎的插件事务管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310817744.1A CN116860362B (zh) | 2023-07-05 | 2023-07-05 | 一种应用于流程编排引擎的插件事务管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310817744.1A CN116860362B (zh) | 2023-07-05 | 2023-07-05 | 一种应用于流程编排引擎的插件事务管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116860362A CN116860362A (zh) | 2023-10-10 |
CN116860362B true CN116860362B (zh) | 2024-03-19 |
Family
ID=88231670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310817744.1A Active CN116860362B (zh) | 2023-07-05 | 2023-07-05 | 一种应用于流程编排引擎的插件事务管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860362B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2363806A1 (en) * | 2010-03-03 | 2011-09-07 | Software AG | Connection handler and method for providing applications with heterogeneous connection objects |
CN105786913A (zh) * | 2014-12-25 | 2016-07-20 | 北京仿真中心 | 一种面向云制造平台的erp集成数据库服务接口封装***及方法 |
CN105912384A (zh) * | 2016-04-01 | 2016-08-31 | 广东凯通软件开发有限公司 | 流程引擎事务处理方法及装置 |
KR20180104593A (ko) * | 2015-09-09 | 2018-09-21 | 이준성 | 인터넷상의 저작권 데이터베이스 및 저작권 거래 방법 |
US10146629B1 (en) * | 2015-03-30 | 2018-12-04 | EMC IP Holding Company LLC | Extensible workflow manager for backing up and recovering microsoft shadow copy compatible applications |
CN111142867A (zh) * | 2019-12-31 | 2020-05-12 | 谷云科技(广州)有限责任公司 | 微服务架构下的服务可视化编排***及方法 |
CN114240132A (zh) * | 2021-12-14 | 2022-03-25 | 平安壹钱包电子商务有限公司 | 业务流程编排执行方法、装置、计算机设备及存储介质 |
US11288274B1 (en) * | 2019-05-29 | 2022-03-29 | Yellowbrick Data, Inc. | System and method for storing data for, and providing, rapid database join functions and aggregation statistics |
CN114416305A (zh) * | 2021-11-26 | 2022-04-29 | 北京中软国际信息技术有限公司 | 一种机器人引擎实现方法、***及电子设备 |
CN114675957A (zh) * | 2022-05-26 | 2022-06-28 | 广州市玄武无线科技股份有限公司 | 插件熔断方法、装置、终端设备及计算机可读存储介质 |
US11381638B1 (en) * | 2021-02-19 | 2022-07-05 | Oracle International Corporation | System and method for parallel execution of activites in an integration flow |
CN114971506A (zh) * | 2021-02-26 | 2022-08-30 | ***通信集团广东有限公司 | 流程引擎与业务事件处理分离的***及方法 |
CN115292010A (zh) * | 2022-09-28 | 2022-11-04 | 中邮消费金融有限公司 | 一种流程配置化自动生成业务的方法及*** |
CA3177530A1 (en) * | 2021-07-14 | 2023-01-14 | Strong Force TX Portfolio 2018, LLC | Systems and methods with integrated gaming engines and smart contracts |
CN115964072A (zh) * | 2022-12-28 | 2023-04-14 | 中锦技术(广东)有限公司 | 一种基于Flowable流程引擎开发的工作流管理*** |
CN116244049A (zh) * | 2023-01-09 | 2023-06-09 | 中信百信银行股份有限公司 | 一种轻量级的分布式流程事务控制器及方法 |
CN116342057A (zh) * | 2023-02-24 | 2023-06-27 | 成都新希望金融信息有限公司 | 一种面签流程生成方法、装置、电子设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519976B2 (en) * | 2002-05-01 | 2009-04-14 | Bea Systems, Inc. | Collaborative business plug-in framework |
US8234660B2 (en) * | 2006-04-12 | 2012-07-31 | Sap Portals Israel, Ltd. | Method and apparatus for a support platform |
US9922313B2 (en) * | 2012-08-31 | 2018-03-20 | Ncr Corporation | Techniques to custom define transaction sessions |
US20140324512A1 (en) * | 2013-04-29 | 2014-10-30 | International Business Machines Corporation | Automated business function implementation analysis and adaptive transaction integration |
CN105207798B (zh) * | 2014-06-26 | 2020-03-13 | 中兴通讯股份有限公司 | 软件定义网络中的业务编排方法及装置 |
US9893947B2 (en) * | 2015-06-26 | 2018-02-13 | International Business Machines Corporation | Transactional orchestration of resource management and system topology in a cloud environment |
US10824981B2 (en) * | 2017-04-24 | 2020-11-03 | Sap Se | Transaction orchestration for microservice |
US20210352077A1 (en) * | 2020-05-05 | 2021-11-11 | International Business Machines Corporation | Low trust privileged access management |
US20230176895A1 (en) * | 2021-12-06 | 2023-06-08 | Sap Se | Transaction engine |
-
2023
- 2023-07-05 CN CN202310817744.1A patent/CN116860362B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2363806A1 (en) * | 2010-03-03 | 2011-09-07 | Software AG | Connection handler and method for providing applications with heterogeneous connection objects |
CN105786913A (zh) * | 2014-12-25 | 2016-07-20 | 北京仿真中心 | 一种面向云制造平台的erp集成数据库服务接口封装***及方法 |
US10146629B1 (en) * | 2015-03-30 | 2018-12-04 | EMC IP Holding Company LLC | Extensible workflow manager for backing up and recovering microsoft shadow copy compatible applications |
KR20180104593A (ko) * | 2015-09-09 | 2018-09-21 | 이준성 | 인터넷상의 저작권 데이터베이스 및 저작권 거래 방법 |
CN105912384A (zh) * | 2016-04-01 | 2016-08-31 | 广东凯通软件开发有限公司 | 流程引擎事务处理方法及装置 |
US11288274B1 (en) * | 2019-05-29 | 2022-03-29 | Yellowbrick Data, Inc. | System and method for storing data for, and providing, rapid database join functions and aggregation statistics |
CN111142867A (zh) * | 2019-12-31 | 2020-05-12 | 谷云科技(广州)有限责任公司 | 微服务架构下的服务可视化编排***及方法 |
US11381638B1 (en) * | 2021-02-19 | 2022-07-05 | Oracle International Corporation | System and method for parallel execution of activites in an integration flow |
CN114971506A (zh) * | 2021-02-26 | 2022-08-30 | ***通信集团广东有限公司 | 流程引擎与业务事件处理分离的***及方法 |
CA3177530A1 (en) * | 2021-07-14 | 2023-01-14 | Strong Force TX Portfolio 2018, LLC | Systems and methods with integrated gaming engines and smart contracts |
CN114416305A (zh) * | 2021-11-26 | 2022-04-29 | 北京中软国际信息技术有限公司 | 一种机器人引擎实现方法、***及电子设备 |
CN114240132A (zh) * | 2021-12-14 | 2022-03-25 | 平安壹钱包电子商务有限公司 | 业务流程编排执行方法、装置、计算机设备及存储介质 |
CN114675957A (zh) * | 2022-05-26 | 2022-06-28 | 广州市玄武无线科技股份有限公司 | 插件熔断方法、装置、终端设备及计算机可读存储介质 |
CN115292010A (zh) * | 2022-09-28 | 2022-11-04 | 中邮消费金融有限公司 | 一种流程配置化自动生成业务的方法及*** |
CN115964072A (zh) * | 2022-12-28 | 2023-04-14 | 中锦技术(广东)有限公司 | 一种基于Flowable流程引擎开发的工作流管理*** |
CN116244049A (zh) * | 2023-01-09 | 2023-06-09 | 中信百信银行股份有限公司 | 一种轻量级的分布式流程事务控制器及方法 |
CN116342057A (zh) * | 2023-02-24 | 2023-06-27 | 成都新希望金融信息有限公司 | 一种面签流程生成方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116860362A (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069572B (zh) | 基于大数据平台的hive任务调度方法、装置、设备及存储介质 | |
EP3435235B1 (en) | Method and device for executing data recovery operation | |
CN109995677B (zh) | 资源分配方法、装置及存储介质 | |
US6466965B1 (en) | Centralized affinity maintenance in a workload managed client/server data processing system | |
CN113032166B (zh) | 核间通信的方法、处理器、核间通信***及计算机可读存储介质 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务***及装置 | |
CN111400011A (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
CN109522043B (zh) | 一种配置数据的管理方法、装置及存储介质 | |
CN112511596A (zh) | 一种云平台中创建云资源的方法和设备 | |
CN111930489A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
WO2021031583A1 (zh) | 执行语句的方法、装置、服务器及存储介质 | |
CN113722114A (zh) | 一种数据服务的处理方法、装置、计算设备及存储介质 | |
CN112559525B (zh) | 数据检查***、方法、装置和服务器 | |
CN116860362B (zh) | 一种应用于流程编排引擎的插件事务管理方法及装置 | |
CN115829826A (zh) | 模型存储优化方法及电子设备 | |
CN114880386B (zh) | 一种任务调度平台及任务调度方法 | |
CN109005067B (zh) | 一种用于监控服务器集群的硬件资源的方法和装置 | |
CN114610413A (zh) | 基于Java的同异步任务的执行方法、装置、设备及存储介质 | |
CN110019113B (zh) | 一种数据库的业务处理方法及数据库服务器 | |
CN111782363A (zh) | 一种支持多业务场景调用的方法和流程*** | |
CN112052035A (zh) | 基于银行后线***的版本组包方法及装置 | |
CN114785847B (zh) | 网络控制软件开发配置方法、终端及存储介质 | |
CN109542631A (zh) | 一种备机的重演方法、装置、服务器及存储介质 | |
CN112766768B (zh) | 合同流程管理方法、装置、电子设备以及可读存储介质 | |
CN112667652B (zh) | 基于区块链的模拟交易方法、装置、设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |