论文部分内容阅读
事务处理技术是保证信息可靠性和一致性的关键技术。目前广泛使用的平面事务是具有ACID(atomicity,consistency,isolation and durability)特性的原子操作序列。平面事务模型在支持长时间运行事务方面存在缺陷,也不能适用于具有复杂业务过程的应用。 目前,在分布系统中广泛用于支持业务过程的另一种关键技术是工作流技术。工作流由若干个相互关联的任务组成,它是通过计算机软件进行定义、执行并监控的业务过程。事务工作流(transactional workflow)结合了事务和工作流两者的特点,一个事务工作流的执行将系统从一个一致性状态转换到另一个一致性状态。事务工作流由事务组合形成,其执行满足松弛原子性(relaxed atomicity),即事务工作流的执行或者正常结束,或者通过补偿事务取消所有已提交事务的执行效果。 事务工作流技术具有广泛的应用前景,但事务工作流的研究起步较晚,在建模和结构验证、调度算法、体系结构及实现技术方面研究尚不充分。本文针对这些不足展开研究。 本文首先提出了一个事务工作流模型ISTWM。ISTWM定义了事务工作流的结构及其执行,并建立了结构和执行之间的关系。我们给出了一个严格的良构性定义用来描述事务工作流的结构正确性,并且提出了一个良构性判断定理可有效地验证事务工作流是否良构。ISTWM模型还定义了事务工作流的并发执行和调度,并给出了可恢复调度和可串行化调度的定义。 本文提出一个基于混合粒度冲突检测的事务工作流调度算法。我们从两方面提高了并发度:一方面通过事务实例之间(细粒度)的冲突检测减少了工作流冲突的概率;另一方面通过事务类型之间(粗粒度)的冲突预测,允许多个将来不冲突的工作流执行不可补偿事务。该算法解决了现有调度算法只允许一个工作流执行不可补偿事务的限制。 基于ISTWM模型,本文设计了事务工作流描述语言ISTWL。ISTWL语言可以用来声明组成事务工作流的事务类型,能够支持过程描述。ISTWL通过上下文变量来实现数据流,ISTWL能够描述事务的完成特性,支持顺序、并行、优先、条件和循环等多种控制结构,可用于描述复杂的业务过程。ISTWL语言最显著的特点是提供了事务完成特性的描述,以及事务之间冲突函数的描述。 我们还实现了事务工作流运行的支撑环境,其中关键的组件是消息通信中间件系统ISMQ和分布事务监控器系统ISTX。在这些系统中,我们提出了多种设计模式和面向对象框架。其中,用于事务恢复处理的面向对象框架ISTM提供了与存储系统无关的事务恢复机制,ISTM被用于ISMQ中来实现事务队列的故障恢复。ISMQ还利用了一个通用的网络编程接口UniChannels,将多种不同的网络通信协议的接口统一起来。ISTX提供了分布事务管理、恢复管理和资源连接的缓冲池管理。ISMQ和ISTX还分别实现了JMS接口和JTA接口,能够中国科学院软件研究所博士学位论文网络分布计算中的事务工作流研究很方便地应用到JZEE计算环境中。 最后,本文给出了一个运行在JZEE计算环境中的事务工作流原型系统ISTw的设计和实现。在体系结构方面,ISTw利用了ISMQ提供的JMS服务和ISTX提供的JTA汀TS服务。平面事务用会话Bean来实现,而事务之间的交互则通过消息队列完成。ISTW包含一个集中式的事务工作流调度器,而在每个节点上则运行一个活动管理器。ISTW能够支持工作流的恢复处理。