摘 要: 移動互聯網和云計算的結合為移動互聯網的發展帶來了新的契機,同時也加速了云計算的落地。為了擴展移動終端的功能和作用,體現云計算的優勢,讓用戶能夠真正受益于新興科技帶來的改變,提出了一種基于3G網絡和互聯網而運行的遠程控制系統,整個系統基于C/S設計模式,以手機客戶端為主控端,PC端為被控端,通過服務器建立連接,處理命令和數據,實現遠程訪問和控制。
關鍵詞:移動互聯網; 云計算; 3G網絡; 遠程控制
遠程控制這一概念最早出現在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; 另一個運行于服務器端,稱為ServerSocket。Socket之間的連接過程可以分為三個步驟:服務器監聽,客戶端請求,連接確認。
VNC:VNC是虛擬網絡計算機的縮寫,是VNC 是一款優秀的遠程控制工具軟件,其遠程控制能力強大,高效實用。VNC基本上是由兩部分組成:一部分是客戶端的應用程序(Vncviewer);另外一部分是服務器端的應用程序(Vncserver)。
2 系統設計與實現
2.1 系統功能設計
在客戶端,用戶點擊軟件圖標,進入軟件;首頁進行登錄驗證,輸入用戶名和密碼;驗證成功后,獲取被控端主機列表,點擊選擇的被控端主機進行連接;連接成功后,客戶端獲取服務目錄。系統的功能模塊如圖1所示。
PC受控端功能需求:受控端主要功能是接收主控端發送的連接請求,建立連接;對主控端發送的命令進行識別, 完成相應操作,并將結果通過服務器端發送給主控端。
手機客戶端功能需求:手機客戶端即主控端,主要負責生成并發送連接請求、操作命令給被控端,接收經服務器端處理由被控端發送來的響應結果,并將結果處理、顯示在客戶端[2]。
服務器端功能需求:服務器端主要負責建立主控端與被控端之間的通信,并對主、被控端發送的數據和信息進行計算和處理。
2.3 系統功能實現
視頻監控功能實現流程如圖3所示。
手機客戶端接收用戶操作命令,經處理后向服務器端發送連接請求;服務器端將客戶端發送來的請求加以分析,并將命令發送給PC受控端;PC端調用受控程序,打開攝像頭,完成圖像撲捉、桌面圖像截取,并將圖像數據打包發送給服務器端進行處理;服務器端接收到PC端發送的圖像數據,并對接收到的圖像數據進行處理,轉化成手機端可以顯示的圖像,并將處理后的圖像數據發送給手機客戶端。
手機客戶端與服務器間進行Socket通信[4],具體如圖4所示。
3 “云”服務器端設計
3.1 傳統遠程控制模式
傳統模式下的手機、電腦遠程通信和手機遠程控制,產生的少量通信請求和信息的傳輸、數據的處理直接在電腦端或手機端通過內部程序進行處理,此時雖可以保證數據處理的實時性和準確性,但對設備的依賴較大。而設備間無統一標準的通信接口和數據傳輸通道也造成了設計手機遠程控制端時不得不針對不同廠家的不同電腦進行獨立開發,無通用性,而軟件開發的難度、成本相對較高[4]。
通常控制軟件由客戶端程序和服務器端程序組成,在使用前要將客戶端程序安裝到手機端,服務器端程序安裝到被控端(個人電腦)[5]。控制過程主要分為服務連接建立,客戶端、服務器端程序的運行,圖像(電腦桌面)、指令(操作命令)等信息的傳輸,控制結果的響應、反饋,從而實現手機端對電腦等產品的遠程控制。
Android開源系統的橫空出世,手機、平板、智能電視等搭載Android系統的各種移動端產品迅猛發展,大大消除了由于不同廠商、不同設備等采用的不同開發標準造成的設備差異性,現已基本能夠實現設備間通信接口標準的統一,為實現家庭式物聯網提供了優秀的軟件平臺基礎。隨著3G、4G移動網絡的發展和普及,可提供高達幾十到上百兆的通信帶寬為實現物聯網提供了優秀的網絡基礎,極大地滿足了家庭式物聯網(手機等移動端、電腦、冰箱、智能電視、空調等)產生的大量通信要求和大數據處理請求對網絡帶寬的要求。
綜上所述,傳統遠程控制模式實現的手機對電腦的控制程度以及通信產生的信息量都不是太大,而現在智能手機的強大功能使得控制信息的量大大增加,控制的程度更加深入和全面。傳統的手機端—電腦端模式只能提供個人家庭的使用,且并不能全面實現對電腦的操控和大量數據的實時處理(特別是電腦攝像頭監控產生的大視頻文件無法傳輸給手機端處理)。從而對手機端實現對電腦端的大數據處理、全方位操控、高實時性提出了更新的要求。建立“云”服務器專門負責大數據的處理,提供全面的數據分析、處理,實現對電腦端的精確操控顯得非常有必要[6]。
3.2 系統服務器端的設計
“云”服務器的設計中考慮到存在大量的用戶(例如:不同用戶傳輸大量數據的要求)需要通過服務器進行通信連接和數據傳遞,以完成手機端與電腦端的控制和信息交互,服務器需要提供大量的通信鏈路和及時、準確的信息處理[6]。采用傳統的VPS技術可以滿足用戶對服務器資源的要求,但是由于VPS技術是將一臺獨立的服務器通過虛擬軟件(VM等)映射出多個串行的虛擬主機,當其中一臺虛擬主機占用大量寬帶資源時,就會影響到其他虛擬主機的使用,更重要的是,當某一臺虛擬主機出現問題(受到攻擊)時,所有的虛擬主機都會陷入癱瘓,無法工作。所以,此系統采用基于“云”概念的技術,利用服務器集群,將其部署在電信機房內部,形成一種遠程的中間件形式的“云”服務器模式,為遠程分布的各用戶提供手機與電腦通信連接的接口、操作指令的解析功能和大數據的傳輸功能。此服務器端對用戶來說是一個透明的存在,用戶只需要關注自身的操作而無需考慮通信連接的建立和數據通信的詳細實現過程,方便用戶的使用[7]。
“云”服務器端主要分為三大功能模塊:信息通信模塊、數據處理模塊、內網穿透模塊[8]。
信息通信模塊主要功能:通過網絡偵聽模式獲取通信連接請求或手機端(電腦端)桌面變化產生的通信請求,驗證請求合法性,分配服務器資源。
數據處理傳輸模塊主要功能包括:負責對主控端發送的命令請求以及被控端反饋的操作結果數據的處理。
內網穿透模塊的主要功能:不在同一內網時,作為打通主控端與被控端之間的連接。
4 實驗結果
圖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.