JMS的企业即时通讯系统的设计
一。引言
即时通讯是一种网络的即时交流消息的业务。一些企业安全的考虑或联网的限制,需要在其内部搭建即时通讯平台。而实际应用中,中小企业往往不需要特别多的功能,市面上的即时通讯工具中有近80百分号的功能很少被使用,部分功能甚至从未被用到。此论文网外,这些通讯工具也存在一些不足,比如手工添加好友不仅繁琐且容易遗漏,没有提供可靠的通知服务等等[1]。本文使用JMS技术设计搭建了一种适用于企业用户的即时通讯系统。
二。JMS技术概述
JMS是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生。发送。接收消息的接口简化企业应用的开发[2]。
JMS定义了以下几种元素[3]:(1)JMS提供者:实现JMS规范的消息队列和通知等接口,对外提供消息服务;(2)JMS客户:生产或消费消息的Java应用程序或对象;(3)JMS生产者:创建并发送消息的JMS客户;(4)JMS消费者:接收消息的JMS客户;(5)JMS消息:JMS客户之间传递的数据对象。
此外,JMS还定义了以下两种消息传输模型[3]:(1)队列模型:通过队列分发消息,用来解决生产者和消费者之间点到点的通信;(2)发布/订阅者模型:支持向一个特定的消息主题发布消息,可被一个或多个消费者订阅。
三。系统总体设计
即时通讯系统主要包括即时信息和状态呈现两大核心服务[4],以及用户登录。用户信息维护。查看好友信息等基础服务。结合一般的即时通讯工具,并考虑到企业用户的需求,本文设计的系统还具有以下特点:1。用户可以使用企业员工编号直接登录,无需注册;2。企业组织结构和员工列表自动同步到客户端,不用手工添加好友;3。提供通知推送服务,并为每条通知提供已读回执;4。管理员可以通过系统后台对系统数据进行维护。
本文设计的系统在网络架构上分为客户端和服务器端两部分,在软件开发模式上又可分为三层:表现层。逻辑层和数据层。系统体系结构如图1所示。
1。表现层:表现层是系统的用户界面部分,负责将用户操作传递给逻辑层,并同时接收逻辑层的信息。主要包括PC客户端界面和后台管理Web界面。
2。逻辑层:逻辑层主要负责处理系统业务,是整个系统的核心。其包含消息分发部分和业务处理部分。前者负责创建和分发JMS消息,后者负责接收和处理JMS消息。在具体实现时,客户端和服务器端均有相应的消息模块和业务模块:客户端的消息模块创建。发送和接收JMS消息,业务模块处理JMS消息和响应用户操作;服务器端的消息模块充当JMS提供者来分发JMS消息,业务模块接收并处理特定的消息。此外逻辑层还包含后台管理部分,提供Web服务以便管理员进行系统管理。
3。数据层:数据层负责完成系统中数据的定义。维护。访问和更新,同时管理并响应逻辑层的数据请求。包括服务器端的MySQL数据库和客户端的SQLite数据库。数据库中维护有组织员工信息。聊天记录。通知记录等数据。
四。系统详细设计
4。1系统通信消息设计
系统中各模块之间通过JMS消息进行通信。为了进行有效的交互,通信双方需要遵循一定的协议[5]。本文对JMS消息做以下规范:1。按照功能不同,对JMS消息进行分类。2。不同消息携带相应内容的消息体;3。消息体均采用TextMessage类型,并按照XML标准对内容进行组织。
系统中消息具体分为三类:(1)即时信息:包括即时聊天消息。群组聊天消息。通知消息与通知回执消息;(2)状态呈现:状态呈现消息;(3)基础操作:包括组织人员同步消息。用户登录请求与响应消息。用户信息维护请求与响应消息。好友信息查询请求与响应消息。
4。2系统业务流程设计
服务器启动之后,其消息模块作为JMS提供者开启JMS服务,等待接收和分发客户端发来的JMS消息,而其业务模块开始监听ServerQueue队列,等待处理用户操作消息。
客户端启动之后,其消息模块作为JMS客户连接服务器,对登录用户编号的队列进行监听,等待接收服务器或其他用户发来的消息,而其业务模块除了要等待处理收到的消息,还要对用户在客户端界面上的操作进行响应,调用消息模块接口创建和发送消息。用户成功登录并同步列表之后,客户端还需订阅Status主题,以获取其他用户的状态消息。
4。2。1用户基础操作
用户基础操作包括用户登录。用户信息维护。好友信息查询等。业务流程如下:
1。客户端向ServerQueue队列发送用户操作请求消息,消息体中携带操作类型。操作必要信息,比如用户编号。用户密码等;2。服务器端业务模块接收到消息并进行处理,将处理结果封装成响应消息,发送到该用户的队列;3。客户端接收响应消息,进行解析和处理。
4。2。2人员组织同步
人员组织结构包括企业部门列表,以及各部门员工列表。业务流程如下:
1。用户登录成功之后,服务器向该用户队列发送组织员工同步消息,消息体携带组织列表和员工列表信息;2。客户端接收消息,显示在用户界面。4。2。3用户状态呈现
状态呈现指用户上下线后在客户端界面的用户状态的即时改变。业务流程如下:
1。用户进行状态操作之后(上线。忙碌。离开。离线),客户端向Status主题发布状态呈现消息,消息体携带用户当前状态;2。客户端每隔60秒向Status主题发布当前状态;3。客户端接收到好友状态消息,在用户界面进行呈现;4。在60秒之内没有接收到好友的状态消息,则判断该好友处于离线状态。
4。2。4即时聊天
即时聊天指用户之间实时的交流,包括点对点聊天和群组聊天。业务流程如下:
1。用户选择好友,输入聊天内容并点击发送后,客户端向对方队列发送即时聊天消息,消息体携带发言用户编号。聊天内容等信息,并将聊天内容保存到本地数据库;2。用户创建或选择群组(群组信息由创建者生成),输入聊天内容并点击发送后,客户端向群组内所有好友的队列发送群组聊天消息,消息体携带群组编号。群组名称。群组成员。发言用户编号。聊天内容等信息,并进行保存;3。客户端接收聊天消息,在界面进行显示并保存。
4。2。5通知推送
通知推送指用户对一个或若干部门内所有用户发布通知消息,并接收已读回执。业务流程如下:
1。用户选择部门,输入通知内容并点击发送后,向该部门内所有用户的队列发送通知消息,消息体携带通知编号。发布者编号。通知内容等信息,并保存到本地数据库;2。客户端接收通知消息,显示并保存;3。用户点击阅读后,客户端向通知发布者的队列发送通知回执消息,消息体携带通知编号。接收者编号等信息。
4。3系统数据库设计
系统数据库包括服务器端数据库和客户端数据库两部分。服务端数据库维护系统中所有员工和组织的基本信息;客户端数据库维护群组记录。聊天记录和通知记录等信息。
服务器端员工基本信息表包含用户编号。用户登录密码。用户显示名称。用户部门与岗位以及用户个人信息(性别。联系方式等)。组织基本信息表包含企业内的部门列表。系统管理员可以通过后台管理页面对组织员工信息进行维护,进行添加。修改和删除操作。
客户端聊天记录表包含聊天消息收发者。聊天内容。聊天时间。群组编号等信息。群组记录表包含群组编号。群组名称。群组成员等信息。通知记录表包含通知收发者。通知内容。通知回执信息等。
五。系统测试
即时通讯系统客户端与后台管理界面如图2所示。
六。结束语
结合一般的即时通讯工具的优缺点,并考虑企业用户的实际需求,本文使用JMS技术设计了一种企业即时通讯系统。本系统除了用户即时聊天。好友状态呈现等基础服务,还有组织员工同步。通知消息推送。系统后台管理等特有服务,很好的满足了企业用户的需要,有效地促进员工交流沟通,提高企业工作效率。
JMS的企业即时通讯系统的设计
JMS的企业即时通讯系统的设计【2873字】:http://www.youerw.com/guanli/lunwen_189245.html