论文部分内容阅读
随着基础网络的不断发展,智能手机普及率的不断提高,移动互联网正在逐步成为我们获取信息的主要方式。而推送系统作为传输信息的“发动机”,也应该与移动互联网的理念相适应,应该更容易获得并具有普遍性。但是对于中小企业来说,要实现一个自己的推送系统,其开发、管理和维护的成本是比较高的,但是消息推送又是现在移动应用的必备功能,因此有了本论文的研究内容。本论文设计并实现的基于MongoDB的多租户消息推送系统是在“移动+云”这一趋势下孕育而生的,是成都康赛公司普通教育云平台的一个衍生项目。它作为一个多租户系统,不仅可以向租户提供多平台的定制化推送服务,在此基础上,还为普教云租户提供了Web推送管理,向第三方提供了简单的推送接口。首先,本文会对选题的背景、来源、研究意义做介绍,并分析国内外研究现状,以及对相关理论基础与涉及的关键技术进行简要介绍,在此基础上,通过自己的使用、分析对一些现有的推送服务进行了很客观、全面的总结,并对其中的关键技术进行深入研究,为本文的研究、设计与实现工作做好铺垫。然后,会详细介绍MongoDB多租户数据层研究与设计实现工作,通过对关系型数据库存在的问题进行分析,给出为什么使用MongoDB做为多租户系统数据层的原因。接着从多租户四项设计特性出发,包括数据隔离性、定制化、可扩展性、数据安全,会在MongoDB上对四项特性进行研究设计。然后根据设计特性与需求分析进行系统数据库的设计,并通过实验与传统关系型数据库进行对比,说明MongoDB的定制化优势、时间性能优势,还会介绍本人对MongoDB的相关研究工作及成果。最后,会详细介绍多租户推送系统应用层的设计实现工作,会对系统做整体设计,然后会对系统中各个模块进行详细的设计与实现,包括Android平台客户端、服务端,IOS平台客户端、服务端,短信推送模块、Web推送管理模块、第三方推送服务调用模块,会对系统测试结果进行简要介绍。本论文创新点有四个:使用MongoDB作为多租户系统的数据层;将推送功能做成一种基础服务,不仅向租户提供统一的、透明的方法进行消息推送,而且会向租户提供多种实用功能;引入读写压力机制对MongoDB的Auto Sharding机制进行优化;提出很实用的MongoDB分页读取数据的优化方法。