
软件工程导论大作业
南京邮电大学即时通讯系统分析与设计
姓名:李卿
专业:软件工程
学号:B10040914
指导教师:陈志
2010/12/8
第一章 引言
摘要
即时通信IM(Instant Messaging)是目前Internet上最为流行的通讯方式,而各种各样的即时通信软件也层出不穷:服务提供商也提供了越来越丰富的通信服务功能。随着互联网的发展,即时通信的运用日益广泛,即时通信软件业方兴未艾。
点对点网络已经被越来越多的用户所需要并且作为一种标准的分发信息标准方式登堂入室,因为它的结构使得网络富有延展性,相较普通网络有更高的效率和更好的表现。P2P(peer—to—peer)网络是非中心化,自组织和动态的网络,并且为传统的客户端一服务器计算模型提供另外一种选择。客户端服务器(c/s)结构允许用户链接到某一个服务器,尽管服务器是可扩展的,但这总有。而P2P网络却拥有几乎无限的扩展可能。
本文首先描述了P2P技术的发展和现状,然后初步探讨了即时通信所涉及到的一些技术:如通讯协议、服务模式等;最后对现有的技术进行了对比和分析,提出了一些可能的改进方案,并且设计了一个基于P2P的即时通信系统。;本系统基于C++,使用VC作为开发工具。最终实现了多个用户可以点对点的进行即时通信。
关键词:P2P,即时通信,TCP,客户端,服务器
课题要求
通过本课题的最终设计,要求设计者实现一个基于P2P的即时通信方案,能搜索并记录双方网络IP地址,基于TCP协议进行文本内容的传输,并实现一对多发送文本信息的功能;要求设计者对基于P2P的即时通信技术有一个系统地、全面地了解,为基于P2P相关领域的软件开发打下一定的编程基础。
P2P模型简介
最近几年,P2P迅速成为计算机界关注的热门话题之一,财富杂志更将P2P列为影响Internet未来的四项科技之一。P2P打破了传统的Client/Server(C/S)模式,在网络中的每个结点的地位都是对等的,既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。P2P技术的特点体现在以下几个方面:
1.非中心化
网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。
2.可扩展性
在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。
3.健壮性
P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以组织的方式建立起来的,并允许结点自由地加入和离开。P2P网络还能够根据网络带宽、结点数、负载等变化不断地做自适应式的调整。
4.高性能/价格比
性能优势是P2P被广泛关注的一个重要原因。随着硬件技术发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。
5.隐私保护
在P2P网络中,由于信息的传输分散在各结点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,现这一机制依赖于某些中继服务器结点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。
6.负载均衡
P2P网络环境下由于每个结点既是客户端又是服务器,减少了对传统c/s结构服务器计算能力、存储能力的依赖,同时因为资源分布在多个结点,更好的实现了整个网络的负载均衡。
第二章 系统需求
系统目标
系统要实现的即时通信系统是一个简单、方便的通信系统,用户通过网上进行交互。此即时通信系统要可以方便用户之间进行交流,信息时发送,即时回复。这里的信息可以是文字,图像,视频和文件。
系统角色
1)Client:客户端,使用进行即时通信的人
2)MessageSender.-端对端传输消息或发送文件时的发送端
3)MessageReceiver:端对端传输消息或者文件时的接收端
其中,MessageSender和MessageReceiver从属于Client
系统用例概况
根据需求分析,开始系统的图形化建模。用例技术通过用例、执行者和用例以及用例之间的关系来描绘系统外在可见的需求情况,它是用户和开发者共同剖析系统功能的起点。
即时通信系统用例由以下组成。
1)注册用例是使用者通过注册成为用户的。
2)登录:连接服务器获得服务;
3)更改状态:更改自己在服务器的状态,状态分为:在线、隐身、离线三
种:
4)更改资料:更改自己的资料并保存在数据库服务器;
5)查找好友:从服务器获得好友信息;
6)管理好友列表:对好友进行添加、删除、分组操作;
7)个性化配置:对进行本地化配置;
8)传输信息:传送文本信息或者富文本信息给好友;
9)退出系统:从服务器退出,取消服务:
用户注册用例
1)填写注册信息
2)检查信息格式
3.)新注册申请
4)串行化数据
5)传输注册数据
6)生成新ID
7)添加新用户命令
8)在数据库中添加新用户
用户登录用例
1)输入登录信息
2)发送登录请求
3)验证登录信息
4)传输好友列表
5)传输留言信息
6)刷新在线用户列表
7)通知好友上线
8)改变好友状态
9)读取用户数据命令
10)从数据库中读取用户信息
重复登录用例说明:
1)输入登录信息
2)发送登录请求
3)验证登录信息
4)通知好友地址更改
5)更改好友地址
6)更改用户地址信息命令
7)在数据库中更改用户地址信息
更改状态用例说明:
1)更改状态
2)上线
3)隐身
4)离线
5)更改状态消息
6)通知好友状态变化
7)更改好友状态
8)更改用户状态命令
9)在数据库中更改用户状态数据
更改资料用例说明
1)输入更改内容
2)发送更改资料请求
3)返回反馈信息
4)更新用户资料命令
5)在数据库中更新用户资料
建立客户通信用例
建立客户通信用例说明:
1) 自定义查找
2)查找在线用户
3)高级查询
4)选择查询条件
5)查询好友请求
6)返回好友信息
7)查询好友命令
8)从数据库查询好友信息
客户信息传输用例
客户信息传输用例说明:
1)选择发送内容
2)加密信息
3)传输信息
4)解密信息
5)显示信息
退出系统用例
1)退出
2)发送退出消息
3)刷新在线用户列表
4)通知好友下线
5)改变好友状态
6)选择离线
7)关闭
8)更改用户状态命令
9)在数据库中更改用户状态数据
第三章 系统规划
1)全系统采用学籍信息识别注册,防止恶意注册发生
2)该系统面向全体师生开放,设置IP地址锁定,故该系统仅限校内网络连接使用
3)管理权限设置:
主服务器:完全管理权限,负责所有数据的调试运转及维护工作
校管理员:负责对服务器的维护及以下各级管理、用户的的权力设置,人数2-3名
系管理员:负责对自身所在院系的信息更新及维护工作,具有增删教职工、干部、学生使用功能的管理权限
用户:分为教职工、干部和学生三类。其中教职工及干部具有专属群发功能
其他:其他部门如学生会、社团组织、食堂、超市等经申报批准后可给予校管理员及以下管理权限
4)该系统内嵌南邮BBS、FTP、电邮、聊天室、在线课堂等模块,方便全校师生的服务使用
5)该系统与智慧校园卡系统相连,方便查询使用
附:该即时通讯系统(简化)可内嵌手机系统,可在校园服务区内免费联网使用。具体服务需与当地通信运营商合作。
第四章 核心算法思想
1服务器端检查用户是否仍然在线的算法
设计思想
客户端的用户,可能因为某种异常情况,或死机,或执行非法操作,或忽然掉线,网络发生故障等,可能使客户端程序意外退出。没有或无法发送回下线消息,也有可能发送的下线消息丢失。所以,必须以一定的时间间隔去检查每一个在线的用户,看其是否仍然在线。因为我需要时常发送回当前在线的总人数,所有,可以把发送这条消息作为检查。若发送无响应,则表示用户已经离线了。
算法简述
以每TimerSpanServer的时间为间隔,向每个在线(或隐身)的用户发送当前有多少人在线的消息,成功就继续。若发送不成功(客户端无响应),就判断此用户不在线上,并从Friends表中查出所有把此人当做朋友的人,向他们发送此人下线的消息(不处理此时发送不成功的情况)。
2服务器端处理用户请求的算法
算法及描述
侦听到用户的请求,就会新建一个线程进行处理。根据调用线程的函数传来的参数,根据接受到的数据,取出其类型,根据不同的类型的数据,根据规定的流程进行分类处理用户请求。
第五章 结论
25
近年来P2P正成为应用和研究的热点,以Napster和Gnutella为代表的P2P软件受到用户的热烈欢迎,导致这些P2P系统的规模急剧增加。本软件即是基于P2P的即时通信软件,其以TCP协议为文本信息传输的基本协议,基本达到了任务书对本次课题的要求。本文主要对本软件服务器端的设计作了比较详细的介绍,并对服务器端进行了初步的开发。而客户端的设计有很多需要完善的地方。如果要使本系统成为一个实际应用系统并在局域网上实际应用,除了完成客户端的功能外,笔者认为还应做以下的完善和开发工作:
1.进一步完善底层通讯协议,使能够更好的处理数据的发送和接受。
2.多线程下的对临界数据访问的问题。
3.对发送的数据,进行一定的加密措施,使之更加安全可靠。
4.对本地用户的密码的加密问题,在本程序中,没有对本地密码进行加密。
5.在客户端系统,功能的设置有待进一步丰富,功能的实现还有待完善和改进。
6.在客户端处理中,响应从服务器发来的数据,是在主线程里执行的,所以,当接受数据忙时,就会出现没有响应的情况。进一步考虑,如何能改善这种情况。
参考文献
[1]DanaMoore,John Hebeler.对等网[M].清华大学出版社.2003年2月.
[2]张泊平.P2P网络的应用与发展[J].科学技术与工程.2005年9月.第18
期.PP.1271—1275.
[3]Dreamtech Software Team.Peer to Peer Application Development【M】.Hungry Minds,
November.200 1.
[4]Douglas E.Comer.David L.Stevens.TCPflP网络互连(第3卷):客户/服务器编程及应
用[M].人民邮电出版社.2002年1月.
[5]马丁著胡琛沙东键译.网络:P2P EM2,2000年.
[6]胡峪刘静.VC++编程技巧与示例[M].西安电子科技大学出版社,2000年
[7]Dreamtech软件研发组吴文辉陈建荣肖月国尊等译.对等网络编程源代码解析.电
子工业出版社,2002年8月.
[8]夏云庆编著Visual C++6.0数据库高级编程北京希望电子出版社
[9]冯登国.计算机通信网络安全.北京:清华大学出版社,2001
[10]单国栋,戴英侠,王航.计算机漏洞分类研究.计算机工程,2002,28(10):3-6
[11]段兴等,(visual basic数据库实用程序设计100例》人民邮电出版社
[12]方美琪,《软件开发工具》,经济科学出版社
[13]李建中,王珊.《数据库系统原理(第2版)》电子工业出版社,2004.9
[14]李昭原,刘又诚《数据库系统原理与技术》北京航空航天大学出版社
[15]Applied Microsoft.NET Framework Programming(美)Jeffrey Richter著清华大
学出版社
[16]Computer Emergency Response Team/Coordination Center.CERT/CC Vulnerability
Disclosure Policy.2000 October 09.
[17]Duc.A.Tran,Kien,A.Hua,et al,A Peer-to-Peer Architecture for Media Streaming,IEEE
JSAC Special Issue onAdvances in Overlay Networks[J],PP.171·172,2003.
[18]Zhao,B.Y,Kubiatowicz,J.and Joseph,A.,Tapestry:An infrastructure for fault-tolerant
wide—area location and routing[J],IEEE JSAC Special Issue on Advances in Overlay Networks,
PP.1—28,2001.
[19]Stephen E.D.,Deborah E.,Dino.Fetal,An Architecture for Wide·area Multicast Routing叨,
IEEE/ACM Transaction on Networking,4(2),April 1 996,PP.1 26—1 35.
[20】Castro.M,Druschel.B Kermarrec.A·M et al,A large-scale and decentralized
application-level multicast infrastructure【J】,IEEE Journal on Selected Areas in Communications
(JSAC)(SpeciM issue On Network Support for Multicast Communications),PP.1 00-1 1 0,2002.
[21]Kien.A.Hua,Mounir A.Tantaoui,WaUapak Tavanapong,Video Delivery Technologies for
Large—Scale Deployment of Multimedia Applications【J】,Proceedings of The IEEE,V01.92,No.
9,PP.1-13,September 2004.
[22]Due.A.Tran,Kien,A.Hua,ZIGZAG:An Efficient Peer-to-Peer Scheme for Media Streaming叨,IEEE JSAC Special Issue on Advances in Overlay Networks,PP.1 62·1 73,2003.
