基于Android和iOS的极地移动信息平台设计与开发

2015-01-29 06:01刘鹏庞小平艾松涛
极地研究 2015年1期
关键词:两极服务器端极地

刘鹏 庞小平 艾松涛

(1武汉大学中国南极测绘研究中心,湖北武汉430079;2极地测绘科学国家测绘局重点实验室,湖北武汉430079;3极地测绘遥感与全球环境变化实验室,湖北武汉430079)

0 引言

截至2013年上半年,中国智能手机用户规模已达到4.5亿[1]。移动网民数量的快速增长为移动互联网发展构建了坚实的用户基础,越来越多的用户已经习惯使用智能移动终端来处理与个人生活、工作、学习相关的事务[2]。目前,市场上并存的智能手机平台较多,既有传统的塞班[3],也有日益兴盛的 Android[4]和 iOS[5]。2013年第二季度,中国智能手机市场操作系统分布中,Android份额进一步扩大至74.5%,iOS占据11.4%,两者成为智能操作系统的主流平台[1]。

极地信息化建设促进了科研成果的交流与共享,并为社会公众提供了解极地考察的窗口。国内针对极地的信息平台建设已经取得极大进展,主要包括艾松涛等[6]开发的雪龙在线平台将“雪龙号”与国内的网络信息平台连接起来,实现了雪龙船与科考仪器数据的互换以及基于互联网的动态数据发布;李升贵[7]提出和实现的极地信息平台针对不同应用领域和用户,统一管理极地基础信息,分层次实现了极地信息应用;程文芳等[8]实现的极地标本资源共享平台解决了分布存储在全国各地的极地标本样品资源共享问题。这些信息平台为极地信息化建设奠定了坚实基础,但都是基于因特网建设实施的,数据的处理与展示局限于PC端,目前国内与极地相关的移动互联网应用产品相当缺乏。

鉴于当前移动互联网的快速发展以及移动终端设备的智能化,用户获取实时信息的方式逐渐从PC端转向了移动端,同时许多突发问题要求在移动的环境下完成快速决策。本文研究的极地移动信息平台(“掌上两极”)一方面可以方便极地管理部门、科研人员和社会公众快速获取极地最新信息,另一方面可以达到移动平台监控的作用,为相关工作人员提供一定的应急决策支持。根据前面分析的智能手机平台类型,“掌上两极”推出了Android和iOS两个版本。

1 系统设计

“掌上两极”的建设以实现南北极各个考察站实时数据的快速查询与共享为目标,系统采用客户端和服务器的解决方案,结合多线程和Ajax异步通讯技术,配备Oracle作为数据库,设计实现了极地新闻、极地相关数据的浏览查询等功能。

1.1 系统整体架构

为保证数据的安全性以及不同客户端访问的统一性,“掌上两极”采用典型的客户端和服务器架构,数据存储在服务器端,客户端只负责界面布局与数据展现,减轻了客户端的负载量。客户端采用MVC(Model-View-Controller)设计模式,最大限度降低模块之间耦合度。客户端与服务器借助JSON接口进行数据传输,不同客户端访问相同的数据接口,实现信息的统一,服务器端数据更新也可以及时反映到客户端上。系统整体架构如图1所示。

1.2 系统功能模块设计

通过“掌上两极”可以方便地查看南北极各个考察站的最新数据。经过前期需求调研与分析,根据功能特点将系统划分成13个模块:极地新闻、队员报名、考察申报、极地论文、雪龙动态、极地影像、GPS、验潮数据、极地气象、极地地图、网络资源、极地专项、用户反馈,各功能模块内容如图2所示。

图1 “掌上两极”架构图Fig.1.System structure ofmobile polar

图2 “掌上两极”系统功能模块图Fig.2.System function modules ofmobile polar

1.3 主要功能模块介绍

(1)极地新闻 展示极地相关的新闻、公告等,方便用户了解极地最新动态,主要包括“媒体动态”、“重要记事”、“公告通知”三个栏目。

