基于3G的移动云系统的研究与设计*

2014-07-25 07:44谢寒冰
网络安全与数据管理 2014年6期
关键词:服务器端被控客户端

谢寒冰,贺 松

(贵州大学 电子信息学院,贵州 贵阳550025)

远程控制这一概念最早出现在PC端,用于联网的电脑之间,主控端通过网络向受控端发送指令,完成一系列信息的交互。而随着移动互联网的发展,尤其是以安卓操作系统为代表的智能手机的大量接入网络,人们对于应用需求的不断增加,远程控制开始大量应用于手持设备和电脑客户端[1]。

传统的手持设备与PC间的远程控制,其功能比较单一,随时随地性较差,无法满足用户越来越高的需求。正是在这种背景下,移动云的出现给移动互联网的发现带来了新的契机,加速了云计算的落地,使用户能真正受益于新兴科技所带来的改变。

云计算相对于普通远程控制软件不同的是,在云端部署的服务器能够带来更为强大的数据分析和计算能力,以及更为出色的数据存储,使得即使在用户量大、需要处理的数据非常庞大时,也可以轻松应对;同时,在通过3G或WiFi连接入网的情况下,用户可以在真正意义上实现随时随地的操作。

在基于3G网络和互联网的背景下,本文介绍了一种远程控制系统,手机客户端通过3G连接入网,与PC受控端完成一系列信息的交互,可以实现对于PC端的关机、重启、摄像头的访问、文件的访问和操作。

1 系统整体阐述

1.1 系统采用的开发环境

数据库:SQLServer2005是一个全面的数据库平台,使用集成的商业智能工具提供了企业级的数据管理,其中的数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。

SQLServer2005数据库实现对PC端、手机端、服务器端各种需要交互的文件、图像、视频等数据的存储。

Eclipse:Eclipse是一个开放源代码的基于Java的可扩展开发平台,是普遍适用的开放可扩展IDE,它不仅可以开发Java程序,也可以用来开发C/C++,且任何人都可以扩展Eclipse的功能。Eclipse的核心非常小,其他功能都是基于此核心写成插件,包括图形API、开发环境插件JDT、插件开发环境PDE。Eclipse对这些插件的协同工作提供了良好的支持,不仅安装简单,还可以无缝结合。

Eclipse用来实现C/S架构的PC端和手机端的软件功能开发。

VS2010:Vssual Studio是目前最流行的 Windows平台应用程序开发环境,是一套完整的开发工具集,用于生成 ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。此外,它还提供仿真程序,让开发者可以在开发计算机上运行和调试代码。

WDK:是一种完全集成的驱动程序开发系统,它包含Windows DDK,用于测试Windows驱动器的可靠性和稳定性。

VS2010与WDK平台用来实现客户端、服务器端的基于C、C++和C#语言的功能程序的开发。

1.2 技术介绍

虚拟化技术:虚拟化技术是云计算、云存储得以实现的关键技术之一。对于云计算、云存储来说,需要抽象的地方很多,这当中涉及虚拟化存储管理和虚拟化计算管理。虚拟化存储管理就像是虚拟内存一样,当应用程序执行时,所占用的内存不足,操作系统为之增加虚拟内存,直至内存耗尽。虚拟化计算管理就像是对进程、线程进行调度,并且管理对应的线程、进程资源。

RFB协议和 RDP协议:RFB(远程帧缓冲)协议是一个用于远程访问图形用户界面的简单协议;RDP(远程显示协议)为客户与服务器之间提供连接,协议基于T.128提供多信道,在客户端支持多种资源缓冲和图片数据的压缩处理[2]。

远程控制中的C/S结构、TCP和UDP协议、Telnet协议:C/S(ClientServer)结构即客户端和服务器端结构,它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现;远程控制中的C/S模式主要过程是主控端与服务端连接之后,Client发送数据到Server,Server再接收数据、处理数据(比如截取屏幕等),生成相应的数据发送到 Client;TCP(传输控制协议)和UDP(用户数据包协议)都是位于OSI模型中的第四层(即传输层),在网络中,这两个协议都用来处理数据包,许多C/S模式的网络应用都需要使用这两个协议;Telnet协议是TCP/IP协议族中的一员,是远程登陆的标准协议和主要方式,也是常用的远程控制服务器的方法[3]。

