对照着BTP协议,把jotm-btp的代码看了两遍,终于有了点比较深入的理解了,是时候写下点心得了。
首先是说说jotm-btp与jotm的关系。从字面上看,jotm-btp显然是jotm的一个扩展。具体的说来,在前者的代码中直接调用了后者的:ControlImpl、Resource、TransactionFactory、TransactionFactoryImpl等这几个类或接口。TransactionFactoryImpl用来创建事务ID,在Decider中一个事务ID唯一对应一个ControlImpl对象;ControlImpl是事务控制中最重要的类了,jotm-btp直接调用该类来实现事务的提交和回滚控制(即沿用了jotm的事务控制方式),具体的准备、提交和回滚实现,通过调用Resource接口来完成;jotm-btp的SOAPResource类实现了Resource接口,供ControlImpl调用,完成BTP定义的事务处理方式。
接着我来分析下jotm-btp对BTP的实现方式。在这里我举三个典型的过程:beginning、enrolling和confirming。
首先是beginning的实现过程,如下图所示:
接着是enrolling的实现过程:
最后是confirming的实现过程,实现事务的最后提交:
以上实现中,所有的Terminator和Decider、Participant和Decider的数据通信都是通过Axis的WebService方式实现的。
另外,通过分析源代码发现,jotm-btp并没有完全实现BTP中的另一种事务模式——cohesion模式。它只能进行简单的提交操作,如果遇到错误,仅仅是返回error、提示错误,而没有实现事务的回滚操作。我想这就是我们要完善的地方了……
- 大小: 27.2 KB
- 大小: 29 KB
- 大小: 35.1 KB
分享到:
相关推荐
标题“STITP.rar_stitp”暗示我们正在讨论一个与大学生创新计划相关的项目,该项目可能涉及温度传感系统。"STITP"可能是“大学生创新技术实践计划”(Student Innovation and Technology Practice Program)的缩写,...
从管理员身份获得 SYSTEM 权限的四种方法 伪寄存器语法(Pseudo-Register Syntax) 利用 cards.dll 写自己的扑克程序 利用 Debug API 编写一个简单的脱壳机 手工构造一个超微型的 PE 文件 改造 MFC 编写的控件在 Win...
知识点:市场营销、就业前景、需求分析。 2. 高校辅修教育的研究与思考:本项目旨在研究高校辅修教育的现状和问题,并提出相应的解决方案。 知识点:高校辅修教育、教育研究、解决方案。 3. 高校电子商务平台的...
Welcome to 基于微信小程序的货物和食品的本地化配送平台系统:waving_hand:一款方便校园内食堂代排队、代取快递的微信小程序:house:安装微信开发者工具(v2.11.0及以上)使用微信客户端体验版:体验作者:bust_in_...
【作品名称】:基于python卷积神经网络实现多位数字识别,用于学生考试试卷分数核对矫正 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、...│ ├── stitp/src/m