(计算机应用技术专业论文)构建面向对象协议模型的方法研究.pdf_第1页
(计算机应用技术专业论文)构建面向对象协议模型的方法研究.pdf_第2页
(计算机应用技术专业论文)构建面向对象协议模型的方法研究.pdf_第3页
(计算机应用技术专业论文)构建面向对象协议模型的方法研究.pdf_第4页
(计算机应用技术专业论文)构建面向对象协议模型的方法研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)构建面向对象协议模型的方法研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着网络技术多样性的增长以及网络应用的飞速发展,原有的网络协 议不足以支持新的应用需求和网络特征,因此,必须扩展已有的协议或提 出全新的协议。本文考虑把面向对象的思想运用到网络协议中,使得协议 具有可复用、可扩展、可组装的优点,从而可以支持更多更新的功能。 本文采用统一建模语言u m l 对传输层的t c p 协议和数据链路层的 i s 0 7 7 7 6 协议进行了建模,把原有的单块式的协议分解成多个模块,然后 根据面向对象协议模型进行组装设计,建立了各自的面向对象协议模型, 最后针对i s 0 7 7 7 6 协议采用c + + 语言和设计模式进行了部分实现。 研究工作说明了采用u m l 建模得到面向对象的模块并根据面向对象 协议模型进行组装的可行性。它为改进网络协议提供了一个思路。 关键词:统一建模语言u m l ,面向对象协议模型,t c p 协议, i s 0 7 7 7 6 协议,设计模式 a b s t r a c t w 曲m e g r o w m o fd i v e r s i f i e dn e t w o r kt e c h n 0 1 0 9 ya 1 1 dd e v e l 叩m e n to f n e t w o r k 印p l i c a t i o na tm 1 1s p e e d ,e x i s t i n gp r o t o c 0 1i s n o te n o u 曲t os u p p o r t t h en e w 印p l i c a t i o nd e m a i l da 1 1 dn e 铆o r kc h a r a c t e r s ,a 1 1 dt h ee x i s t i n gm u s tb e e x p a n d e do ri m p l e m e n t e di nn e ww a y ,i nt h i sc a s e ,w ec o n s i d e ra p p l y i n g o b j e c t o r i e n t e dm o u g h t t ot 1 1 en e t w o r k p r o t o c 0 1 ,s ot l l a tt h ee x i s t i n gp r o t o c 0 1 c a n s u p p o n m o r en e w 如n c t i o n sb e c a u s eo f t h e a d v a n t a g e o f t h eo om e t h o d i nt h i sp a p e r ,t c p p r o t o c 0 1 mt r a n s m i t t i n gl a y e ra n di s 0 7 7 7 6p r o t o c o li n d a t ai i l l l ( 1 a y e rw a sm o d e l e d u s i n gt 1 1 eu n i f i e dm o d e l i n gl a n g u a g e ( im i ,) a t f l r s t ,e x i s t i n gs i n 9 1 e m o d u l ep r o t o c o l w a s d e c o m p o s e dt o s o m e s e p a r a t e m o d e l sa 1 1 da s s e m b l e db a l s e do nt h e o b j e c t o r i e n c e dp r o t o c o lm o d e l i nt h ee n d i s 0 7 7 7 6 p r o t o c o lw a sp a r t i yr e a l i z e du s i n gc + + l a n g u a g ea n dd e s i g np a t t e m i tw a sp r o v e dm a ti ti sf e a s i b l et os e tu po b j e c t o r i e n t e dm o d e l su s i n g u 匝a n da s s e m b l e 山e m u s i l l go b j e c t - o r i e n t e dp r o t o c 0 1 i tp r o v i d e sak i n do f m e t h o dt oa m e l i o r a t ed r o t o c 0 1 k e y w o r d s :l n i f l e dm o d e l i n gl a n g u a g e ( u m 巴) ,o b j e c t o r i e n t e dp r o t o c o l m o d e l ,t c pp r o t o c o l ,i s 0 7 7 7 6p r o t o c o i , d e s i g l lp a t t e m s 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的 规定,同意学校保留并向国家有关部门或机构送交论文的复印 件和电子版,允许论文被查阅和借阅。本人授权江苏大学可以 将本学位论文的全部内容编入有关数据库进行检索,可以采用 影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口 本学位论文属于,在年我解密后适用本授权书。 r 不保密幽 学位论文作者签名:孝 中弱l 年6 月,孑曰tv 指导教师签名鸯氏 工礴6 冠f 8b 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容以 外,本论文不包含任何其他个人或集体已经发表或撰写过的作品 成果。对本文的研究做出重要贡献的个人和集体,均已在文中以 明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:秀呻祆 日期:加弓年石月f 扩日 江苏大学硕士学位论文 第l 章绪论 1 1 问题的提出 就网络协议而言,目前我们常用的是因特网协议组( t c p i p ) 。因特网协议组包 含的是一组定义好的协议,每个协议提供一种特定的通信服务。因此因特网协议组提 供一个或多个特定的通信服务,这样它能支持一些已有的应用需求和网络特征。 网络技术多样性的增长以及网络应用的飞速发展对网络协议提出了更多更新的 要求,这样原有的协议不足以支持新的应用需求和网络特征,必须扩展已有的协议或 实现全新的协议。扩展已有的协议,对它需要进行修改扩充,修改后又必须与原有的 协议兼容,修改的结果会导致系统复杂性增加、依赖性增强等一系列的问题。实现全 新的协议会产生很多冗余功能,并且协议的数目越来越多,目前因特网协议组已经包 括了多达一百多种的网络协议,如果需要实现新的功能就增加新的协议,这样协议的 数目庞大并且难以控制,网络复杂性增加,冗余功能增加,这样仍然无法满足需求【1 。 在这种情况下,考虑把面向对象的思想运用到网络协议中去,利用面向对象的优 点来改进已有的网络协议,使它能支持更多更新的功能。 1 2 面向对象运用到网络协议中 1 2 1 面向对象思想 对一个功能复杂的系统的设计、详细说明和实现是项繁重的任务。采用面向对象 的方法开发实现系统可以简化很多问题。 面向对象是软件行业的新术语。面向对象的技术是软件开发技术自然演迸的成 果,对许多应用领域的软件开发都极具前途。借用m a u r i c ew i l k e s 在图灵奖颁奖仪式 上的话:“对象是软件界从7 0 年代以来最激动人心的革新之一”【2 】o 面向对象的基本思想是:对具体问题领域进行自然分割,以更接近人类通常认识 世界的思维方式来建立问题领域的模型,便于对现实世界的客观实体进行结构模拟和 行为模拟,从而使设计出的软件尽可能直接地表现出问题求解过程 3 j 。利用面向对象 江苏大学硕士学位论文 方法,把应用程序分成许多相互独立的小块( 对象) ,分解可以重复地进行,直到达 到满意的易理解的级别。其结果是得到了一组对象,一组相似对象的描述用类来表示。 分解后每个类和对象都比较容易设计、实现、验证和维护。然后将这些类和对象组合 起来建立应用程序。对象内部的实现对使用对象的外部来说是不可见的,修改和扩充 对象的功能只要保证与外部的接口保持不变而只改动对象内部实现。这就是面向对象 的信息隐蔽和封装的特点 4 】a 面向对象的好处之一就是可一次性建立类和对象,然后组装起来,具有可组装性 的优点;好处之二就是对于实现同样的功能可复用一个类和对象,减少了冗余,具有 可复用性的优点;好处之三就是如果引入新的功能只需要增加新的类和对象,而不需 要对整个系统进行修改,具有可扩充性的优点。 1 2 2 面向对象与网络协议的结合 近年来,网络技术与网络应用飞速发展,日新月异。新的网络技术带来了新的协 议机制,新型网络应用引入了新的通信模型,这使传统的通信系统开发技术越来越不 能适应形势的发展。网络技术与网络应用也和软件工程的发展一样,面临着从传统的 系统结构到新型的系统结构的转移。面向对象技术所具有的信息隐蔽、封装、抽象和 继承的性质一般来讲可以组装、扩展和复用协议系统的设计【1 j 。 在这种情况下,考虑把面向对象的思想运用到网络协议中去,利用面向对象的优 点来改进网络协议,使网络协议具有可组装、可复用及可扩展等优点【5 】。这样只要根 据网络需求应用和网络环境,从一组早已被说明、被实现及被测试过的基本协议对象 中,通过组装而不是编程来实现所需的协议和服务。这种方法减少了功能实现的重复 性和协议的复杂性:如果需要实现新的功能,只需要增加新的部分,利用面向对象的 可扩充性实现。s t e f a nb o e c k i n g 著的“面向对象的网络协议”一书中描述了模块化 通信系统模型,提供了把面向对象的思想运用到通信系统中的方法。本文根据它的思 路把面向对象的思想运用到网络协议中去,建立了面向对象网络协议模型。针对单个 协议建立面向对象模型,强调了面向对象的分析和协议的建模。它提供了一种改进网 络协议的方法。 2 江苏大学硕士学位论文 1 3 研究内容 本文研究通过面向对象建模方法对一个协议进行分析,然后建立它的面向对象协 议模型的可行性。这种方法可以改进协议,弥补原有的不足。为此需要做以下的事情: 1 用统一建模语言u m l 对t c p 协议和i s 0 7 7 7 6 协议进行面向对象建模 2 根据提出的面向对象协议模型建立各自的模型 3 对i s 0 7 7 7 6 协议的模型进行实现 江苏大学硕士学位论文 第2 章面向对象协议模型分析 2 1 面向对象协议模型 传统网络协议的体系结构是单块式的,一个整体实现了协议的每个功能。为了适 应网络的发展需要改进网络协议的结构,考虑把网络协议与面向对象技术结合起来, 设计了面向对象协议模型。 面向对象协议模型( 0 b j e c t o r i e n t e dp r o t o c o lm o d e l ,o o p m ) 提供了一种描述、 设计、详细说明和实现面向对象协议模型的公共术语和建模技术。 o o p m 除了具有可组装性、可复用性及可扩展性的优点外,因为融合了面向对象技 术,又具有以下新的特点: 第一个新特点是它的面向对象性。面向对象的建模技术是一种强有力的和被广泛 接受的软件工程方法。它所具有的信息隐蔽、封装、抽象和继承的性质一般来讲能简 化可组装、可扩展和可复用的系统的设计,尤其是面向对象网络协议。 第二个新特点是它是一个通用模型。它提供了对所有协议改进的方法。模型的通 用性使得人们可以用面向对象协议模型组装出各种提供不同能力的通信服务,而所有 这些服务都是基于同一模型。 o o p m 由六个模型组成: 对象模型,提供面向对象建模的基础; 系统模型,将协议结构化为不同的层和面的服务对象; 服务模型,是相邻层对象间的交互作用所基于的模型; 通信模型,用来定义一次信息传输的应用视图; 协议模型,用来定义服务是如何提供的; 组装模型,以一般的术语描述协议服务组装的概念。 下面来介绍这六个模型。 2 1 1 对象模型 对象模型定义了面向对象中的一些概念,对网络协议的建模提供理论基础。主要 4 江苏大学硕士学位论文 定义了对象、类、继承等概念。 对象是系统分解后得到的功能模块,它们是特定类的实例,并具有通用建模性质, 如封装性、信息隐蔽性、抽象性和继承性。一个对象是一个实体,它由一个状态和一 组已定义的操作集构成。一个对象的状态是封装了的,仅能通过调用它的某个操作来 操纵或检索对象的状态。这样,从对象的外部来看,只有对象的操作是可见的。操作 以抽象方式规定对象的行为,而隐蔽了这些行为是怎样提供的。 一个类是对相似对象的描述,它规定作为这个类创建的所有实例对象的外部和内 部表示。外部表示由在对象接口中可见的所有操作的名字和参数组成。内部表示规定 操作怎样操纵或检索对象的内部状态。 在面向对象技术中,基于一个先前定义的类来定义新类或特殊类的特征称为继 承。如果一个类继承了若干不同的类,被称为多继承。所派生的类继承了它的基类的 外部和内部表示,然而基类的某些部分可以重新定义,或者由继承者增加某些新的内 容5 1 。 2 1 2 系统模型 系统模型是将单块式的协议结构化,这样网络协议从功能上被分解为一组服务对 象( 见图2 1 ) ,每个服务对象代表一种特殊的服务,并使它的用户可以使用它的服 务能力。这组服务对象行成了不同的层和面,构成了一个参考体系结构。 图2 1网络协议分解为层和面 一个层代表一组服务对象,它们提供协议功能的一个子集,这个子集是按照功能 垂直分解产生的。每一层的服务对象为相邻高层的对象提供服务,服务对象使用其相 邻低层所提供的服务。从原则上讲,每上一个层次,就增加了新的功能。因此,从层 到层,一种更加抽象的服务或更多增值的服务就被提供出来。对服务对象来说,只有 江苏大学硕士学位论文 它们相邻低层的对象和服务是可见的,超出这个范围的层的功能是隐蔽的。按照惯例, 层从l 开始从最低层到最高层编序号。 一个面代表一组服务对象,它们也提供协议功能的一个子集,这个子集是按照功 能水平分解产生的。把面的概念引进一个分层的系统,就把层服务对象再细分到一组 面服务对象中去,并用一组面服务取代层服务。 o o p m 系统模型对层的数目、层次和功能并不作任何限定,为的是使面向对象网络 协议的定义能包容不同的功能分解,但是另一方面,为了指导层服务的结构化,它预 定义了以下几个面: 管理面( m a n a g e m e n tp l a n e ) 组装面( c o m p o s i t i o np l a n e ) 访问面( a c c e s sd l a n e ) 控制面( c o n t r o lp l a n e ) 传输面( t r a n s f e r 口l a n e ) 管理面的服务对象提供从网络来和到网络去的接口,以及在任何其他地方定义的 系统管理。组装面的服务对象提供配置独特的通信服务的能力,而这些能力是由不同 面( 访问面、控制面、传输面) 的服务对象提供的。访问面的服务对象使得应用能建 立具有事先定义的通信能力的通信。控制面的对象使用户能对一个活跃的通信施加影 响,例如引进新的通信参与者,或将本地的通信端点移至另一个节点。传输面的对象 所提供的服务使一个通信联系的参与者能传输用户信息。 2 1 3 服务模型 相邻层对象间的交互是基于服务的。一个服务代表一个服务提供者所提供的能 力,它能被一个或多个服务用户所使用。一个( n ) 服务提供者是一个对象,它代表第n 层中与完成所提供的( n ) 服务所需要的所有有关的服务对象。( n ) 服务用户是第( n + 1 ) 层的服务对象,它们使用( n ) 服务达到协同操作的目的。服务模型隐蔽了它们可能的 结构,简化了一个服务的抽象定义。如图2 2 : 6 江茎奎堂堡主鲎篁堡苎一 图2 2 服务模型 一个服务是由一组用户和提供者之间的操作以及它们的合法的调用顺序定义的。 用户和提供者之间的操作叫做服务原语,服务原语有请求、指示、响应和证实四种类 型。请求和响应是用户调用的原语,指示和证实是提供者调用的原语。 一个服务动作从一个请求原语开始,通过一个指示原语进行报告,用户可以用响 应原语对指示原语作出应答,提供者如果要对一个服务动作的请求作出应答的话,发 出一个证实原语。 一个服务可以用时序图和状态转换图表示,这与u m l 中的顺序图和状态图有相 似之处。 2 1 4 通信模型 2 1 4 1 通信模型的概念和类别 通信模型通过规定参与者的行为和作用、允许交换的数据的数目和顺序、信息流 的方向和对话的持续时间来一般地定义通信对话的顺序。 传统通信模型主要有面向连接和面向数据报两种广泛使用的通信模型。面向连接 的通信模型将一次对话结构化为三个阶段:连接建立、数据传输和连接释放。它保证 了数据的可靠传输,但通常局限于两个用户。面向数据报的通信模型用户间只能交换 单个数据单元,可能有多个目的地。数据传输通常是不可靠的。 对于新型网络来说,要求适当地支持远程过程调用式的事务处理、可靠的会议、 不可靠的音频视频连接和多点播送等多种应用。传统通信模型对这些应用来说是远 远不够的。如果为一种应用设计一种通信模型的话需要浪费大量的资源,也是不实际 的,这需要我们使用一个更加通用的连接模型,它应该是简单的和足够灵活的,能极 好地描述广泛的传统服务和所需要的新型服务。于是就产生了多点连接。 7 江苏大学硕士学位论文 多点连接是多个用户可以加入这个连接,可以存在任意数目的数据流和任意的布 局。一个多点连接代表一个有两个或多个用户参与的通信联系,只有加入到同一连接 的用户才能通过交换信息进行通信。用户信息由提供者( 数据流源) 作为服务数据单 元( s e r v i c ed a t au n i t ,s d u ) 传递给多个用户( 数据流汇) 。s d u 被提供者透明地传 送,即它对信息内容、格式和编码方面不能作任何的限制。一个连接可以包含无限数 目的流,可以自由地对它们进行布局和重新调整。在一个连接的生命期内,可以创建 新流,也可以使已经存在的流终止。 2 1 4 2 通信阶段 对于新型通信模型定义的一次连接,也就是一个通信阶段,我们把它结构化为五 个阶段:服务组装、连接建立、数据传输、连接释放和服务删除。 1 服务组装 新型网络可以实现不同的通信服务能力,在服务组装阶段系统模型中组装面的服 务对象( 组装器) 提供了组装服务来组装专用的通信服务。 应用为了达到所要求的通信服务能力以及在以后的对话中让其他应用识别它的 通信地址,它向组装器提出请求,组装器返回一个与给定的通信地址绑定的访问面中 的服务对象( 服务访问点对象s a p ) 。 借助于一个访问点,应用就能建立和释放连接了。 2 连接建立 在连接建立期间,服务提供者和所有的相关用户要显式地对新的通信联系取得一 致,可以交换服务数据单元s d u 进行连接能力的协商。 对每一个新连接,用户从它们本地的访问点对象中得到一个新的连接端点( c e p ) 对象。c e p 对象是控制面中的服务对象,它使相关用户能对连接进行控制连接端点对 象惟一地与一个通信访问点对象相关联,然而在同一时刻可以有多个连接端点对象分 配给访问点对象。 3 数据传输 在数据传输阶段,用户可以按所定义的数据流的布局交换无限数目的服务数据单 兀。 对于每一个流,用户拥有数据流源( s r c ) 对象和数据流汇( s n k ) 对象。它们是传输 江苏大学硕士学位论文 面的服务对象。与s r c 对象相关的用户可以发出s d u 以便发送,与s n k 对象相关的用 户会吸收所传输的s d u 。 数据流源和数据流汇惟一地与一个连接端点对象相关联。多个源和汇可能加入同 一个连接端点。在数据传输阶段,可能会加入或删除流,消费者也可能加入或离开流。 4 连接释放 一个连接中最后一个用户离开它后,该连接就隐含地释放了。 用户一旦释放它的连接端点对象就离开了一个连接。删除一个连接端点对象也废 弃了所有与之相关联的数据流源和汇对象。 5 服务删除 在取消阶段,一个用户的访问点对象被废弃,所有与之相关的连接端点被突然地 释放,所绑定的通信地址在提供者作用的范围内已不再有效。取消一个访问点是通过 一个本地服务动作完成的。 2 1 4 3 基本服务对象类 面向对象网络协议提供两类服务:组装服务和通信服务。组装服务能配置用户定 制的通信服务,组装器类的服务对象提供组装服务。通信服务允许对相应的用户进行 寻址、维护连接和交换s d u ,它的服务是由不同类的服务对象提供的,即:服务访问 点类、连接端点类、数据流源类和数据流汇类。 组装器类对象:配置和控制用户定制的通信系统。在同一时刻组装器能控制和维 护多个通信服务。 服务访问点s a p 对象:访问平面中的服务对象,代表一个被特别请求与组装的通 信服务,提供对通信能力的访问。 连接端点c e p 对象:控制面中的服务对象,它使相关用户能对连接进行控制。 数据流源s r c 对象和数据流汇s n i ( 对象:传输面的服务对象,代表一个数据流的 起点和终点,与之相关的用户可以发出或接收服务数据单元s d u 。 一个数据流是由一个数据流源( s r c ) 对象和一个或多个数据流汇( s n k ) 对象表示 的。s r c 对象可以在所代表的流上发送s d u ,这些s d u 以后能被相应的s n k 对象接收。 图2 3 给出了基本对象类、它们的语义关系和它们在o o p m 参考体系结构中的位置。 江苏大学硕士学位论文 一、 图2 30 0 p m 的参考服务对象 通过以上五个阶段和基本对象,用户可以实现不同类型的通信服务,并且可以对 通信服务进行控制,适应了新型网络应用的需要。 2 1 5 协议模型 图2 4 协议模型的体现 由一个或多个服务对象构成的( n ) 服务提供者,提供( n ) 服务。为了服务的提供, 这些对象使用( n 一1 ) 服务。如果该提供者包含一个以上的服务对象,( n 一1 ) 服务用来使 它们按照已定义的、被称为协议的一组规则、数据格式和功能,进行协作。然而使用 了( n 一1 ) 服务和特定的协议这一点,对这些服务对象是隐蔽的。因此对( n ) 服务用户也 是透明的( 见图2 4 ) 。 协同工作的服务对象用协议数据单元( p d u ) 交换信息。协议数据单元p d u 与服务数 据单元s d u 的区别与联系可由图2 5 看出: 1 0 江苏大学硕士学位论文 q 伽吖,9 适蔫弱 图2 5 协作的( n ) 服务对象和它们的( n ) 服务用户 一个协议规定了协同的服务对象应执行的功能。这些协议功能在调用一个对象的 操作时执行,或者在出现一个外来事件时执行。协议功能补偿了所使用的下层服务的 不足,代表由服务对象封装的功能,是服务对象提供服务所必需的。我们可以把一个 服务对象看成是由一组提供特定协议功能的对象组成的,这些对象称为协议对象。一 个协议对象代表了一个特定的协议功能,可以用不同的协议机制实现,不同的机制是 以代表相同协议功能的协议对象的类的层次为模型的。同一协议功能有不同的实现机 制,这样组装实现功能有不同的选择。这些协议对象是我们组装服务对象时使用的基 本的标准构件。 一般来说有一些基本的协议功能,主要有对齐、分块、字节排序、加校验和、拼 接、连接控制、封装、加密、差错控制、前向纠错、路由选择、流量控制等等。 2 1 6 组装模型 面向对象协议模型提供的组装服务使应用能配置它们自己定制的通信服务。组装 服务是由组装器提供的,组装器是组装平面的服务对象。当收到请求时,( n ) 组装器 配置所有相关的( n ) 通信服务对象,以便提供所要求的( n ) 通信服务。 组装器完成组装的过程是:接受所要求的( n ) 通信服务能力作为输入,经过对可 用的节点资源和协议功能的考察,产生适当的( n ) 通信服务对象作为输出( 见图2 6 ) 江苏大学硕士学位论文 同 _ _ _ _ 一 所酒求的( n 1 ) 飘毋 图2 6 通信服务的组装 0 0 p m 的通信模型定义了服务访问点、连接端点、数据流汇和数据流源对象类这四 种基本的服务对象类,通常它们提供一种通信服务。通信服务能力可分为服务设施 ( f o s ) 、服务质量( q o s ) 、服务模式( p o s ) 。它们分别和协议功能按照它们与哪 些服务对象相关进行分类。即服务对象分别与f o s 、q o s 、p o s 的关系。根据它们之间 关系映射,通过这样的结构化,就能把组装分成更小的组装步骤,从而简化通信服务 的组装过程,因为在每个步骤中,只需要对范围缩小的通信能力和协议功能进行考虑。 下面主要考虑组装器的类型、组装时刻和组装方法。组装类型分为人工的组装器、 自动的组装器、半自动的组装器。组装时刻有三种选择:服务访问点创建时刻、连接 建立时刻、数据传输时刻。组装方法是定义组装一个具有特殊能力的服务对象的方法, 实现该能力从一组给定的协议功能中选择,同时考虑可用的资源以及相关的服务对象 的能力。 2 1 7 面向对象协议模型( 0 0 雕) 新特性 前面对0 0 p m 做了介绍,0 0 p m 中的六个模型对通信服务进行了定义,按照模型可构 建多种通信服务。从模型可看出网络协议有了新的特点。 首先,o o p m 并不强制任何特定的层数,也不包含对每个层次的服务和协议规范。 然而o o p m 的思想是提供一组可扩展的协议功能,它们能用于任何层次,以及任何协议 的组装。与此相类似,为了在任何层次进行任意服务的组装,o o p m 提供了一组可扩展 的服务能力,而不是对每一层提供一种特定的服务和服务能力的子集。因此,我们预 期它会减少在服务和协议规范中的冗余,因此协议实现中的冗余会减少。 其次,o o p m 把通信功能分解为五个面,为的是将层功能再细分为一组服务对象, 每个对象可以相对独立地配置和管理。它还放松了分层体系结构中所规定的层间交互 江苏大学硕士学位论文 是在一个单点( 服务访问点) 上串行地进行的这个限制。 再次,o o p m 定义五类服务对象:组装器、服务访问点、连接端点、数据流源和数 据流汇。一个服务对象由提供该服务对象的内部表示的协议对象构成。这样,协议对 象被相关的服务对象所隐蔽。在p m 中每个服务对象只含有它所代表的服务所需要的 协议功能。这样,0 0 p m 也促成了按照服务结构分解协议功能。 最后,0 0 p m 使得应用能组装特定的通信服务,提供更多灵活性。o o p m 提供了参数 保证不同的服务质量如性能、可靠性和安全性。利用o o p m 中的参数,我们现在能够确 定一个特殊的性能保证级别,以及直接选择所要求的防止服务数据单元s d u 重复、丢 失和乱序的级别。此外,在o o p m 中,在任何时刻都能在无需重新定义已经组装的通信 服务和协议的情况下,引入新的q o s 属性和参划6 1 。 总之,面向对象通信系统( 0 0 p m ) 的新特性总结如下: 将面向对象方法用于系统建模 动态分层 层分解为五个面 单一协议模型 服务组装概念 可扩展的服务能力集 可扩展的协议功能集 2 2 统一建模语言( u m l ) 2 2 1u m l 的产生 面向对象方法出现后,在7 0 年代中期出现了公认的面向对象建模语言。此后产 生了几十种面向对象的建模语言,但它们是相互独立的,用户很难选择适合自己的建 模语言。9 0 年代中,一批新方法出现了,其中最引人注目的是b 0 0 c h l 9 9 3 、0 0 s e 和o m t 一2 等。虽然它们有各自的优点,但用户由于没有能力区别不同语言之间的差别,因此很 难找到一种比较适合其应用特点的语言;并且众多的建模语言实际上各有千秋;第三, 虽然不同的建模语言大多类同,但仍存在某些细微的差别,极大地妨碍了用户之间的 交流。因此在客观上,极有必要在精心比较不同的建模语言优缺点及总结面向对象技 江苏大学硕士学位论文 术应用实践的基础上,组织联合设计小组,根据应用需求,取其精华,去其糟粕,求同存 异,统一建模语言【”。 1 9 9 4 年l o 月,开始致力于这一工作。经过b o o c h 、r u m b a u g h 和j a c o b s o n 三人的 共同努力,于1 9 9 6 年6 月和l o 月分别发布了两个新的版本,即u m l 0 9 和l j m l o 9 1 ,到 1 9 9 6 年1 0 月,u m l 获得了工业界、科技界和应用界的广泛支持,已有7 0 0 多个公司表 示支持采用u m l 作为建模语言。1 9 9 6 年底,u m l 已稳占面向对象技术市场的8 5 ,成为 可视化建模语言事实上的工业标准。1 9 9 7 年1 1 月1 7 日,o m g 采纳u m l l 1 作为基于面 向对象技术的标准建模语言。u m l 代表了面向对象方法的软件开发技术的发展方向, 具有巨大的市场前景,也具有重大的经济价值和国防价值”。 统一建模语言u m l 是近两年来用得最多的面向对象的建模语言。它集中了 b o o c h l 9 9 3 、0 m t 一2 和o o s e 三种面向对象方法的优点,对建模语言提供了多方面的支 持。在世界范围内,至少在近1 0 年内,u m l 将是面向对象技术领域内占主导地位的标准 建模语言【9 】。 2 2 2u m l 的特点 u m l 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软 件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设 计,还支持从需求分析开始的软件开发的全过程1 7 j 。 u m l 描述了一个系统的静态结构和动态行为。u m l 将系统描述为一些离散的相互 作用的对象并最终为外部用户提供一定功能的模型结构。静态结构定义了系统中重要 对象的属性和操作以及这些对象间的相互关系。动态行为定义了对象的时间特性和对 象为完成目标而互相进行通信的机制。从不同但相互联系的角度对系统建立的模型可 用于不同的目的【8 】。 标准建模语言u m l 的主要特点可以归结为三点: ( 1 ) 统一了b o o c h 、0 m t 和o o s e 等方法中的基本概念。 ( 2 ) 还吸取了面向对象技术领域中其他流派的长处,其中也包括非0 0 方法的影 响。u m l 符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极 少使用的符号,也添加了一些新符号。因此,在u m l 中汇入了面向对象领域中很多人的 思想。这些思想并不是u m l 的开发者们发明的,而是开发者们依据最优秀的o o 方法和 1 4 江苏大学硕士学位论文 丰富的计算机科学实践经验综合提炼而成的。 ( 3 ) u m l 在演变过程中还提出了一些新的概念。在u m l 标准中新加了过程、分布 式、并发、模式、合作等新概念,并清晰地区分类型、类和实例、细化、接口和组件 等概念。 因此可以认为,u m l 是一种先进实用的标准建模语言。它适合对网络协议进行分析 建模。 2 2 3u m l 内容 因为u m l 描述了系统的静态结构和动态行为,所以u m l 中包含了静态建模机制和 描述动态行为的方法。u m l 通过提供不同形式的图形来表达从软件分析开始的软件开 发全过程的。u m l 的静态建模机制包括用例图、类图、对象图、包图、构件图和配置 图。用顺序图、合作图、状态图、活动图和实现图表示系统的动态行为【9 1 。 u m l 的静态建模机制也称为静态视图。静态视图用类构造模型来表达应用,静态 视图主要使用类图。静态视图可用于生成程序中用到的大多数数据结构声明。 描述动态行为有两种方式。一种是根据一个对象与外界发生关系的生命历史:另 一种是一系列相关对象之间相互作用实现行为时的通信方式。孤立对象的视图是状态 图。状态图是当对象基于当前状态对事件产生反应,执行作为反应的一部分的动作, 并从一种状态转换到另一种状态时的视图【l 。 相互作用对象的系统视图是一种协作,一种与语境有关的对象视图和相互之间的 链,通过数据链对象问存在着消息流。视图点将数据结构、控制流和数据流在一个视 图中统一起来。协作和互操作用顺序图和协作图来描述。对所有行为视图起指导作用 的是用例图,每一个用例描述了一个用例参与者或系统外部用户可见的一个功能。 下面介绍u m l 中的主要图形: 1 用例图 描述的是系统的外部事物( 活动者) 与系统的交互吼 在u m l 中,一个用例模型由若干个用例图描述。用例模型描述的是外部执行者所 理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨 论的结果,表明了开发者和用户对需求规格达成的共识。首先,它描述了待开发系统的 功能需求:其次,它将系统看作黑盒,从外部执行者的角度来理解系统:第三,它驱动了 江苏大学硕士学位论文 需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的实现,而 且被用于验证和检测所开发的系统,从而影响到开发工作的各个阶段和u m l 的各个模 型。 用例图中的主要元素是用例和执行者。一个用例是用户与计算机之间的一次典型 交互作用。u m l 中,用例被定义成系统执行的一系列动作,动作执行的结果能被指定执 行者察觉到。执行者是指用户在系统中所扮演的角色 1 1 。 2 类图 类图描述类和类之间的静态关系。它不仅显示了信息的结构,同时还描述了系统 的行为。类图是定义其它图的基础。在类图的基础上,状态图、合作图等进一步描述 了系统其他方面的特性 9 】。 类图是静态结构模型的图形化表示,是静态声明的模型元素集合。每个类由一组 包含信息和实现行为的离散对象组成。对象包含的信息被作为属性,它们执行的行为 被作为操作。多个类通过泛化处理可以具有一些共同的结构。子类在继承它们共同的 父类的结构和行为的基础上增加了新的结构和行为。对象与其他对象之间也具有运行 时间连接,这种对象与对象之间的关系被称为类间的关联。一些元素通过依赖关系组 织在一起,这些依赖关系包括在抽象级上进行模型转换、模板参数的捆绑、授予许可 以及通过一种元素使用另一种元素等。另一类关系包括用例和数据流的合并【12 1 。 对象图是类图的实例,它着重描述系统中内部结构以及系统中存在的事物与事物 之间的相互联系。 3 顺序图 顺序图展示对象之间按时间顺序排列出来的交互。强调对象之间消息发送的顺序 以及对象之间的交互,但不表达对象之间的关联关系。 4 合作图 合作图表示在一些对象之间组织的操作和它们之间的链接关系。它描述对象之间 的关系以及对象之间的联系,表明了在特定上下文中一组相关对象之间的协作以及这 组对象为产生所要求的操作或结果而进行协作时所交换的消息。 5 状态图 状态图是系统分析的一种常用工具,用来描述系统的动态行为【”】。它描述了一个 特定对象的所有可能状态以及由于各种事件的发生而引起状态之间的转移。也就是描 1 6 江苏大学硕士学位论文 述对象或交互在生命周期中受激励时的状态序列以及它们的反应与活动。 u m l 为用户提供了一套完整的视图表示方法,如用例图、类图、对象图、活动图、 状态图、组件图、部署图、顺序图等。这些视图有利于用户、专业人员、开发人员、 分析人员、测试人员、管理人员和其他涉及项目人员之间的交流沟通,提高工作效率 【1 4 】。 总之,u m l 是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系 统进行建模。 2 2 4r a t i o n a lr o s e r a t i o n a l r o s e 是分析和设计面向对象软件系统的强大工具。可以帮助先建模系 统再编写代码,从而一开始就保证系统结构合理。它包括所有u m l 框图、角色、用例、 对象、类、组件和部署节点。它详细描述系统的内容和工作方法,开发人员可以用模 型作为所建系统的蓝图【1 5 】。 对于u m l ,r a t i o n a lr o s e 有助于系统分析,可以先设计用例和用例图,显示系统 的功能;可以用顺序图和合作图显示对象如何配合,提供所需功能;类和类图可以显 示系统中的对象及其相互关系;组件图可以显示类如何影射到实际组件;实现图可以 显示系统的网络配置。所以,在本次设计中,我们采用r a t i o n a lr o s e 作为建立模型 的工具。 2 3 面向对象程序设计语言c + + 2 0 世纪8 0 年代初,美国a t t 贝尔实验室设计并实现了c 语言。c + + 语言是一种面 向对象的程序设计语言,并且是c 语言的扩展。它保持了c 语言的简洁性和高效性,又 克服了c 语言中的一些不足,特别是引进了面向对象语言的要素,使它支持面向对象 的特点,也就是支持数据封装、继承性和多态性1 6 1 。 江苏大学硕士学位论文 第3 章对t c p 的面向对象分析设计 3 1 对t c p 的了解 t c p i p 协议组是目前使用最广泛的网络互连协议,以t c p i p 协议为基础而建立的 i n t e r n e t 己成为目前国际上规模最大的计算机网络系统。其中t c p 是t c p i p 协议组最 重要的协议之一,它是应用于传输层的协议,它对运行于其上的应用程序提供了全方 位的服务州。 t c p 使用i p 协议,为两台主机提供高可靠性的数据通信,建立了点到点的、面向 链接的通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的 网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。t c p 还支持多数 据流操作,提供流控和错误控制,甚至完成对乱序到达报文的重新排序1 1 。 下面介绍t c p 的功能以及数据传输的实现。 3 1 1 连接建立 t c p 采用三次握手建立连接 1 8 】。 1 ) 请求端( 也称客户端) 发送一个同步序号s y n 段指明客户打算连接的服务器 的端口,以及初始序号i s n 。 2 ) 服务器发回包含服务器的初始序号的s y n 报文段作为应答。同时,将确认序 号设置为客户的i s n 加1 以对客户的s y n 报文段进行确认。一个s y n 将占用一个序号。 3 ) 客户必须将确认序号设置为服务器的i s n 加l 以对服务器的s y n 报文段进行 确认。 3 1 2 连接终止m 1 终止一个连接要经过4 次握手。 1 ) 首先进行关闭的一方( 通常为客户端) 发送关闭请求f i n 。 2 ) 当服务器收到这个f i n ,它发回一个应答a c k ,确认序号为收到的序号加1 。 此时完成半关闭,服务器还可向客户发送数据,因为t c p 是全双工的。 江苏大学硕士学位论文 3 ) 服务器端发送一个关闭请求f i n 。 4 ) 客户必须发回一个确认,并将确认序号设置为收到序号加1 。 3 1 3 数据传输 连接建立以后,双方就可以进行数据传输了,因为t c p 协议提供了高可靠性的数 据通信,确保在机器之间交付数据流,不会重复或丢失数据。所以t c p 协议要对整个 传输过程进行控制和管理,防范数据的丢失、重复和乱序。 t c p 提供了分块、字节排序、加校验和、捎带确认、连接控制、安全和优先级、 紧急传递、差错控制和流量控制功能来确保数据的正确传输。下面介绍一下各个功能 是如何实现的。 1 ) 分块 1 8 】 在收到一个传输请求时,如果产生者发出的是小的服务数据单元s d u 群,每个只 包含单个1 字节的s d u 时,把它们用分离的协议数据单元p d u 分别发送的效率会是很低 的,因为每个p d u 会引起2 0 字节的头部开销。为了避免这个开销,t c p 在发送端使用分 块功能,发送者把连续的传输请求聚集起来,推迟它们的发送,直到:或者足够多的 尚未发送的s d u 能填满一个最大尺寸的p d u 有效载荷字段;或者产生者通过一个紧急请 求指示立即传送数据;或者连接被完善地释放。 除了发送者的分块功能,在接收端也使用了一个配对的分块功能。该功能把收到 的s d u 推迟投递给消费者,直到或者发送者在某个p d u 中指示了一个紧急请求:或者消 费者期待的s d u 数目,即下一个传输指示已经到达,或者连接被完善地释放了。 2 ) 校验和【1 8 】 t c p 为每个p d u 计算一个校验和。校验和覆盖的是p d u 的头部、有效载荷字段、以 及一个概念上加到该p d u 前面的一个1 6 位的伪头部。伪头部字段是相关的t c p 连接的源 i p 地址和目的i p 地址、t c p 在因特网上的协议号( 6 ) 和当前受到校验和保护的p d u 长 度。伪头部能防止因路径选择错误所造成的p d u 误递。 在计算校验和时,把数据看成是一系列的字节对。如果数据不是2 字节的整数倍, 要追加一个取值为o 的填充字节。校验和是对所有字节对的反码的累加和的1 6 位反码 计算得到的。这个算法称为因特网校验和算法。 3 ) 捎带确认 1 9 江苏大学硕士学位论文 接收方收到数据时并不立即发送应答a c k ,它推迟发送,以便将a c k 与需要沿该 方向发送的数据一起发送。绝大多数实现采用的时延为2 0 0 m s ,也就是a c k 等待2 0 0 m s 后和数据一起发送。 4 ) 流量控制【1 9 】 为了提高信道的利用率,t c p 协议允许发送方在停止并等待确认前可以连续发送 多个分组。但是如果快的发送方向慢的接收方发送数据时,由于数据的连接发送并且 接收方来不及接收,这样就导致了拥塞。我们为了解决这个问题,采取了流量控制的 办法。 t c p 协议采用滑动窗口协议进行流量控制。滑动窗口分接收方的接收窗口和发送 方的发送窗口,发送窗口相当于在传输的分组序列中放置了一定长度的窗口,然后发 送窗口内的所有分组,接收到的分组如果在接收窗口内,则接收,根据接收方的处理 能力提交n 个分组,然后发回对这n 个分组的确认,同时确认信息中还附带了窗口通告, 即接收窗口还可以接收的分组数目;发送方收到确认后,发送窗口的左边界前移n 个 分组,右边界前移的数目与窗口通告的数目相同,然后发送发送窗口内未被发送的分 组。发送窗口是可变的,接收窗口大小是不变的。根据接收方的能力调整发送窗口的 大小,这样进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论