Socket:Socket通常也称作套接字,是支持 TCP/IP协议的网络通信的基本操作单元。要通过互联网进行通信,至少要有一对 Socket,其中一个运行于客户端,称之为ClientSocket;另一个运行于服务器端,称为Server-Socket。Socket之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。

VNC:VNC是虚拟网络计算机的缩写,是VNC是一款优秀的远程控制工具软件,其远程控制能力强大,高效实用。VNC基本上是由两部分组成:一部分是客户端的应用程序(Vncviewer);另外一部分是服务器端的应用程序(Vncserver)。

2 系统设计与实现

2.1 系统功能设计

在客户端,用户点击软件图标,进入软件;首页进行登录验证,输入用户名和密码;验证成功后,获取被控端主机列表,点击选择的被控端主机进行连接;连接成功后,客户端获取服务目录。系统的功能模块如图1所示。

图1 系统功能模块

2.2 系统结构设计

系统的总体设计思路是在远端(即“云”端)部署一个“云”服务器,负责建立手机客户端与PC端的连接通信,以及对于两端发送的请求和数据的处理。具体的系统结构如图2所示。

图2 系统总体结构

PC受控端功能需求:受控端主要功能是接收主控端发送的连接请求,建立连接;对主控端发送的命令进行识别,完成相应操作,并将结果通过服务器端发送给主控端。

手机客户端功能需求:手机客户端即主控端,主要负责生成并发送连接请求、操作命令给被控端,接收经服务器端处理由被控端发送来的响应结果,并将结果处理、显示在客户端[2]。

服务器端功能需求:服务器端主要负责建立主控端与被控端之间的通信,并对主、被控端发送的数据和信息进行计算和处理。

2.3 系统功能实现

视频监控功能实现流程如图3所示。

图3 视频监控实现流程

手机客户端接收用户操作命令,经处理后向服务器端发送连接请求;服务器端将客户端发送来的请求加以分析,并将命令发送给PC受控端;PC端调用受控程序,打开摄像头,完成图像扑捉、桌面图像截取,并将图像数据打包发送给服务器端进行处理;服务器端接收到PC端发送的图像数据,并对接收到的图像数据进行处理,转化成手机端可以显示的图像,并将处理后的图像数据发送给手机客户端。

手机客户端与服务器间进行 Socket通信[4],具体如图4所示。

图4 客户端与服务端通信流程

3 “云”服务器端设计

3.1 传统远程控制模式

传统模式下的手机、电脑远程通信和手机远程控制,产生的少量通信请求和信息的传输、数据的处理直接在电脑端或手机端通过内部程序进行处理,此时虽可以保证数据处理的实时性和准确性,但对设备的依赖较大。而设备间无统一标准的通信接口和数据传输通道也造成了设计手机远程控制端时不得不针对不同厂家的不同电脑进行独立开发,无通用性,而软件开发的难度、成本相对较高[4]。

通常控制软件由客户端程序和服务器端程序组成,在使用前要将客户端程序安装到手机端,服务器端程序安装到被控端(个人电脑)[5]。控制过程主要分为服务连接建立,客户端、服务器端程序的运行,图像(电脑桌面)、指令(操作命令)等信息的传输,控制结果的响应、反馈,从而实现手机端对电脑等产品的远程控制。

Android开源系统的横空出世,手机、平板、智能电视等搭载Android系统的各种移动端产品迅猛发展,大大消除了由于不同厂商、不同设备等采用的不同开发标准造成的设备差异性,现已基本能够实现设备间通信接口标准的统一,为实现家庭式物联网提供了优秀的软件平台基础。随着3G、4G移动网络的发展和普及,可提供高达几十到上百兆的通信带宽为实现物联网提供了优秀的网络基础,极大地满足了家庭式物联网(手机等移动端、电脑、冰箱、智能电视、空调等)产生的大量通信要求和大数据处理请求对网络带宽的要求。

综上所述,传统远程控制模式实现的手机对电脑的控制程度以及通信产生的信息量都不是太大,而现在智能手机的强大功能使得控制信息的量大大增加,控制的程度更加深入和全面。传统的手机端—电脑端模式只能提供个人家庭的使用,且并不能全面实现对电脑的操控和大量数据的实时处理(特别是电脑摄像头监控产生的大视频文件无法传输给手机端处理)。从而对手机端实现对电脑端的大数据处理、全方位操控、高实时性提出了更新的要求。建立“云”服务器专门负责大数据的处理,提供全面的数据分析、处理,实现对电脑端的精确操控显得非常有必要[6]。

