论文部分内容阅读
伴随企业信息化建设步伐,其IT基础设施投入比重也逐渐加大。传统的IT基础设施建设过程中易出现诸如配置部署复杂、软硬件升级成本高、机密数据分散、数据安全保障机制不完善等一系列问题,不便于数据的集中管理与维护,云桌面平台为其提供了一种有效的解决方案。云桌面平台通过虚拟化和分布式存储等技术将服务器、存储、网络等资源虚拟成易扩展、可按需分配的弹性虚拟资源池。然而目前市场上的云桌面平台中并没有集成内置的消息系统,这样对云桌面平台管理者和使用者都带来了极大的不便。同时,云桌面系统管理着客户方上百套软件系统,从云桌面平台集中管理的角度,也希望能够整合业务系统的共性。因此,多个业务系统中的消息通知,就可以借助云桌面统一接入,在用户登录云桌面的时候,就一次呈现。针对上述问题,本文设计并实现了云桌面平台中的消息系统。此消息系统不仅为云桌面平台的管理者和使用者提供了很好的消息交互方式,且使用此系统能够整合企业现有业务系统中的消息通知功能,提供更好的用户体验。本文消息系统选用MQTT(Message Queuing Telementry Transport,消息队列遥测传输)协议作为主要通信协议。MQTT协议支持基于主题的发布订阅模式,通过与客户端维持长连接,采用主动推送方式将消息及时可靠地传递给用户。本文分别从服务器端和客户端对消息系统的主要模块进行了设计与实现,服务器端主要包括管理子系统、推送子系统两个部分,管理子系统负责用户管理、主题管理、消息管理等,推送子系统主要负责订阅管理、消息的转发和存储。客户端主要包括订阅管理模块、维持长连接模块、离线消息获取模块、消息去重模块,通过服务端与客户端的协同工作,完整地实现了消息系统的功能。本文消息系统是基于开源项目Mosquitto并进行了一些改进完成的。通过对Mosquitto源码的分析与研究,改进了其部分消息处理流程,设计和实现了去中心化集群,消除Mosquitto原生程序集群部署时存在的单点问题,增加了消息系统的健壮性、可用性。最后,从功能和性能角度对消息系统进行了测试。测试结果表明,该消息系统不管是从功能还是性能上都达到了预期的目标。