?

基于XMPP擴展協議的遠程控制系統研制

2014-05-25 00:28周欣倫立寶張庚劉革
計算機與網絡 2014年2期
關鍵詞:終端設備被控客戶端

周欣 倫立寶 張庚 劉革

(1 江西省電力公司 江西 南昌 330077)

(2 河北遠東哈里斯通信有限公司 河北 石家莊 050200)

(3 中國電力科學研究院 北京 100192)

(4 四川省電力公司 四川 成都 610041)

基于XMPP擴展協議的遠程控制系統研制

周欣1倫立寶2張庚3劉革4

(1 江西省電力公司 江西 南昌 330077)

(2 河北遠東哈里斯通信有限公司 河北 石家莊 050200)

(3 中國電力科學研究院 北京 100192)

(4 四川省電力公司 四川 成都 610041)

隨著網絡的發展,遠程控制技術得到越來越廣泛的應用。針對目前實際應用中遠程控制存在的可達性不可靠、不夠安全以及不易擴展等問題,對XMPP協議系統架構、消息格式、安全機制以及擴展性進行研究,通過擴展XMPP協議,設計了一種采用基于XMPP擴展協議的即時通信客戶端作為控制端,通過“客戶端-服務器”到“服務器-客戶端”的模式架構進行通信的遠程控制系統。通過系統仿真,驗證了系統的有效性和可行性。

遠程控制 XMPP 協議擴展 XML

1 引言

遠程控制[1]是指由一臺設備(電腦、PDA或手機等)在一定的距離之外去控制另一臺設備的技術。傳統的遠程控制通常相互孤立,不利于拓展和再開發,同時由于其中間要經過的網絡環境比較多,所以具有可達性不可靠、不定延時和不夠安全等缺點。XMPP協議采用開放結構,可擴展性強。采用XMPP服務器,不同的客戶端只要能夠訪問XMPP服務器即可保證其連通性,能夠有效跟蹤雙向控制信息到達的時間和邏輯順序。因此可以對XMPP協議進行擴展,設計一種基于XMPP擴展協議的遠程控制系統。

2 XMPP協議

2.1 XMPP概述

XMPP是基于可擴展標記語言(XML)的協議,可用于服務類實時通訊、表示和需求響應服務中的XML數據元流式傳輸。該協議可以使具有不同操作系統和瀏覽器的用戶通過因特網向其他任何因特網用戶發送即時消息。XMPP廣泛應用于基于C/S(Client/Server)結構的系統,采用TCP協議進行網絡通信,不局限于網絡拓撲結構。XMPP的網絡架構[2]如圖1所示。

圖1 XMPP網絡架構

2.2 XMPP協議的消息格式

XMPP是一個基于XML流的協議[3],XMPP在結構上有3種數據:XML流、XML節和流認證。

①XML流是網絡上任意2個實體之間進行XML元素交換的容器,XML流起始標記為,是通信雙方采用異步方式進行數據傳輸的標準方法,控制系統正常的通信,在整個通信過程中處于最外層。在流的整個生命周期,初始化其實體可以通過流來發送大量的XML元素,實現接收實體和初始實體之間的信息交換;

②XML節存在于流節點的下級,是通過XML流傳輸的不連續的結構化信息單元,為通信雙方進行內容交換提供通信框架。XML節的開始都由深度為1的XML流的開始標記元素表示,結尾由相應的深度為1的關閉標記表示。在XMPP協議中定義了3個節點,分別為、。XML節也可通過包含其他子元素來傳送結構化信息,該子元素是實際需要交換的信息;

③流認證是在XML流中有關協商傳輸層安全協議、簡單認證與安全層協議、服務器回撥認證協議完成通信認證和加密等目的的數據交互,是XMPP安全機制的重要組成部分。任何客戶端到服務器、服務器到服務器之間的消息傳遞,其底層通信都是通過XML流來實現的。

2.3 XMPP協議安全機制

網絡服務安全系統主要體現在這4個方面[4]:認證、授權、數據保護和認可。XMPP在協議層提供了多層的安全措施。由于在協議里直接對安全措施做出要求,所以任何XMPP的實現都要完成。認證用來保證網絡的各個環節都能得到相應的服務。授權決定了請求者是否可以使用請求的內容。數據保護用來保證傳輸過程中數據的機密性和完整性。認可指確保信息發送者和創建者的一致性。XMPP協議采用認證和加密的辦法提供一個覆蓋4個要素的安全框架,建立連接階段采用SASL(簡單認證和安全層協議)進行認證。傳輸階段通過TLS(傳輸層安全)協議進行加密。鑒于XMPP的應用目的,其客戶端的身份認證的重要性比其他系統大得多。用戶必須在它所注冊的服務器進行認證,用戶不會因簡單將信息頭改變事件而被欺騙。

2.4 XMPP擴展

XMPP繼承了在XML環境中靈活的發展性?;赬MPP的應用可以通過發送擴展的信息來處理用戶的需求,具有超強的可擴展性。

為了實現遠程控制,可以在i/q節上通過增加命名空間和子元素,對XMPP協議進行擴展。主要增加、3個子元素,分別表示被控終端所具有的屬性、被控終端當前工作狀態以及對被控終端能夠進行的操作。

