已阅读5页,还剩77页未读, 继续免费阅读
(计算机应用技术专业论文)基于net框架的视频会议系统的研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东理工人学硕士学位论文 摘要 摘要 随着i n t e r a c t 的普及、网络性能的改善,越来越多的企事业单位和个人借助- f 网 络进行信息的交流和发布。尤其是近年来出现的视频会议系统,能够使用户摆脱地域 限制,进行实时的语音视频交流,既节省了参加会议的时间和经费,又消除了交通事 故、传染疾病等各种潜在的危害,受到越来越多用户的青睐,也成为计算机网络应用 领域研究的一个热点。 本文主要包括五部分。第一部分介绍用户需求和系统整体开发流程。第二部分对 构建视频会议系统的几项关键技术进行研究并给出解决方案,包括音频,视频捕获、 编码、回放,流媒体数据在i n t e r a c t 上的传输,n a t 穿透。第三部分进行用例建模, 根据用户需求建立用例模型,对每一用例的事件流给出详细的文字描述。第四部分是 详细设计和用例实现,以顺序图或者活动图的形式描述了用例实现的具体过程,介绍 了设计模式、多线程、网络编程等技术在本系统中的应用和实现。第五部分是结论, 对本文所做工作进行总结,并对系统的完善提出建议。 本系统具有以下特点:( 1 ) 自2 够穿透n a t ;( 2 ) 流媒体的传输采用i p 组播和单播两 种方式;( 3 ) 以用例为驱动,以面向对象思想为指导,采用多层应用程序架构,充分 使用设计模式,从而具有良好的体系结构和可扩充性;( 4 ) 基于n e t 框架,系统的开 发周期短,调试过程简单,可维护性好。 关键词:视频会议,n e t , d i r e e t s h o w , n a t , 设计模式 l i a b s t r a c t w i t ht h ep o p u l a r i z a t i o no ft h ei n t e m e ta n dt h ei m p r o v e m e n to fi t sp e r f o r m a n c e ,m o r e a n dm o r ee n t e r p r i s e s ,o r g a n i z a t i o n sa n dp e o p l eu s en e t w o r kt od i s t r i b u t ei n f o r m a t i o na n d c o m m u n i c a t ew i t he a c ho t h e r e s p e c i a l l yt h ev i d e oc o n f e r e n c i n gs y s t e m ,w h i c hc a nm a k e u s e r sf r e ef r o mt h er e s t r i c t i o no fd i s t a n c e ,p r o v i d e su s e r sac o n v e n i e n tw a y t oc o m m u n i c a t e i nt h ef o r mo fa u d i o v i d e o t h ev i d e oc o n f e r e n c i n gs y s t e mc a nn o to n l ys a v et h et i m ea n d e x p e n s eo f t h eu s e r st ot a k ep a r ti nt h ec o n f e r e n c eb u ta l s og e t “do ft h ep o t e n t i a ld a n g e ro f t r a f f i ca c c i d e n t sa n di n f e c t i o u sd i s e a s e s i ti sb e c o m i n gah o t s p o to ft h ec o m p u t e r a p p l i c a t i o nr e s e a r c hf i e l d t h e r ea r ef i v es e c t i o n si nt h i sp a p e r t h eu s e rr e q u i r e m e n t sa n dt h ed e v e l o p m e n t w o r k f l o wo ft h es y s t e ma g ei n t r o d u c e di nt h ef i r s ts e c t i o n 。i nt h es e c o n ds e c t i o n , s o m ek e y t e c h n o l o g i e st ob u i l dt h ev i d e oc o n f e r e n c i n gs y s t e ma r es t u d i e d ,i n c l u d i n ga u d i o v i d e o c a p t u r e ,c o d i n g d e c o d i n g ,p l a y b a c k ,t h et r a n s p o r to fs t r e a m i n gm e s ao v e rt h ei n t e m e t ,a n d n a tt r a v e r s e i ns e c t i o nt h r e e ,w eb u i l du pu s ec a s em o d e lo ft h es y s t e m s e c t i o nf o u r i n t r o d u c e sd e t a i ld e s i g no ft h es y s t e m i nt h i ss e c t i o n ,s o m eu m l s e q u e n c ed i a g r a m so r a c t i v i t yd i a 鲈a m sa r eg i v e nt od e m o n s t r a t et h ei m p l e m e n t a t i o no ft h eu s ec a s e s s o m eo t h e r t e c h n i q u ed e t a i l s ,i n c l u d i n gd e s i g np a t t e r n s ,t h r e a d i n ga n dn e t w o r kp r o g r a m m i n g ,a r ea l s o d i s c u s s e di nt h i ss e c t i o n t h el a s t s e c t i o n ,s e c t i o nf i v e ,c o n c l u d e st h i sp a p e rb y s u m m a r i z i n gt h em a i nw o r ko ft h i sp a p e ra n dp r o p o s i n gs o m ei m p r o v e m e n t so ft h es y s t e m t h i ss y s t e mh a st h ef o l l o w i n gf e a t u r e s f i r s t ,i t 啪t r a v e r s en a t s e c o n d i tu s e sb o t h m u l t i c a s ta n du n i c a s tt ot r a n s p o r ts t r e a m i n gm e d i a t h i r d ,f o l l o w i n gt h eu s ec a s ed r i v e n p r o c e s sa n do o a o o dt h i n k i n g , a d o p t i n gn - t i r e sa r c h i t e c t u r e ,m a k i n gu s eo fd e s i g n p a t t e r n s ,t h i ss y s t e mi sw e l ls t r u c t u r e da n de x t e n s i b l e f o r t h ,b a s e do n n e tf r a m e w o r k , t h i ss y s t e mh a sas h o f td e v e l o pl i f ec y c l ea n di se a s yt od e b u ga n dm a i n t a i n k e y w o r d s :v i d e oc o n f e r e n c i n g ,n e t , d i r e c t s h o w , n a t , d e s i g np a t t e r n s i l l 山东理工大学硕士学位论文 独创性声明 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得山东理工大学或其他教育机构的学位或证书 丽使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示了谢意。 研究生签名:;小继磊 时间:2 p 。磊月f 伊曰 关于论文使用授权的声明 本人完全了解山东理工大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件和磁盘,允许论文被查阅和借阅;学校可以用不同方式在不同媒体 上发表、传播学位论文的全部或部分内容,可以采用影印、缩印或扫描等复制手段保 存、汇编学位论文。( 保密的学位论文在解密后应遵守此协议) 研究生签名:手卜继忐时间:土p 口6 年5 月9 日 铷虢多黜时间新月留月 山东理工大学硕士学位论文 第一章绪论 1 1 课题来源及意义 第一章绪论 视频通信真正实用化是2 0 世纪9 0 年代初,以国际电信联盟u 建立了h 3 2 0 标准 为标志。各个硬件视频会议厂家分别都推出基于h 3 2 0 标准的视频会议系统,如p o l y c o m , v c o n ,v t e l ,r a d v i s i o n 等厂家。基于硬件的视频会议系统由于以下原因,未能得到广泛 使用。 首先,在9 0 年代以前,这些系统一直使用专用的编译码硬件和软件,会议呼叫的各 终端使用的编译码器必须来自同一个厂商,否则不能正常工作,这种非标准化系统产品 的使用极大阻碍了视频会议领域的发展。 其次,这种基于硬件的视频会议系统价格昂贵,这也让以效益为中心的企业望而却 步【3 j 。终端和m c u 设备的价格不菲,再加上h 3 2 3 系统对网络的要求很高,往往要通过 接专线或者拉光纤的方式才能满足要求,这方面的开销也是一个不小的数目。 第三,系统必须在专用的网络内才能使用。如果用户离开了这个专用网络,则无法使 用视频会议系统进行交流。 在这种形势下,出现了基于软件的视频会议系统。这种软件视频会议系统利用企业现 有的p c 资源和各类互联网络接入,采用纯软件解决方案,以i n t e l n e t 为传输途径,所以 有效的克服了基于硬件的视频会议系统的上述三个缺陷,具有价格低、配置灵活、控制 方便、易于扩展等诸多优点。随着计算机的处理能力和互联网的发展,软件视频会议 系统已经赶上甚至超过硬件视频会议系统音视频效果,软件视频会议系统还能提供丰富 的数据交互功能。软件视频会议系统采用的新技术m p e g 4 ,在相同的网络带宽情况下可 以得到更清晰连续的视频图像。 视频会议系统有着广泛的应用前景【4 2 1 ,它可以应用在商务交流、商业会议、企业客 户服务、产品开发、招聘员工、远程医疗、远程教学等方面。尤其是美国“9 1 1 ”事件和 s a p s 传染病流行以后 4 3 1 1 4 4 ,人们更加意识到远程交通和大规模人群聚会可能会造成的 负面影响,因此更加重视视频会议这样一种举行会议的方式。视频会议能够使用户摆脱 地域限制,进行实时的语音视频交流,不但节省了参加会议的时间和经费,而且还消除 了交通事故、传染疾病等各种潜在的危害,受到越来越多用户的青睐,也成为计算机网 络应用领域研究的一个热点。 基于软件的视频会议系统方兴未艾,目前正有越来越多的国内外研究机构和企业进行 这方面的研究开发工作1 4 3 1 1 4 4 1 。当前各种用户( 包括政府部门、企事业单位、甚至个人用 户) 对于不同规模和价格的视频会议系统有大量的市场需求,目前对基于软件的视频会 议系统进行研究、设计和开发具有较大的经济和社会效益。 本系统正是根据受山东省淄博市某公司委托进行开发的,主要针对中小规模企业用户 和个人用户的一个软件视频会议系统。本系统具有广泛的应用范围,可以使用本系统进 行商业谈判,员工培训i ,产品展示,招聘面试,亲朋好友之间进行可视聊天等等。用户 使用本系统进行交流可以避免远程奔波,坐在家中或者办公室就能与商业伙伴或者亲朋 好友进行面对面交流。而且这种交流方式没有交通和通讯费用,节约了用户的时间和经 济开销。 1 2 本文主要工作 本文对视频会议系统进行需求分析和业务建模,对其关键技术进行研究并确定其解 决方案,证明其技术可行性,然后参照i c o n i x p 3 1 和r u p 7 8 1 软件开发过程,以用例为驱动 进行建模、分析和设计,最后进行编码实现。具体所做工作如下: 1 调查整理用户需求。 2 对用户需求进行分析,找出实现视频会议系统的关键技术难题,确定其解决方案并 用代码实现。具体的研究内容包括:( 1 ) 音视频信号的采集、压缩、回放;( 2 ) m 组播 ( m u l t i c a s t ) 技术在音舰频数据传输中的应用及其局限性;( 3 ) 采用u d p 打洞( u d p h o l ep u n c h i n g ) 技术实现居于n a t ( n e t w o r ka d d r e s st r a n s l a t o r ) 后面的计算机之间 的点对点直接通信:( 4 ) 如何对服务器端线程、s o c k e t 、内存进行有效的管理以提高服 务器程序的性能。 3 在对视频会议系统进行需求分析的基础上,进行域建模和用例建模。 4 根据用例的事件流,把其中的动作分配给类,完善类图的设计。为每个用例绘制顺 序图,确定用例的实现方法。在系统设计中增加设计模式等内容。 5 依照上述设计结果进行编码和调试。 山东理工大学硕士学位论文 第二章所用技术简介 2 1 n e tf r a m e w o r k 第二章所用技术简介 随着计算机的越来越广泛的使用,计算机软件开发也经历了许多阶段。软件体系结 构从最初的单层结构到客户端朋务器的两层结构,再到b s 三层结构,又到今天灵活而 又强大的n 层结构,软件的功能从最初局限于一台计算机上,到今天分布在世界各地的 计算机通过b t c m e t 共同协作完成一项功能,这些软件体系结构的变迁对软件开发框架和 语言都提出了新的要求。其中几个重要的要求就是提高代码的编写效率,增加代码的安 全性,促进不同软件系统之问的协作。正是适应这种需要,微软公司制定并实施了n e t 计划。 n e tf r a m e w o r k 具有两个主要组件:公共语言运行库( c o m m o nl a n g u a g er u n t i m e , c l r ) 年n n e tf r a m e w o r k 类库( f r a m e w o r kc l a s sl i b r a r y , f c l ) 1 心。公共语言运行库 是n e tf r a m e w o r k 的基础,是一个在执行时管理代码的代理,它提供内存管理、线程 执行、代码执行、代码安全验证、编译以及其他系统服务。n e tf r a m e w o r k 的另一个主 要组件是框架类库f c l ( f r a m e w o r kc l a s sl i b r a r y ) ,它是一个综合性的面向对象的可重 用类型集合,其中的类按照功能分布在不同的命名空间( n a m i n gs p a c e ) 和程序集 ( a s s e m b l y ) 中。 作为新一代的软件开发平台,n e tf r a m e w o r k 具有如下优势: 托管代码的安全性:安全性取决于包括托管组件的来源( 如i n t e r n e t 、企业网络 或本地计算机) 在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使 在同一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作 或其他须小心使用的功能,也可能不能够执行这些功能。 与现有系统的兼容性:n e tf r a m e w o r k 充分支持与现有技术的互操作性,它支持w e b s e r v i c e s ,通过w e bs e r v i c e s ,n e tf r a m e w o r k 应用程序可与其他任何平台任何语 言编写的支持w e bs e r v i c e s 的应用程序交互。n e tf r a m e w o r k 还提供了强大的与 c o m 组件进行交互操作的功能,使得n e tf r a m e w o r k 应用程序可以继续使用现有的 c o m 组件。 版本控制:n e tf r a m e w o r k 通过强名称程序集( s u o n g l y n a m e da s s e m b l y ) 和版本 控制策略( v e r s i o n i n g p o l i c y ) 2 1 1 “,有效地解决了长期困扰开发人员的版本控制问题。 垃圾回收( g a r b a g ec o l l e c t i o n ) :n e t f r a m e w o r k 具有自动垃圾回收功能。如果一个 托管类已经不再被使用,它所占用的内存空间将会在适当的时刻被垃圾回收器收回, 从而有效地解决了内存泄露问题,也减轻了软件开发人员的任务。 部署安装:n e t f r a m e w o r k 应用程序是以程序集( a s s e m b l y ) 的形式进行部署,而程 序集通过一种被称为装箱单( m a n i f e s t ) 的元数据实现自我描述,从而实现x c 0 p v 安装部署,安装应用程序只需简单地将文件目录拷到目标机器上,而卸载应用程序 只需将这个目录删除即可。 多语言混合编程:n e tf r a m e w o r k 支持多种编程语言的无缝集成,各种编程语言编 写的类之间可以相互调用,甚至可以创建一个继承自其他语言编写的基类的新类, 就像是所有的类都是用同一种语言编写的一样。这给程序员提供了更大的自由度, 他们可以选择自己熟悉的开发语言编写应用程序,却仍能充分利用其他开发人员用 其他语言编写的运行库、类库和组件。 2 2 面向对象,u m l 和r o s e 面向对象中的对象就是我们实际生活中可以感触或意识到的人或物的真实写照,而 系统分析和程序设计中的对象是这些实际人和物的数学抽射刀。对象的概念与我们的思维 逻辑是完全对应的,因此面向对象方法比传统的软件工程方法更容易被人们理解。对象 是一种对自己负责的东西f 阍,它知道自己的类型,它包含数据,知道自己的状态,它包 含代码,可以执行操作,对象和其他对象之间可以有关联,对象还可以与其他对象进行 通信。 面向对象的思想和方法不仅仅指面向对象的程序设计,还包括系统开发的一整套原 理:需求分析、业务建模、系统设计、数据库设计、程序设计和其他相关问题1 6 1 。面向对 象方法从建模、分析、设计到编码实现了无缝过渡。面向对象方法通过封装 ( f a w a p s u l a f i o n ) 、继承( 1 n h e r i t a n c e ) 和多态( p o l y m o r p h i s m ) 提高了软件的可读性、可重用性 和可维护性。 面向对象方法的快速发展导致t u m i 删n i f i c dm 0 d e l i n g 蛔a g e ) 语言的出现【8 】o u m l j 黾一个通用的可视化建模语言,是一种总结了以往建模技术的经验并吸收当今优秀 成果的标准建模方法。迄今为止,u m l 已成功地应用在诸如电信、金融、政府、电子、 国防、航天航空、制造与工业自动化、医疗、交通、电子商务等广泛的领域中。u m l 包 括概念语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。u m l 定义 了一套完整的符号来表示面向对象方法中的类、接口、关系、消息等概念。通过使用u m l 语言,可以促进软件设计、开发人员之间的交流,可以使系统的分析和设计描述更加清 晰,使对于问题的描述更加精确。作为一种语义丰富、通用、可视化的面向对象建模语 言和事实上的国际工业标准,u m l 适用于各种应用领域的建模,包括大型、复杂、实时、 分布式、集中式数据或计算以及嵌入式系统等等。 r o s e 是i b m 公司一种基于u m l 吾言的进行软件系统面向对象分析和设计的可视化工 具,它是目前应用最广泛、功能最强大的基于u m l 的c a s e i 具。它把u m l 和谐地集成 到面向对象的软件开发过程中,在系统需求分析、对象分析与设计、软件编码与测试的 各个阶段,都提供了清晰 拘u m l 表达方法和完善的分析设计工具,为创建系统模型和完成 编码实现提供了较大的便利。它从一开始就能保证系统结构合理,让开发者可以更方便 地捕获设计缺陷,并以较低的成本修正这些缺陷【“l 。 2 3d i r e c t s h o w 多媒体应用开发面临诸多挑战:多媒体数据量巨大,应保证数据处理的高效性:音 频视频要保持同步;要处理各种媒体源( 如本地文件、网络、多媒体设备等) ;要处理 各种不同格式的多媒体数据;要支持系统中结构各异的硬件。针对上述问题,m i c r o s o f t 公司提供了d i r e c t s h o w 解决方案。d i r e c t s h o w 是一个基于m i c r o s o f tw i n d o w s 平台的流 媒体体系结构,它把应用程序与数据传输、硬件差异、同步等复杂工作分离开来,使开 发流媒体应用更加高效【1 1 1 ,它提供对流媒体的高质量的捕获和回放,它支持各种媒体格 式和硬设备。 d i r e c t s h o w 的基本组成单元是一种称为f i l t e r 的c o m 组件f 9 】1 1 1 1 ,每个f i l t e r 都实现 一定的功能。d i r e c t s h o w 的f i l t e r 大致分为三类:s o u r c ef i l t e r , t r a n s f o r mf i l t e r 和 r e n d e r i n gf i l t e r 。 s o u r c ef i l t e r 主要用来获取数据,t r a n s f o r mf i l t e r 主要负责数据格式的 转换,而r e n d e r i n gf i l t e r 负责数据的虽后处理,比如播放或者存储到文件中。d i r e c t s h o w 使用f i l t e rg r a p h 来管理f i l t e r 。f i l t e ro r a p h 的功能有:对f i l t e r 之间的状态变化进行同步; 建立一个参考时钟( r e f e r e n c eo o c k ) ;将事件发回到应用程序;向应用程序提供方法,以 使应用程序能够对f i l t e rg r a p h 中的f i l t e r 进行管理。 一个f i l t e r 具有一个或多个输入输出p i n 。同个g r a p hm a n a g e r 中的f i l t e r 之间可以 通过p i r i 相互连接。各个f i l t e r 通过输入输出p i n 相互连接起来,构成一个f i l t e r 链,数 据流就沿着这个f i l t e r 链进行传递。当数据流经过某个f i l t e r 时这个f i l t e r 就对数据流进 行相应的处理,整个f i l t e rg r a p h 中所有f i l t e r 相互协作的结果就构成了应用程序的功能。 一个d i r e c t s h o w 应用程序,一般来说有如下三个任务,如图2 1 所斜1 1 】 应用程序 i 一 厂 l l _ 涨e r g r a p h h a n a g e r a 应用程序 l l 一腩e r a p h m ”弦| 旺堋b 瑚 bc 图21 d ir e e t s h o w 应用程序结构 5 山东理工大学硕士学位论文 第二章所用技术简介 a ) 应用程序建立一个f i l t e ro r a p hm a n a g e r 的实例。 b ) 应用程序通过f i l t e rg r a p hm a n a g e r 创建一个f i l t e rg r a p h 。f i l t e rg r a p h 中的f i l t e r 根据 应用程序的不同而不同。 c 1 应用程序通过f i l t e rg r a p hm a n a g e r 管理f i l t e rg r a p h 及其中的f i l t e r ,同时f i l t e rg r a p h m a n a g e r 也会以事件的形式向应用程序发送消息,应用程序可根据需要对这些事件进 行响应。 2 4n a t 及n a t 穿透 随着h n 邸e t 的迅速发展和广泛应用,接# k i n t e m e t 的计算机越来越多, 4 地址已经远 远满足不了世界对i n t e m e 吐也址资源的要求。针对此种现象,有关组织和学者提出了两种 解决方案:一是采用i p v 6 技术将i p 地址升位以扩充i p 地址空间,从而使每个接入i n t e m e t 的终端都具有一个公共i p 地址。另一方案是在现有的i p v 4 地址空间和网络结构基础上使 用n a t ( n e t w o r ka d d r e s st r a n s l a t o r , 网络地址转换) 技术,使多个终端共享一个公共口地 址,从而解决口地址短缺问题。 i p v 6 的应用受到软件硬件两方面的限制:一是现在存在大量的基于i p v 4 的应用程序, 如果采用i p v 6 ,那么这些应用程序必须进行修改;二是i p v 6 要求对现在的网络设备进行 升级。由于以上两方面的限制,i p v 6 的广泛应用还有待时日,因此目前普遍采用的用以 解决口地址短缺问题的技术还是n a 日支术。 一个基本的n p d 模型如图2 2 所示。 图2 2n a t 模型 图2 2 中,主机a 位于私网里面,它具有私网地址a d d r a :同样主机b 也是位于私网内, 它的私网地址是a d d 卜b 。私网通过n a l 睫接到外网。主机x 位予外网,它的外i 网 也址是 a d d r x 。n a t 具有两个网络接口,分别连接到外网与私网,它连接外网的接口具有外网 地址a d d 卜n x ,它连接私网的接口具有私网地址a d d r n p 。 山东理工大学硕士学位论文 第二章所用技术简介 n 熵各种类型,包括传统n a t ( t r a d i t i o n a ln a t , 也i n o u t b o u n dn a t ) ,双向 n a t ( b i - d i r e c t i o n a l n a t ,t w o - w a y n a t ) ,两次n a t ( t w i c e n a t ) ,多宿主n a t ( m u l t i h o m c d n a t ) 1 ”j 【。而t r a d i t i o n a ln a t 又可以分为锥形n a t ( c o n en a t ) ,对称n a t ( s y m m e t r i c n a t ) ,目前应用最为广泛的m 姐是锥j 侈n a t 中的端口限制锥形n a t ( p o r t r e s t r i c t e d c o n e n a t ) 。在下文中,如果没有特殊说明,所讨论的n 御哟指的是端口限制锥形n a t 。n a t 只允许单向的由内向外发起的会话l l ”,而由n a t 外部发起的会话将被n a t 丢弃。n a t 的 这种性质使得u 外面的主机无法主动 甸n a t 后面私网中的主机发起会话,从而为位于 n a t 后面的私网提供了防火墙的功能。 n a t i 萄过将口地址从一个地址空间( a d d r e s sr e a l m ) 转换到另一个地址空间,从而 在终端主机之间提供透明的路由功能【1 7 j 。当一个网络内部的主机要与网络外部进行通信 时,网络内部的主机发出一个职包,这个包首先到达n a t ,n a t 对这个口包的源地址、 源端口进行修改,通过这个修改将内部自定义的m 地址转换为合法的公共坩地址,并对 这些转换做好记录【1 8 1 ,然后将修改后的口包发给外网,最后到达目的主机。当网络外部 的口包至q 达n a t 时,m 盯会查找之前做过的修改记录,将外来口包的目的地址和目的端 口进行相应的修改,然后将修改后的包发到网络内部的主机。 n a t 的存在给诸多网络应用程序造成了通信上的困难。酋先,位于n a t 后面的私网 中的主机冲地址不是合法的公共地址,n a t ) - 部的主机无法使用这个m 地址与其建立连 接。其次,g f 使n a 矽 部的主机通过某种方式获得了虹后面私网中的主机的实际口地 址,由于n a t 只允许由内向外发起会话,所以它仍无法主动与娟内部的主机建立连接。 由于目崩i i n t e m e t 中n a t 的广泛存在,i n t e m e t l 立用程序( 如视频会议系统,网络游戏 等) 的用户很可能是位于n a t 后面,因此这类程序要想正常运行,必须想办法克服n a t 带来的困难,实瑚n a t 穿透。 实现n a t 穿透最简单的一种方法就是利用一个具有公共即地址的服务器将弹数据包 进行中转承d a y i n 曲例。假如主机a 和b 都位于圳舌面,a l n b 都和服务器s 建立了连接。 如果a 要发送一个信息m 给b ,a 只需要利用它和s 之间的连接将m 发送到s ,然后s 利用它 和b 之间的连接将m 再发送给b ,从而实现了m 由a 到b 的传递【2 l 】。 这种方法的优点是简单可靠,但是也有很大的局限性。首先,由于所有的信息都通 过服务器中转,这样服务器的负担很重,服务器很容易成为影响整个应用程序性能的瓶 颈。其次,使用这种方式穿透n a t ,i p 数据包需要经过a 到s 和s ! f j b 两次发送,既浪费了 网络资源,又增加了数据包的延迟。 视频会议系统由于要传输音频视频信息,需要传输的数据量非常大,而且对实时性 有一定的要求,因此不适合于使用r c l a y i n g 技术穿j 茬n a t 。必须寻找其他更加切实可行的 技术路线。 山东理工大学硕士学位论文 第二章所用技术简介 2 5 模式 最初提出模式概念的是一个建筑学家c h r i s t o p h e r a l e x a n d e r ,他提出,“每一个模式描 述了一个在我们周围不断重复发生的问题,以及浚问题的解决方案的核心。这样,你就 能一次又一次地使用该方案丽不必做重复劳动。”随后,一些计算枫软件学者发现, c h r i s t o p h e ra l e x a n d e r 提出的模式的概念在软件领域也同样存在。o r a d yb o o c h ,r i c h a r d h e l m ,e r i c hg a m m a 和k e n tb e c k 给出在软件开发领域内模式的定义:模式是在一个上下 文中,对个问题的解决方案。模式有四要素: 1 模式名称( p a t t e mn a m e ) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模 式增加了软件设计人员的设计词汇。设计模式允许软件设计人员在较高的抽象层次上进 行设计。基于一个模式词汇表,软件设计人员之间就可以讨论模式并在编写文档时使用 它们。模式名可以帮助人们思考,便于人们与其他人交流设计思想及设计结果。 2 问题( p r o b l e m ) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描 述了特定的设计问题,如怎样用对象表示算法等,也可能描述了导致不灵活设计的类或 对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 3 解决方案( s o l u t i o n ) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就 像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或 实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合( 类或对象 组合) 来鼹决这个问题。 4 效果( c o n s e q u e n c e s ) 描述了模式应用的效果及使用模式应权衡的问题。尽管在描述设计决策时,并不总 提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。 软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现阈题。因为复用是面 向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影 响,显式地列出这些效果对理解和评价这些模式很有帮助。 从模式作用的规模来看,模式有三种类型。 体系结构模式:表示软件系统的基本结构化图式。它提供一套预定义的子系统,规 定它们的职责,并包含用于组织它们之间关系的规则和指南。体系结构模式可作为 具体软件体系结构的模板。它们规定一个应用的系统范围的结构特征,以及对其子 系统的体系结构施加的影响。体系结构的一个例子是模型视图控制器 f m o d e l v i e w - c o n t r o l l e r ) 模式j 。 设计模式:提供一个用于细化软件系统豹子系统或组件,或它们之间关系的图式。 8 山东理工大学硕士学位论文唾冉二章所用技术简介 它描述通信组件的公共再现结构,通信组件可以解决特定语境中的一个一般设计问 题。设计模式是中等规模的模式,它比体系结构模式小,但又独立于特定编程语言 或编程规范。 惯用法:是具体针对一种编程语言的低层模式。惯用法描述如何使用给定语言的特 征来实现组件的特殊方面或它们的关系。惯用法代表最低层模式,它关注设计和实 现方面。 9 山东理工大学硕士学位论文第三章系统设计思路和用户需求 第三章系统设计思路和用户需求 3 1l c o n i x 过程简介 i c o n i x 过程是一种经过实践检验的、高效的、用例驱动的u m l 对象建模方法,它 介于大规模的r u p ( r a t i o n a l u n i f i e d p r o c e s s ) 和小规模的x p ( e x t r e m e p r o g r a m m i n g ) 之间, 充分保留了r u p 用例驱动的特征和x p 灵活高效的优点。i c o n i x 过程有如下特点:首先, 该过程简洁高效地使用了u m l 。u m l 中包含很多种不同的图,其中只有一少半是经常 使用的,i c o n i x 过程只使用了其中的4 种,因丽更加容易学习、掌握和使用。其次, 该过程提供了高度的可跟踪性。在此过程的每一个阶段,都可以以某种方式回溯到用户 需求。这样就使系统的设计不会偏离用户需求。第三,此过程是个迭代的、渐增的过 程。在系统分析设计的每一个阶段,将发生多次迭代,每一次迭代都将使系统得到细化 和完善。图3 1 描述了i c o n i x 过程的大框架【“。 图3 1i c o n i x 过程 这幅图由两部分组成:上半部分是动态模型,描述了系统的行为;下半部分是静态 1 0 山东理工大学硕士学位论文 第三章系统设计思路和用户需求 模型,描述系统的结构。i c o n i x 过程包括需求分析、用例建模、健壮性分析、详细设 计、实现这样几个重要阶段。各个阶段的主要任务如下: f 1 濡求分析 需求分析阶段的主要任务是从用户需求中发现现实世界中的域对象( d o m a i no b j e c t ) 以及对象之间的继承、聚合等关系,绘制顶层类图。 ( 2 ) 用例建模 这一阶段的主要任务是:确定基本用例,绘制用例图;根据用例的功能将用例分组; 对用例进行详细的描述,写出用例的基本流程( b a s i cc o u r s e ) 年n 支流程( a l t e m a t i v e c o u r s e ) 。 在这个阶段,首先要从用户需求中发现尽量多的用例,然后对用每个用例进行详细 的文字描述,接下来对文字描述进行修改和完善。直到所有用户和文字完整准确的反映 了用户需求为止。对用例进行描述时要考虑到所有的情况,写明分支流程。用来描述用 例的文字应该简单清晰,没有歧义,句子结构应该是“主谓宾”结构。在对用例进行详细 描述和完善的过程中,可能会发现新的对象,这时要对域建模形成的类图进行相应的修 改。 0 ) 健壮性分析 此阶段的主要任务是对每个用例进行健壮性分析( r o b u s t n e s sa n a l y s i s ) ,在分析过 程中实时更新域对象。 健壮性 虱( r o b u s t n e s sd i a g r a m ) 包含三种对象,边界d a 劝对象,实体t i t y ) 对象, 控 | 6 1 ( c o n t r 0 1 ) 对象。边界对象是用户与系统进行交互的界面,如窗口、对话框、菜单等。 实体对象通常来自域模型中的类。控制对象也叫控制器,它们并不是真正的对象,而是 表示一个行为或者操作。通过它把边界对象和实体对象联系起来。 绘制健壮性图要以用例描述为基础。针对一个用例,逐句阅读用例描述,把用例描述 所涉及到边界对象、实体对象、控制对象绘制在健壮性图中,并在相应的对象之间建立 关联。 ( 4 ) 详细设计 详细设计阶段的主要任务有:对每个用例绘制相应的顺序图,把功能( 方法) 分配 到类;添加设计模式( d e s i g np a t t e r n ) 等详细设计信息。在此过程中,如有必要,可以 使用状态图和协作图进行辅助设计。 ( 5 1 实现 这个阶段的任务是:根据类图编写代码;对代码进行单元测试和集成测试;交付用 户验收。 1 1 山东理工大学硕士学位论文 第三章系统设计思路和用户需求 3 2 系统开发流程 参照i c o n i x 过程和其他软件工程方法,本系统的开发流程如下: 1 充分调查用户需求,形成详细的用户需求文档。 2 仔细阅读用户需求文档,分析其中的关键技术难题并确定其解决方案,以证明系统的 技术可行性。 3 根据用户需求进行域建模,发现域对象,生成顶层类图。 4 从用户需求发现用例,进行用例建模。对用例进行完整准确的文字描述,为以后的详 细设计等步骤打好基础。将在此过程中新发现的类添加到类图中。 5 将用例图与用户需求相对照,进行用户需求复核。如果用例图有与用户需求不符合的 地方,对用例图进行修改,直到用例图真实完整的反映了用户需求。 6 为每一个用例绘制顺序图。在绘制顺序图的过程中,实现对类进行功能分配,添加类 的方法和属性。对于功能复杂的用例,可以将其分解为几个功能较为简单的子用例, 并把新发现新的类添加到类图中。对于每个子用例也要进行详细的语言描述和绘制顺 序图。 7 对现有设计进行复核。对照用例描述和顺序图,检查是否所有用例都已经绘制了顺序 图,检查顺序图中类之间的消息传递和相互调用是否与用例描述中的句子一致。如果 顺序图与用例描述之间存在不一致的地方,则对顺序图进行修改。直到其与用例描述 完全符合。 8 根据设计好的类图和顺序图时行编码和调试。编码结束后,进行单元测试、集成测试。 3 3 用户需求 这是一个基于软件的视频会议系统,系统的主要功能是为在不同地域的用户提供一 个进行语音视频交流的平台,并提供一些相应的配套管理功能。具体需求描述如下: 用户可以在任一台能够访问i n t e r a c t 的计算机上使用这个系统,即使这台计算机是通 过局域网连接到i n t e r n e t ,它不拥有公共口地址。 系统包括若干个会议室。每个会议室有一个会议室名称,可以容纳一定数量的用户。 同一个会议室中的用户可以相互交流,而与其他会议室的用户互不干扰。 用户进入会议室的基本流程为:用户注册( 如果尚未注册) - - ) 用户登录专选择会议 室申请进入进入会议室。 用户必须先进行注册,填写自己的用户名、密码和其他用户信息,以后才可以根据 用户名和登录系统,申请入会议室。用户名在整个系统中是唯一的。 会议室中用户之间相互交流的方式分包括语音视频交流和文字信息交流。语音视频 交流是指用户可以相互看到对方的图像,听到对方的声音。文字信息交流指的是用 户之间可以通过发送文字信息的形式进行交流。 一l q 东理工大学硕士学位论文 第三章系统设计思路和用户需求 文字交流信息可以是所有人都能够看到的公开发言或者只针对某个人的悄悄话。 会议室中某时刻只能有一个人在公开发言,称其为发言人。发言人说的话可以被 同一会议室内其他用户听到。 每个会议室有一个主持人和个主持人密码。 会议室主持人对所在会议室具有管理权限。主持人有权决定是否批准个进入此会 议室的申请,有权决定当前会议室的发言权赋予房间内某个用户,有权随时剥夺当 前发言人的发言权,有权将某个用户驱赶出此会议室。 主持人可以将主持人的身份转让给此会议室中另外一个用户。转让后,原主持人丧 失了主持人的权限和身份。 会议室可以有或者没有会议室密码。如果有密码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省沈丘县两校2026-2027学年第一学期第一次教学测评七年级语文试题(含答案)
- 记者采访绩效考评表
- 铁合金湿法冶炼工岗前技术突破考核试卷含答案
- 化工蒸馏工岗前成果转化考核试卷含答案
- 吸油烟机制作工安全生产意识强化考核试卷含答案
- 航空客运服务品质管理经理考核表
- 保险箱柜制作工安全技能强化考核试卷含答案
- 染料拼混工技能安全考核试卷含答案
- 烷基苯装置操作工班组协作能力考核试卷含答案
- 拖拉机制造工安全素养考核试卷含答案
- 《担保法》考试真题及答案解析
- 档案数字化管理师岗前评审考核试卷含答案
- 电热鼓风干燥箱操作规程及安全事项培训
- 华为行政物业楼宇管理手册
- (2026秋新版)部编版道德与法治五年级上册全册教案
- 2026揭阳中职面试题及答案
- 产品安全管理培训资料
- 2025年城市地下管网改造研究报告
- 2026年陕西事业编制招聘在哪里看参考题库附答案
- 2025北京国际风能大会暨展览会(CWP2025):大型长柔风电叶片新型失效模式分析与设计验证方法
- 2025年河北西学中题库及答案
评论
0/150
提交评论