科研在线平台文档的移动客户端-王巧
更新时间:2023-07-21 06:58:01 阅读量: 实用文档 文档下载
- 科研绘图在线平台推荐度:
- 相关推荐
科研信息化技术与应用2013, 4(6): 48–54
APPLICATION 应用 /
“科研在线”平台文档的移动客户端
王巧1,2,郑依华1,南凯1
1. 中国科学院计算机网络信息中心,北京 1001902. 中国科学院大学,北京 100049
摘 要:云计算和移动智能终端的发展极大地改变了人们的生活,也为协同工作带来更多的便利。科研在线平台中的协同文档库是基于云存储的协同工具,为用户提供面向团队的文档协作与管理服务。本文的工作是设计并实现了基于 iOS 的协同文档库移动客户端。通过对用户使用场景的分析,得出系统功能。根据移动应用的特点,设计系统框架。本文主要从网络编程、数据缓存和登录认证这三个方面的关键技术来描述系统的实现。
关键词:移动客户端;文档库;iOS;科研在线
Mobile Client Application of Document Based on Research Online
Wang Qiao1, 2, Zheng Yihua1, Nan Kai1
1. Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190, China2. University of Chinese Academy of Sciences, Beijing 100049, ChinaAbstract:
Cloud computing and mobile intelligent have changed people's live greatly, and brought more convenience to collaborative work. Collaborative document library of Research Online platform is a collaborative tool based on cloud storage, providing users with team-oriented document collaboration and management service. The work of this paper is to design and implement iOS mobile client based on the Research Online document library. The system functions are acquired through the analysis of user scenarios. The system framework is designed according to the features of mobile application. This paper introduces the system implementation mainly from three aspects of network programming, data cache and login authentication key.
Keywords:mobile client application; document library; iOS; Research Online
48
引言
随着移动互联网的飞速发展和移动智能终端的普及,特别是云计算技术与互联网技术的相互融合,包括云办公、云娱乐、云存储、云搜索在内的诸多基于云计算和移动智能终端的应用,正越来越多地改变着人们的工作和生活方式。随时随地获取和分享数据已经成为了一种新的需求。
科研在线[1]是由中国科学院计算机网络信息中心承担建设和服务的云平台。它集成了中国科学院分布式信息化基础设施,融合各学科科研数据,利用协同工作环境套件 Duckling,为科研人员透明地提供网络虚拟科研服务,如协同编辑、文档存储、科研管理、科学数据处理、高性能计算和数据可视化等。科研在线以“科研乐趣在云端”的理念,利用最先进的信息通讯技术,为科研人员的科研工作带来便利和乐趣。云计算和移动智能终端的发展带给我们更多的机遇和挑战,特别是移动智能终端的便携性,信息获取的及时性为协同工作带来更多的便利。在这个背景下,本文设计和实现了移动智能终端的协作工具,为科研人员提供一种新型的社会化协作方式,有效地进行信息交流和互动,提高工作效率。
文档库移动客户端基于现有的移动开发技术实现,使用户能随时随地与团队保持联系,获取团队最新动态,阅读所需文档,分享文件等,有效地串联信息的创建、组织、搜索、分享和协作行为。移动设备的最突出优点是其移动便携性。用户在类似于外出、开会、乘坐交通工具等不方便使用电脑时,便可使用移动客户端了解工作动态。
当作大容量的网络硬盘使用。它也支持文件与其他Dropbox 用户分享,或通过网页来获取。Dropbox 解决了文档存储和共享的实际需求。Dropbox 有 Web 版、PC 客户端、基于 iOS 和 Android 的移动客户端。
Evernote[3] 是一个基于云端的笔记,满足人们随时记事的需求。用户利用 Evernote 手机应用可以随时记录下自己的所见所想,并且可以分享给其它用户。
类似的还有 SkyDrive、百度网盘、金山快盘、有道笔记等应用。这些应用主要面向个人,在一定程序上满足了个人存储和记录的需求。
1.2 协同文档库
这些产品在一定程度上满足了用户某一方面的需求,但在实际应用中,无论个人工作还是团队协作,信息的创建、组织、搜索、分享和协作都是相互关联的行为。
协同文档库[4]是基于云端存储,面向团队的协作式写作、文档共享和管理工具,帮助团队随时随地协同分享与交流,有效地串联信息的创建、组织、搜索、分享和协作行为。协同文档库目前推出了 Web 版。
协同文档库 Web 版最大的特点是团队文档的存储、管理和协作。团队的成员可以在网页上协同编辑页面。文档库提供强大的标签和版本管理功能,支持对文档的组织。同时支持成员对文档的评论和分享。团队成员可以通过文档库进行便捷的沟通和高效的协作。
1.3 移动开发
移动互联网技术的发展,使得人们日常生活和工
1 相关研究
1.1 云计算和移动互联网应用
云计算的快速发展,提供给移动智能终端超大的空间和在线存储能力。现在,已经有越来越多的企业推出云服务产品,例如手机上的云网盘、云笔记等。
Dropbox[2]专注于同步本地文件的网络存储,支持在多台电脑,移动终端上的文件自动同步,可
作越来越依赖移动设备。移动客户端应用可以让科研团队的合作和工作不受时间和地点的限制。目前移动开发主流的操作系统是 Android 和 iOS。Android 是 Google 于 2007 年发布的基于 Linux 平台的开源手机操作系统。iOS 是由苹果公司开发的手持设备操作系统。根据市场研究公司 Kantar2013 年 2 月的统计数据显示,苹果在中国智能市场手机的份额一直在增长,从 2012 年 9 月的 18.6% 增至 2013 年 1 月的 23.2%。
49
苹果的智能手机 iPhone 自上市以来,就受到很多消费者的热捧,其中也包括很多科研工作者。协同文档库客户端的开发选择基于 iOS 操作系统,为科研人员提供更方便的服务与应用。
认证才能登录。
(2) 信息浏览:提供团队动态浏览和根据不同标签文档导航浏览文档。团队动态向用户展示团队最近一周的文档页面的创建、修改、评论等所有的操作信息。标签文档导航列表提供所有标签文档
2 系统设计
2.1 需求分析
用户使用移动客户端主要是类似于出差在外不方便或者不想使用电脑的场景,此时的工作需求主要是获取浏览项目相关文档信息、了解团队动态等。所以从用户的角度来说,客户端需要提供团队动态信息、文档在线浏览、搜索、文档评论分享等功能。另外,作为与个人信息相关的移动客户端应用,用户登录认证是不可或缺的。
客户端的开发平台从传统的个人 PC 转换到移动设备,由于移动设备与 PC 硬件的区别,对开发过程造成了一定的影响。移动设备屏幕较小,而使用客户端的主要需求是浏览文档,并且手机输入大量文字时键盘操作性差,所以客户端未提供文档在线编辑功能。由于手机拍照录音很方便,客户端提供文件上传功能,用户可以随时上传照片和录音文件,在云端永久存储,也可与他人分享交流。
在客户端与服务器交互过程中,网络带宽和网络状态稳定性对用户体验影响非常大。手机使用的网络有 2/3G 网络和 Wi-Fi,2/3G 网络和有线网络相比网速较慢,测试数据显示中国移动 2G 网速为 20Kbps 左右。2/3G 网络和 Wi-Fi 稳定性一般,在使用过程中,连接可能断开。由于移动网络速度慢,稳定性差的特点,客户端网络请求不宜太频繁。所以客户端需要利用数据库保存反复使用的数据以减少网络请求,保存数据和临时缓存还可以提高响应速度,提升用户体验。
集合,用户可以选择某一个标签,进入相应的文档列表。
(3) 搜索:输入关键字,提供相关文档列表。(4) 文档浏览:文档在线浏览。(5) 文档分享、评论和复制等。
(6) 通知:向用户推送通知,包括用户自己创建文档和关注文档的相关操作动态,以及其它成员给用户的分享和留言信息。
(7) 上传文件:上传照片和音频文件。
2.3 系统架构
客户端的主要任务包括用户登录认证,向服务器端发送请求,按照服务器 API 请求格式封装请求,根据需求解析服务器返回的数据,最后更新界面,将结果展示给用户,同时需将数据缓存。客户端结构设计如图 1 所示。
编写 Cocoa Touch 应用程序主要采用 MVC (Mode-View-controller,模型-视图-控制器) 设计模式[5]。客户端的设计也是基于 MVC 模型。视图部分与用户交互,包括接收用户请求和显示返回结果两部分。控制器响应视图层传递的用户事件,调用模型层的资源来满足用户需求。控制层本身并不包含任何资源,它的主要作用仅是控制视图与模型的交互。各个模块的主要功能如下:
●
模型部分主要负责网络请求、数据缓存和数据
解析的实现。
●
JSON 数据解析模块对 JSON 数据的内容进行
解析和编码。
●
网络模块主要向服务器 API 发送网络请求。 数据缓存模块对嵌入式数据库 SQLite3 进行读
2.2 功能描述
通过对应用场景、用户习惯以及手机应用特点的分析,客户端功能包括以下七个方面:
(1) 登录认证:用户输入账号和密码,需要通过50
●
写访问,缓存数据。
由于移动设备使用 2/3G 网络和 Wi-Fi,网速慢,稳定性差,系统的设计需要克服以下两方面的难点:
iOS 设备
用户
登录认证
视图 View 用户接口
控制器 Controller 应用程序接口模型 ModelJSON 数据解析
模块
网络模块
数据缓存服务器
SQLite3
图1 客户端结构图
Fig. 1 The client structure diagram
(1) 性能:优化内存管理,进行数据缓存以提高系统响应速度,并尽量减少客户端对服务器的请求次数;
(2) 网络通信:客户端和服务器之间通过运营商提供的 2/3G 以及 Wi-Fi 网络能进行通信。程序启动时需要检查网络状态,运行过程中要实时监测网络状态,并对网络状态变化采取相应的措施。
下文将重点介绍主要模块的实现以及在这两个技术难点上的解决方案。
状态有三种,无网络连接、运营商网络连接和 Wi-Fi 连接。MKNetworkkit 中包含检测网络状态类 Reachability,检测方法如下:
a [Reachability reachabilityForLocalWiFi].currentReachabilityStatus == NotReachable
b [Reachability reachabilityForInternetConnection].currentReachabilityStatus == NotReachable
a 为检查网络是否是 Wi-Fi 连接,b 为检查网络是否是运营商网络连接。
在系统运行过程中,网络状态可能会发生变化,
3 系统实现
3.1 网络模块
手机使用的网络有 2/3G 网络和 Wi-Fi,稳定性较差,网络模块需要确认网络环境,连接情况等信息。网络编程模块主要基于第三方开源网络工具包 MKNetworkkit[6] 来完成。MKNetworkkit 是一个完整的 iOS 网络编程代码库。使用开源网络工具包可以提高开发的效率,开发者不用关注底层的细节实现,专注于实现客户端功能。网络模块主要与服务器交互,提交用户请求,从服务器获取数据。
(1) 网络状态检查
客户端程序启动后先检查网络连接状态。网络
iOS 系统中,以通知的方式传递状态变化。通知是消息转发机制的一种模式,其中涉及到的对象有消息源,通知中心和观察者,当消息源检测到系统的某种变化后将产生消息,并将其传递给通知中心,然后通知中心再通过广播的方式通知一个或多个观察者,原理如图 2 所示。
系统中网络状态切换的消息通知名为“kNetworkReachabilityChangedNotification”。相关的程序模块在获取消息后,通过消息通知回调方法可以分析出网状态的变化,然后做出相应的反应。
(2) 网络请求
MKNetworkkit 发送网络请求获取服务器数据,主要包括两个类:MKNetworkEngine和MKNetwork-
51
观察者 1
对象消息源
观察者 3
传递
通知中心
广播
观察者 2
证。网络开发是不变的趋势,不可避免的会有各种网络服务间分享内容的需要。使用 OAuth2.0 进行授权认证,OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。OAuth 的授权不会使第三方触及到用户的账号信息,即可申请获得该用户资源的授权。使用 OAuth,授权过程非常简单,而且用户
图2 iOS 通知原理图
Fig. 2 The noti cation schematics of iOS
的信息是安全的,服务开发者也不用存储和传输大量用户账号信息。并且业界提供了 OAuth 实现的各种语言开发包,节约开发时间。目前互联网很多服务如 Open API,很多大公司如 Google、Yahoo、Microsoft 等都提供了 OAuth 认证服务,这些都足以说明 OAuth 逐渐成为开放资源授权的标准。
OAuth 授权认证原理[7]流程如图 3 所示。第一步为用户进入登录界面,输入用户名和密码,请求登录,获取科研在线相关信息。客户端应用在开发前向科研在线服务平台注册,得到 key 和 secret,然后使用 key 和 secret 发送请求,申请未授权 token。第三步为服务器验证客户端应用身份后,创建未授权 token,发送给客户端。第四步,客户端根据未授权 token,获得登录科研在线平台的 URL,然后将用户输入的用户名和密码作为 URL 的参数,发送请求,进行登录。最后服务器验证用户的身份,将授权的 token 发送给客户端,客户端将凭借授权 token 每次依据用户需求,向服务器请求相应的资源并展现给用户。
Operation。MKNetworkEngine可以理解为管理请求队列的对象,MKNetworkOperation则是具体的网络请求。
首先需要创建一个 MKNetworkEngine 类对象engine:
MKNetworkEngine *engine = [[MKNetworkEngine alloc] initwithHostName: myHostName];
初始化engine,参数myHostName即为服务器url。然后根据不同请求的需求,将封装好的参数传递给engine,创建具体的网络请求,如下:MKNetworkOperation *op = [engine
operationWithPath:path params:params httpMethod: @”POST” ssl:NO];
参数 path 即为请求所对应服务器 API 的路径,params 则是 API 所需参数,请求的方式为 POST。
控制器与 engine 之间的数据交换通过 block,进行异步通信。当 http 请求结束时,block 通知控制器采取相应的方法处理该请求的返回结果。返回结果处理方法如下:
方法 1 –(void)finished:(MKNetworkOperation *)operation;
方法 2 –(void)Failed:(NSError *)error;
当接收数据成功时,调用方法 1,提取 operation 中的返回数据,并交由数据解析模块来解析数据。当接收数据失败,调用方法 2,提示用户请求失败。3.2 登录认证
登录认证使用开发授权协议 OAuth 进行授权认52
用户
输入用户名和密码
请求登录认证
①
客户端
②
服务器
创建未授权 token, 发送给客户端
请求未授权 token
③
发送用户名和密码信息,请求授权 token
④
生成授权 token
⑤
获得授权 token,访问服务器资源
图3 OAuth 授权认证流程
Fig. 3 The process of OAuth authorization and certi cation
3.3 数据缓存
为了减少网络请求次数和提高系统响应速度,需要保存反复使用的数据和临时缓存。iOS 常用的数据存储方式有四种:属性列表,对象归档,嵌入式关系数据库 SQLite3 和持久性工具 Core Data。属性列表主要用来保存应用程序的设置和属性。归档的形式保存数据,只能一次性归档保存以及一次性解压,只能针对小量数据,对数据操作比较笨拙,如果想改动数据的某一小部分,需要解压整个数据或者归档整个数据。Core Data 使用相对于 SQLite3 比较复杂。综合分析,使用嵌入式关系数据库 SQLite3 进行数据存储。
SQLite3 在存储和检索数据方面都非常有效,它还能够对数据进行复杂的聚合,获得结果的速度也比较快。数据库用于存储从网络获取的团队、页面、集合以及动态等信息,可以减少重复的网络请求,并支持无网络状态下查看。
使用 SQLite3 之前,需要确认数据库文件是否存在。如果数据库文件不存在,则说明还未创建数据库,需创建数据库;如果存在,则打开数据库,进行相应的操作。访问数据库完成相关操作后,关闭数据库。
图4 团队更新和文档浏览的用户界面
Fig. 4 The user interface of team updated and document browsing
4 应用效果
图5 客户端下载统计图
图 4 中左图为客户端的主界面,显示内容为文档列表,可以根据时间和标题的顺序显示文档列表,下拉屏幕可以刷新列表。上方导航栏中,单击左侧按钮进入文档集合列表,中间显示团队名称,右侧为搜索按钮,点击进入文档搜索功能。底部标签栏控制不同视图的切换,方便用户在不同的功能模块间流畅切换。右图是名为“Cocoa 架构下的 MVC 分析”的文档浏览视图。导航栏左侧为返回主界面按钮,右侧为刷新按钮,点击获取文档最新内容。底部的标签栏展现了客户端提供的用户操作功能,可以对文档进行评论、分享、打星标、复制和删除操作。
在实际测试过程中发现,iPhone 拍照的照片文件不做任何处理时,上传速度非常慢。相机拍得的照片大小一般为 8M 左右,假设使用 Wi-Fi 速度为
Fig. 5 Client download chart
200Kbps,大概需要 40S 时间才能完成上传。这个速度是用户无法忍受的,所以应该对图片进行压缩。将 8M 的照片压缩到 1M 左右,图片的浏览清晰度影响并不大。在使用 2/3G 网络时,图片压缩还可以节约网络流量。
协同文档库 iOS 客户端 2012 年 2 月在苹果应用商店 App Store 上发布,到 2013 年 9 月累计下载量为 733 次。科研在线文档库截至到 2013 年 9 月有 24 887 位注册用户,下载用户占总用户人数的 3%。图 5 为 App Store 上客户端 2013 年 1 7 月下载统计图。同类系统有道云笔记用户超过 500 万,从电脑平台向手机客户端迁移的比例为 7.3%[8]。
53
5 总结
随着移动互联网技术的飞速发展,移动应用逐渐改变了人们的生活。本文设计并实现了协同文档库移动客户端,支持团队动态通知推送,文档浏览、分享、星标和评论等操作,从而为团队的知识协作与共享提供便捷的渠道。客户端在文件同步、文件内容展示和交互模式上有进一步改进和提升的空间,以提供更好的用户体验和方便的服务,从而更好地支持科研工作者协同完成科研任务。
[5] Dave Mark, Jack Nutting, Jeff LaMarche. Beginning iOS
5 Development: Exploring the iOS SDK[M].Apress.2011.[6] MKNetworkkit在线文档/
products/ios-framework-introducing-mknetworkkit/.[7] OAuth在线文档/html/rfc6749.[8] /news/china/2012090622430.html.
收稿日期:2013 年 5 月 6 日
王 巧:中国科学院计算机网络信息中心,硕士研究生,主要研究方向为网络协同工作环境。E-mail: wangqiao@
参考文献
[1] 于建军,狄焰亮,董科军,南凯.科研在线:云服务模式的
网络虚拟科研环境[J].华中科技大学学报:自然科学版, 2011, 39(1): 33-37.[2] https:///.[3] https:///intl/zh-cn/.
[4] 南凯,董科军,谢建军,于建军.面向云服务的科研协同平
台研究[J].华中科技大学学报:自然科学版, 2010, 38(1): 14-19.
郑依华:中国科学院计算机网络信息中心,高级工程师,硕士,主要研究方向为云应用与云服务。E-mail: zyhua@
南 凯:中国科学院计算机网络信息中心,副主任,中国科技网主任,研究员,博士生导师,主要研究方向为网络协同工作环境,分布式系统,计算机网络与通信。E-mail: nankai@
54
正在阅读:
科研在线平台文档的移动客户端-王巧07-21
复旦大学-药剂学Ⅰ实验讲义-主编 方晓玲06-21
电子式电能表专用芯片CS5460及其在电测仪表中的应用06-03
2010 巢湖市教师资格认定教育教学能力测试人员名单 - 图文11-12
人生学习的座右铭11-20
质量目标及保证措施.投标04-13
鉴赏诗歌的题目教案05-13
佳惠超市物流配送存在的问题及对策05-07
2018量化细化的优质护理目标及措施05-10
广告公司业务提成方案10-26
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 客户端
- 科研
- 文档
- 移动
- 平台
- 在线
- 王巧
- 作业(工艺)文件汇编
- 国家通信保障应急预案(2011年12月10日修订)
- Resource-constrained project scheduling_ Notation, classification, models, and methods
- 新视野大学英语第二册UNIT3试题与答案
- 如何在语文教学中规范“语言文字”
- 人教版九年级化学中考复习 第一轮教案 简洁
- 香糟卤项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案
- 2014年历史通史复习:新课标高考通史复习历史阶段特征及知识整合
- Pulsating sdB Stars A New Approach to Probing their Interiors
- 浅析以人为本的体育教学模式
- 发展才是硬道理论文1
- 研究论文:循证护理在小儿手足口病合并脑炎护理中的效果观察
- 特殊学生心理健康档案
- 华润三九:2011年第七次董事会会议决议公告 2011-08-06
- 万科.景观绿化提升版
- 泪光闪闪《涙そうそう》标注版中日双语歌词
- 挖掘机水温过高的现象及处理方法
- 肾小球肾炎概述、肾小球疾病
- (家长会)如何培养孩子的良好习惯
- 在你大二前,请看完它------一位博士写给11级同学的文章来源: 孙会明Sun的日志