CN103442024B - 一种智能移动终端与云端虚拟移动终端同步的系统和方法 - Google Patents

一种智能移动终端与云端虚拟移动终端同步的系统和方法 Download PDF

Info

Publication number
CN103442024B
CN103442024B CN201310248235.8A CN201310248235A CN103442024B CN 103442024 B CN103442024 B CN 103442024B CN 201310248235 A CN201310248235 A CN 201310248235A CN 103442024 B CN103442024 B CN 103442024B
Authority
CN
China
Prior art keywords
mobile terminal
intelligent mobile
web server
time
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310248235.8A
Other languages
English (en)
Other versions
CN103442024A (zh
Inventor
刘丹丹
范小朋
杨鑫
须成忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HANGZHOU ZHONGKE ADVANCED TECHNOLOGY RESEARCH INSTITUTE Co.,Ltd.
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN201310248235.8A priority Critical patent/CN103442024B/zh
Publication of CN103442024A publication Critical patent/CN103442024A/zh
Application granted granted Critical
Publication of CN103442024B publication Critical patent/CN103442024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种智能移动终端与云端虚拟移动终端同步的系统,包括:智能移动终端,为运行安卓操作系统的智能移动终端;云端,包括虚拟移动终端和Web服务器,Web服务器作为智能移动终端与虚拟移动终端交互的中介,通过WiFi或3G无线网络与智能移动终端进行通信,再通过有线网络与虚拟移动终端进行通信。本发明在云端建立一个与物理手机具有相同操作系统的虚拟手机,在物理手机系统出现问题时,能够及时的恢复到最初的状态,对物理手机进行操作系统级别的实时备份。

Description

一种智能移动终端与云端虚拟移动终端同步的系统和方法
技术领域
本发明涉及计算机领域,尤其一种智能移动终端与云端虚拟移动终端同步的系统和方法。
背景技术
云计算的发展并不局限于PC机,随着移动终端以及无线网络的快速发展,使人们通过智能无线终端获得云服务的需求越来越迫切,正是这些需求推动了移动云计算的产生和发展,移动云计算也可以看成是云计算在移动互联网中的推广,使人们真正地体验到指尖上的云服务。但是,移动云计算的发展也存在一些潜在的问题。
首先是移动设备资源的缺乏。虽然目前以智能手机为代表的移动终端在处理能力和内存性能方面都有很大的提升,但是与台式机相比,它们拥有相对较小的屏幕面积、较少的计算和存储能力,且电池容量有限。正是由于移动终端资源的缺乏,移动云计算通常被视为是一个软件服务(SaaS)云,将数据处理任务放在云端执行,智能手机只是通过Web浏览器或通过第三方软件来访问云服务。
其次,网络延迟和传输带宽也在影响移动云计算的发展。目前,移动设备主要通过WiFi和3G接入网络。其中通过WiFi方式访问云服务虽然提高了数据传输速度,但是当多个终端同时访问时可能会降低各自的带宽。其次通过3G方式访问云服务虽然网络连接很稳定,但是网络带宽还是一个令人担忧的问题。
最后是移动设备的安全问题。由于移动设备很容易丢失,目前的云存储服务需要手动备份,且不具有实时性,很难对移动设备的信息进行完整的恢复。因此,移动设备如何对操作系统状态信息以及运行时信息进行实时备份,以及由于自身资源缺乏导致不能很好地使用云服务,是移动云计算环境下需要解决
的关键问题。
申请号为201210105690.8的专利提出了一种android系统恢复数据的方法及终端,主要针对android系统自身数据DATA分区中的数据进行备份,且不具备实时性。
目前,移动设备生产商和移动云平台提供商都相继推出各自特色移动云服务。主要有谷歌的Mobile Service、苹果的MobileMe服务、微软的Windows Phone Hub、诺基亚Ovi商店、HTC的HTCSense.com等移动云服务平台。具体到手机应用,基于云计算的手机软件已经涌现,例如网易新闻客户端、谷歌地图、大众点评、谷歌翻译等。此外,谷歌公司和亚马逊公司均为移动设备推出云服务。国内也涌现了大批量的支持者,金山快盘、新浪微盘、华为网盘、先进云网盘等,首先都会为注册的用户提供一定的免费空间,供用户体验,但如果需要更多的空间就要付费。以上提到的移动云服务主要有两点限制,第一,仅对移动设备进行应用级别的备份,例如短信、邮件和通讯录等,对非应用级别的数据无法备份。第二,备份不具备实时性,例如QQ同步助手、360手机卫士等软件,需要用户手动备份数据,不能自动同步更新。
因此,本发明提出一种智能移动终端与云端虚拟移动终端同步方案,目的是在云端建立一个与物理手机具有相同操作系统的虚拟手机,在物理手机系统出现问题时,能够及时地恢复到最初的状态,对物理手机进行操作系统级别的实时备份。
发明内容
针对现有移动设备很容易丢失和目前的云存储服务需要手动备份,且不具有实时性,很难对移动设备的操作系统信息进行完整的恢复的问题,本发明实施例提供了一种可实现智能移动终端与云端虚拟移动终端同步的系统,在云端提供了智能手机操作系统的镜像,将物理手机上的状态信息以及运行时信息实时更新到云端的虚拟手机中,在物理手机出现问题时,能够及时的恢复到相应的状态。为达到上述目的,本发明解决其技术问题所采用的技术方案如下,所述的实现智能移动终端与云端虚拟移动终端同步的系统,包括:
智能移动终端,所述智能移动终端为运行安卓操作系统的智能移动终端;
云端,所述云端包括Web服务器和虚拟移动终端,所述虚拟移动终端运行于云服务器上。
优选的,还包括NTP服务器,用于实现所述智能移动终端、所述Web服务器和所述虚拟移动终端的时钟同步。
具体的,所述智能移动终端包括以下部分:
电量信息收集模块,用于利用安卓系统的广播机制对电量进行监测,并在所述电量发生变化时,将所述电量信息实时更新到云端的所述虚拟移动终端中;
操作系统版本信息收集模块,用于通过调用类CMDExecute执行系统的cat命令,收集存储在所述智能移动终端的/proc/version中的操作系统版本信息;
CPU信息收集模块,用于通过调用类CMDExecute执行系统的cat命令、读取所述智能移动终端/proc/cpuinfo路径下的文件,获取所述智能移动终端的CPU信息;
内存信息收集模块,用于获取所述智能移动终端的内存信息;
进程信息收集模块,用于通过调用类CMDExecute执行系统的top命令,定义一个String[]ddr={“/system/bin/top”,“-n”,“1”},再利用类CMDExecute定义的对象cmd执行cmd.run(ddr,“/system/bin”),并读取该路径下的文件,从而获取所述智能移动终端的正在运行的进程信息。
优选的,所述Web服务器通过使用Tomcat实现服务器功能,并且采取POST方式实现与所述智能移动终端之间的所述操作系统信息的传递。
优选的,所述虚拟移动终端为利用虚拟软件VMware与Android-x86平台相结合在Windows系统上虚拟出的具有安卓操作系统的智能移动终端,包括以下部分:
实时更新模块,用于通过一个线程控制视图的更新,并设置更新频率对所述Web服务器进行轮询,确保数据的实时更新;
操作系统信息接收模块:用于通过URL与所述Web服务器建立连接,监测所述Web服务器是否存在新的数据,当有新的数据时,对所述新的数据进行存储,当没有新的数据时,则以设定的时间间隔对所述Web服务器进行轮询监测数据。
具体的,所述智能移动终端包括流文件信息收集模块,用于从所述智能移动终端的SD卡中读取文件并存入数组中,再根据所述Web服务器提供的IP和一个开放的端口创建与所述Web服务器之间的Socket连接,并通过PrintWriter类将文件以字符流形式传输给所述Web服务器。
具体的,所述Web服务器通过使用面向连接的Socket操作方式,完成信息从所述智能移动终端向所述虚拟移动终端的传递。
具体的,所述Web服务器建立用于监听所述智能移动终端的连接请求的3000端口,和用于监听所述虚拟移动终端的连接请求的4000端口,所述Web服务器首先监听所述4000端口并与所述虚拟移动终端建立连接,再监听所述3000端口并与所述智能移动终端建立连接,当所述智能移动终端与所述虚拟移动终端之间的通道被建立时,所述Web服务器接收所述智能移动终端发送的数据流,并存储在BufferedReader中,再通过readLine()按行转发给所述虚拟移动终端,完成一次Socket连接。
优选的,所述虚拟移动终端包括流文件接收模块。
优选的,所述括流文件接收模块用于与所述Web服务器建立连接,包括:通过Socket()创建本地端口,再接收由所述Web服务器转发的数据并存储在BufferedReader中,解析并处理所述数据后,将所述数据存储在所述虚拟移动终端的SD卡中,存储路径为/sdcard/,同时计算流文件从所述智能移动终端传输至所述虚拟移动终端所需要的时间。
本发明的另一目的在于提供一种智能移动终端与云端虚拟移动终端同步的方法。
为达到上述目的,本发明解决其技术问题所采用的技术方案是,所述的智能移动终端与云端虚拟移动终端同步的方法,包括以下步骤:
(1)所述智能移动终端向所述Web服务器发起HTTP请求;
(2)所述Web服务器解析并处理所述HTTP请求,产生HTTP响应;
(3)所述Web服务器向所述智能移动终端返回所述HTTP响应;
(4)所述Web服务器将解析处理之后的数据,以队列形式存储在Servlet上下文中;
(5)所述虚拟移动终端以一定的频率对所述Web服务器进行轮询;
(6)所述Web服务器从智能移动终端接收的数据传输给所述虚拟移动终端。
具体的,所述步骤(1)中,所述智能移动终端采取POST方式实现与所述Web服务器之间的请求。
具体的,所述步骤(2)中,所述Web服务器首先给所述智能移动终端提供一个可访问的地址,再通过类HttpServletRequest定义一个对象,调用getParameter()函数对所述智能移动终端传送的有序数据进行解析。
具体的,所述步骤(4)中,所述Web服务器还负责解析所述智能移动终端发送数据的时间TimeA,同时记录收到数据时所述Web服务器的时间TimeC1,再计算数据从所述智能移动终端发送至所述Web服务器的时间TimeA_C1。
具体的,所述Web服务器记录其转发数据的时间TimeC2,再计算所述Web服务器接收并转发的数据时间TimeC1_C2,将计算好的时间段以队列的形式存储在Servlet上下文中,存储数据格式为[TimeA&TimeA_C1&TimeC1&TimeC1_C2&par],其中par为传输的数据。
具体的,所述步骤(5)中,所述虚拟移动终端通过URL与所述Web服务器建立连接,监测所述Web服务器是否存在新的数据,如果有新的数据,则对数据进行存储,如果没有数据则按照设定的时间间隔对所述Web服务器进行轮询检测数据。
优选的所述虚拟移动终端接收数据以后,首先对数据进行分解,提取有用信息进行备份。
优选的,所述智能移动终端、所述Web服务器和所述虚拟移动终端均通过调用类NTP中的函数Ntp()来实现与NTP服务器同步的方法,使所述智能移动终端、所述Web服务器和所述虚拟移动终端的时钟同步,其中,所述函数Ntp(),包括三个变量:responseTime,代表所述智能移动终端和/或所述虚拟移动终端收到NTP服务器响应与发送请求至服务器的时间差;localClockOffset,代表本地时钟偏移值;ClockOffset,代表所述智能移动终端和/或所述虚拟移动终端本地时间与NTP服务器时间的差值。
具体的,令系统时钟同步涉及的四个时间点分别为所述智能移动终端和/或所述虚拟移动终端的发送请求的时间t0、所述智能移动终端和/或所述虚拟移动终端接收NTP服务器响应的时间t1、NTP服务器接收来自所述智能移动终端和/或所述虚拟移动终端请求的时间n0以及NTP服务器的响应时间n1,再进行以下计算:
根据公式responseTime=System.currentTimeMillis()-sentTime计算出响应时间response,所述响应时间response是指所述智能移动终端和/或所述虚拟移动终端收到NTP服务器响应时间t1与发送请求的时间t0之差;
根据公式:
localClockOffset=((receiveTimestamp-originateTimestamp)+(transmitTimesta mp-destinationTimestamp))/2;
计算出本地时钟偏移值localClockOffset,其中,Ntp()函数的变量receiveTimestamp和transmitTimestamp分别代表NTP服务端的两个时间点n0和n1,而originateTimestamp和destinationTimestamp分别代表所述智能移动终端和/或所述虚拟移动终端的时间t0和t1;
根据公式ClockOffset=(Math.round(localClockOffset*1000))-responseTime/计算所述智能移动终端和/或所述虚拟移动终端本地时间与NTP服务器的时间偏移值ClockOffset,在程序中利用类NTP定义一个对象NTP ntp=new NTP(),再通过ntp.Ntp()获得偏移值ClockOffset,再将所述智能移动终端或所述Web服务器获取的本地时间补上偏移值ClockOffset,得到所求的标准时间。
优选的,分别提取所述智能移动终端、所述虚拟移动终端和所述Web服务器之间数据传输的时间戳,再对每次提取的时间戳进行校正,其中,令TimeA代表所述智能移动终端收集数据后发送的时间、TimeC1代表所述Web服务器接收所述智能移动终端传输数据的时间、TimeC2代表所述Web服务器转发数据的时间、TimeB代表所述虚拟移动终端接收数据的时间,再利用TimeA_C1表示数据从所述智能移动终端发送至所述Web服务器的时间,利用TimeC1_C2表示所述Web服务器处理数据的时间,利用TimeC2_B表示数据从所述Web服务器转发至所述虚拟移动终端的时间。
本发明的另一目的在于提供另一种智能移动终端与云端虚拟移动终端同步的方法,包括以下步骤:
所述Web服务器建用于监听所述智能移动终端的连接请求的3000端口,和用于监听所述虚拟移动终端的连接请求的4000端口,所述Web服务器首先监听所述4000端口并与所述虚拟移动终端建立连接,再监听所述3000端口并与所述智能移动终端建立连接,当所述智能移动终端与所述虚拟移动终端之间的通道被建立时,所述Web服务器接收所述智能移动终端发送的数据流,并存储在BufferedReader中,再通过readLine()按行转发给所述虚拟移动终端,完成一次Socket连接。
具体的,所述Web服务器通过使用面向连接的Socket操作方式,完成数据流从所述智能移动终端向所述虚拟移动终端的传递。
具体的,所述监听所述3000端口并与所述智能移动终端建立连接,包括以下步骤:所述智能移动终端所包含的流文件信息收集模块,从所述智能移动终端的SD卡中读取文件并存入数组中,再根据所述Web服务器提供的IP和一个开放的端口创建与所述Web服务器之间的Socket连接,并通过PrintWriter类
将文件以字符流形式传输给所述Web服务器。
具体到,所述所述Web服务器首先监听所述4000端口并与所述虚拟移动终端建立连接,包括以下步骤:所述虚拟移动终端所包含的流文件接收模块,通过Socket()创建本地端口,再接收由所述Web服务器转发的数据并存储在BufferedReader中,解析并处理所述数据后,将所述数据存储在所述虚拟移动终端的SD卡中,存储路径为/sdcard/,同时计算流文件从所述智能移动终端传输至所述虚拟移动终端所需要的时间。
具体的,所述智能移动终端、所述Web服务器和所述虚拟移动终端均通过调用类NTP中的函数Ntp()来实现与NTP服务器同步的方法,使所述智能移动终端、所述Web服务器和所述虚拟移动终端的时钟同步,其中,所述函数Ntp(),包括三个变量:responseTime,代表所述智能移动终端、所述Web服务器和所述虚拟移动终端收到NTP服务器响应与发送请求至服务器的时间差;localClockOffset,代表本地时钟偏移值;ClockOffset,代表所述智能移动终端、所述Web服务器和所述虚拟移动终端本地时间与NTP服务器时间的差值。
具体的,令系统时钟同步涉及的四个时间点分别为所述智能移动终端、所述Web服务器和所述虚拟移动终端的发送请求的时间t0、所述智能移动终端、所述Web服务器和所述虚拟移动终端接收NTP服务器响应的时间t1、NTP服务器接收来自所述智能移动终端、所述Web服务器和所述虚拟移动终端请求的时间n0以及NTP服务器的响应时间n1,再进行以下计算:
根据公式responseTime=System.currentTimeMillis()-sentTime计算出响应时间response,所述响应时间response是指所述智能移动终端、所述Web服务器和所述虚拟移动终端收到NTP服务器响应时间t1与发送请求的时间t0之差;
根据公式:
localClockOffset=((receiveTimestamp-originateTimestamp)+(transmitTimestamp-d estinationTimestamp))/2;
计算出本地时钟偏移值localClockOffset,其中,Ntp()函数的变量receiveTimestamp和transmitTimestamp分别代表NTP服务端的两个时间点n0和n1,而originateTimestamp和destinationTimestamp分别代表所述智能移动终端、所述Web服务器和所述虚拟移动终端的时间t0和t1;
根据公式ClockOffset=(Math.round(localClockOffset*1000))-responseTime/计算所述智能移动终端、所述Web服务器和所述虚拟移动终端本地时间与NTP服务器的时间偏移值ClockOffset,在程序中利用类NTP定义一个对象NTP ntp=new NTP(),再通过ntp.Ntp()获得偏移值ClockOffset,再将所述智能移动终端、所述Web服务器和所述虚拟移动终端获取的本地时间补上偏移值ClockOffset,得到所求的标准时间。
具体的,还包括以下步骤:分别提取所述智能移动终端、所述虚拟移动终端和所述Web服务器之间数据传输的时间戳,再对每次提取的时间戳进行校正,其中,令TimeA代表所述智能移动终端收集数据后发送的时间、TimeC1代表所述Web服务器接收所述智能移动终端传输数据的时间、TimeC2代表所述Web服务器转发数据的时间、TimeB代表所述虚拟移动终端接收数据的时间,再利用TimeA_C1表示数据从所述智能移动终端发送至所述Web服务器的时间,利用TimeC1_C2表示所述Web服务器处理数据的时间,利用TimeC2_B表示数据从所述Web服务器转发至所述虚拟移动终端的时间。
本发明的另一目的在于提供一种云端虚拟移动终端测试的方法,包括以下步骤:
分别提取所述智能移动终端的电量信息、操作系统版本信息、CPU信息、内存信息以及正在运行的进程信息,对所述每个类型的信息采用HTTP协议进行一次以上的传输,取平均传输时间,再对不同大小的流文件采用Socket协议进行传输,对每种流文件各执行一次以上的传输,取平均传输时间,所述测试从系统功能的完整性和系统传输时间测试两方面进行。
与现有的安卓开发人员使用的手机模拟器相比,本发明实施例具有如下优点:
1、本发明实现了安卓智能手机的虚拟机,即该虚拟机具有完整的手机操作系统,运行在云服务上,而普通的虚拟机只是虚拟计算机系统,不能很好的服务于手机。
2、本发明实现的手机虚拟机拥有更加丰富充足的软、硬件资源,可以解决开发人员在开发比较耗资源的应用程序时模拟器运行十分缓慢的问题,也可以在物理手机系统崩溃的时候,能够在云端恢复到最初的状态。
3、在云端建立一个与物理手机具有相同操作系统的虚拟手机,在物理手机系统出现问题时,能够及时的恢复到最初的状态,对物理手机进行操作系统级别的实时备份。
附图说明
图1是本发明实施例提供的系统总体架构图;
图2是本发明实施例提供的时钟同步过程图;
图3是本发明实施例提供的系统传输时间示意图;
图4是本发明实施例提供的HTTP通信过程的方法流程图;
图5是本发明实施例提供的电量信息收集图;
图6是本发明实施例提供的操作系统信息收集图;
图7是本发明实施例提供的CPU信息收集图;
图8是本发明实施例提供的内存信息收集图;
图9是本发明实施例提供的进程信息收集图;
图10是本发明实施例提供的云端虚拟手机界面图;
图11是本发明实施例提供的数据接收流程图;
图12是本发明实施例提供的Socket通信过程的流程图;
图13是本发明实施例提供的流文件信息收集的流程图;
图14是本发明实施例提供的智能手机电量信息图;
图15是本发明实施例提供的云端手机电量信息图;
图16是本发明实施例提供的物理手机端操作系统版本信息图;
图17是本发明实施例提供的虚拟手机端操作系统版本信息图;
图18是本发明实施例提供的物理手机端CPU信息图;
图19是本发明实施例提供的虚拟手机端CPU信息图;
图20是本发明实施例提供的物理手机端内存信息图;
图21是本发明实施例提供的虚拟手机端内存信息图;
图22是本发明实施例提供的物理手机端进程信息图;
图23是本发明实施例提供的虚拟手机端进程信息图;
图24是本发明实施例提供的物理手机端SD卡内文件图;
图25是本发明实施例提供的虚拟手机端SD卡内文件图;
图26是本发明实施例提供的操作系统信息传输时间曲线图;
图27是本发明实施例提供的流文件传输时间曲线图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,智能移动终端是指运行安卓操作系统的智能移动终端,包括但不限于各种智能手机。当它作为与虚拟移动终端、虚拟手机等名词对应的称呼时,也叫物理终端、移动设备端、物理手机或物理手机终端。
本发明实施例中,虚拟移动终端作为与智能移动终端、移动设备端等名词对应的称呼时包括但不限于虚拟手机或者手机虚拟机。
本发明实施例的目的之一,是提供一种可实现智能移动终端与云端虚拟移动终端同步的系统,通过在云服务器端设计和部署虚拟移动终端(手机虚拟机),并在智能移动终端(物理手机终端)设计和部署了操作系统信息收集模块,然后利用Web服务器实现物理手机与虚拟手机之间的操作系统状态信息的同步,
主要实现以下两点功能:
(1)物理手机在云端实现操作系统级别备份。本发明在物理手机端设计不同的信息收集模块,可以收集物理手机自身的操作系统版本信息、电量信息、内存信息以及正在运行的进程信息等,并备份至云端的虚拟手机中。
(2)物理手机状态与云端虚拟手机状态的实时同步。本发明利用Web服务器作为物理手机与云端虚拟手机交互的中介,物理手机实时进行自身信息的收集,然后将收集的内容自动发送到Web服务器,Web服务器再将接收的内容转发给云端的虚拟手机,整个过程要求物理手机、Web服务器和云端的虚拟手机在时间上同步。这种物理手机操作系统信息的实时同步增加了系统恢复的准确性。
为达到上述目的,所述的实现智能移动终端与云端虚拟移动终端同步的系统,如图1所示,包括:
智能移动终端,所述智能移动终端为运行安卓操作系统的智能移动终端;
云端,所述云端包括Web服务器和虚拟移动终端,所述虚拟移动终端运行于云服务器上。
云端部署了Web服务器和虚拟手机。其中虚拟手机运行于云服务器上,相对于物理手机,它拥有更加丰富充足的软、硬件资源。物理手机通过各个模块收集操作系统的相关信息,然后通过3G或WiFi无线网络,利用HTTP协议将信息发送至云端的Web服务器,再由Web服务器将信息转发给云端的虚拟手机,实现物理手机与云端虚拟手机的操作系统信息同步。
优选的,还包括NTP服务器,用于实现所述智能移动终端、所述Web服务器和所述虚拟移动终端的时钟同步。
具体的,为了避免智能手机、Web服务器与云端虚拟手机三者时间不同步给实验带来误差,本发明统一使用同步网络时间服务器NTP server的方法,来实现三者的时钟同步。移动设备端和云端均通过调用类NTP中的函数Ntp()来实现与NTP服务器的同步,该函数主要包括三个变量:responseTime,代表客
户端收到NTP服务器响应与发送请求至服务器的时间差;localClockOffset,代表本地时钟偏移值;ClockOffset,代表客户端本地时间与NTP服务器时间的差值。
如图2所示,系统时钟同步涉及的四个时间点分别为客户端的发送请求的时间t0、客户端接收NTP服务器响应的时间t1、NTP服务器接收来自客户端请求的时间n0以及NTP服务器的响应时间n1。首先根据公式(1)可以计算出响应时间response,response是指客户端收到NTP服务器响应时间t1与发送请求的时间t0之差。然后根据公式(2)可以计算出本地时钟偏移值localClockOffset,其中,Ntp()函数的变量receiveTimestamp和transmitTimestamp分别代表NTP服务端的两个时间点n0和n1,而originateTimestamp和destinationTimestamp分别代表客户端的时间t0和t1。最后根据公式(3)计算客户端本地时间与NTP服务器的时间偏移值ClockOffset,在程序中利用类NTP定义一个对象NTP ntp=new NTP(),然后通过ntp.Ntp()即可获得偏移值ClockOffset,再将移动设备或Web服务器获取的本地时间补上偏移值ClockOffset则是所求的标准时间。
responseTime=System.currentTimeMillis()-sentTime(1)localClockOffset=((receiveTimestamp-originateTimestamp)+(transmitTimestamp-destinationTimestamp))/2(2)
ClockOffset=(Math.round(localClockOffset*1000))-responseTime/2(3)
根据上述时钟同步方案,本发明将分别提取智能手机、Web服务器以及云端虚拟手机之间数据传输的时间戳,然后对每次提取的时间戳进行校正。如图3所示,其中TimeA代表移动设备端收集数据后发送的时间,TimeC1代表Web服务器接收移动设备传输数据的时间,TimeC2代表Web服务器转发数据的时间,TimeB代表虚拟手机接收数据的时间,然后利用TimeA_C1表示数据从物理手机发送至Web服务器的时间,利用TimeC1_C2表示Web服务器处理数据的时间,利用TimeC2_B表示数据从Web服务器转发至云端虚拟手机的时间。
HTTP是目前网络上应用最广泛的通信协议之一。HTTP通信协议允许用户提出HTTP请求,然后由Web服务器解析并处理请求,将请求结果返回给用户。本发明利用HTTP协议实现操作系统信息的传输,传输过程如图4所示,物理手机利用HTTP协议POST方式将数据传输给Web服务器,Web服务器将解析处理之后的数据存储在Servlet上下文中,并向物理手机返回一个响应。此时虚拟手机以一定的频率对Web服务器进行轮询,将Web服务器从物理手机接收的最新数据传输给云端虚拟手机。
本发明实施例在移动设备端设计了多个模块,包括电量信息、内存信息、操作系统版本信息以及正在运行的进程信息等收集模块,当每个模块的状态发生变化的时候,移动设备自动将变化的信息通过HTTP协议发送到Web服务器端,并实时更新到云端的虚拟手机中,对移动设备进行操作系统级别的备份。
具体的,智能移动终端包括以下部分:
电量信息收集模块,用于利用安卓系统的广播机制对电量进行监测,并在所述电量发生变化时,将所述电量信息实时更新到云端的所述虚拟移动终端中;
操作系统版本信息收集模块,用于收集存储在所述智能移动终端中的操作系统版本信息;
CPU信息收集模块,用于获取所述智能移动终端的CPU信息;
内存信息收集模块,用于获取所述智能移动终端的内存信息;
进程信息收集模块,获取所述智能移动终端的正在运行的进程信息。
具体的,电量信息收集模块的设计如下:
广播机制在安卓系统中得到广泛使用,比如用户收到一条短信或者一个电话时,系统都会发出一条广播。应用程序开发人员则可以根据系统的广播机制,开发新的应用,在接收广播的时候响应事件。例如隐私短信设置应用,我们会将隐私的号码放入隐私库中,当收到短信广播时,会将这个号码与隐私库中的号码作比较,如果是隐私短信则单独放入有密码的收件箱里。本发明正是利用安卓系统的广播机制对电量进行监测,并在电量发生变化时,将电量信息实时更新到云端的手机中。
在该模块设计代码中创建了一个BroadcastReceiver对象mBatteryInfo
Receiver,并实现其onReceive方法,接收系统的广播可以获得手机的当前电量信息。一次完整的广播不仅仅是创建BroadcastReceiver就可以完成的,还需要对本条广播进行注册和注销。主要有两种方式:静态注册和动态注册。静态注册是在AndroidManifest.xml文件中配置。动态注册也比较方便,采用编程的方法来完成。本发明采用动态的方法,在OnResume()中注册,并在OnPause()中注销。
当该模块检测到系统电量发生变化,比如电量从99%变化到98%,计算当前的电量信息level1=98,同时会记录此刻的时间,其中时间的提取采用Date类,并利用SimpleDateFormat类来规范时间格式。再将时间和电量信息一起作为参数,传送给服务器端。
其中,电量信息收集运行效果如图5所示,表示移动设备当前的电量信息为55%,同时显示当前的时间戳为2012-12-0315:07:29.281。
具体到,操作系统版本信息收集模块的设计如下:
移动设备操作系统版本信息收集可以通过类CMDExecute来实现,这个信息存储在移动设备的/proc/version中,可以通过cat命令获取操作系统的信息。其中,操作系统版本信息收集运行效果如图6所示,表示移动设备的操作系统版本为Linux version2.6.35.7,同时显示当前的时间戳为2012-12-1617:13:58.748。
具体的,CPU信息收集模块的设计如下:
CPU信息的收集可以在移动设备的系统信息/proc/cpuinfo中获取,与操作系统信息的获取方案类似,调用类CMDExecute来执行系统的cat命令,读取该路径下的文件就可以获取移动设备的CPU信息。其中CPU信息收集运行效果如图7所示,显示移动设备当前的CPU信息,同时显示当前的时间戳为2012-12-1617:17:01.701。
具体的,内存信息收集模块的设计如下:
内存信息的获取主要有两种方法,一种方法可以通过类CMDExecute来实现,这个信息存储在移动设备的/proc/meminfo中,与CPU信息获取方案类似,可以通过cat命令获取移动设备的内存信息,但是获取的信息是移动设备Memory的总量。另一种方法是利用
getSystemService(Context.ACTIVITY_SERVICE)获取
ActivityManager.MemoryInfo对象,从而获取系统的内存信息,本发明中采用第二种方法,其运行效果如图8所示,显示移动设备当前的内存信息。
具体的,进程信息收集模块的设计如下:
进程信息收集可以通过调用类CMDExecute来执行系统的top命令,定义一个String[]ddr={“/system/bin/top”,“-n”,“1”},然后利用类CMDExecute定义的对象cmd执行cmd.run(ddr,“/system/bin”)读取该路径下的文件就可以获取移动设备的正在运行的进程信息。其中进程信息收集运行效果如图9所示,显示移动设备当前正在运行的进程信息,同时显示当前的时间戳为2012-12-1617:31:18.418。
具体的,所述Web服务器通过使用Tomcat实现服务器功能,并且采取POST方式实现与所述智能移动终端之间的所述操作系统信息的传递。
具体的,云端Web服务器设计如下:
本发明实施例将虚拟手机和Web服务器部署在云端。Web服务器称为HTTP服务器,其主要功能是提供网上浏览服务。一般采用两种通信方式:GET和POST。这两种方式都是向服务器发送所请求资源的URL,获取指定的资源,但是在使用的时候也存在差别。首先,GET请求方式,对传输的参数格式和长度是有要求的,要特别注意一些特殊转义字符,例如“%”、“空格”、“?”以及“=”等特殊字符都需要进行转义才能使用GET方式,且参数的长度不宜过长。另外,GET请求方式的传递参数会出现在浏览器的地址栏上,对于一些对安全性要求较高的参数,应该采用POST方式。因此,出于以上两点考虑,本发明采取POST方式实现客户端与Web服务器间的操作系统状态参数传递。
Tomcat以其轻量级的资源占用率、开源免费、性能稳定,而且扩展性好等优势,已经成为目前比较流行的Web应用服务器。在云端,本发明选择使用Tomcat来实现Web服务器的功能。云端的服务器主要负责以下几方面的工作:
(1)Web服务器首先给移动设备端提供一个可访问的地址,然后通过类HttpServletRequest定义一个对象,调用getParameter()函数对移动设备传送的有序数据进行解析,除接收数据之外,Web服务器还负责解析移动设备端发送数据的时间TimeA,同时记录收到数据时服务器的时间TimeC1。然后计算第一段时间:数据从移动设备端发送至Web服务器的时间TimeA_C1。
(2)记录Web服务器转发数据的时间TimeC2,然后计算第二段时间:Web服务器接收并转发的数据时间TimeC1_C2。将计算好的时间段以队列的形式存储在ServletContext上下文中,存储数据格式为[TimeA&TimeA_C1&TimeC1&TimeC1_C2&par],其中par为传输的数据。队列的特点是先进先出,可以保证云端虚拟手机访问时,数据可以进行有序的传输。
具体的,所述虚拟移动终端为利用虚拟软件VMware与Android-x86平台相结合在Windows系统上虚拟出的具有安卓操作系统的智能移动终端,包括以下部分:
实时更新模块,用于通过一个线程控制视图的更新,并设置更新频率对所述Web服务器进行轮询,确保数据的实时更新;
操作系统信息接收模块:用于通过URL与所述Web服务器建立连接,监测所述Web服务器是否存在新的数据,当有新的数据时,对所述新的数据进行存储,当没有新的数据时,则以设定的时间间隔对所述Web服务器进行轮询监测数据。
具体的,云端虚拟手机设计如下:
虚拟机的概念被提出以来,一直受到广泛的应用。目前虚拟机可以分为两种,第一种是对计算机系统的虚拟,它和真实的操作系统具有基本相同的功能,
可以在这个虚拟的环境中运行软件,此类虚拟机是通过软件模拟来实现。另一种是对某个应用运行环境进行虚拟,使每个应用程序运行在各自的虚拟环境中,互不影响。本发明提到的虚拟手机是利用虚拟软件VMware与Android-x86平台相结合在Windows系统上虚拟出的具有安卓操作系统的智能手机,如图10所示,这种手机虚拟机比目前安卓开发人员用的手机模拟器速度要快很多。Android-x86的出现拓展了安卓智能手机操作系统的应用平台,可以将安卓系统安装在PC机上,对于智能手机操作系统,这是一次很有意义的突破。
云端的虚拟手机是本发明设计系统中的重要组成部分,它具有完整的硬件和软件功能,可以对移动设备端的安卓操作系统进行实时备份,相当于在云端形成一个真实手机的镜像。本发明中云端虚拟手机主要设计了以下几个模块:
(1)实时更新模块。本发明通过一个线程来控制视图的更新,可以设置更新的频率,不断的对Web服务器进行轮询,确保数据更新的实时性。另外需要说明一点,安卓中视图的更新不能直接在线程中进行,所以本发明使用Handler来实现更新,将获取数据的代码refresh()写到线程中。
(2)操作系统信息接收模块。数据接收模块的流程图如图11所示,首先虚拟手机通过URL与Web服务器建立连接,监测服务器是否存在新的数据,如果有新的数据,则对数据进行存储,如果没有数据则以一定的时间间隔对Web服务器进行轮询检测数据。此外,接收数据以后,由于虚拟手机从Web服务器获取的数据是一系列用逗号分隔的字符串,我们首先需要对数据进行分解,提取有用信息进行备份。传输的数据格式为[TimeA=yyyy-MM-dd HH:mm:ss.SSS,TimeA_C1=SSS,TimeC1=yyyy-MM-dd HH:mm:ss.SSS,TimeC1_C2=SSS,TimeC2=SSS,par],因此,使用命令String[]dd=inputLine.split(“,”),可以将表中的六个参量分别的放入数组中,例如dd[0]=TimeA,dd[1]=TimeA_C1和dd[2]=TimeC1等。云端虚拟手机在获取数据的同时,需要记录获取数据的时间TimeB,然后统计数据从移动设备端传送至
云端虚拟手机过程的三段时间,以及传输的整体时间
Time_all=TimeA_C1+TimeC1_C2+TimeC2_B,其中,
TimeC2_B=TimeB-bar.parse(dd[4]).getTime()。
相对应的,本发明另一实施例提供了一种智能移动终端与云端虚拟移动终端同步的方法,包括以下步骤:
(1)所述智能移动终端向所述Web服务器发起HTTP请求;
(2)所述Web服务器解析并处理所述HTTP请求,产生HTTP响应;
(3)所述Web服务器向所述智能移动终端返回所述HTTP响应;
(4)所述Web服务器将解析处理之后的数据,以队列形式存储在Servlet上下文中;
(5)所述虚拟移动终端以一定的频率对所述Web服务器进行轮询;
(6)所述Web服务器从智能移动终端接收的数据传输给所述虚拟移动终端。
具体的,所述步骤(1)中,所述智能移动终端采取POST方式实现与所述Web服务器之间的请求。
具体的,所述步骤(2)中,所述Web服务器首先给所述智能移动终端提供一个可访问的地址,再通过类HttpServletRequest定义一个对象,调用getParameter()函数对所述智能移动终端传送的有序数据进行解析。
具体的,所述步骤(4)中,所述Web服务器还负责解析所述智能移动终端发送数据的时间TimeA,同时记录收到数据时所述Web服务器的时间TimeC1,再计算数据从所述智能移动终端发送至所述Web服务器的时间TimeA_C1。
具体的,所述Web服务器记录其转发数据的时间TimeC2,再计算所述Web服务器接收并转发的数据时间TimeC1_C2,将计算好的时间段以队列的形式存储在ServletContext上下文中,存储数据格式为[TimeA&TimeA_C1&TimeC1&TimeC1_C2&par],其中par为传输的数据。
具体的,所述步骤(5)中,所述虚拟移动终端通过URL与所述Web服务器建立连接,监测所述Web服务器是否存在新的数据,如果有新的数据,则对数据进行存储,如果没有数据则按照设定的时间间隔对所述Web服务器进行轮询检测数据。
优选的所述虚拟移动终端接收数据以后,首先对数据进行分解,提取有用信息进行备份。
优选的,所述智能移动终端、所述Web服务器和所述虚拟移动终端均通过调用类NTP中的函数Ntp()来实现与NTP服务器同步的方法,使所述智能移动终端、所述Web服务器和所述虚拟移动终端的时钟同步,其中,所述函数Ntp(),包括三个变量:responseTime,代表所述智能移动终端和/或所述虚拟移动终端收到NTP服务器响应与发送请求至服务器的时间差;localClockOffset,代表本地时钟偏移值;ClockOffset,代表所述智能移动终端和/或所述虚拟移动终端本地时间与NTP服务器时间的差值。
具体的,令系统时钟同步涉及的四个时间点分别为所述智能移动终端、所述Web服务器和所述虚拟移动终端的发送请求的时间t0、所述智能移动终端和/或所述虚拟移动终端接收NTP服务器响应的时间t1、NTP服务器接收来自所述智能移动终端、所述Web服务器和所述虚拟移动终端请求的时间n0以及NTP服务器的响应时间n1,再进行以下计算:
根据公式responseTime=System.currentTimeMillis()-sentTime计算出响应时间response,所述响应时间response是指所述智能移动终端、所述Web服务器和所述虚拟移动终端收到NTP服务器响应时间t1与发送请求的时间t0之差;
根据公式
localClockOffset=((receiveTimestamp-originateTimestamp)+(transmitTimestamp-d estinationTimestamp))/2计算出本地时钟偏移值localClockOffset,其中,Ntp()函数的变量receiveTimestamp和transmitTimestamp分别代表NTP服务端的两个时间点n0和n1,而originateTimestamp和destinationTimestamp分别代表所述
智能移动终端、所述Web服务器和所述虚拟移动终端的时间t0和t1;
根据公式ClockOffset=(Math.round(localClockOffset*1000))-responseTime/计算所述智能移动终端和/或所述虚拟移动终端本地时间与NTP服务器的时间偏移值ClockOffset,在程序中利用类NTP定义一个对象NTP ntp=new NTP(),再通过ntp.Ntp()获得偏移值ClockOffset,再将所述智能移动终端、所述Web服务器和所述虚拟移动终端获取的本地时间补上偏移值ClockOffset,得到所求的标准时间。
优选的,分别提取所述智能移动终端、所述虚拟移动终端和所述Web服务器之间数据传输的时间戳,再对每次提取的时间戳进行校正,其中,令TimeA代表所述智能移动终端收集数据后发送的时间、TimeC1代表所述Web服务器接收所述智能移动终端传输数据的时间、TimeC2代表所述Web服务器转发数据的时间、TimeB代表所述虚拟移动终端接收数据的时间,再利用TimeA_C1表示数据从所述智能移动终端发送至所述Web服务器的时间,利用TimeC1_C2表示所述Web服务器处理数据的时间,利用TimeC2_B表示数据从所述Web服务器转发至所述虚拟移动终端的时间。
本发明另一实施例提供了另一种智能移动终端与云端虚拟移动终端同步的方法,利用Socket协议实现了流文件在物理手机和云端虚拟手机之间的同步,加强了物理手机与虚拟手机之间的交互。
该方法的是实施例包括如下步骤:
所述Web服务器建用于监听所述智能移动终端的连接请求的3000端口,和用于监听所述虚拟移动终端的连接请求的4000端口,所述Web服务器首先监听所述4000端口并与所述虚拟移动终端建立连接,再监听所述3000端口并与所述智能移动终端建立连接,当所述智能移动终端与所述虚拟移动终端之间的通道被建立时,所述Web服务器接收所述智能移动终端发送的数据流,并存储在BufferedReader中,再通过readLine()按行转发给所述虚拟移动终端,完成一次Socket连接。
具体的,基于Socket协议的同步机制如下:
Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。Socket有两种主要的操作方式,面向连接的和无连接的。面向连接的Socket操作就像一部电话,必须建立一个连接和一个呼叫所有的事情到达时的顺序与它们出发时的顺序是一样的。无连接的Socket操作就像是一个邮件投递,没有什么保证。本发明是实施例使用面向连接的操作方式完成文件从物理手机到虚拟手机的传递。如图12所示,服务器端创建并监听3000和4000两个端口,接收来自物理手机和虚拟手机的连接请求,一旦连接被建立,物理手机将通过3000端口向服务器发送文件,服务器接收流文件之后通过4000端口将流文件发送给虚拟手机,完成一次连接。
具体的,所述监听所述3000端口并与所述智能移动终端建立连接,包括以下步骤:所述智能移动终端所包含的流文件信息收集模块,从所述智能移动终端的SD卡中读取文件并存入数组中,再根据所述Web服务器提供的IP和一个开放的端口创建与所述Web服务器之间的Socket连接,并通过PrintWriter类将文件以字符流形式传输给所述Web服务器。
具体的,移动设备端设计如下:
本发明实施例使用Socket通信方式实现流文件传输实验,制作10个不同大小的txt文本,文本的大小是200K、400K、600K至2000K,分别在物理手机和云端虚拟手机之间进行传输测试。移动设备端的流文件信息收集模块负责从智能手机的SD卡中读取文件并存入数组中,然后根据Web服务器提供的IP和一个开放的端口创建与服务器之间的Socket连接,通过PrintWriter类将文件以字符流形式传输给服务器。流文件信息收集过程如图13所示:
具体的,所述Web服务器通过使用面向连接的Socket操作方式,完成数据流从所述智能移动终端向所述虚拟移动终端的传递。
具体的,云端Web服务器设计如下:
本发明使用Socket方式实现流文件的传输,服务器创建3000和4000两个端口,其中3000端口负责监听物理手机端的连接请求,4000端口负责监听云端虚拟手机的连接请求。服务器首先监听4000端口,与虚拟手机端建立连接,然后监听3000端口,与物理手机建立连接。一旦物理手机与虚拟手机之间的通道被建立,服务器端将接收物理手机发送的数据流,并存储在BufferedReader中,然后通过readLine()按行转发给虚拟手机,完成一次Socket连接。
具体到,所述所述Web服务器首先监听所述4000端口并与所述虚拟移动终端建立连接,包括以下步骤:所述虚拟移动终端所包含的流文件接收模块,通过Socket()创建本地端口,再接收由所述Web服务器转发的数据并存储在BufferedReader中,解析并处理所述数据后,将所述数据存储在所述虚拟移动终端的SD卡中,存储路径为/sdcard/,同时计算流文件从所述智能移动终端传输至所述虚拟移动终端所需要的时间。
具体的,云端虚拟手机设计如下:
云端虚拟手机设计了一个流文件接收模块,该模块主要负责与服务器建立连接,通过Socket()创建本地端口,然后接收由服务器转发的数据并存储在BufferedReader中,解析数据并处理数据,最后将数据存储在虚拟手机的SD卡中,存储路径为/sdcard/,同时虚拟手机负责计算流文件从移动设备端传输至云端虚拟手机所需要的时间。
相应的,本发明实施例提供了另一种实现智能移动终端与云端虚拟移动终端同步的系统,包括:
智能移动终端,所述智能移动终端为运行安卓操作系统的智能移动终端;
云端,所述云端包括Web服务器和虚拟移动终端,所述虚拟移动终端运行于云服务器上。
优选的,还包括NTP服务器,用于实现所述智能移动终端、所述Web服务器和所述虚拟移动终端的时钟同步。
具体的,所述智能移动终端包括流文件信息收集模块,用于从所述智能移动终端的SD卡中读取文件并存入数组中,再根据所述Web服务器提供的IP和一个开放的端口创建与所述Web服务器之间的Socket连接,并通过PrintWriter类将文件以字符流形式传输给所述Web服务器。
具体的,所述Web服务器通过使用面向连接的Socket操作方式,完成信息从所述智能移动终端向所述虚拟移动终端的传递。
具体的,所述Web服务器建立用于监听所述智能移动终端的连接请求的3000端口,和用于监听所述虚拟移动终端的连接请求的4000端口,所述Web服务器首先监听所述4000端口并与所述虚拟移动终端建立连接,再监听所述3000端口并与所述智能移动终端建立连接,当所述智能移动终端与所述虚拟移动终端之间的通道被建立时,所述Web服务器接收所述智能移动终端发送的数据流,并存储在BufferedReader中,再通过readLine()按行转发给所述虚拟移动终端,完成一次Socket连接。
优选的,所述虚拟移动终端包括流文件接收模块。
优选的,所述括流文件接收模块用于与所述Web服务器建立连接,包括:通过Socket()创建本地端口,再接收由所述Web服务器转发的数据并存储在BufferedReader中,解析并处理所述数据后,将所述数据存储在所述虚拟移动终端的SD卡中,存储路径为/sdcard/,同时计算流文件从所述智能移动终端传输至所述虚拟移动终端所需要的时间。
本发明的另一实施例在于提供一种云端虚拟移动终端测试的方法,包括以下步骤:
分别提取所述智能移动终端机的电量信息、操作系统版本信息、CPU信息、内存信息以及正在运行的进程信息,对所述每个类型的信息采用HTTP协议进行一次以上的传输,取平均传输时间,再对不同大小的流文件采用Socket协议进行传输,对每种流文件各执行一次以上的传输,取平均传输时间,所述测试从系统功能的完整性和系统传输时间测试两方面进行。
具体的,测试方法如下:
分别提取智能手机的电量信息、操作系统版本信息、CPU信息、内存信息以及正在运行的进程信息。然后对每个类型的信息采用HTTP协议进行多次传输,测试过程中,对每一种类型信息的传输各执行5次,取平均传输时间。然后对不同大小的流文件采用Socket协议进行传输,测试过程中,对每种流文件各执行5次,取平均传输时间。
测试结果与分析如下:
本发明实施例从系统功能的完整性和系统传输时间测试两方面进行实验,并对实验结果进行详细分析,对基于虚拟手机的计算存储资源管理系统进行评估。
(1)功能完整性测试
功能完整性是指移动设备的操作系统信息变化是否可以自动的传输到云端的虚拟手机中。在本次测试中,本发明以电量信息模块为例,当智能手机的电量从100%逐渐变化至90%,云端的虚拟手机中电量也会依次随之发生改变,从100%变化至90%。智能手机的自身电量信息收集如图14所示,其中par为智能手机的电量信息。云端虚拟手机的电量信息备份如图15所示,电量信息也随之改变,从100%变化至90%。
在电量信息传送的过程中,本发明对电量信息传输时间进行统计,如表1所示,其中TimeA_C1表示数据从物理手机发送至Web服务器的时间,TimeC1_C2表示Web服务器处理数据的时间,TimeC2_B表示数据从Web服务器转发至云端虚拟手机的时间,Time_all表示传输的总体时间。根据对电量信息传输测试结果的分析,物理手机的电量信息变化可以实时更新到云端的虚拟手机中,证实了本发明所设计系统的功能完整性。
表1电量信息传输时间
(2)系统传输时间测试
本发明将系统传输时间精确至毫秒,统一格式为yyyy-MM-dd HH:mm:ss.SSS。在本实验中,利用Web服务器来计算前两段时间:分别是TimeA_C1=TimeC1-TimeA与TimeC1_C2=TimeC2-TimeC1,然后再将两个时间段发送至云端虚拟手机,由虚拟手机完成第三段时间和总传输时间的计算:TimeC2_B=TimeB-TimeC2与Time_all=TimeB-TimeA。以下分别对智能手机的操作系统版本信息、CPU信息、内存信息、正在运行的进程信息以及流文件信息进行传输测试,并对物理手机不同类型信息使用HTTP方式进行传输,时间延迟的统计如表2所示,同时对不同大小的流文件使用Socket方式进行传输,时间延迟的统计如表3所示。
物理手机首先对自身信息进行收集,其中对操作系统版本信息的收集如图16所示,然后通过Web服务器的转发;云端虚拟手机信息备份如图17所示,CPU信息收集及备份如图18和图19所示;内存信息收集及备份如图20和图21所示;正在运行的进程信息收集及备份如图22和图23所示;流文件收集及备份如图24和图25所示。
表2不同类型信息平均传输时间
表3不同大小流文件传输时间
根据以上实验,本发明分别对传输不同类型的信息,以及传输不同大小流文件传输时间数据进行分析。其中操作系统信息传输时间如图26所示,本发明采用HTTP协议对操作系统信息进行传输,每种类型的信息各传输5次,取平均传输时间。该图横坐标代表物理手机的操作系统的状态信息,纵坐标代表信息备份至云端的时间。由图26可见,TimeA_C1,即信息从物理手机传递至Web服务器的时间,TimeC1_C2,即服务器处理信息的时间,TimeC2_B,即服务器将信息转发至虚拟手机的时间,Time_all,即信息由物理手机传递至虚拟手机的总体时间。由于物理手机通过无线网络访问云端服务器,因此在三段时间中,TimeC1_C2和TimeC2_B的值远远小于TimeA_C1。从整体上来看,传输总体时间维持在35000毫秒以下。在我们的进一步工作中,我们拟通过采用其他新的网络协议,来缩短时间上的延迟。目前采用Web服务器的主要原因是,1)目前需要传递的操作系统等信息都比较短;2)Web应用和服务器开发相对容易,部署简单。
流文件传输时间变化趋势如图27所示。本发明采用Socket通信方式传输流文件,将不同大小的流文件各传输5次,取平均传输时间。该图横坐标代表流文件的大小,分别从200K逐渐增加至2000K,纵坐标代表流文件从物理手机SD卡传输至云端虚拟手机SD卡的时间。由图27可见,其中TimeA_C1,即流文件从物理手机SD卡传输至Web服务器的时间,TimeC1_C2,即Web服务器处理流文件的时间,TimeC2_B,即Web服务器将流文件转发至虚拟手机的时间,Time_all,即流文件从物理手机SD卡中传输至虚拟手机SD卡的总体时间。由于物理手机通过无线网络访问云端,故TimeA_C1的传输时间大于TimeC2_B。此外,由于Web服务器端的转发机制是使用readline()进行按行转
发,而本发明用于测试的流文件是文本形式的文件,因此随着处理数据量的增大,Web服务器的转发时间TimeC1_C2呈明显上升趋势,而且整体上时间的消耗随着文件大小是线性增长。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明公开的量纲和值旨在被用于严格地限于所述的精确值。相反,除非另外指明,每个这样的量纲和值旨在表述所述值以及围绕该值功能上等同的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (9)