(2)雪龙动态 雪龙动态是一个连接雪龙船与国内的信息平台,借助于海事卫星通讯链路将船上航行动态信息、考察仪器数据同国内服务器进行交换,并实时发布,为极地考察主管部门、考察队员及其家属、社会公众提供一个了解雪龙船航行动态的窗口[6]。用户可以查看“雪龙”号当前位置、近期的实际航迹、历史航迹,以及“雪龙号”实时监控数据。

(3)极地影像、GPS等数据的查询浏览 查看南北极科学考察区域和“雪龙”号最新的GPS、气象、验潮以及影像数据,通过这些数据可以了解最新的南北极现场,增加对极地环境的直观认识,支持区域包括长城站、中山站、黄河站、雪龙船和其他重点考察区域。

(4)事务处理 包括队员报名、考察申报、极地论文模块,提供一些与考察管理相关的事务处理操作,方便极地管理部门及科研工作人员使用。

(5)极地地图 展示一系列反映极地测绘科学考察成果和南北极自然地理环境的地图和影像,包括南极全图、长城站、中山站、Dome A等区域,支持本地浏览和在线查看两种方式。

2 客户端设计与实现

2.1 Android开发技术

Android平台自底向上由四个层次组成[9]:Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层。Android提供了丰富的类库并且大部分为开源代码,在应用框架层Android开发人员拥有访问框架APIs的全部权限。“掌上两极”Android客户端采用JAVA语言开发,并充分利用其面向对象、安全、可移植性好等优势,从服务器接口获取数据时使用Android提供的AsyncTask类实现异步操作,避免阻塞UI线程。

2.2 iOS开发技术

iOS是iPhone、iPod以及iPad等设备的核心操作系统,它重定义了移动设备可以实现的功能,并拥有良好的用户操作体验。iOS系统架构分为4个层次[10]:核心操作系统层(Core OS Layer)、核心服务层(Core Services Layer)、媒体层(Media Layer)、可触摸层(Cocoa Touch Layer)。“掌上两极”iOS客户端开发完全遵照iOS四层结构及应用开发规范设计实现,系统应用到了 Foundation、UIKit和 Core Graphics等框架,开发语言为Object-C,在开发过程中使用NSThread技术实现数据异步读取。

2.3 客户端实现过程中的关键技术

(1)增强用户体验 智能手机不仅仅要满足应用需求,更重要的是注重用户体验,“掌上两极”客户端在开发过程中,结合实际功能模块,进行了相应的优化:用户在启动时,程序自动检测手机网络连接是否正常,如果没有检测到可用网络,则提示用户联网;通过手机内置浏览器控件打开数据量较大的网页时往往会很慢,例如“雪龙动态”页面需要加载谷歌地图,数据量比较大,为此程序中设置了一个进度条显示当前页面加载进度;客户端界面分别结合Android和iOS平台特点精细化设计,简洁易懂,具有强烈的视觉层次感等。

(2)异步加载数据 系统客户端与服务器端之间通信采用HTTP协议,基于HTTP协议的交互方式有同步请求和异步请求两种。应用程序默认情况下只会开启一个主线程,它需要完成执行代码段、接收用户交互事件、更新窗口等任务。同步请求在主线程中进行,在请求过程中主线程不能响应外部输入,当某一个任务耗时较长时就会出现主线程阻塞,界面无法响应的情形,尤其是在国内的网络不稳定的情况下。针对这种问题,客户端在通过网络获取数据时新开辟一个线程实现数据异步加载,数据读取完成后通知主线程更新用户界面,避免阻塞主线程,给用户良好的使用体验。

(3)数据缓存 使用缓存可以让应用程序更快速地响应用户输入,有时候需要将从远程服务器获取的数据缓存起来,避免对同一个URL多次请求,由于“掌上两极”客户端数据基本都需要从服务器端获得,所以进行数据缓存很有必要。iOS客户端中主要使用了内存缓存,“雪龙动态”、“极地论文”和“队员报名”模块都是通过网页控件直接打开网页,并设置网页缓存,再一次请求时则是从内存中获取数据;“极地新闻”和“极地影像”模块中接口数据采取一次性向服务器请求并保存在内存中,切换浏览时直接从内存读取。Android客户端中主要使用了本地缓存,用户浏览过的图片都会下载到本地,再次查看时直接从本地加载。缓存的应用在减轻服务器负担的同时提升客户端响应速度,另一方面也节省了上网流量。此外,“极地地图”模块中的地图数据经过预处理后直接打包到iOS安装文件中,在提升用户体验的同时减少了网络下载流量,对地图分辨率要求高的用户可以通过客户端提供的接口浏览原始分辨率图片。

