工作流系统实现流程事务和业务事务完整性的系统结构及方法技术方案

技术编号:3953341 阅读:473 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种工作流系统中实现流程事务和业务事务完整性的系统结构,其中包括入口事务协调器、引擎活动调度器、分段事务协调器、出口事务协调器,入口事务协调器依次与引擎活动调度器、分段事务协调器和出口事务协调器连接。本发明专利技术还涉及一种实现工作流系统中流程事务和业务事务完整性的方法。采用该种工作流系统实现流程事务和业务事务完整性的系统结构及方法,保证了工作流流程事务的完整性、业务和工作流数据的一致性和工作流活动的执行独立性,使得工作流事务场景简洁、易操作、灵活可变,增强了系统可移植性和可扩展性,使用快捷方便,运行效率较高,系统性能稳定可靠,适用范围较为广泛。

【技术实现步骤摘要】

本专利技术涉及计算机软件领域,特别涉及事务型处理系统的应用
,具体是指一种工作流系统中实现流程事务和业务事务完整性的系统结构及其方法。
技术介绍
事务是设计与编制高可靠性软件系统的最重要的概念。事务用以解决数据的并发 访问和出错恢复问题。事务通常指一组对于物理的或者抽象的应用状态的操作组成的集 合。事务与普通的程序操作的最大区别是它具有的事务特性,即原子性、一致性、分离性和 持久性。事务特性的提出主要是为了提高数据库的出错恢复能力和数据库系统的可靠性。事务的概念来自于数据库研究领域,主要是为了实现数据在操作中的一致性。与 此相类似,工作流也需要引入相应的事务概念来保证工作流数据在执行过程中的正确性。 从实际应用的角度来看,分布式事务处理功能对于工作流系统而言是必不可少的。事实上, 工作流也可以看成是一系列有序操作的集合,只不过这些操作的对象具有更广的内涵,并 不仅仅限于数据库中的数据。因此,工作流也同样具有事务特性。工作流系统中具有事务特性的场景包括工作流中的某一活动实例对用户数据进 行写操作时不允许其它活动实例同时对该数据进行有关的读写操作;当一个工作流过程在 执行到某一活动时被迫取消,那么在这一活动之前已经完成的活动所造成的影响也应该尽 可能取消,尤其是应该把被改动的数据恢复到过程执行前的状态;一个包含正在执行的工 作流过程的业务处理逻辑的执行序列在当工作流过程执行时出错时需要一并取消之前的 业务处理逻辑的操作结果等。要处理上述情况需要在工作流管理系统中引入事务概念和相 应的事务处理方法,但是工作流具有更复杂的操作、更广泛的分布性以及更多的异构性,工 作流的事务处理要比数据库中的事务处理复杂很多,使得工作流事务的完整性、一致性无 法得到保证。这种复杂性还体现在与业务事务的协调机制上。如何与业务事务相互通信和协调 使得工作流系统中的事务不受业务事务的影响、或将工作流系统中的事务与业务事务联合 在一起,这些协调行为都是工作流系统中事务复杂性的体现。目前工作流系统中的事务处 理没有一个标准的解决方案和规则,因此成为工作流系统发展的障碍。
技术实现思路
本专利技术的目的是克服了上述现有技术中的缺点,提供一种能够统一的接口环境和 简化的操作接口、能够跨越不同类型的数据库事务、使用快捷方便、运行效率较高、系统性 能稳定可靠、适用范围较为广泛的工作流系统实现流程事务和业务事务完整性的系统结构 及方法。为了实现上述的目的,本专利技术的工作流系统实现流程事务和业务事务完整性的系 统结构及方法如下该工作流系统中实现流程事务和业务事务完整性的系统结构,其主要特点是,所述的系统结构包括入口事务协调器,进行事务环境处理,并判断执行启用事务分段操作;引擎活动调度器,与所述的入口事务协调器相连接,进行活动应用程序接口(API) 模块的调度和执行;分段事务协调器,与所述的引擎活动调度器相连接,启动新的事务上下文,对外部 事务环境进行分割,并进行工作流系统数据的提交和回滚操作;出口事务协调器,与所述的分段事务协调器相连接,根据需要提交工作流和业务 数据,并恢复外部事务环境。该基于上述的系统结构实现工作流系统中流程事务和业务事务完整性的方法,其 主要特点是,所述的方法包括以下步骤(1)所述的工作流系统进行初始化操作;(2)判断与该工作流系统所连接的用户业务系统的业务操作请求所对应的业务操 作所执行的工作流系统应用程序接口是否为完成活动的应用程序接口;(3)如果是,则调用所述的入口事务协调器进行事务环境处理;(4)工作流系统中的业务操作线程进入该入口事务协调器,将业务操作中的当前 会话中的用户信息传递给工作流系统的会话句柄,并且保存到当前线程上下文环境中;(5)所述的入口事务协调器进行启用事务分段操作的判断执行;(6)所述的业务操作线程调用所述的引擎活动调度器,获取业务流程实例锁并锁 定当前流程实例;(7)所述的引擎活动调度器调用引擎活动调度代理器执行完成活动的应用程序接 Π ;(8)所述的引擎活动调度器启动后继活动,并继续执行该后继活动;(9)所述的业务操作线程调用所述的出口事务协调器提交工作流和业务数据;(10)将线程上下文环境恢复为调用该入口事务协调器之前的线程上下文环境;(11)所述的用户业务系统调用的完成活动应用程序接口在正常执行完毕后调用 堆栈恢复到执行业务操作的后续方法,继续执行后继业务操作;(12)如果所述的后继业务操作正常执行到业务事务的提交操作,则通知所述的分 段事务协调器执行工作流系统数据的提交操作,并结束;(13)如果所述的后继业务操作执行出错并且执行到业务事务的回滚操作,则通知 所述的分段事务协调器执行工作流系统数据的回滚操作,并结束。该实现工作流系统中流程事务和业务事务完整性的方法中的工作流系统进行初 始化操作,包括以下步骤(21)实例化工作流日志系统;(22)加载工作流配置文件;(23)加载工作流业务字典;(24)判断工作流系统版本;(25)工作流系统服务进行初始化操作;(26)实例化工作流系统流程实例缓存池服务;(27)初始化工作流系统历史数据转移服务服务;(28)设置工作流流程定义缓存服务;该实现工作流系统中流程事务和业务事务完整性的方法中的工作流系统服务进行初始化操作,包括以下步骤(251)初始化工作流日志服务;(252)初始化工作流事务协调器服务;(253)初始化工作流引擎活动调度服务;(254)初始化工作流引擎活动调度代理器;(255)初始化分段事务协调器服务;(257)初始化工作流任务代理服务;(258)初始化消息队列服务;(259)初始化流程实例锁服务;(25a)初始化定时器服务;(25b)初始化工作流组织机构服务。该实现工作流系统中流程事务和业务事务完整性的方法中的入口事务协调器进 行启用事务分段操作的判断执行,包括以下步骤(31)获取当前线程上下文环境并进行保存;(32)如果启用事务分段的条件为逻辑“真”,则分段事务协调器启用事务分段上下 文,与外部事务环境进行分割;(33)如果启用事务分段的条件为逻辑“假”,则分段事务协调器使用原有的事务上 下文。该实现工作流系统中流程事务和业务事务完整性的方法中的事务分段上下文的 数据字段包括当前用户ID、流程实例标识、是否分段事务、调度开始时间、调度结束时间。该实现工作流系统中流程事务和业务事务完整性的方法中的引擎活动调度代理 器执行完成活动的应用程序接口,包括以下步骤(41)判断活动事件类型是否为“完成活动”事件;(42)设置活动实例状态为“完成”;(43)设置活动实例被结束时间;(44)执行活动定义的触发事件并调用事务协调器控制触发事件的事务;(45)如果执行活动定义的触发事件发生错误,则终止活动调度操作,并返回所述 的引擎活动调度器执行错误处理;(46)保存活动实例数据到数据库中。该实现工作流系统中流程事务和业务事务完整性的方法中的返回引擎活动调度 器执行错误处理,包括以下步骤(451)通知流程实例缓存,将之前对活动实例的操作全部取消;(452)将错误日志记录到跟踪日志中;(453)向控制台打印出错信息;(454)通知所述的出口事务协调器当前事务操作无效,取消与之配对的事务入口调用堆栈中的所有操作数据。该实现工作流系统中流程事务和业务事本文档来自技高网
...

【技术保护点】
一种工作流系统中实现流程事务和业务事务完整性的系统结构,其特征在于,所述的系统结构包括:入口事务协调器,进行事务环境处理,并判断执行启用事务分段操作;引擎活动调度器,与所述的入口事务协调器相连接,进行活动应用程序接口模块的调度和执行;分段事务协调器,与所述的引擎活动调度器相连接,启动新的事务上下文,对事务环境进行分割,并进行工作流系统数据的提交和回滚操作;出口事务协调器,与所述的分段事务协调器相连接,根据需要提交工作流和业务数据,并恢复外部事务环境。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘晓俊刘航谢国政
申请(专利权)人:上海普元信息技术有限责任公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1