C/S模式下的岸船间即时通信系统设计与实现*
刘焕敏,王华,朱笑然
(中国卫星海上测控部,江苏 江阴214431)
摘要:设计并实现了一种C/S模式下的岸船间即时通信系统,详细了阐述系统的架构及各功能模块,并对通信协议的选择及信息安全机制进行了讨论。该系统解决了测量船与陆上及与其他参试测量船即时通信和文件传输的问题。
关键词:即时通信系统;C/S模式;XMPP协议
0引言
中国卫星海上测控部承担航天远洋测控任务,任务期间各参试测量船分布地域相隔遥远无通信链路连接,而岸船数据通信链路只能通过卫星进行通信,在高时延、低带宽的卫星通信网络条件下,各参试单位间任务数据的传输和共享十分困难。本文使用C/S模式构建了岸船间即时通信系统,提高了测量船的工作效率、降低沟通成本、增强完成任务的能力。
即时通信简称instant messaging(IM),是一种网络沟通服务,使用者通过即时通信的终端可以进行2人或多人之间的实时沟通,交流内容包括文字、图像、语音、视频及文件互发等[1-2]。本文设计适合陆上指挥中心与参试测量船之间使用的即时通讯系统,参试人员可以方便地互联互通,无论在船上还是在岸上,可以方便的互通文字信息和传送文件。同时满足系统的可靠性、维修性、保障性、测试性、安全性和环境适应性等要求。
1系统需求分析
1.1功能需求
在任务出海期间,陆上指挥所与参试测量船之间只能通过卫星进行通信,通信带宽不足2M、时延达500 ms以上,岸船间即时通信系统方便陆上指挥中心与各测量船之间的通信以及各测量船之间即时通信。其系统功能需求如图1所述。
(1) 消息即时传递功能。岸船间即时通信系统使用人员进行即时交流,实现信息化协作;
(2) 文件传输功能。用户之间可以方便的以点对点传送文件,实现资源共享;
(3) 消息回执功能。消息的发送方可以清楚的知道所发送消息的状态,如接收方是否已经阅读了消息,保证了消息的有效性;
(4) 密码签收功能。对于一些重要的消息,消息的发送方可以要求消息的接收方输入签收密码才可以看到消息,提高系统的安全性;
(5) 离线消息功能。如果消息的接收方不在线,消息可以暂时存放在服务器内,待接收方上线后再发送给接收方;
(6) 离线文件传输功能。在用户传送文件时,如果接收方不在线,文件同样可以保存在服务器内,待接收方上线后收取;
(7) 通知广播功能。可以将消息发给一定范围内的所有用户;
(8) 通知签收功能。可以要求收到通知的用户签收确认,为通知的发布方返回签收报表;
(9) 组织机构推送功能。可以根据权限自动导入组织机构内的全部或部分成员的ID号;
(10) 消息历史备份。支持本地和服务器端双重保存消息历史记录。用户可以在本地查看消息历史记录。管理员可以在管理平台导出消息记录。
1.2性能需求
作为参试人员安全、简便的办公和沟通平台,岸船间即时通信系统需要保证数据通信的即时性以及通信过程和信息存储的安全性,为使用者提供信息安全保障,同时减少系统资源的消耗,保证系统运行的低故障率[3]。具体要求下:
(1) 系统通信容量:系统可接纳的用户数量≥1 000;同时接入点数≥100。
(2) 系统通信可靠度:岸船数据同步系统等待队列长度≥256;数据同步支持2.4 kbit/s~20 Mbit/s同步速率可调;传输优先级数≥16。
(3) 信息收发完整性与可靠性:系统用户之间能随时进行接收和发送信息,主要包括文本信息和文件信息,在保证数据能够正确的到达同时,保证数据能够被正确的解析,以防导致数据丢失或者错位等情况出现。
(4) 通信安全性:保证用户之间传送文件或者消息的安全性,防止在数据传输过程中出现没有权限的第三方对数据进行读取,下载,甚至修改。在本系统设计时对所有的消息和数据传递进行加密。无法通过网络窃听获得用户的身份和密码等敏感信息,传输的数据内容不能被截取。信息加密技术保障数据通信的安全性,同时尽量减少信息加解密过程对时间的开销。
(5) 信息传输实时性:系统应具备数据的准实时同步分发能力,在网络连通的情况下把文件库队列中的文件按照系统优先级、内部优先级结合的方式分发到其它同步点, 同时从其他同步点接收到文件,并把文件参数通过输入接口分发给相关子系统;当网络中断时,系统可将文件同步请求保存,将待同步文件信息加入文件库队列,等待链路恢复时再行同步。
图1 岸船间即时通信系统功能模块图Fig.1 IM Communication system between lands and ships function module
(6) 高效性:即时通信软件一般在系统运行后是常驻系统内存的,所以在软件设计时我们必须保证软件运行的高效率和软件的低硬件开销。
(7) 系统的可控性:系统可控性是指系统运行期间完成数据备份,数据存储,故障恢复等任务的能力,其中包括用户注册管理,登录身份验证和信息反馈管理,用户监督管理等模块的设计。
(8) 系统的稳定性:系统稳定性是指系统在长时间,大信息吞吐量情况下系统运行稳定可靠,不会发生内存泄漏,系统资源不释放等错误;防止程序崩溃或者异常终止。
2系统总体设计
2.1系统拓扑结构设计
任务期间,各测量船与陆上指挥中心通过卫星通信链路进行通信,而各测量船之间并没有通信链路。整个岸船网络分为陆上指挥局域网和各测量船局域网共4个域,每个域配置一台即时通信服务器,负责管理本域内登录的用户。4台服务器构成分布式架构。以陆上指挥局域网服务器为中心,分别连接各测量船的服务器。其网络结构如图2所示。
岸船即时通信系统采用客户机/服务器网络模式(Client/Server模式)[4]。在C/S模式中,客户方对服务器方发送信息请求,服务器方对其做出相应回答并提供服务。服务进程一直处于休眠,直到一个客户程序提出了请求信息,服务器程序被唤醒并且为客户提供服务。该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端和服务器,降低系统通信开销[5]。
各局域网的客户端之间通讯都通过陆上服务器进行转交。发送方客户端将消息传送给本局域网服务器暂存,局域网数据库与陆上数据库采用数据库增量同步模式进行同步后再与接收方客户端所在域的服务器进行同步,最后由接收方服务器传送给接收客户端。在路由完成后,服务器内缓存此次的路径信息,以加速以后这2个用户的消息传递。
2.2系统总体组织结构
根据以上的系统目标,设计一个满足以上要求的即时通信系统,可划分为5个层次。分别为:网络通信层、协议解析层、基础能力层、业务能力层以及用户表示层。其层次结构图如图3所示。
(1) 网络通信层
处于系统最底层,为上层提供网络支持,提供数据包发送的接口,并提供监听数据包的与数据包到达通知。
图2 岸船即时通信系统网络拓扑结构Fig.2 Structure topology of IM communication system between lands and ships network
图3 岸船即时通信系统层次结构图Fig.3 Hierarchical chart of IM communication system between lands and ships
(2) 协议解析层
对网络通信包进行封装及解包,负责将上层的数据按照自定义的格式进行封包并提供给网络传输层,或是从网络传输层中得到通信包,按照自定义格式进行解包,并将解包后所得到的数据提交给上层的应用。
(3) 基础能力层
实现岸船即时通信系统的基本能力,向上层提供即时消息通信和文件传输以及数据安全。
(4) 业务功能层
岸船即时通信系统中的各项业务功能。比如离线消息、离线文件传送、通知广播、通知签收、密码签收、消息历史备份等丰富的功能。
(5) 用户表示层
该模块为与用户交互界面,直接与用户进行输入输出的交互。为用户提供各种显示的视图及输入输出的接口。
2.3工作流程
由于各参试测量船之间没有直接连接的通信链路,其通信是要通过陆上指挥所的服务器进行转接的。以2条参试测量船为例,如果两船进行通信,首先发送方选取接受用户并撰写消息或选择发送的文件,进行协议封装和加密进行网络传输;使用数据更新增量抽取技术经过指挥所服务器与接受方服务器的数据库进行同步;接受方接受消息及文件并进行传输及协议解析、解密后还原消息内容。其数据流传输过程如图4所示。
2.4协议选择
2.4.1通讯协议
TCP和UDP是TCP/IP协议族的2个主要协议。目前大多数即时通信系统采用UDP方式。与UDP方式相比:TCP协议采用面向连接的方式,可以为用户提供点到点的可靠通信;采用流式传输,用户不必关心数据分帧校验等问题;支持双工,数据发送和接收可以同时进行。同时本系统安装使用了卫通协议加速器的,可以充分利用岸船带宽,使TCP协议的通信代价已经接近甚至低于UDP方式。因此,本系统采用TCP协议进行通讯[5]。
但是,采用TCP协议存在长连接问题。每个客户端都与服务端建立一个TCP连接,这个连接从用户登录开始,直到用户注销才断开。在通常的情况下,服务器端通常要维持数百甚至上千个连接,对服务器是很大的压力。另外,由于即时通讯的特点,TCP连接大部分时间是没有数据传输的,如果客户端出现故障退出,服务器端不会得到通知,依然维持连接。最终可能出现连接数耗尽而无法提供服务。
图4 岸船即时通信系统数据流程图Fig.4 Data flowchart IM communication system between lands and ships
针对这种情况,可以采用间断连接方式,在有数据传输时,客户端和服务器端维持连接,如果一定时间内没有数据传输,就断开连接,释放资源给其他用户,在需要传送数据时再重新连接[6]。
2.4.2消息传送协议的选择
XMPP(可扩展消息处理现场协议)是一个开放式的基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测,旨在促进通信实体之间的准即时操作[7]。同目前各种封闭的即时通讯协议相比,XMPP具有以下优点[8]:
(1) 开放性
XMPP的信息格式是标准化的XML格式,任何企业和个人都可以在所需要的任何工程中使用XMPP协议,并且可以实现不同系统消息的互通。
(2) 可扩展性
XMPP协议是一种基于XML流元素的传输协议,由于XML本身就是一种标准化且扩展性良好的标记语言,XMPP协议传输的就是结构化的XML元素。在只要满足XMPP协议传输的XML节元素结构之下,可以很容易的添加新的属性或包含新的子节点来扩展现有的协议功能。
(3) 安全性:
XMPP协议规定,一个安全的消息传输必须经过TLS安全传输层协议、SASL简单验证和安全层协议多层的验证,采用多种强度算法如BIGEST-MDS、KERBEROSV4、PLAIN等多种加密算法和签名证书认证的方法保证流传输的安全特性,这使得消息传输就有较高的安全性。
2.5系统软件架构
客户端和服务器端采用基本相同的软件架构,所不同的是:客户端只处理本地用户的操作,完成用户的登录、注销、注册、状态改变、发送消息和发送文件等请求,接收服务器端传送回来的各种结果,根据结果改变各种状态,并继续产生各种请求。而服务器端接收所有用户的请求并给出相应的响应,调用数据库服务,维持所有用户的状态,保存用户的信息。
依据功能,客户端和服务器端软件可以分为3个大部分[9]:
(1) 异步的网路通讯socket组件;
(2) 与工厂模式相结合的快速XML解析器;
(3) 轻量级的XM Dom,作为所有XMPP协议类的基础。
异步的网络通讯socket可以异步的发送和接收网络数据。在数据包来时,socket组件通知程序接收数据,为每一个连接建立一个session。每一个session对象都包含有一个XML解析器对象。Session传来的数据经过解压缩和解密后,形成XML数据流。
XML解析器对XML数据流解析,将其分解为一个个的信息Packet,然后将信息Packet加入Pack-et队列。
XMPP协议工厂从队列中取出Packet,根据Packet中的信息创建相应的处理类对象实例[3]。处理类对象实例从Packet中取出信息处理。处理的结果通过XML构造器形成XML数据流,通过session索引找到匹配的session后,利用session保存的连接信息将加密压缩后的XML数据流发送给接收者。其处理流程图如图5所示。
图5 岸船即时通信系统软件架构图Fig.5 Software architecture diagram IM communication system between lands and ships
3信息安全机制
3.1XMPP协议的安全机制
XMPP协议提供的安全措施有TLS和SALS[10]。
安全传输层协议(transport layer security,TLS)用于在2个通信应用程序之间提供保密性和数据完整性,TLS协议包括2个协议组:TLS记录协议和TLS握手协议。使用TLS,可以防止XML流被偷听和篡改,保证流的安全以及数据的完整。简单的身份验证和加密协议层(simple authentication and security layer,SASL)是一种通用的身份验证机制,可以集成到各种协议中去,可以提供通信双方的身份认证措施。当来那个实体间要求安全通信的时候,在发送实际的消息XML流之前,必须进行TLS握手和SASL验证。
这个次序的原理是:TCP是基于连接的层,被所有层使用,所以处于最底层,TLS经常是由操作系统层提供,SASL经常由应用程序层提供,XMPP则是应用程序本身[11]。
3.2数据传输安全机制
系统中的用户权限机制分为身份验证、访问控制2方面依托于上层整个岸船间指挥系统进行。岸船间指挥系统根据不同用户的不同身份验证资料,在各个应用层面,赋予用户不同的访问权限。
即时通信系统在数据通信中,采用消息加密后再传输,确保消息在各个通路之间的传输安全。本系统采用DES加密算法进行数据加密以避免即时通信消息、文件等明文传递造成的网络安全隐患问题。DES算法是对称的,既可以用于加密也可以用于解密[12]。岸船即时通信系统软件处理流程图如图6所示。
图6 岸船即时通信系统软件处理流程图Fig.6 Flow chart of software processing IM communication system between lands and ships
4结束语
本文从实际需求出发,设计了一种C/S模式下的岸船间即时通信系统。该系统解决了测量船出海期间无法与陆上及与其他测量船之间进行及时通信和传输文件的问题。该系统经过多次试验任务验证,运行稳定,实现了客户端点对点准实时的通信。本文的下一步工作需要在音频、视频等多媒体形式的即时通信方面进行进一步研究,在远程视频会议及故障诊断中有进一步的应用。
参考文献:
[1]SUGANO H, Fujitsu.A Model for Presence and Instant Messaging [EB/OL].(2000-02-12)[2014-3-24].http:∥tools.ietf.org/html/rfc2778.
[2]邓海燕. Web即时通信代理的研究与实现[D] .西安:西安电子科技大学,2010:5-10.
DENG Hai-yan. Research and Implementation of the Web Instant Messaging Agent [D].Xi′an: Xi′an University of Electronic Science and Technology,2010:5-10.
[3]李帜,林立新,曹亚波.软件工程项目管理:功能点分析方法与实践[M].北京:清华大学出版社,2005:102-109.
LI zhi, LIN Li-xin, CAO Ya-bo. Software Engineering Project Management: the Function Point Analysis Method and Practice [M]. Beijing:Tsinghua University Press, 2005:102-109.
[4]张刚.B/S与C/S模式相结合的IM系统的研究与实现[D] .北京:北京邮电大学,2011:4-10.
ZHANG gang, The Research and Implementation of IM System Based on B/S and C/S[D] .Beijing:Beijing University of posts and telecommunications,2011:4-10.
[5]任泰明.TCP/IP协议与网络编程[M].西安:西安电子科技大学出版社,2004:146-152.
REN Tai-ming. TCP/IP Protocol and Network Programming [M]. Xi′an: Xi′an University of Electronic Science and Technology Press,2004:146-152.
[6]王海涛,付鹰.即时通信——原理、技术和应用[J].信息通讯技术,2011,28(3):34-40.
WANG Hai-tao, FU Ying.Instant Messaging—Theory,Technique and Application[J]. Information and Communications Technologies, 2010,28(3):34-40.
[7]陈航, 赵方.基于服务器推送技术和XMPP的Web IM系统实现[J] .计算机工程与设计, 2010, 31(5):35-40.
CHEN Hang, ZHAO Fang. Implementation of Web Instant Message System Based on Server Push Technology and XMPP[J]. Computer Engineering and Design, 2010, 31(5):35-40.
[8]XMPP Standards Foundation.About XMPP[EB/OL].(2012-5-17)[2014-3-24].http://xmpp.org/about-xmpp/xsf/.
[9]莫非特.XMPP高级编程——使用JavaScript和j Query[M].北京:清华大学出版社,2011:52-70.
Jack Moffitt.Professional XMPP Programming with JavaScript and j Query [M]. Beijing:Tsinghua University Press, 2011:52-70.
[10]苗凯.XMPP的安全机制分析[J].通信技术,2003,27(8):101-105.
MIAO kai. The Analysis on the Security Mechanism of XMPP[J]. Communications Technology, 2003, 27(8):101-105.
[11]Instant Messaging/Presence Protocol Requirements[EB/OL].(2000-02-12)[2014-03-24].http:∥tools.ietf org/html/rfc2779.
[12]AtulKahate.密码学与网络安全[M].邱仲潘,译.北京:清华大学出版社,2005:202-213.
AtulKahate. Cryptography and Network Security [M].QIU Zhong-pan,Translated. Beijing:Tsinghua University Press, 2005:202-213.
Design and Implementation of a Instant Messaging System Based on C/S Pattern Between Lands and Ships
LIU Huan-min, WANG Hua,ZHU Xiao-ran
(China Satellite Maritime Tracking and Control Department,Jiangsu Jiangyin 214431,China)
Abstract:An instant messaging system based on C/S pattern between lands and ships is designed and implemented.The structure and function modules are expounded in details. Meanwhile, communication protocol and security mechanism arefully discussed. The problem that instant communication and files transmission are difficult between lands and ships inmission period is solved.
Key words:instant massaging ; C/S pattern;XMPP protocol
中图分类号:TN92;TP391
文献标志码:A
文章编号:1009-086X(2015)-02-0069-07
doi:10.3969/j.issn.1009-086x.2015.02.012
通信地址:214431江苏省江阴市103信箱505号E-mail:liuhuanmin@126.com
作者简介:刘焕敏(1973-),女,安徽蚌埠人。高工,硕士,主要研究方向为航天测控任务仿真等。
* 收稿日期:2014-05-24;
修回日期:2014-07-18