(计算机应用技术专业论文)基于linux的四层网络管理模型的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于linux的四层网络管理模型的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于linux的四层网络管理模型的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于linux的四层网络管理模型的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于linux的四层网络管理模型的研究与实现.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机应用技术专业论文)基于linux的四层网络管理模型的研究与实现.pdf.pdf 免费下载

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

文档简介

西南科技大学硕士研究生学位论文第1 页 摘要 通过对l i n u x 平台下网络管理模型的深入分析和研究,发现目前的网络 管理研究成果虽然打破了网络管理上最初的人工分散管理的局面,为网络管 理的发展起到了推动作用,但是现有的网络管理系统还存在着一些不足之处, 如对特定协议存在着一定的依赖性等。 本课题提出了一个基于l i n u x 的四层网络管理模型,实现对基于l i n u x 的异构网络的分布式和远程管理。本模型利用分布式对象技术c o r b a 的优势, 弥补了网络管理在l i n u x 平台下实现的一些空缺,屏蔽了传统网络管理系统 对特定协议的依赖性和网络软硬件等的异构性,从而提高网络管理系统的可 扩展性;结合w e b 构架模式,实现对网络的远程管理另外,本模型对传统 的管理者代理的管理模式进行了改进,可以解决当管理者负荷太大时导致的 网络管理的瓶颈问题。 最后,本文给出了l i n u x 平台下原型系统的设计和实现方法,并对部分 模块进行了测试,测试结果表明该模型切实可行。 关键词:网络管理模型 c o r b aw e b 分布式对象 西南科技大学硕士研究生学位论文第l i 页 a b s t r a c t a f t e ra n a l y z i n ga n dr e s e a r c h i n go ns e v e r a ln e t w o r km a n a g e m e n tm o d e l s b a s e do nl i n u x ,r e s e a r c hi n d i c a t e st h a tt h e r ea r em a n yr e s e a r c hr e s u l t so fn e t w o r k m a n a g e m e n t ,a n dt h e y h a v eb r o k e nt h ea r t i f i c i a l c o m p l e x i o n o fn e t w o r k m a n a g e m e n t ,s ot h i si st h ei m p e t u sf o rn e t w o r km a n a g e m e n t b u tt h e r ea r es o m e s h o r t a g e so fn e t w o r km a n a g e m e n ts y s t e ma tp r e s e n t f o re x a m p l e ,m a n yn e t w o r k m a n a g e m e n ts y s t e m sd e p e n do nt h es p e c i f i cp r o t o c 0 1 t h i sr e s e a r c hh a sp r o p o s e daf o u rn e t w o r km a n a g e m e n tm o d e lb a s e do n l i n u x t h i sm o d e lw i l lr e a l i z et h ed i s t r i b u t e da n dl o n g - d i s t a n c em a n a g e m e n to f i s o m e r o u sn e t w o r kb a s e do nl i n u x b yu s i n gt h es u p e r i o r i t yo fc o r b a ,t h i s m o d e ln o to n l ys u p p l i e sag a po fn e t w o r km a n a g e m e n to nl i n u x ,b u ta l s oa v o i d s s o m ep r o b l e m so ft r a d i t i o n a ln e t w o r km a n a g e m e n t ,s u c ha st h ed e p e n d e n c eo n t h e s p e c i f i cp r o t o c o l ,t h ei s o m e r i s m o fs o f t w a r ea n dh a r d w a r e s ot h e e x p a n s i b i l i t yo fn e t w o r km a n a g e m e n ts y s t e mc a nb ee n h a n c e d i na d d i t i o n ,u s i n g t h ew e bs k e l e t o np a t t e r n ,l o n g d i s t a n c em a n a g e m e n tc a nb er e a l i z e d s ot h i s m o d e lh a sm a d et h ei m p r o v e m e n to nt h et r a d i t i o n a ln e t w o r km a n a g e m e n tp a t t e r n i nt h i sw a y , t h e p r o b l e mt h a tm a n a g e ri st o ob u s yc a nb ec o m m e n d a b l ys o l v e d f i n a l l y , t h i st h e s i sh a si l l u s t r a t e dr e a l i z a t i o no ff o u rn e t w o r km a n a g e m e n t m o d e lb a s e do nl i n u xa n dt h et e s to ft h i ss y s t e m ,t h er e s u l t so ft e s ts h o wt h a tt h e a p p r o a c hj sf e a s i b l e 。 k e yw o r d s :n e t w o r km a n a g e m e n tm o d e l :c o r b a ;w e b : d i s t r i b u t e d0 b j e c t 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表或撰写过的研究成果,也不包含为获得西南科技大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均已在论文中作了明确的说明并表示了谢意。 签名嘶 御乱 日期:砂。7 关于论文使用和授权的说明 本人完全了解西南科技大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文的复印件,允许该论文被查阅和借阅;学校可以公布该论 文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:确代吼导师签名 日期:2 ,7 ,歹, 西南科技大学硕士研究生学位论文第1 页 1 绪论 1 1 课题来源及研究意义 1 1 1 课题来源 本课题来源于四川i 省科技厅四j i i 省青年软件创新工程项目基于c o r b a 的异构内网计算机资源管理。 基于c o r b a 的异构内网计算机资源管理是采用面向对象的分布式对 象技术c o r b a ,实现一个智能化的异构内网计算机资源安全管理系统,该系 统可以帮助企业内部网络管理维护人员对计算机进行实时监管,以保证企业 网内业务主机安全可靠地运行。 1 1 2 课题研究背景和现实意义 随着计算机技术的飞速发展,嚼络的组建成为一种必然,网络的管理就 变得尤为重要。随着网络的规模和复杂性的不断增加,最初的完全式入工管 理已经不能够满足网络管理的需要,所以对网络管理模型的研究成为必要, 同时也给网络管理系统的设计和开发提出了更高的要求各种网络技术的不 断推出、各种操作系统的不断发展、不同公司推出支持特定协议的网络设备 等等,使当今网络日益呈现出大规模的软硬件、操作系统等上的异构性。目 前网络管理标准主要有i e t f 和o s i 发布的s n m p ( s i m p l en e t w o r km a n a g e m e n t p r o t o c 0 1 ) 和c m i p ( c o m m o nm a n a g e m e n t 。i n f o r m a t i o np r o t o c 0 1 ) “1 s n m p 由 于其简单易实现,成为i n t e r n e t 网络管理事实上的标准,但由于过于简单, 在功能和安全性上都不够完善;c m i p 是理论上较为完善的管理标准,习前主 要在电信领域中得到应用,但过于复杂,难以完全实现。传统的基于s n m p 的网络管理系统通常采用管理者代理模式,这种模式下的管理者任务繁重, 容易造成网络管理瓶颈问题,而导致管理效率较低。因此设计和构建层次化、 智能化、w e b 化、集成化的综合网络管理平台,来屏蔽网络软硬件的异构性, 屏蔽不同设备对不同协议的支持等,是当前网络管理的必然趋势,具有十分 重要的意义。 许多标准机构、学术论坛或组织都在进行这方面的研究,提出了各种可 能的管理体系结构和规范,网络管理已经成为十分热门的技术领域。其中, 开发分布式管理是研究的重点,其主要任务是为网络管理系统建立一个分布 式的解决方案。在这种情况下,随着面向对象的分布式处理模型的出现,公 西南科技大学硕士研究生学位论文第2 页 共对象请求代理体系结c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ) 作为第三种解决方案被提出。c o r b a 是由对象管理组织o m g 提出的一种标准的面向对象应用程序体系规范。它最初是针对分布式计算被 提出的,而并非针对网络管理任务被提出,但因为它在许多方面非常适合应 用于网络管理,所以在网管领域日益被广泛重视。 根据国内外当前在这一领域的研究情况和今后网络管理的发展趋势,同 时,鉴于公共对象请求代理体系结构c o r b a 的广泛应用,基于c o r b a 的分布 式网络管理是一个现实可行、可实现大规模异构复杂网络管理的方案。如今, c o r b a 已经被i t u t ( 国际电信联盟) 采纳作为网络管理标准接口之一。我国 对于c o r b a 技术在网络管理中的研究还处在探索阶段,还未能建立起一套成 熟、统一的工业标准。因此,采用c o r b a 作为分布式网络管理系统的主框架 成为当前研究的主要课题之一 随着l i n u x 操作系统的迅速发展和普及,它的优势充分显现出来,尤其 是核心源码公开、系统的稳定性、强大的网络功能已经受到越来越多的关注。 中国入世,各种针对盗版的打击力度和对于正版软件的保护力度都将大大加 强,w i n d o w s 的盗版软件随处可见的现象将会一去不返,面对这样的情况, 大部分的公司只有两种选择:要么花大价钱向微软购买正版软件,要么是用 自由操作系统l i n u x ,特别是重要部门,如国家机关和政府部门,它们不能 把自己的办公系统操纵在国外大公司手里一些政府办公系统已经转用红旗 l i n u x ,而且l i n u x 的界面也在不断的改进,更加友好易操作。l i n u x 也开始 在局域网的搭建中发挥重要作用。以l i n u x 为主要操作系统的l i n u x 局域网 在不断地增加,所以,对基于l i n u x 的局域网的管理也变得越来越重要。而 目前在这方面的研究还很少,尤其是对于网络内主机软件、硬件、流量控制 等方面的管理的研究成果尚未见到。目前国内在这方面的研究大多数是针对 w i n d o w s 平台,已有产品也大多数适用于w i n d o w s 平台。 本文就是在这样一个大的背景下,在l i n u x 平台下,对采用c o r b a 技术 实现网络管理进行了较全面和深入的研究,提出了基于l i n u x 的四层网络管 理模型,并给出了原型系统的设计和实现方法,并对部分模块进行了测试。 综上所述,本课题具有一定的理论和实用价值。 1 2 主要研究内容 本课题来源于四川省青年软件创新工程项目 = o ) 个后继节点;整个树中的编号( o r d e r s 属性) 是按树的广度 优先遍历的序号;所有祖先编号( p a r e n t s t r 属性) 是将所有祖辈节点的编号 组合成字符串,该属性的长度应该根据需要设定足够大。树型管理结构如图 5 - 2 所示: _ - _ - _ _ - _ _ _ _ - - _ _ _ _ _ - - _ _ _ - _ _ - _ - - - _ - _ - - _ _ _ _ - _ _ _ _ 一 c a t e g o r i e s l l j ,系统设置 ,砷k 户管理; - 被监管主机管理l ,子同服务嚣配置i ,规则设置i 应用程序 ; ,硬件资瑷 ”资源列表 ”章法瓷器 ,墟用程序 ”硬件瓷滚 图5 - 2树型管理目录 fig 5 - 2 m a n a g e m e n tdir e c t o r yo ft r e e ( 5 ) 数据库 在现代网络管理模型中,数据库是管理系统的心脏。在o s i 标准中,这 个数据库被称为管理信息库“”。数据库不是简单的数据的堆积,为了满足数 据共享的需要,要将相关数据按照合理的数据模型在计算机中进行组织和存 储,以提供方便、高效、可靠、一致的信息服务。 基于l i n u x 的四层网络管理模型中,有两处分别涉及到了数据库。每个 子网设置自己独立的数据库,位于子网服务器,它用来存放代理者收集到的 子网内主机资源信息等。在主控服务器上设置数据库。存储子网配置情况。 当网络管理系统运行时,由被监管对象端收集到的信息与位于子网服务器的 数据库中的信息进行比较,进而对数据库内容进行更新。由于本模型实现的 系统在l i n u x 下运行,所以选择目前l i n u x 下流行的m y s q l 数据库。m y s q l 是一个真正的多用户、多线程的s o l 数据库服务器”。m y s q l 是以一个客户 西南科技大学硕士研究生学位论文第4 7 页 机服务器结构实现,它由一个服务器守护程序m y s q l d 和很多不同的客户程 序和库组成。 在实现对数据库中数据访问时,需要根据不同的数据表定义不同的数据 表对象,也就是实现对操作和数据的对象封装,分别将数据的查询、插入、 删除等定义为对象的操作,还需要将不同的字段设置成不同的对象属性,以 实现对字段的取值和赋值。为了很好的维护各种类型的数据,在各个数据库 中为其建立了相应的表。按照这些表的属性,将它们分为两类:时间无关数 据表和时间相关数据表。 ( 1 ) 时间无关数据表 时间无关数据表主要存放一些静态信息,这些信息在设定后基本上保持 不变,如每个子网内被监管主机的i p 地址、主机名、所属子网名等,数据表 结构如表5 2 所示: 表5 - 2 c o m p m e s s a g e 表结构 t a bie 5 2 t a bies t r u c t u r eo fc o m p m e s s a g e 。表5 _ 3s o f t - a r e m e s s a g e 表结构 t a bie 5 - 3t a bies t r u c t u r eo fs o f t w a r e m e s s a g e ( 2 ) 时间相关数据表 时间相关数据表主要存放一些动态信息,这些信息与时间密切相关,如 西南科技大学硕士研究生学位论文第4 8 页 每个子网内被监管主机上安装的软件包信息,软件包的安装和卸载等都是与 时间密切相关的。数据表如表5 - 3 所示。 5 3 对象间通信机制的设计与实现 c o r b a 对象之间通信机制的设计和实现是开发c o r b a 应用程序的重要步 骤,所以,它也成为基于l i n u x 的四层网路管理模型的设计和实现的必要组 成部分。 在基于l i n u x 的四层网络管理模型中,驻留在设备层的管理程序负责被 监管设备基本数据的采集,管理者通过代理者获得这些信息。所以,设备层 与代理层、代理层与管理层之间的数据交换都涉及到通信机制的闯题。以下 分别进行论述。 5 3 1 代理层与管理层间通信机制 在一个典型的c o r b a 应用程序中,客户程序与服务器程序之间采用同步、 单目通信方式m ,。同步通信要求通信双方必须同时就绪才可以进行通讯,这 种通信方式往往导致客户程序阻塞以等待服务对象的答复;而单目通信指客 户程序只能与某一特定伺服对象进行一对一的通信。同步、单目的通信方式 适应于许多应用场合,所以c o r b a 也把这种通信方式作为默认的分布式对象 通信模式。 在本管理模型中,管理层的c o r b a 客户端通过与代理层的c o r b a 对象之 问的数据交换,实现对各代理者所在子网内的被监管设备的数据采集和状态 监控等操作。所以代理层与管理层间及由代理者发起的通信都采用c o r b ao r b 支持的典型的同步、单日通信方式。在同步请求下,一个主动的c o r b a 客户 端向被动的服务器调用请求,在发送一个请求之后,管理者阻塞并等待返回 结果。管理者知道请求的目的地,因为管理者有目标对象的对象引用,每个 请求都有一个代表所要调用的对象引用的单个目标。如果目标对象不存在或 者由于某些原因无法获得,发出调用的c o r b a 客户端会收到一个异常。 5 3 2 设备层与代理层间通信机制 5 3 2 1 通信机制设计 传统的网络管理模式是m a n a g e r a g e n t ,以中断轮询的方式通过g e t 、 s e t 、t r a p 等操作实现信息的交换和处理。本模型中,代理者需要不问断地 西南科技大学硕士研究生学位论文第4 9 页 获取被管理设备的数据信息,如果此时采用轮询的方式,若轮询间隔太小, 那么将产生太多不必要的通信量;若轮询间隔太大,并且在轮询时顺序不对, 那么关于一些大的灾难性的事件的通知又会太慢,这就违背了积极主动的网 络管理目的。所以,设备层和代理层之间除了采用同步、单目通信模式,有 时需要某些更为复杂的通信机制,其特征如下: 事件的发送者和接收者之问并不直接打交道,事件的发送者发送消息 时,并不关心谁将收到它,可能有多个事件接收者收到,也可能没有任何接 收者。事件接收者的数目可以动态地改变,对事件的发送者这是不可见的; 事件的发送和接收是异步的; 事件接收者并不关心是谁发出的事件; 事件的服务质量应在某种程度内受到控制; 事件在传递中途是否经过缓冲或分发,对双方是透明的。 在某些应用场合,客户程序需要发出消息,但未知接收消息的对象是否 就绪,或根本不清楚哪些对象会对这些消息感兴趣,此时,可以采用c o r b a 事件服务提供的异步、多目通信方式。这样,各c o r b a 对象之间就建立了一 条宽松耦合的通信信道。c o r b a 事件服务支持推( p u s h ) 和拉( p u l l ) 两种 事件传递模型。对于推模型,事件的提供者起带头作用,发起事件数据的传 送;对于拉模型,事件的消费者起带头作用,向事件提供者请求事件数据。 基于l i n u x 的四层管理模型中采用“推模型”。被监管对象端的c o r b a 对象向 代理者发起消息的传送,不需要考虑代理者是否准备就绪。这样就可以很好 地解决代理者采用轮询的方法获得被监管设备的数据信息时遇到的一系列问 题。 ( 1 ) 通信模型 在基于l i n u x 的四层网络管理模型中,每个子网内有多个被监管对象, 分别在每个被监管对象上部署推提供者,推消费者部署在每个子网对应的代 理者端。推提供者和推消费者之间通过事件通道建立连接。事件通道中的代 理提供者和代理消费者则与实际的推提供者和推消费者进行交互。通信模型 如图5 3 所示。 被监管对象端的推提供者把被监管对象的数据信息通过事件通道p u s h 给代理者端的推消费者,推提供者和推消费者之间通过使用代理对象实现了 完全分离;被监管对象中的推提供者可以在任何时刻产生事件,而不用知道 关于推消费者的信息;同样推消费者也可以在任何时刻通过事件信道提取事 件,而不必知道作为推提供者的被监管对象的任何信息。 西南科技大学硕士研究生学位论文第5 0 页 f 被监管对象 事件通道 i 。 p u s h代提 il 推提供者i -供楣 p u s h 代理者 l l , 理者 j 理署j r i 赫i 监咎对刍i i 推消赞者l i t 纂筹lp代圹 倒 图5 - 3被监管对象和代理者问p u s h 通信模型 f ig 5 - 3 t h ep u s hm o d eib e t w e e nm a n a g e do b j e c ta n da g e n t 在该模型中,当事件提供者发出一个调用,则调用事件通道对象上的 p u s h 方法,事件通道接着把数据推给消费者对象。事件消费者可以通过调用 事件通道上的方法d i s c o n n e c t _ p u s h c o n s u m e r 来停止接收事件,也可以调用 事件通道上的c o n n e c td u s h c o n s u m e r 方法来注册感兴趣的事件类型。 ( 2 ) i d l 接口定义 推消费者和推提供者接口定义: m o d u l ec o s e v e n t c o m m e x c e p ti o nd is c o n n e c t e d : i n t e r f a c ep u s h s u p p l i e r v o i dd i s c o n n e c tp u s h s u p p l i e r 0 : : i n t e r f a c ep u s h c o n s u m e r v o i dp u s h ( i na n yd a t a ) r a i s e s ( d i s c o n n e c t e d ) : 推提供者回调该操作将数据p u s h 给推消费者 v o i dd i s c o n n e c t p us h c o n s u me r ( ) : : ) : 推消费者实现p u s h c o n s u m e r 接口,并通过推提供者注册一个对象引用, 然后推提供者通过调用p u s h 操作来使用对象引用向p u s h c o n s u m e r 发送数据。 事件通道接口定义: m o d u lec o s e v e n t c h a n n e l a d m i n i n t e r f a c ep r o x y p u s h s u p p l i e r : i n t e r f a c ep r o x y p u s h c o n s u m e r : 西南科技大学硕士研究生学位论文第5 1 页 i n t e r f a c es u p p l i e r a d i m i n 获取消费者代理的对象引用 p r o x y p u s h c o n s u m e ro b t a i n p u s h _ c o n s u m e r ( ) : i n t e r f a c ec o n s u m e r a d i m i n 获取提供者代理的对象引用 p r o x y p u s h s u p p l i e ro b t a i n p u s h s u p p l i e r0: : i n t e r f a c ee v e n t c h a n n e l 提供事件通道的管理型操作 c o n s u m e r a d m i nf o r c o n s u m e r ( ) : s u p p l i e r a d m i nf o r s u p p l i e r ( ) : v o i dd e s t r o y0 : l : : 事件通道可以提供管理接口,允许推消费者和推提供者与事件通道建立 逻辑连接。 代理接口定义: m o d u l ec o s e v e n t c h a n n e l a d m i n e x c e p ti o na 1 r e a d y c o n n e c t e d ) : e x c e p ti o nt y p e e r r or : i n t e r f a c ep r o x y p u s h c o n s u m e r :c o s e v e n t c o m m :p u s h c o n s u m e r 将推提供者连接到事件通道 v o i dc o n n e c t _ p u s h _ s u p p l i e r ( i n c o s e v e n t c o m m :p u s h s u p p l i e r p u s h s u p p l i e r ) r a i s e s ( a 1 r e a d y c o n n e c t e d ) : ) ; i n t e r f a c ep r o x y p u s h s u p p l i e r :c o s e v e n t c o m m :p u s h s u p p l i e r 将推消费者连接到事件通道 西南科技大学硕士研究生学位论文第5 2 页 v o i dc o n n e c tp us h _ c o n s u m e r ( i n c o s e v e n t c o m m :p u s h c o n s u m e rp u s h c o n s u m e r ) r a i s e s ( a 1 r e a d y c o n n e c t e d ,t y p e e r r o r ) ; : ) : 一个消费者注册为推消费者时,需要调用c o n s u m e r a d m i n 对象的 o b t a i np u s hs u p p l i e r 获得p r o x y p u s h s u p p l i e r 的对象引用,同样,一个提 供者推出事件时,需要通过调用s u p p l i e r a d i n 对象的 o b t a i np u s hc o n s u m e r 获得p r o x y p u s h c o n s u m e r 的对象引用。 5 3 2 2 通信机制实现 不管是实现被监管对象端的推提供者,还是实现代理者端的推消费者, 他们各自实现的步骤基本相似。具体实现代码略,以下分别给出实现步骤。 ( 1 ) 对于被监管对象端推提供者,实现的基本步骤如下; 绑定到o r b 和事件通道上 o r g o m g c o r b a o r bo r b = o r g o m g c o r b a o r b i n i t ( a g r s ,n u l l ) : e v e n t c h a n n e le v e n t c h a n n e l = e v e n t c h a n n e l h e l p e r b i n ( o r b ) : 从事件通道中获取一个推消费者代理 s u p p l i e r a d m i na d m i n2e v e n t c h a n n e l f o r s u p p l i e r s ( ) ; p r o x y p u s h c o n s u m e rp u s h c o n s u m e r = a d m i n o b t a i n _ p u s h c o n s u m e r0 : 创建一个推提供者 m y s u p p l i e rp u s h s u p p l i e r = n e wm y s u p p l i e r 0 : 将推提供者连接到事件通道 p u s h c o n s u m e r c o n n e c t p u s h _ s u p p l i e l - ( p u s h s u p p l i e r ) ; 创建一个c o r b a 消息 h e l l o i m p l e m e n t a t i o nm s g = n e wh e l l o i m p l e m e n t a t i o n 0 : 利用c o r b a 消息创建一个a n y 事件对象 o r g o m g c o r b a a n yp u s h m e s s a g e = o r b c r e a t e a n y0 ; p u s h m e s s a g e i n s e r t _ o b j e c t ( m s g ) : 将消息推给消费者 p u s h c o n s u m e r p u s h ( p u s h m e s s a g e ) : ( 2 ) 对于代理者端推消费者,实现的基本步骤如下: 绑定到o r b 和事件通道上 西南科技大学硕士研究生学位论文第5 3 页 o r g o m g c o r b a o r bo r b = o r g o m g c o r b a o r b i n i t ( a g r s ,n u l l ) ; e v e n t c h a n n e le v e n t c h a n n e l = e v e n t c h a n n e l h e l p e r b i n ( o r b ) : 从事件通道中获取一个推提供者代理 c o n s u m e r a d m i na d m i n = e v e n t c h a n n e l f o r c o n s u m e r s0 ; p r o x y p u s h s u p p l i e rp u s h s u p p l i e r = a d m i n o b t a i n _ p u s h _ s u p p l i e r 0 : 创建一个推消费者 m y c o n s u m e rp u s h c o n s u m e r = n e 冒m y c o n s u m e r0 ; 将推消费者连接到事件通道 p u s h s u p p l i e r c o n n e c t _ p u s h c o n s u m e r ( p u s h c o n s u m e r ) ; 在一个p u s h 0 实现中被接收 p u b li cv o i dp u s h ( a n yp u s h m s g ) o r g o m g c o r b a o b j e c to b j e c t = p u s h | l s g e x t r a c t _ o b j e c t ( ) : h e l l om s g = h e l l o h e p e r n a r r o w ( o b j e c t ) : 5 4 底层通信的实现 系统使用c o r b a 作为分布式计算模型,对于上层应用程序而言,进行通 信时只需指定一个c o r b a 的命名服务,并提交服务名称即可,底层参数则交 给了o r b 负责。具体的通信过程如下: ( 1 ) 客户程序通过发送请求去调用由对象实现提供的服务 客户程序可以通过静态调用方式或动态调用方式将请求发送给o r b 内 核,然后由o r b 内核将请求转发给对象实现。静态调用方式借助于客户程序 桩完成,动态调用方式则使用动态调用接口。从发送请求的功能上看,这两 种调用方式具有完全相同的能力( 即两者的调用语义相同) ,对象实现并不知 道请求从客户端是如何发出的。本系统的实现采用静态调用方式。 ( 2 ) o r b 将请求分派给对象实现采用静态调用方式:通过由i d l 生成的 静态框架实现 o r b 通过i d l 框架查找合适的实现代码、传送参数,并将控制传给对象 实现,对象实现执行请求时可通过对象适配器p o a 获取o r b 的某些服务,请 求完成后将结果返回给客户程序。 ( 3 ) 对象实现与o r b 内核之间的通信由对象适配器p o a 完成 西南科技大学硕士研究生学位论文第5 4 页 对象适配器负责对象引用的生成与解释、方法调用、交互的安全性、对 象实现的激活与冻结、将对象引用映射到相应的对象实现、对象实现的注艇 等。为满足特定系统的需要,供应商会提供不同的专用对象适配器。对象实 现可选择使用哪种对象适配器,这取决于对象实现所需的服务。 5 5 请求调用过程的实现 个分布式计算系统具有运行在一些计算机上的客户机进程和服务器进 程,这些客户机进程和服务器进程之间通过某一网络协议进行通信。在大多 数分布式系统中,客户机向服务器请求完成一些功能,而服务器则完成这些 功能。在这些系统中,通常客户机与服务器的联系很紧密,以至它们彼此要 详细地知道对方是如何工作。最初,这样做可能会使构造这类系统更为容易, 但它使我们无法在修改客户机或服务器时不需要修改另方。 在c o r b a 中,客户机和服务器是正式分离的,因此可以只改变其中一方 而不用改变另一方。c o r b a 客户机只知道如何请求做某些事情,而c o r b a 服 务器只知道如何完成客户机所请求要完成的任务。这意味着可以改变服务器 完成任务的方式而不影响客户机的请求方式。例如,可以改进或创建一个全 新的c o r b a 服务器实现而不影响客户机,或者利用已有的c o r b a 服务器接口 创建新的客户机而不影响服务器。 c o r b a 把客户机和服务器分离开来,限制它们只用一种称为“请求 ( r e q u e s t ) ”的消息来通信。c o r b a 系统内的每个交互都是基于客户机发出一 个请求或服务器响应一个请求。发送请求的过程可以称为。激发 ( i n v o c a t i o n ) ”。 所有的请求都有一种基本的形式,并由以下部分组成: 一个操作的标识,该操作用来让服务器完成客户机的请求: 一个特定对象的引用,操作是在该对象上完成的; 一个有关请求成功或失败的返回异常信息的机制: 一个指向上下文对象( c o n t e x to b j e c t ) 的可选引用,上下文对象包括 客户机想要作为请求的一部分而传播绘服务器的附加信息: 零个或多个与被请求的操作相关参数。 本论文在基于l i n u x 的四层网络管理模型的实现中,无论是被监管对象 与代理者之间,还是代理者和管理者之间,每个对象间的交互都是基于“请 求调用”的,在每次请求调用过程中,对象引用的获取采用c o r b a 提供的命 西南科技大学硕士研究生学位论文第5 5 页 名服务( n a m i n gs e r v i c e ) 来完成。下面以代理者和管理者之间的请求调用 过程的实现为例迸行说明。如图5 - 4 所示: 代理者应用程序管理者应用程序 图5 4代理者管理者请求调用过程 f i g 5 - 4 r e q u e s t t r a n s f e rb e t w e e na g e n ta n dm a n a g e r 代理者和管理者之间的请求调用过程解释:代理者应用程序为c o r b a 对 象导出一个对象引用o r ( o b j e c tr e f e r e n c e ) ,再将这个o r 绑定到一个简单 且容易理解的名称上;管理者应用程序通过n a m i n gs e r v i c e 查询并获得一个 存储在该名称下的对象引用,管理者通过这个对象引用调用对象的方法,调 用首先被传递给管理者端的o r b ,然后传送给代理者端的o r b ,代理者根据 o r 定位产生这个0 r 的p o a ( p o r t a b l eo b j e c ta d a p t e r ) ,并把请求传给它, 最后,p o a 把请求传给真正的服务对象s e r v a n t ,完成调用并原路返回。 访问一个接口的某一操作将引起o r b 发送一个消息给相应的对象实现。 如果目标对象与调用程序处于同一地址空间,调用与一般的函数调用形式一 样,反之,o r b 运行时将发送一个远程过程调用给这个实现。 5 6 模块实现 本系统主要包括两个模块,即“设备层一代理层”模块和“代理层一管 理层”模块。在本系统中,客户端与服务器端的角色划分是相对的或多层次 的,服务器中的c o k b 对象不仅能够被访问,而且自身也可能做为其他c o r b a 对象的客户。其中,位于代理层上的代理者担当双重角色,相对于被监管对 象,它是客户端;而相对于监管界面,它是服务器端。本论文第四章6 节中 详细叙述了c o r b a 应用程序的基本开发流程,参照该开发流程,下面给出几 个重要开发过程的具体实现。 西南科技大学硕士研究生学位论文第5 6 页 5 6 1定义i d l 接口和编译l d l 文件 对于每个c o r b a 应用程序的开发,第一步是用接口定义语言i d l 定义它 的接口。i d l 将客户程序的实现和服务器程序的实现分离开,并且建立客户 程序与服务器程序都要遵循的协议。“设备层一代理层”模块i d l 接口定义如 下: m o d u l en e t w o r k m a n a g e s t r u c tt a b l e m e s s a g e s t r i n gt y p e s : s t r i n gn a m e s : s t r i n gv a l u e s : l o n gi s v a l i d : ) : t y p e d e fs e q u e n c e i n t e r f a c eg e t m e s s a g e v o i dg e t m e s s a g e s ( i ns t r i n gt y p e s , : i n t e r f a c eh a n d l e m a n a g e r g e t m e s s a g eo p e n ( i ns t r i n gh o s t n a m e ) : l : ) : 以上代码通过定义三个接口,分别定义了三个对象:资源检测对象、合 法性匹配对象和报警对象。例如:接口g e t m e s s a g e 定义了一个获取被监管设 备数据信息的对象,g e t m e s s a g e 对象只有一个单个的操作g e t m e s s a g e s ,客 户机通过调用该操作来访问该对象。该模块中所有i d l 接口被映射到相应程 序包中的接口或类。 在编写这个i d l 定义,并将其放置在名为c o r i d l 的文件中后,还必须 对它进行编译。为了编译这个i d l 文件,需要用i d l 源代码文件作为命令行 参数调用编译器。对于不同的o r b ,使用的编译命令有所不同。本模型在l i n u x 下实现,c o r b a 的o r b 选择为t a o 。所以执行以下编译命令: t a o i d lc o t i d l 这里客户机和服务器程序都选用高级编程语言c + + 和相同的o r b 。编译后 生成的源文件包括头文件、框架文件和桩文件,如下所示: 客户s t u b s :c o r e h 、c o r c c p p 、c o r c i 西南科技大学硕士研究生学位论文第5 7 页 服务器s k e l e t o n s :c o r s h 、c o r s c p p 、c o r s i 服务器s k e l e t o n ( t i e ) :c o r s _ t h 、c o r s _ t c p p 、c o r s _ t i i d l 编译器将i d l 映射到c + + 语言,产生客户程序使用的桩代码和编写对 象实现所需的框架代码。一个i d l 编译器生成的源文件必须与应用程序代码 一起生成客户机和服务器的可执行文件。如图5 5 所示: 图5 - 5i d l 接口工作流程 f i g 5 - 5 w o r kf l o wo fi d li n t e r f a c e 在本系统中,没有严格的限制客户机和服务器实现的数目,多个服务器 实现可以共存。这种形式提供了c o r b a 的基本的可扩展性机制,例如:如果 发现一个服务器的进程随着对象的数目增大而开始出现阻塞现象时,完全可 以在不同机器上用同样的接口来运行另外一个服务器程序,每一个服务器程 序实现相同的接口来控制不同的对象实例。 5 6 2 服务器应用程序的实现 “代理层一管理层”模块中服务器应用程序m a i n 函数的实现如下: # if n d e fs e r v e r h h d e f ib es e r v e rh h # i n c l u d e # in c l u d e # in e l u d e f l i n c l u

温馨提示

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

评论

0/150

提交评论