兰州交通大学博文学院毕业设计(论文)
1 系统概述
自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。如今,作为网络应用之一的聊天工具,越来越受到人们的欢迎和重视。现在已有的聊天软件和聊天工具不胜枚举,流行的主要有QQ,ICQ,MSN Message,NetMeeting,mIRC和郎码UC和各种的网页聊天室等。这些软件特别是QQ升级很快,其功能是越来越来强大,将代表着聊天软件的发展方向。目前,聊天软件的功能除了最基本的文本聊天,已经可以语音聊天,图像聊天,视频聊天,文件传输等三维聊天,还发展了短信发送,无线聊天,在线游戏等功能,可以预见在不久的将来,聊天软件将成为人们通过因特网相互联系和娱乐的主要平台。
1.1系统设计(研究)的背景、目的和意义
1.1.1 系统开发的背景
聊天室作为一种即时通讯(Instant Messenger,简称IM)软件可以说是目前我国
上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯QQ,以及微软的MSN Messenger都是大众关注的焦点,它们能让你迅速地在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。
目前,国内最为流行的即时通讯软件是OICQ(简称QQ)。它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。作为Windows XP的一部分,Messenger 整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视。
1.1.2 系统开发的目的和意义
随着信息科学的进步与互联网络的发展,虽然通过网络的聊天软件很多,这些聊天软件必须连接上Internate网络才能聊天,对于服务器要求也较高,因此开发一个针对于内部系统的、局域网内的聊天和公司内部的上下级沟通的聊天通讯软件这样一个即时通讯系统就变得非常有意义了。
本系统为基于C/S的应用Socket技术的聊天工具的设计与实现,它是在Socket通信和文本聊天的基础上来实现一对一、一对多聊天。它要求该聊天软件能够自建服务器,
1
兰州交通大学博文学院毕业设计(论文)
被应用在一个个独立的自治系统中,灵活性很大。
1.2 对已有聊天软件的分析
1.2.1 QQ
作为如今流行的聊天软件之一QQ,功能已经非常强大,基本上朝着三个大的方向发展,即个人及时通信,企业实时通信和娱乐资讯。它的功能主要有:
(1)个人文本聊天 (2)个人语音聊天 (3)个人视频聊天 (4)图像传输 (5)文件传输 (6)在线游戏 (7)隐身,上线 (8)群聊天 (9)企业级实时通信
聊天软件的发展方向是三维化,人性化,综合化。 1.2.2 网页聊天室
作为另一种聊天软件形式,网页聊天室也受到用户的普遍欢迎。网页聊天室的优点就是很好的利用了浏览器的功能,用户不需要安装任何新的软件,即可加入聊天室聊天。现在的网页聊天室除了文本聊天之外,语音聊天也很常见。由于其客户端的简化,其功能必然受到限制。 1.2.3 本系统具有的优势
不管是QQ,还是网页聊天室,其最大的缺陷就是服务器固定,用户必须连接上服务器。如果想在一个自治系统之内(一个孤立的网络)通信,这些软件都不能满足人们的需求,而本系统的服务器有很强的灵活性,任何用户都可以建立自己的服务器
1.3 系统设计的环境与开发方案
1.3.1 系统开发环境
系统所需的软硬件环境,具体如下: 硬件:PC机一台。
软件:Windows XP ,Oracle数据库,Eclipse7.0开发平台
2
兰州交通大学博文学院毕业设计(论文)
1.3.2 系统开发方案
设计实施方案包括:需求分析,流程设计,建立数据库,服务器端设计,客户端设计,系统测试,维护。
此系统基于C/S架构设计,采用Java语言设计。整体框架采用MVC模式,分为模型层(Model),视图层(View)和控制层Controller)。三层各施其职,哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码;本系统选择Oeacle10g作为后台的数据库;对于系统的持久层采用Hibernate框架,实现关系型数据库和对象之间的映射;这样可大大增强了系统的健壮性和可维护性以及可移植性。
3
兰州交通大学博文学院毕业设计(论文)
2 关键技术介绍
任何一个开发项目都需要一定的技术支持,在开发即时聊天通讯系统的过程中,我采用了Java语言,C/S模式,Socket通信技术,MVC模式,Hibernate框架,JavaBean技术以及Eclipse7.0开发平台,下面简单介绍一下这几种技术。
2.1 软件开发所采用的关键技术
2.1.1 Java语言简介
Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.6。 2.1.2 Socket通信技术
Socket是建立在TCP/IP协议基础之上,可以看作是通信连接两端的收发器,服务器与客户都通过Socket来收发数据。除了Socket的第一个不带参数的构造方法以外,其他构造方法都会试图建立于服务器的连接,如果连接成功,就返回Socket对象;如果因为某些原因连接失败,就会抛出IOException。当客户请求于服务器程序连接时,可能要等待一段时间。默认情况下,客户会一直等下去,直到连接成功,或者出现异常。如果希望限定等待连接的时间,可以通过connect(SocketAddress endpoint,int timeout)方法来设置超时时间,以毫秒为单位。在通信过程中,如果发送方没有关闭Socket,就突然终止程序,接收方在接收数据时会抛出SocketException。发送方发送完数据后,应该及时关闭Socket或关闭Socket的输出流,这样,接收方就能顺利读到输入流的末尾。 2.1.3 MVC模式
MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。
MVC由Trygve Reenskaug提出,是Xerox PARC在20世纪80年代为程序语言Smalltalk-80发明的一种软件设计模式。模型—视图—控制器模式的目的是实现一种
4
兰州交通大学博文学院毕业设计(论文)
动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外此模式通过对复杂度的简化使程序结构更加直观。
模型(Model) “数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
视图(View) 视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
控制器(Controller) 控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。 2.1.4 Hibernate框架技术
从不同的角度Hibernate有着不同的解释:
(1)它是连接Java应用程序和关系数据库的中间件。 (2)它对JDBC API进行了封装,负责Java对象的持久化。
(3)在分层的软件架构中它位于持久化层,封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑。
(4)它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射。
实际上,Hibernate是一个基于JAVA的开发源代码的持久化中间件,它对JDBC做了轻量级封装,不仅提供ORM映射服务,还提供数据查询和数据缓存功能,JAVA开发人员可以方便地通过Hibernate API来操作数据库。
现在,越来越多的Java开发人员把Hibernate作为企业应用和关系数据库之间的中间件,以节省和对象持久化有关的30%的JDBC编程工作量。2005年,Hibernate作为优秀的类库和组件,荣获第15届Jolt大奖。Hibernate之所以能够流行,归功于它的以下优势:
(1)它是开发源代码的,允许开发人员在需要的时候研究源代码,改写源代码,定制客户化功能。
(2)具有详细的参考文档。
5