2.2 开发环境文献综述
1)技术平台:Eclipse 3.6.2;
2)数据库:MongoDB;
3)语言:Java;
4)开发工具:Java SDK、ADT;
5)操作系统平台:开发过程中使用的是Windows7旗舰版,运行时也可以采用其他操作系统。
3 技术简介
3.1 HTTP协议
HTTP是Web协议集中的重要协议,它是从客户机/服务器模型发展起来的。客户机/服务器是运行一对相互通信的程序。客户与服务器连接时,首先向服务器提出请求,服务器根据客户的请求完成处理并给出响应。浏览器是与Web服务器产生连接的客户端程序,它的端口为TCP的80端口。浏览器与Web 服务器之间所遵循的协议就是HTTP。
请求方法是请求一定的Web页面的程序或用于特定的URL。最基本的方法是GET和POST。事实上GET适用于多数请求,而保留POST仅用于更新站点。根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话说GET请求一般不应产生副作用。幂等的意味着对同一URL的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。从根本上讲其目标是当用户打开一个链接时,可以确信从自身的角度来看没有改变资源。
3.2 MongoDB数据库
MongoDB是一个高性能、开源、无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储模式[5,6]。MongoDB是用C++开发,提供了以下功能:
①面向集合的存储:适合存储对象及JSON形式的数据。
②动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记可轻易查询文档中内嵌的对象及数组。
③完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
④查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
⑤复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
⑥高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。 来.自/751论|文-网www.751com.cn/
⑦自动分片以支持云级别的伸缩性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。
Android开发的常见数据库系统有Sqlite,MySQL,SqlServer,MongoDB与它们的主要区别:
①Sqlite,MySQL,SqlServer是关系型数据库,MongoDB是NoSQL数据库,即非关系型数据库。
②关系型数据库:
1.有统一的标准化查询语言(SQL语句)。
2.表字段固定。
3.交叉查询速度慢。
MongoDB数据库:
1.不支持SQL查询。
2.字段不固定,支持JSon数据的直接存储。
3.方便的支持分片处理(数据分块存储),分布式部署。
4.文档结构存储,虽然有一定冗余,但查询速度更快。
5.是一种支持二进制数据以及大型对象的高效存储方式。
3.3 百度云推送
消息推送顾名思义是由一方主动发起而另一方与发起方以某一种方式建立连接并接收消息。在Android开发中发起方叫做推送服务器(Push Server),接收方叫做客户端(Client)[7]。相比通过轮询来获取新消息或通知,推送无论是在对客户端的资源消耗还是设备耗电量来说都比轮询要好,所以目前绝大多数需要及时消息推送的App都采用Push的方式来进行消息通知