3 遠程控制系統設計

3.1 系統概述

系統的控制端采用基于XMPP擴展協議的即時通訊客戶端,便于對系統進行推廣和功能擴展。系統通信采用“客戶端-服務器”到“服務器-客戶端”的模式架構??蛻舳送ㄟ^先注冊后登陸的方式,有效地防止“非法”用戶的操作,具有較高的安全性。

3.2 系統總體架構

整個系統由用戶終端模塊、服務器模塊、控制終端模塊和被控終端模塊組成,如圖2所示。

圖2 系統總體架構圖

各個模塊的功能如下:

①用戶終端作為控制信息發起的源頭以及反饋信息接收的終點,可以是電腦、手機或其他可與XMPP服務器進行交互,具有可視化操作界面的終端,需要向XMPP服務器進行注冊和登陸,主要用來發送用戶指令和接受反饋信息;

②服務器模塊作為XMPP通訊的管理者,主要管理連接到服務器的實體間的會話,負責將用戶的指令信息傳送給控制終端。系統XMPP服務器采用功能完備、安全性高和易于管理的Openfire服務器。在整個遠程控制系統中,XMPP服務器僅起橋梁作用,控制雙方只需各自接入互聯網并連接到服務器即可;

③控制終端模塊是信息指令的解析模塊,可以是電腦或手機等智能終端,同樣采用基于XMPP協議的客戶端,需要向XMPP服務器進行注冊和登陸,接收XML指令信息流并將其翻譯成被控終端設備能夠處理的控制命令,傳輸給終端設備,同時也負責向設備用戶反饋控制信息。系統采用控制端來接收和解析XML用戶指令,并不涉及具體的被控終端設備,可以方便地在控制終端添加或者刪除對被控終端設備的操作信息,提高系統的可擴展性;

④被控終端主要是需要進行遠程控制的各種終端設備,根據控制終端發出的指令執行相應的動作,并將操作成功與否的信息反饋給控制終端。

3.3 系統通信機制

系統通信過程主要由4個通信模塊構成:用戶終端與XMPP服務器之間的通信,XMPP服務器與XMPP服務器之間的通信,XMPP服務器與控制終端之間的通信,以及控制終端與被控終端設備之間的通信。

①用戶終端與XMPP服務器之間的通信,主要是將用戶指令傳輸給XMPP服務器。XMPP服務器與控制終端之間的通信,主要是將用戶的XML指令信息流傳輸給控制終端,并將控制終端的反饋信息發送給服務器。用戶終端和控制終端作為XMPP客戶端,與XMPP服務器之間進行通信交換信息之前需要建立流。通過TLS協商和SASL認證來確保流的安全傳輸,對端到端通信的內容主體可采用加密傳進。通信方式分為有線連接和無線連接2種,實現其傳輸的協議主要有GPRS、HTTP和Wi-Fi等;

②XMPP服務器之間的通信主要是實現XML信息流的傳遞,可以采用指定通信雙方的方式進行管理,一臺服務器只與指定的服務器進行通信。服務器之間需要建立一定程度的信任關系才能夠進行通信。如果信任關系已經存在,則可以繼續沿用,同時采用SASL為雙方通信提供認證;

③控制終端與被控終端設備之間的通信,主要是為了將解析出的控制指令傳輸給終端設備,同時控制終端接收終端設備的反饋信息。為了方便,一般選用無線方式進行傳輸,如藍牙和ZigBee等。

4 遠程控制系統實現

4.1 客戶端實現

用戶終端采用基于XMPP擴展協議的客戶端,客戶端的開發采用C#語言來實現,根據客戶端的任務要求,客戶端采用分層設計[5],如圖3所示。

連接層主要提供通信鏈接功能。系統采用TCP套接字鏈接方式,用戶在客戶端初始化后發起連接請求,TCP從用戶界面模塊中得到用戶名、密碼和服務器地址等輸入信息,然后與服務器建立TCP連接。

圖3 客戶端分層結構

XMPP層包括2個模塊:協議功能模塊和解析模塊。在系統客戶端中處于核心位置。XMPP協議功能模塊:負責管理客戶端與服務器端、客戶端與客戶端之間的通信進程,包括用戶注冊、會話建立和即時消息交換等。XMPP解析模塊:負責對輸入的信息進行XMPP編碼。對于用戶發送的控制指令信息,需要給出、3個子元素的相關設置。對于XMPP服務器發送給客戶端的信息,負責對從TCP套接字上收到的數據中的XMPP消息進行解析,從中取出相應的Message。

應用程序接口層主要為交互界面提供統一接口調用。GUI層主要負責提供一個便于操作的友好圖形界面,分為用戶登錄界面和顯示界面,采用WPF技術進行界面的設計與實現??刂平K端同樣采取基于XMPP擴展協議的客戶端,在具有用戶終端所具有的基本功能外,還需提供如下功能:①對終端設備數據信息的顯示,包括設備的基本屬性信息和工作狀態信息;②通過發送定制控制指令信息,改變終端設備的工作狀態。

