基于Web的在线实时通讯系统的设计与实现毕业设计.docx

上传人:b****6 文档编号:6581397 上传时间:2023-01-08 格式:DOCX 页数:38 大小:411.83KB
下载 相关 举报
基于Web的在线实时通讯系统的设计与实现毕业设计.docx_第1页
第1页 / 共38页
基于Web的在线实时通讯系统的设计与实现毕业设计.docx_第2页
第2页 / 共38页
基于Web的在线实时通讯系统的设计与实现毕业设计.docx_第3页
第3页 / 共38页
基于Web的在线实时通讯系统的设计与实现毕业设计.docx_第4页
第4页 / 共38页
基于Web的在线实时通讯系统的设计与实现毕业设计.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

基于Web的在线实时通讯系统的设计与实现毕业设计.docx

《基于Web的在线实时通讯系统的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Web的在线实时通讯系统的设计与实现毕业设计.docx(38页珍藏版)》请在冰豆网上搜索。

基于Web的在线实时通讯系统的设计与实现毕业设计.docx

基于Web的在线实时通讯系统的设计与实现毕业设计

基于Web的在线实时通讯系统的设计与实现毕业设计

 

JIUJIANGUNIVERSITY

毕业论文

 

 

题目基于Web的在线实时通讯系统

的设计与实现

英文题目TheDesignandImplementationofTheInstantMessagingSystemBasedonWeb

院系信息科学与技术学院

专业计算机科学与技术

姓名廖江晨

班级学号A081125

指导教师杨振宇

二○一二年五月

摘要

随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。

目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等。

聊天通讯系统的诞生拉进了人们的距离,沟通交流更加方便了。

系统的开发也是受到WebQQ的启示,开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。

前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。

后者通过与服务器建立连接,来进行客户端与客户端的信息交流。

其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。

开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。

在网络编程中对信息的读取、发送。

系统的目标就是能够实现在线实时通讯,系统采用MyEclipse为基本开发环境,使用SSH框架以及Ajax等进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统。

系统具有良好的程序结构和人机交互界面,通用性强,既可独立为一个小型聊天网站,也可应用于其它不同需求的网站。

关键词:

实时通讯,多线程,服务器

Abstract

WiththerapiddevelopmentoftheInternet,networkchattoolsalreadyasakindofimportantinformationcommunicationtool,ismoreandmorethefavourofInternetusers.Atpresent,therearemanyverynicechattingtools,whichiswidelyNetmeeting,tencentofQQ,MSN-Messagerandsoon.Chatcommunicationsystemofthebirthofthedrawnintopeople'sdistance,moreconvenientcommunication.

ThedevelopmentofthesystemisalsobeingWebQQrevelation,developmentmainlyincludesanetworkchatserverprogramandanetworkchatclientprogramtwoaspects.TheformerthroughtheSocketSocketsetuptheserver,whichcanberead,forwardfromtheclientinformation,andcanrefreshuserlist.Thelatterthroughtoaserverconnection,totheclientandtheclientinformationexchange.Amongthemtheuseofthelocalareanetworkcommunicationmechanismofprinciple,throughthedirectlyinheritedThreadclasstoestablishmultithreading.Inthedevelopmentofthecomputernetworkprogrammingelementarytheoryknowledge,includingTCP/IPprotocol,Client/Servermode(Client/Servermode),networkprogrammingdesignmethod,etc.Inthenetworkprogrammingtoread,sendinformation.

Thegoalofthissystemistoachievethereal-timeonlinecommunications,systemUSESMyEclipseasthebasicdevelopmentenvironmentandJavalanguagetowrite,firstinashorttimecanestablishsystemapplicationprototype,andthen,onthebasisoftheprototypesystemmodificationandimprovementcontinuously,untilformfeasiblesystem.Thissystemhasagoodprogramstructureandman-machineinterface,versatility,bothasaindependentsmallchatsite,alsocanbeappliedtodifferentneedsofotherwebsites.

Keywords:

Real-timeCommunication,Multithreading,Server

1概述

“但愿人长久,千里共婵娟。

”大词人苏东坡这句脍炙人口的表达对故人极度思恋的千古佳句流传至今,引起了多少游子的深切共鸣——时空距离的存在,阻隔了无数千里之遥的亲人朋友们的情感交流,虽有鸿雁帮忙传送书信,可漫长的等待却成为时间异步的真实写照。

