中南大学学士论文 基于JAVA的企业级即时通信平台设计与实现
图4-6 消息处理序列图
以上是消息处理的核心部分,下面分别讲述服务器如何处理各个消息的流程。
2. 服务器日志系统设计
根据需求要求:滚动日志、多元信息显示、接受的信息多样.设计了两个类LoggerFileManager和EIMLogger。LoggerFileManager是管理日志文件的生产策略读写规则的,EIMLogger是对外提供日志信息接口的。数据库写和读取因时间问题还没实现。它们的序列图如图4-14所示:
图4-14日志序列图
3.服务器缓存系统设计
服务器的缓存组件,存放常用的数据,应该满足以下要求: 1.要解决的问题:
33
中南大学学士论文 基于JAVA的企业级即时通信平台设计与实现
如何制定数据的前置规制,守护及维护数据;2.当数据量大的时候如何应对; 3.系统刚刚开始使用的是模拟数据生成。针对本缓存系统它具备一下组件: 所有在线的用户的连接、常用的用户信息、在线的用户信息、常用的群信息、常用的好友组信息、用户的留言信息等。其构成图如图4-15所示:
图4-15缓存组成结构
4. 服务器Socket设计
本服务器Sockect是基于MINA的非阻塞SocketAcceptor封装而来,在MINA端的SocketAcceptor提供了底层的连接和设置IO处理器,而这些功能对于服务器是偏底层,所以要基于SocketAcceptor封装自己的EIMSocket。而EIMSocket只是设定了相应的属性没做任何操作,在设计此EIMSocket同时也设计了一个套接字接口ISockect规定套接字的方法。本系统Sockect封装类图如下图4-16所示,
具体的Sockect分为EIMFileSocket和EIMChatSocket。EIMFileSocket负责企业用户的文件传输,EIMChatSocket负责企业内部的聊天消息传输。分为这两个的原因是文件包的消息很大解析文件消息需要很长的时间和内存,如果不把它们分开那么当在线人数过高的时候就必然会出现用户发出一条消息要过许久好友才能收到这个消息,这就和我们实时通信的目标所违背。如果把这两个分离则就相互不影响,初步实现了实时通信的目标,而同时又实现了文件的传输。
图4-16 EIMSockect类图
5. 服务器监控系统设计
34
中南大学学士论文 基于JAVA的企业级即时通信平台设计与实现
在服务器端总要有两大监控:CPU和内存,初期设计想法是把它们做成动态曲线来显示。大体界面如图4-17和4-18所示:
图4-17内存监控 图4-18CPU监控
在设计时它们都是基于Swing和线程封装而来,使用java中的Rectangle2D和Line2D老绘制图表,在界面一打开是就启动监控线程老监控这个两系统值。详细实现请看它们的实现。 6. 服务器可视化管理系统设计
服务器可视化管理系统是用来管理EIM服务器信息的,服务器现行的任何信息都可以通过可视化来管理,而避免了敲命名来获取服务器的相关信息,当然有些牛人不喜欢可视化操作觉得效率低,本系统设计处已经预留了接口,在CMD日志信息栏中可以扩展为带UNIX命令控制台,支持简单的UNIX命令。而在可视化桌面中可以新建项目、修改背景、修改图表等等类似XP操作系统一样。具体形式如图4-19所示。
图4-19 服务器管理平台
35
中南大学学士论文 基于JAVA的企业级即时通信平台设计与实现
4.3 EIM服务器运行界面展示
服务器启动的顺序是如图4-20所示,在下面四个界面中简单的演示了下此服务器的运行情况。图4-21展示的是服务的加载启动界面,此界面显示了服务器的加载信息;图4-22展示的是服务管理主界面,在此界面上可以查看和管理服务器的日常信息比如:日志信息、服务器配置信息、服务器JVM信息、CUP和内存使用情况等等信息;图4-23展示的是服务器基本信息如:磁盘使用信息、服务器Socket启动信息等等;图4-24展示是查看服务器的日志、配置信息等信息。 因篇幅问题,本节是大概的展示了服务器的主体功能。 加载配置信息 启动管理平台UI 启动服务后台系统 图4-20 服务器启动顺序
图4-21启动界面 图4-22服务器管理主界面
图4-23服务器信息界面 图4-24管理服务器日志、配置等信息界面
36
中南大学学士论文 基于JAVA的企业级即时通信平台设计与实现
第五章 EIM客户端设计与实现
5.1 EIM客户端分析 5.1.1 EIM客户端可行性分析
1.应用可行性分析
在企业内部办公通常要和同事交流,在同一个办公室里还可以去当面交谈,但是在不同的办公室不同的子公司就不能去面对面去交流,这是需要一个软件去帮助员工来沟通,比如一个类似QQ的通信软件。所以从应用上分析是可行的。
2.技术可行性分析
考虑到客户端的技术可行性,在软件方面选择了如今较流行的Eclipse来进行开发管理平台的设计,使用XML存储数据;在语言方面使用了当今最流行JAVA来开发,通信框架用了性能很高的MINA通信框架;在XML解析技术上使用了使用简单效率高的XStream工具。
在硬件方面,则选择空间较大,只要是PentiumIII系列及以上的计算机,内存在512M以上,硬盘在10GB,都可以满足客户端的运行需要!当然,硬件的配置越高,系统的开发与运行会更流畅。考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是可行的。
在软件方面,由于Eclipse 一个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。而在java技术方面是绝对不会匮乏的。
5.1.2 EIM需求分析需求分析
据腾讯QQ官方消息,2009年QQ在国内已拥有10.57亿多的注册用户,4.84亿活跃用户,同时在线人数1亿以上.目前腾讯QQ已成为国内用户最多的个人即时通讯工具。其拥有众多用户的原因是有多方面的,比如界面人性化、操作简单、娱乐性强。其中娱乐性强是个主要原因。
而本客户端是面向办公的所以我们的重要需求是方便办公和交流,其次的需求就是界面人性化优美。
总结客户端需求如下:
①较强的方便办公和员工交流 ②界面人性化优美 ③实现日常的聊天 ④实现日常的文件传输
37