消息中间件客服协议设计与实现方法研究
作者单位:电子科技大学
学位级别:硕士
导师姓名:张帆
授予年度:2007年
学科分类:12[管理学] 1201[管理学-管理科学与工程(可授管理学、工学学位)] 08[工学] 081201[工学-计算机系统结构] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:一段时间以来,愈来愈多的项目不同程度地提出了消息中间件的使用需求,以及近年来消息中间件在软件开发工程中需求的大面积增长,导致消息中间件的开发愈来愈受到业界的重视、进而也受到了学术界的重视。消息中间件的实现方式千差万别,而客服协议的设计实现始终是消息中间件实现中的重要一环。客服协议的设计直接影响中间件的运行效率、安全性以及扩展性与灵活性。本文试图在这方面有所进展。 本文主要研究了两类协议,文本协议和二进制协议。 在文本协议的设计中,采用了XML格式,这是由XML的多方面优点决定的。XML的优点主要包括一下几个方面:可读性强、易于实现、自描述性以及易于与WEB应用集成。另外XML文档在正确性验证方面也有了公开标准以及通用的验证工具,这为协议的正确性验证提供了方便。本文利用XML格式设计并实现了一个消息中间件的客服协议,并详细描述了协议的格式、设计的过程,并列举了几个消息中间件中常见并具有代表性的例子。 XML格式的协议虽然集种种优点于一身,但也有因其优点而带来的缺点,而这其实是文本格式自身的缺点。 与二进制格式比较起来,文本格式在描述同样信息的时候显然需要更多的字节数,因此带来了诸多问题。这些问题包括:资源占用加大,处理效率降低,网络流量增大等,而且问题会比二进制方式严重好多倍,同时还出现了二进制中不会出现的字符编码与字符集问题。这一系列问题都是文本格式自身所固有的。到目前为止尚没有出现一个公认的比较优秀的解决方案,可以将文本格式的优点保存,将缺点去掉。WAP领域提出的WBXML规范在这方面迈出了重要的一步。 WBXML规范将XML标签表示为单字节整数值,将标签值分割为代码空间和代码页,为结构和控制标签定义了全局唯一的代码常量,提出了二进制XML的语法描述,这一做法为提高XML的效率作出了极大的贡献。随后,Marc Girardot和Neel Sundaresan在WBXML的基础上作了进一步的改进,将二进制XML中的结构信息和内容数据分离开来,对常见数据类型进行了编码,并测试了改善后的协议性能。如预料的一样,协议性能有了很大的改善。 二进制XML在性能上优于XML是必然的,但两位作者并没有说明到底有哪些因素影响性能,以及这些因素对性能的影响有多大,有什么样的特点即二进制XML设计适用的应用特点。这些问题不解决,这个设计就很难被普遍接受并应用。同时两位作者的设计也与WBXML不再兼容。 本文在详细考虑常规应用的特点后对设计细节做了改动,使得设计更具有普适性,尤其是在消息中间件中的应用。本文接着解决了设计与WBXML的兼容问题,使得这个设计能够与移动应用接口。随后本文对设计做了实现并进行了详尽的性能测试,绘制了测试曲线,从曲线中总结出影响设计性能的两个关键因素一文档大小和文档标签比例,对这两个因素是如何影响设计的性能进行了详细的分析。最后本文提出了设计所适用的应用特点,为这个设计走向应用铺平了道路。 在所有工作都完成后,本文预测了这一设计的未来走向,即发展专门针对XML文档特点的压缩算法。