JQQ即时通讯系统的设计与实现Word文件下载.docx
- 文档编号:20964720
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:29
- 大小:222.36KB
JQQ即时通讯系统的设计与实现Word文件下载.docx
《JQQ即时通讯系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《JQQ即时通讯系统的设计与实现Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
TheuseofInternetandJavadevelopmenttechnologies,usingC/Smode,areal-timecommunicationsystembasedonapplication.Thesystemimplementsuserregistration,userlogin,groupadministration,friendsmanage,queryuser,instantmessaging,viewthechathistory.Userregistrationisthroughthesystemtoaddnewusers;
userloginusedtoauthenticatetheuser'
sinformationislegitimate;
groupmanagementfunctionsmainlyforthemanagementofgroups,suchasaddingagroup,deletegroup,etc.;
friendsmanagementfunctionsmainlyforfriendsmanagement,suchasaddingfriends,removefriends,etc.;
querytheuseristhequerytoallregistereduserstoaddasfriendstocommunicate;
userstoinstantmessagingtobecomefriendsofthetwosidescanexchangereal-timeonline;
viewchathistorywithagoodsavefriendsofthecommunicationofallrecords.
Keywords:
Instantmessagingsystem;
C/Smode;
TCP;
UDP
1绪论
即时通讯软件的出现正在逐渐改变人们的沟通与交际方式。
无论近在咫尺,还是远隔重洋,通讯也只是在键盘和鼠标之间就可以解决问题。
即时通讯服务非常适合企业内部或企业和客户之间的交流。
网络聊天程序,越来越影响着我们的网络生活。
随着全球信息化进程的不断发展,网络也在飞速发展。
出于高效、快速地处理各种事务的目的,越来越多的企业和单位在其内部使用局域网来进行工作和交流。
在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。
然而,随着局域网规模的扩大,业务量的增加,在局域网上运行的应用越来越多,如知识库、网络会议、数据库应用和数据的同步与备份等,这些应用对局域网的信息吞吐、处理能力的要求也越来越高。
这些在原有局域网设计之初未曾考虑到的新情况的出现使得局域网不堪重负,容易发生信息阻塞,此时,局域网不但不能提高生产效率,反而成为工作效率的瓶颈。
基于Socket的局域网聊天室是局域网通信软件的具体实例之一,它很好地诠释了Socket通信的原理,并且在局域网部通信、教学、讨论等应用中都具有一定的实用价值。
它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。
1.1项目背景
即时聊天使亲友的沟通突破时空极限,使人与人的沟通突破上下级极限,使陌生人的沟通突破环境极限,使自我与外界的沟通突破心理极限……
作为使用频率最高的网络软件,即时聊天已经突破了作为技术工具的极限,被认为是现代交流方式的象征,并构建起一种新的社会关系。
它是迄今为止对人类社会生活改变最为深刻的一种网络新形态,没有极限的沟通将带来没有极限的生活。
聊天一直是网民们上网的主要活动之一,网上聊天的主要工具已经从初期的聊天室、论坛变为以MSN、OICQ(又称QQ)为代表的即时通讯软件。
迄今为止,全球约有一亿多人使用即时通讯软件在网上交流。
中国网民惯用的即时聊天工具腾讯QQ从1999年2月诞生到现在,注册用户已超过1.6亿,在线用户最高时超过200万人,而每天独立上线人数更是达到一千二百多万,拥有活跃用户5500万,几乎覆盖所有中国网民。
即时通讯工具使用频率之高,超出任何一种网络软件。
电子邮件曾是最重要的通讯交流工具,是互联网最早的“杀手级应用。
到2004年,即时通讯软件已取代电子邮件,成为最流行的互联网通讯工具
1.2国内外研究现状
即时通讯软件,几乎是每一个上网用户都必备的联络工具。
即时通讯软件除了能够让您迅速地在网上找到自己的朋友和工作伙伴,还可以实时交谈和传递信息,而且,现在不少即时通讯软件还集成了文件共享、语音聊天、网络会议等功能。
截止到目前,全球约有近3亿多人使用即时通讯软件进行交流,正因为即时通讯软件拥有数以亿计的用户和迅速增长的市场,所以各个公司都盯上了中国这个潜在的最大市场,一时间,即时通讯市场硝烟四起。
除了腾讯QQ和国外的几款著名即时通讯软件纷纷推出新版本,网易也推出了一种新的即时通讯软件——网易泡泡。
朗玛公司也推出了名为UC的通讯工具。
即时通讯软件最早发布于1996年11月15日,以色列特拉维文的MirabilisLtd.发表了一个题为《E.TSURFHOME:
MIRABILISLTD.PROVIDESNEWSOLUTIONSFORPEER-TO-PEERINTERNETCOMMUNICATIONS》的新闻稿,同时发布了他们新产品ICQ(ISeekYou)的Beta测试版。
这天标志着Internet上的第一个成热的即时通讯系统(InstantMessageSystem)的诞生。
即时通讯服务在诞生之后的几年时间得到了迅猛发展,成为新增Internet用户的3个主要应用之一(WEB,电子邮件和即时通讯)。
在国内,1999年2月,深圳腾讯公司正式发布OICQ99betabuild0210,开通腾讯即时通讯服务。
2000年5月,腾讯QQ同时在线用户突破10万;
2001年2月l0日,腾讯QQ同时在线用户突破100万。
2004年4月份腾讯QQ同时在线人数最高记录已经突破了600万大关,现在腾讯公司正在把即时通讯系统往移动通讯方向扩展,如今已经将即时通讯与手机短信息(ShortMessagingService,SMS)成功结合起来。
即时通讯软件涉及和影响的领域已近越来越广,其竞争也越来越激烈。
国内QQ最大的敌手朗玛UC从2001年开始研发,2002年的12月份UC正式发布,并且首创了很多技术:
UC是国内第一个做场景聊天的;
UC是第一个把同学录和校友录结合的;
第一个把即时通讯与休闲游戏相结合的;
第一个把发送动画与即时通讯相结合的。
在一年的发展里,UC一度达到峰值在线30万人,注册用户达到7000万。
纵观即时通讯软件业的迅速发展,设计并开发一个即时通讯平台,对于现阶段的学习和研究,都是极为有意义的,基于这个前提和起因,我选择了设计一个名为JQQ的即时通讯系统作为我的毕业设计。
1.3预期目标和经济效益
即时通讯简称IM(InstantMessaging),它是一种面向终端使用者的网络沟通工具服务,使用者可以通过安装了即时通信的终端机进行两人或多人之间的实时沟通。
即时通信利用的是互联网线路,通过文字、语音、视频、文件的信息交流与互动,有效节省了沟通双方的时间与经济成本。
即时通信不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。
即时通讯系统一旦开发完成,只需要一些基本维护和简单扩展的费用,产生的经济效益源源不断,相当乐观,有着很广阔的发展前景。
1.4课题简要介绍
本课题之前:
充分调查了市场主流类似通讯软件的优点与缺点;
对大数操作者的年龄、职业、文化层次等做了一系列调查;
在结合行业自身的特点的同时,也充分考虑到设计者自身的条件与现有技术成熟程度的基础上做出的一款适合大多数人使用的即时通讯软件。
产品定位:
◆大多数人能够使用,操作者有无相关专业知识都可
主要功能有:
◆用户注册
◆用户登陆
◆分组管理
◆好友管理
◆即时通讯
◆查询用户
◆查询聊天记录
实现技术:
◆MyEclipse7.1
◆SQLServer2000数据库
1.5系统创新点(建议改为系统特点)
操作简单、方便,快捷、准确、数据存储安全可靠,针对自身特点去除了不必要的冗余东西,使系统负担最小,速度最快;
采用更高的安全机制,使数据更加安全,用户可以放心的使用。
2需求分析
2.1功能需求
2.1.1用户管理
即时通讯系统拥有多个账户,允许多个用户注册;
一个用户可以注册多个标识;
注册所使用的帐号类型为字母数字的组合;
注册新用户时必须填写符合要求的信息;
注册后只有用户名与密码验证成功才能正确登录。
用户管理如图2-1所示。
图2-1用户管理用例图
2.1.2分组管理
分组管理部分要能够实现分组的添加与删除,所添加的分组名称可以是中文也可以是字母数字的组合,通过对分组的有效管理以便于更方便的管理好友。
分组管理如图2-2所示。
图2-2分组管理用例图
2.1.3好友管理
用户可以查询所有用户;
选择适当的可以加为好友;
一个用户可以添加多个人为好友,一个用户也可以被多个人添加为好友;
用户可以删除好友;
用户只可以将好友放在一个组中。
好友管理如图2-3所示。
图2-3好友管理用例图
2.1.4即时通讯
即时通讯模块用户可以与在线的好友进行聊天,用户首先查看好友是否在线,如果在线即可进行即时通讯,并且用户可以查看与好友的所有聊天记录。
即时通讯如图2-4所示。
图2-4即时通讯用例图
2.2通讯模型的特点
2.2.1适用性
作为一个一般性的模型,本通讯模型适用于无线网络和Internet上现存的多种系统。
模型中的JQQ可以是Internet上的应用程序,也可以是移植到移动电话和其他各种无线手持设备上的应用程序。
即时通讯和服务可以是Internet上ICQ(Iseekyou!
的谐音)服务,可以是GSM(GlobalSystemforMobileCommunications,为全球移动通讯系统)标准中的SMS,也可以是NTTDoCoMo(日本最大的携带电话公司,NTT是NewTechnologyTelescope的编写,DoCoMo是DoCommunicationOvertheMobileNetwork电信沟通无界限的意思)的I-MODE(information-mode,一种移动电话服务)服务。
2.2.2扩展性
模型具有很强的扩展性。
本模型并没有规定服务必须采用中央服务器。
在模型实现的时候,可以使用基于中央服务器的星形结构,也可以使用对等网络结构甚至其他混合结构。
例如,深圳腾讯QQ的通讯服务系统使用的是基于中央服务器的Client/Server的混合星型结构,而即时通讯服务使用的是对等网络加客户机——服务器结构。
2.3可行性研究
2.3.1技术可行性分析
(1)项目开发过程中遇到难以克服的技术问题,该怎么办。
这一方面,我们庆幸的是在学校我们有好多的老师在背后支持着我们,同时学校的网络比较方面,给我们解决问题提供了方便。
而且,凭借借阅图书馆收藏图书更增加了我们解决技术问题的信心。
(2)软件的质量如何。
有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能完备也毫无实用价值。
有些高风险的应用对软件的正确性与精确性要求极高,如果软件出了差错而造成用户利益损失,那么软件开发在某种意义上说也就失败了。
鉴于此,我们在编码测试的时候,找专业老师作为技术支持。
并且在完成之后,实际验证可行性,同时要考虑到机器硬件设备的不同而给软件带来的不可预知的结果,所以在机房的不同电脑上运行软件达到测试目的。
2.3.2不确定性分析
需要格外考虑的实际情况也可以说是面临的一个现实问题就是:
毕业生面临着毕业与找工作,还有就是最后的毕业答辩与论文设计。
这个过程中,学校会有许多有关毕业生的信息要安排,事情要处理。
在进行课题设计的时候,难免会有一些格外的因素,如时间被耽误,在规定的时间中无法完成相应的任务;
有问题存在的时候,老师也恰巧也有事情,问题无法及时解决等一系列问题,都是要考虑在内的。
再有就是,最害怕在做系统的中途遇到系统崩溃而东西又无法保存;
或者是东西全部做好之后,忘记了备份,而更为不巧的是以染上了病毒,而致使几个月的辛苦付之东流。
这些是容易忽视的也是最容易出现的情况。
所以要在设计的时候做足这方面的准备,不让那种情况发生。
2.3.3分析结论
通过上面简要的分析,最后做出的结论是:
方案可以按照时间要求、保证质量的基础上运用MyEclipse与SQLServer2000数据库进行系统的开发。
2.4运行环境
操作系统:
windows2000server中文版、windows2003Server或者WindowsXPSp3
数据库:
SQLServer2000中文个人版
开发工具:
MyEclipse7.1
硬件配置:
CPU1.7GHz以上,内存512MB以上
3概要设计
3.1框架设计
本系统总体框架如图3-1所示。
(此图重画,TCP和UDP改为黑体字)
图3-1系统总体框架图
3.2拓扑结构
系统的拓扑结构如图3-2所示。
图3-2系统的拓扑结构图
现在不少即时通讯系统服务的内部拓扑中采用模式一;
也有极其个别系统在即时通讯服务上面采用模式二(例如,深圳腾讯的QQ服务中的即时通讯服务,发信者首先考虑直接与即时收信箱进行通讯,如果发现直接通讯超时,会转为使用服务器中转完成通讯)。
模式一是一种非常成熟的模式,大多数TCP/IP应用系统,例如SMTP服务、DNS服务、WWW服务等都是使用这种模式。
模式二对于模式一是一个技术上的修正,虽然这个修正带来了新的问题,但是其实用性是不可质疑的;
JQQ正是实用模式二作为服务模式。
JQQ的服务是由服务器构成的;
JQQ中每个实体都由一个寄主服务器管理。
个体必须向服务器注册,注册后就有可以控制的发信者和即时收件箱。
发信者是独立于即时通讯服务外的实体,而即时收信箱则存在于寄主服务器中。
JQQ的通讯系统中只有存在发送者和接收者两类实体。
注册后的用户必须在服务器上建立登记表,才能知道其他用户的存在,与其他用户进行交流。
1)TCP协议
TCP和UDP是TCP/IP协议族的两个主要的传输协议,TCP是面向连接的,UDP是面向无连接的,而实际上他们最大的区别在于为应用协议提供不同的服务,TCP协议为应用程序提供点到点的通信:
建立可靠的连接。
如果有故障发生,阻碍分组到达远程系统,或者服务器不接受连接,客户都会得到通知:
数据可靠的交付,故障而不能交付,发送方会得到通知;
具有流控的传输;
双工的传输,单个TCP连接允许同时双向传送数据流模式,TCP从发送方到接收方发送没有报文边界的字节。
2)UDP协议
UDP为应用程序提供多对多的通信,UDP在进行通讯的应用的数量上面,具有更大的灵活性。
多个应用可以向一个接收方发送报文,一个发送方向也可以向多个接收方发送报文。
UDP还可以使用底层网络的广播和组播设施交付报文:
UDP提供的是不可靠交付语义,报文可能丢失、重复或者失序,而发送方是得不到通知的;
缺乏流控制;
报文模式,当有数据交付的时候,必须制定报文边界。
3)传输层协议的选定
由于TCP和UDP的语义及其不同,如果要考虑应用协议所要求的语义,设计者就不能不在面向连接和无连接的传输协议间作出选择。
利用面向连接的TCP协议,可以大大简化应用协议的设计工作。
由于UDP不提供可靠的交付,无连接传输要求应用协议提供可靠性,并在必要时,使用一种称为自适应重传的复杂技术。
为现有的应用程序增加自适应重传比较困难,它需要程序员具有相当地专业知识。
选择TCP一个很大的缺点就是,建立和中止连接的三次握手(TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:
建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:
服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
客户端与服务器开始传送数据),使TCP比起UDP开销大。
在考虑是用UDP还是用TCP作为域名服务系统的运输层协议是,设计者往往陷入两难的境地。
一个理想的解决方案应该既能提供可靠的数据传输,又不需要专门的建立和释放连接,不需要报文的反段和重组,同时还能是两端的空闲状态所处的时间最短。
TCP什么都好,只可惜他需要建立和释放连接。
还有一个严重的问题就是TCP在空闲的连接上根本不发送任何分组。
假设客户与某个服务器建立了连接,并与之交换请求和响应,接着便崩溃了。
因为客户已经崩溃了,它就不会再发送任何请求了,然而,服务器到目前为止对它收到的所有请求都进行了响应,它便不会再向客户发送更多的数据。
这种情况下,服务器拥有分配给该连接的数据结构(包括缓存空间),这些资源不能被重新分配。
服务器是设计成始终运行的。
如果不断有客户崩溃,服务器就会耗尽资源(如套接字、缓存空间、TCP连接)从而中止运行。
3.3功能设计
系统功能设计,如图3-3所示。
图3-3系统功能设计图
3.2.1用户注册模块
用户需要正确填写自己的用户名、密码、真实姓名、性别、个性签名等信息,如果用户名合法且未被占用,则可以注册成功。
用户注册如图3-4所示。
(重画图3-4,3-5,3-6,3-7,3-8,3-9,4-1,4-2,4-3,方框里的字体要清楚)
图3-4用户注册流程图
3.2.2用户登录模块
用户需要正确填写自己的用户名、密码,如果验证成功,则可以进入到JQQ即时通讯系统主面板,与在线好友进行即时通讯。
用户登录如图3-5所示。
图3-5用户登录流程图
3.2.3分组管理模块
分组管理模块包括对分组的添加与删除。
添加分组过程中,分组不能为空并且不能有重复的分组。
删除分组过程中,只要选定要删除的分组,即可删除成功。
分组管理如图3-6所示。
图3-6分组管理流程图
3.2.4好友管理模块
好友管理模块包括对好友的添加与删除。
添加好友过程中,好友不能为空,不能加自己为好友,要添加的好友必须存在并且不能有重复的好友。
删除好友过程中,只要选定所属分组下的相应好友,即可删除成功。
好友管理如图3-7所示。
图3-7好友管理流程图
3.2.5查询用户模块
查询用户模块列出了除了自己的所有用户的基本信息包括是否在线,用户可以根据需要加为好友并进行通讯,对于在线状态的好友可以进行在线交流。
查询用户如图3-8所示。
图3-8查询用户流程图
3.2.6即时通讯模块
即时通讯模块是本系统最关键的环节与目的所在。
用户可以选择分组中的在线好友进行即时通讯,并且当交流完毕时自动保存聊天记录。
即时通讯如图3-9所示。
图3-9即时通讯流程图
3.2.7聊天记录模块
聊天记录模块主要记录了与相应好友的所有聊天内容,可以方便的浏览一些重要信息和谈论话题等。
3.4设计原则及一般要求
参照各模块的功能与具体的特点,设计的整个即时通讯系统应达到以下目的:
(1)稳定性。
整个系统应能稳定运行,硬件配置的局部改变不会影响整体的正常运行,其它系统的差错不会导致即时通讯系统无法正确运作。
(2)准确性。
系用户按操作要求操作产生的数据与数据库产生的变化应严格保持一致,杜绝错误、异常等情况的出现。
(3)安全性。
所有数据定时备份,错误的出现由系统自动记录备份文件,以备查验,避免用户误操作而造成不必要的损失。
(4)易使用性。
即时通讯系统的界面与操作人员的交互性好,用Client/Server(客户端/服务器)结构。
4系统设计
4.1模块设计
功能模块设计如表4-1所示:
表4-1功能模块设计表
功能模块
用户注册模块
1.用户注册
用户登录模块
1.用户登录
分组管理模块
1.添加分组
2.删除分组
好友管理模块
1.添加好友
2.删除好友
查询用户模块
1.查询用户
即时通讯模块
1.即时通讯
聊天记录模块
1.查看聊天记录
4.2即时通讯系统关系型数据库的实现
MicrosoftSQLServer2000是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS)。
SQLServer2000是为支持高容量的事务处理(比如在线订购录入、存货目录、记账或制造)以及数据仓库和决策支持系统而设计的。
它运行在MicrosoftWindowsNT4或MicrosoftWindows2000Server上—基于使用Intel处理器的网络。
也能够为其他的Microsoft操作系统提供很多客户端工具和网络接口。
由于SQLServer的开放结构,其他系统也能和它交互操作。
使用它可以完成事务处理、存储和分析数据以及创建新的应用程序。
其中SQLServer的RDBMS(RelationalDatabaseManagementSystem,关系型数据库管理系统)负责维护数据库中数据之间的关系,确保正确的存储数据和不违反定义数据之间的规则,而且在系统发生错误时将所有数据恢复到某个已知的、具备一致性的检查点上。
SQLServer2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
SQLServer2000的优点在于它能使用数据表示图或自定义窗体收集信息。
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,报填数据的完整和一致。
另外,合理的数据库结构将非常有利于程序的实现。
设计数据可系统是应该首先充分了解用户各个方面的要求,包括现有的以及将来可能增加的要求。
4.2.1数据库分析
即时通讯系统需求包括对用户信息、分组信息、好友信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JQQ 即时通讯 系统 设计 实现