第29卷第15期计算机工
程
2003年9月
Vol.29№
15
Computer Engineering September 2003·博士论文·文章编号:1000—3428(2003)15 —0011—02 文献标识码:A
一种基于OTS的事务控制台工
具
任怡,管剑波,韩伟红,贾焰,吴泉源
(国防科技大学计算机学院,长沙410073)
中图分类号:T P319
摘要:以OMG的对象事务服务OTS(Object Transaction Service)为背景,提出并实现了一种基于OMG OTS的动态、灵活管理事务服务器的方法——OTSMC(Object Transaction Service Manage C onsole)。探讨了如何解决OTS MC与StarOTS系统的无缝集成问题,给出了OTSMC 系统组成、功能的设计,并描述了主要算法的实现及其运行示例。
关键词:CORBA;对象事务服务;OTSMC;事务;资源
An OTS-based Transaction Management Console
REN Yi,GUAN Jianbo ,HAN Weihong,JIA Yan,WU Quanyuan
(School of Compu ter Science, National University of Defence Technolog y, C hangsha 410073)
【Abstract 】This paper b rings forward OTSMC ——a method based on OMG's OTS to manag e the transaction server dynamically and relatively easily. First, the critical technologies in the implementation of OTSMC, such as how to integrate with StarOTS seamlessly, are discussed. Then it sets forth to explain the functions, the structure and the main algoritms of OTSMC. Finally it gives OTSMC's execu tion examples.
【K ey words】COR BA;OTS;OTS MC;Transaction;Resou rce
事务处理作为计算机传统的两大应用领域之一,其应用范围日趋广泛;同时,计算机及网络应用开始发挥越来越重要的作用,开发大型复杂分布系统已成为当前发展焦点。可以看到,金融、交通、贸易等数据密集型应用领域由传统的集中控制向分布处理方向发展已成为不可扭转的趋势。
许多现存的DTP系统中,系统管理人员往往只能通过启动事务处理之前配置相关属性来静态控制事务处理过程,一旦事务处理正在运行,这种方式就会显得无能为力;另一方面,由于关键业务处理过程的不可中断性,提供动态管理功能已逐渐成为系统开发的一个基本需求。因此,如何动态、灵活、有效地管理分布事务系统成为亟待解决的一个问题。为此,我们选择采用自主开发的遵循OMG组织2000年9月发布的OTS v1.2标准的StarOTS系统作为底层的分布事务处理系统支撑框架,在其上设计并实现了对象事务服务管理控制台OTS MC ,以支持对一个事务管理TM (Transaction Management)域中所有事务的动态控制和管理。协议。资源在系统出现故障时,通过可恢复协调者确定事务的执行结果,并与事务服务一起协商恢复工作。
2OTSMC与StarOTS的无缝集成方法
2.1 O TSMC与T M域ssm框架技术简介
设计OTS MC的主要目标之一就是通过它对一个TM域中的所有事务进行动态控制和管理,为StarOTS的使用者提供一种友好直观的参与事务管理的方式。
TM域由一个或多个DTP模型实例组成。DTP模型的实例是一组计算实体的集合,它们使用DTP模型的应用程序的一部分或者全部的功能部件和接口。每个实例支持一个应用程序,一个事务管理器和n(n≥1 )个资源管理器。一个
分布的应用程序是由两个或者更多的实例表示。一个实例是单个TM域的一部分,一个TM域可以包含一个或多个实例。
进一步,假设在一个TM域中存在一个全局事务,该事务在逻辑上包含一个“转账(transfer)”的操作,但实际却由两个操作组成,即从A地的账户上减x元(withdraw)、
1 对象事务服务为B地的账户上加x元(deposit)。那么可认为该TM域中含
1.1 StarOTS
StarOTS系统以我们自主开发的分布式计算软件平台银河速达作为标准“软总线”,并作为软构件集成在银河速达之上。它采用改进的2PC协议,提供高效的事务管理和控制API,实现了与DTP模型的无缝集成。它支持事务的恢复,支持事务的可靠性、可伸缩性和可操作性,具有性能可比的事务吞吐能力,能够胜任关键任务的企业应用。
1.2 对象事务服务中的事务处理
OTS规范扩展了CORBA模型并定义了一系列跨越多
个两个DTP模型实例:实例A支持一个实现操作withdraw 的子应用程序,一个管理A地账户资源的资源管理器(不妨设该
资源器为Oracle DBMS);实例B支持实现操作deposit的子应用程序,管理B地账户资源的资源管理器(设该资源器为
Informix DBMS),如图1。那么通过使用OTSMC,在事务处理过程中可对事务进行诸如查询转账事务的当前状态,查看A、B两地账户资源的状态,如在转账操作未最终提交之
前,人为地回退该事务,以及关闭该TM域中的StarOTS服务器等管理操作。
CORBA对象完成事务处理的接口,包括Current、Control、
Terminator、Coordinator、Resource、TransactionFactory等。事务发起者开始一个事务,并得到该事务的控制对象。由控制对象得到两个重要的实体:终结者和协调者。事务发起者通过终结者提交或回退此事务。可恢复服务器则通过协调者
向事务服务注册各类资源。资源参与由事务服务发起的2PC基金项目:国家自然科学基金项目(90104020);国家“863”重
点课题资助项目(2001AA113020)
作者简介:任怡(1976-),女,博士生,研究方向为数据库和分
布式计算;管剑波,博士生;韩伟红,博士、讲师;贾焰、吴泉源,
教授、博导
收稿日期:2002-08-01修回日期:2002-09-23
—11—
OTSMC 作用;
CI 实现了 OT SMC 中的关键算法,提供 help 、 ls 、 remove 、 rollback 、 shutdown 等命令的具体实现,能够对 StarOTS 事务服务器进行直接控制;OSC 从StarOTS 获得事务 服务器信息,负责维护一个事务服务器名称与IOR 一一对应 的事务服务表,为CI 提供事务服务表的初始化,事务服务项 的恢复、增删等功能,;TIDP 是一个辅助组成,它通过对 事务标志符进行分析,得到事务服务及资源对象名称, TIDP 主要用于CI 中关键算法的实现。
CORBA R equ ests
图1 OTSMC 对一 个TM 域中的事务进行动态控制和管理
2.2 实现思想
OTS MC 以服务形式运行,它对于应用程序是透明的。 如何将OTSMC 与事务管理器无缝集成以实现具体应用无关 性和控制事务管理的动态性成为待解决的关键问题之一。为 此,StarOTS 作出如下扩展:
(l) 扩展定义了事务抽象类和事务处理器抽象类
3.2 系统功能
构
OTSMC 事务抽象类基本功能是描述现实世界的一个事务,它 包含一个资源对象列表,记录所有注册的资源对象;事务抽 象类用于描述现实世界的一个事务,它包含一个资源对象列 表,记录所有注册的资源。如图2,这两个类是构成系统实 现层的主要实体,用户开发层使用的标准的IDL 接口最终都 间接由系统实现层来具体定义。事务与事务服务器的抽象使 得事务服务器、事务及相关资源间管理层次清晰、实现逻辑 简单。OTS MC 直接与系统实现层交互。
OTS MC 是在S tarOTS 基础上提供的一系列命令的实现。
OTS MC 实现了以下主要功能:
(1) 查询S tarOTS 服务器上任何一个全局事务所处的状态; (2) 查看与事务相关联的资源的状态;
(3) 查看注册到事务中的同步资源(如果有); (4) 迫使事务回退;
(5) 从某个事务中移去参与该事务的某个资源; (6) 关闭TM 域中的S tarOTS 服务器。
4 OTS M C 主要算法的实现
4.1 事务信息的搜集与显示
事务信息包括事务ID 、事务状态、该事务相关资源的 列表以及该事务的所有子事务的信息。其中资源列表中也将 列出同步资源信息,并给出各类资源的状态。可以看出,由 于嵌套事务的存在,事务信息的显示是一个递归过程,为显 示某事务的信息,OTS MC 应终端请求调用事务信息显示方 口
OTS 服务器
法 displayTxnNode ,而在该方法的实现中将再次调用 图2 OTSM C 与事务管理 器StarOTS 的无缝集成
(2) 扩展CosTransactions 中IDL 接口种类及现有IDL 接
口 的功能
为简化事务信息的管理与查询,增加了事务节点、资源 记录、同步资源记录等IDL 接口,在用户程序动态执行过程 中,实时改变存储在其中的相关信息的内容;另一方面,现 有IDL 接口功能扩展后实现了按名称控制关键逻辑等功能, 如按名称注册资源、删除一个资源等,通过对信息实体的按 名管理,由控制台管理逻辑从事务节点、资源记录、同步资 源记录等中按名称抽取信息并按一定格式显式出来。其中事 务管理器、事务、资源的名称按一定规则产生。
3 OTSMC 系统的设计
3.1 系统结构与工作原理
如图3,OTSMC 系统主要由4个部分组成:命令解释模 块OCI (OTS MC Commands Interpretor )、核心算法实
现模 块CI (
C ommands Implementation )、事务服务配置模块 O SC (OT S Service Configuration )、事 务 I
D 处理模块
displayTxnNode 对系统发起子事务信息查询消息。 上述事务主
要信息通过StarOTS 扩展的数据结构——事
务节点得到。该结构中存储了事务处理过程中事务、资源的 实时信息。对于主事务服务器中的每个资源,其信息搜集与 显示算法如下,由于插入事务功能实现的相对复杂性,在算 法实现的关键路径中给出管理并显示该类事务的处理过程:
(1) 通过资源名解析出事务ID 路径、事务所在的StarOTS 服务 器名以及资源的别名;
(2) 根据资源别名判断该资源是否是插入资源: 1) 若非插入资源则显示资源名和资源状态; 2) 否则,①显示资源名和资源状态;②调用lookthrough 显示 该资源所属事务在插入事务服务器上注册的所有资源的信息。
根据事务节点信息,lookthrough 方法先由事务名得到事 务ID 路径及该资源所在插入事务服务器,对该资源对应插 入事务,依次显示其所有资源信息:资源名、“@”、插入 事务服务器名、资源状态。 4.2 管理参与事务的资源
TIDP (Transaction Identifier Processing )。
对象事务服务中资源发挥着重要作用。n (n>=1)个资
其中,OCI 相当于OTS MC 系统的shell 程序,它负责从 命令名称到命令功能的映射,实现OTSMC 用户和CI 的桥接
(下转第44页)
S S e e r r v v e e r r
层 系统实现
Client
3.2 管理策略
企业自身可以实施支持敏捷制造、敏捷供应链等信息系统,但为众多企业服务动态联盟支撑系统应由独立的第3方机构实施。且这些机构一般以盈利为最终目的。同样在管理上或营销策略上存在如何吸引更多企业加入到支撑系统中来的问题。
显然在支撑系统达到一定规模前,对企业的吸引力有限。企业一方面需要付出加入的成本(技术投资、服务费等),虽然前期的成本可能不大;另一方面因为可供选择的潜在伙伴不多,所以企业的收益并不大。故支撑系统实施的关键是如何快速地突破规模临界值,激发企业加入支撑系统的动力。下面是几点可供参考的建议:(1) 在初期免费或以优惠的价格为企业提供服务,等系统到达一定规模后才提高服务价格;(2) 与B2B网站合作或将原有B2B网站提供的内容进行扩展,使其能支持企业构建动态联盟和动态联盟的运行;(3) 获得政府和行业协会的支持,如“863”计划在“十五”期间提出了对区域/行业现代集成制造系统的研究;
(4) 保证系统中企业信息的真实性,可以实施一定的惩罚机制,如对发布假信息的企业进行公布、限制其使用系统等。4 结论
本文没有全面的讨论动态联盟支撑系统的技术体系,而是从支撑系统的用户——企业的信息需求以及它们的相互关系出发,分析了“P2P”和“C/S” 两种结构类型的支撑系统获取企业信息以及支持动态联盟运行的方式和特点,以及对企业加入其中的动力的影响。并且从技术和管理两个角度提出了为满足企业构建动态联盟和支持动态联盟运行要求的一些方针和策略。
参考文献
1 Hajidimitriou, Yannis A. A G oal Prog ramming Mod el for Partner Selection Decisions in International Joint Ventures [J]. European Journal of Operational Research, 2002, 138 (3): 649-662
2 郑文军, 张旭梅, 刘飞等. 虚拟企业合作伙伴评价体系及优化决策[J]. 计算机集成制造系统——C IMS, 2000, 6(5): 63-67
3 韩坚, 吴澄, 范玉顺. 支持企业动态联盟的信息基础结构[J]. 清华大学学报(自然科学版), 1998,38(10):61-64
4 Wu S H, Fuh J Y H, Nee A Y C. C oncurrent Process Planning and Scheduling in Distribu ted Virtual Manu factu ring [J]. IIE Transactions (Institu te of Industrial Engineers), 2002,34(1):77-89
5 张丽, 申志勇, 张福顺等. 虚拟企业支撑平台系统——VESS[J]. 信息与控制, 2002, 31(2): 19-24
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
(上接第12页)源作为持久化信息的代表实体被注册到协调者中;协调者向资源发提交/回滚命令,并等待资源的投票
结果;资源向协调者发送“提交/回滚”票;协调者收到投票并根据其结果决策提交/回退当前事务。
如果一个资源的投票结果在事务提交/回退过程中可以被忽略,或者系统管理员认为在特定情况时系统某个状态下,某个已注册到事务管理器中的资源有必要退出全局事务,那么将通过OTS MC将该资源从事务服务中移除。
OTSMC管理一个抽象事务服务名与其IOR的映射表。当要移除一个资源时,OTSMC从资源名中解析出抽象事务服务名,查表得到该事务服务器对应的IOR,从而获得事务工厂;由事务工厂获得该服务器中的所有事务;对于要移除的资源所在的事务,获取注册有该资源的事务协调者,通过调用其remove_resource方法从事务中移除该资源。
4.3 强迫事务回滚
事务最终要么提交、要么回滚。对于某个事务,如果它的提交与现有需求不符,那么系统管理员可以在事务服务器正常处理事务的同时,人为地强制其回滚。
由事务服务的事务工厂得到其中所有事务节点,对于其中每个事务,如果该事务与指定事务名相同,则通过该事务节点的Terminator的rollback方法回滚该事务。
otsserver-789966123-1是事务标志符;
789966900指出资源对象的名字;
status: reg istered表示资源对象的状态。
用户可使用remove命令删除参与事务的某个资源。remove命令需要资源的ID作为命令参数:
otsmc# remove otsserver-789966123-1:968344900
可使用rollback 命令来回退一个正在运行的事务,rollback命令需要事务的事务标志符作为命令参数。以下的例子是回退事务标志符是otsserver-789966123-1的事务:otsmc# rollb ack otsserver-789966123-1
再次通过ls命令查看当前事务信息,发现资源otsserver- 789966123-1: 789966900被移除,事务otsserver-789966123-1 处于rolled back状态。
6 结束语
随着分布式应用的发展,越来越多的分布式应用执行着关键业务和长期运行(long-running)的业务,这些业务中往往事务处理发挥着不可忽视的作用。从经济和安全的角度,对这些系统所提供服务的间断都是不可容忍的。OTS MC是在事务管理系统运行的同时提供动态、灵活控制事务、管理事务信息的功能的一种解决方案。OTSMC在局域网环境中经过测试表明其运行稳定、可靠。
现有OTS MC版本仅支持共用一个事务服务器及其插入
5 运行示例
交互模式下, 在命令行窗口中键入“otsmc ”启动服务器(如果使用插入事务方式)的TM域中事务的动态控制与管理。下一步我们将扩展OTS MC,使其适应含有多个
OTS MC。
使用ls命令可列出OTS服务器中所有事务,该命令显示事务管理器的TM域。
参考文献
出每个事务的事务ID和其当前状态以及参与此事务的子事务、同步资源、资源对象列表。
资源列表中列出了所有注册的资源,一般列表项如下:otsserver-789966123-1: 789966900 (status: r egistered)
其中:1Object Management Group. Transaction Service Specification 1.2. OMG-Docu ment,2000
2Silberschatz A,Korth H F,Sudarshan S. Database System Concepts(Third Edition). 北京:机械工业出版社,1999
3 郑振楣,于戈,郭敏. 分布式数据库. 北京: 科学出版社, 1999
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论