(信号与信息处理专业论文)java管理架构分析和设计——jmx的设计和实现.pdf_第1页
(信号与信息处理专业论文)java管理架构分析和设计——jmx的设计和实现.pdf_第2页
(信号与信息处理专业论文)java管理架构分析和设计——jmx的设计和实现.pdf_第3页
(信号与信息处理专业论文)java管理架构分析和设计——jmx的设计和实现.pdf_第4页
(信号与信息处理专业论文)java管理架构分析和设计——jmx的设计和实现.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

j a v a 管理架构的分析和设计 j m x 的设计和实现 摘要 大型分布式程序和网络的飞速发展对网络管理和程序管理提出 j 新的要求,j a v a m a n a g e m e n te x t e n s i o n ( j m x ) ,即j a v a 管理扩展, 由j c p ( j a v ac o m m u n i t y p r o c e s s ) 制定的,为基于j a v a 平台的软件和网 络管理提供了统一的管理框架。j m x 可以跨平台,集成各种网络协 议,开发出灵活而功能强大的分布式管理程序。j m x 提供了管理、 监控各种应用程序或者设备的标准,更可以和现有的大量管理标准集 成,这都是通过j m x 三层体系结构来完成的。胁仪体系结构分三层: 引导层、代理层和分布式层。正是这种分层体系结构设计,使得开发 者可以快速开发出能适应各种网络标准的可管理程序。 本文主要详细介绍了j m x 规范,j m x 三层体系架构,三层分别 为引导层、代理层和分布式服务层。详细描述了引导层定义的四种 m _ b e a n :标准m b e a n 、动态m b e a i l 、模型m b e a n 和开放m b e a l l ,还 有分布式代理层中的各种服务,如动态装载服务、监测服务、时间服 务和关系服务等,以及j m x 在软件和网络管理上的优势,此外还介 绍了j m x 的应用,特别介绍了在j 2 e e 上的应用以及作为j b o s s 微内 核集成各组件的应用等。 论文重点是j m x 实现,详细分析了j m x 实现所采用技术,设计 出符合j m x 规范的m b e a n 服务器以及相关的代理层服务实现,采用 了基于管道过滤模式拦截器的思想,设计出基于反射机制调用和 动态代码生成调用m b e a n 服务器。反射机制调用是m b o a i n 服务器调 用m b e a n 实例使用j a v a 反射实现,效率比直接调用低,因此本文提 出动态代码生成( 使用j a v a s s i s t 和b c e l 动态代码生成工具) 来直接 调用m b e f j l 实例,在运行期间动态生成可执行的j a v a 字节码,效率 比反射调用有了极大提高。最后本文还介绍分析了分布式层中的连接 器和协议适配器,实现了r m i 连接器和t c p 连接器,r m i 连接器实 现中采用j a v a 中的动态代理技术,通信协议可以使用j r m p 协议或 h o p 协议。最后,本文针对m b e a n 服务器实现中的不足提出优化和 改进方案,如引入m b e a n 生命周期模型,远程通知机制和安全机制, 并t 对这些改进提出课题的后续研究步骤。 关键字j m x j a v a 管理j a v a 管理扩展j m x 实现m b e a l l 服务器 动态代码爿:成 a n a l y s i sa n dd e s i g nf o rj a v 久 m a n a g e m e n ta r c h i t e c t u r e d e s l g na n dr e a l i z a t l o nf o r j m xl m p l e m e n t a t i o n a b s t r a c t t h e g r o w t h o f l a r g e s c a l ed i s t r i b u t e da p p l i c a t i o n sa n di n t e r n e ti nt h e p a s td e c a d eh a sb e e ni m p r e s s i v e a tt h es a m e t i m ei tb r i n g st h ed i f f i c u l t y o f a p p l i c a t i o n s a n dn e t w o r k m a n a g e m e n t j a v a m a n a g e m e n t e x t e n s i o n s ( j m x ) s u p p o r t sb o t hn e t w o r ka n da p p l i c a t i o n sm a n a g e m e n t j m xd e f i n ea na r c h i t e c t u r e ,t h ed e s i g n p a t t e r n s ,t h ea p i s ,a n dt h e s e r v i c e sf o ra p p l i c a t i o na n dn e t w o r k m a n a g e m e n ta n dm o n i t o r i n gi nt h e j a v a p r o g r a m m i n gl a n g u a g e u s i n gj m x , j a v a d e v e l o p e r s c a n i m p l e m e n tp o w e r f u l ,f l e x i b l ed i s t r i b u t e da p p l i c a t i o n s t h a ta r ep l a t f o r m i n d e p e n d e n ta n dc a t l b es m o o t h l yi n t e g r a t e di n t oe x i t i n gm a n a g e m e n t j m xa r c h i t e c t u r ei sd i v i d e di n t ot h r e el e v e l s :i n s t r u m e n t a t i o nl e v d ,a g e n t l e v e la n dd i s t r i b u t e ds e r v i c e sl e v e l t h ea r c h i t e c t u r ep r o v i d et h ee a s y w a y f o rb u i l d i n gw 曲一b a s e d ,d i s t r i b u t e d ,d y n a m i ca n dm o d u l a rs o l u t i o n s t om a n a g ej a v ae n a b l e dr e s o u r c e s t h et h e s i ss u m m a r i z e sj m x s p e c i f i c a t i o n ,t h r e el e v e la r c h i t e c t u r eo f j m x ,a n d d e s c r i b ef o u r t y p e o f m a n a g e m e n tm b e a n ( m b e a n ) i n i n s t r u m e n t a t i o nl e v e l :s t a n d a r d ,d y n a m i c ,m o d e l ,o p e nm b e a n o t h e r w i s e , t h et h e s i si n t r o d u c e st h eb e n e f i t sj m xa r c h i t e c t u r ep r o v i d e s ,t h eu s a g e i nj 2 e em a n a g e m e n ta n dj b o s ss e r v e r , j b o s ss e r v e ri s c o m p l e t e l y i m p l e m e n t e du s i n gc o m p o n e n t - b a s e dp l u g - i n sb yu s i n g j m x 。 t h et h e s i sp u t se m p h a s i so nt h ej m x i m p l e m e n t a t i o n , d i s c u f i s e s t h e t e c h n o l o g y a n dd e s i g ni d e ai nr e a l i z i n gj m xi m p l e m e n t a t i o n ,w h i c h a c c o r dw i t hj m xs p e c i f i c a t i o n t h ej m xi m p l e m e n t a t i o na d o p t s i n t e r c e p t o ri d e a ,u s i n g r e f l e c t i o na n d d y n a m i c c o d e g e n e r a t i n g t e c h n o l o g yt or e a l i z eah i g hp e r f o r m a n c em b e a n s e r v e r i nt h er e s tp a r t , t h et h e s i si n t r o d u c e st h ec o n n e c t o ra n dp r o t o c o la d a p t o ri nt h ed i s t r i b u t e d l e v e l ,a n da n a l y s e st h em e t h o dt or e a l i z er m i a n dt c p c o n n e c t o r f i n a l l y , t h ee x i s t i n gp r o b l e ma n df u t u r es t e pa r e p o i n t e d o u t k e yw o r d sj m xj a v a m a n a g e m e n t j a v am a n a g e m e n t e x t e n s i o nj m x i m p l e m e n t a t i o n m b e a n s e r v e r d y n a m i c c o d e g e n e r a t i n g 剐吾 网络管理和分布式软件的发展,j a v a j 2 e e 技术的普及和广泛应用,推动了 j a v am a n a g e m e n te x t e n s i o n s 的产生的发展。j m x 产生后,在网络管理、软件管 理以及性能监测领域就获得了广泛应用,此外在基于微内核、插入式组件的大型 软件设计中,j m x 可以作为组件集成的工具。j m x 为开发分布式管理软件提供 了良好的架构。本文主要介绍了j m x 规范和j m x 三层体系架构,本文重点是 j m x 实现,详细分析了j m x 实现所采用技术,设计出符合j m x 规范的m b e a n 服务器以及相关的代理层服务实现,提出了基于管道过滤模式拦截器的思 想,设计出基于反射机制调用和动态代码生成调用m b e a n 服务器。此外本文还 介绍分析了分布式层中的连接器和协议适配器,实现了r m i 连接器和t c p 连接 器。 本文共有五章,各章内容如下: 第一章j m x 概述,介绍了j m x 产生背景和优势、j m x 三层体系结构,此 外还介绍了j m x 微内核技术和基于j 2 e e 管理技术: 第二章j m x 规范,详述了j m x a p i 中的关键类和功能; 第三章j m x 连接器和适配器,介绍了j m x 分布式层,给出了r m i 和t c p 连接器设计; 第四章j m x 实现,本文重点,介绍了设计j m x 实现的主要技术和设计思 想,给出了基于拦截器的j m x 实现设计方案; 第五章j m x 实现的优化改进和应用前景,介绍了对第四章的j m x 实现补 充和改进,提出后续研究方向。 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外论文中不 包含其他入已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或让书而使用过的材料。与我一同工作的同志对本研究所做的任 何贞献均已在论文中作了明确的况明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担切相关责任。 本人签名,赣料 日期:j 塑笾j 三l 豆上l 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究牛在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘。允许学位论文被查阅和借 阅:学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论 文注释: 本人 导师 用本授权书。 日期:2 0 0 5 年3 月1 日 r 期:吐年够 1 1 概述 第一章j m x 概述 1 1 1j m x 产生背景 大型分布式应用程序在过去十几年中取得了惊人的进展,分布式程序通过网 络在多台计算机上运行,分布式软件和网络的发展对软件管理和网络管理提出了 新的要求。在单机上管理一个应用程序是非常直接的,可以通过控制台输出或者 生成同志文件,甚至可以使用操作系统提供的系统工具( 如u n i x l i n u x 下的p s 命令,w i n d o w s 下的任务管理器等) 监控该程序的运行情况。但是管理大型分布 式系统随着系统复杂性提高,难度也大大增加了,产生了不少问题,比如该选择 什么管理方案,管理方案该跟随什么标准,还有就是增加了开发可管理程序的额 外工作。随着j a v a 语言的广泛使用,大型的j a v a 应用程序已经相当普遍,因此 管理j a v a 程序本身和使用j a v a 管理监控物理设备都对j a v a 提出了新的要求。 j a v a m a n a g e m e n t e x t e n s i o n ( j m x ) & p 为j a v a 管理扩展,是由j a v a c o m m u n i t y p r o e e s s ( j c p ) 制定的,解决了大型分布式复杂应用程序和网络的管理问题。j m x 在j a v a 语言环境下,定义了管理与监控程序和网络的架构、设计模式、a p i 以 及相关的服务。同时,j m x 为各j a v a 开发者提供了引导j a v a 代码,创建智能j a v a 代理,实现分布式管理中问件和管理软件,并能将这些解决方案和现有的管理和 监测系统集成。此外,j m x 规范还引用了一些现有j a v a a p l 规范( 如玳d i ,j m s 等) 和现有的标准管理和监测技术。 如今,j 2 e e 已经成为越来越多的企业开发服务应用的战略性架构,更好地 管理和监控这些服务应用的需求也日益迫切。j m x 也满足了企业对j 2 e e 应用系 统的管理需求的标准。j m x 用于为软件系统构造管理模块( 就是下文中的 m b e a n ) ,j m x 使用一个m b e a n 来代表一个软件系统中需要管理的组件,它定 义了四种m b e a n 。其实j m x 已经在许多基础性j 2 e e 服务软件中发挥重要作用, 比如w e b l o g i cs e r v e r ,j b o s ss e r v e r 和t o m c a t s e r v e r ,而且已经成为这些软件产 品的基础,甚至已经成为核心架构。人们越来越接受j m x ,在j 2 e e l 4 中j m x 是一个必需的a p i 包,而j 2 s e5 0 ( 就是i 5 ,也称作t i g e r ) 中,j m x 已经成为 一个标准组件,且使用j m x 管理j a v a 虚拟机。j m x 已经广泛为业界采纳,j m x a p i 占领了应用服务器相当市场份额。 当j m x 被广泛地用于j 2 e e 架构中的同时,它也快速地渗透入基于j 2 e e 架 构的应用程序,轻松而直接地用来管理j 2 e e 架构的应用程序减轻了应用开发者 的负拍。 发大型应用程序的i 司时,很多开发者正在为应用程序管理而焦头烂额。 j 2 e e 架构足一个复杂而庞大的架构,导致一个j 2 e e 服务器上部署了相当多的组 件,如果没有一个标准的应用管理机制,对于应用开发者来说是非常可怕的。现 在应用丌发者能利用j m x 很好地控制这些管理问题。在基本的应用管理功能之 外,j m x 技术还有助于其它软件的丌发,很多任务关键型应用系统( m i s s i o n c r i t i c a lb u s i n e s sa p p l i c a t i o n s ) 都可以使用j m x 技术来监控和挖掘这些过程的关键 信息来支持关键业务决策。 1 1 2j m x 优势 j a v a 技术是灵活的、动态的和可移植的,这些独特的特征是构建新代管理 解决方案的基础。j m x 基于j a v a 平台,也具有j a v a 各种优势,同样,j m x 的出 现保持j a v a 平台在信息技术的领先地位。e m m a ( e a s ym a n a g e m e n t m o n i t o r i n g a n y w h e r e ,也可以是e a s ym o n i t o r i n g ,m a n a g e m e n t a n y w h e r e ) 就是j m x 优势 的集中体现。 通过j m x 标准,j m x 架构提供了以下优势: l 、缩短丌发周期,不必过多的投入就可以使得j a v a 程序可管理; j m x 架构依赖于一个核心管理对象,也就类似于管理代理,可以称之为 m b e a n 服务器( m b e a ns e r v e r ) ,m b e a n 服务器可以运行在任何j a v a 设备上,是 一个轻量缴构件,也可以说是一个普通的j a v a 对象,现在一些微型手持设备上 都可以运行。j a v a 程序开发者只要将被管理设备或资源通过架构中的引导层使之 成为一个或者多个m a n a g e d b e a n s ( m b e a n s ) ,并将此m b e a n s 注册到 m b e a n s e r v e r 上,即可从j m x 架构中实现设备和资源的管理。 j m x 提供了标准的途径使得基于j a v a 的程序具有可管理性,这些都是通过 j m x 引导层来实现的,通过引导层,可以使得服务或者设备可管理。开发者只 需关注引导资源可管理,而不必关心资源是如何管理,比如是通过t m n 还是 s n m p 等,也就是说,用j m x 开发的管理程序可以不通过任何修改就可以在t m n 或s n m p 环境下移植,使得开发者专注予核心逻辑,而不必过多的投入到管理 系统的开发上。 2 、可伸缩性强; j m x 代理层中提供了各种服务,包括时间服务,动态装载服务和关系服务 等,这些服务都可以根据需要载入到代理层。这种基于组件的设计方案使得j m x 适合于各种微型设备和大型设备中,比如小型的微型设备和大型通信交换机等。 这些服务可以在整个管理架构中动态载入,卸载和更新,可伸缩性非常强。 3 、集成现有的管理技术,兼容将来的管理技术; j m x 代理可以通过h t m l 浏览器来管理,或者通过各种管理协议,比如 s n m p 、w b e m 等,都可以访闯管理。因为j m x a p i 是一个开发标准接口,管 理系统提供者只要为之提供各种相应的管理协议即可访问。同时,由于j m x 的 开放性和伸缩可扩展性,为将来管理新技术的兼容提供了可靠的保证。 4 、兼容现有的j a v a 协议标准; j m x 集成了j a v a 语言的各种优点,也兼容了现有的各种j a v a a p i 标准。只 要有可能,j m x 标准都会参考现有的j a v a 标准,如j a v a n a m i n g a n d d i r e c t o r y i n t e r f a e e ( j n d l ) ,j t v ad a t a b a s ec o n n e c t i v i t ya p i ( m b c ) ,j a v a t r e d a 龇e t i o ns e r v i c e ( j t s ) 等。兼容现有的j a v a a p i 标准,丽没有重新定义功能重复的a p i ,对j m x 丌发者和实现者都提供了便利。 1 2j m x 架构 j m x 为了适应管理体系结构的发展,将j l v i x 定义成三层结构,如图1 1 。 一弋甲是 i 一菌函蕾j 、一? f ,、o _ = l i- “ ii 静一! 獬鬻2p ii - 塑哩堕噢r 苎憋壁鬯一一一一一一一一一 m 埔口h 州 p i 蛳“ p h t - 肭 m - 娜 n 图1 - 1j m x 三层架构【1 1 三层分别为:引导层( 也可翻译为装配层,本文都使用引导层) 、代理层和分布 式层,此外j m x 还定义了相应的管理协议a p i ,如s n m p 管理a p i 和t m n 管 胪i 理a p i 等,这些构成了一个完整的j a v a 管理体系结构。 1 2 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 c m 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 n b r o a d c a s t e r 接口成为通 知的发缶j 者。 在j m x 中,各种管理对象都以管理构件( m b e a n ) 的形式存在,需要管理 时,必须向m b e a n 服务器进行注册,该层还定义了通知机制以及一些辅助元数 据类。该层也是开发者最关心的,因为就是该层使得资源可管理( 也可以说是 它们成为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 l l 的。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 a b e a n 属性 变化通知机制非常类似。 1 2 2 代理层 j m x 代理层是运行在j a v a 虚拟机( j v m ) 2 的管理实体,作为m b e a n s 和管 理程序的连接者。代理层主要定义了各种服务以及通信模型,主要由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 。n e a n 服务器,所有的管理构件部需要向 它注册,才能被管理。注册在m b e a n 服务器上管理构件并不直接和远程管理应 用程序进行通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接 4 器也以管理构件的形式向m b e a n 服务器注册才能提供相应的服务。 j m x 代理层主要组件如下: l 、代表被管理资源的m b e a n s : 2 、m b e a n 服务器,是架构的核心,也是m b e a n s 的注册器,只有注册到 m b e a n 服务器后才能对这些m b e a n 进行管理操作,而这些管理操作都是通过 m b e a n 服务器来完成的; 3 、代理服务,这些服务是为管理开发提供的,j m x1 2 规范中定义了一些 服务,也可由第三方丌发。规范定义了四种服务,分别为: 动态装载服务( m l e t ) :允许从远程网络载入j a v a 类,实例化并注册。 监测服务:监测m b e a n 中的属性,检测出特定条件时将触发事件。 时间服务:可以预定周期,触发厨期性事件。 关系服务:定义了m b e a n 之间的关系。 管理程序并不直接操作m b e a n ,所有对m b e l u l 的操作管理都是通过代理层 a g e n t s i d e m a n a g e r s i d e a g e n t s e r v i c em b e e n 口j m x m a n a g e dr e s o u r c em b e a n i c 村_ h i l j 图1 - 2 ,娃代理架构f 1 】 的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 服务器上。图1 2 描述了代理层和分布式层之间的关系。 1 2 3 分布式层 分布式层也可以称为连接适配层,该层由各种远程访问协议的适配器或连接 器组成,提供管理系统的远程访问能力,在j m x 规范中,这一级是代理级的子 级。连接器般由连接器m b e a n ,连接器服务( 处于分布式服务级) 和连接器 客,、t 端( 运行在远程管理软件端) 三个部分组成;而适配器一般由适配器m b e m l 和适配器服务两部分组成。典型的连接器是r m i 连接器,典型的适配器是h t t p 适配器和s n m p 适配器。 1 3 m b e a n 分类 1 3 1 标准m b e a n ( s t a n d a r d ) 标准m b e a n 显示定义了管理接口,标准管理构件的设计和实现是最简单的, 与标准m b e a n 相关联的所有属性、操作和事件都在其管理接口中静态地指定。 标准m b e a n 的管理接口包括: 1 、构造函数,构造函数只能是公开的; 2 、属性,属性通过g e t t e r 和s e t t e r 函数来展现,应注意的是属性名是区分大 小写的,比如g e t s t a t e 和g e t s t a t e 两个函数展示的是两个属性,分别为s t a t e 和s t a t e 。 属性定义包括属性名、属性类型和属性的读写特征( 可读、可写、可读写) ; 3 、豳数,m b e a n 接口中除了g e t t e r 和s e t t e r 外的函数,属性和西数都是m b e a n 中的方法,但是被m b e a n 接口区分; 4 、通知,m b e a n 发出的通知对象和类型。 标准管理构件的实现依靠一组命名规则,称之为设计模式。这些命名规则中 的属性和函数命名规则非常类似于j a v a b e a n s 组件模型的命名规则。检查标准管 理构件接口和应用设计模式的过程被称为内省( i n t r o s p e c t i o n ) 。j m x 代理通过内 省来查看每一个注册在u b g a n 服务器上的管理构件的方法和超类,看它是否遵 从设计模式,决定它是否代表了一个标准m b e a n ,并识别它的属性和操作。 标准m b e a n 的j a v a 类必须实现的管理接口也称为m b e a n 接口,其命名必 须类名加上m b e s j l 后缀,比如c o n n e e t i o n p o o l 类,其管理接口应为 c o n n e c t i o n p o o l m b e a n ,此处没有考虑类和接口之间的继承关系,继承模式后面 详述。管理程序只能访问管理接口中定义的函数,而不能访问不在m b e a n 接口 列出的函数。下面是数据库连接池的管理接口代码,其中说明了具有一个i n t 类 型的属性,名称为m a x c o n n e c t i o n ,具有读写特征,其他四个函数均为操作函数。 p u b l i cc o n n e c t i o n p o o l m b e a n l 初始化 p u b i c v o i d i n i t o ; 柏哗放数据库连接 p u b l i cv o i dr e l e a s e 0 , x a 数据库连接邀中获驳连接 p u b l i cc o n n e c t i o ng e t c o n n e c t i o n o ; f 释敬数据连接 p u b l i cv o i d f r e e c o n n e c t i o n ( c o n n e c t i o nc o n ) i ? 获取数据牵连接池中的最大连接数 p u b l i ci n tg e t m a x c o n n e c t i o n o ; ,设置数姑奉连接浊中的最大连接数 p u b l i cv o i d s e t m a x c o n n e c t i o n ( t n ,h u m ) ; , 1 3 | 2 动态m b e a n ( d y n a m i c ) 标准m b e a n 适合于管理结构已经预先设定。并且不会经常改变的场合,此 时标准m b e a n 提供了快捷途径来引导管理资源,然而当数据结构需要扩展,或 者随着时间发展需要改变时,标准m b e a n 就不能满足要求,此时必须具备可以 在运行时刻动态决定的性能,j m x 规范为此鬟出了动态慨a r - i 。 动态m b e a n 提供了更大的灵活性。它可以在运行麓暴露自己的管褒接口。 它的实现是通过实现一个特定的接口j a v a x m a n a g e m e n t d y n a m i e m b e a n 。通过使 t i n t e 豳c e _ d y n a m i c m b e a n g e t m b e a l d a l f o o : v i b 删l l i l f f o g e t a l :】i h 船( a 血i b l 斯:s t 【证g ) :o 巧e c l 群蛳b t 墩域址, t r i b a m :s t r m g ) :a t m b l n e l i = 娆硝雌m 删a m i b l i 协:a m 赫觑) :帕i d s e t a m i l m m ( = t t r i l m m :a n n l m 船l i = t ) :a 伯f i i m l e i j 啦 i m - o k e ( a c t i d a n a m e :s m n g , p a f 硼s :o b j 嘲, l 洒a m r e :s 打i n g 】) :o b i e c t 图卜3 动态m b e a n 接口 用d y n a m i c m b e a n 接口,与m b e a n 相关联的一组属性、操作和事件直到运行 时爿是确定的。它适合对随时间改变属性、操作和事件也发生变化的资源进行 j m x 管理得需要。d y n a m i c m b e a n 接口的u m l 类图如1 3 ,现一一详述, g e t m b e a n l n f o 方法柬获取该动态m b e a n 暴露的管理接口,该方法返回的 m b e a n l n f o 对象,m b e a n l n f o 对象包含了属性名称和属性类型以及各函数操作标 志( s i g n a t u r e ) 。 g e t a t l r i b u t e 和g e t a t t r i b u t e s 函数将属性名( 数组) 作为参数,相应返回该属 性( 数组) 对应的值,此名值映射是动态m b e a n 开发者提供的。同样,s e t a t t f i b u t e 和s e t a t t r i b u t e s 输入名一值映射参数,设定相应的属性。i n v o k e 函数是调用动态 m b e a n 的函数,参数中包括了函数标志( 函数名和参数类型列表) 。 同样,动态m b e a n 也具有属性和操作,但是他们不像标准m b e a n 通过函数 名称来显示,而是通过运行期间的g e t m b e a n l n f o 函数返回值来确定属性和操作 从而得到陔m b e a n 的管理接口。由于该方法的调用是发生在动态管理构件向 m b e a n 服务器注册以后,因此管理接口是在运行期获取的。不同于标准管理构 件,j m x 代理不需要通过内省机制来确定动态管理构件的管理接口。通过 d y n a m i c 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 的g e t t e r ,s e t t e r 和i n v o k e 函数来操作管理m b e a n 。事实上 d y n m l a i c m b e a n 接口非常类似于m b e a n 服务器( m b e a n s e r v e r 接口) 中的部分函 数。也就是说,对于标准m n e a n ,m b e a n 服务器使用内省机制发现管理接口, 然后根据管理者调用相应的函数,而对于动态m b e a n ,m b e a r l 服务器就不必使 用内省机制了,因为这些功能动态m b e l l n 已经提供了,m b e n n 服务器只需将管 理者调用委派到动态m b e a n 上,该点在j m x 实现中可以深刻体会到。 这种委派机制会带来一致性问题。就是指动态i d b e a n 描述和本身实现的一 致性问题,规范中并没有强制要求m b e a n 服务器监测这种一致性,因此该一致 性将出动念m b e a n 开发者自身解决,这就要求开发者在编写动态m b e a r l 时应保 持描述和实现之间的一致。还有,由于管理接i z l 是在运行期间通过g e t m b e a n l n f o 获取的使得管理接口在运行期间管理接口可能发生改变,这将导致管理者有可 能调用一个已经不存在的函数,因此在必要的情况下,改变管理接口时应通知管 理者,使得管理者能够获取最新的管理接口。 1 3 3 模型m b e a n ( m o d e l ) 模型m b e a n 功能强大,易使用而且非常灵活,为被管理资源提供了管理模 8 版,是动态m b e a n ,也使用元数据描述m b e a n 特征,但模型m b e a n 为开发者提 供了描述符( d e s c r i p t o r ) 元数据,描述符是键一值( n a m e v a l u e ) 对,其中键为字 符串类型,而值为o b j e c t 类型,丰富了元数据。规范指出必须实现模型m b e a n 类,即j a v a x m a n a g e m e n t m o d e l m b e a n r e q u i r e d m o d e l m b e a n 。模型m b e a n 具有许 多动态m b e a n 所不具备的功能,这都是通过描述符和r e q u i r e d m o d e l m b e a n 来 实现。 模型m b e a n 具有如下优点: l 、开发迅速,只需少量的代码即可引导资源为模型m b e a n ; 2 、被引导的资源不必改动代码,只需刨建描述符和其他元数据来引导资源; 3 、自动生成属性改变通知; 4 、提供日志功能; 5 、提供缓存功能,可预定周期保存m b e a n 状态,加速m b e a n 状态访问: 6 、使用m o d e l m b e a n l n f o 元数据来展示管理接口,提供动态功能。 1 3 4 开放m b e a n ( o p e n ) 开放m b e a n 依赖于一组预定义的、自我描述的通用标准数据类型,当管理 程序不能访问代理端的j a v a 类型时开放m b e m a 的意义就非常明显了,因为与特 定的应用程序数据类型无关。动态m b e a n 中所有的属性,函数参数和函数返回 值的类型都是通用数据类型,也称作基本数据类型,包括j a v a 原型数据类型的 封装类( 如i n t e g e r ,l o n g 等) 、s t r i n g 、c o m p o s i t e d a t a 、t a b a l a r d a t a 和o b j e c t n a m e , 此外还支持这些类型豹数组类型,其中c o r a p o s i t e i ) 啦和t a b a l a r d a t a 用来支持 复杂数据类型,即基本数据类型的集合。j m x 代理透过获得一个o p e n m b e a n l n f o 对象来获取开放i v i b e a n 的管理接e l ,0 1 ) e i 山m l l i 】r 面是m b e a n l n f o 的子类。 j m x l 1 中开放m b e a n 是可选的,两j m x l 2 中开放m b e a n 已经必须提供。 1 3 5 继承模式 在标准m b e r l l 中,m b e a n 实现类和i v b e r r l 接口使用继承,将会影响m b e a r i 真j 下实现的管理接口。继承模式只对标准m b 锄有影响,对于动态m b e a n 而言 是无效的,因为动态m b c r i 豹管理接口是通过g e t m b e a n l n f 0 0 来获取的。 9 图1 - 4 常见简单情形 圈1 - 5m b e a r l 继承 罔1 4 是最简单的继承模式,d e v i c e 直接实现了管理接口d e v i c e m b e a n 。图 1 - 5 中,s u p e r d e v i e e 自己并没有直接实现管理接口,而继承d e v i c e ,同样是个标 准m b e a n ,其管理接口是d e v i c e m b e a n 。 o o o q 一o d e v i c e m b e a n s u p e r d e v i c e m b e a n 二= = = = 二= = :_ = d e v i c e m b e a n o e 呲硼鲫 s e t n a m e ( j s u p e r d e v i c e m b e a n 图卜6 有管理接口的i b e a n 继承l b e a n图卜7 管理接口继承 o q 川 d e v i c e m b e a n s u p e r d e v i c e m b e a n g e 制a m e ! ) g e t o e s c ( ) 芝搬e c 。毒, 实现)“者千” s u p e r d e v i c e 【一i 一j 图卜8 管理接口和 d b e a n 同时继承 图1 6 中,s u p e r d e v i c e 仍继承了d e v i c e ,但也实现了自己的接口,其管理 接e l 是s u p e r d e v i c e m b e a n ,而不是d e v i c e m b e a n ,因此g e t n a m e 和s e t n a m e 函 数也就不能j m x 代理看到。图l 一7 s u p e r d e v i c e m b e a n 同时继承了d e v i c e m b e a n , 因此g e t n a m e 和s e t n a m e 则可以为j m x 代理看到,此外如果s u p e r d e v i c e m b e a n 继承的是其它的非管理接口( 命名不以m b e a n 结尾) 也同样适用。图1 _ 8 , s u p e r

温馨提示

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

评论

0/150

提交评论