2.4 客户端运行效果

经过详细的功能设计,人性化的界面布局和敏捷的开发流程,“掌上两极”客户端开发已基本完成。目前iOS以及Android版本分别已经在App Store和Android应用市场正式发布,其中Android客户端适用于Android 2.3.3以上系统,推荐使用大屏幕(4.0英寸及以上)手机进行体验;iOS客户端支持 iPhone、iPod和iPad,适用于iOS5.0以上系统,图3为APP效果图。

图3 iOS(a)和 Android(b)客户端主页Fig.3.Home page of iOS(a)and Android(b)client

3 服务器端设计与实现

服务器的主要功能是提供数据交互,使用户获取最新的极地资讯,同时接收用户的反馈信息,系统基于Apache发布Web服务,利用PHP编译动态页面,采用轻量级的JSON作为数据交换格式。此外,为深入挖掘用户的需求及使用习惯,服务器还需要对客户端的请求进行记录,方便后续改进软件和服务。

3.1 服务器端接口设计

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式[11]。它是基于JavaScript的一个子集,具有面向对象的特点,易于人阅读和编写,同时也易于机器解析和生成。服务器端在设计数据接口时兼顾以下几个方面:(1)层次性,方便调用;(2)独立性,接口之间耦合度低;(3)易于扩展,满足功能模块扩充需要。如图4所示,服务器端对不同类型的极地数据进行分级抽象,每一级中节点均采用“key-value”的表达形式,例如第一级中节点“03:极地气象”,冒号前面为key,后面为value,这种表达方式易于JSON实现;为保证用户体验,接口层次不宜超过5级,客户端具体实现过程中最多使用了4级。客户端获取数据需要从上到下逐级进行,这种层级接口设计方式保证了客户端访问的灵活性,可按需获取相应层次数据,不同级别数据获取互不影响,并且扩展起来很方便。

3.2 服务器接口响应时间统计

为了更好地验证JSON的数据传输效率,本文对服务器接口响应时间进行测试。接口测试采用联通版iPhone5在3G环境下进行,网络状态良好,单位是毫秒(ms),测试结果如表1所示。接口测试从参与网络交互的第2级接口开始,其中“—”表示未定义相应层级接口,由于网络环境不稳定等原因,实验数据会有一些波动,本文对每一级接口测试10次然后取平均值。从表1中可以看出,各模块综合响应时间均不超过4 s,用户体验良好。

图4 数据接口设计示意图Fig.4.Diagram of data interface design

表1 服务器JSON接口测试结果表Table 1.Test results table of server JSON interface

3.3 客户端访问记录统计分析

为研究用户的使用习惯,服务器端对每一次数据请求自动记录,通过分析数据日志对软件的后续开发加以调整。本文选取2014年1月10日(稳定版发布)到2014年4月24日的时间段对访问日志进行分析,结果如下:

(1)访问日志总共包含7 313条记录,其中iOS客户端访问3 912次,Android客户端访问3 401次,访问最频繁的三个模块分别是“极地影像”、“极地新闻”和“极地气象”。分析IP归属地发现访问用户主要来源于武汉、北京和上海,同时有少量用户来源于海外,如美国、意大利和挪威。客户端访问趋势如图5所示。

图5 客户端累计访问量趋势图Fig.5.The trend of client access

(2)通过将访问日期转换为工作日并加以统计,各个工作日访问量差距不是很明显,如图6所示。

图6 客户端访问记录按工作日统计Fig.6.Client access statistics by weekdays

(3)以小时为单位,统计用户一天之内每个小时的访问次数,结果如图7所示,从图中可以发现,用户一般会在上午上班(8:00)和下午下班之后体验软件。

图7 客户端访问记录按小时统计Fig.7.Client access statistics by hour

通过对数据日志的统计分析,可以跟踪发掘用户的使用习惯,进而指导软件的进一步研发和扩展,使得软件升级完善并且更加面向用户需求,稳步提升用户体验。

