(计算机软件与理论专业论文)集群信息收集器的设计研究.pdf_第1页
(计算机软件与理论专业论文)集群信息收集器的设计研究.pdf_第2页
(计算机软件与理论专业论文)集群信息收集器的设计研究.pdf_第3页
(计算机软件与理论专业论文)集群信息收集器的设计研究.pdf_第4页
(计算机软件与理论专业论文)集群信息收集器的设计研究.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 本文针对传统的集群管理系统的信息收集中存在的扩展性差、移植性差的问 题,提出了一种集群信息收集器的框架模型。通过对集群系统的分析,以信息收 集为重点,首先分析了集群与信息收集器之间的关系,由于集群系统的多样性和 复杂性,得出信息收集器应该具有可移植和可扩展的特点。其次是分析集群信息 收集器的特点,采用j a v a 、x m l 以及设计模式等相关技术,设计出一种支持插件 式开发的集群信息收集系统结构。最后,采用j m x 技术,使得整个系统便于在集 群中进行管理,而采用优秀的第三方类库,如d o m 4 j 、l 0 9 4 j 和q u a r t z ,降低开发的 难度、缩短了开发的周期。在系统地描述上,采用统一建模语言u m l 对系统进行 规范化的描述,使得整个系统结构清晰,且易于理解。 关键词:集群信息收集j a v ax m l 设计模式 a b s t r a e t a b s t r a c t i no r d e rt oi m p r o v et h eb a de x t e n d a b l ea n dp o r t a b i l i t yi nd a t ac o l l e c t i o no ft h e c l u s t e r , a l le x t e n d a b l ea n de o n f i g u r a b l ed a t ac o l l e c t i o nf r a m e w o r ki sp r e s e n t e di nt h i s p a p e r b a s e do nt h ea n a l y s i so ft h ec l u s t e rs y s t e m ,t h et o o li sd e s i g n e de m p h a s i z e do n d a t ac o l l e c t i o n a tt h ef i r s t ,b e c a u s et h ec l u s t e rs y s t e mi sv a r i e t ya n dc o m p l i c a c y , t h e d a t ac o l l e c t i o nt o o ls h o u l dh a v ep o r t a b i l i t ya n de x t e n d a b l ea f t e rt h ea n a l y s i so ft h e r e l a t i o n s h i pb e t w e e nt h ec l u s t e ra n dt h ed a t ac o l l e c t i o nt 0 0 1 a tt h es e c o n d ,w i t ht h e a n a l y s i so ft h ec h a r a c t e r i s t i c so fd a t ac o l l e c t i o nt o o li nt h ec l u s t e r , t h et o o li sd e s i g n e d t os u p p l yp l u g - i nd e v e l o p m e n tw i t i lt h et e c h n o l o g y :j a v a , x m la n d d e s i g np a t t e m a t l a s t ,j m xf r a m e w o r km a k e st h es y s t e mm a n a g e a b l e ,a n dt h et h i r dp a r t yl i b r a r y s ,s u c h 鹧d o m 4 j ,l 0 9 4 ja n dq u a r t z ,d e c r e a s e dt h ed i f f i c u l t ya n dt h ep e r i o do fd e v e l o p m e n t a t t h es y s t e md e s c r i p t i o n , w e 峨u m lt om a k et h es y s t e ms t a n d a r d i z a t i o n , c l e a ra n d u n d e r s t a n d a b l e k e y w o r d :c l u s t e r ;d a t ac o l l e c t i o n ;j a v a ;x m l ;d e s i g np a t t e r n 创瓤性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中 不包含其他人已经发表或撰写过的研究成果:也不包含为获得西安电子科技大学 或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中做了明确的说明并表示了谢意。 本人签名: 日期:矽7 杉万 关于论文使用授权的说明 本人完全了解西安电子科技大学的有关保留和使用学位论文的规定,即:学 校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部 或部分内容,可以允许采用影印、缩印和其他复制手段保存论文。( 保密论文在 解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名: 导师签名 日期:绷纪 第一章绪论 第一章绪论 1 1 集群环境下的信息收集的现状 集群( c l u s t e r ) 技术是近二十年来随着商品化部件性能快速提高以及高性能计 算需求迅速增长而兴起的高性能计算技术,目前己被广泛用于科学研究和商业应 用。集群系统由于采用商品化硬件和自由软件构建而得到了较高的性价比【l 】。用户 在希望以较低成本获得更大的计算能力的同时,也希望集群系统易于管理和使用。 集群环境下的信息收集器收集的数据是进行集群系统的管理依据。 集群信息收集器,可以是集群系统软件的一个组件,也可以是集群报表系统 或决策支持系统的一部分,它负责向管理员和普通用户提供整个系统的运行状态 的历史信息、单个计算结点的运行状态信息、集群软件的运行信息、用户的使用 情况以及集群间的交互信息等。系统管理员可以通过对数据的分析做出集群系统 的优化和调整方案,如果集群的使用是有偿的话,还可以作为对集群用户收费的 依据。如果没有这些数据,集群的管理员将无法对集群系统的运行做出评价,也 无法为系统管理提出有建设性的方案。 信息收集器收集到的数据是集群管理和使用的基础。还可以在其基础上,开 发出用户所需要的报表系统或决策支持系统。 而现有的信息收集器大多建立在特定集群系统之上,以集群系统或者是集群 报表系统的一个组件的形式发布的。其与集群的耦合度比较高,不利于移植和扩 展。 1 2 论文的研究背景 本文是根据p l a t f o r m 公司的p l a t f o r m 报表框架的实际需求提出的,并在 p l a t f o r m 公司的产品架构下进行的研究。p l a t f o r m 公司一直致力于企业网格( 集群) 系统的解决方案。p l a t f o r m 报表框架是为集群环境下的信息收集与报表显示提供的 一整套解决方案。作者参与了其中的集群信息收集部分的设计和开发工作。 1 3 论文研究的目的 集群信息收集器不仅应该能够收集集群系统的信息,而且还能够收集运行在 集群系统之上的应用程序的信息。因此,我们的目标是设计一种扩展性比较好, 2 集群信息收集器的设计研究 且易于移植的信息收集系统。 信息收集器应该具有以下特点: 1 ) 信息收集器应该具有灵活的框架,方便开发人员扩展。 2 ) 具有较强的生命力,可以运行在多数集群环境下。 3 ) 具有较好的可移植性,支持多种集群平台和操作系统。 4 ) 具有较好的易用性。 5 ) 开放的数据库模式,可以使用户方便的与他们的数据仓库或数据分析工具 进行整合。 集群技术一直在不断发展,相应的信息收集技术也在不断的变化。然而这些 技术还未达到非常成熟的阶段,还在不断改进之中。要在这个不断改进的基础上 解决目前集群系统所存在的问题,其软件结构是否合理将在一定程度上决定着该 软件的生存周期。另外,开发这些程序还有另外一个目的:探索更好的集群信息 收集技术。因此,我们仔细设计了这个组件的结构,希望组件最后完成时能够具 备可移植性、扩展性、稳定性、可维护性、易用性。 本文尝试了设计一种具备可移植性、扩展性、稳定性、可维护性和易用性的 集群环境下的信息收集器,这次尝试对于以后开发集群信息收集器或集群报表系 统都有一定的参考价值。 1 4 论文各章节的安排 文章的绪论部分分析了当前国内外集群信息收集器的研究现状,给出本文的 研究背景及研究目的。本文各章节内容如下: 第二章对集群系统与集群信息收集器进行总体的概述,分析信息收集器在机 群系统中的作用、功能及评价标准。 第三章着重讲述了在系统设计中主要采用的相关技术。 第四章对集群信息收集器进行了详细的分析,并提出了相应的设计方案。 第五章对全文进行了回顾和总结,指出系统目前的不足和改进目标。 第二章集群与集群信息收集 第二章集群系统和集群信息收集器 3 集群信息收集器是集群系统管理软件的一个重要组成部分。因此要了解集群 系统信息收集器就必须先了解集群系统管理软件。下面先介绍集群系统相关概念, 再概述集群信息收集器。 2 1 集群系统相关概念 集群是一个由一组独立的计算机和它们之间互连的网络组成的计算系统。集 群的所有组成子系统均在一个单一管理域中被统一管理,通常情况下作为单一计 算机系统被管理i l 】。 集群系统是一种并行系统或分布式系统,它是由一组独立、完整、互连的计 算结点组成。这些计算结点协同工作以提供一个单一、完整的计算资源。集群系 统作为一种高性能计算系统,它的优点是在体系结构上具备高可用性和扩展性。 为了发挥集群系统的优点来满足应用方向的需求,研发人员开发了各种层次的软 硬件,这些软硬件构成了整个集群系统1 2 】。 集群系统体系结构常见的一种划分,如图2 1 所示: ( 二二匦堕堕 图2 1 集群系统体系结构 集群系统中间件是集群系统中支持单一系统映像( s i n g l es y s t e mi m a g e ,简称 s s i ) 特性和系统可用性的基础,一般指操作系统和应用程序之间的所有软件。集群 系统的结构不同于对称多处理( s y m m e t r i c a lm u l t i p r o c e s s i n g ,简称s m p ) ,可编 微程序多处理器( m i c r op r o g r a m m a b l em u h i p r o c e s s o r ,简称m p p ) 等并行系统, 中问件的构造技术在集群系统构造技术中也就成了关键技术,它的优劣对集群系 统的性能会产生重大影响1 2 】。 4 集群信息收集器的设计研究 2 2 集群系统管理软件概述 集群系统管理软件在集群系统中有着非常重要的作用,它负责保障系统的可 维护性,支持单一控制点等特性。集群系统管理软件的主要功能有作业管理、系 统性能监测、系统配置、结点或结点集的远程控制。大部分集群系统管理软件属 于中间件,还有一些集群系统管理软件则涉及操作系统内核【2 】。 典型的集群系统管理软件有三类; a 偏重作业调度与作业管理的集群系统管理软件 这一类集群系统管理软件的主要功能是作业调度、作业管理和负载平衡。有 时也把把这一工作称为资源调度或资源管理,但实质上都是指作业调度和作业管 理。( 调度和管理作业就是为了充分利用系统资源,也就是对系统资源进行调度和 管理。) 这一类软件的代表有:l s f ( l o a ds h a r i n gf a c i l i t y ) ,p b s ( p o r t a b l eb a t c h s y s t e m ) 。 b 支持可用性和可靠性的集群系统管理软件 这一类集群系统管理软件的侧重点在于系统维护,系统性能监测,系统可用 性的保证。这类管理软件多用于商业应用使用的系统中。代表产品有:c m u ( c l u s t e r m a n a g e m e n tu t i l i t y ) 。 c 偏重监测和结点管理及操作的集群系统管理软件 这一类集群系统管理软件比较鲜明的特点就是能够为管理员提供对单个结点 及结点集进行远程控制的功能和配置系统的功能。代表软件有:v a c m ( v a c l u s t e r m a n a g e m e n t ) ,s c m s ( s m i l ec l u s t e rm a n a g e m e n ts y s t e m ) 。 集群系统管理软件可变化的范围很大,有不同的需求就会有不同的系统管理 软件。搭建一个集群系统时就必须根据实际系统的需要来选择或开发系统管理软 件。 现在,集群系统的主要应用方向可以分为科学计算和商业应用两类。一般来 讲,科学计算对系统的要求就是“越快越好”,而商业应用则必须保证可靠性,可 用性。当然商业应用中有可能会同时对性能和可用性提出要求,这就需要系统管 理软件兼顾这两种需要。还有的系统会同时提供多种服务,它也同时具备一些特 色。就前面的分析来看,作业调度系统比较适合于需要处理大量计算的集群系统, 而支持可用性,可靠性的系统则比较适合于提供可靠服务的商业系统上。 集群是一种由软硬件相配合而构成高可用系统的解决方案。一组计算机互连 起来并相互监控,若其中任一计算机发生故障,集群系统会将其应用和服务切换 到其他计算机上运行。其中,心跳机制的任务是在集群结点之间传送集群系统的 第二章集群与集群信息收集 有关信息,如结点失败、结点恢复、加入或删除一个结点、在结点上启动或停止 某项服务等。在由多个结点组成的集群系统中,心跳可通过广播或多点播送的方 式传送。在收到心跳后,根据心跳附带中的信息,集群结点上运行的集群软件将 采取对应的措施,从而,保证了集群系统具有较高的可靠性和可用性。 2 3 集群信息收集器概述 集群信息收集器作为集群中必不可少的组件,为用户分析集群运行状况和做 出决策提供依据。它的主要作用是收集集群系统的运行状况,作为企业r r 部门管 理集群系统的基础。可以通过集群信息收集器监控集群的工作量,硬件的性能, 软件的使用许可证,集群的运行状况和资源分配情况等。管理人员根据收集到的 数据判断和分析集群内部是否存在某些问题,是否需要增加集群的节点数;而且 还可以用于分析用户对集群的使用情况,帮助系统管理员制定合理的系统管理方 案。 能够为用户提供这么多的管理和决策支持,都是基于从集群系统中收集的数 据。一般来说,这些数据包括: 集群运行的快照数据,即每个一段时间从集群中获得当前集群的运行状态的 数据。 集群运行中基于事件的数据,一般包括集群中用户申请资源、资源分配情况 以及在集群上运行的应用程序的状态变化。 举例来说: 计算节点的资源统计情况:时间戳、资源名、资源类型、资源的数量等。 资源的使用情况:时间戳、资源名、资源类型、所使用的资源的数量等。 用户请求和占用资源情况( 快照) :时间戳、用户名、资源拥有数量、资源 分享数量、资源借用数量、资源分享上限、资源借用上限、资源来源( 用户) 、资 源借出( 用户) 。 用户资源需求情况( 快照) :时间戳、用户名、最大需求量、正在使用的数 量。 以上这些都是在集群系统运行过程中,产生的潜在数据,集群信息收集器将 它们处理并保存到数据库中。 2 3 1 集群信息收集器的功能及评价 集群信息收集器的功能是收集集群运行的各种信息,这些信息包括集群中各 6 集群信息收集器的设计研究 个计算节点的状态,集群中作业的状态,用户对集群的使用情况,集群系统的资 源利用情况等。 要评价一个集群信息收集器的好坏,通常从以下几个方面来看: 1 ) 信息完整 使用集群信息收集器收集到的数据应该是满足客户需要的,这些数据是完整 的和具有实际价值的。 2 ) 稳定性 无论采用什么样的实现机制,都要保证相当长一段连续的时间内系统信息收 集器能够正常运行。 3 ) 可扩展性 要求集群信息收集器在用户对它提出新的要求的时候,它可以方便的扩展以 满足用户的需要。比如说用户需要新添加的应用的数据,在对原有系统不做任何 改动的情况下,就可以添加新的数据。 4 ) 可移植性 这是大部分软件的追求目标,即要求软件在向一个新的系统迁移和或升级后 所做改动要尽可能的少。 2 3 2 集群与集群信息收集器之间的关系 集群信息收集器运行在集群系统中间件之上,在集群中运行的各种软件包括 操作系统都可以是信息收集的对象。集群信息收集主要有两种方式:一种是利用 其他软件提供的应用编程接口( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ,简称a p i ) 来 获取所需要的信息。另一种是对软件的运行记录和日志进行分析和处理之后,得 出有用的数据。如图2 2 所示; 图2 2 集群系统与集群信息收集器 第二章集群与集群信息收集 集群信息收集器通过a p i 或日志文件获得数据,并对其进行加工、处理,然 后将这些原始数据保存到数据库中。 基于集群信息收集器收集到的这些原始数据,可以开发出多种数据表现形式 ( 查询、报表、o l a p 分析和网络服务) 。有时这些原始数据并不能满足用户的需 要,就需要对这些原始数据进行数据转换,并将转换后的数据同样可以保存到数 据库中。转换后的数据仍然可以通过查询的形式供报表、o l a p 和网络服务使用。 常见的基于集群信息收集器的应用系统的数据流图如图2 3 所示: 图2 3 数据流图 虽然集群信息收集器可以脱离集群系统来运行,但是只有运行在集群系统之 上时,它才能发挥出它的巨大作用。利用集群系统所提供的一些有用的功能,可 以增强信息收集器的可靠性和稳定性。 目前,主流的集群系统都支持故障转移( f a i l o v e r ) 机制,利用集群的这一特 性,可以使集群信息收集器在一个计算节点失效的情况下,可以顺利的转移到另 一个计算节点继续运行。只要集群信息收集器可以记录运行状态,并可以从故障 恢复,就能实现这样的功能,同时提高了系统的健壮性。 2 3 3 现有的集群信息收集器的实现机制和特点 7 在介绍集群信息收集器之前,我们先来介绍一下分布式文件系统( d i s t r i b u t e d f i l es y s t e m ) 。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络 上的文件进行管理和存取。尽管存在许多不同的分布式系统体系结构,但是一个 集群信息收集器的设计研究 分布式文件系统是其中的关键。这是因为在一般情况下,文件系统是共享数据的 主要方式。理想情况下,无论数据存储在哪里,本地或者远程,分布式系统应允 许以同样的方式访问数据。这个服务对应用程序和其它操作系统部分都非常有用。 常用的分布式文件系统有n f s ( n e t w o r kf i l es e r v e r ) ,a f s ( a n d r e wf i l es y s t e m ) , g f s ( g l o b a lf i l es y s t e m ) 等。 信息收集器的组织方式一般有两种: 第一种方式是多点收集的方式,它将一个计算节点作为信息收集管理节点, 在每个计算节点上安装一个信息收集器,并将收集到的信息发送到信息收集管理 节点,由该节点将收集到的数据写入数据库中。这样做的优点是降低信息收集节 点的压力,将计算压力平均分摊到各个计算节点上,缺点是没有充分利用分布式 文件系统的优势,增加了网络的压力,以及为安装和维护工作带来不便,以及与 集群系统的耦合度过高,降低了系统的扩展性和可移植性。 另一种方式单点收集的方式,它充分利用分布式文件系统执行远程文件存取 的能力。一般集群系统都工作在分布式文件系统上,使信息收集器工作在相同的 文件系统上。我们只在单个节点上运行数据载入程序,就可以收集到整个集群的 信息。这样做的优势是安装和维护都十分方便。 总的来说,采用单点信息收集器的方式更加有利于系统的设计与实现,因此 我们设计的该集群信息收集器将采用这种信息收集方式。 第三章相关技术 第三章相关技术 3 i j a v a j a v a 是一种面向对象、分布式、解释、健壮、安全、可移植、性能优异,以 及多线程的语言,它有如下优点: 1 ) w r i t eo n c e ,r u na n y w h e r e 优秀的跨平台特性1 2 ) 简单 纯粹的面向对象,使得可以利用j a v a 开发各种应用程序,并且易于维护1 3 ) 网络功能 j a v a 是借助因特网重获新生的,具备编写网络功能的程序。不管是一般的因 特网,局域网的程序,还是分布式网络程序,使用起来都很方便1 4 ) 资源回收处理( g a r b a g ec o l l e c t i o n ) g a r b a g ec o l l e c t i o n 是由j v m 对内存实行动态管理的。程序需要多少内存、 哪些程序的内存已经不使用了,需要释放归还给系统,这些烦琐且危险的操作全 部交由j v m 管理,让我们能够更专心地编写程序,而不需要担心内存的问题。 5 1 异常处理( e x c e p t i o n ) j a v a 引入了异常机制,使得j a v a 程式更稳定、更安全。通过异常处理,不仅 能够清晰的掌握整个程序执行的流程,也使得程序的设计更为严谨。 为了支持大多数的操作系统,且开发难度较低,我们觉得选用j a v a 程序设计 语言是最合适的选择。 3 2 设计模式 设计模式是在特定的背景下某些软件开发问题的可重用的系统化解决方案, 使开发者可以方便地复用成功的软件设计和体系结构。设计模式有利于系统复用 的选择,避免设计损害了系统的复用性。通过提供类和对象间的作用关系以及他 们之间的潜在的说明规范,设计模式甚至能够提供已有系统的文档管理和系统维 护的有效性【b 】。简而言之,设计模式可以帮助设计者更快更好地完成系统设计。 一般而言,个模式有四个基本要素: 1 ) 模式名称( p a t t e r nn a m e ) 一个助记名,它用一两个词来描述模式的问题、 9 1 0 集群信息收集器的设计研究 解决方案和效果。 2 )问题( p r o b l e m ) 描述应该在何时使用模式。它解释了设计模式要解决的问 题及其存在的前因后果,它可能描述了特定的设计问题,也可能描述了导致设计 的类或对象结构不灵活。有时候,问题部分会包含使用模式必须满足的一系列先 决条件。 3 )解决方案( s o l u t i o n ) 描述了设计的组成部分,它们之间的相互关系以及各 自的职能和协作方式。由于模式可以用于许多不同的场合,所以解决方案并不描 述一个特定问题的具体设计或者实现,而是提供设计问题的抽象描述和怎样用一 个具有一般意义的元素组合来解决问题。 4 ) 效果( c o n s e q u e a c e s ) 描述了模式应用的效果及使用模式应该权衡的问题。 因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩 充性和可移植性的影响。 一个设计模式的命名和抽象确定了一个通用设计结构的主要方面,这些设计 结构能够被用来构造可复用的面向对象设计。设计模式确定了所包含的类和实例, 它们的角色、协作方式以及职责分配。每一个设计模式都集中于一个特定的面向 对象设计问题或者设计要点,描述了什么时候使用它,在另一些设计结构约束条 件下是否还能使用,以及使用的效果和如何取舍。 设计模式在粒度和抽象层次上各不相同。我们根据以下两条准则为模式进行 分类。第一是目的准则,模式是用来完成什么工作的。模式己经其目的可分为仓0 建型( c r e a t i o n a l ) 、结构型( s t r u c t u r a l ) 、行为型( b e h a v i o r a l ) - 一种。创建型模式遇到对 象的创建有关:结构型模式处理类和对象的组合;行为型模式对类和对象怎样交 互以及怎样分配职责进行描述。 第二是范围准则,指定模式主要是用于类还是对象。模式处理类和子类之间 的关系,这些关系通过继承建立的静态关系,在编译时就确定下来了。对象模式 处理对象间的关系,这些关系在运行时是可以变化的,具有动态性。从某种意义 上来说,几乎所以模式都使用继承机制,所以“类模式”只指那些集中于处理类 之间关系的模式,而大部分模式都属于对象模式的范畴 创建型模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延 迟到另一个对象中。结构型模式使用继承机制来组合类,而结构型对象模式则描 述了对象的组装方式。行为型模式使用继承描述算法和控制流,而行为型对象模 式则描述一组对象怎样协作完成单个对象所无法完成的任务。 还有一些其他组织模式的方式。有些模式经常会被绑在一起使用;有些模式 是可以替代的;有些模式尽管使用意图不同,但产生的设计结果是相似的。还有 一种方式是根据模式间相互引用关系来组织设计模式的。 第三章相关技术 简单工厂( s i m p l ef a c t o r y ) 模式,又称静态工厂方法模式( s t a t i cf a c t o r y m e t h o dp a t t e r n ) 。 工厂方法( f a c t o r ym e t h o d ) 模式,又称多态性工厂( p o l y m o r p h i cf a c t o r y ) 模式或虚拟构造子( v i r t u a lc o n s t r u c t o r ) 模式; 简单工厂模式就是由一个工厂类可以根据传入的参量决定创建出哪一种产 品类的实例。下图3 1 所示为以一个示意性的实现为例说明简单工厂模式的结构。 3 1 简单工厂模式结构图 从上图可以看出,简单工厂模式涉及到工厂角色、抽象产品角色以及具体产 品角色等三个角色: 工厂类( c r e a t o r ) 角色:担任这个角色的是工厂方法模式的核心,含有与应 用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由 一个具体j a v a 类实现。 抽象产品( p r o d u c t ) 角色:担任这个角色的类是工厂方法模式所创建的对象 的父类,或它们共同拥有的接口。抽象产品角色可以用一个j a v a 接口或者j a v a 抽 象类实现。 具体产品( c o n c r e t ep r o d u c t ) 角色:工厂方法模式所创建的任何对象都是这 个角色的实例,具体产品角色由一个具体j a v a 类实现。 3 3 j m x 集群信息收集器一个典型的分布式应用,因此,我们引入了j m x 技术。 3 3 1j m x 概述 j m x ( j a v am a n a g e m e n te x t e n s i o n s ,即j a v a 管理扩展) 是一个为应用程序、 设备、系统等植入管理功能的框架。j m x 可以跨越一系列异构操作系统平台、系 统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。 j m x 是一个为应用程序植入管理功能的框架。j m x 是一套标准的代理和服 1 2 集群信息收集器的设计研究 务,实际上,用户可以在任何j a v a 应用程序中使用这些代理和服务实现管理。 j a v a 管理扩展j m x 致力于解决分布式系统管理的问题,因此,能够适合于 各种不同的环境是非常重要的。为了能够利用功能强大的j a v a 计算环境解决这一 的问题,s u n 公司扩充了j a v a 基础类库,开发了专用的管理类库。 j m x 是一种应用编程接口,可扩充对象和方法的集合体,可以用于跨越一系 列不同的异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集 成的系统、网络和服务管理应用它提供了用户界面指导、j a v a 类和开发集成系统、 网络及网络管理应用的规范。 管理对象是j m x 应用程序的核心。j m x 结构包括:支持j a v a 的w e b 浏览器 用户接口,管理运行模块a r m ( a d m i n r u n t i m e m o d u l e ) 和应用。这三个不佳之 间通过一个j a v a 虚拟机( j v m ) 上运行的程序可以调用远程服务器上另一个m 对象。 用户接口用来发布管理操作,这些操作可以间接的通过浏览器或通过单独的 应用程序来激发。管理运行模块用来给应用提供实例化的管理对象。它包括a g e n t 对象接口,通知接口和被管理的数据接口。应用指的是那些被管理的设备单元。 j m x 是一个完整的网络管理应用程序开发环境,他同时提供了:厂商需要收 集的完整的特性清单,可生成资源清单表格,图形化的用户接口;访问s n m p 的 网络a p i ;主机间远程过程调用;数据库访问方法。 j m x 这一轻型的管理基础结构,加之在于对被管理资源的服务实现了抽象, 提供了底层的基本类集合,开发人员保证大多数的公共管理类的完整性和一致性 的前提下,进行扩展以满足特定网络管理应用的需要。 3 3 2j m x 的优势 1 ) 可以非常容易的使应用程序具有被管理的功能 2 ) 提供具有高度伸缩性的架构 每个j m x 的a g e n t 服务可以很容易的放入到a g e n t 中,每个j m x 的实现都 提供几个核心的a g e n t 服务,你也可以自己编写服务,服务可以很容易的部署, 取消部署。 3 ) 主要提供接口,允许有不同的实现 3 3 3j m x 的体系结构 为了适应管理体系结构的发展,将j m x 定义成三层结构15 1 ,如图3 2 所示: 第三章相关技术 图3 2j m x 结构中各组件的关系 三层由下至上分别为:设备层( 也叫引导层) 、代理层和分布式层,此外j m x 还定义了相应的管理协议a p i ,如s n m p 管理a p i 和t m n ( t e l e c o m m u n i c a t i o n s m a n a g e m e n tn e t w o r k ,电信管理网) 管理a p i 等,这些构成了一个完整的j a v a 管理体系结构。 1 ) 引导层 引导层主要定义了如何引导j a v a 语言中的资源可被管理,符合j m x 定义的 资源也称作j m x 可管理资源。与这可管理资源相对应的j a v a 对象就是m a n a g e d b e a n ,简写为m b e a n ,也可以称作管理构件。m b e a n 可以为j a v a 程序中的一个对 象,甚至一个j a v a 程序本身,还可以代表常见的资源,如计算机内存,也可以使 通信设备中的交换机等。m b e a n 必须遵守引导层的设计模式和接口,这对应用程 序或设备管理开发者尤为重要,只有这样才能使程序或设备具有管理能少了。 m b e a n 必须是可实例化的j a v a 类,而不能是抽象类,必须是实现m b e a n 接 口或者是d y n a m i cm b e a n 接口,但不能同时实现,前者为标准m b e a n ,后者为 动态m b e a n ,同时m b e a n 还可以可选的实现n o t i f i c a t i o nb r o a d c a s t e r 接口成为通 知的发布者。 在j m x 中,各种管理对象都以管理构件( m b e a n ) 的形式存在,需要管理时, 必须向m b e a n 服务器进行注册。该层还定义了通知机制以及一些辅助元数据类。 1 4 集群信息收集器的设计研究 该层也是开发者最关心的,因为就是该层使得资源可管理( 也可以说是它们成为 m a n a g e db e a n 或m b e a n ) 。m b e a n 究竟实现何种接口决定了m b e a n 的类型,这是 由开发者决定的,但这和m b e a n 如何管理是没有关系的,m b e a n 服务器己经屏 蔽了类型区别,对于管理软件来说是通过m b e a n 服务器来操作m b e a n 的。j m x 为了描述管理接口提出了四种不同管理构件:标准( s t a n d a r d ) 管理构件、动态 ( d y n a m i c ) 管理构件、模型( m o d e l ) 管理构件、开放( o p e n ) 管理构件。每一种管 理构件可以根据不同的环境需要进行制定。 同时,该层还定义了基于j a v a 事件模型上的通知模型,当m b e a n 内部状态 发生变化时,各m b e a n 之间或者能够和管理程序相互通信,这和j a v ab e a n 属性 变化通知机制非常类似。 2 ) 代理层 j m x 代理层是运行在j a v a 虚拟机( j v m ) 上的管理实体,作为m b e a n 和管理 程序的连接者。代理层主要定义了各种服务以及通信模型,主要由m b e a n 服务器 ( m b e a ns e r v e r ) ,注册在m b e a n 服务器上的m b e a n ,以及一些支持管理的服务组 成,这些服务本身也是m b e a n ,一般来说一个m b e a n 服务器上至少有协议适配 器和连接器。该层的核心是一个m b e a n 服务器,所有的管理构件都需要向它注册, 才能被管理。注册在m b e a n 服务器上管理构件并不直接和远程管理应用程序进行 通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接器也以管理 构件的形式向m b e a n 服务器注册才能提供相应的服务。 j m x 代理层主要组件如下: a )代表被管理资源的m b e a n s ; b )m b e a n 服务器,是架构的核心,也是m b e a n 的注册器,只有注册到1 h , l b e a n 服务器后才能对这些m b e a n 进行管理操作,而这些管理操作都是通过m b e a n 服 务器来完成的; c )代理服务,这些服务是为管理开发提供的,j m x l 2 规范中定义了一些服 务,也可由第三方开发。规范定义了四种服务,分别为: 动态装载服务( m l e t ) :允许从远程网络载入j a v a 类,实例化并注册。 监测服务:监测m b e a n 中的属性,检测出特定条件时将触发事件。 时间服务:可以预定周期,触发周期性事件。 关系服务:定义了w e a n 之间的关系。 管理程序并不直接操作m b e a n ,所有对m b e a n 的操作管理都是通过代理层 的m b e a n 服务器来实现的。通过m b e a n 服务器,可是实现对m b e a n 的属性读写 操作、函数调用操作、通知获取操作、从本地或远程实例化m b e a n 并注册到m b e a n 第三章相关技术 服务器上。图3 3 描述了代理层和分布式层之间的关系n 5 1 。 a g e n ts l c :l e l s 口j m x m a n a g e oi e s o g l c em b e a “ 图3 3 代理层的组成 3 ) 分布式层 分布式层也可以称为连接适配层,该层由各种远程访问协议的适配器或连接 器组成,提供管理系统的远程访问能力,在j 规范中,这一级是代理级的子级。 连接器一般由连接器服务( 处于分布式服务级) 和连接器客户端( 运行在远程管理软 件端) 两个部分组成;而适配器一般由适配器m b e a n 和适配器服务两部分组成。 典型的连接器是r m i 连接器,典型的适配器是h t t p 适配器和s n m p 适配器。 适配器和连接器是十分相似的。它们的不同点在于:适配器通常用于特定的 协议。如h t t p 或s n m p 。而连接器由两个组件构成,一个在j m x 代理层中,另 一个被客户端的程序使用。客户端使用客户端的连接器组件与服务器端的j m x 代理组件进行通信。这样,连接器就隐藏了具体的通信协议,整个过程发生在连 接器的两个组件的内部。 3 4x m l x m l ,即( e x t e n s i b l em a r k u pl a n g u a g e ) ,称为扩展标记语言。x m l 这个 w 3 c 公开的标准【1 2 】,于1 9 9 7 年被提出后,随即为整个信息工业带来了强大的 冲击,并获得许多软件工业市场领导者的公开支持与发展。 1 6 集群信息收集器的设计研究 我们决定选用x m l 基于以下特征: 1 ) x m l 文档的处理程序容易编写。 2 ) x m l 文档清晰明了,可读性强。 3 ) x m l 易于设计。 4 ) x m l 文档易于创建。 5 ) x m l 文档具有自描述性。 6 ) x m l 具有跨语言特性。 j a v a 中处理x m l 文档的标准a p i 主要有两种,即x m l 的简单a p i ( s a x , s i m p l e a p if o rx m l ) 和文档对象模型( d o m ,d o c u m e n to b j e c tm o d e l ) ,两者各 有几个不同版本。除此之外还有许多其他a p i ,如j d o m ,d o m 4 j ,e l e c t r i cx m l 与x m l p u l l 。这些a p i 可以说各有所长【引。 s a x s a x ( s i m p l ea p if o rx m l ) 是x m la p i 的金牌标准,是最完整和最准确 的。有了支持所有可选择性的完全检验分析器之后,它几乎无所不能。虽然s a x 也有一、两个漏洞,但它实际上已经淹没在x m l 规范的草丛中,很难被发现。 s a x 是事件驱动a p i 。s a x 类和接口建模分析器、读取文档的流和从分析器接收 数据的客户应用程序。但是,没有建模x m l 文档本身的类,分析器通过回调接 口将内容提供给客户应用程序,就像s w i n g 和a w t 中一样。这样就使s a x 速度 很快,内存效率很高( 不必在内存中存储整个文档) 。但是,s a x 程序很难设计 编码,因为通常要建立自己的数据结构来保存文档内容。 d o m d o m ( 文档对象模型,d o c u m e n t o b j e c t m o d e l ) 是相当复杂的a p i ,将x m l 文档表示成树型结构。与s a x 不同的是,d o m 是读写a p i ,可以分析现有x m l 文档和生成新x m l 文档。每个x m l 文档表示为一个d o c u m e n t 对象。搜索、查 询和更新文档时,调用这个d o c u m e n t 对象及其所包含对象的方法。这样就使d o m 更适合随机访问原文档中的各个不同部分。但是,d o m 比s a x 所需的内存量大 得多,也不太适合流式应用程序。 j a ) 【p j a x p ( j a v aa p if o rx m l p r o c e s s i n g ) 将s a x 与d o m 捆在一起,加上一些 工厂类和t r a x x s l t a p i 。j a x p 是j a v a l 4 及以上版本的标准部分,但其实不是 另一个a p i 。开始一个新程序时,要确定选择s a x 或d o m ,而不是选择s a x 与 j a x p 或d o m 与j a x p 。s a x 与d o m 是j a x p 的一部分。 j d o m 第三章相关技术 1 7 j d o m 是基于树的j a v a 自然a p i ,消除了d o m 的许多问题。j d o m 的目标 是,“用j a v aa p i 操纵订l 时不应是复杂、麻烦、不直观或很费劲。”j d o m 基 本达到了这个目标。和d o m 一样,j d o m 先把整个文档读取到内存中,然后再 开始处理;j d o m 程序的大致轮廓与d o m 程序相同。但是,j d o m 程序的低级 代码比相应的d o m 程序简单明了得多。j d o m 使用具体类与构造函数,而不是 接口和工厂方法,它完全使用标准j a v a 编码规则、方法和类。j d o m 程序通常比 相应的d o m 程序更加自然。 可以认为j d o m 会使容易的问题更加容易,但是使困难的问题更加困难。 j d o m 的设计对j a v a 具有深刻了解,但对x m l 则了解不深,缺少一些非常关键 的东西,如导航用的公共节点接口和超类。j d o m 比d o m 更适合没有递归、混 合内容有限和词汇完全已知的简单文档,但处理任意x m l 时,其某些弱点就会 暴露出来。编写对任意x m l 文档进行操作的程序时使用d o m 更简单。 d o m 4 j d o m 4 j 是从早期j d o m 项目中分支出来的。和j d o m 一样,d o m 4 j 是处理一 般性x m l 的基于树的j a v a 自然读写a p i ,但它使用接口和工厂方法,而不是具 体类与构造函数。这样就可以插入自己的节点类,将x m l 外壳加到其他形式的 数据上,例如对象与数据库记录( 理论上,d o m 接口可以这样,但实际上多数 d o m 实现版本过分耦合,无法使各自的类相互操作) 。它具有导航用的通用节点 类型。 e l e e t r i c x m l e l e c t r i c x m l 使用j a v a 处理x m l 文档的另一个树式a p i ,他非常小,很适合 小程序和其他存储受限的环境中使用。这是一个没有开放源代码的a p i ,而且要 求自己的分析器,而不能插入多个不同的分析器。这是一个特别易用的a p i ,但 这种易用性可能造成开发人员对x m l 的误解。这是正确性最差的树式a p i 。例 如,它常常抛弃大量不该抛弃的空格,其名字空间处理也设计得不是很好。理想 情况下,x m la p i 应该尽量简单,但不能过分简单。特别地,x m la p i 不能比 x m l 本身更简单。e l e e t r i c x m l 让人误以为x m l 过分简单,这在需求很简单时 是可行的

温馨提示

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

评论

0/150

提交评论