您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 即时通信软件的分析与设计
基于P2P的即时通信软件的分析与设计第一部分需求分析说明书1引言1.1P2P介绍P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P还是英文PointtoPoint(点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较多,影响整机速度。图1.1P2P模式点对点技术(peer-to-peer,简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。但P2P并非纯粹的点对点技术,实为解作群对群(Peer-to-Peer)。在虚拟私人网络VPN(VirtualPrivateNetwork)中,也有P2P这个名称,它才是真正解作点对点(Point-to-Point)。下面试图用三句话来揭示P2P的影响:基于P2P的即时通信软件的分析与设计-1-对等联网:是只读的网络的终结(Peer-to-peeristheendoftheread-onlyWeb)对等联网:使你重新参与互联网(Peer-to-peerallowsyoutoparticipateintheInternetagain)对等联网:使网络远离电视(Peer-to-peersteeringtheInternetawayfromTV)如上文所言,P2P不是一个新思想,从某些角度看它甚至是整个最初创建互联网的最基本的思想。我们不妨花时间作一点回顾。P2P的分类依中央化程度分为纯P2P、杂P2P、混合P2P纯P2P:*节点同时作为客户端和服务器端。*没有中心服务器。*没有中心路由器。*如Gnutella,最初的eDonkey2000。杂P2P:*有一个中心服务器保存节点的信息并对请求这些信息的要求做出响应。*节点负责发布这些信息(因为中心服务器并不保存文件),让中心服务器知道它们想共享什么文件,让需要它的节点下载其可共享的资源。*路由终端使用地址,通过被一组索引引用来取得绝对地址。*如最原始的Napster。混合P2P:*同时含有纯P2P和杂P2P的特点。*如Skype,现在的eMule,天网Maze,Amazingstore等。依网路拓扑结构分为结构P2P、无结构P2P、松散结构P2P结构P2P:*点对点之间互有连结资讯,彼此形成特定规则拓扑结构。*需要请求某资源时,依该拓扑结构规则寻找,若存在则一定找得到。*如Chord、CAN。无结构P2P:*点对点之间互有连结资讯,彼此形成无规则网状拓扑结构。*需要请求某资源点时,以广播方式寻找,通常会设TTL,即使存在也不一定找得到。*如Gnutella。松散结构P2P:*点对点之间互有连结资讯,彼此形成无规则网状拓扑结构。*需要请求某资源时,依现有资讯推测寻找,介于结构P2P和无结构P2P之间。*如Freenet。BT说到P2P,就不能不提BT,这个被人戏称为“变态”的词几乎在大多数人感觉中与P2P成了对等的一组概念,而它也将P2P技术发展到了近乎完美的基于P2P的即时通信软件的分析与设计-2-地步。实际上BitTorrent(中文全称比特流,简称BT)原先是指一个多点下载的P2P软件。它不像FTP那样只有一个发送源,BT有多个发送点,当你在下载时,同时也在上传,使大家都处在同步传送的状态。应该说,BT是当今P2P最为成功的一个应用。如果解释一下的话,BT首先在上传者端把一个文件分成了多个部分,客户端甲在服务器随机下载了第N部分,客户端乙在服务器随机下载了第M部分。这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的第M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的第N部分。有一句话可以作为BT最为形象的解释就是:“我为人人,人人为我”。而最初听到此概念时,有人对我说,别用BT,会坏你的硬盘的!大概指的就是前一句。现在看来,没有贡献怎么会有获取?这大概最可以概括BT下载传输的精髓。工具软件BTJoy,将这一技术以软件的形式完美起来,这个诞生仅有一年的软件已经迅速热遍了整个网络——对于BT下载的爱好者来说,120G的硬盘都可以被迅速塞满!Usenet除了BT下载,另外一种下载方式就是利用Usenet上的资源。有人把他理解成p2p,其实并不正确。这种下载方式在国内并不为人所知,但在国外非常流行。主要原因是Usenet上的资源大多数是英文的或者其他语言,所以要求用户具有一定的英文水平。Usenet上的资源可以说是全球性的,而且下载速度极快,IP匿名,因此在西方国家是最受欢迎的网络下载工具。在新浪上可以下载到Usenet的工具,是非常好用的一款Usenet软件。1.2即时通信即时通信(IM)是指能够即时发送和接收互联网消息等的业务。1998年即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。随着移动互联网的发展,互联网即时通信也在向移动化扩张。目前,微软、AOL、Yahoo等重要即时通信提供商都提供通过手机接入互联网即时通信的业务,用户可以通过手机与其他已经安装了相应客户端软件的手机或电脑收发消息。2系统的功能结构基于P2P的即时通信系统的功能应该有以下几个基本的功能模块组成。登录认证与注册创建的功能;Peer间的即时通信的功能;文件交互功能;文件共享功能;其他的功能。基于P2P的即时通信软件的分析与设计-3-1、登录认证与注册创建的功能在程序启动后有一个登录与注册的界面,在这个界面上用户可以有两种选择。可以根据当前的频道列表显示的信息,选择当前已有的一个P2P频道,输入此频道的认证密码后,加入该频道。用户可以创建一个新的P2P频道,输入用户名称、频道的名称和认证密码后,一个新的频道就创建好了。2、Peer间的即时通信功能Peer间的即时通信,确切的说应该是同一频道内的所有Peer间的通信,这个通信过程包括如下两个方面:一方面:所有Peer间的广播通信,类似于多人聊天室,某一Peer发布的信息,在同一P2P频道内的其他所有Peer都能接受到此信息。另一方面;两个Peer间的私有通信,通信过程是再两个Peer之间进行的,其他Peer不参与这一过程,通信的消息内容对其他Peer不可见。3、文件交互功能文件交互功能包括文件的发送与接收,Peer一端可以向同一频道内的所有Peer发送文件,也可以接收同一频道内的其他任何Peer发送的消息。也就是说Peer可以在频道内广播发送文件,这样Peer之间可以进行任意的文件和数据的交互。4、文件共享功能文件的共享功能,指的是Peer一端可以将本地的文件目录共享出去,这样,在P2P频道内的其他所有Peer都可以访问这个共享目录,也可以从Peer列表中查看其他Peer共享出来的目录。在查看目录的同时,也可以查看共享的文件列表、文件内容等。5、其他功能除以上的基本功能外,系统还提供了一些其他必须的功能,如清屏操作的功能、系统服务消息、错误提示和系统的运行状态等。基于P2P的即时通信系统的功能结构图如图1.2所示基于P2P的即时通信软件的分析与设计-4-基于P2P的即时通信系统登录已有频道注册新频道即时通信功能文件交互功能目录共享功能其他功能广播消息通信系统服务消息清屏查看、下载共享的目录文件共享目录文件接收文件发送私人会话通信图1.2系统功能结构图3系统的运行流程系统的运行流程如图1.3所示基于P2P的即时通信软件的分析与设计-5-系统启动进入登陆、注册界面刷新频道列表输入新频道名称选择已有频道名称输入新频道密码进入频道操作的主界面输入频道认证密码设置共享目录发送文件接收广播消息建立私人会话向所有的Peer广播消息清屏操作Peer间消息交互存储文件到本地查看文件内容查看文件共享接收会话消息接收文件直接查看共享目录程序结束选择登陆已有频道注册登录密码错误图1.3系统的运行流程基于P2P的即时通信软件的分析与设计-6-4系统的层次组织结构一个即时通信系统应该有以下几个层次组成:显示模块:用户的UI操作界面;功能模块:用于完成即时通信、文件共享、文件传输等基本功能;消息模块:用于在网络上进行交互的各种数据信息的处理;网络模块:实现P2P的网络机制。系统的组织结构如图1.4所示显示模块登录认证和注册创建界面、频道界面、文件共享界面、私人会话界面等功能模块消息广播、目录共享、文件传输、即时通信等消息模块系统通知消息、会话消息、IP广播信息、文件内容信息等网络模块网络数据的加密、IP多点广播、频道信息广播等图1.4系统的组织结构即时通行系统的详细介绍如下:4.1界面显示模块界面指的是即时通行系统在PC机上运行所显示的图形用户界面,程序需要一个界面来提供各种操作的入口,利用界面来显示系统的运行过程,而且界面显示的结果要简单、布局合理。开始界面:程序启动的第一个界面,供用户加入和创建一个P2P频道。主界面:整个系统的主界面,包括聊天信息的显示、功能菜单、Peer列表等。基于P2P的即时通信软件的分析与设计-7-文件接收界面:当有peer向你发送文件时,单击文件接受按钮就是弹出文件接收的界面,可以显示文件内容没也可以将文件存储到本地。私人聊天界面:当两个peer间进行私人聊天时,会弹出一个私人的聊天界面,这两个peer间就可以进行私人的聊天,聊天信息对其他的peer间是不可见得。文件共享界面:主要用于peer文件共享的操作,可以显示并查看文件共享目录和文件的详细信息,并提供对共享文件的操作。文件选择对话框:准确的说他并不是系统所有的显示界面,因为本系统要用到文件发送和文件接收,文件共享,文件存储等操作,所以文件选择对话框的功能主要是方便用户浏览选择文件路径和目录。4.2功能模块就整个系统而言,功能有很多,如数据交互,文件共享,私人聊天是等,在这些功能上,文件共享和私人聊天在系统运行中,需要弹出单独的操作界面来执行这两个功能,这样,就需要有独立的功能子模块去进行实现。所以,在功能模块中主要就实现两个功能:分别是文件共享的功能和私人聊天功能。文件共享功能:此功能包括两个方面,一方面来自主动共享本地的目录,设置共享,一方面是查看其他peer的共享目录,也就是查看共享。设置共享:当用户单击主界面中的文件共享按钮时,弹出文件选择对话框,用户可以自由选择本地硬盘中的用户共享的目录,选择完成后,此目录的文件就全部共享出去了,其他的peer就可以查看。查看共享:需要查看当前P2P频道中存在的共享目录时也很简单,只需在peer列表中选择你要查看的peer节点并点右击,然后在弹出的快捷菜单中选择“查看共享目录”选项即可,这时就会弹出次peer共享目录的情况。频道广告功能:向网络中进行定时的广播,奖品到信息广播给所有的结点。私人聊天功能:私人聊天就是实现纯粹的P2P通道,整个通信过程在两个Peer之间完成,无需服务器的中专,在peer列表中,选择你要与之同心的peer结点名称并点击,在弹出的快捷菜单中选择“进行私人通信”选项,就会弹出一个聊天对话框。用户就可以在此窗口中进行1对1的即时回话了。4.3消息模块消息模块在本系统中是一个抽象的概念,系统中所有需要由网络发送的东西,都由消息模块来完成。根据系统的设计目标,在消息模块中要实现的基本需要如下:频道消息:在本系统中是通过一些P2P的频道来模拟P2P的网络的,每个P2P的频道就是一个为想的P2P的网络。Peer结点与频道之间的交互基于P2P的即时通信软件的分析与设计-8-都由频道消息来为难成,因而,频道消息简单的说就是peer结点饭送到P2P频道中的文本消息,包括频道名称信息,用户输入,输出信息等。私有聊天消息:私有聊天消息主要有两个Peer节点之
本文标题:即时通信软件的分析与设计
链接地址:https://www.777doc.com/doc-6296221 .html