124
福
建
电
脑
2008年第1期
基于JAVA的多平台聊天
系统 郇战
(江苏工业
计算机科学与工程系江苏常州213164)
摘要】目前市场上的主流即时聊天系统由于编写语言的原因,只能在微软的Windows操作系统上运行,移植性很【:差。本文利用JAVA的"一次编译,多处运行"即跨平台的特性来编写一个聊天
软件,以实现跨平台性,能更好的体现聊天软件的通用性。利用JAVA
设计的聊天工具彻底解决了聊天软件移植性差的
问题,真正让用户到哪都可以直接使用它来互相沟通,却不需要多余的步骤。关键字】JAVA即时通讯
网络跨平台【:引言0、随着因特网的迅猛发展,ICQ、、QQMSN等即时聊天工具被越来越多的用户接受。大部分聊天软件都是基于C/C++的,这和WINDOWS操作系统的普及率有巨大的关系。但操作系统并不是微软一家的天下,LINUX、UNIX、MAC等操作系统也占据着半壁江山。而这几种操作系统由于内核的不同,也导致了应用软件不能通用,像ICQ、等聊天软件并没有专门的LINUX版本,QQ这就大大影响了软件的通用性,用户若想要在LINUX、MAC上使用即时通讯软件,需要费很大的周折。系统模型1、系统采用典型的CS交互模型,如图1所示。数据传输使用TCP+UDP即TCP/IP技术,在客户端使用简单的SWING来形成图形化用户界面,服务器端使用3层设计模式,数据库安装在服务器端。能作为客户端和服务器端维护持久
通信的通信协议。由于client-to-client没必要维护一个持久通信,所以客户端和客户端之间可以用UDP协议来通信,这样的代价比较低,而且速度比较快,唯一的缺点就是UDP协议的可靠性不高,传输的数据包有可能丢失,但作为客户端之间通信,可以不保证100%的数据收发成功率,这样在性能可代价上可以寻找到一个平衡点。架构设计3、3.1整体架构服务器端整体采用了较为流行的3层设计模式,如图2所示。
图2整体架构
3.2数据持久层(DAO)对数据库进行操作
数据持久层对数据库的交互是不依赖于业务逻辑层的操作,利用Hibernate对数据库进行(CURD)增删改查(hibernate将在后面进行介绍)。数据库是一个系统的核心,为高效的操作数据库,利用项目Hibernate所提供的接口服务来操作数据库,完成所需的最基本的用户信息的保存、删除、更新、
查询操作。3.3业务逻辑层调用数据持久层业务逻辑层是直接面向用户的,该层的设计关系到整体逻辑。业务层所负责的如下:(1)处理应用
程序的业务逻辑和业务校验(2)管理事物(3)允许与其它层相互作用的接口(4)管理业务层级别的对象的依赖。(5)在显示层和持久层之间增加了一个灵活的机制,使得他们不直接的联系在一起。(6)通过揭示从显示层到业务层之间的Context来得到businessservices。(7)管理程序的执行(从业务层到持久层)。数据交互
方案的选择4、Hibernate用来处理服务器端程序和数据库的交互。Hiber-nate是一个开放
源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使
Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少操作数据库的
工作量。另外Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用HibernateQL从数据库(下转第137页)
图1系统模型
2.基于协议的设计分析2.1TCP与UDP的差别TCP和UDP协议各有优缺点,适用于不同要求的通信环境。TCP协议是面向连接的,可适合于传输大量数据,其靠性较高,但速度较慢;UDP协议是面向非连接的,虽可靠性较差,但由