




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)通信协议分解和构件化的协议子模块.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通信铷议分解和构件化的协议予模块 “ 7 0 0 4 7 0 v 摘要 随着网络技术的发展雨i 嵌入式殴备上赢瑚需求的不断变化,通瑚的层次协议栈往往不能 满足。本文指出通信系统实现中采用基于构t 1 :的软t :1 - 。程的有效性,给出了构件化协议体系 结构:将 力- 议软件拆分为彼此相互独立的构件,通过构件之间的连接支持为通信服务合理选 抒与加载协议子模块,以快速得到具有灵活性、健壮性以及为应用裁剪的通信协议。其优点 在于可以根据应用需求和网络特征来为通信服务合理配置协议子模块,为不同虚塌定制的通 信服务可以合理高效的存在于同一通信系统中。 戈键词:构件,通信协议,系统模型,协议子模块 通信协议分删和构件化的协议_ 了模块 a b s t r a 。c t d u et oe v o l v i n gn e t w o r kt e c h n o l o g i e sa sw e l la si n c r e a s e da n dv a r y i n gd e m a n d so fm o d e r n a p p l i c a t i o n s0 ne m b e d d e ds y s t e m s g e n e r a l p u r p o s ep r o t o c o ls t a c k sa f e n o ta l w a y sa d e q u a t ew e e x a m i n et h eu s e f u l n e s so fc o m p o n e n t b a s e ds o f t w a r ee n g i n e e r i n gf o rt h ei m p l e m e n t a t i o no f s o f t w a r ec o m m u n i c a t i o ns y s t e m s w e p r e s e n t a na r c h i t e c t u r et h a ta l l o w s d i v i d i n gp r o t o c o l s o f t w a r ei n t of u l l yd e c o u p l e dc o m p o n e n t s b yp l u g g i n gr e q u i r e dc o m p o n e n t st o g e t h e r , t h a ti s , l o a d i n gp r o p e rp r o t o c o ls u b m o d u l e sf o rc o m m u n i c a t i o ns e r v i c e s ,w er a p i d l yp r o t o t y p ef l e x i b l e , r o b u s t ,a n da p p l i c a t i o n t a i l o r e dc o m m u n i c a t i o np r o t o c o l s t h ep r i m a r yg o a li st h ec o n f i g u r a b i l i t y o fc o m m u n i c a t i o n s e r v i c e s ,t h a ti s ,t h e c o n f i g u r a b i l i t y o f p r o t o c o l s u b m o d u l e sf o re a c h c o m m u n i c a t i o ns e r v i c ea c c o r d i n gt o a p p l i c a t i o nr e q u i r e m e n t s a n dn e t w o r kc a p a b i l i t i e s ,t h e a c h i e v e dc o m m u n i c a t i o ns y s t e ms u p p o r t se f f i c i e n t l ya n d c o o r d i n a t e l yt h em u l t i p l ec o m m u n i c a t i o n s e r v i c e sc u s t o m i z e db yt h ec o e x i s t i n ga p p l i c a t i o n s k e y w o r d s :c o m p o n e n t ,c o m m u n i c a t i o np r o t o c o l ,s y s t e mm o d e l l i n g ,p r o t o c o ls u b m o d u t e 2 通信协议分解和构件化的协议子模块 引言 1 1 通信协议发展和新需求 目前,以计算机和i 软件为核心的数字化技术取得了迅猛发展,通信技术与互联网应删迅 速普及,消费电子、计算机、通信( 3 c ) 体化趋势日趋明显,数字化时代已经来临。嵌 入式通信设备是数字化时代的一大主流产品,这些嵌入式产品,不仅为嵌入式市场展现了美 好前景,注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战。这主 要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理。 冈此嵌入式技术成为了当前研究的热点,在路由器、手机、信息家电等产品上有着_ r 泛的应 州。 从2 0 世纪8 0 年代起,嵌入式操作系统开始得到蓬勃发展。嵌入式系统是以麻_ l = i j 为中心、 以计算机技术为基础、软件便件可裁剪、适应应川系统对功能、可靠- 胜、成本、体积、功耗 严格要求的专用计算机系统。智能化、小型化、专用性、移动性成为嵌入式系统的重要特征。 同桌面系统不同。嵌入式系统使用专用的硬件环境。运行其上的嵌入式软件必须紧紧依附于 硬件,通常都是为特定的硬件体系结构燕身定做,紧密依赖于特定的硬件抽象层h a l 与板 级支持包b s p 。因此,软硬件具有相同的生命周期。同时,为了提高运行速度和可靠性,嵌 入式软件常常被固化在硬件中。 基丁嵌入式系统的产品可以说是五花八门,而i n t e m e t 技术与嵌入式系统的紧密结台, 已经使得网络化成为嵌入式产品的一大功能。例如高速路由器、个人数字助理、无线移动手 机、机项盒、家庭网关、智能家用电器等,正在通信领域担当着重要的角色。为适应嵌入式 分布处理结构和应用上网需求,面向2 1 世纪的嵌入式系统要求配备标准的一种或多种网络 通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要t c p i p 协议簇软 r i :支持:由r 家_ 【_ j 电器相互关联( 如防盗报警,戈j 光能源控制,影视设备萃f i 信息终端交换信 息) 及实验现场仪器的协调r 作等要求,新一代嵌入式设备还需具备i e e e l 3 9 4 、u s b 、c a n 、 b l u e t o o t h 或l r d a 通信接口,同时也需要提供相麻的通信组网协议软什币l 物理层驱动软什。 嵌入式系统与i n t e r n e t 的真正结台、嵌入式操作系统与应_ :| 设备的无缝结合代表着嵌入式网 络应川发展的真止未来。 1 2 传统通信协议的局限性 通信领域中的网络协议本身具有种类繁多、结构复杂和多样化的特点,为了满足通信需 求,减少协议垃计年实现的复杂度,协议通常按不同层次进行开发,每一层分别负责不同的 通信功能。不同的阿络协议,其层的数量、各层的名字、内容和功能都不尽相同。如今的通 4 通信协议分解和构件化的协议了模块 信系统结构一般是分为若干层次,每一层实现同定的一绢功能。通过比较好的没计,这组功 能可以满足火部分应嗣的需求,在通常的网络环境中可以攫好的一l 份。如现今的o s l7 层协 议栈】俑ji n t e r n e tp r o t o c o l 协议簇 2 】都是这种层次体系结构。但是,随着网络技术的不断发 展,以及些新麻_ 【_ j 不断增k 剌变化的要求,这种通i | ;j 的协议栈往往不能满足需求。冗潍米 说,嵌入式设备由丁其埂制类型及其采刚的通信方式多种多样,运行丁其上的麻t l | j 往往需要 各种不同的通信服务。此外,通信服务也不能动态适应应j = j i 的灵活需求,而必须等到通信设 备笑机重启后才能应用新的配置。 针对以上情况,解决途径是对单块式实现的通信系统进行分解,使用为特定廊用裁剪的 协啵来取代通h i 的协议栈,这就要求新的协议易于实现且能够快速成形。由丁从头开始米实 现一个协议往往开销很人,且易于出错,冈此,一个止确的构造协议的方式尤为重要:协议 元素可以重; j 下不同的环境中,能满足应崩的特定儒求。另外,协议实现能根据需求而改变, 既能维持一定的稳定性,又易于扩展。 1 3 通信协议构件化 随着网络通信技术的不断发展,需要解决许多新的需求。包括降低成本,提高可靠性, 提供多种服务及有效的服务质量支持,使得不同厂商生产的软硬件之间的互用与升级,支持 可编程网络及可扩展网络的概念等等。为解决以上问题,提出了新一代网络标准,指出网络 南基下开放标准的模块化网络元件( n e t w o r ke l e m e n t ,n e ) 构造,所谓n e 是网络中的独 立设备,单独的处理调用以及瑁户数据传输。作为新一代网络的设备标准高级通讯计算体 系结构( a d v a n c e d t e l e c o m m u n i c a t i o n s c o m p u t i n g a r c h i t e c t u r e ,a d v a t a c e d t c a ) 给出了一个 开放标准,针对中等规模及大规模的通信需求,描述基于背板的模块化体系结构。目标是为 公共平台创建一个基础结构,提供大量由不同企业提供的可替换的模块以供选择,并满足相 当一段时间通信行业的需求。它的设计以支持新一代网络应j = | | | 为目标,得到了网络设备厂 商的广泛支持。在此体系下,提出了快速通道和慢速通道的概念:所谓快速通道,是指n e 中的功能经过优化,荠完全负责处理和交换用户信息;而慢速通道中n e 中的功能与快速 通道合作,处理崩户数据中快速通道不能独立处理的那部分。网络就由一组n e 处理年句件 组成,包括: ( 1 ) 通川的处理构件:负责处理调用,网络管理,慢速通道的包处理,以及服务端廊川i ( 2 ) 数字信号处理构件:语音、幽像、视频信号处理,压缩、规密、调制: ( 3 ) 网络处理构件:快速通道的数据包处理,包括路由、过滤、分类、v p n 通道: ( 4 ) 现场可编程门阵列( f p g a ) :连接逻辑私f 尖速通道处理构件( p p p 、卉表等) : ( 5 ) 专【; j 集成电路( a s i c ) :凋制、交换板、专用处理引擎( 1 p s e c 、视频解码等) 、完 整的子系统( 系统芯片) 。 如此以来,网络模型可以由何丁应用层、慢速通道层、快速通道层的n e 构件组成。网 络数据先交给位于最低层的快速通道层n e 构件处理,在这里负责快速处理和交换网络数据 5 通信阱泌分洲和构件化的悱议j 模块 包,包括路由、过滤、分类、v p n 通道等快速操作:本层处理不了的协议操作,如对部分 数据包的进一步查询和地址解析等操作,则交给上一层的慢速通道层n e 构件处理,通常在 这里处理一些网络层的协议功能;类似的,在该层处理不了的协议操作如更新路由协议以 及商州层的协议操作则进一步交给应用层的协议构件。由此进一步得到通信设备中的协议 软什模刑,它分为三个层次:应刚层构件实现常见的协议功能,这些构件完成人部分的协议 操作,它们建立在平台服务层之上;平台服务层提供通用的系统管理服务,例如管理内存、 系统、进程等资源 位于晟低层的是设备驱动层,负责快速的与设备进行数据交换。基,网 络元件的模块化结构为通信协议的构什化提供了理论基础。 近年来出现的软件工程范倚j 一一基于构件的开发( c b d ,c o m p o n e n t b a s e dd e v e l o p m e n t ) 就提供了对可亟_ _ | j 、快速成形的软件开发的支持。c b d 将软件分为易_ 丁配雀和加载的构什 通过构什的组合米构造新的应用。构件技术把单个的应用j j l 务分割成多个独立的部分( 构 件) ,这样某一块构件就可以独立的被新的构件更新、替换。整个应用服务就可以随着新构 仆的不断取代1 日的构什而趋于完善,更具有动态性、灵活性,易于定制。网络协议所具有的 分层开发和模块化的特点,使得基于构件的软件开发方式也可以应用到通信协议软什的实现 中,以提高软件质量,缩短产品开发周期,获得更好的灵活性。a v o c a 就是一个基下构件 的通信协议系统实现【3 】。它在x k e r n e l 【4 】的基础上用构件来实现一些协议功能,利x k e r n e l 类似其所有的构件都使用统一的接口。 5 】中给出了嵌入式设备上的c b d 研究,通信协议 由构1 ,j :米实现,井可以动态加载到运行状态的系统中。 与单块式网络协议栈不同,构件化网络协议栈可以包含一组协议功能,这些功能可川米 构成提供适当通信服务的协议。因此,单块式协议栈提供的是预定制的静态通信服务,而构 什化协议栈则提供了一种组合式服务,使应用程序能组装任意数目的不同功能的通信服务。 冈此具备了更好的可复州性,可组装性可扩展性。特别是在路由协议研究领域,由丁路由 算法的不断更新,互联网络的复杂性和多样性以及性能、安全方面的多变性,单块的路由协 议不能灵活适应需求。然而,借助于构件技术,路由协议可以在底层网络协议栈的基础上形 成一套具有通刚接口的路由协议构件。构件化的路由协议就实现了从静态的组织结构到灵活 多变的通信服务组合的转换。同样的,嵌入式设备由于其硬件类型及其采用的通信方式多种 多样,运行丁其上的应用往往需要各种不同的通信服务,只有动态、灵活的通信服务组合刭 能满足这种需求。 6 通信协议分解和构件化的卧议于模块 二、构件化协议栈体系 2 1 构件技术 构件技术把单个的应用程序分割成多个独立的部分( 构件) ,这样某一块构件就可以独 立的被新的构件更新、替换。应用程序更具有动态性、灵活性,易于定制。从构件技术的实 现来看,它规定了一种普遍使用的抽象”标准”,即规定了一组相同的结构类接口以实现动态 交流。h 幽2 i 就是一个典型的客户及服务器动态交流的抽象申请过程:服务器与客户之间 通过接口机构来提供和使用服务。 请求 图2 1 客户与服务器的动态交流 霸络协议本身也应该贯穿了构件技术的思想。一个协议族,比如t c p i p ,就是一组不 同层次上的多个协议的组合。每一层的各个协议都提供了不同的服务。每个协议都可以分 解成多个模块( 构件) 。例如h t t p 可以分解成n i c n a m e w h o i s 模块,u r l 模块;最基 本的t e l n e t 协议也可分为连接、网络虚拟终端、传输控制等模块,这就是协议的构中j :化。通 过对网络协议构件化后,上层的协议可以根据不同的需要选取下层协议的构件,对本层协 议进行定制,极大的增强了协议的灵活性,从而也将使协议的实现更具灵活性。 协议构件化吸取了构件化思想的精髓,使用比面向对象技术更为高级的抽象。协议构什 提供了二进制代码级的可重用性,使程序开发周期缩短,分工更加明细,使整个协议拽体系 具备了更好的可配置性,高效性,可重用性,可扩展性雨i 可表选性。协议构件化解珧了软t : 存在的四个基本问题:基本的构件互操作性,协议版本升级,实现语言无关性以及透明的跨 进程互揲作性。 2 2 网络协议子构件体系 除了通信协议的构件化实现这关键技术外,构竹化的肋设体系还要满足系统对运干述 度、执行效率、系统安全性的要求,同时在不影响这些特性下实现跨平台和分布式调度雨i 管 7 姗 通信协泌分解和构件化的协泌了模块 理。这就是网络协议子构件框架系统n s p c f ( n e t w o r k s s u b - p r o t o c o l c o m p o n e n t f r a m e w o r k ) 。 n s p c f 主要由四个部分组成:协议构什、协议构件操作系统、构件库、构件开发平台。 传统的通讯协议以需求为指导进行模块化改造与拆分,形成协议子构件集合。协议子构件由 构件库进行管理、组装,提供通讯设备服务。而在通讯设备上必须进行构件支撑改造以满 足协议子构件对特定硬件的支持并提供实时的通讯服务。协议构件可以由第三方开发商米实 现,为了便于构件的开发和维护,n s p c f 还提供了构件开发平台负责构什的开发,储存管 理,提供统一的构件加载接口。系统结构如下图所示: 图2 2 网络协议子构件框架系统n s p c f ( 1 ) 制订统一的接口标准 通信协议的构件化方式规定了一种特遍适j - i = | 的抽象标准,在二进制代码级上实现r 代码 的动态重j = | j ,通过在构什间规定一组相同的结构类接口,从而实现了标准的动态交流。在遵 循构件技术的规范下,以接口的形式提供服务,使得调用更加合理。封装服务的内部实现可 以保证通信协议实现的灵活性和向后兼容。通倍协议构件化将大大提高路由器及其它通信设 备软件的开发速度,加快推向市场的进度和升级换代。 ( 2 ) 确定构件化方式 协议构中卜化解决了软件存在的四个基本问题:基本的构件互操作性。协议版本升级,实 现语言无关性以及透明的跨进程互操作性。解决途径是对通信协议进行拆分,完成面向对象 的t 基 :对象、协议、接口的设计,形成了构件化的协议栈。对通信协议拆分时可以采取多 种方法,包括按功能构件化,按使用对象构件化,按层次构件化等。构件化后的通信协议, 实现了协议的动态装载,支持构件重用、高度可配置性,具有开发时间短、良好的可移植性 等优点。这些特性也为协议的组装提供了方便。通过装载,替换不同的协议构件,为上层提 供各种类别的网络服务功能,服务质量,特别适合一些并发性、实时性、系统容灾性弄运行 持续性要求严格的场合。 ( 3 ) 构件开发平台实现 将划分得到的协议模块通过构件开发平台进行封装,使得协议构件成为协议软件最基本 的构成。为了降低协议构件化开发的复杂度,需要一个强有力的构件开发平台,以协助构什 开发人员进行协议软件开发。构件开发平台可以根据协议构件的运行平台以及刷户的输入, r 通信悱泌分斛和构件化的卧议了模块 为协议构件的开发生成框架代码。开发平台为开发提供强有力的项目组织与管理,并提供友 封的界面以及集成的开发、测试环境,大大减轻了协议开发人员的小作量,提高了协议软 件的开发的质量和效率。 ( 4 ) 提交构件库存储 协议构件库是针对网络通讯需求特点开发的、不断完善改进的、用来对构件化的协议进 行使_ _ j 、管理利维护的软件构件库。并针对用户的需求提供检索,返回满足特定需求的构件。 构什库的存在,为数量巨大、种类繁多的协议构什提供了科学的管理方式,也为t l j 户按照白 己的需求查询肃i 获取构件提供了有效的途径。 ( 5 ) 改造操作系统咀获取运行时支持 为了使得构什化实现的协议得以运行,需对操作系统进行改造,将原来编译进内核的协 议栈从内核分离出来作为模块加载运行,并在内核中预留各种构件的服务接口,构件之间可 以通过服务接口进行通信。系统底层功能的修改可通过模块的更新来实现,对协议栈的替换、 修改及升级无需重新编译、配置内核,井使远程管理、动态更新路由器的核心协议栈成为可 能。在对应用层协议的支持上,基于动态链接库机制实现了一套协议构件接口库,通过该库 来实现应用层协议构件的基本管理功能。通过该库提供的接口对构件进行管理和使用,包括 接| 查询功能、动态装载、移出构件功能、简单的本地管理功能如申请、下载构竹、删除、 更新、替换本地构件等操作。 2 3 网络协议子构件体系特征 n s p c f 具有传统c b d 具有的一切特征,包括封装性、复用性、扩展性,同时提供一组 扩展特性,诸如系统安全、动态加载、跨平台、分布式、开放性,这样就可以将c b d 的先 进思想运删到网络协议的开发上,使协议的开发更方便、效率更高、维护升级简便,义不失 网络协议对速度、安全等的要求。 n s p c f 框架继承于c b d ,基本执行模块是与对象等价的构件,构件可以有自己的数据 成员和接口函数,但所有的数据成员都是私有的,只有接1 2 1 函数才能被定义为公有接口,构 什之间的数据交换是通过公有的接v i 函数进行的。构4 :1 :封装性保证了构件的独立、完挚性和 安全性,同时也为第三方的构件开发提供了便利,也为程序员的程序开发提供了方便n j , j 丌发商只需要提供统一的接口内部的实现就可以相对灵活。 n s p c f 的复用模型是要建立一种基于代码和二进制级的复用模型,可复j l | 模块可以单 独开发,这对传统的函数模烈是远远不能胜任的,同时基于二进制级的复用模璎也是有其必 要的,冈为它不需要重新编译,同时其独立性决定了它可以独立的开发,这对丁网络胁、泌这 样。一个人删的系统是很有必要的,它可以使多人协作开发更便利。l n jn , l 模块复j h 也。t 以减少 系统资源的消耗,因为它在需要时才被装载到内存,同时避免了同个模块被多次载入的弊端。 在n s p c f 框架中,可以有三种类醴的成员:公有成员、私有成员和保护成员,其中私 有的成员不能被新的构件继承,只有公有和保护能成为新的构件的成员。系统扩展性提供j o 通信机议分解和构件化的执 义了模块 对网络系统升级的强大的支持,在传统的系统中,当网络设计出现缺陷或者网络功能不能适 麻网络需要的时候,对网络的更新或者升级往往需要重新编译整个协议,这样不仅不能提供 无中i r 的网络服务,而且编译整个协议也是费时费力的书情,而在n s p c f 中,对j - 出现缺 陷或者需要功能更新的构什,我们只需要从这样的构件中派生山新的构什,对构竹。 | 的缺陷 接口祠i 接口功能进行更新,在系统仍然维持运行的情况r 将新的构f l l :;b n 载到系统,实现系统 的更新。 由丁构件化的网络协议运行在操作系统核心模式f ,所以对安全性的要求尤为重要。系 统安全胜表现在两个方面,一是系统其他进程对网络进程的安全威胁硐i 网络进稗对系统的安 全性威胁。在n s p c f 中,通过设计一个安全进群s p ( s e c u r i t yp r o c e s s ) 对系统安全性进 ? 管理这个进程也是一个核心态的进程,属下操作系统的一部分,它有权限启动新的进群平 杀掉已有的进程。 对丁其他进程对网络进程的威胁,s p 主要要防止其他进程对网络进程地址空间内存的 随意写入,任何来经授权的进程都不能对网络进程的 = i ! i 存进行访问,要和网络进程对话,只 能通过操作系统的核心消息进行调度。s p 在网路进稃和操作系统之间建立了一道防火墙, 网络进程内外的安全,同时对y - n 路进程自身的缺陷导致的进程挂起s p 要能够及日寸通知 操作系统做出响应的处理。 传统的构4 1 :当需要更新时,都不能在现场执行,必须先将执行进程停掉,:l 哿构仆从内存 中卸载,然后用新的构件替换原有构件,然后重启进程。这样的更新方式相对于更新网络协 议需要重新编译内核模块而言算是种进步,然而这样的方式也不能满足需要现代无间断远 行的服务器的更新需要,所以n s p c f 在设计时,首要考虑的就是构件能够在运行态进行动 态换入换山,保证不停i l 网络服务的基础上对构件和网络功能进行更新,也就是构件的动态 加载。这样的性能要求对丁一些骨干服务器或者核心服务器有很火的好处,以往这些服务器 的更新必须寻找一个替代的服务器,然后才能对服务功能进行更新,这样的开销是很巨人的, 而且作为替代的服务器,平时被闲置也是一种资源的浪费,同时作为主干网上的骨干路由器, 一口中断服务将导致网络间通讯中断。 通信怫议分解和构件化的协议了模块 三、通信协议分解和构件化 3 1 基于构件的通信子系统 通信系统的目标是为应用提供通信服务。我们把为应用定制的通信协议软件系统抽象为 一个通信子系统,如图3 1 所示,它是对一些基本的通信服务的抽象,以便于为用户提供其 所需的特定服务。通信子系统的设计实现是极为重要的,冈为其通信的方式在很大科度上会 影响整个系统的性能。有鉴于此,我们设计的重点在于通信的机制、原语和抽象。为了能够 选择、集成和复用不同的模块,通信系统被分解开来,并进行封装,通信子系统则作为通信 模块的组合。每个模块由其接口和具体实现来定义,由接口对外部操作提供接口界面,或是 请求相应的操作。为了达到该抽象,模块即可由协议构件来实现。而通信过程就可以看作是 请求i n r e 务的组合。协议构件作为基本的通信功能模块,它们封装协议机制的具体实现,并 以接口对外提供服务。通信模型实际上就是一组特定构件的联台方式,这些构 p l 。联合方式在 起提供了一组基本的通信服务原语。此外,协议构件也可以通过接口向其它的构件请求相 麻的服务,或者其内部实现本身就包括了其它构件的实例。因此,通信子系统就是所需协议 构t i :的堆叠,这些构件连接在一起以实现特定的通信服务。 图31 通信子系统 构件化通信子系统提供一组可扩展的协议功能和服务能力,使应用能组装特定的通信服 务,比起o s 构架中预定义的服务和协议更具备灵活性。构件化通信子系统蚍协议利服务 为基本对象,通过组装不同的协议功能来提供适当通信服务,可以有不同的实现机制。基于 此模型的网络协议栈,既可以达到构件化目标,义可咀满足对旧版本防议的兼容。 3 1 1 基于构件的遥信子系统模型 通信子系统的结构可抽象为基本的符号模型:( 1 ) 系统可设计为一些构件的组台,这些构 件通过一定的方式组织在一起。( 2 ) 构件是类型的实例,而且构件本身可以参数化。构t i 纲合 在一起形成系统的方式可通过使用类型参数和类型表达式而自然的得到。 通信协议分解和构件化的悱议了模块 3 1 1 1 构件和模型框架 菇艿毫。类型( t y p e ) 是一些值( v a l u e ) 的集台。抽象数据类型( a d t ) 是娄础加上 对类型中值的操作。粪( c l a s s ) 是属了二一个继承关系的a d t 。构件( c o m p o n e n t ) 是紧密结 合的类的群,它们作为一个数据单元。 一一般的,类型的值比较简单( 例如数值、字符串等等) 。当值是复杂的实体时,一般使 _ j 另外的名称( 而不是“类型”) 。例如,类型的集合称为超类型( m e t a t y p e ) ,类的集合称 为理论( t h e o r y ) 。我们称构竹的集合为域( r e a l m ) 。可以注意到超类型、理论和域本身都是 一种类弛。 这里论述的模型涉及构件平| i 域。 糟彤:软件结构的基本单元是构件。每一个构件由接口及其实现组成。构件的接口是构 4 1 :对外可见的部分,而实现对外是不可见的。 每个构竹都起一个域r 的成员,域f 中魄所有;戋员都实现相锅的谩口,只是实现的 方式是不同的。这意味这同一个域中的成员是接f s i 一致的并且是可互换的。域的接口遵循面 向对象设计:它是一个或多个类( 包括对象、操作以及相互关系) 魄集合,由域中褐每一个 成员导出。构件的接口还可能会附加一些信息,如构件名称、性能特征、来源、目标文件等 等。所以,当我们说两个构制:具有致的接口时,指的是它们的接口中与域相关的那部分是 相同的。 犀瓣缪教纪钐劬盼域的成员( 构件) 定义了库( 1 i b r a r y ) 。我们省符号 t = f n i ,a 2 硝 表示域r 包含d ,以,甜三个库成员。域和库都很自然的具有扩展性,冈为总是可以 增加新的构件作为其成员。 构件通过参数调用剐的构件。符号”f p 表示构件f 是t 类型的( 或者说t 属于域7 ) , 符号”f f 珂”表示t 是域t 的一个戏多个成员的集合。考虑构件c 肛j r i ,y ,r 三 ,c 有两个参 数x 希l y 。其中z 是属于类型r 的构件,y 是属于类型船一组构件。 纷镨i 鼹每一个构件都实现了由抽象蓟具体的映射,也就是把接口域抽象级别可见的 对象及操作转变为具体实现级别的对象及操作。前面曾提到,构4 1 二的抽象接口由其所属的域 定义,而其具体接口由其参数所属域的接口鸽并集来定义。铡如构件c 肛聪y 艘2 7 导 山r f l 为其抽象接口,而引入r 1u r 2 作为其具体的接1 :3 。所以,町,把t 的对象及擞作转 换为r 1u r 2 的对象和操作,反之亦然。关键一点在丁- 构件并不知道其具体实现对象及襟作 的实现方式。 构件实现了系统的一个功能模块,而软件系统就是啊多不同模块的堆蛰( 也即沈。多,f f = i 引 的组合) 。幽3 ,2 ( a ) 给出了个系统模块结构其中l a y e r l 位于顶部,而l a y e r 3 伉丁底部。 l a y e r l 将其接口对象和操作转换为l a y e r 2 的接口对象和操作,l a y e r 2 义将其接l 对象j = l i 操 作转换为l a y e r 3 的接口对象和操作。图32 ( b ) 中,t o p 、m i d d l e 和b o t t o m 的库r i ,均从 2 通信协议分解和构件化的机改子模块 柏个成员。 t o p = l a y e r i x :m i d d l e l m i d d l e 2 l a y e r 2 y :b o t t o m 】) b o t r o m = l a y e r 3 s t a c k = l a y e r l 【l a y e r 2 【l a y e r 3 】 ( b ) 图3 2 系统的模块结构 物押粥兮和黍g 参组合是构件参数实例化的规则及操作,也就是构件连接起米的规则。 一个软件系统就是一个类型表达式( 也即构件的组合) 。例如,圈3 2 ( b ) 中的系统s t 口c k 就可 由表达式l a y e r t l a y e r 2 l a y e r 3 刀定义。 硝联结嚣舻躲:一个具有模块化结构的软件系统具有非循环的调用关系图,其中结点 代表构件,边表示调用关系。如图3 3 所示的模块化系统中构件b 和c 都调用于系统, 其中是由一个子表达式单独定义的模型。 构件参数的实例化具有值传递的语义。系统h 中有子系统x 的两个实例,系统中只存 在一份代码拷贝,而与b 和c 交互的运行时实例则是不同的。 h = a 【b p ( l c x 】 x = d e 1 图3 , 3 模块化系统 纷重z 吼软件重用是软件:i 程中的一个基本问题,其中的一个重要形式就是构件重川。 桎本文所给也的模型中,当两个以上的表达式中用到同一个构件时,就存在构件重用。所以, 如果a b c 1 稚lp p 向i7 都是表达式( 软件系统) ,构件6 就被重用。一般的,子表达式对应 子系统雯h ; ,如上文提到的子系统x 。 3 1 1 2 构件化予模块 如前文所述,每一个构件都是一个域t 的成员,因而域给出了构件所实现系统功能的 抽蒙定义。域t 中的所有成员都实现相同的接口,只是实现的方式是不同的。这意味这域 中的每一个成员都有其自己的实现模块,称之为对应于域t 的子模块。功能与子模块的芙 系对应丁域与库之间的芙系,符号 t 2 a ta 2 d 3 表示域7 包含口,a 2 ,订三个库成员。也即,模块r n s 口,a 2 ,。3 三个予模块。 雾 通信协议分解和构件化的协议子模块 构件的动态绑定特征允许在运行时确定接v i 的实现方式,这样以来,系统可以支持动态 加载接e 1 的实现模块,这就为通信系统中的接口根据应用需要加载不同的子模块提供了支 持,使得各个子模块合理的共存。 构件技术火大减轻了开发摸块化的、灵活、高效、可扩展的通信协议系统所必需的i 。作。 构件具有数据抽象的特征,对协议功能的实现机制进行封装,而以接口的形式对外提供服务, 增加了模块性。通过共享及复用已有的协议实现,可支持更加灵活的协议功能组织。此外, 构仆的动态绑定特征允许在运行时确定接口的实现方式,这样以来,系统可以支持动态加载 接口的实现模块,也支持为接口加载不同的实现子模块,从而增强扩展性及高效性。 3 1 2 通信子系统模型基本结构 3 1 2 1 对象划分 通信子系统使用面向对象的目的是将问题对象分解为容易理解的较小的予对象,分解可 以重复地进行。分解后得到了一组功能模块,每个模块都比较容易设计、实现、验证和维护。 这些功能模块被称为对象,它们是特定类的实例,并具有通用的性质。 一个对象是一个实体,它包括一个状态和一组己定义的操作集。对象是处理任何功能实 体的通州手段,包括通信系统、服务、协议和协议机制等实体因此用对象来划分通信系统 是必要的。分解提供了比复合对象更加详细的结构划分,对象可以被分解为组对象,分解 厉的子对象继承了对象的外部操作。通过多次分解可以从不同的级别例如通信系统、协议或 协议机制细节等来看待一个计算机网络。 在一个网络环境中可以把对象分为本地节点对象和分布式对象。一个本地节点对象在任 何时刻只出现在一个物理节点上。它可以从一个节点迁移到另一个节点。一个分布式对象在 同一时刻可以出现在不同:悟点上通常它是由多个本地节点对象组成。这些对象协同工作完 成一个协议功能,以提供分布式对象的能力。将网络对象应用于简化后的计算机网络结构 通信子系统和网络州分布式对象来表示,而应用被设计为本地节点对象。 3 1 ,2 2 服务与协议对象 一个服务代表个服务提供者( 对象) 所提供的能力,它能被一个或多个服务川户( 对 象) 所使崩。对丁按层次划分通信系统,相邻层对象之间的交互是基t n , 务的。对丁基 :构 件的通信模型来说,由一个或多个服务对象构成的( n ) 服务提供者,提供( n ) 服务。为 了服务的提供,这些同一层的对象使用下层提供的( n 1 ) 服务,执行特定协议进行协作, 该协议定义了对象协同工作的规则和格式。协同工作的服务对象通过协议数据单元( p d u ) 交换信息ap d u 可以由数据头,数据段,数据尾三部分组成,协议控制信息町以放在任何 通信协议分解和构件化的协议予模块 部分,而服务数据只能放在数据段。 在通信子系统模型中,每一组服务对象提供通信功能的一个子集:每一层的服务对象为 相邻高层的对象提供在网络上旋送和接收数据的通信能力,一个服务对象由相互合作的协议 对象构成的。服务对象通过选择和组装适当的协议对象完成,这些协议对象的功能对该服务 对象的功能是必颁的。为了提供服务,每一层的服铅对象要执行一个网络协议,该协议定义 了实体协同工作的规则和格式,而协议对象则被相关的服务对象所隐蔽。通过这种方式,通 信子系统模型为n s p c f 框架提供了基于构件的网络协议支持。 3 1 2 3 层与面 通信系统从功能上可以被分解为一组服务对象,每卜服务对象为鼬户提供一种特殊钓服 务能力。这个系统的分解依照层和面的集合划分将服务对象进行分类,层提供服务对象的垂 直分类,面提供水平分类( 图3 , 4 ) 。每个层、面的组件是构造计算机网络的粗粒度的标推搀 什。 薪 堡苎竺 ( 百乱 服务对象 图3 4 模块化通信系统结构 一个层代袭组服务对象,它们提供通信系统功能的一个子集,这个子集是按j i 通信系 统不同层次功能的差异垂直分解产生的。每一层的服务对象为相邻高层的对象提供服务,服 务对象只能使用其相邻低层所提供的服务,因此每上一个层次就增加了新的功能。 一个蕊也代表组服务对象,提供通信系统功能前个子集,这个子集是菝照功能水平 分解产生的。把面的概念引进一个分层的系统,就把每层服务对象再细分到一组面服务对 象中去。并用一组面服务取代层服务。 为了能使系统的定义能包容不同的功能分解,例如那些基丁o s i 和t c p i p 分层体系结 构,或者那些不用严格分层的结构,通信子系统模酗对层的数目、功能以及每个屡次的腽务 协议规范并不作任何限定。但是另方面,为了便于统一层服务的结构,可以为通信系统预 定义以f 几个砸。如组装匦,访问甄,控制面,传输面等。每个面的服务对象分刘提供桶应 的服务功能,例如配置服务,通信访问控制,数据信息传输等。这种划分是为了将层功能再 细分j , j 一组服务对象,每个对象可以相对独立地配置自i 管理。嘲此,层服务救与通信管理、 组装、访问控制平传输等儿方面的问题相关联起来。这种体系结构划分方式的好处是使每个 囤固囤 通信协改分祥和构件化的机泌了模块 层次模块得到一绸可扩展的服务能力而不是特定服务功能的子集c 3 1 2 4 多点连接模式 七层o s i 模型定义了两类通信:面向连接利面向数据报的通信。这两种通信对新型的 网络j 训刈都是不够的。本文将定义个更加通川的连接模式,能简单灵活地描述。泛的传统 服务 l 嘶需要的新型服务,称为多点连接模式。 传统的连接通常局限于一种每个方向一个数据流的固定的点到点结构。而构件化的通信 服务都是基于多点连接。一个多点连接代表一个有两个或多个用户参与的通信联系,只有加 入到同一连接的用户才能通过交换信息进行通信。h = 户信息以服务数据单元s d u ( s e r v i c e d a t au n i t ) 的方式进行传递s d u 被提供者透明地传送。 在任何时刻,通信系统能够存在拥有不同参与者的多个连接。连接本身只提供用户间的 逻辑联系而信息交换就是以数据流的方式进行的。数据流是一个s d u 序列,它从一个数 据流发送端( d s s ) 单向地流到一个或多个数据流接收端( d s r ) 。图3 5 表示多个d s s 与 多个d s r 的多点连接数据流。一个连接内可以包含任意数目的流,可以自由地对数据流进 行分配利重新调髂,也可以创建、终i e 数据流。而多点连接本身的相关信息如所有参与者地 址,参与者对应关系,连接通信模式等由连接服务的提供者拥有。服务对象之间的交互信息 p d u ,也是通过s d u 进行传递。 图3 5 多点连接的数据流 与传统的连接相比,多点连接方式具备以f 特点:灵燔的q o s 、多点连接、支持快速建 立连接和短暂连接。灵活的q o s 可以根据应用的要求,提供不同的通信服务质量级别删可 靠性:多点连接使连接不用岗限1 二一个方向一个数据流;快速建立连接允许媚户不必等待建 立完成就开始交换信息;短暂连接把建立、数据传输和释放这些分离的服务动作结合成一个 单的服务动作。这些特点可以使多点连接方式更好地适应通信子系统。 3 1 2 5 基本的服务与对象类 从上面可以看出,通信子系统模型需要四种基本的服务对象类提供相应的服务。这些对 象类是:服务访问点、连接端点、d s s 和d s r 对象类。服务访问点类对象提供某一特定通 信服务的访问能力;连接端点类对象提供某一特定连接的访问能力;而d s s 类干d s r 樊川 j 一表示个数据流。嗣此,通信服务能力和协议功能廊该按照它们与哪些服务对象相关进行 6 髫 鎏泣 通信机议分州和构件化的协泌予模块 分类。 同时,通信子系统提供两类服务:组装服务和通信服务。组装服务能配置用户定制的通 信服务,组装类服务对象提供组装服务。通信服务允许对相应的用户进行寻自 、维护连接和 交换s d u 等,它的服务是由不同类的服务对象提供的,包括服务访问点类、连接端点类、 d s s 类雨ld s r 类。通过这样的结构化,就能把组装分成更小的组装步骤,从而简化通信服 务的组裟过科。在每个步骤中,只需要对范围缩小的通信能力和协议功能进行考虑。 3 1 2 6 基本的通信过程 通信子系统模型把通信服务的使j h 划分为为五个阶段:服务组装、连接建立、数据传输、 连接释放和服务删除。 殿务绍基在应用使用它们专用的通信服务之前,它们必须向组装服务对象发请求,米 组装这些服务。每层拥有一个组装服务,响应应用的通信请求,并返回个服务访问点 ( s a p ) 对象。访问点对象代表一个被特别请求组装的通信服务。 巷毖建- r :一个连接的建立分为无验证、连接提供者验证和用户验证三种级别的服务。 需要验证的连接只有在验证完成卮才能开始数据传输。对每一个新连接,用户从它们本地 s a p 对象中得到一个新的连接端点。连接端点对象是控制面中的服务对象,它使相关刖户 能对连接进行控制。 觑锚律霭允在数据传输阶段,j = j 户可以按所定义的数据流的结构交换s d u 。对丁每一 个流,州户拥有一对传输面的服务对象一一为d s s 和d s r ,分别与一个连接端点对蒙相芙 联。s d u 的传输也包括无证实、服务提供者证实和用户证实三种。 碰接口羁赫在一个连接上,最后一个用户离开它之后,该连接就隐禽地释放了。而_ l | :| 户 一口释放它的连接端点对象就离开了个连接。释放连接端点可以用无证实的服务动作或本 地服务动作来完成。 殿努嬲饼:在取消阶段,一个川户的s a p 对象被废弃,所有与之相关的连接端点被释 放。取消一个访问点是通过一个本地服务动作完成的。 3 1 3 通信子系统模型设计原则 对象是通信子系统模型中最重要的内容,这个对象可以包括服务、协议、构什等。个 服务对象是由台作的协议对象构成的。一个协议对象实现一个专门协议机制,州来提供一个 特定的协议功能。为实现相同的协议功能,会存在不同的协议机制。当组装一个高效的服务 对象却缺少合适的协议对象时,必须定义一个新类。新的协议对象类应该与已有的协议对象 有很好的兼容性。为了达到最佳的可复用性,当设计一个新的协议对象类时,应当考虑的某 些原则将在r 面给出。遵循这些原则,则可以设计出符合面向对象的通信于系统模型。 通信协议分解和构件化的协议子模块 f 1 ) 通刚性:为了达到高可复州性,一个协议对象应当是通州的,印普遍适川。例如一 个通_ l j 的近接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语写作健康课课件
- 英语健康主题课件教学
- 机场净空区管理办法
- 化妆点标识管理办法
- 地铁口摊贩管理办法
- 江西外经证管理办法
- 无症状患者管理办法
- 巾帼创业贷管理办法
- 新材料试用管理办法
- 教学与科研管理办法
- GB/T 24217-2025洗油
- 2025-2030中国坚果配料行业市场现状供需分析及投资评估规划分析研究报告
- 软件渠道销售协议书
- GB/T 10781.3-2025白酒质量要求第3部分:米香型白酒
- 2025护士条例专题培训
- 运用PDCA循环规范麻醉精神药品管理
- 《腰椎间盘突出的手术治疗》课件
- 购买山地做墓地合同协议
- 绍兴市2025届小升初必考题数学检测卷含解析
- 防酒驾课件模板
- 2025年高级人工智能训练师(三级)理论考试题库-含答案
评论
0/150
提交评论