论文部分内容阅读
消息队列是由System V引入的进程间通讯(IPC)的一种机制,在1993年由IEEE在标准IEEE Std 1003.1中进行了标准化而成为POSIX标准的一部分。POSIX消息队列在单机范围内已成为通用的通讯标准。本文对POSIX消息队列进行了有效的扩展,使其分布在网络上作为一种基础中间件平台为分布式计算提供服务。本文做了一些卓有成效的工作以对现行的POSIX消息队列进行了实质性的改进:成功地把消息队列从单机拓展到网络(局域网甚至是广域网),深入分析了分布式环境下消息队列的宏观架构和微观特征,进而提出了分布式消息队列的概念,并且设计了一套完整可行的实现方案。提出了用描述字的方式引用分布式消息队列的方法并成功地实现。从而突破了在POSIX和SystemV体系下,消息队列作为一个独立的特别的实体而存在所造成的局限性。这意味着分布式消息队列与其他的标准的I/O通道完全一致,给客户进程的编程模型带来极大的方便。成功实现了对分布式消息队列异步的操作方式,消除了POSIX消息队列只能够进行同步访问的缺陷。异步的I/O方式给了应用程序更大的灵活性和更好的响应特性。提出了以XML和XSD的方式来包装和描述消息的方法,队列内部提供对XML进行解析和串行化的功能。这种方法进一步地扩展了分布式消息队列与其他中间件的兼容性和互操作性。在分布式消息队列的基础上首次提出了“软件总线”的概念。本文深入探讨了在分布式消息队列的平台基础上传递SOAP消息,从而实现松散耦合的远程调用,以构造一种简单灵活、易于扩充、跨平台的、松散耦合的总线结构的分布式软件平台。这个平台类似于硬件总线在机器内部各部件之间的通讯作用,我们称之为“软件总线”。比较DCOM或CORBA等传统的组件技术,软件总线具有更合理的通讯模式,更好的兼容性和互操作性。在软件总线支持下,客户和服务器并不是紧密耦合的点到点的通讯,当客户向总线请求服务时,由总线定位服务器,并且在服务器之间提供负荷平衡功能。软件总线在网络环境下作为一个虚拟的通讯通道为总线上的各节点提供松散耦合的远程调用服务,它为分布式计算提供了一个新的思路和解决方案,在软件工程领域具有广阔的应用前景。另外,本文所实现的分布式消息队列提供多种响应和通告机制,以及数据加密、<WP=4>日志等附加可选的服务功能。分布式消息队列服务与现有的目录管理服务兼容,队列实例纳入目录管理之中,为客户提供快速的全局查询能力。本文从软件工程理论和实际应用案例两个方面深入探讨了分布式消息队列的应用:提出了在分布式消息队列的基础上构建具有动态路由功能的松散耦合的工作流管理系统的实现方式。在分布式消息队列的支持下,工作流管理系统具有更高的可靠性和稳定性,更易于实现路由配置和松散耦合的集成。这种构建方案对其他的电子商务应用也十分具有推广和应用价值。在三峡梯级调度中心对《三峡数字梯级调度决策支持系统》与《三峡梯级水电联合调度》以及其他的相关系统使用分布式消息队列进行系统集成。在分布式消息队列的支持下,分布式计算方便地跨越了不同的操作系统与编程环境,降低了应用系统群的耦合度和依赖性,减少了重复开发,增强了模块的重用,各子系统与模块能够顺利地链接、协作,相互关系清晰,调用方式灵活,数据传递路由动态配置,系统扩充性好,极大地提高系统群的兼容性和互操作性,为以后的维护、升级改造、系统扩展留下足够的空间。 本文所提出的分布式消息队列体系在软件理论上有所突破和创新,在实际工程中得到成功的应用,具有广阔的发展潜力和推广价值。