4.2 服務器端實現

系統采用基于XMPP協議的Openfire作為服務器端。Openfire[6]是一個采用純Java語言開發的、基于XMPP協議的和可跨平臺的開源實時協作服務端軟件平臺,采用插件方式,方便進行功能擴展。Openfire能夠對不同即時通訊軟件之間通信的應用提供支持。

XMPP客戶端與Openfire服務器通過創建連接完成信息流的交互,主要包括:請求認證和消息處理。

①請求認證:服務器對請求連接進行監聽,一旦發現連接請求,立即調用信息處理模塊對請求包內的XML消息進行處理。如果認證條件滿足,則將該認證結果反饋給發起連接請求的客戶端,并開啟一個新的會話來傳輸該客戶端的信息,直到客戶端關閉信息流為止;如果認證條件不滿足,則將認證失敗的結果反饋給請求客戶端。若用戶是第一次發起連接請求,則要先完成用戶注冊,再接受請求認證。

②消息處理:認證通過后,服務器會依據客戶端的JID來建立不同的會話,每個會話均由獨立的線程來管理,為保證會話的效率,對這些線程采用線程池的策略進行管理。由于即時通訊需要保證實時性,服務器必須實時監測好友客戶端的在線情況,只有確認客戶端在線,才能將信息實時地傳送過去。

4.3 遠程控制具體流程

基于XMPP可擴展協議的遠程控制具體流程如下:①用戶通過安裝有即時通訊客戶端的手機或PC終端注冊并登陸XMPP服務器;②用戶通過客戶端發送控制指令;③XMPP服務器接收控制指令并對其進行處理,通過Internet網絡傳遞給目標XMPP服務器;④目標XMPP服務器接收到XML信息流后將其發送給控制終端;⑤控制終端解析XML信息流并將其“翻譯”成被控設備終端能夠接受的指令,傳輸給被控終端;⑥被控終端設備接收到指令信息后,采取相應的操作,并將操作成功與否的信息反饋給控制終端;⑦控制終端收到反饋信息后將其通過XMPP服務器發送給系統用戶;⑧系統用戶收到反饋信息并確定下一步動作。上述流程步驟給出了一個基于XMPP可擴展協議的遠程控制流程系統的總體思路。在具體實現過程,尚有很多工作要做。

5 結束語

XMPP協議由于其易于實現的方式、開放的框架結構以及嚴密的語法描述,廣泛用于即時通訊領域。通過對XMPP協議進行擴展,開發基于XMPP擴展協議的即時通訊控制終端并將其用于遠程控制系統,可以使遠程控制運行在各種常用的設備上,具有良好的通用性,便于業務的擴展。同時,由于XMPP支持SSL128位加密傳輸,保障了系統的安全性。

[1]肖云鵬,李茜.基于SIP和P2P的移動設備遠程控制[J].重慶郵電大學學報,2008,20(5):617-620.

[2]王龍濤.基于XMPP協議的服務器關鍵技術研究[D].西安電子科技大學,2008(1):8-9.

[3]吳玉婷.基于XMPP協議的即時消息系統的研究與實現[D].西安電子科技大學,2009(3):12-13.

[4]苗凱.XMPP的安全機制分析[J].通信技術,2003(8): 101-105.

[5]蔣恒.基于XMPP遠程視頻培訓咨詢系統的設計和實現[D].湖南大學,2011(9):34-38.

[6]潘鳳,王華軍,苗放,等.基于XMPP協議和Openfire的即時通信系統的開發[J].計算機時代,2008(3):15-16.

Development of Remote Control System Based on XMPP Extended Protocol

ZHOU Xin1,LUN Li-bao2,ZHANG Geng3,LIU Ge4
(1 Jiangxi Electric Power Corporation,Nanchang Jiangxi 330077,China)
(2 Hebei Far-east Harris Communications Co.,Ltd.,Shijiazhuang Hebei 050200,China)
(3 China Electric Power Research Institute,Beijing 100192,China)
(4 Sichuan Electric Power Corporation,Chengdu Sichuan 610041,China)

With the development of network,the remote control technology is widely used.Aiming at such problems as unreliable accessibility,inadequate security and unexpansibility existing in current real application of remote control,the XMPP protocol system architecture,the message format,the security mechanism and the extensibility are studied.By extending the XMPP protocol,the remote control system is designed,which uses the instant messaging client based on XMPP extended protocol as the control terminal and implements communication through the“client-server”to“server-client”pattern architecture.The system simulation results prove the effectiveness and feasibility of system.

remote control;XMPP;protocol extension;XML

TP393

A

1008-1739(2014)02-66-4

定稿日期:2013-12-26

猜你喜歡
終端設備被控客戶端
港警在“修例風波”中拘捕近萬人
視頻監視系統新型終端設備接入方案
大慣量系統位置控制策略研究
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
基于Vanconnect的智能家居瘦客戶端的設計與實現
配電自動化終端設備在電力配網自動化的應用
車站信號系統終端設備整合及解決方案
基于手持終端設備中軟件通信架構的應用
客戶端空間數據緩存策略
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合