【Android论文栏目提醒】:网学会员为需要Android论文的朋友们搜集整理了基于Android手机远程文件备份系统设计与实现 - 期刊论文相关资料,希望对各位网友有所帮助!
computer s e c u r i t y学 术 . 技 术 基于
Android 手机远程文件备份系统设计与实现 马连志,杨 频,王 四川大学 计算机学院 四川 成都 610065摘 要:设计并实现一种基于
Android 操作系统的手机文件备份系统。
利用
Android 手机客户端应用程序将需备份的文件进行差异计算,根据差异计算的结果将差异文件发送到备份服务器,实现远程文件同步。
测试结果表明,该系统能够实现 A n d r o i d 手机文件备份到远程服务器,并对网络带宽的消耗较小。
关键词 :
Android ;文件备份 ;远程文件同步 Design and Implementation of a Remote File Backup System on
Android Phone MA Lian-zhiYANG Pin,WANG Zhe Dept. of Computer Science Sichuan University ChengduSichuan 610065ChinaAbstract: A remote le backup system on
android phone is presented and realized.The system computes the difference of the le andsends the difference le according to the difference to the backup serverthe remote le synchronization is relized.Test results show thatthe system can send the les to the remote backup server and cost low network bandwidth consumption.Key words:
Android le backupremote le synchronization0 引言 将手机文件备份到远程服务器,并通过差异计算减 智能手机在人们的通讯、学习、娱乐各个方面 少文件备份数量,最终降低带宽消耗。
都起着十分重要的作用,人们对于智能手机的依赖程度日益提高。
手机的意外丢失,手机中个人数据 1 系统结构 整个系统由手机客户端、远程备份服务器和管被恶意破坏,使人们越来越重视手机数据备份。
智 理主机组成,系统结构如图 1 所示。
能手机上数据的安全对个人用户甚至企事业单位越来越重要。
当今,
Android 手机是被广泛使用的智能手机。
Android 是基于 Linux 的手机、平板操作系统。
它是由 G o o g l e 公司和开放手持设备联盟开发和领导的。
现今
Android 手机数据备份方式主要有两种 :一种是通过
Android 系统的 google 账户使用同步 图 1 系统结构功能将手机上的数据更新到远程服务器,例如通讯 手机客户端 :安装在手机上本地客户端应用,录。
另一种方式是使用手机备份应用备份手机数据。
用户可根据需求将所需备份的文件备份到远程备份第一种方式最大的缺陷在于无法同步手机上的个人 服务器。
数据文件,例如照片、文档。
本文设计并实现了基 备份服务器 :存储备份数据的计算机服务器。
于
Android 的远程文件备份系统,该系统通过网络 管理主机 :可以访问备份服务器的计算机,用 2 0 1 2 . 0 7 4 computer学 术 . 技 术s e c u r i t y 于对整个系统进行配置管理。
远程备份服务器收到本地存储服务器发来的备 由系统结构可知,整个系统分为三个部分 :手 份数据包后,提取其中的备份文件数据,并存储到 机客户端应用、远程灾备系统和后台管理系统 其 远程备份服务器的磁盘中,完成文件备份。
中 手机客户端负责将手机本地文件备份到远程备 25 恢复模块 份服务器上,远程灾备系统负责存储手机客户端备 备份服务器将用户选择的需要恢复的文件、文 份过来的文件数据,后台管理系统负责对远程备份 件夹发送到手机本地。
服务器进行配置管理。
26 配置管理模块。
配置管理模块中包含用户管理及备份服务器配 2 模块设计 置管理两个功能。
系统结构如图 2 所示,分为差异计算、数据缓 冲、网络传输、远程存储、恢复、配置管理 6 个功 3 系统实现 能模块。
31 差异计算模块
Android 平台上集成了 SQLite 嵌入式关系型数 据库。
SQLite 是一款轻量级的关系型数据库,占用 资源非常少,在
Android 上存储数据是一种较好的 选择。
差异计算模块的实现方法为 :手机 S Q L i t e 数 图 2 模块关系图 据库中存储上一次备份过的文件、文件夹的大小及 21 差异计算模块 最后修改时间。
客户端通过
Android 平台接口函数 用户备份的文件、文件夹有一部分在上一次备 获得所需备份文件、文件夹的大小及最后修改时间, 份之后并未进行修改,因此需要通过差异计算筛选 生成数据库查询语句。
使用生成的数据库查询语句 出修改过的文件、文件夹进行备份。
由于手机设备 查询 S Q L i t e 数据库,对比本次获得的文件、文件 硬件配置与 P C 机相比性能不高,使用校验算法对 夹大小及最后修改时间与上一次备份时的记录是否 文件数据进行校验会使手机负载过高,本文使用检 有所改变。
文件若发生改变,则视为差异文件。
文 测文件大小及文件最后修改时间作为差异计算方式。
件夹若产生改变,则扫描文件夹内的文件、文件夹, 22 数据缓冲模块 查询过程使用广度遍历算法,最终获得差异文件、 手机内存写入速度远大于网络传输速度,手机 文件夹。
在整个过程中,未发生改变的文件、文件 本地写数据包往往无法立即发送到远程备份服务器。
夹将不进行备份。
在差异计算最后将生成一个备份 因此手机客户端将数据包缓冲到一个缓冲队列中, 传输列表,列表的同时存储文件对应的 C R C 校验 并使用生产者 - 消费者队列保证数据包读写的同步, 值,在备份完成时进行校验,保证文件的一致性。
最终由网络传输模块传输到远程备份服务器。
32 数据缓冲模块 23 网络传输模块 文件数据在网络中传输需进行切分,并且要按 此模块从缓冲队列中逐个取出备份数据包并将 照固定协议格式封装成备份数据包。
数据包格式如 其发送到远程备份服务器。
图 3 所示。
24 远程存储模块 2 0 1 2 . 0 7 5 computer s e c u r i t y学 术 . 技 术 3.4 远程存储模块 远程存储模块会根据手机存储中的文件目录结 图 3 数据包结构 构生成备份服务器端的文件目录结构,将备份的文 包长度指的是整个数据包的大小,最大值为 件、文件夹存储在目录结构中。
如用户 u s e r1 的手2048 字节,当需要传输更大的数据时需要分成多个 机存储 /test 目录下包含 file1file2file3 这三个文包进行传输 ;包类型,即消息类型,用于区别控制 件和 f o l d e r1 一个文件夹 ;将该目录备份至备份服信息和文件数据 ;包数据,根据包类型的不同,设 务器,该目录将存储在备份服务器的 /user1 目录下。
计不同的包数据结构。
手机存储及备份服务器目录结构如图 4 所示 : 由于手机内存写入速度与网络传输速度差距较大,需专门设计一个缓冲区存储手机内存写入的数据,保证每个数据都能通过网络发送出去。
数据缓冲模块中使用生产者 - 消费者队列完成这一需求, 图 4 手机存储及备份服务器目录结构即使用 ArrayBlockingQueue,该顺序队列具有固 3.5 恢复模块定的尺寸,手机内存写入的数据包将临时存储在该 恢复模块负责根据手机客户端发送的数据恢复队列中。
客户端中将使用两个线程完成手机内存写 请求,将所需恢复的文件发送到手机。
主要过程使入数据包和读取数据包网络并传输。
两个线程分别 用网络传输模块及远程存储模块中功能,则不再赘为写线程 t1、读线程 t2。
如果 t2 线程试图从队列 述。
中读取数据包,而该队列此时为空,那么队列可以 3.6 配置管理模块挂起 t2 线程。
如果队列中数据包已满,t1 线程将 该模块分为用户管理和服务器配置管理两个功被挂起。
已被 t2 线程读取过的数据包将被标记为 能。
在备份服务器使用 MySQL 数据库存储用户管已读,之后 t1 线程写数据包时可将此数据包覆盖。
理信息及服务器配置信息。
用户管理信息包括用户3.3 网络传输模块 名、密码、用户备份总容量、备份剩余容量等信 数据缓冲模块中 t2 线程读取数据包并将其发 息;服务器配置信息包括备份服务器 I P 地址、端送到远程备份服务器 ;远程备份服务器接收该数据, 口号、手机客户端最大连接数、备份服务器总容量、并将备份的文件进行 C R C 校验,将生成的校验码 备份服务器剩余容量等信息。
返回给客户端,客户端进行验证,保证文件一致性。
备份服务器采用 epoll 机制来管理大量连接,epoll 4 实验与分析机制有以下几个优点 :支持一个进程打开大数目 4.1 实验环境的 socket 描述符 ;I/O 效率不随文件描述符数目增 实验中,手机通过无线局域网连接备份服务器。
加而线性下降 ;能加速内核与用户空间的消息传递。
实验环境如表 1 所示。
备份服务器包含两个线程 :一个为监听线程,专门 表 1 实验环境负责手机客户端的连接请求 ;一个为 I/O 线程,负责接收用户发送的备份数据包,并对数据包进行解析,将数据包重新整合成文件,若为控制信息则对客户端发送应答消息。
4.2 实验方法与结果 2 0 1 2 . 0 7 6 computer学 术 . 技 术s e c u r i t y 实验数据集包括 101 个文件,分为两个文件集: 异备份方式比使用完全备份方式消耗的流量少,但 包含一个 124M B 文件的文件集 A,该文件集用来 是需要消耗更多的备份时间。
当小文件较多时,若 测试较文件的完全备份时间消耗和流量消耗 ;总大 使用差异备份,差异备份过程中的差异计算所花时 小为 314K B 包含 100 个文件的文件集 B,该文件 间较长,导致备份时间增加。
集用来测试小文件的完全备份、差异备份以及恢复 综上所述,该系统在网络环境较好的情况下, 的时间消耗和流量消耗。
适合使用完全备份。
在网络环境一般的情况下,适 在进行差异备份实验时,将随机修改备份文件集 合使用差异备份。
中文件的一个字节,使文件最后修改时间发生变化。
完全备份的实验结果如表 2 所示,差异备份的 5 结束语 实验结果如表 3 所示,恢复的实验结果如表 4 所示。
智能手机的广泛使用方便了人们的生活、娱乐, 表 2 完全备份实验结果 但随之带来的智能手机中的安全隐患不容小觑,对 手机中存储的文件要进行合理地管理、备份。
本系 统使用手机客户端将手机本地文件备份到远程备份 服务器,并使用差异备份降低文件备份的流量消耗。
本文提供的文件备份系统差异计算只支持文件级差 表 3 差异备份实验结果 异,在今后的研究工作中,将考虑使用数据集的差 异计算方法,降低备份数据量。
参考文献 表 4 恢复实验结果 〔1〕 李涛 . 网络安全概论 M . 北京 : 电子工业出版社 2004. 〔2〕 任欣,李涛,胡晓勤。
远程文件备份与恢复系统的设 计与实现 J. 计算机工程,20093510:112-114. 〔3〕 吴波,刘晓洁。
一种廉价的高效、可靠的灾难备份方 法 J. 计算机应用研究 2007249:140-142. 4.3 实验分析 〔4〕 宁静,胡晓勤,汤晓迪。
面向并行备份数据流的数据快 由于数据在网络中传输需要添加包头以及相关 速存储方法 J. 计算机工程与设计 20103118:3946-3949. 控制信息,备份及恢复消耗的流量要大于备份、恢 〔5〕 埃史尔,陈昊鹏 . J a v a 编程思想 第 4 版 M . 北京 : 机械工业出版社,2007. 复文件的总大小。
〔6〕 Sayed Hashimi Satya Komatineni Dave MacLean 杨越 . 精 针对上述实验将进行大文件和小文件两个方面 通
Android 2M. 北京 :人民邮电出版社,2010. 的分析。
大文件的备份以及恢复所需时间消耗和流量消 作者简介 : 马连志 1987- ,男,硕士研究生,主要研究 杨 (1967-) 男, 方向为计算机网络与信息安全; 频 , 副教授, 耗都较高。
因此,大文件的备份以及恢复适合在网 硕士生导师,主要研究方向为计算机网络与安全 ;王 络带宽、网络环境较好的条件下进行。
1984- ,博士研究生,主要研究方向为计算机网络与信息 针对小文件,本次实验分成 10,50,100 三个 安全。
文件集进行完全备份、差异备份以及恢复。
使用差 收稿日期 :2012-05-28 2 0 1 2 . 0 7 7