(通信与信息系统专业论文)snmpxml网关原型系统的研究与开发.pdf_第1页
(通信与信息系统专业论文)snmpxml网关原型系统的研究与开发.pdf_第2页
(通信与信息系统专业论文)snmpxml网关原型系统的研究与开发.pdf_第3页
(通信与信息系统专业论文)snmpxml网关原型系统的研究与开发.pdf_第4页
(通信与信息系统专业论文)snmpxml网关原型系统的研究与开发.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(通信与信息系统专业论文)snmpxml网关原型系统的研究与开发.pdf.pdf 免费下载

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

文档简介

北京交通大学硕士论文 s n m p m l 网关原型系统的研究与开发 关键字: s 订p 讧l 网关,心i ,模式转化,交互转化,s pm m ,垤l s c l l e m a i i 北京交通大学硕士论文s n i 删m l 网关原型系统的研究与开发 a l g o r i t h m t oc o n v e ns n m pm t 0x m ls c h e m aa n dd e s i 印sa n i n t e r a c t i o nm 印p i n gm e t h o d a n dt h e n ,u s i n gt h es p e c i 丘c a t i o nt r a i l s l a t i o n a l g o r i 恤n ,i m p l e m e ma ns n l pm m 一订lt r a i l s i a f o r w h i c hi s t h ec o r e p a no f l eg a t c wa y a tm e b a s eo f a i la b o v e ,m ep a p e rf i n a l l yi m p l e m e n t sa s n m p x m l g a t e w a yp r o t o t y p es y s t e m k e y w o r d s : s n m p x m l g a t e w a mx n m ,s p e c i f i c a t i o n 仃a 1 1 s l a t i o n , i n t e r a c t i o n t r a n s l a t i o n ,s n m pm m ,v i ls c h c m a 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 第一章绪论 1 1 课题研究背景与意义 1 1 1s n m p 的存在与发展 近几年来,局域网的广泛使用,特别是国际互联网络h l t e r i l e t 在全 球范围的不断推广,计算机网络越来越成为世人所关注的一大热点, 被认为是信息社会标志性的生产工具。网络管理是网络发展中的一个 关键技术,是使网络可靠、安全、高效运行的保障,对其发展有着很 大的影响,并已成为现代信息网络中最重要的问题之一。 现在有两个开放的、基于标准的重要网络管理框架在使用:基于 t c p 口的s n m p ( 简单网络管理协议) 和基于0 s i 的c m i p ( 公共管理信 息协议) 。s n m p 诞生于1 9 8 8 年。当时人们只想把它作为一个短期的 网络管理框架,临时用于管理连接到h l t c m e t 上的设备。原始计划是, 等到c m p 标准的开发和实现经验证明了c m p 可行以后就用o s i 网 络管理标准c m 坤来替换掉s n m p 。但是c m i p 对s n m p 的替换并没 有像人们所预期的那样进行,s n m p 伴随h t e m e t 一起演进、发展和壮 大,成为了当今最流行的标准网络管理框架。s n m p 就像它所基于的 t c p 佃一样,成为了事实上的标准,而c m 口则像它所基于的o s i 一 样,暂时只是一个理论上的理想标准。 要管理一大堆差异性很大的网络设备和主机就意味着需要一个简 单但可扩展的标准集,必须尽可能稳健且没有多余的功能。基于此, s n m p 在简单性、灵活性和扩展性等方面达到了理想的平衡,在很长一 北柬交通大学硕士论文s n m p m l 网蓑原趔系统的研究与开发 毅辩鞫量满是7 羽终管理黪黉慕。 1 1 2s n m p 存在的问题 随着网络规模的日益增大,复杂性不断增加,异构性越来越普遍, 网络管理变得越来越困难,s n l 岫的缺点逐渐暴露斑来。 s 酶释最大戆窝题怒麓婉骥鬻效率不够。飙摸意跨餐擎令管建考爱 瓣瓒多少个代理,效率意睬麓传递葙处理数据酶速度弱效率。面对管 瓒数据的迅速增长,规模和效率已经成为了一个热点。在过去,管理 数据比较少,s n m p 的简单成为在实施一个网络管理系统时优先考虑的 阏索。但是,网络变得越涞越大,通过网络传递的管理者与代理之间 的遗信信息越来越多,基于s 猢憎豹n m s 管理这个融溅网络就显得力 不放心。 管瑾数据增长盼藤蠢怒熬个瓣络的短模变大移每个代理包含的管 理数据变多。随着代理支持的m m 数据变多,网络规模的增长,m i b 波( 弹路由表,t c p 连接袭,计费表等等) 变大了。网络管理不是简 单的网络监视,而是对整个网络有效的规划,因此要求的数据就变多 了。总的来说,s n m p 所存在熬缺点如下: ( 1 ) 鼗豢售悫赘表示及搽露:在痿患蘧述语言上,s 煺涩采矮了 a s n 1 ,a s n 1 虽然育很好瓣结构,但其结梅较为复杂,语旬难以理解; 弗胆在高层的a p i 接口上,缺乏通用接口,进行s n m p 代理及其他应 用的开发还需要投入较大的人力,且速度慢。很难邋腹现有网络需求 快速变化的要求。 ( 2 ) 数据信息的抟输:s n m p 鹣姥送协议是不可纛鹣p 按汉。 溺p 秘谈不翼圣窭镬重谤撬鼷,逸拜易导致重要秘s n m p 售惠丢失, 靶衷交透大学磋士论文蝴豁矗托弼关原壁系统静霹究与开发 只麓逶遘重发凝摹l 寒援诞数撵鹣宠嫠魏。s 醒睡p 耱议中定义熬最大溃意 尺寸太,l 、,仅秀l 筏7 字节,羧镬了一次瞧传送戆数据量;s n a 强数据 无法进行压缩,霞鼗s 潞糟传送大援模数据的效率较低。 ( 3 ) 管理者的本熄分割黻铡:s 酶覆p 不会对管理者蛇处理下属进行 分布处理,它没有定义通过镣避卷之间通信实现的分布处理模型,也 没有定义按等级划分的管理模型。s m 胛使用集中机制。来自各个代理 的数据都集中在管理糟连接的一个点上,这就造成了瓶颈效应。 ( 4 1 与w e b 技术结合:s n m p 还没有与w e b 技术相适应,这使得 s n m p 的进一步应用受到了很大的限制。 由于s n m p 设计的韧裳怒熬于简单性,以上这些问题很难在s n m p 协议基础上进行修改以期得到相应的解决。人们将目光投向了当前新 兴的x m l 技术,积极地碍找解决问题的方法。 研究表明,对弥补s 嘲络管理系统的不足、管理大量的网络资 源,引入订l 是一个很好的方式。因此,人们提出了基于讧l 网络管 理豹观点,简称) ( n m ( 旺k 矗s 嬲n e 晰。攮m a n a g e m 锄9 。采用垤l 标 准方式来转发、处理_ 鞠存德熬于w e b 嬲络管理系统环境中的管理数据, 可班 x 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 定义的,所以,必须要完成模式转化,它是操作转化的基础。 j p m a n i n f l a t i n 提出了两种层次的转化方式:m o d e l 1 e v e l 转化 ( m o d e l - 1 e v e lm 印p i n g ) 以及m e t a m o d e l l c v e l 转化( m e t 锄o d e l l e v e l m 印p i n 曲,这是目前国际上比较流行的两种转化方式。其中, m o d e l 1 e v e l 转化中,模式的元素及属性名称与m 瑁s m i 中的相同,因此 对应于一种m i bs m i 就有一个x m l 模式;m e t a m o d e l 1 e v e l 转化则不同, 对应于不同的m s m i 使用同一个订l 模式。这两种方法各有优缺点, 都有应用。 l 文档的结构可以用v i l d t d 和ls c h e m a 来描述。d t d 定 义了文件的整体结构以及文件的语法,x m l 文件必须遵从d t d 中定义 的种种规定。s c h e m a 是将d t d 重新使用x m l 语言规范来定义,保留并 扩充了d t d 原有文档结构说明能力,可增加数据类型和命名空间等新 技术支持更多管理信息的表示。由此可见,x m ls c h e m a 具有更强大的 模型功能,并支持s n m ps m i 中不同数据类型的定义。 总结国内外对s n m p m 翻译成l 的研究,主要情况是:1 ) j p m a n i n - f l a t i n 在他的基于w e b 的综合网络管理结构的研究论文中, 举了一个m m 到讧l 的映射例子,对“s y s t e m ”组和“i n t e ”组 分别用例子描述了转换结果,但是没有提出对整个m i b 的翻译算法。2 ) 贝尔研究中心在c o r b s n m p 网关开发项目中研究了用x m l 表示 s n m pm ,但是也没有总结出一个明确的翻译算法,仅仅举了一些 ) a v i ld t d 定义文档的例子和表示m i b l i 节点的文档例子。3 ) f r a n k s 劬u s s m mp r o c e s s i n gl i b r a r y ,简称“l i b s m i ”,专门研究将s n m pm 翻译成j a v a 、c 0 砌j a 、c 、诅l 等其他语言。但是,他们的方法造 成了信息丢失,翻译后的) ( i 订l 不包含源m 的所有信息,而仅仅是 源m m 的结构和节点名信息,每一个m i b 节点的许多特征被忽略了。 e 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 辫l 蘸l 管理对象的实例也用a s n 1 编码,发送和接收的包含管理对象 i | | | | 壤l 值的协议报文用基本编码规则( b e r ) 来定义 对象类型名 名字唯一代表一个对象类,是对象的标识手段,它也成为对象标 识符。它是用一串有序整数表示的,该整数串是遍历由所有已知s v 田 对象构成的全局树得到的。 对象类型的语法 语法是用抽象语法记法l ( a s n 1 ) 对对象类结构的形式化定义。 语法记法定义了对应于具体对象的抽象数据结构。每个对象有4 个标准 属性是必须定义的,这样才能正确说明m m 中的对象。这4 个属性是: 语法类型、访问模式、状态和名值。 对象类型的编码 一旦某对象类型的实例定义并说明了以后,它们的值就可以在代 理和“s 之间传送,传送时要用a s n 1 编码规则对对象类型的语法进行 编解码。s m “p 采用的传输语法记法是基本编码规则( b e r ) 。 2 1 2 管理信息库( m i b ) 同其他任何网络管理系统一样,基于t c p 的网络管理系统的基 础是含有被管理元素信息的数据库。在t c p 口和o s i 环境下,该数据库 都称为m i b 。每个被管理资源由一个对象来表示,m i b 就是这些对象的 结构化集合。通过读取m i b 对象的值,网络管理进程可以监视系统中的 资源,也可通过修改这些值来控制系统中的资源。为了使m 能满足网 络管理系统的需求,必须满足如下的要求:用于表示特定资源的对象 o 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 厂_ f l 。r g i 帅j j = 咖d i r e c t o m g m te x p e r i n 饽n t a i p n v 抛 m m - 2 s y s 塘m i n t e r f a a t l pl c m p -!- i p a d d r t a b i e j p r o u t e t a b i e 2 1 3s n m p 协议 ( 1 ) s n m p 支持的四种操作 s n m p 采用了四种基本的协议交换过程,共有四种操作来完成上述 三个功能:1 ) g e t 用来提取指定的网络管理信息;2 ) g e t n e x t 提供扫描 m i b 树和依次检索数据的方法:3 ) s e t 用来对管理信息进行控制;4 ) t r a d 用于通报重要事件的发生。 在这四个操作中,前三个是请求,由管理者发给代理,需要代理 给管理者发出响应,最后一个则是由代理发给管理者,但并不需要管 理者响应。这些操作仅仅是对变量的修改和检查,不可以添加和删除 变量。因此,这些限制大大简化了s n m p 的实现。 北京交通大学硕士论文 s n m p ,x m l 网关原型系统的研究与开发 ( 2 ) s n m p 报文 s 讧p 协议也定义了执行以上操作命令时的报文流。一条s n m p 受 文由三个部分组成:版本域( v e r s i o nf i e l d ) ,分区域( c o m m u i l i t y f i e l d ) 和s n m p 协议数据单元域( s n m pp m t o c 0 1d a t au i l i tf i e l d ) ,数据包的长 度不是固定的。 版本域:这个域用于说明现在使用的是哪个版本的s n m p 协议。日 前,v e r s i o n1 是使用最广泛的s n m p 协议。 分区域:分区( c o i m u n i t y ) 是基本的安全机制,用于实现s 讧p 网络管理员访问s n m p 管理代理时的身份验证。分区名( c o m m u n i t y n a m e ) 是管理代理的口令,管理员被允许访问数据对象的前提就是网 络管理员知道网络代理的口令。如果把配置管理代理成可以执行t r 印 命令,当网络管理员用一个错误的分区名查询管理代理时,系统就发 送一个a u n l e n t i c a t i o nf a i l u r et r a p 报文。 协议数据单元域:s m 伸v 1 、s n m p v 2 和s 旧v 3 的报文比较如表 2 2 所示。 表2 2s n m p v l 、s n m p v 2 、s n m p 、,3 报文比较 北京交通大学硕士论文s n 凇m l 网关原型系统的研究与好发 s n m p v l 豹p d u 有五耱类墅,分羽怒:g 痰r 鹎u e s t 、s e 承朝s t 、 g e t n e x t r e q u 。s t 、g e t r e s p o 璐e 和t r a p 。向代理发送g e t r e q u e s t 戚 g e t n e x t r e q u e s t 报文,网络管理站可以把感必趣的变量值提取到其应用 程序中。前者魑指定对象的读操作,后者则提供了一个树遍历操作符, 便于确定一个代理避程支持哪些对象。向代理发送s e 慢e q u e s t 报文,网 络簧理站哥溢修浚代理进程中戆变量篷。代理遂程嚣l g e 滚e 蹲。搿e 缀文 稿应网络管理瓣请求。另并,剩周t r a p 缀文,代理进程可激异步造发送 告警给网络管璃站,告诉它发生了某个满足预设条件的事件。s n l 泐v 2 是s n m p v l 的增强版,增加了成块读操作报文g e t b u l k r e q u e s t 和通信_ i 妻 行状况报告报文i n f o m 瓜e q u e s t ,并把g e t r e s p o n s e 简化成r e s p o n s e ,把 t r a p 报文改为s 救m 即2 t r a p 。s n m p v 3 是s 娃p v 2 的增强版,在安全性方 嚣毒鬟麴强。 图2 ,2 f a l 擒述了两络管理菇向彳弋理遴程发送请求、代理进程瓣它进 行处理的过程;图2 2 ( b ) 描述了代理进程通过互连网向网络管理站陷阱 报文、网络管理站处理其报文的过程。 网络管理站互联网代理进程 图2 2 ( a ) 4 北京交通大学硕十论文s n m p m l 嘲关原型系统的研究与开发 网络管理站互联网代理进程 ( 处理陷阱) 2 2s n m p 参考模型 瞄阱 日文 s n m p 参考模型如图2 3 所示,它说明了s m 订p 网络管理框架的一般 化总体结构,包括系统中各个组成部分及其相互关系。 网络管理进程 用户界面 网络f 阐绐i 网络 管理l 管理| 管理 应用1l 应用2 l 应用3 黹| 邮 网络协议 s n m p 协议 被管网络实体 代理l 代理进 进程j 程m l b 网路协议 互连网 图2 3s n m p 参考模型 从图中可以看出,s n m p 参考模型主要由互连网络、网络协议、网 络管理进程和被管网络实体等4 个部件组成。 北京交通大学硕士论文s n m 蹦m l 网关原型系统的研究与开发 2 2 1 互连网络 在s n m p 参考模型中,互连网络是采用相同协议、通过网关相连的 一个或多个网络的集合。如果所实现的全局编址方案正确、采用了标 准化的协议、采用的路由选择方案能保证报文的及时可靠传送,则任 意两个端点之间都可以互相通信。采用s v 口时,与此相关的网络协议 主要是互连网络中使用的t c p ,口协议集。 2 2 2 网络协议 网络协议就是使互连网络能够实现通信的规则,又称为协议栈。 对于采用t c p 仰通信的互连网络来说,各种协议分别在组成t c p 佃协 议集的4 层协议中运行。通常称这4 层分别为: ( 1 ) 网络接口层,最“靠近”硬件的部分。其主要功能是提供主机 与网络问的可靠数据交换。存在很多种网络接口层协议即网络访问协 议,每一种协议都对应于可以连接到互连网络上的多种不同类型网络。 ( 2 ) 网络层,负责将数据从源主机送到目的主机。i p 协议是这一层 的主要协议,因此这一层又成为口层。p 是五连接的数据报协议,它并 不保证端到端的可靠传输。 ( 3 ) 运输层,负责两个进程之间的端到端数据传输,包括可靠的t c p 和不保证可靠的u d p 。 ( 4 ) 应用层,直接为用户或应用程序提供服务。常见的应用层协议 有t e l n e t 、f t p 、s m t p ,当然还有s n m p 。 北京交通大学硕士论文s n m p ,) ( m l 网关原型系统的研究辱开发 2 。2 3 网络管联进程 网络警理途稳怒斓绦设各,通过网络挽议和s n m p 傍议与互连网中 被管理的网络实体潦倍。网络管理进程主要由4 个部件组成。 ( 1 ) 网络管理站( n m s ) ,是监视控制代理进程的处理蜜体,对报 文在a s n 1 格式与便于处理的内部格式之间进行编、解码。代瑷进程在 互连网中也是起管瑕作用的,n m s 及其代理进程形成一个共同体。n m s 可以对每个代理的m i b 中的特定对象进行读写操作,即管理榴庶的网络 设各。 f 2 ) 隧络管瑾结m 瓣,网络管理弦懿管理售感痒中含鸯装闲体中鼹 毒钱理醚零熬圭渣肇。黧鬃霹努管瑾菇要控魏每拿彳弋毽豹撇瓣变爨,鼙 么它必须知道裁戆够发现该变量的存在。通常网络管理蛄会在箕本缝 数据库中存有自已的m 鹏和额外的管理信息。 ( 3 ) 网络管理成用程序,将s n m p 数据转换成网络管理用户可用的 信息。它包括一大堆程序,用于轮询代理、进行s e t 和g e t 请求,以及处 理接收到的陷阱报文。网络管理应用程序实现了越来越多j 常有用的 网络管理功能。 ( 4 ) 网络管理用户器蠢,端用户是通过界露来使用麟络簿瑷避程设 鍪懿。大多数溺终餐壤逶程设釜提供霆形用户雾瑟( g u l ) 藩袭运陵辘 统诗鼗蠢、强务汇慧、鼗辕掇告、嚣要清蕈、载建查瓣袭嵇、籀羚蚕 等。 2 2 4 被管网络实体 被管网络实体就鼹含有代理进程的网络设备。它也要用网络协议 北京交通大学硕士论文s n m p ,x m l 嘲关原型系统的研究与开发 和s n l p 协议在互联网上与网络管理进程的n m s 通信。它由2 个关键部 件组成。 ( 1 ) 代理进程,是处理实体,接收所在共同体中的n m s 发出的请求, 如果请求合法就进行处理,最后发出适当的响应。代理进程也可以被 配置成要发送陷阱报文,以报告异步预定义事件。代理进程利用操作 支持程序操作本地数据结构以提取和设置它所控制的各个m 对象。 ( 2 ) 代理进程m i b ,是代理进程所关心的变量集合。构成特定代理 之管理信息库的m m 组决定于该设备的功能和所要管理的资源。 2 3s n m p 协议工作过程 从网络管理站一端来看,一个命令启动了一个s n m p 请求的构造 过程。该操作可能是s e t 、g e t 或g e t _ e x t 等任何一种所需的类型。网络 管理站软件创建一个s p 报文,并填入适当的报文首部,以便通过 互联网向目的代理进程传送该报文。在报文中要指定共同体名、版本 号和请求d ,还要选择p d u 类型并将变量绑定列表插入到报文中,然 后将s n m p 报文传送给u d p 运输层进行传送。报文就这样发出去了。 网络管理站必须记住请求中的r e q u e s t d ,以便与随后接收到的响应配 对。同时启动定时器,令其开始计数以处理超时。在任何时候,网络 管理站必须随时接收和处理共同体中代理进程发送来的陷阱。 初始化完成以后,代理进程要在网络设备的u d p 传输端口1 6 1 等 待接收s n m p 报文。当代理进程成功地接收到一个报文后,它要调用 解析程序,将a s n 1 格式的文本解码为更容易使用的内部格式。 若报文不是正确的a s n 1 格式,则该报文被丢弃,代理进程直接 返回等待接收循环中。代理进程接下来验证版本号,若不正确,则代 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 理进程还是丢弃报文并返回等待接收报文状态。 报文通过了前面两项检查后,调用鉴别功能模块对报文进行验证。 若此时验证失败,且代理进程能够发出a u t h e m i c a t i o i l f a i l u r c 陷阱报文, 则代理进程发送改陷阱并丢弃该报文。若报文通过了鉴别,代理进程 就把报文中携带的信息保存起来以便构造响应报文,然后代理进程要 继续对s n m p 报文进行解码。 在代理进程对a s n 1 格式的报文进行解码的同时,代理进程也可 以开始创建响应报文g e t r e s p o n s e p d u 。在这时产生的错误并不会导致 接收到的报文被丢弃,而是由g d r e s p o n s e p d u 指出失败的原因,并 在e r r o r s t a t l l s 和e d r h l d e x 字段中加入差错信息。 解码功能模块检查报文中的所有字段,检查其顺序、标签、长度 以及各字段的值。若格式有效,就执行命令,即对变量绑定列表中的 变量进行操作。代理进程的程序指令确定变量实例是否存在、网络管 理站是否有足够的访问权限以及如何访问变量以执行操作等。 代理进程填充完g e t r e s p o n s e p d u 后,用基本编码规则b e r 将响 应报文编码成a s n 1 格式传递给u d p 运输服务,传给发出请求的网络 管理站,然后就进入循环等待状态。代理进程用来记录操作执行情况 的所有变量,如关于s n m p 本身的对象,都做适当的递增,以便网络 管理站将来查看。 第2 版s n m p 协议建立在第1 版的基础之上,它增加了2 个新的 p d u 类型、改进了差错报告功能、对协议操作和报文格式作了少量修 改。在第2 版中,管理进程可以向另外一个管理进程发送i n f o m 皿e q u s t 。 在任何时候,网络管理站都必须准备接收并处理代理进程发送的陷阱 和同一个管理域中其他管理进程发送的通知。 北京交通火举硕上论文s n m 瞅m l 嘲关原型系统的研究与开发 大到人淡矮他多种多样的活动中去。x m l 解决了h t m l 不能解决的两 个w 如问题,即h t e m e t 发展速度快而接入速度慢的问题,以及可利用 的信息多,但难以找到自己需要的那部分信息的问题。讧l 能增加结 构秘嚣义信怠,可使诗算机秘服务器即时处瑷多秘形式的信息。困扰, 运蠲x m b 瓣扩震功戆不稷麓鼓w 。b 羧务器下载大藩豹售怠,还藐大大 减少网络簸势塞。 x m l 文档具有两种规范。一是语法规范,符合语法规范的x m l 文 档称为格式正确文档( w e l l f o r m e d n e s s ) ,主袋利用x m l 文档解析 程序来榆测文档的语法;另一个是语义规范,即限制l 文档中每个 标签的名称和元素结构,符合语义规范的文档称为有效文档 ( v a l m i t y ) ,文档模式定义可以提供相应的语义舰范。从定义上来看, 有效的文楼一定语法正确。 x m l 瓣壤念送分: 夺x 撼0 不是一令鳊程语言。编疆语言攘逐了“麴稳裳鼗”,瑟标 诞遥言只是表爨“是侍么”盼闽题。一令) ( m l 文挡没有“输入”、 也没有“输出”,不能被“运行”。 夺) 洲l 不是h t m l 的代替品。x m l 没有指定如何显示文档。相 殿,它只是定义了文档的内容,而让应用程序来考虑显示的问 题。 3 2x m l 的相关技术 从戮氮产生至今,嘉关x m l 各方瑟嚣技术艨懑不穷,圈3 。l 蘧逑7 当今圭爱黪x m l 技术露x m l 整理工兵,以及它镌之阗静关系。 2 l 北京交通大学硕士论文s n m p m l 阿关原型系统的研究与开发 强3 。lx 麓l 技术及工具关系灏 3 。2 1 粼镬b 文档模式定义 模式从文档的结构和内容上对文档进行了强制性的约束,从而使 得文档可以在不同的群体之间共享,提高了文档中所描述的数据和或 模型的共孥性、复用性等。被约束的内容包含:数据类型、元素及其 内容、属一睫殿其内容、实体及其内容,以及表示泱。现在x m l 模式定 义有两种:d t d 和x m l - s c h e m a 。 d 了粉( d o c u m e n tt y p ed e 磊n 泔。鸯可以攒述凇垤l 文档救结捣,简单 易建,d 釉怼予定义文档绩枣萼菲零鳋,握d t d 激磐凌弯挟骧: 冷本舞是雳b e n f 语法定义懿,这嚣致它不魏瘸箍瑾x 醚己文档懿 方式来处理; 北京交通大学硕士论文 s n m p m l 网关原型系统的研究与开发 夺它只能处理字符数据类型,不能支持用户自定义的数据类型, 难以满足较复杂的编程需要; 夺不同d t d 文档之间的名称转化需要采用手工的方式,无法实现 不同d t d 文档中重名数据之间的自动名称切换及识别。 因此,w 3 c 提出了x m l s c h e m a ,x m l s c h e m a 克服了d t d 的缺 点,具有如下的优点: 夺) a l s c h 锄a 文档使用) ( i l 语法,是l 文档,可以用处理其 他x j l 文档的方式来处理讧l s c h e m a ; 夺讧l s c h e m a 支持多种数据类型,也能创建用户数据类型; 夺同时,x m l s c h e m a 在文档的内容模型上也提供了更强有力的 支持,具体体现在:允许对混合内容模型的有效性的验证,以 及指定元素出现的确切的次数,可以创建可复用的结构,在内 容模型中控制顺序和嵌套,使用正规的表达式来指定模式; 夺另外,它采用名字空间的方法克服了重名的问题。 3 2 2 l 文档的表现s 毋i es h e e t 在讧l 中内容与表现形式是分开的,这就使得不同的用户可以根 据他们自己的需要来定义数据的表现形式。在一个) 口 l 的源文件中并 没有关于它表现形式的信息,x i l 文件的所有表现信息放在s t y l es h c e t 文件中。s t y l es h e e t 文件全权负责x m l 源文件的表现形式,由它来向应 用程序,比如浏览器,提供如何处理显示的指示说明。目前主要的两 种s t y l es h e e t 语言为:c s s ( c a s c a d i n gs t y l es h e e t s ) 和x s l ( x m ls t y l e l a l l g u a g e ) 。它们各有特色,互为补充。 北京交通大学硕士论文s n m p x m l 剐关原型系统的研究与开发 3 2 3 ) ( m l 文档语法正确性检测擞m l 文档解析器 煳l 文档的语法要求是:要求文档中,只肖个根元素,每个元 素有一个起始标记箝和一个结束标记符,据记符静嵌套要垂确,属性 毽豹零| 溺袋燕疆。) 戳l 文撞豹语法验证主要楚遴过x 麓毛文整簿掇器完 袋懿。 j a v a 应u x m lu x m l | | 用程序l| 解斩器l文档 图3 2x m l 解析器功能 如图3 2 所示,x l l 解析程序( 或x m l 处理器) 是一个软件程序,位 于“l 文辎和其相关的应用程序之问,使应用程序无需再进行复杂的 文本熬橱j 篷程就戆方便邀访闻) 泓i 文档中的内容惦惑。它青三太职能: l 、渡取x 獭文档;2 、捡查其语法,援骞荚中瓣绥误;3 、定诲编程访 阔该文秘鹣内容。其俸表瑗为,唾l 麓辑器会为斑溺程序去指定静蘧 点读敬) ( 】堪l 文档,读取的方式可以为本机读取戏阕络读欷;当) 。旺解 析器接收到数据时,它将同时处理模式定义和数据。它使用模式定义 解读数据并检测数据的有效性,然后从数据中抽取蹦有用的信息传递 给下一步的应用程序:在生成数据时,它使用模式定义中的模式生成 相关的数据格式。现常用的) 洲l 解析器包括m i c r o s o nm s ) 【m l 、j a m e s c l a r ke x p a t 、b mx m l 4 j 、a p a c h ex e r c e s 等。 x m l 文秘解辑主要有两静不霹标准:s a x ( s i m p l o a p i f o r x 艇l ) 与文校对象模型d o m ( d 。c 珏m 强to b c c tm o 氐1 ) 。s a x 是基于事释驱 动煞解耩方式,主要是完成颓序处理x m l 数撵,镣次楚理一个组成部 分,尚遇到标记符、文本、注释时,触发事彳串通知,传递给应用程序, 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 提供基于事件触发的接口;d o m 是基于树的解析方式,构造一个表现 整个文档的树,并提供对树中单个节点的访问,主要用于内容或结构 转化。 s a ) 卜事件驱动的解析 事件驱动模型对于现代g u i 和o s 的编程者来说己经是非常熟悉 了。在这种情况下,x m l 解析器为x m l 数据的每个部分执行对应用程 序的回调:元素( 及其属性) 、字符数据、处理指令、符号或者注释。这 等于是应用程序通过回调来处理x m l 数据,) ( i l 解析器在解析之后并 不维护元素的树结构或任何数据。事件驱动的方法对系统资源的需求 极为普遍,即使对于非常大的文档也是如此。正是得益于这种简单的、 对讧l 数据结构的低层次的访问,它在处理v i l 应用程序的数据时具 有相当大的灵活性。所有主要的事件驱动解析器都支持标准a p i ,称为 s a x ( s i m p l ea p i f o rx m l ) ,它有两个可用的版本:s a x l 和s a x 2 。这 个a p i 由d a v i d m e s g g 血s o n 领导的成员小组创建,当前已用j a v a 、p e d 和 p y t h o n 实现。 d o m 基于树结构的解析 l 、d o m 解析器 软件工程中使用最为广泛的一种结构就是简单的层次树。所有格 式正规的x m l 数据都定义为这样的树,从而可以使用较为成熟的算法 实现对树节点的遍历、搜索或编辑。所有使用这种方法的x m l 解析器 通常遵守w 3 c 的文档对象模型( d o m ,d o c u m e n to b j 。c tm o d e l ) 。 基于d o m 的解析器的工作过程如下: a 1 解析文件,把文件分解为独立的元素、属性、注释等等, 再根据w 3 c 的) 口lm f o r n l a t i o ns e t 推荐的标准中提供的 北京变通大擘硕士论文 s n m p m l 嘲燕臆型系统的研究与开发 x m l 文档的描述来决定一个x m l 文档中与节点相应的部 分。 b ) 在内存中生成与x m l 文档数据相对应的文档对象。 c )但不能直接访阎文档对象,必须馒翅d o ma p | 来访| 、司对 象。 2 、驺。勰a p | 趣莛 d o ma p i 遵守d o m 规范。d o m 规范定义了与暖l 文档相对应酶 数据激烈和相应的操作,规定了最基本的数据焱型是n o d e ,采用树的 结构来缀织n o d e 。n o d e 成为可操纵的一条原子信息,是所有节点类 的基炎。节点树内的节点都从一个根节点( 文档对苏节点) 开始。节点树 上的节点根据其功能的不同,可按图3 3 所示分为: 图3 3d o m 节点关系网 a ) 文档( d o c 雌1 e n t ) 接口:是文档对象树的撤节点,代表了整个 x m l 文蹬。丑 o e 黼e 盘怼象包含了谚润稳裁文秘嚣穆萁恁) 对象数方法。 b ) 元豢( e l e m e n t ) 接口:对应于文档中的元桊。 北京交通大学硕士论文s n m p ,) ( m l 网关原型系统的研究与开发 c ) 属性( a t t r ) 接口:属性节点( a m ) 对象包含与元素相关联的属 性信息。d o m 认为属性不同于文档中的其他的节点,属性是 元素的属性而不是每个节点自身的属性。 d ) 文木( t e x t ) 接口:是用来表示非标记部分的值,其取值可以 是整型、目期、或其他类型的数据。 e 1n o d e “s t :表示节点集合的概念。 在n o d e 的方法中,定义了树节点的遍历方式,一般来说,是通过 遍历树中节点们的子节点、兄弟节点和双亲节点的方式来访问d o m 的。 为了得到树中的某个特定信息,可行的方法是搜索节点名或动手在树 中沿节点查找。常见的方法见表3 1 。 表3 1n o d e 常用方法列表 ;。i 遵;j j 薯囊鬟鬻誉邕j 随枣望囊:曩至i i !委誊墨蒸鋈薹薹谎明j ,薹i 譬? 篓 a p p e n d c h i i d 返回一个子节点 c l o n e n o d e克隆节点 g e t a t t r i b u t e获得属性节点 g e t c h i l d n o d e s返回子节点 g e t n o d e n a m e返回节点名称 g e t n o d e v a l u e 返回节点值 s e t n o d e v a i u e设置节点值 3 、d o m s 解柝器镌关系 d o m 与解析器之间的关系如图3 4 所示,解析器创建对象,这些对 象是能执行d o ma p i 所定义的接口方法的实例。在解析器读入x m i 文 档时,它们将被实例化但必须使用d o m 接口定义来访问对象。 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 图3 4d o m 与解析器的关系 用d o m 创建和访问x m l 文档有以下几点好处:d o m 把文档转化成 树结构后,简化了文档的处理,比如,向树结构里插入一个新元素是 很简单的事;其次d o m 树显示了信息提供的内容以及信息是如何关联 的,而不是一定要通过x m l 语法分析器绑定,这样,开发者可以不需 要关心l 语言的细节就可以实现一个关系数据库的更新或创建一个 h t m l 页面;d o m 树也真实地反应了一般分级结构的关系和关系数据 库结构,从而用d o m 构造的文档的树结构使得信息在系统间传递起来 十分容易。所以在与面向对象技术结合中,d o m 的接口方式将更适合。 3 2 4x m l 文档数据定位- x p a t h x p 甜l 是一种基于字符串的表达式语言,提供了定位x m l 文档中的 指定部分的一种高效方式,有效解决了x m l 只能描述数据,不能定位 北京交通大学硕士论文s n m p m l 网关原型系统的研究与开发 同的编码规则,虽然最终在传输的时候都转化为二进制位流,但是不 同的应用协议需要提供不同的转换机制,将协议所能理解的数据转换 为二进制数据。这种情况导致网络管理站在对采用不同协议发送管理 信息的被管对象之间进行管理时很难实现兼容性。基于l 的网络管 理技术采用讧l 语言对需交换的数据进行编码,为网络管理中复杂数 据的传输提供了一个极佳的机制。如果协议在数据表示时都采用l 格式进行描述,这样网络之间传递的都是简单的字符流,可以通过相 同的l 解析器进行解析,然后根据不同的x m l 标记,对数据的不同 部分进行区分处理,使底层数据更具可读性和标准性。 ( 4 ) 复杂数据的简单处理。 l 是一种自我描述语言,其标签具有明显的含义,它的简单编 码规则可以使用a s c i i 文本描述数据的任何层次。d t d 和s c h 锄a 定义了 x m l 文档的数据结构,其中s c h e m a 可增加数据类型支持多种管理信息 的表示,克服了d t d 不能定义新的数据类型的限制。因此通过使用 s c h 锄a 可以很好地描述和处理管理信息的复杂数据,管理应用程序还 可使用这个标准的s c h e m a 文件来验证接收到的管理数据是否有效。 ( 5 ) 现有的协议和技术对其支持。 基于“l 的网络管理在管理者和代理之间可通过h t t p 的g e t 和 p o s t 操作执行基本的管理功能,没有必要重新开发一种新的管理协 议。h t t pg e t 操作用于从代理端收集管理信息,p o s t 则用于修改管 理信息,当代理端发生故障时,代理主动通过p o s t 操作通知管理者。 x m l 文档格式的管理信息可以很容易地通过h t m 接口操作订l 文档,执行管理操作,这样能够 x 北京交通大学硕十论文s n m p m l 网关原型系统的研究与开发 h o n g 的从s 以p m到vil的转化算法作为一个标准方法。 网络管理的信息模型转化首先要考虑的一个问题是保证转化后不 会造成信息的丢失。为此,使信息模型结构保持不变是很重要的。表4 1 列出了文档结构的映射方法。表4 1 文档结构映射 - 簿_ s n m ps m i 一甍i 童、 一”“。z _ - 一;、xml3cnema”。if“- = j :秽j ,“一j一二,如、t 。 n o d e ( m a c md e f i n i t i o n )e l e m e n t noden锄ee 1 e m e n tn a m ec 1 a u s e si nn o d e attributeso f t h ee l e m e m s n m pm m 的节点变成讧l s c h e m a 的元素,节点名变成元素名, m节点的内部子句变成vfl元素的属性。s n m p m 到x m l 的转化包括数据类型定义、宏、模块名和组节 点等各个要素的转化。 5 2 1 数据类型定义的转化为了把s 订p m 的数据类型定义成x m l ,我们应用w 3 c 确立的标准x m l schema,因为xmldtd不能表达不同的数据类型。表4 2s m i v l 的数据类型的x m l schema定义 s m ie x d r e s s i o n“x m s c h 锄d e f 嘶6 0 n _ _+。i p a d d r e s s 北京交通大学硕士论文s n m p ,x m l 网关原型系统的研究与开发 c o u n t e r := i n t e g e rf 0 4 2 9 4 9 6 7 2 9 5 、 t i m c t i c b := i n t e g e rf o 。 4 2 9 4 9 6 7 2 9 5 1 o p a q u e := o c t e ,rs t r q g 表4 2 示出了s m i v l 数据类型的x m ls c h e m a 定义。“i p a d d r c s s ”是 特殊类型,属于口地址所在的范围, o 一2 5 5 】 0 2 5 5 【0 2 5 5 - 【o 一2 5 5 。此 外,n u l l l b e r 和s t r i n g 等类型的转化不会有信息丢失。s m i v 2 数据类型到 ls c h 锄a 的转化定义如表4 3 所示。 表4 3 s m i v 2 的数据类型的u ls c h e m a 定义 i $ 蒜翥疆精m l 碱g s l 讲壤鬻嚣;冀 c o u n t e r 6 4 := i n t e g e rr o 。 1 8 4 4 6 7 4 4 0 7 3 7 0 9 5 5 1 6 1 5 1 叫x s d :s i i n p l e l n ) e g 跚g e 3 2 := 烈t e g e r ( 0 4 2 9 4 9 6 7 2 9 5 1 刮x s d :r e s t r i c t i o n 刮x s d :s 砷p l e b ,p e u i l s i g i l e d 3 2 :=科t e g e r ( 0 。4 2 9 4 9 6 7 2 9 5 ) 这些类型遵循x m ls c h e m a 中定义的主要数据类型。用户定义的数 据类型到x m ls c h 锄a 的定义如表4 4 所示。 表4 4 用户定义的数据类型的) m ls c h e m a 定义 。m md c 胁i t i o n

温馨提示

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

评论

0/150

提交评论