基于BS模式的即时通信软件设计.doc
- 文档编号:7393979
- 上传时间:2023-05-11
- 格式:DOC
- 页数:31
- 大小:529.50KB
基于BS模式的即时通信软件设计.doc
《基于BS模式的即时通信软件设计.doc》由会员分享,可在线阅读,更多相关《基于BS模式的即时通信软件设计.doc(31页珍藏版)》请在冰点文库上搜索。
学号:
本科生毕业论文
论文题目:
基于B/S模式的即时通信软件的
设计与实现
作者:
专业班级:
指导教师:
2011年4月30日
摘要
即时通讯(InstantMessaging)是目前用户上网最通用的通讯方式,而各种功能强大的即时通讯软件也层出不穷;随着Internet的普及和宽带技术的成熟,即时通讯软件几乎是每一个上网用户都必备的联络工具,时下当你打开电脑上网的第一件事情就是登陆你的即时通讯软件。
即时通讯软件除了能够让您迅速地在网上找到自己的朋友和工作伙伴,还可以实时交谈和传递信息,而且,运营商通过不管的更新加强功能使得即时通讯软件拥有了更多实用的功能例如文件共享、语音聊天、网络会议等功能。
当即时通讯在网络高速发展的今天已经成为人们通过网络进行交流的主要方式之一,与Email相比,它具有双向互动性和即时性。
现在已经有多种比较流行的即时通讯软件,诸如QQ,MSN等,但都是基于C/S模式的,需要下载客户端进行安装,用户名、密码、聊天记录等也是存放在本地机器上,在安全性和方便性上都有所欠缺。
B/S(浏览器/服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。
web-talk是基于B/S的模式的即时通讯系统,通过IE等浏览器直接完成客户端的登录、数据传输,更加便捷了用户之间的通讯和交友;使用有关Ajax技术,无需等待页面的刷新,实现了即时通讯的功能。
在系统设计与建模过程中,使用了UML和面向对象的分析、设计方法,本系统基于.NETFramework1.1,使用VisualStudio.NET2003作为开发工具,还运用了相关的.NET中的一些技术运。
关键词:
Web-talk;即时通讯;B/S;Ajax
Abstract
InstantmessageiscurrentlythemostpopularwaytocommunicateontheInternet,bythewayvariousinstantmessagesoftwarehavebeencontinuouslyappearing;serviceprovideroffersmoreandmorecommunicationservicesnowadays.AsthedevelopmentoftheInternet,instantmessagewillbemorewidelyusedthanbefore.Thisarticlefirstdescribesthedevelopmentandthecurrentstatusoftheinstantmessage.Thenitdiscussesthetechnologiesoftheinstantmessagesuchascommunicationprotocol,servicemodeandfriend-makingmode.Itmakesacomparisonandanalysiswithrespecttothecurrenttechnologyandalsoprovidessomepossiblesolutionsforimprovement.Atlastitdesignsanddevelopsaninstantmessagesystemnamedweb-msn.
Theweb-talksystemisaninstantmessagesystemwhichbasesonb/smode.YoucanloginandinteractwithitthroughIE.Itmakescommunicationandfindingfriendsmoreconveniently.ItisdesignedusingAjax,whichdoesn’tneedtowaitforrefreshingpage,socarryoutcommunicationinstantly.
Thissystemisbasedon.NETFramework1.1andusesVisualStudio.NET2003asthedevelopmenttool.Itaccumulatedsomenewtechnologyin.NETintooursystem.Duringtheprocessofdevelopment,itusedthepopularreconstructiondevelopmentmethod,whichoptimizesthesystemdesign.
Keywords:
Web-talk;InstantMessage;B/S;Ajax
目录
第1章绪论 1
1.1导论 1
1.2研究现状 2
1.3研究目的及意义 2
1.4论文组织结构 2
1.5本章小结 2
第2章系统设计和相关技术 3
2.1应解决的问题 3
2.2需要实现的功能 3
2.3关键技术-AJAX简介 3
2.4“即时”技术的选择 4
2.5本章小结 5
第3章软件系统的实现 6
3.1开发环境介绍 6
3.2需求分析 6
3.3即时通信系统需求 8
3.4WEB-TALK的模型选择 9
第四章数据库和功能模块设计 11
4.1数据表设计 11
4.2存储过程设计 12
4.3系统功能分析与设计 12
4.4系统模块设计 14
4.4.1注册模块 14
4.4.2登录模块 15
4.4.3传输信息模块 16
4.4.4退出系统模块 16
4.5本章小结 20
第5章系统测试 21
5.1测试介绍及测试内容 21
5.2测试遇到的问题 21
5.3测试截图 21
第6章总结和展望 23
参考文献 24
致谢 25
III
第1章绪论
1.1导论
随着Internet的普及和宽带技术的成熟,即时通讯软件几乎是每一个上网用户都必备的联络工具,时下当你打开电脑上网的第一件事情就是登陆你的即时通讯软件。
即时通讯软件除了能够让您迅速地在网上找到自己的朋友和工作伙伴,还可以实时交谈和传递信息,而且,运营商通过不同的更新加强功能使得即时通讯软件拥有了更多实用的功能。
例如文件共享、语音聊天、网络会议等功能。
,在中国,腾讯QQ使用是最为普遍的,用户群涵盖面很广,几乎成为我们生活中的一部分。
当然除了腾讯QQ国内还有很多其他的即时通讯软件,拥有各自的用户群体。
例如新浪UC、多玩YY等。
即时通讯软件最早发布于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万大关,如今不同年龄层的用户都有使用QQ的。
腾讯的即时通讯系统也开始往多平台通讯发展,如今已经成功将即时通讯与手机短信息(SMS)成功结合起来,当下利用新兴3G等无线网络和多平台操作系统的应用手机移动QQ已经逐渐步入成熟期,在移动平台上的各种功能十分强大,而且用户群数量更是显著增加,大有赶超传统的C/S电脑模式。
信息时代的快速发展,造就了即时通讯软件涉及和影响的越来越高反的领域,其市场竞争也越来越激烈。
腾讯QQ因用户群体庞大,当之无愧的牢牢控制着国内这个大市场,其他即时通讯公司纷纷转换发展策略开发不同领域的即时通讯软件,例如新浪UC就是专注于游戏用户群的一款游戏语音即时通讯软件。
1.2研究现状
纵观目前我们使用的即时通讯软件,都是基于C/S模式的,需要在网站下载客户端进行安装,使用过后用户名、密码、聊天记录等也是存放在本地机器上,在安全性和方便性上都有所欠缺。
目前各大即时通讯公司也开始着手向WEB平台这一领域发展,已达到更安全更方便用户的需求,基于WEB的即时通讯平台,在一定程度上能够避免这些问题,并且软件小巧使用方便无需安装,设计一款基于WEB的即时通讯软件对于现阶段的学习和研究,都是极为有意义的,设计一个基于B/S模式的IM软件,可以通过IE等浏览器直接完成客户端的登录、数据传输、好友信息分组管理、状态更新、两人以及多人的文字聊天等功能。
1.3研究目的及意义
作为计算机专业的学生,即时了解和掌握流行的即时通讯机制并且应用到实践过程中,将极大的提高自己的设计和开发软件的积极性;提升自己的理论和技术水平,本毕业设计的目的主要是为了综合运用以前所学知识(包括以前所学的一些关于网络技术、网络协议、数据库、编程技术等相关知识)的能力并了解和学习当下流行的开发模式,为以后类似的开发积累经验;同时,开发出来的作品也可以真正运用到我们日常生活当中,方便局域网内大家的沟通和交流。
1.4论文组织结构
本论文分为五个部分,首先对本课题的研究内容的现状、发展趋势和研究意义做了大概的介绍;其次,对本系统应具备的功能和研究技术进行介绍;再次,对各功能的具体实现进行详细设计;之后,对各个功能进行测试,实现整个系统;最后,讨论系统的不足和展望,为进一步开发做准备。
1.5本章小结
本章主要是对所研究的内容做一个大致的介绍,涉及到研究内容的发展现状,研究目的及意义,是对论文的一个整体把握。
第2章系统设计和相关技术
2.1应解决的问题
1)服务系统模型的选择;
2)实时查看在线好友列表;
3)向在线好友发送即时消息;
4)实时接收在线消息并且弹出提示;
5)状态的即使切换(在线,隐身等)。
2.2需要实现的功能
1)实现用户注册、登录、退出、更改状态等功能;
2)实现文本信息发送;
3)实现搜索好友,添加好友,删除好友技术;
4)实现消息的提示功能;
5)实现设置好友权限功能。
2.3关键技术-Ajax简介
Ajax是异步JavaScript和XML(AsynchronousJavaScriptandXML)的英文缩写。
“Ajax”这个名词的发明人是JesseJamesGarrett,而大力推广并且使Ajax技术炙手可热的是Google。
Google发布的Gmail,GoogleSuggest等应用最终让人们了解了什么是Ajax。
Ajax的核心理念在于使用XMLHttpRequest对象发送异步请求,最初为XMLHttpRequest对象提供浏览器支持的微软公司。
早在1998年,微软公司开发Web版Outlook时,就已经以ActiveX控件的方式为XMLHttpRequest提供了支持。
Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。
这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。
使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。
实际上,Ajax不是一种技术,而是几种技术。
每种技术都具有独特之处,合在一起就形成了一个功能强大的新技术。
Ajax包括:
1)XHTML和CSS;
2)使用文档对象模型进行动态显示和交互;
3)使用XML和XSLT进行数据交互和操作;
4)使用XMLHttpRequest进行异步数据接收;
5)使用JavaScript将它们绑定在一起。
2.4“即时”技术的选择
聊天系统实现的关键在于其实时的特性,包括状态的实时改变,消息的实时收发,状态的实时切换等,而传统的Web应用采用同步交互过程,这种情况下,用户首先向Web服务器发送一个请求,然后Web服务器根据用户请求的内容,执行相应的任务,并向用户返回结果。
这是一种不连贯的用户体验,在服务器处理请求时,用户只能等待,此时浏览器显示的页面是空白的,这也就是通常所说的“白屏”现象,应用此种技术肯定实现不了即时通讯所要求的效果。
所以就需要寻求一种新的技术来实现本系统所要求的即时的效果,而Ajax恰好弥补了Web应用的这一缺点。
与传统的Web应用不同,Ajax采用了异步交互的方式。
它在用户和服务器之间引入了一个中间媒介,从而改变了同步交互过程中的“处理-等待-处理-等待”模式。
用户的浏览器在执行任务时即装载了Ajax引擎。
该引擎是用JavaScript语言编写的,通常位于一个隐藏的框架中,负责转发用户界面和服务器之间的交互。
Ajax引擎允许用户和应用系统之间的交互以异步的方式进行,独立于用户与Web服务器之间的交互。
现在,可以通过Ajax引擎向Web服务器发送请求。
所以本系统决定采用Ajax来实现即时通讯各个部分“即时”效果的实现。
使用Ajax可以带来的好处有以下几个方面:
1.减轻服务器的负担。
Ajax的原则是“按需取数据”,可以最大程度地减少冗余请求,减轻服务器的负担。
2.无需刷新页面,减少用户心理和实际的等待时间。
特别是在读取大量数据时,不会像刷新页面那样出现白屏的情况,Ajax使用XMLHttpRequest对象发送请求并且得到服务器响应,在不重新载入整个页面的情况下,用JavaScript操作DOM更新页面。
因此在读取数据的过程中,用户所面对的不是白屏,是原来的页面内容,只有在数据接收完毕后才更新相应部分的内容。
这种更新是瞬间的,用户几乎感觉不到。
3.带来更好的用户体验。
4.可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器负担,充分利用宽带资源,节约空间和宽带租用成本。
5.可以调用外部数据。
6.基于标准化的并广泛支持的技术,不需要下载插件或者小程序。
7.进一步促进页面呈现与数据的分离。
2.5本章小结
本章主要对本系统的的相关技术进行了介绍,对基于B/S即时通信原理有一定的了解,对数据信息在网络中的传输的原理都有进一步认识,对设计本系统构建了一定的理论体系。
第3章软件系统的实现
3.1开发环境介绍
(1)vs2003开发环境介绍
VisualStudio是微软公司出品的一款大型应用软件,是一套完整的开发工具集,它主要用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。
VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE)。
利用此IDE可以共享工具且有助于创建混合语言解决方案,使程序可以使用不同的语言共同开发。
NET开发平台由一组用于建立Web服务应用程序和Windows桌面应用程序的软件组件构成,包括.NET框架(Framework)、.NET开发工具和ASP.NET。
VisualStudio2003的集成开发环境中为开发人员提供了大量的实用工具以提高工作效率。
这些工具包括了自动编译、项目创建向导、创建部署工程等。
(2)SqlServer2000介绍
SQLServer2000由一系列相互协作的组件构成,能满足最大的Web站点和企业数据处理系统存储和分析数据的需要。
SQLServer构架各种组件通过何种方式发挥合力,更富成效地管理数据。
SQLServer2000数据库引擎提供完整的XML支持。
它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。
SQLServer2000程序设计模型与WindowsDNA构架集成,用以开发Web应用程序,并且SQLServer2000支持EnglishQuery和Microsoft搜索服务等功能,在Web应用程序中包含了用户友好的查询和强大的搜索功能。
(3)C#语言介绍
C#是一种语言,它是专门为了微软的.NET战略而设计的一种语言.C#也叫C#.Net。
3.2需求分析
开发一个软件首先要进行系统需求分析,其主要工作是确定系统的规模和范围,确定软件的总体要求以及所需要的硬件环境和支撑软件,确定待开发软件与外界的接口,根据用户的情况确定软件对操作的要求,以及待开发软件总体上的约束和限制。
系统需求分析的过程实际是一种解决问题的活动,需要系统需求者与系统开发者之间进行反复商讨并达成一定的共识。
在进行系统需求分析时所要考虑的项目和解决问题时所产生的结果一般包括:
分析计划、项目与用户的联系、系统目标、现行系统、数据元素及结构、向用户做调查、对其他系统的调查、各种方案、选择设计方案、结构分析和下一阶段的计划等通过与教师对系统要实现的功能进行交流和对QQ等即时通讯软件的分析系统需要满足来自消息系统,用户系统,好友系统。
用户可以即时申请账号密码并使用申请信息登陆系统。
登陆后可以对自己的状态进行修改,可以添加删除好友并且可以对好友进行分组。
在与本系统的主要使用对象(即教师)进行反复的商讨中,我们确定本系统应该实现以下功能:
一般即时消息格式需求:
①所有实体必须至少使用一种消息格式;
②一般即时消息格式必须定义发信者和即时收件箱的标识;
③一般即时消息格式必须包含一个让接收者可以回消息的地址;
④一般即时消息格式应该包含其他通讯方法和联系地址,例如电话号码,邮件地;
⑤一般即时信息格式必须允许对信息有效负载的编码和鉴别(非ASCII内容);
⑥一般即时信息格式必须反映当前最好的国际化实践;
⑦一般即时信息格式必须反映当前最好的可用性实践;
⑧必须存在方法,在扩展一般即时消息格式的时候,不影响原有的域;
⑨必须提供扩展和注册即时消息格式的模式的机制。
可靠性需求
协议必须存在机制,保证即时消息成功投递或者投递失败的时候,发信者获得足够的信息。
性能需求
①即时消息的传输必须足够的迅速;
②即时消息的内容必须足够丰富;
③即时消息的长度尽量足够的长。
3.3即时通信系统需求
注册需求
①即时通讯系统允许多个用户注册;
②一个用户可以注册多个ID;
③注册所使用的帐号类型为数字或者字母;
④注册新用户时必须填写符合要求的信息。
通讯需求
①用户可以传输文本消息;
②用户的消息可以中转至服务器;
③用户可以从服务器获取中转的好友消息;
好友管理需求
①用户可以查询好友;
②用户可以添加好友;
③用户可以添加多个人为好友,一个用户可以被多个人添加为好友
④用户可以删除好友;
⑤用户可以将好友放在多个组中;
⑤用户的好友一次只能属于一个组。
状态切换需求
①用户可以选择登录状态;
②登录完成后用户可以切换状态(在线,隐身);
③用户可以注销登录。
查看在线好友需求
①用户登录时列出所有在线好友;
②用户可以看到新近登录的好友;
③用户将不在看到临时登出的好友。
3.4web-talk的模型选择
即时通讯服务有两个实体:
发送者和即时收信箱。
即时通讯协议定义了即时通讯服务、发信者和即时收信箱之间的交互作用。
即时通讯服务与其他邮件服务不同之处在于,即时消息本身足够的小,便于快速交付到即时收件箱。
个体,用户代理,即时通讯系统的模型如图表示:
1.即时通讯系统模型发信者或者即时收信箱的身份鉴别
①不同的收信箱有不同的身份鉴别需求。
②不同的旁观者有不同的身份鉴别的需求。
③服务内部可能存在多服务器或者多代理服务器。
也就是说一个即时通讯服务的逻辑的连接,内部可能有复杂的重定向和代理结构。
代理服务器即时收信箱的身份与其他服务器交换即时消息。
④服务并不需要一个服务器,可以通过发信者和即时收信箱之间的直接通讯实现。
⑤涉及与其他即时通讯服务的情况,可能会有—定的内部机制。
个体还可以通过收件箱用户代理设置交付规则(DeliveryRules)限制即时通讯服务把即时信息交付到即时收信箱。
2.即时通讯系统服务拓扑模型
现在不少即时通讯系统服务的内部拓扑中采用模式一;也有极其个别系统在即时通讯服务上面采用模式二。
模式一是一种非常成熟的模式,大多数TCP/IP应用系统,例如SMTP服务、DNS服务、WWW服务等都是使用这种模式。
模式二,对于模式一是一个技术上的修正,虽然这个修正带来了新的问题,但是其实用性是不可质疑的;WEB-MSN正是实用模式二作为服务模式;
web-talk的服务是由服务器构成的;web-talk中每个实体都由一个寄主服务器管理。
个体必须向服务器注册,注册后就有可以控制的发信者和即时收件箱。
发信者是独立于即时通讯服务外的实体,而即时收信箱则存在于寄主服务器中。
web-talk的通讯系统中只有存在发送者和接收者两类实体。
注册后的用户必须在服务器上建立登记表,才能知道其他用户的存在,与其他用户进行交流。
S1
S3
S2
C1
C2
C3
客户端—服务器星型结构
服务器—服务器对等结构
客户端
一
S1
S3
S2
C1
C2
C3
客户端—服务器星型结构
服务器—服务器对等结构
客户端—客户机对等结构
模式二
C
S
服务器
客户端-客户连接
户端—客户端连接
客户端—服务器连接
服务器—服务器连接
第四章数据库和功能模块设计
4.1数据表设计
设计数据库应该具备数据库的基本知识和数据库设计技术,计算机科学的基础知识和程序设计的方法和技巧及软件工程的原理和方法应用领域的知识。
根据本系统的特点和要求,通过对整个系统运行过程和数据流程分析,得出本系统的实体表:
用户信息表:
users;聊天信息数据表:
message;users变化监控表:
global_info。
经过数据库分析与设计得到数据库的逻辑结构。
本系统使用MicrosoftSQLServer2000为数据库开发工具;创建名为msn数据库根据各种功能的实现以及考虑到将来系统功能上的扩展,设计如下数据项和数据结构:
用户信息数据表:
users
中文名称
字段名
字段类型
字段长度
是否允许为空
备注
登录名
username
varchar
50
notnull
主键
用户昵称
nickname
varchar
50
null
密码
password
varchar
50
notnull
登录状态
status
int
4
notnull
最后登录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BS 模式 即时 通信 软件设计