然而随着当今社会计算机科学技术的迅猛发展和网络的出现,信息资源的实时共享成为现实,更重要的是它提供了一种极为直接的即时的交互方式,当然这种交互不单是指数据、信息之间的传递,也包括人与人之间的互相交流,各种聊天软件和在线聊天室正是承载这类交互的媒介,人们之间的交流几乎完全可以不受时空的约束,“但愿人长久,千里共婵娟”在现今可以蜕变成“只需网上游,千里共聊天”了。

由于Internet/Internat的广泛使用,客户与服务器端之间能否有效地进行交互成为我们要解决的问题。

JSP是一种在服务器端嵌入Java代码的脚本语言,是开发Web动态网站重要而快速、有效的工具,在保证最大可操作性的前提下,它提供了比一般脚本语言(如ASP、PHP)和CGI更快的执行速度。

由此可见,作为一种Web实现技术,它的效率是很高的,这一点正好符合了聊天系统所要求的实时性。

JSP自身的安全性,再加上实现模式的特点,完全能够达到聊天系统的即时性和保密性的要求,保证了人们在交流中需要维护的隐私权。

此外,作为Java平台的一部分,JSP拥有Java语言“一次编写,随处运行”的特点,它的平台无关性使其可以轻松移植到其它平台上运行。

种种优点使得JSP技术为目前各式各样的聊天系统的实现都打下了良好的基础[1]。

1.1课题来源

“朋友一生一起走”、“朋友不曾孤单过”这两句歌曲《朋友》中的歌词相信大家早已耳熟能详了,朋友——对于我们每个人来说,那是我们人生中何其重要的组成部分。

常言道:

在家靠父母,出门靠朋友。

谁又不希望自己能多几个朋友,要是朋友能五湖四海该多好啊!

这在网络技术还欠发达的时候看来似乎是不可能的事,而今,各式各样的网络交友层出不穷,大大增加了大家交友的途径。

1.2国内外背景

随着互联网的发展,互联网服务也充斥着我们生活的方方面面。

作为互联网免费服务中最早被网民认知并接受的互联网服务之一,即时通讯软件在慷慨的服务于广大网民数年之后,获得的是巨大的网民基础。

以用户为基础的即时通信产业在满足于用户的基本需求的同时,也延伸发展开辟出了多平台、多运营模式的即时通讯外延市场[2]。

近年来随着WEB的发展给及时通信提供了更大的发展空间。

1.3课题目标

现今社会,信息技术已经融入到社会生活的各个方面,人们的联系也从书信来往到电话联系,从短信发送到网络聊天,计算机渐渐成为人们工作生活不可或缺的一部分。

这也就促使了即时通讯行业的迅速发展,各类的聊天软件也就应运而生。

传统的客户端即时通信软件需要下载即时通信客户端安装之后才能使用,聊天工具的繁多以至酷爱聊天走到哪里聊到哪里的人用别人电脑的时候,如果没有那种聊天工具就需要不厌其烦的下载。

而基于Web浏览器的即时通信服务,不需要下载客户端,打开浏览器联网即可完成即时通信,在Web浏览器中获得基础的IM服务,具有Web产品固有的便利性特点,也保持了用户在客户端软件的一些操作习惯。

作为客户端即时通信软件的有力补充,即时通信(IM)将为用户提供基于Web的IM服务[3]。

该系统的推出方便了大家的通信,同时也丰富了大家的“在线生活”平台。

1.4论文结构

论文共分六章,详细介绍了系统的整个实现过程,分别是:

概述、技术介绍、需求分析、系统设计、系统实现、系统测试等几大模块。

概述:

介绍课题。

(1)技术介绍:

对系统应用到的当下流行的几大实用性技术进行简单的介绍,方便大家理解。

(2)需求分析:

简单介绍系统需要实现的功能,并介绍用例关系。

(3)系统设计:

介绍系统的设计思路与想法。

(4)系统实现:

详细介绍系统的实现过程,并附带核心代码块。

(5)系统测试:

系统完成后,不断进行测试修复BUG、完善系统。

本章主要介绍了课题的来源、开发背景、设计目标以及论文结构,在开发过程中要严格按照所分析的来执行实现,避免不必要的错误,对读者而言也能在起初对整个课题有个大概的了解,对全文的理解加深印象。

 