1.一种智能移动终端与云端虚拟移动终端同步的系统,其特征在于,包括以下部分:
智能移动终端,所述智能移动终端为运行安卓操作系统的智能移动终端;
云端,所述云端包括Web服务器和虚拟移动终端,所述Web服务器和虚拟移动终端均运行于云服务器上;所述智能移动终端通过3G或WiFi无线网络,利用HTTP协议将信息发送至云端的Web服务器,再由Web服务器将信息转发给所述虚拟移动终端,实现所述智能移动终端与虚拟移动终端的操作系统信息同步;
还包括NTP服务器,用于实现所述智能移动终端、所述Web服务器和所述虚拟移动终端的时钟同步,所述NTP服务器为网络时间协议服务器;
所述智能移动终端和云端均通过调用类NTP中的函数Ntp()来实现与NTP服务器的同步,该函数主要包括三个变量:responseTime,代表智能移动终端收到NTP服务器响应与发送请求至NTP服务器的时间差;localClockOffset,代表本地时钟偏移值;ClockOffset,代表智能移动终端本地时间与NTP服务器时间的差值;
所述时钟同步涉及的四个时间点分别为智能移动终端的发送请求的时间t0、智能移动终端接收NTP服务器响应的时间t1、NTP服务器接收来自智能移动终端请求的时间n0以及NTP服务器的响应时间n1;
首先根据公式(1)可以计算出响应时间responseTime;
然后根据公式(2)可以计算出本地时钟偏移值localClockOffset,其中,Ntp()函数的变量receiveTimestamp和transmitTimestamp分别代表NTP服务器的两个时间点n0和n1,而originateTimestamp和destinationTimestamp分别代表智能移动终端的时间t0和t1;
最后根据公式(3)计算智能移动终端本地时间与NTP服务器的时间偏移值ClockOffset,在程序中利用类NTP定义一个对象NTP ntp=new NTP(),然后通过ntp.Ntp()即可获得偏移值ClockOffset,再将智能移动终端或Web服务器获取的本地时间补上偏移值ClockOffset则是所求的标准时间;
responseTime=System.currentTimeMillis()-sentTime (1)
localClockOffset=((receiveTimestamp-originateTimestamp)+(transmitTimestamp-de stinationTimestamp))/2 (2)
ClockOffset=(Math.round(localClockOffset*1000))-responseTime/2 (3)。
2.如权利要求1所述的一种智能移动终端与云端虚拟移动终端同步的系统,其特征在于,所述智能移动终端包括以下部分:
电量信息收集模块,用于利用安卓系统的广播机制对电量进行监测,并在所述电量发生变化时,将所述电量信息实时更新到云端的所述虚拟移动终端中;
操作系统版本信息收集模块,用于收集存储在所述智能移动终端中的操作系统版本信息;
CPU信息收集模块,用于获取所述智能移动终端的CPU信息;
内存信息收集模块,用于获取所述智能移动终端的内存信息;
进程信息收集模块,获取所述智能移动终端的正在运行的进程信息。
3.如权利要求2所述的一种智能移动终端与云端虚拟移动终端同步的系统,其特征在于,所述Web服务器通过使用Tomcat实现服务器功能,并且采取POST方式实现与所述智能移动终端之间的所述操作系统信息的传递。
4.如权利要求3所述的一种智能移动终端与云端虚拟移动终端同步的系统,其特征在于,所述虚拟移动终端为利用虚拟软件VMware与Android-x86平台相结合在Windows系统上虚拟出的具有安卓操作系统的智能移动终端,包括以下部分:
实时更新模块,用于通过一个线程控制视图的更新,并设置更新频率对所述Web服务器进行轮询,确保数据的实时更新;
操作系统信息接收模块:用于通过URL与所述Web服务器建立连接,监测所述Web服务器是否存在新的数据,当有新的数据时,对所述新的数据进行存储,当没有新的数据时,则以设定的时间间隔对所述Web服务器进行轮询监测数据。
5.如权利要求1所述的一种智能移动终端与云端虚拟移动终端同步的系统,其特征在于,所述智能移动终端包括流文件信息收集模块,用于从所述智能移动终端的SD卡中读取文件并存入数组中,再根据所述Web服务器提供的IP和一个开放的端口创建与所述Web服务器之间的Socket连接,并通过PrintWriter类将文件以字符流形式传输给所述Web服务器。
6.如权利要求5所述的一种智能移动终端与云端虚拟移动终端同步的系统,其特征在于,所述Web服务器通过使用面向连接的Socket操作方式,完成流文件信息从所述智能移动终端向所述虚拟移动终端的传递。
7.如权利要求6所述的一种智能移动终端与云端虚拟移动终端同步的系统,其特征在于,所述Web服务器建立用于监听所述智能移动终端的连接请求的3000端口,和用于监听所述虚拟移动终端的连接请求的4000端口,所述Web服务器首先监听所述4000端口并与所述虚拟移动终端建立连接,再监听所述3000端口并与所述智能移动终端建立连接,当所述智能移动终端与所述虚拟移动终端之间的通道被建立时,所述Web服务器接收所述智能移动终端发送的数据流,并存储在BufferedReader中,再通过readLine()按行转发给所述虚拟移动终端,完成一次Socket连接。
8.如权利要求6所述的一种实现智能移动终端与云端虚拟移动终端操作系统信息同步的系统,其特征在于,所述虚拟移动终端包括流文件接收模块。
9.如权利要求8所述的一种实现智能移动终端与云端虚拟移动终端操作系统信息同步的系统,所述流文件接收模块用于与所述Web服务器建立连接,包括:通过Socket创建本地端口,再接收由所述Web服务器转发的数据并存储在BufferedReader中,解析并处理所述数据后,将所述数据存储在所述虚拟移动终端的SD卡中,同时计算流文件从所述智能移动终端传输至所述虚拟移动终端所需要的时间。
CN201310248235.8A 2013-06-21 2013-06-21 一种智能移动终端与云端虚拟移动终端同步的系统和方法 Active CN103442024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310248235.8A CN103442024B (zh) 2013-06-21 2013-06-21 一种智能移动终端与云端虚拟移动终端同步的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310248235.8A CN103442024B (zh) 2013-06-21 2013-06-21 一种智能移动终端与云端虚拟移动终端同步的系统和方法

