论文部分内容阅读
过去十年中,分布式对象技术得到了迅速发展并在制造、金融电信、保险和交通运输领域得到了广泛的应用。CORBA是一个分布式对象的应用架构规范,由于其独立于网络协议、独立于编程语言和软硬件平台,在大型分布式异构软件系统的领域得到了越来越广泛的重视和应用。CORBA规范提供了基本的对象服务,这些服务都是可重用的,有效减轻了应用软件开发、配置和管理的代价。CORBA事件服务就是CORBA核心服务之一。CORBA事件服务提供一种松散的、异步的通信机制,它建立了一个通用的分布式事件模型。 随着CORBA技术在各关键领域应用的加深,对CORBA的高可用性和高可靠性的要求越来越迫切。容错是提供高可靠性的关键机制。虽然OMG组织早在2001年就推出了容错CORBA规范,国内外很多单位也在进行容错CORBA的研究,然而到目前支持容错CORBA的中间件产品还很少。所以,现在在基于CORBA的中间件平台开发可靠的应用,很大程度上还需要应用开发者在应用级别进行容错的开发。 本文结合作者在分布式电力监控系统中的研究与开发,介绍了一个支持容错的CORBA事件服务的设计与实现。由于电力监控系统的需求,该事件服务采用了push-push的数据传递方式,还提供了事件订阅、事件退订和事件过滤等功能。事件服务的容错采用了对象冗余的方式,在不同主机上运行多个事件服务副本,这些副本的身份是平等的,它们随时准备响应客户请求。但每个客户请求只能由其中一个副本去执行。各副本之间的状态同步采用一种改进的主动复制方式:一个事件服务副本执行客户请求之后,将自身状态的变化通过CORBA接口调用通知给其它副本。除了这种同步措施,还提供了周期性同步,每隔一段时间由当前网络中启动时间最晚的事件服务对其它副本进行同步。目前,该事件服务已通过测试并在电力监控系统中投入使用,实践表明其符合容错应用的要求。 由于该事件服务与电力监控系统的应用结合比较紧密,故通用性较差。参考ACE Tao的容错CORBA模型,本文又给出了一个完全符合CORBA规范的容错事件服务的设计方案,该方案给出了容错事件服务的总体结构,并讨论了状态同步、复制方式和复制管理器配置方面的设计。