即时通信为互联网实际应用的重要研究方向,尤其是在企业发展中的应用,对改善管理效果具有重要推动作用,在控制办公成本的基础上进一步提高了工作效率。在对即时通信系统进行设计研究时,需要从实际需求出发,并总结以往应用中存在的不足进行综合分析,解决因为通信服务商专有协议垄断造成的局限性问题,即需要采取措施来提高即时通信系统的互通性,本文对此方面内容进行了简要分析。
在信息技术快速发展的背景下,其在工作生活中的应用效果更为突出,例如即时通信系统的设计与应用,主要是以计算机网络为载体,实现交互双方之间语音、文字以及图像等信息的通信。但是在实际应用中,受通信供应商专有协议限制,信息的传输中具有一定的局限性,并不能完全满足总体应用需求。因此,即需要对存在的问题进行分析,基于XMPP进行研究设计,提供请求-应答服务,实现企业即时通信系统通过网关与其他IM系统互联。
1即时通信系统分析
即时通信即可以实现即时发送与接受互联网信息的业务,现在所用即时通信系统具有电子邮件、音乐、博客、电视以及搜索等功能[1]。在计算机通信技术不断发展的背景下,即时通信系统以及发展成集交流、搜索、咨询、娱乐、电子商务以及办公写作等客户为一体的综合化信息平台,如现在常用的腾讯、微软、Yahoo等通信供应商,均可以提供利用手机等终端接入互联网的即时通信业务,这样用户就可以利用手机终端,以及安装响应客户端软件手机或电脑来收发消息。以企业级用户来说,即时通信系统在应用时为公开状态,即用户只需要知道另一个用户即时通信地址,就可以完成信息的传输,并不利于管理工作的展开。并且即时通信系统需要在两台终端之间进行信息交流,并不需要任何第三方服务器中转,同时也增大了用户信息交换的监控难度,是企业级用户需要重点研究解决的问题。
2即时通信系统通信方式分析
即时通信系统常用通信方式有两种,即点对点直接传送模式(P2P模式)与客户机/服务器传送模式(C/S模式)。如果在设计时选择用C/S模式,则终端传输的数据通过服务器来进行监听,在即时通信客户端启动后,会采取主动的方式与服务器监听端口连接,然后由服务器派生新工作线程对一个客户端所有网络请求进行处理与回应。在两台终端请求通信时,就可以通过已经与服务器建立起的连接,由服务器作为中转部分,将发送方的网络数据包传输给接受方。其中,服务器一般会设置在公网内,具有独立的IP地址,这样就决定了无论即时通信终端是否在内网内均可以与其相互连接,这样与服务器通信以及与其他终端通信均可以利用已经建立的连接来完成。
如果在设计时选择用P2P传送模式,与C/S模式不同,其可以直接实现不同终端之间信息的传输,取消了服务器的中转作用,可以有效降低服务器的负载问题。另外,如果即时通信双方终端有任何一方在内网中,通信的过程就会受防火墙的保护,以及NAT的控制,经常会因为发送方传输的网络数据包无法找到对方地质而发送失败,存在NAT穿越问题,是系统设计需要解决完善的问题。
3基于XMPP即时通信系统设计措施
3.1系统结构
以企业级用户为服务对象,在对即时通信系统进行设计时,需要基于实际工作对基础功能的需求,即内部实施信息交互、企业短信中心、语音视频交流以及自动存档等,确保设计后具有较高的实用性、管理性与便利性。一般系统结构中会设置多组服务器,核心为企业数据库服务器与组群服务器,另外还有多组会话服务器、认证服务器以及多组文件服务器等。其中,群组服务器通过TCP连接实现与即时通信终端的衔接,实现文件传输功能,并数据库利用UDP连接来完成所有数据的存储。同时,通过应用服务器,能够实现EIM的所有功能,如内外部信息交流,并对信息进行备份[2]。一般企业内部均会有自己EIM服务器,并通过交换机、路由器、防火墙等与外网安全连接,满足移动用户应用需求。设计时需要设置XMPP客户端与XMPP服务器,实现内部以及私有即时通信;XMPP 服务器与XMPP服务器,实现与不在同一服务器其他企业的即时通信;XMPP服务器与其他非XMPP系统,可以实现与QQ、MSN服务网络的通信。
3.2流程控制
XMPP服务器利用5222端口上TCP套接字连接,与终端用户进行即时通信。如果不存在用户会话进程,则需要初始化一个用户登录认证过程;如果存在用户对话,则消息被直接发送到XMPP会话管理组件。会话管理组件将在服务器配置文件中来寻找目的服务器的域名,一般情况服务器配置文件中会对域名解析内容进行记录,这样寻找过程比较简单。对于部分不存在记录的情况,DNS解析组件则将域名解析为IP地址与端口,最后将网络信息包传输到服务器对服务器组件,被顺利发送到目的服务器或者Transport。
3.3服务器端
遵循简单易懂以及易扩展的原则进行设计,以核心协议为依据,通过设计来实现接受并管理客户连接、解析XML数据流以及处理XML数据流等基础功能[3]。主要包括会话池、XML解析器、数据段队列、数据段处理器、Messaging模块、GroupChat模块、Roster模块、 Presence模块以及Public IM Gateways等,不同模块所负责的内容不同。如会话池主要负责管理客户机与服务之间对话内容,包括连接地址信息、管理连接等;数据段队列主要存储与取出XML数据段;数据段处理器主要对流入数据段进项处理,包括目标寻址、信息传递以及回应信息生成;Presence模块主要责任处理用户在线信息。
4结语
在对即时通信系统进行设计时,需要掌握其特点,对实际应用过程中存在的不足进行分析,积极应用各项新型技术,对现有系统结构进行优化,降低专有协议对即时通信效果的限制,提高实际应用效果。
作者简介:张晨(1980—),女,天津人,学历:学士,研究方向:通信工程管理。