论文部分内容阅读
随着互联网技术的发展,Web实时通信已经成为热点研究领域之一。Web实时通信的方式主要包括Ajax轮询、Comet和WebSocket:Ajax轮询通过周期发送Ajax请求获取服务器的最新数据;Comet建立HTTP长连接来实现服务器到浏览器的消息推送;WebSocket是HTML5提出的一种新的服务推送协议,实现了浏览器与服务器之间的全双工通信。目前,成熟的服务推送技术框架主要包括Pushlet、DWR、Flash XMLSocket和Java Applet o如果在复杂的应用场景和网络环境下,单独使用上述一种推送技术进行服务推送会存在服务器资源开销大但并发访问量小、系统稳定性差、浏览器版本不兼容、推送失败率高等问题。这些问题产生的最主要原因是上述推送技术的实现原理和应用场景各不相同。如果能在同一个Web应用中根据实际情况动态调整推送方式,充分利用各推送方式的优点,就能提高服务推送的总体质量。因此,本文构造动态决策模型,根据实际场景计算决策值动态切换推送方式,能够避免全部采用单一服务推送方式的弊端。本文的主要研究工作包括:1)本文详细分析和比较了现有的各种服务推送技术和框架,归纳了各种推送方式的实现原理和使用场景;2)本文设计了一种动态决策模型,该模型基于熵权法和层次分析法来构建,能够根据实时性需求、用户权限和服务器负载三者之间的实际情况动态选择推送方式。本模型提高了服务器资源利用效率,降低平均服务时间;3)本文设计了一个动态服务推送框架,使用决策中间件封装了本文设计的动态决策预测模型,解除决策计算和服务推送之间的耦合关系。决策中间件提供决策缓存,提高决策速度。推送服务器采用线程池技术,在推送任务到来之前预先创建一定数量的线程,提高了并发推送的处理能力和响应速度。最后,实验验证了本文设计的动态推送机制的性能,测试和比较了Ajax轮询、长轮询、DWR等推送方式的并发处理能力、平均服务时间、系统吞吐率和服务器资源开销,实验结果表明,本文设计的动态服务推送机制能够有效利用服务器资源,提高系统吞吐率,降低推送失败率,同时还能兼顾推送的实时性。