3.2 系统服务器端的设计

“云”服务器的设计中考虑到存在大量的用户 (例如:不同用户传输大量数据的要求)需要通过服务器进行通信连接和数据传递,以完成手机端与电脑端的控制和信息交互,服务器需要提供大量的通信链路和及时、准确的信息处理[6]。采用传统的VPS技术可以满足用户对服务器资源的要求,但是由于VPS技术是将一台独立的服务器通过虚拟软件 (VM等)映射出多个串行的虚拟主机,当其中一台虚拟主机占用大量宽带资源时,就会影响到其他虚拟主机的使用,更重要的是,当某一台虚拟主机出现问题(受到攻击)时,所有的虚拟主机都会陷入瘫痪,无法工作。所以,此系统采用基于“云”概念的技术,利用服务器集群,将其部署在电信机房内部,形成一种远程的中间件形式的“云”服务器模式,为远程分布的各用户提供手机与电脑通信连接的接口、操作指令的解析功能和大数据的传输功能。此服务器端对用户来说是一个透明的存在,用户只需要关注自身的操作而无需考虑通信连接的建立和数据通信的详细实现过程,方便用户的使用[7]。

“云”服务器端主要分为三大功能模块:信息通信模块、数据处理模块、内网穿透模块[8]。

信息通信模块主要功能:通过网络侦听模式获取通信连接请求或手机端(电脑端)桌面变化产生的通信请求,验证请求合法性,分配服务器资源。

数据处理传输模块主要功能包括:负责对主控端发送的命令请求以及被控端反馈的操作结果数据的处理。

内网穿透模块的主要功能:不在同一内网时,作为打通主控端与被控端之间的连接。

4 实验结果

图5为客户端软件的实现界面,用户经过验证登陆后,点击被控端进行连接,等待连接成功,会弹出服务目录,用户可以进行相关的服务操作。

图5 实验结果

本文提出了一种基于3G网络和互联网运行下的智能手机远程控制系统,其中手机客户端为主控端,PC为被控端,服务器端负责建立两者之间连接以及对命令数据的处理和存储。整个系统具有良好的横向和纵向扩展能力,利用云计算的特点,可以通过增加主机或者提高主机性能的方式来提高整个系统的处理能力,应对大量接入的用户。同时,软件具有灵活性、可伸缩性,保证功能模块随系统结构和业务流程发展变化灵活组合和扩充,可以迅速灵活地扩展新业务;系统的各个模块既可分布式运行,也可集中式运行,且各模块负载能力及整体负载能力可平滑扩展,新功能模块的增加不影响现有模块的运营。

[1]袁成林,蒋于亭,肖锦文,等.信息加点及远程管理系统的研究[J].电脑知识与技术,2010,6(31):8682-8684,8691.

[2]耿庆安,刘娜,张镭.基于远程桌面连接的现场设备远程控制[J].电子技术应用,2013,31(1):117-119.

[3]刘佳,郑华,刘洋,等.基于 TCP和 UDP混合协议的远程控制软件的设计与实现[J].计算机应用于软件,2010,27(03):127-130.

[4]耿东久,索岳,陈渝,等.基于Android手机的远程访问和控制系统[J].计算机应用,2011,31(02):559-561,571.

[5]余柏林,曾欣,王新忠.智能家电远程控制的研究[J].微型机与应用,2011,30(7):116-118.

[6]秦耕,程克非,张亚奎.基于智能手机的电脑远程控制系统设计.微计算机信息,25(1-3):22-23,8.

[7]高林,宋相倩,王洁萍.云计算及其关键技术研究[J].微型机与应用,2011,30(10):5-7,11.

[8]PALAZZI C E,FERRAFESE M.FTP4 Android:a local/remote file manager for google android platform[C].Consumer Communications and Networking Conferrence(CCNC),IEEE,2011.

猜你喜欢
服务器端被控客户端
Linux环境下基于Socket的数据传输软件设计
港警在“修例风波”中拘捕近万人
如何看待传统媒体新闻客户端的“断舍离”?
大惯量系统位置控制策略研究
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用