3.4 关键技术与原则要求

服务器的主要功能是提供数据交互,因此首先要保证数据的完整性和安全性。数据获取方面,在雪龙船和考察站点现场采集的数据通过海事卫星通讯网络回传到国内服务器上,考虑到海事卫星通讯可能存在的不稳定性以及费用限制,采集的数据会先在远端数据中心保存起来,以确保数据完整,然后由后台服务程序对数据进行抽样并选取半小时1次的数据记录回传到国内服务器上[6]。服务器进行数据交换之前首先对数据来源进行筛选确认,防止数据被恶意拦截篡改;接收的数据在入库之前也会进行数据检验,充分保证了采集数据的可靠性和安全性。

移动终端用户通常采用移动网络访问服务器,此种方式经常受到带宽以及网络流量的限制,因此选择一种安全高效的数据通信方法尤为重要。JSON能从众多的远程数据库通信方法中脱颖而出,主要在于其通过HTTP协议访问应用服务器,安全、快速、通用、数据通信量小,同时对后台数据库没有特殊要求。JSON通信方式在保证系统高效及安全的情况下,降低了对移动终端的要求。

4 结论与展望

本文基于已有的数据基础和极地科考需求,设计实现了中国南北极考察数据浏览与互动的移动信息平台—“掌上两极”,该系统囊括了Android和iOS两大智能手机平台。系统在设计阶段考虑到后期功能扩展的需要,对框架的设计保持灵活性,同时系统开发兼顾了移动平台的特点,注重用户体验,尽量减少不必要的网络交互,提升客户端响应速度。“掌上两极”的数据来源于中国极地科学考察管理信息系统,具有权威性,方便极地管理部门、社会公众和科研人员获取最新的南北极相关信息。该系统已于2014年1月经过专家鉴定,评价其实现了极地管理与社会服务功能的有机结合,填补了中国极地信息移动终端服务软件的空白。当然,系统也存在一些不足,比如“队员报名”、“考察申报”等模块直接转到了相关网站,后期需要针对移动客户端进行网页的优化和功能扩展。截止目前,“掌上两极”主要解决了移动环境下的数据快速获取问题,下一步研究计划主要包括以下三个方面:(1)深入探讨极地考察业务需求,增加针对管理部门的应急决策支持功能;(2)增加基于LBS的移动数据采集模块;(3)根据访问统计的分析结果及用户反馈意见加强对系统的测试及扩展,进一步提升用户体验。

1 2013Q2中国智能手机市场季度监测报告.http://www.iimedia.cn/36890.html.

2 荆明.基于Android校园地理信息搜索系统的研究.大连:大连理工大学,2013.

3 高天.关于塞班系统的思考.数字技术与应用,2013,(4):236—236.

4 Android,the world'smost popularmobile platform.http://developer.android.com/about/index.html.

5 iOS是什么.http://www.apple.com/cn/ios/what-is/.

6 艾松涛,鄂栋臣,朱建钢,等.雪龙在线网络信息平台的研发与展望.极地研究,2011,23(1):56—61.

7 李升贵.构建极地“三大平台”推动“数字极地”建设——908专项“数字海洋”极地研究中心节点成果与应用.海洋开发与管理,2010,27(6):49—57.

8 程文芳,张洁,夏明一,等.极地标本资源共享平台系统设计与实现.极地研究,2013,25(2):185—196.

9 吴林,熊滔,蔡永香.基于Android手机的地图应用设计与开发.城市勘测,2011,(2):16—19.

10 张博.基于iOS的MSN Messenger V7.0手机客户端的设计与实现.北京:北京交通大学,2012.

11 李洁,王恂.用JSON改进AJAX数据传输.中国高新技术企业,2008,16(1):123.

猜你喜欢
两极服务器端极地
极地恐龙生存赛
可怕的极地雪融
Linux环境下基于Socket的数据传输软件设计
动物“萌主”在两极
浅析异步通信层的架构在ASP.NET 程序中的应用
地球的两极
极地之星
基于Qt的安全即时通讯软件服务器端设计
人教版“两极世界的形成”商榷
网页防篡改中分布式文件同步复制系统