论文部分内容阅读
随着移动互联网的发展,移动即时通讯App现在成了人们生活中不可或缺的一部分。现在大部分企业都自己摸索形成一套自己的即时通信架构,但是这个过程中无疑会走很长的弯路,很多时候可能需要重新设计以适应用户量增长的需求。本文旨在分析和设计一套可伸缩、高并发的服务器架构和适合移动即时通信App的客户端架构。服务器架构从传输协议、长连接架构、短连接架构和数据库架构四个大的方面分析并设计。传输层要求保证消息的安全性,同时要求以尽可能小的字节数表示协议的内容,从而节省网络传输流量。长连接架构要求能在尽可能省电的前提下保证消息即时可达。Http短连接架构设计要求保证服务的稳定性和可伸缩性,当并发量增加时候可以通过添加服务器数量或提高服务器硬件配置来提高吞吐量。数据库架构要求业务层不用关心数据库分库分表具体逻辑,同时保证数据库访问速度。本文从技术选型、架构模式、消息可靠性传递、长连接保持策略和DNS解析优化这五个大的方面分析和设计客户端架构。综合分析每个方面现阶段的解决方案,分析其优缺点,最终设计适合移动即时通信平台的解决方案。这套方案从协议设计和服务器架构两个方面来考虑解决现在即时通信系统的高流量和耗电量大的问题,并保证用户通信的安全性。针对IM用户属性,本文提供了一套高可靠可伸缩的服务器架构。客户端使用J2objc将Android平台的逻辑代码翻译成iOS平台能够直接使用逻辑代码,解决了Android和iOS平台80%以上代码重复编写的问题,同时UI可以各个平台用各自的Framework编写,从而达到了业务逻辑共享代码,UI独立开发,保证了用户体验同时节省了企业人力成本。本文采用软件工程管理方法完成了系统需求分析、系统设计、系统实现、系统部署和系统测试的各个阶段。系统设计阐述了本系统应用的关键技术,建立可伸缩高可用的服务器模型和建立适合即时通信App客户端的框架。通过测试验证了服务器系统设计的可行性。客户端实现了登录注册,聊天等关键功能,验证了信息交互的安全性、消息推送的及时性和UI的流畅性,解决了不同平台之间能共享逻辑代码而不影响客户端性能和用户体验的问题。