2技术支持

Web技术日新月异,第二章将对论文中应用到的几大主流技术MVC模式、SSH框架、JSP和数据库做一简单介绍,方便读者更好的了解论文。

2.1MVC简介

一个框架就是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法。

简单的说,框架就是软件开发者在实践中总结出的一些开发标准。

这些标准可以帮助开发人员以成功的经验模式来开发同类型的系统[4]。

使用框架可以给开发人员带来以下好处:

(1)在好的框架下,开发人员只需要编写一些必须的代码,他们不需要直接接触底层的API;

(2)经过良好设计的框架可以为程序提供清晰的结构并且提高程序的内聚性;

(3)一个容易使用的框架可以通过一些例子和文档为用户提供最佳实践;

(4)成熟框架的代码更精炼,更健壮,比自己的代码容易测试和维护。

JavaPlatform,EnterpriseEdition(JavaEE)本身也提供了一些框架。

比如EnterpriseJavaBean(EJB)容器。

EJB为用户提供了一系列“重量级”企业级服务,给了我们看起来完整的服务策略,但是,它也给开发带来了许多负面效果。

由于EJB提供的企业级服务是强制性的,从而使系统变得很庞大,难以部署,性能也大大降低,给开发和应用带来了很多不便,增加了系统的开销,同时也使得测试变得困难。

与传统的基于EJB的JavaEE框架相对应的,目前JavaEE业界出现了很多优秀的轻量级框架,它们不仅可以实现传统框架所能做到的事情,而且可以通过轻量级的方式去实现[5]。

总体上说,它们具有以下优点:

(1)轻量级JavaEE框架的服务是可配置的,从而为系统省去很多不必要的开销;

(2)轻量级JavaEE框架的良好扩展性可以保证引擎在将来可以不断地被扩展以适应新的需求。

2.2Hibernate简介

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库[6]。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate的核心接口一共有6个,分别为:

Session、SessionFactory、Transaction、Query、Criteria和Configuration。

这6个核心接口在任何开发中都会用到。

通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。

Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。

这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。

这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。

Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。

Hibernate版本更新速度很快,目前为止有两个阶段性的版本:

Hibernate2,Hibernate3和Hibernate4,这一点程序员从其Jar文件名便可以看出来。

目前最新发布的版本是hibernate-core-4.1.1.Final。

Hibernate2系列的最高版本是Hibernate2.1.8,Hibernate3系列的最高版本是hibernate-distribution-3.6.10.Final-dist版,但目前使用较多且较稳定的版本是Hibernate3.1.3或Hibernate3.1.2。

另外,自Hibernate3发布以来,其产品线愈加成熟,相继出现了Hibernate注释、Hibernate实体管理器、Hibernate插件工具等一系列产品套件。

在方便程序员使用Hibernate进行应用程序的开发的同时,也逐渐增强了Hibernate产品线的实力[7]。

2.3Struts简介

Struts是Apache软件基金会(ASF)赞助的一个开源项目。

由于本系统的开发过程中使用的是Struts2,在此就只对Struts2做简单的介绍。

Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。

Struts2与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:

WebWork基础上发展起来的。

从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。

因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:

而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架[8]。

ApacheStruts2是一个优雅的,可扩展的JavaEEWeb框架。

框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。

ApacheStruts2即是之前大家所熟知的WebWork2。

在经历了几年的各自发展后,WebWork和Struts社区决定合二为一,也即是Struts2[9]。

2.4Spring简介

Spring是一个开源框架,它由RodJohnson创建。

它是为了解决企业应用开发的复杂性而创建的。

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。

然而,Spring的用途不仅限于服务器端的开发。

从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益[10]。

(1)目的:

解决企业应用开发的复杂性;

(2)功能:

使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。

(3)范围:

任何Java应用。

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架[11]。

以下是Spring的特点:

(1)轻量——从大小与开销两方面而言Spring都是轻量的。

完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。

并且Spring所需的处理开销也是微不足道的。

此外,Spring是非侵入式的:

典型地,Spring应用中的对象不依赖于Spring的特定类;

(2)控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。

当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它;

(3)面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。

应用对象只实现它们应该做的——完成业务逻辑——仅此而已。

它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持;

(4)容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。

