即时通信(Instant Message,IM) 能够即时发送和接收互联网消息等业务。众多的通信系统采用不同的通信协议,相互之间无法直接通信,而跨平台的XMPP协议能够解决这一问题。XMPP具备易于拓展,分布式的结构以及模块化的系统架构,同时即时通讯成本低、又有效率强大等优点,还有即时通讯让原本单一的声音引入了文件、语音、视频的多样化功能。即时通讯具有强大的生命力,为企业发展沟通交流以及办公中提供优秀的信息交流平台。
1.2 课题研究意义
科技发展,Internet网络普及化以及其相应技术的革新和进步,互联网间信息传输命题仍然成为时下最为关心和棘手的问题,信息的价值点在各企业尤为重视。告别了传统电话昂贵的交流方式,即时通讯以低廉、高效,功能多样化深深的吸引每个人,提高工作效率,带来更多的经济价值。各开发商们指定多样的通信协议,势必会影响通信软件的普及以及人们使用体验的不便,XMPP的出现使通信协议有了统一和谐的标准,将会冲击垄断的个体通信软件,迎来互通方便的交流局面。
2.开发技术介绍
2.1 C/S模式的体系结构
C/S(Client/Server,客户端/服务端),客户端主要是向用户提供友好的界面,展示从服务接收过来的数据,用户可以通过客户端向服务端传递相关的请求,同时接收服务端的响应;服务端主要负责接收和处理客户端的请求,并负责数据的持久化。本系统是基于消息模块化结构的C/S设计的,其结构清晰而简单。
2.2 XMPP协议基础
2.2.1 XMPP协议
基于XML协议,解决即时通信混乱的协议而制定了一套标准,前身是Jabber,一个开源的形式组织的产生的网络即时通讯协议。用于即时消息和在线现场消息探测。客户端能够在不同的服务器上通信的一个重要原因在于,XMPP可以构建服务器集成能力,XMPP在客户端和服务端传递的消息数据不仅要从XMPP服务器进行转发,还得支持服务器间DNS的路由。
2.2.2 XMPP协议簇
XMPP协议簇从上而下分别是XMPP、SASL、TLS、TCP,在XMPP和TCP中间有SASL(Simple Authentication and Security Layer),提供了验证、数据完整性检查和加密的机制,而为了保证XMPP信息数据传输过程中的安全,引入了TLS(Transport Layer Security)。
2.2.3 地址空间
JID(Jabber Identifier)是用来描述XMPP的实体,其数据格式:jid = [node"@"]domain["/"resource],包括了域名、节点名和资源名。如cyber@cyberobject.com/res。
domain表示域名,是JID中主要的和必要的元素,也就是说即使没有其他元素,只有一个域名JID也是合法的,其用来表示网络中的网关和主服务器。
node,是个可选的元素,通常用来表示客户端的元素,在本系统中它就是代表用户名,node所代表的实体必须依赖域名才有意义。
resource,也是个可选的元素,表示属于用户的位置或设备。
2.3 Openfire
Openfire是一个强大的即时消息和聊天服务器,是使用Java语言写的,实现了XMPP协议,并且是开源的。Openfire安装和使用都容易上手,通过Web的形式管理,服务器的内核主要包含了连接管理组件、服务器连接管理组件、会话管理组件、注册登录管理组件、管理更新组件、外部管理组件、数据存储组件、文件传输组件和传输器组件等组件组成。凡是支持XMPP协议的IM客户端都可以连接Openfire服务器。