论文部分内容阅读
随着互联网技术的发展,实时信息传输广泛应用在协同工作、网络会议、即时通讯、实时监控系统、股票期货行情等B/S架构的系统中。实时信息是在相关事件发生后随即产生的信息,一般会随着时间的变化动态改变。这种信息能通过某种发布机制,在较短的时间内传送给应该接收该信息的对象。
实时信息的传输可以不使用HTTP协议,如利用“服务器回调”、“消息”等技术。这些技术一般要使用浏览器插件,如ActiveX、Applet等。但是浏览器插件需要下载和安装,部署和维护比较麻烦,有时也会带来一些安全问题。而且,这些技术往往使用的不是标准的HTTP端口,或者采用了不同于HTTP的特殊网络传输协议,在通过防火墙和网关时可能会发生问题。
在不适合使用浏览器插件技术的应用环境下,实时信息的传输需要采用直接使用HTTP协议的模式。现有的基于HTTP协议的实时信息传输主要有三种方案:基于客户端定时器的同步刷新、基于Ajax的异步传输和服务器端Push技术。本论文深入地研究了这三种方案的原理和实现方法,并对比了这三种方案的优缺点和适用范围。
在以上分析的基础上,本论文提出了一种新的实时信息传输方案,该方案把基于Aiax的异步传输和服务器端Push两种技术结合起来,实现了利用HTTP长连接进行实时信息异步传输。这种新型基于HTTP的实时信息传输方法主要包括通信协议设计、服务器端设计和客户端设计三部分研究内容:
1)通信协议设计是在HTTP协议的基础上,新增了本方法需要的相关字段。在协议中,实时信息传输采用XML格式的编码。
2)服务器端采用Java平台上的HTTP长连接技术,将产生的事件对象以XML格式推送给客户端。服务器端类的设计采用了“发布/订阅”、“生产者/消费者”、“适配器”、“单例”等多种设计模式。本论文讨论了服务器端会话管理、订阅主题、发布订阅信息等功能的实现方法,并详细讨论了服务器端加入会话、信息订阅、信息派发等场景的UML时序图。
3)客户端采用Ajax技术,涉及到的关键点包括XMLHttpRequest、JavaScript、XML和DOM,实现了客户端加入会话、订阅主题等功能。在接收到服务器端推送的相关订阅主题的实时信息后,客户端能通过DOM更新用户界面。
本论文最后讨论了新方法在期货交易系统实时行情模块中的应用。在读取相关期货的实时行情后,服务器端使用Push技术推送XML代码,客户端使用Ajax技术将数据实时显示在浏览器中。客户端采用了文本和矢量图形两种用户界面,文本界面主要是通过XMLDOM更新状态表格,矢量图形界面使用VML语言,将实时信息的状态值绘制为矢量图形。论文还讨论了客户端兼容性测试、压力测试和性能分析等方面的内容。