基于XMPP扩展协议的远程控制系统研制
2014-05-25周欣伦立宝张庚刘革
周欣 伦立宝 张庚 刘革
(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流中有关协商传输层安全协议、简单认证与安全层协议、服务器回拨认证协议完成通信认证和加密等目的的数据交互,是XMPP安全机制的重要组成部分。任何客户端到服务器、服务器到服务器之间的消息传递,其底层通信都是通过XML流来实现的。
2.3 XMPP协议安全机制
网络服务安全系统主要体现在这4个方面[4]:认证、授权、数据保护和认可。XMPP在协议层提供了多层的安全措施。由于在协议里直接对安全措施做出要求,所以任何XMPP的实现都要完成。认证用来保证网络的各个环节都能得到相应的服务。授权决定了请求者是否可以使用请求的内容。数据保护用来保证传输过程中数据的机密性和完整性。认可指确保信息发送者和创建者的一致性。XMPP协议采用认证和加密的办法提供一个覆盖4个要素的安全框架,建立连接阶段采用SASL(简单认证和安全层协议)进行认证。传输阶段通过TLS(传输层安全)协议进行加密。鉴于XMPP的应用目的,其客户端的身份认证的重要性比其他系统大得多。用户必须在它所注册的服务器进行认证,用户不会因简单将信息头改变事件而被欺骗。
2.4 XMPP扩展
XMPP继承了在XML环境中灵活的发展性。基于XMPP的应用可以通过发送扩展的信息来处理用户的需求,具有超强的可扩展性。
为了实现远程控制,可以在i/q节上通过增加命名空间和子元素,对XMPP协议进行扩展。主要增加
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编码。对于用户发送的控制指令信息,需要给出
应用程序接口层主要为交互界面提供统一接口调用。GUI层主要负责提供一个便于操作的友好图形界面,分为用户登录界面和显示界面,采用WPF技术进行界面的设计与实现。控制终端同样采取基于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