Publications (2)

Publication Number Publication Date
CN103442024A CN103442024A (zh) 2013-12-11
CN103442024B true CN103442024B (zh) 2017-04-05

Family

ID=49695689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310248235.8A Active CN103442024B (zh) 2013-06-21 2013-06-21 一种智能移动终端与云端虚拟移动终端同步的系统和方法

Country Status (1)

Country Link
CN (1) CN103442024B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678132A (zh) * 2013-12-18 2014-03-26 中国科学院深圳先进技术研究院 一种应用软件云测试系统
CN105094265B (zh) * 2014-05-07 2019-05-14 腾讯科技(深圳)有限公司 电量测试方法及装置
CN105242996A (zh) * 2014-07-09 2016-01-13 腾讯科技(深圳)有限公司 一种智能终端的电量模拟方法及装置
CN104092760A (zh) * 2014-07-15 2014-10-08 东莞市微云系统科技有限公司 云终端组播重定向的系统及方法
CN104168309A (zh) * 2014-07-24 2014-11-26 深圳天珑无线科技有限公司 基于云服务的数据备份与操作方法
FR3028373A1 (fr) * 2014-11-07 2016-05-13 Orange Delegation d'intermediation sur un echange de donnees chiffrees.
JP6100319B2 (ja) * 2015-06-30 2017-03-22 東芝エレベータ株式会社 エレベータの遠隔監視システム、遠隔監視装置及び通信装置
CN105100465B (zh) * 2015-07-14 2018-02-06 上海斐讯数据通信技术有限公司 一种个人信息交叉备份方法
CN107690166B (zh) * 2016-08-03 2020-11-20 深信服科技股份有限公司 一种vmi平台的接入方法、装置及系统
CN106230843A (zh) * 2016-08-05 2016-12-14 北京奇虎科技有限公司 一种为智能手机配置云虚拟手机的方法、服务器和系统
CN106559429A (zh) * 2016-11-28 2017-04-05 北京铭铭鑫软件有限公司 一种基于Linux系统的一键换机方法
US11044591B2 (en) 2017-01-13 2021-06-22 Futurewei Technologies, Inc. Cloud based phone services accessible in the cloud by a remote device
CN107451016A (zh) * 2017-09-19 2017-12-08 郑州云海信息技术有限公司 存储系统的数据备份与恢复系统、方法、设备及存储介质
CN108363609B (zh) * 2018-02-07 2021-11-30 腾讯科技(深圳)有限公司 模拟传感器的方法、装置和存储介质
CN108932663B (zh) * 2018-06-26 2021-11-19 中国银行股份有限公司 一种模拟撮合交易方法及装置
CN109327536B (zh) * 2018-11-12 2020-12-25 郑州源创智控有限公司 一种快速实现分散设备集中控制的方法
CN111309698A (zh) * 2018-12-12 2020-06-19 中兴通讯股份有限公司 磁盘重定向方法、装置和系统
CN109741186A (zh) * 2019-01-14 2019-05-10 上海冷水河信息科技有限公司 股票复盘的数据处理方法、云服务器与系统
CN111343261A (zh) * 2020-02-20 2020-06-26 大连睿海信息科技有限公司 基于无线热点传输的手机数据备份方法
CN112052164A (zh) * 2020-08-19 2020-12-08 深圳创维-Rgb电子有限公司 一种Android设备的远程调试方法、存储介质及调试终端
CN112667427A (zh) * 2020-12-31 2021-04-16 上海磐御网络科技有限公司 一种基于虚拟化技术的网络安全系统
CN113905040B (zh) * 2021-09-30 2024-04-02 北京百度网讯科技有限公司 文件传输方法、装置、系统、设备以及存储介质
CN114143219A (zh) * 2021-12-01 2022-03-04 北京联创新天科技有限公司 一种b/s系统架构的网络监控方法、装置、介质及设备
CN114222014A (zh) * 2021-12-15 2022-03-22 天翼电信终端有限公司 一种云手机切换rom系统的方法及装置
CN115529332B (zh) * 2022-09-28 2023-06-16 润芯微科技(江苏)有限公司 一种用于车机中控的云车机系统及远程访问方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088398A (zh) * 2009-12-08 2011-06-08 华为技术有限公司 Web并发事件处理方法及装置
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
CN103067502A (zh) * 2012-12-31 2013-04-24 博彦科技(上海)有限公司 一种开发测试云的硬件系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471704B2 (en) * 2009-10-06 2016-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Shared script files in multi-tab browser

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088398A (zh) * 2009-12-08 2011-06-08 华为技术有限公司 Web并发事件处理方法及装置
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
CN103067502A (zh) * 2012-12-31 2013-04-24 博彦科技(上海)有限公司 一种开发测试云的硬件系统