然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用;

(5)框架——Spring可以将简单的组件配置、组合成为复杂的应用。

在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。

Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。

它们也为Spring中的各种模块提供了基础支持;

2.5Ajax简介

Web应用的交互如Flickr,Backpack和Google在这方面已经有质的飞跃。

这个术语源自描述从基于Web的应用到基于数据的应用的转换。

在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。

Ajax的核心是JavaScript对象XmlHttpRequest。

该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。

简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

许多重要的技术和AJAX开发模式可以从现有的知识中获取。

例如,在一个发送请求到服务端的应用中,必须包含请求顺序、优先级、超时响应、错误处理及回调,其中许多元素已经在Web服务中包含了,就像现在的SOA。

AJAX开发人员拥有一个完整的系统架构知识。

同时,随着技术的成熟还会有许多地方需要改进,特别是UI部分的易用性。

AJAX开发与传统的CS开发有很大的不同。

这些不同引入了新的编程问题,最大的问题在于易用性。

由于AJAX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。

这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能最好的使用这些技术。

综合各种变化的技术和强耦合的客户服务端环境,AJAX提出了一种新的开发方式。

AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。

同时,开发人员还需要考虑CS环境的外部和使用AJAX技术来重定型MVC边界。

最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。

一旦UI设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了[12]。

本章主要对时下在JavaEE开发中得到广泛应用的三大主流框架SSH、JSP、Oracle、Ajax等技术,以及对在Web开发中广泛应用的MVC模式做了一定介绍。

 

3系统需求分析

需求分析,即是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。

在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。

需求分析是软件工程中的一个关键过程。

在这个过程中,系统分析员和软件工程师确定顾客的需要。

只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。

需求分析阶段的任务是确定软件系统功能[13]。

需求分析是理解真实世界中的问题和用户需求,并找出能满足这些需求的解决方案的过程。

需求分析的目标是在开发活动开始以前,对问题的解决方法得到更好的认识。

由此可见,需求分析在整个项目过程中具有举足轻重的地位。

它甚至决定了以后开发活动的大方向。

能否得到一个准确全面的需求分析结果将直接影响软件开发项目的质量和成败[14]。

以下将结合开发的具体情况,对目标系统的功能性需求、非功能性需求进行分析。

3.1系统概述

此次开发的主要目标是实现一个实时通讯系统,此系统的主要功能是在线注册过的用户能够通过此交流平台获得更加快捷、方便的沟通,本系统的系统结构图如图3-1所示。

系统为每个注册用户提供方便的沟通平台,在该系统内用户可以通过查找添加自己想要的好友,与其进行在线交流,进行简单的文件传输。

每个用的登录之后都会启动一个单独的线程,作为该用户整个系统的贯穿,无论是登录、聊天、查询更改等功能中都需要用到,所以客户端与服务器端的连接非常重要。

 

图3-1系统功能结构图

3.2系统参与者

根据需求分析的结果,通过最终的用例模型,可以确定系统的主要功能和开发目标。

另外,系统还应该具备使用友好、安全等用例文档无法描述的非功能性需求具体功能性需求和非功能性需求[15]。

由于我们使用用例来记录系统的功能性需求,所以在需求分析的第一步我们需要明确系统的参与者。

参与者(Actor)是具有行为能力的事物,可以是一个人(由所扮演的角色来识别)、计算机系统或组织。

经分析确认,系统的参与者主要是注册用户。

用户注册成功之后,可以进行一同功能的一系列操作,如对好友进行查询添加、与好友进行聊天、查看聊天记录等。

3.3系统功能分析

3.3.1功能需求

系统的主要功能是为广大用户提供一个方便快捷的聊天沟通平台,以下会主要介绍各个模块。

系统各项需求功能大致如下:

(1)第一次使用系统的用户通过填写个人信息来进行注册,并验证用户名的有效性(是否已被注册);

(2)使用已经注册的用户可以验证登录信息(一般指用户名和密码)后登录系统;

(3)可以修改密码;

(4)能够选择对象进行聊天;

(5)可以查找好友;

(6)进行好友添加;

(7)能够进行文件传输;

(8)可以查看好友资料;

(9)可以查看聊天记录;

(10)可以更新个人资料。

3.3.2性能需求

(1)时间特性需求;

实时通讯系统的查

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1