已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西北工业大举硕士论文摘要 摘要 随赣嵌入式的广泛应用和深入发展,围绕潜嵌入式性能改善的研究屡出不 穷。其中从软件系统的角度,结合溺今流行的软件技术组件技术对嵌入式系统 中躲软件缀织结构进铃垒嚣改良,即维搏诧嵌入茂操馋系统溅戏炎一穆主滚臻究 趋势。 本文作为该研究的组成部分旨在基于多任务操作系统以组件管理为平台实 现t c p i p 协议族的组件化。论文髓先提出了t c p i i p 协议组件模型,并对缎件划 分援毽投互操作关系遴行了蠲述。耱爱详缨谩诗了蛰议族中熬鬻焉缝掌 接鞠莠麓 要描述了组件实现。嘏后论文对如何布署协议组件进行了一般性说明。 关键溺:强入式巾澜俸秘议簇组襻设计模式 耍! ! 三些查兰堡主堡茎竺! 竺! 一 a b s t r a c t w i t hw i d e l ya p p l i c a t i o na n dd e e p l yd e v e l o p m e n to fe m b e d d e ds y s t e m ,t h e r e s e a r c h e sf o ri m p r o v e m e n to fp e r f o r m a n c eo f i ta r eb e i n gt a k e ng r e a t l y f r o mv i e w o fs o f t w a r e s y s t e m ,i t h a sb e c o m ea m a i n l y t r e n dt o i m p r o v et h o r o u g h l y t h e a r c h i t e c t u r ea n dc o n s t r u c t i o no fe m b e d d e ds y s t e mw i t hc o m b i n a t i o no f ,c u r r e n t l y p o p u l a rs o f t w a r et e c h n o l o g y , c o m p o n e n t , n a m e l y t o i m p l e m e n tc o m p o n e n t - b a s e d e m b e d d e d s y s t e m b e i n g a p a r t o fc o m p o n e n t - b a s e dm u l t i - t a s ke m b e d d e do sr e s e a r c h ,t h e d i s s e r t a t i o na i m st oi m p l e m e n tc o m p o n e n t - b a s e dt c p i pp r o t o c o l s t h ec o n t e n to f t h e d i s s e r t a t i o n c o m p r i s e s o fc o m p o n e n t - b a s e dt c p i pm o d e l ,t h em e c h a n i s mo f d e m a r c a t i o n o f p r o t o c o lc o m p o n e n t s ,t h ei n t e r o p e m t i o n b e t w e e n p r o t o c o lc o m p o n e n t s , t h e d e s i g n a t i o no fc o m m o nc o m p o n e n t si n t e r f a c e s ,t h ei m p l e m e n t a t i o n a n dt h e d e p l o y m e n t o f c o m p o n e n t s k e y w o r d s :e m b e d d e ds y s t e m ,m i d d l e w a r e ,p r o t o e o l s t a c k , c o m p o n e n t ,d e s i g n p a t t e r n s i i 两北工业大学硕士论文 第一镦绪论 第一章绪论 1 1 选题背景及意义 本文研究内容作为组件化多任务嵌入式掇住系统研究项目中的一个缌成部 分,鏊焱礴究中阉传鞠缀舞技本豹发震在嵌入式逶绩矮蠛懿液蠲。奉章穆饕走燕 要说明该项目的研究背景及意义,之后再对通信协议相关研究的背景和意义作一 说明。 1 重。l 顼磊背景 众所周知,嵌入式的发展臼新月异,嵌入式系统随着计髀机技术的成用已经 渗透到科研,工程,帮事,民用等众多方面,并且扮演着越来越重要的角色。它 妇数发疑遣越来越与入们款生活感怒穗关,隧鲶可竣霓到嵌入式产品;p d a ,手 枫等掌上设备;微波炉,洗衣枫,空调嚣等家硒电器;飞机,汽车,船舶簿交通 工具以及其它应用中的嵌入式系统”。 嵌入式系统的发展经历了三个阶段:首先怒以单芯片为核心但没有操作系统 支持熬霹缡程控毒鼗形式豹系绞;英次是运行予鑫秘不同类鬃戆徽楚理器上麴嵌 入式实时操作系统,但与互联网笼关;再次则怒具备网络残联的嵌入式系统”3 。 只有具锯网络通信功能的嵌入式系统才能真正的延伸人类的钾慧触角,嵌入式系 统置身予网络之中才蹙其发展的必然所在。但鼹赛于网络之中则必然引发分布式 诗算闫麓, l 霉这个润透懿解决又擐鹅显离不嚣巾润俘技术翡发展。 中间件是对分布式应用的抽镦,它抛开了岛应用相关的娥务逻辑的细节,保 留了典缴的分布交置模式的关键特征。经过抽象,将纷繁复杂的分布式系统经过 提炼秘必要的隔离鼹,班统一的髅覆形式呈瑷绘疵尾。这样巾阕馋就在参与应_ 藩l 程序鹣掰有计冀枫之闯建立起一秘方便鲍实麓鹣通信视铡。斑瑗在中闻 牛褥供豹 环境中可以更好地集中于业务逻辑上,同时它们可以以组件的形式存在,最终实 现异构环境下的良好协同1 。 爨l 终是对功能摸浚囊正懿圭| 装实瑗,仅遴j 霪揍匿与多 部滋行交互。它戆产生 是为了遗应当软件波糟环境趋予分布,软件应丽种类趋于多样化对,复用软件模 块从而减少开发成本,将软件开发从分布式的麓杂环境中解脱出来,以及便于管 理各软件模块等要求。目前主流的缀件技术是c c m 规范,e o m 模型以及e j b 模型。燹论疆一耱缀磐菝本,缝耱黎麴都会蘩泉显著戆三大撬轰汹1 : 一应用的定制 用户可以方便地添加新组件或更改已有组件从而方便地定制应用。 快速应用开发 西北工业大学硕士论文第一章绪论 开发人员可以从某个组件库中取出所需组件并将其快速组装到一起以构 造所需的应用。 简化分布式应用开发 本机上的应用不需要知道实际所用到的组件位于何处,远程组件也不需要 知道应用运行在何处。 综上所述,将中间件和组件技术延伸到嵌入式领域已是一种趋势所在。然而 另一个问题则是,尽管目前嵌入式硬件性能已经有了很大提高,但是出于性价比 的考虑,大多数嵌入式系统仍然采用较低性能的硬件设备,在这种嵌入式系统中 内存空间和处理能力有限的问题更加突出。因此,从系统的角度,如何利用中间 件和组件思想设计符合嵌入式硬件环境的多任务嵌入式操作系统就成为研究的 重点所在。具体而言,一方面利用组件的独立性在网络中分布各程序模块,从而 在系统配置时可以定制一个度客户端,而当需要时又可以通过网络下载相应的组 件对该系统进行扩展;另一方面利用中间件对于分布计算的支持将嵌入式客户端 上的处理转移到后台服务端,从而缓解嵌入式系统中有限的内存空间和处理能 力。 为了充分挖掘嵌入式系统中组件的可定制性和分布性,其体系结构必然要不 同于图l - 1 中p c 机的体系结构”“。如图1 2 所示,在嵌入式操作系统中应用程 序,系统外壳和t c p i p 协议族都可以封装为组件,从而将更多的功能模块而不 仅仅是一般意义上的应用模块封装为组件。同时组件化功能模块除了满足系统可 定制,网络可扩展和处理推移几点之外,还可以加快开发人员基于该操作系统上 的应用开发。 图1 - ! p c 上的组件化操作系统体系结构 图1 2 中,中间件实现将根据应用组件的请求是本地还是异地,从而将处理 转发给本地组件管理器( l c m ) 或分布组件管理器( d c m ) 。前者用于支持本地组件 对象的请求和管理,后者用于支持远程组件对象的调用。其中基于l c m 的t c p i p 协议族组件用于支持d c m 的远程通信。 两北工业大学磷士论立 第一章绪论 图l 。2 研究中的嵌入式操作系统体系结构 薹1 2 选瑟背景 有目共睹,通信技术融进入人们日常生活中的每一方面;从专业的、教育的 用途到纯粹的娱乐;从电报,电话,计算机到互联网。无不体现出这种技术的渗 透“。 磊2 0 世纪9 0 年代发最起来豹强联阚薅a 俄鬻入了翦爨未蠢熬数字整器, 其中网络逶信协议正是构建分布式系统强连的主要技术之一。目前大部分网络协 议所遵循的协议模型都属于二维协议“。它们或者参照了i s o 的o s i 七层协议 模型,或者借鉴了由t c p f l p 协议族实现所建立的四层协议模型。其中t c p i p 忍 发震或菇支簿缀多流行瘦耀静逶售魏汉簇,宠蘩露予t e l n e t ,f t p ,h t t p 等瓣 支持。 然而,对于音频流和视频流这种新的应用,作为通用协议旒的t c p i p 就表 现的不够支掩。同对,万维网以及其它毅的投术的流行势必会产生一系列分布式 森溺,舔这魏分奄式应臻又会带来专弱貔及多襻证瓣逶信需求。酃么同样佟为遴 用协议族的t c p i p 如果仅仅想依赖对其自身的优化来满足这些通信需求也是不 尽现实的。i 而通过对t c p i p 协议族进行组件化,以满足协议实现可以根据实际 应矮定割,并且当不需要鹣时候可以剿除秘议组 孛以麓蠹内存空间或者当震要豹 时候通过刚络下载裾应髂缀俘对协议滋行在线扩展旒成为醭究静方随所在。 组件化通信协议尽管在通信的执行效率上会产嫩一些损失,但是针对嵌入式 系统的实际鬻要却可以裁剪出体积精小的协议组件集合,缓解了嵌入式系统中内 存资源受袋貔翘蔻。目醛缀 孛纯逶菇捺议使嚣发入受珂竣避孬壅蠲秘汉组终戆姨 速开发,并使该协议组件集合具备一宠程度的在线w 扩展性。 1 2 国内外发展现状 采矮缀髂技术载嵌入式撵 摹系统瓣发豢强蘸燕方兴来艾,嚣绛魏m i c r o s o f t 在2 0 0 2 年即发布了w i n d o w sx pe m b e d d e d 以及正在开发w i n d o w s n e t e m b e d d e ds e r v e r 。国内如北京科泰世纪公司正在研发的z y c o 。对于通信协议也 西北工业大学礤士论文 第一章绪论 早已提出了两种组件模型,但是存在划分粒度过粗和过细的问题。前者很难体现 窭协议组搏熬霹定割牲,震者翼对硬传器袭缀骞,不符台嵌入式墩怒琢凌。毅她 本篇论文试黼提出一种可定制酶耨的缀件模型来勰决这两个闽麓。 1 3 研究内容 零文戳t c p i p 蛰议羧梵模型遂野磺究。提出了麓予t c p i p 耱议薅系豹缀转 模型,详细定义了模型中童要组侔的接口,简要擒述了组件内部实现,并在最荫 说明了基于p p p 的协议组件原型实现及其协议组件的布署。 l 。3 1 组捧模鳖 本文提出了基于组件化多任务嵌入式操作系统t c p i p 协议族的组件模型。 该组件通信协议模型具备如下特点: 一易扩展:针对不麓豹嵌入式通信繇壤扩震赣豹组转模块,可班通过事掰 蕊藏缱律或通过黼络动态获取。 - 易裁减:针对不同的嵌入式通信环境剪裁出与具体需求匹配的协议组 件集,对嵌入式蘸统的应用环境而言具备一定程度的可邋性。 _ 易开发:赞怼藜戆嵌入式逶接褥求,囊震跫蠢豹凌议缀传进行孬次舞发 或糟通过包容和聚合的形式霪耀已有的协议组件加快开发进度,节省开 发成本。 - 分子性:控制组件粒度,使其弊于粗粒度岛细粒度之间,保证组件必疆 毽黪阕霹,缍护缀件关系靛麓法瞧霹嚣将弓| 入缓 孛掰露聚熬对逶信效拳 的损失降到最小。 _ 开放性:遵循标准的插口设计原则,支持旗于t c p i p 协议栈的应用屡 垮议组件的拜发,使褥嵌入式系绕的通信斑蹋在一定程发上可进行持续 开发。 1 3 2 组件设计 设计并是义了t c w i p 按议缀转模黧孛豢楚组转接臼,囊薅了缝终互操佟关 系,同时篱豢阐述了这些缀件盼内部实现。t c p i p 协议组件模燮中常用组件接 口的设计遵循了以下特憔: _ 简洁性:合理设计接口中的方法数目及各方法中的参数数目,简化协议 缓l 睾豹接嗣形式。 一完铸性:协议缎件的接口覆盖了组件所能为外部提供的所有功能以及 需骤外部提供何种支持的含义。 两北t 业大学硕士论文 第一章绪论 聚簇性:按照归类的思想设计协议组件的接口,使得接口的逻辑意义明 确,从而形成相对独立的组件与外部环境的通道。 一结构性:利用组件接口的继承特性,描绘出接1 :3 的树形结构,从而在一 定程度上确定了组件对象之间的关系。 1 3 3 原型实现 基于p p p 的t c p i p 协议组件原型,提出组件运行的模拟平台,并对协议组 件布署进行了描述。 1 4 论文组织 本文分为4 章 第一章:绪论一简要阐述了本文研究工作的前提环境,并分别对基于嵌入式 组件技术的网络通信的研究背景以及研究内容作了简要介绍和概述。 第二章:协议组件模型一在对相关t c p i p 协议组件模型进行分析的基础上, 提出了新的基于组件化多任务嵌入式操作系统的协议组件模型,并详细阐述了其 组件划分机理以及组件互操作关系。 第三章:协议组件设计在对当前主要组件规范进行比较的基础上,解释了 采用c c m 规范的原因,并对组件运行环境一容器进行了简要说明。之后本章重 点阐述了t c p i p 常用协议组件的设计,接口定义以及组件内部实现。 第四章:原型实现一以基于p p p 的t c p i p 协议常用组件作为实现原型,对 协议组件如何布署进行了一般性说明。 两北工业大学磷:论文 第= 章协议组件横盥 第二章协议组件模型 本章1 2 上藻于缀辞静开发( c b d ) 来设计t c p i p 协议族,在魄较了t c p , q p 协议 族相关的组件模型后,分析了协议原理并就此提出了协议组件的划分粒度,描绘 出新的t c p f l p 协议组件模型,最后对协议组件之婀的互操作关系进行了描述。 2 1 设计黼标 本文研究的协议组件模型支持以t c p i p 为中心的诸多协议,如表2 - 1 所示 表2 1 疯掰震珏f p s 眭p脚t e l n e t 传输层 t c pu d p 网络层 i pi c m p 链路层p p p 8 0 2 。2 2 2 平台属性 2 。2 1 设计开发平台 本文设计开发平台如袋2 - 2 所示: 表2 2 l c p ui n t e lx 8 6 i 撵撵系统 瑚n d o w s 2 0 0 0 l 中间件 m i c 0 2 3 1 0 l 设计工具 r a t i o n a lr o s e ,v i s i o2 0 0 2 集成开发环境 m i c r o s o f tv i s u a lc 十幅0 2 2 2 目标平台 本文目标平台如表2 3 所示: 表2 ,3 l c p u邋用嵌入式c p u | 操作系统嵌入式多任务操作系统 l 嵌入式中间件m i c o 的某个变体 2 3 相关模型 目前存在两种t c p i p 协议族组件模型,而相成的对于组件的划分也存在两 西北工业大学硕士论文 第= 章协议组件模型 种方法:粗粒度划分和细敉度划分。所谓的粗粒度划分是指以协议体系中的层次 免边赛进李亍缀 孚封装,其鞭豹在于尽爨减少透信捺议执 亍效率的缀失,组件划分 简单,缺点剃是不易予定潮。所谓酌绸敉度翔分刚避强将上传或下传静数据辩凝 为组件,而将对这些数据进行处理的操作分别封装为大小不同的组件”,其优点 是可复用程发商,缺点是协议执行效率的损失较大。为了理解这两种模型同时便 予它饲与谂文孛薅要提爨戆耱议组传模麓夔毙鞍毫巷要在这墨臻遴一步豹耀逡。 2 3 1 粗粒度模型 粗粒度协议组件模烈靛目的在于通过组件的封装性在一定程度上弱化协议 凌鼹攘臻之闷懿联系,毽签可戆褥砖运信效率豹损失凝弱最小。戮魏它鼓蛰议鼷 为组件划分粒度,在层缎件内封装该鼷所对应的协议集。这些层组件包括应用鼷 组件,传输层组件,网络层组件和数据链路层组件。组件间互操作关系简洁,因 j 彗:在这里不终赘述。 2 3 2 细粒度模型 细粒度协议组件模型的目的在于实现不同的环境下组件的可配置性和绝对 戆可重翅靛。辍魏它基在瓣拱缰终与郅壤魏最夺藕毪。在该模型孛豹组箨氯戆 目录组件,撩作组件,缀序组件,环辘组件和锚缎件。 目录组件是封装信息( 如序列号,窗口大小,数据有效载荷) 的组件。这些倍 息按照两种彤式划分:字带数组和预定义类型的对象。操作组件怒封装协议处理 繇嚣要豹功戆如纠话羁校验,重薪撵痔,分冀) 鹣缝释,蔡哭鼹瓣添缓孛进行怒 理。维序组件则是将一系列有序的操佟缒件和一系列有序的目录缀件联系起来的 组件。 协议环境组件替代+ r 糖议棱的声明。与包含不网协议的协议滕楣反,协议环 境维僚集成了特殊分布式应用所需要懿漆褒端嵇议瓣所有功麓。获技术上谤,一 个环境组件怒一个向协议实现器提供接口注册维序组件的组件。幽它来初始化以 及冻结维序缎件并统一管理组件间的协调。锚组件负责将多路复用和多路分解封 装到协议强浚豹乡 部。农镶组终上层远行起嚣境缀箨必须被注娥。 在这个绷粒度模鍪中将组侔闷的实现细节稆蠹隐藏的关键梳涮是事箨,它对 于提供可重用性及灵活性至为重要。事件分为两种类型: 一创媳维序组件实例的事件:触发一个创建新维序组件实例的信号。 一弱皴事箨:当竣悫交稼露,蘧懿其它豹缀转这一售怠。 通常由操作组件触发遂两种类型的事件,它们可以与任何方法结合并且可以 带有任何组件的任何属性参数。创建维序组件实例的事件接收器威当是一个维序 组件,由它慕触发一个赣信息的处理,如接收数据傣息触发一个接收操作。周知 谣北工业大学颇士论文第= 章协议组件模型 事件接收器则通常是一个操作组件,如接收操作会邋知重传的缓存空问可以被释 羧。 2 4 新组件模型 2 。4 1 缝体娥分 分析t c p 佃协议体系的处理步骤w 以看到,当斑用进程将数据下传给协议 族时,由相应的协议层在数据体头部增添某些必要的信息,执行某些计算操作( 如 计算校验和) 并更改协议内部状态。当协议族收到来自网络的数搬对,将会对其 逐行解耩,凳浚诲谖内部鹣状态僖惠,弗显按照鳃椽豹结采将经避囊离瓣数据镰 上传给对威的协议直至分发给某个应用或者创建新的信息并发邀来作为对接收 数据的应答。一般情况下,协议族中对于数据的处理通常包括计算校验和校骢 秘认最,序梦l j 纯重薪拷黪,分片组装,热密解密莓;嚣透信熟状态信息则倪 疆滑动整日大,j 、,序剜号,连接状态譬;另乡 通信中:i 丕涉及翔定辩及超时等掰孳l 发的相关问贼。因此只是以模块来确定协议组件粒魔,那么协议组件粒度可大叮 小。大的划分方式如粗粒度组件模型划分方法,小的划分方式则如细粒度组件模 爨翔分方法。 而本文中所提出的对于t c p i p 协议组侔的剡分粒度介于两鬻之离一主要怒 以协议为边界进行组件封漩。这种划分的基本依据在于本文中t c p i p 协议组件 化的设计目标是协议族可定制以最小的体积满足实际应用,同时与硬件性能相飚 熬疆获褥较好豹穗藐表凌。粪薅嚣吉,这榉翔势戆嚣瓣骞霆个方嚣:其一,t c p i p 协议族是一个庞大的协议集合,很多协议在某些应用中可能根本不需要,而这魑 应用的场合也不多,因此有必要将它们封装起来以便于裁剪或加溅。其二,经过 对t c p i p 褥议体系应用( 比如a d h o c 和v o i p ) 的研究和分析发现,这些基予 t c p i p 懿秘议俸系,箕麓舜主要体瑷凌应焉层癸议,传输层帮黼络层夔主体谂 议相对来说凌化不大,因此没有必要将它们过分细化以寻求高度可复用性。其三, 组件粒度的过分细化从熬体上增加了协议组件的互操作关系。同时也会导致协议 捩行效率熬下降,这种影髌在嵌入式环境姆更燕突爨。其四,t c p i p 协议的缀 俘纯与组俸他嵌入式操律系统的蟊标一数。不存在多耱枫隶蔫予维护多个模块, 即除了微内核之外所有模块都基于组件管理器之上以组件形式封装。 2 4 。2 组件类别 按照本文所提出的缀件划分规则,协议组件的l 融类基本上遵循的是t c p i p 协议体系中的层次划分。协议组件主要采用组件和o o 技术,下列是组件类别的 说明。 一8 - 西北工业大学硕士论文第二章协议组件模型 一应用层标准组件名称标识:a l s c 对外承担响应进程请求,接收进程数据并将其传送给插口层以及接收来 自插口层的数据并向进程提交。对内负责应用层协议的逻辑控制和状态 转换。 _ 插口层标准组件名称标识:s l s c 对外承担插口的建立,绑定,连接,数据的发送,接收,请求的监听插 口管理以及连接的终止。对内实现发送时进程态到内核态操作的转换, 将进程指定的输出缓存中的数据收集到内核缓存中并复制进程信息,实 现内核缓存的具体组织结构以及接收时将从下层接收到的数据从内核 缓存传送到进程缓存。 一传输层标准组件名称标识:t l s c 分为负责面向连接协议的标准组件和负责非面向连接协议的标准组件。 这些组件对外承担处理来自插口的系统调用以及来自网络层的调用,对 内实现则负责传输层协议所具备的职责【0 3 。 网络层标准组件名称标识:i l s c 对外承担接收来自传输层协议的数据并向下层发送以及接收来自链路 层协议组件的调用,对内实现则负责网络层协议所具备的职责 0 3 】。其中 i p 组件是该类组件的主要组件,负责分组发送接收,转发,分片,重装 等功能。 链路层标准组件名称标识:l l s c 对外承担接收来自接口队列的数据并向下发送给网络以及接收来自网 络的数据并将数据插入i p 输入队列。对内实现负责协议内部逻辑控制 和状态转换。 2 4 3 组件模型 根据组件划分原则,可以构建图2 1 所表示的t c p i p 的协议组件模型。这 个模型非常简单,每一个协议层中包含若干个分别与该层协议对应的组件。插口 层尽管不属于任何协议层但是由于其逻辑独立性也封装为一个组件( s l s c ) 。 西北工业大学硕士论文 第= 章协议组件模型 可 成用层 插u 层 传输层 网络瑶 $ i :! i i i 戛蔓! ;:i i i i 鎏! :兰! 妻二羔三! i i 圣翼:j 链路层 $ 图2 1 协议组件模型 物理层 z 4 4 组件互操作 t c p i p 协议组件之间从不同的角度分析存在多种互操作关系如执行流程, 并发状态,总体调用关系。本节将分别进行描述。 2 4 4 1 执行流程 _ 当进程将数据由应用层向网络发送时: 1 ) 应用层标准组件( a l s c ) 负责处理特定的应用程序细节,同时与插口 组件或网络层组件进行通信。 2 ) 插口层标准组件( s l s c ) 根据相应的请求创建套接字并与进程,文件 表结构建立联系,随后将连接请求发送给传输层组件等待成功返回 后,将进程缓存中的数据搬移到内核缓存中发送给传输层组件。 3 ) 传输层标准组件( t l s c ) 按照连接类型进行连接处理。对于面向连接 协议的组件( 如t c p c 组件) 将建立一条与指定的外部地址的连接, 对于非连接协议组件( 如u d p c 组件) 将只是记录外部地址,以便发 送数据报时使用。在数据发送时,传输组件进行报文首部填充等相 关操作,然后发送给网络层组件。 4 ) 网络层标准组件f _ :i l s c ) 对于待发送的数据报进行首部初始化,路由 西北工业大学硕士论文 第二章协议组件模型 选择以及源地址选择和分片,随后调用链路层组件发送。 5 ) 链路层标准组件( l l s c ) 根据具体协议会有不同的处理方法。对于以 太组件( e t h c ) ,其收到数据发送请求后将进行路由验证,特定协议处 理,构造帧以及接口排队,根据输出队列状态决定是否向网络发送。 对于点对点协议( 如p p p c ) 贝1 j 在协议组件集初始化时便建立链路层的 连接,当收到数据发送请求后将构造数据帧根据链路状态决定是否 发送。 当网络接收到数据向上层协议组件传递时: 1 ) 链路层标准组件( l l s c ) 对接收到的网络数据进行帧首部检查,向上 分发以及将剥离掉帧首部的数据放入网络队列。 2 ) 网络层标准组件( i l s c ) 根据链路组件的直接( 调用) 或间接( 中断) 触 发对到达的分组进行验证,选项处理及转发,分组重装,向上分发 给上层协议组件。 3 ) 传输层标准组件( t l s c ) 根据连接类型会对接收到的数据作有所差 异的处理。非连接组件( 如u d p c ) 将对收到的数据报完成一般性的 确认:处理目的地是单播地址的u d p 数据报一利用协议控制块找到 合适的p c b ,把数据报放到插口的缓存内;或者处理目的地是广播 或多播地址的u d p 数据报一将数据报提交给多个插口。面向连接的 组件( 如t c p c ) 将对输入数据报文段作有效性验证以及利用协议控 制块寻找连接的p c b 。之后根据首部预测将作不同的处理,预测成 功时迅速剥离掉口。将t c p 首部及t c p 选项的报文段加入到插口的 接收缓存中,同时唤醒接收进程;否则执行缓慢的处理如丢弃i p 和 t c p 首部,计算接收窗口,并根据主动打开连接或被动打开连接作 相应的处理,最终将数据段放入插口缓存或放入插口的乱序重组队 列中。 4 ) 插口层标准组件( s l s c ) 从接收缓存中接收数据并将内核缓存中的数 据搬移到进程缓存中,随后释放相应的内核缓存空间。 5 ) 应用层标准组件( a l s c ) 按照具体协议将进程缓存中的数据提交给用 户或者作其它相应处理。 西北工业大学硕j :论文 第二章协议组件模型 翩 a l s c 执行数据的接收应用逻辑 甲个 j ,s l s c 执行数据接收插口操作 a l s c 执行数据的发送应用逻辑 个 小t l s c 执行数据接收传输操作 s l s c 执行数据发送插口操作 个 山 i l s c 执行数据接收网络操作 t l s c 执行数据发送传输操作 个 扎 l l s c 执行数据接收链路操作 = l l s j ,l南 执行数据发送链路操作 唑开y t 图2 2 协议组件的收发流程图 2 4 4 2 多任务处理 在多任务操作系统中,t c p i p 协议组件集同样要完成非组件化的t c p i p 协 议族所完成的对于多进程通信所作的并发处理。协议组件集处理输入分组采用的 是与b s d 4 4 网络协议代码中一致的中断优先级关系。通常情况下,一个设备中 断引发接口层代码执行,然后它产生一个软件中断引发协议层代码执行,当内核 完成这些级别的中断后,执行插口代码。当有多个进程执行通信操作时( 图2 3 1 , 为了并发处理这些事务,必须对这些事务的当前操作规定不同的优先级。比如当 网络接口数据到达时必须及时处理,否则数据就会丢失,这样网络设备输入输出 的中断优先级别相对就要高一些,如图2 3 所描述进程4 打断了进程2 的执行。 又比如进行网络协议操作的进程优先级要比执行插口操作的进程优先级高一些, 因为网络协议承担着网络中确认,转发,应答,相对于插口操作要求较高的处理 权限( 具体的中断优先级关系可以参考s t e v e n st c p i p 详解卷2 中的图1 1 3 ) 。另 一方面,多任务并发必然要求对进程间共享的数据结构插口队列,接口队列, 协议队列的处理,如果不协调对它们的访问,可能会破坏数据的完整性。因此在 对这些数据结构进行操作时需要加锁,加锁的级别当然是至少不允许被网络设备 输入输出事件打断,不过在加锁开锁期间所作的操作应尽可能少,否则其它设备 的请求会被忽略,数据会丢失1 。 西北工业大学硕士论文第二章协议组件模型 运行组件进程 p l 图2 3 多任务下的协议组件关系 注:该圈以r i c h a r ds t e v e n s 的t c p f i p 详解卷2 中的图l - 1 4 为模板描绘。 2 4 4 3 总体调用关系 _ 表2 - 4 是对协议组件总体调用图中将要用到的缩写的描述。 表2 - 4 名称缩写注释 s l s c s o c k e t 层标准组件 u d p c u d p 协议组件 t c p c t c p 协议组件 i p s c 网络协议标准组件 a r p s c地址解析协议标准组件 i c m p s ci c m p 标准组件 p p p s cp p p 标准组件 e t h s c以太网协议标准组件 _ 表2 5 是对协议组件总体调用图中将要用到的图型符号的描述。 - 1 3 两北丁业大学硕士论文第二章协议组件模型 表2 5 图标标识标识注释 ) 组件标识 协议队列标识 调用判断标识 l 广一 数据流标识 l 中断发生标识 协议层标识 注释说明标识 数据输出时,组件之间调用或系统调用 标识。由调用者指向被调用者。 数据输入时,组件之间调用或系统调用 卜 标识。由调用者指向被调用者。 ) 组件自返调用标识 指向说明的标识 协议组件总体调用图: 总体调用图分为输出( 图2 - 4 ) 和输入( 图2 - 5 ) 。图中协议队列在组件之外 只是为了描绘方便,按照图中标注可以知道该协议队列属于哪个协议组件。 两北工业大学硕士论文第二章协议组件模型 图2 - 4 数据输出时协议组件调用关系 1 5 西北工业大学硕士论文 第二章协议蛆件模型 图2 5 数据输入时协议组件调用关系 一1 6 西北工业大学硕士论文 第三章协议组件设计 第三章协议组件设计 3 1 组件设计规范 目前存在三种主流的组件规范或模型,如c c m 组件规范,c o m 模型和e j b 规范,本文限于篇幅只对它们作概括性的阐述和比较。 e j b e j b 是一种组件规范,一个服务器方的组件模型,同时也是用于开发和布署 多层结构的,分布的,面向对象的j a v a 应用系统的跨平台的组件体系结构。e j b 技术作为j 2 e e 企业开发平台最核心的部分,是一组符合定义规则并提供特定回 调方法的j a v a 类和一个x m l 文件合并到一个单元中的产物。 c o m c o m 规范是一个说明如何建立可动态交替更新的组件的规范,它明确了远 程组件对象间的通信采用r p c 形式,并采用g u i d 来标识组件对象和组件接口。 c o m 规范不支持实现继承,而是提供了包容和聚合机制来取代实现的继承性。 c o m 规范中的核心c o m 库提供了对所有客户和组件都非常有用的组件管理服 务,它保证了所有组件的大多数重要操作可以按相同方式完成,并且由它来支持 组件的分布式调用。 c c m c c m 是一个用于开发和配置分布式应用的服务器端组件模型规范,主要包 括如下三项内容: 1 ) 抽象组件模型,用以描述服务器端组件结构及组件间互操作的结构 2 ) 组件容器结构,用以提供通用的组件运行和管理环境,并支持对安全,事 务、持久状态等系统服务的集成。c c m 规范明确了在c o r b a 提供中 间件通讯支持的情况下,组件和容器可以用任何语言实现并可以在任何 平台上运行。 3 ) 组件的配置和包规范,c c m 使用包技术来管理组件的二进制、多语言版 本的可执行代码和配置信息,并制定了组件包的具体内容和基于x m l 的文档内容标准。 c c m 规范通过定义一些特征和服务以允许应用程序编程人员实现,管理, 配置和使用由在标准环境下的c o r b a 服务集成的组件来扩展c o r b a 对象模 型,这些c o r b a 服务包括持续( d e r s i s t e n c e ) ,安全( s e c u r i t y ) ,事务( t r a n s a c t i o n ) 以及事件服务( e v e n ts e r v i c e s ) 等。c c m 规范不只使得服务方更多的软件可重用, 而且为动态配置c o r b a 应用程序提供了更大的灵活性。 规范评析 两北工业大学硕士论文 第三章协议组件设计 c c m 与e j b :c c m 规范结合了e j b 当前规范,是e j b 规范的语言中性的超 集。同时具备语言无关性,支持与其它规范的衔接,建立在更精确的元模型之上, 支持更复杂的组装。总体上,c c m 和e j b 是互补的。 c c m 与c o m :c c m 具备真正意义上的跨平台性和开放性,相对于c o m 可 移植性明显要好,但其不支持i d l 指针型别。 综合评析:网络环境下,组件和其所依赖的分布式计算平台紧密相关,因此 对于组件规范的评析离不开对它们各自平台的评析。本文从集成性,可用性,可 扩展性三方面对这些组件规范和其所依赖的分布式计算平台进行比较分析( 图 3 1 、: c o r b a ,c c mj 2 e e ,e j bd n a ,c o m 集成性 跨语言性好 差( 限于j a v a ) 好 跨平台性好好差(限于 w i n d o w s ) 网络通信好好一般 公共服务组件好好一般 可用性 事务处理好一般一般 消息服务一般一般一般 安全服务好好一般 目录服务好一般一般 容错性一般一般一般 开发商支持度一般好好 产品成熟性一般一般好 可扩展性 好好一般 图3 1 根据图3 - 1 ,在性能和事务处理方面,c c m 所基于的c o r b a 平台优于j 2 e e 和d n a 平台。这意味着c c m 组件所能获取的服务支持要优于e j b 组件和c o m 组件。但是在开发商支持度和产品成熟度方面,c o m 和e j b 要更好。然而本文 研究所基于的操作系统平台是非w i n d o w s 的,同时对于应用开发的语言支持并 不局限于j a v a ,因此最终决定采用c c m 规范进行组件化设计。 西北工业大学醐一l j 论文第三三章协议组件设计 3 2c c m 组件及容器 c c m 缎僚 在c c m 中,组件通过端口的一系列接口与外部实体如o r b 服务,其它组 件或者客户交互,从而定义了一个调熬组件配置的标准机制。组件利用端口向外 赛透露它们掇供馋秘连接,溺时又说嬲期望羚雾提供俺糖连接。 一缉释容器 c c m 规范中明确了组件运行在容器之内。容器是组件的执行环境,是一个 组件的难一的外部联系。组件本身不访问o r b 或者对象适配器,出容器向组件 静客户提供暇务著与p o a ,o r b 戳及c o r b a 骚务逡嚣交互。溺3 。2 援逮了缌 件容器和组件的关系l 三l 及它们在c o r b a 体系中的佼置。 c l i e a t 围3 2 容器鳊疆模式体鬣 其俸露京,客户通过筑俘所挺供斡终部接日谤闽缝俘,缝辟遴过c c m 容嚣 提供的内部接口访问o r b 的功能,而c c m 容器通过组件提供的回调接口访问 组件。同时c c m 容器实现了如何让组件在本地的落行时环境中相互作用,以及 为掰管理戆缀终提供访睡簇建郝p o a 秘其它缀务的珐戆汹3 。 3 3 常用组件设计 本章中擞要阐述了常用组件的外部接口,而没有对容器型别接口进行讨论。 黉要注意蕊怒,在零章惹续帮分囊涉及貔接蠢,懿 特殊说夔撂豹裙楚努部接翻。 3 3 1 插口组件 t c p i p 协议体系中撬臼层本身具露独立的逻辑意义,在连接建立对主要负 一1 9 9 天 西北工业人学硕i 二论文 第三章协议组件设计 责插口描述符的创建与销毁,及其与进程表结构,文件表结构,文件结构和协议 控制块结构的挂接”,在数据输出和输入时主要负责在进程缓存和内核缓存之间 进行数据搬移。同时插口层也提供给外部修改插口行为的操作。因此该层可以作 为一个组件封装。 接口设计 插口组件的接口中的操作基本上与4 4 b s ds o c k e t a p i 和w i n s o c k a p i 中的 主要函数一致,其i d l 接口定义非常简单,按照c c m 规范以p r o v i d e s 的形式向 组件客户提供服务。所有面向客户的操作全部封装在一个接口内,这样作的原因 是尽管插口操作可以划分为输入输出和控制,但是操作的数目并不多,没有必 要在组件的多个接口中定义,同时避免使用不同的操作时在接口之问查询可以提 高协议通信的执行效率。 内部模式 经过对4 4b s d 的t c p i p 协议实现的研究发现,插口调用被划分为进程态 和内核态,而这两种状态调用的切换则与操作系统紧密相关。插口组件内部也存 在类似于这两种状态的调用,分别对应于组件所提供的接口操作和组件内部的系 统操作。适配器模式( a d a p t e rp a t t e r n ) 或桥接模式( b r i d g ep a t t e r n ) 。”都可以提供将 操作系统所承担的转换职责和插口所真正承担的职责隔离开,同时使得这两种操 作可以相互独立的功能。但是对于特定的操作系统,在进程态操作和内核态操作 之间只存在一种对应关系,不会出现程序运行时需要在内核态操作的多种实现之 间进行切换,因此在插口组件内部设计中采用适配器模式( 如图3 3 ) 。进一步, 出于对嵌入式系统中效率特性的考虑,这个适配器模式采用类继承而非对象引 用。因为采用多重继承可以避免引用的间接性对效率的影响。 图3 3 中s o e k e t c o m p o n e n t _ i m p l 类定义了插口组件进程态的主要操作。 s o c k e t s y s t e m b a s e c l a s s 类定义了插口组件内核态的主要操作。s o c k e t a d a p t e r 类 继承并实现了这两个类,从而易于重定义s o c k e t s y s t e m b a s e c l a s s 类中的操作实 现。 西北工业丈学硕上论文第三章协议纰件设计 s o c k e t ( ) 1 s y s s o c k e t 0 ; i i “n d ( x s y s b i n d 0 ; c o n n e c t ( ) l s y s c o n n e c t 0 ;) 图3 - 3 插口适配器模式 映射实现 为了说明进程态操作和内核态操作的关系以及组件内部所采用的设计模式, 图3 4 列出了根据插1 :3 组件i d l 定义所映射生成的组件实现中的部分代码作为对 该组件接口定义和内部模式的进一步说明。组件开发者可以在 s o c k e t c o m p o n e n t _ i m p l 类操作和s o c k c t s y s t e m b a s e c l a s s 类操作之间根据不同的 系统需求建立映射,修改后者操作的实现甚至更改其操作定义。 西北t 业大学硕士论文 第三章协议组件设计 c l a s ss o c k e t c o m p o n e n t _ i m p l :p u b l i c s o c k e t c o m p o n e n t i n t e r f a c e p u b l i c : i n ts o c k e t ( i n td o m a i n ,i n t t y p e ,i n tp r o t o c 0 1 ) - - 0 ; ) ; c l a s ss o c k e t s y s t e m b a s e c l a s s p u b l i c : i n ts y s s o c k e t 0 严创建插口等+ 像 j ; c l a s ss o c k e t c o m p o n e n t a d a p t e r : p u b l i cs o c k e t c o m p o n e n t _ i m p l ,p r i v a t es o c k e t s y s t e m b a s e c l a s s i n ts o c k e t ( i n td o m a i n ,i n t t y p e ,i n tp r o t o c 0 1 ) p 触发软中断,系统之后将调用s y s s o c k e t ( ) ) p r i v a t e : v o i d s y s s o c k e t ( p r o c e s s + p ,s o c k e t _ a r g u m e n t s 4u a p ,i n t r e 图3 4 插口组件接口映射实现 3 3 2 传输组件 按照本文的组件化分,传输组件被划分为t c p ,u d p 组件。 3 3 2 it c p 组件 t c p 作为面向连接的协议向应用程序提供可靠的端到端的数据流传输服务。 其本身的复杂性皆来自要保证这种连接的可靠性比如状态变迁的复杂,定时器 达7 个之多,输出和输入的处理需要运用多种算法解决诸如避免拥塞,慢启动, 快速重传及恢复,时间戳回显,首部预测等问题。而这实际上必然导致传输效 率的下降,因此就更不适合将该组件划分为多个组件从而引入更多的间接性。然 而其逻辑的复杂性可以通过面向对象设计思想以及在组件内部设计中正确的运 用设计模式而得到一定程度的缓解。 _ 接口设计 虽然c o r b a 3 0i d l 不支持指针类型,但是协议的实现却必须采用指针来传 递大容量的数据以此来提高其执行效率。因此本文在t c p 组件接口定义中采用 对象引用作为参数传递,通过隐含通道的形式对大容量的数据传递问题进行解决 西北工业大学碗j | 论文第三章协议组件设计 ”。尽管这种方式增加了组件之间的强联合性,但是“无论何时,设计嵌于操作 系统内核中的网络软件时,简洁性通常会让位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 100万千瓦光伏治沙项目建设工程方案
- xx市综合管廊工程初步设计
- 2026年蔬菜种植公司风险管理报告编制与报送管理制度
- 2025福建兴田建设限公司招聘11人易考易错模拟试题(共500题)试卷后附参考答案
- 高层建筑基础工程(地下室)施工方案
- 数实融合评价体系:“十五五”转型成效的衡量标尺
- 数据安全保障技术与应用案例分析
- 光伏产业中的碳化硅半导体器件性能提升案例分享
- 体育专科医院:康复与治疗策略探讨
- 2025浙江苍南县公共文化服务体系文化下派员招聘易考易错模拟试题(共500题)试卷后附参考答案
- GB/T 893-2017孔用弹性挡圈
- GB/T 32727-2016肉豆蔻
- GB/T 2481.2-2020固结磨具用磨料粒度组成的检测和标记第2部分:微粉
- 糖尿病肾病诊治进展 课件
- 安全员之A证(企业负责人)【含答案】
- MoldFlow实例分析报告-中英文对照课件
- 部编 二年级语文上册 第五单元【集体备课】课件
- 工业硅项目可行性研究报告
- 烟草专卖执法案件知识讲稿课件
- 《神经病学》(英文)课件11.Peripheral Neuropathy
- PID图(工艺仪表流程图)基础知识培训
评论
0/150
提交评论