Also Published As

Publication number Publication date
CN103442024A (zh) 2013-12-11

Similar Documents

Publication Publication Date Title
CN103442024B (zh) 一种智能移动终端与云端虚拟移动终端同步的系统和方法
CN108449418B (zh) 一种混合云平台管理系统及方法
CN104660682B (zh) 一种基于td-lte的opc数据采集与监控智能终端
CN109639782B (zh) 消息发送平台、方法
CN110908658A (zh) 一种“微服务+微应用”系统、数据处理方法及装置
CN103095819A (zh) 推送数据信息的方法及数据信息推送系统
CN102891873A (zh) 一种存储日志数据的方法及日志数据存储系统
CN102916854A (zh) 流量统计方法、装置及代理服务器
CN112235253B (zh) 数据资产的梳理方法、装置、计算机设备和存储介质
CN108718347A (zh) 一种域名解析方法、系统、装置及存储介质
CN113179316A (zh) 一种基于容器化设计的云边端协同计算系统和方法
CN113656824A (zh) 基于区块链和ipfs技术的物联网智能终端信息安全交互方法
CN104301161A (zh) 业务质量指标的计算方法、计算装置以及通信系统
Ayala et al. An energy efficiency study of web-based communication in android phones
CN114253798A (zh) 指标数据采集方法和装置、电子设备、存储介质
CN116974948B (zh) 业务系统测试方法、系统、设备和介质
CN110708209B (zh) 虚拟机流量采集方法、装置、电子设备及存储介质
Guo et al. MobileSens: A framework of behavior logger on Andriod mobile device
CN112698829B (zh) 异常资源的定位方法和装置、存储介质及电子设备
CN111935316B (zh) 一种前端设备目录获取方法及装置
Kaisar Smartphone traffic characteristics and context dependencies
CN109788010A (zh) 一种数据本地化存取的方法和装置
CN116244359B (zh) 一种试验数据汇聚装置、方法及设备
CN113676840B (zh) 数据处理方法、装置、电子设备、存储介质和程序产品
CN103905266A (zh) 一种分布式互联网行为分析方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200201

Address after: Office building of Shenzhen Institute of advanced technology A-207 518000 in Guangdong city of Shenzhen province Nanshan District City Road No. 1068 Chinese Academy of Shenzhen University Academy of Sciences

Patentee after: Shenzhen advanced science and technology Cci Capital Ltd

Address before: 1068 No. 518055 Guangdong city in Shenzhen Province, Nanshan District City Xili University School Avenue

Patentee before: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE ACADEMY OF SCIENCES

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200706

Address after: 12 / F, building 5, Haiju center, Qiantang New District, Hangzhou City, Zhejiang Province

Patentee after: HANGZHOU ZHONGKE ADVANCED TECHNOLOGY RESEARCH INSTITUTE Co.,Ltd.

Address before: Office building of Shenzhen Institute of advanced technology A-207 518000 in Guangdong city of Shenzhen province Nanshan District City Road No. 1068 Chinese Academy of Shenzhen University Academy of Sciences

Patentee before: Shenzhen advanced science and technology Cci Capital Ltd.

TR01 Transfer of patent right