posts - 16,comments - 17,trackbacks - 0
翻译:JMX规范version1.2
JMX组件概述

    下面列出了JMX架构每一层中的关键组件,并将在接下来的部分进行介绍。
    1.工具层(Instrumentation Level)
        a.MBeans(标准的,动态的,开放的和模型MBeans)
        b.通知模型
        c.MBean元数据类
    2.代理层(Agent Level)
        a.MBean Server
        b.代理服务

工具层的组件

    工具层的主要组件就是MBean设计模式,通知模型和MBean元数据类。

MBeans
    MBean是实现了一个特定接口,并遵从某一设计模式的Java对象。这要求在MBean中规范化资源管理接口的表现形式。资源的管理接口包含所有需要的信息,以及管理程序需要在资源上进行的操作的控制。
    MBean的管理接口表现为如下几种:
    1.可以被访问的属性;
    2.可以被调用的操作;
    3.可以被发布的通知;
    4.MBean类的构造子。
    MBeans通过它们的公共方法封装属性和方法,沿袭设计模式暴露它们给管理程序。例如,在标准MBean中一个只读的属性只有getter方法,而可读写的属性则既有getter方法,又有setter方法。
任何作为MBean来实现的对象,并且在代理中注册,则它可以在代理所在的JVM以外进行管理。这些对象包括:
    1.程序所管理的资源;
    2.为帮助管理资源提供的增值服务;
    3.能被管理的JMX基础结构组件。
    其他的JMX组件,例如代理服务,被指定为工具MBeans,使它们能受益于JMX的基础结构,并提供管理接口。
    JMX架构并没有强行限制编译好的MBean类的储存位置。它们可以放在任何代理的JVM的classpath指向的位置,如果使用了类载入(class loading)它们也可以放在一个远程的站点。
    JMX规范定义了四类MBean:标准MBean、动态MBean、开放MBean和模型MBean。每一种MBean需要一种不同的工具。
    1.标准MBeans(Standard MBeans)设计和实现是最简单的,这类MBean使用自己的方法名作为管理接口;
    2.动态MBeans(Dynamic MBeans)必须实现一个指定的接口,由于动态MBeans在运行期间暴露它们的管理接口,因此更为灵活;
    3.开放MBeans(Open MBeans)属于动态MBeans,这类MBean依靠基础数据类型来实现通用管理,并为友情用户进行自我声明;
    4.模型MBeans(Model MBeans)同样也是动态MBeans,这类MBeans是完全可配置的,在运行期间进行自我声明;它们为资源动态工具提供一个一般性的,有默认行为的MBeans类。

通知模型(Notification Model)
    JMX规范定义了基于Java事件模型的一般性通知模型。通知可以被MBean的实例和MBean server发布。规范中指明通知的发送和接受者必须实现通知对象、广播和监听接口。
    JMX的实现可以提供通知模型发布的服务,来使管理程序远程侦听MBean模型和MBean server的事件。如何完成通知模型的发布超出了本部分规范的范围。规范的后面将讨论高级通知服务,例如管理程序取回通知进行转发和保存。

MBean元数据类
    工具规范定义了MBean的管理接口的类。这些类用来定义构建发布MBean管理接口的标准信息结构。在代理层的MBean server的一个功能是提供MBeans的元数据。
    元数据类包含描述MBean的管理接口的所有组件的结构:属性、操作、通知和构造子。每一个元数据类包含有名字、描述和它的特性。例如,属性的特性是它为只读、只写还是可读写;操作的特性是它的参数的标识和返回类型。
    不同类型的MBean扩展元数据类来提供附加的信息。通过继承,标准信息总是可用的,知道如何访问子类的管理程序可以获得额外的信息。

代理层的组件

    代理层的关键组件是工具层的对象都在其中注册的MBean server,和使JMX代理体现更自主和性能更好的智能管理可用的代理服务。

MBean Server
    被管理Bean的服务,简称MBean server,用来注册在代理中暴露给管理操作的对象。任何注册在MBean server中的对象对于管理程序都是可见的。MBean server只暴露MBean的管理接口,而不是直接暴露对象的引用。
    任何系统在代理JVM以外管理的资源都必须在MBean server中作为MBean注册。MBean server也提供一个标准化的接口,给同一个JVM来访问MBeans,为本地对象提供手工可管理资源的所有好处。MBeans可以通过一下几类来实例 化和注册:
    1.其他的MBean;
    2.代理本身;
    3.远程管理程序(通过分布式服务)
    注册MBean的时候,必须为它指定一个唯一的对象名(Object Name)。管理程序用这个对象名来标识执行管理操作的对象。MBean可用的操作包括:
    1.发现MBean的管理接口;
    2.读写MBean的属性;
    3.执行MBean定义的操作;
    4.基于对象名或者属性值来查询MBean。
    MBean server通过协议适配器和连接器使代理的JVM外的管理程序可以访问代理。通过指定的协议每种适配器提供所有注册在MBean server中的MBean的实例的视图。例如,HTML适配器可以显示MBean到Web浏览器。协议适配器提供的视图因协议的不同而不同,在本规范中 不对其进行讨论。
    连接器提供用来处理管理和代理之间通信的管理方接口。即使是不同的协议,每个连接器都提供相同的远程接口。当远程管理程序使用这些接口时,它就可以通过网 络透明的连接到代理,而不需要知道相关的协议。远程管理接口规范在JSR160“JMX Remoting 1.2”中进行讨论。
    适配器和连接器使所有的MBean server操作对于远程管理程序可用。对于一个被管理的代理,它必须包含至少一个协议适配器或者连接器。代理也可以拥有多个适配器和连接器,使它可以被不同的管理者,通过不同的协议进行管理。

代理服务(Agent Services)
    代理服务是可以在注册在MBean server中的MBean上执行管理操作的对象。通过在代理上包含智能管理,JMX可以帮助你构建更加强大的管理解决方案。代理服务通常是允许它们和它 们的功能通过MBean server进行控制的MBeans。JMX规范定义了一下几种代理服务:
    1.通过管理服务小程序从任意网络位置取回和实例化新的类和本地库动态载入类,实现动态的载入类;
    2.观察MBean数字或字符串型的属性,并能通知其他对象某些类型改变了的监视器;
    3.提供一个一次报警通知或者是重复的,周期的通知的定时机制的定时器;
    4.定义MBeans之间关联和执行基于预定义关系类型关系的关系服务。
    所有的代理服务托管在一个遵从JMX的实现中。

综述

    本部分指明了关于实现遵从JMX工具和代理规范(Version 1.2)的工具层和代理层的托管组件。

工具层(Instrumentation Level)
    遵从JMX工具规范(Version 1.2)的实现必须提供在第2章“MBean 工具”、“第3章”开放MBeans“和第4章”模型MBean“中说明的所有组件。它包括通过Javadoc工具生成的相应的API文档中定义的相关 类。这些组件为标准和动态的MBean提供了支持。

代理层(Agent Level)
    遵从JMX代理规范(Version 1.2)的实现必须提供在第二部分”JMX代理“中指定的所有组件。它包括MBean server的实现,代理服务和通过Javadoc工具生成的相应的API文档中定义的相关类。因此所有指定的四种服务的实现是必须的。



posted on 2005-02-03 14:13 非飞 阅读(606) 评论(0)  编辑  收藏 所属分类: JMX

只有注册用户登录后才能发表评论。


网站导航: