logo资料库

Java即时聊天系统毕业论文.doc

第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
资料共25页,剩余部分请下载后查看
1 前言
1.1 课题选题背景
1.2即时通信的概念和特点
1.3即时聊天系统的发展
2 涉及的相关技术及协议
2.1 Java语言
2.2 C/S模式介绍
2.3 Hibernate框架简介
3 系统需求分析
3.1即时聊天消息的一般需求
3.2 即时消息的协议需求
3.3 即时消息的安全需求
3.4 即时信息加密和鉴别
3.5 即时通讯系统需求
4 系统设计
4.1即时聊天系统的实施原理
4.2软件设计流程
4.3功能模块划分
4.4 数据库概要设计
5 详细设计
5.1 服务器端的设计与实现
5.1.2 主服务器类的设计
5.1.2 登录验证模块
5.1.3 注册处理模块
5.2 客户端的设计与实现
5.2.1 用户注册模块
5.2.2 用户登录
5.2.3 在线用户显示设计
5.2.4 聊天信息发送与接收
5.3 数据库设计
6 结论
致谢
参考文献
附录
内江师范学院本科毕业论文(设计) 目 录 1 前言..................................................................................................................................... 4 1.1 课题选题背景........................................................................................................... 4 1.2 即时通信的概念和特点............................................................................................ 4 1.3 即时聊天系统的发展................................................................................................ 5 2 涉及的相关技术及协议..................................................................................................... 5 2.1 Java 语言.................................................................................................................... 5 2.2 C/S 模式介绍............................................................................................................. 6 2.3 Hibernate 框架简介................................................................................................... 7 3 系统需求分析..................................................................................................................... 7 3.1 即时聊天消息的一般需求........................................................................................ 7 3.2 即时消息的协议需求............................................................................................... 8 3.3 即时消息的安全需求............................................................................................... 8 3.4 即时信息加密和鉴别............................................................................................... 8 3.5 即时通讯系统需求................................................................................................... 8 4 系统设计............................................................................................................................. 8 4.1 即时聊天系统的实施原理........................................................................................ 9 4.2 软件设计流程.......................................................................................................... 10 4.3 功能模块划分.......................................................................................................... 11 4.4 数据库概要设计..................................................................................................... 11 5 详细设计........................................................................................................................... 12 5.1 服务器端的设计与实现......................................................................................... 12 5.1.2 主服务器类的设计....................................................................................... 12 5.1.2 登录验证模块............................................................................................... 14 5.1.3 注册处理模块...................................................................................................... 14 5.2 客户端的设计与实现............................................................................................. 15 5.2.1 用户注册模块............................................................................................... 15 5.2.2 用户登录....................................................................................................... 16 5.2.3 在线用户显示设计....................................................................................... 17 5.2.4 聊天信息发送与接收.......................................................................................... 18 5.3 数据库设计............................................................................................................. 19 6 结论................................................................................................................................... 20 1
内江师范学院本科毕业论文(设计) 致谢....................................................................................................................................... 22 参考文献............................................................................................................................... 23 附录....................................................................................................................................... 24 2
内江师范学院本科毕业论文(设计) 基于 Java 即时聊天系统的设计与实现 摘要:计算机网络技术高速发展的今天,即时通讯方式日益受到人们的青睐。即时聊天 工具在实现传输视频与音频信息,使协作成员可以远距离进行直观、真实的视音交流 的同时,利用多媒体的技术,它还可以帮助使用者对工作中各种信息进行处理。 本课题研究的是支持内部网络交流的系统——网络即时通讯系统。该系统使用 Java 语言进行编程。系统采用 C/S 结构模式,支持局域网和 Internet。该系统采用软 件工程的瀑布模型进行开发,分别讨论了系统的需求分析、概要设计、详细设计和编 码、以及整个系统的运行和测试。 关键词:即时聊天;系统;Java;C/S Abstract: The rapid development of computer network technology today, more immediate means of communication by people of all ages. Real-time chat tool in achieving the transmission of video and audio information, so that members can collaborate remotely intuitive, real audio and visual communication at the same time, use of multimedia technology, it can also help users to work in all kinds of information processing. Study of this issue is to support the exchange of internal network systems - network instant messaging system. The system uses Java programming language. System uses the C / S structure mode, support for LAN and Internet. The system uses the waterfall model of software development projects were discussed system requirements analysis, outline design, detailed design and coding, and run and test the whole system. Finally, the paper concluded. Of course, the system there are some imperfections, and seek to study and work in the future be amended so that the system actually used in a variety of network efficiency. Keywords:Instant Messager; System; JAVA; C/S 3
内江师范学院本科毕业论文(设计) 1 前言 交流对于人类社会及其每个成员都至关重要。直接交流的方式包括语言、文字等, 而远程交流还需借助于一些先进的工具如电话、网络等。本课题研究的是支持内部网 络交流的系统——网络即时通讯系统。该课题在实施的过程中需要使用 Java 语言。 1.1 课题选题背景 计算机技术、网络技术高速发展的今天,即时通讯方式日益受到人们的青睐。即 时通讯工具在实现传输视频与音频信息,使协作成员可以远距离进行直观、真实的视 音交流的同时,利用多媒体的技术,它还可以帮助使用者对工作中各种信息进行处理。 大家都知道,网络上常用的即时通讯工具之一有 ICQ。其实,ICQ 是英文“I seek you”的简称,中文意思是“我找你”。ICQ 最大的功能便是即时信息交流,只要记得对 方的号码,上网时可以呼他,无论他在哪里,只要他上网打开 ICQ,人们就可以随时 交流。 目前即时聊天系统种类众多,功能也较为齐全。该课题现在所研究的即时通讯系 统,其目标是定位于企业内部网络,解决企业或单位的沟通及协同的问题,提高工作 效率。企业内部员工可以利用该通讯系统随时随地发送文字消息、进行多人群聊、消 息群发、传送文件、音频视频对话等。系统包括客户端程序和服务器端程序,支持局 域网和 Internet。企业内部员工之间可以在内部网覆盖的任何地点、任何时间进行即时 交流,真正实现企业内部协同工作。使您不必花费大量的时间、金钱聚集到一个地方, 通过网络,就能实现面对面的沟通,提高了效率。MSN、QQ 等公共消息系统,由于 聊天对象及内容的不可控,若在企业内部使用,可能会降低工作效率。而该即时通讯 系统将自己的服务器端安装在企业内,并且人员的创建是由系统管理员来完成,因此 很好的解决了这个问题。 即时通讯带给了更大的互动性,人们在交流彼此的看法、意见时,发现采用你来 我往的方式达到的效果最为明显。这就体现了互动性。通过使用及时通讯系统,大家 不需要离开电脑,不需要借助其它额外的工具,就可以在线实时地交流工作。 1.2 即时通信的概念和特点 即时通讯(IM)是一个允许两人或多人使用网络即时地传递文字信息、档案、语音 与视频交流的终端服务。即时通讯不同于 e-mail 在于它的交谈是即时的。【1】大部分的 即时通讯服务提供了 presence awareness 的特性──显示联络人名单,联络人是否在在 线与能否与联络人交谈。在早期的即时通讯程序中,使用者输入的每一个字符都会即 时显示在双方的银幕,且每一个字符的删除与修改都会即时的反应在银幕上。这种模 式比起使用 e-mail 更像是电话交谈,充分体现了其实时特性。在现在的即时通讯程序 4
内江师范学院本科毕业论文(设计) 中,为了画面的完整美观和交流方便,交谈中的另一方通常只会在本地端按下送出键 (Enter 或是 Ctrl+Enter)后才会看到信息。 1.3 即时聊天系统的发展 二十世纪七十年代早期,一种较早的即时通讯形式是柏拉图系统(PLATO system)。 八十年代,UNIX/Linux 的交谈即时信息被广泛的使用于工程师与学术界,九十年代即 时通讯更可跨越了操作系统平台交流,1996 年 11 月,首个广泛被非 UNIX/Linux 使用 者用于因特网的即时通讯软件 ICQ 出现。通常认为 ICQ 是现在流行使用的即时通讯软 件的开山之作。ICQ 源于以色列特拉维夫的 Mirabils 公司。该公司成立于 1996 年7月, 也就是在这个时候,四个月后的 1996 年 11 月,互联网上最出名,下载使用人数最多 的免费软件 ICQ 诞生了,她是由几个以色列的年轻人制作的,在无人投资的情况下, 他们向全球互联网用户提供免费下载使用,到了 1998 年,Mirabilis 公司的 ICQ 用户 已经发展到 1200 万人,并以每月 100 万用户的速度增加。这时候,ICQ 公司由于其潜 在的巨大商业广告价值,已经成为许多大公司争相购买的对象,1998 年 ICQ 公司将自 己开发的软件连同用户一起“卖”给了美国在线(AOL),售价 2.87 亿美元。据美国在 线 1999 年底称,ICQ 使用者已达 5000 万,其中超过三分之二的使用者居住在美国本 土以外的世界各地。ICQ 造就的实时通信成了互联网世界中发展最快的一个领域。 2 涉及的相关技术及协议 为了保证课题能正常实施,先来分析一下课题所需要的相关技术和协议。 2.1 Java 语言 经过认真的讨论分析,综合各种计算机高级语言的特征和适应范围,最终决定选 择纯面向对象的 Java 语言来完成毕业论文的设计,下面就技术可行性方面,对 Java 语言作一简要介绍。 Sun 公司的口号就是“网络就是计算机”,Java 能使所有东西从桌面计算平稳的转 变为基于网络的计算,它是专门为此而建立的,并显然是为了完成这个任务而来的。 使用 Java 语言,可以相对轻松的一天编写一个有条理的网络程序。今天,Java 的网络 功能正在飞跃发展,不断有新的特性增加到这个有价值的基础上,JavaSoft 实验室正 在不断努力使 Java 更加完善。就 Java 语言的主要特点,本人归纳如下: Java 程序设计的开发过程与运行环境 Java 是解释型的高级编程语言,所以 Java 程序的开发通常需要经过编写源程序、编译生成字节码和运行三个过程。这里要提到, Java 应用程序的开发周期包括编译、下载、解释和执行几个部分。Java 编译程序将 Java 源程序翻译为 JVM 可执行代码—字节码。这一编译过程同 C/C++的编译有些不同。当 C 编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而产生的。 5
内江师范学院本科毕业论文(设计) 因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移 量,以保证程序运行。Java 编译器却不将对变量和方法的引用编译为数值引用,也不 确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释 器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址。这样就 有效的保证了 Java 的可移植性和安全性。【2】 2.2 C/S 模式介绍 20 世纪 90 年代出现并迅速占据主导地位的一种计算模式为客户机/服务器模式, 简称为 C/S 模式,它实际上就是把主机—终端模式中原来全部集中在主机部分的任务 一分为二,保留在主机上的部分负责集中处理和汇总运算,成为服务器;而下放到终 端的部分负责为用户提供友好的交互界面,称为客户机。【3】相对于以前的模式,C/S 模式最大的改进是不再把所有软件都装进一台计算机,而是把应用系统分成两个不同 的角色和两个不同的地位:一般在运算能力较强的计算机上安装服务器端程序,而在 一般的 PC 上安装客户机程序。正是由于个人 PC 机的出现使客户机/服务器模式成为 可能,因为 PC 机具有一定的运算能力,用它代替了上面第一种模式的哑终端后,就 可以把主机端的一部分工作放在客户机端完成,从而减轻了主机的负担,也增加了系 统对用户的响应速度和响应能力。 客户机和服务器之间通过相应的网络协议来进行通讯。客户机向服务器发出数据 请求,服务器将数据传送给客户机进行计算,计算完毕,计算结果可返回给服务器。 这种模式的优点充分利用了客户机的性能,使计算能力大大提高;另外,由于客户机 和服务器之间的通讯是通过网络协议进行的,是一种逻辑的联系,因此物理上在客户 机和服务器两端是易于扩充的。C/S 模式是目前占主流的网络计算模式。 该模式在操作过程中采取的是主动请示方式: 首先服务器方要先启动,并根据请示提供相应服务(过程如下): (1)打开一个通信通道同时通知本地主机,服务器愿意在某一个公认地址上接收客 户请求。 (2)等待某个客户请求到达该端口。 (3)接收到重复服务请求,处理该请求并发送应答信号。 (4)返回第二步,等待另一客户请求。 (5)关闭该服务器。 客户端: (1)打开一个通信通道,并连接到服务器所在主机的特定端口。 (2)向服务器发送服务请求报文,等待并接收应答;继续提出请求。 6
内江师范学院本科毕业论文(设计) (3)请求结束后关闭通信通道并终止。 分布运算和分布管理是客户机/服务器模式的特点。最后选择了 C/S 模式。 2.3 Hibernate 框架简介 Hibernate 是一种 Java 语言下的对象关系映射解决方案。它是一种自由、开源的软 件。它用来把对象模型表示的对象映射到基于 SQL 的关系模型结构中去,为面向对 象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。 主要作用有:Hibernate 不仅管理 Java 类到数据库表的映射(包括从 Java 数据类 型到 SQL 数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开 发时人工使用 SQL 和 JDBC 处理数据的时间。【4】它的设计目标是将软件开发人员从 大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留 数据库开始,开发人员都可以采用 Hibernate。 在应用方面,Hibernate 对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员 可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,它既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用 中使用。最具革命意义的是,Hibernate 可以在应用 EJB(Enterprise JavaBeans 是 Java 应用于企业计算的框架)的 J2EE 架构中取代 CMP,完成数据持久化的重任。 3 系统需求分析 前面两章介绍了课题的选题背景和相关的技术基础和协议。在本章中将讨论一下 即时通讯系统的需求分析。 3.1 即时聊天消息的一般需求 3.1.1 一般即时消息格式需求 (1)所有实体必须至少使用一种消息格式; (2)一般即时消息格式必须定义发信者和即时收件箱的标识; (3)一般即时消息格式必须包含一个让接收者可以回消息的地址; (4)一般即时信息格式必须允许对信息有效负载的编码和鉴别(非 ASCII 内容); (5)必须提供扩展和注册即时消息格式的模式的机制。 3.1.2 可靠性需求 协议必须存在机制,保证即时消息成功投递或者投递失败的时候,发信者获得足 够的信息。 3.1.3 性能需求 (1)即时消息的传输必须足够的迅速; (2)即时消息的内容必须足够丰富; 7
内江师范学院本科毕业论文(设计) (3)即时消息的长度尽量足够的长。 3.2 即时消息的协议需求 协议是一系列的步骤,它包括双方或者多方,设计它的目的是要完成一项任务。 即时通讯协议,参与的双方或者多方是即时通讯的实体。协议必须是双方或者多方参 与的,一方单独完成的就不算协议。这样在协议动作的过程中,双方必须交换信息, 包括控制信息、状态信息等等。这些信息的格式必须是协议参与方同意并且遵循的。 好的协议要求清楚、完整,每一步都必须有明确的定义,并且不会引起误解;对每种 可能的情况必须规定具体的动作。 3.3 即时消息的安全需求 A 发送即时消息 M 给 B,有以下几种情况和相关需求: (1)如果无法发送,A 必须接到确认; (2)如果 M 被投递了,B 只能接受 M 一次; (3)协议必须为 B 提供方法检查 A 发送了这条信息; (4)协议必须允许 B 使用另一条即时信息,回复信息; (5)协议必须为 A 提供方法保证没有其他个体 C 可以篡改 M; 3.4 即时信息加密和鉴别 (1)协议必须提供方法保证通知和即时消息的置信度,未被监听或者破坏; (2)协议必须提供方法保证通知和即时消息的置信度,未被重排序或者回放; (3)协议必须提供方法保证通知和即时消息被正确的实体阅读; (4)协议必须允许客户自己使用方法确保信息的不被截获,不被重放和解密。 3.5 即时通讯系统需求 3.5.1 注册需求 (1)即时通讯系统拥有多个账户,允许多个用户注册; (2)一个用户可以注册多个 ID; (3)注册所使用的帐号类型为字母 ID。 3.5.2 通讯需求 (1)用户可以传输文本消息; (2)用户可以传输 RTF 格式消息; (3)用户可以加密/解密消息等。 4 系统设计 在这里我们将该即时通讯系统命名为 CHAT,现在对该系统进行总体设计。采用 客户机/服务器(C/S)的模式来设计,是一个 2 层的 C/S 结构:应用程序服务器→应 8
分享到:
收藏