JMX规范(三):代理层

来源:互联网 发布:淘宝助理怎么下载宝贝 编辑:程序博客网 时间:2024/04/28 11:30

代理层是一个运行在Java虚拟机上的管理实体,它活跃在管理资源和管理者之间,用来直接管理资源,并使这些资源可以被远程的管理程序所控制。代理层由一个MBean服务器和一系列处理被管理资源的服务所组成。下图表示了代理层的组成:
 

MBean服务器

Mbean服务器为代理层的核心,设备层的所有管理构件都在其注册,管理者只用通过它才能访问管理构件。
管理构件可以通过以下三种方法实例化和注册:
1)通过另一个管理构件
2)管理代理本身
3)远程应用程序
注册一个管理构件时,必须提供一个唯一的对象名。管理应用程序用这个对象名进行标识管理构件并对其操作。这些操作包括:
1)发现管理构件的管理接口
2)读写属性值
3)执行管理构件中定义的操作
4)获得管理构件发出的通告
5)基于对象名和属性值来查询管理构件

协议适配器和连接器

MBean服务器依赖于协议适配器和连接器来和运行该代理的Java虚拟机之外的管理应用程序进行通信。协议适配器通过特定的协议提供了一张注册在MBean服务器的管理构件的视图。例如,一个HTML适配器可以将所有注册过的管理构件显示在Web 页面上。不同的协议,提供不同的视图。

连接器还必须提供管理应用一方的接口以使代理和管理应用程序进行通信,即针对不同的协议,连接器必须提供同样的远程接口来封装通信过程。当远程应用程序使用这个接口时,就可以通过网络透明的和代理进行交互,而忽略协议本身。

适配器和连接器使MBean服务器与管理应用程序能进行通信。因此,一个代理要被管理,它必须提供至少一个协议适配器或者连接器。面临多种管理应用时,代理可以包含各种不同的协议适配器和连接器。

当前已经实现和将要实现的协议适配器和连接器包括:
1)RMI连接器
2)SNMP协议适配器
3)IIOP协议适配器
4)HTML协议适配器
5)HTTP连接器

代理服务

代理服务可以对注册的管理构件执行管理功能。通过引入智能管理,JMX可以帮助我们建立强有力的管理解决方案。代理服务本身也是作为管理构件而存在,也可以被MBean服务器控制。

JMX规范定义了代理服务有:
1)动态类装载--通过管理小程序服务可以获得并实例化新的类,还可以使位于网络上的类库本地化。
2)监视服务--监视管理构件的属性值变化,并将这些变化通知给所有的监听者。
3)时间服务--定时发送一个消息或作为一个调度器使用。
4)关系服务--定义并维持管理构件之间的相互关系。

1.动态类装载

动态类装载是通过m-let(management applet)服务来实现的,它可以从网络上的任何URL处下载并实例化管理构件,然后向MBean服务器注册。在一个M-let服务过程中,首先是下载一个m-let文本文件,该文件是XML格式的文件,文件的内容标识了管理构件的所有信息,比如构件名称、在MBean服务器中唯一标识该构件的对象名等。然后根据这个文件的内容,m-let服务完成剩余的任务。下图例示这一过程:
 


2.监视服务

通过使用监视服务,管理构件的属性值就会被定期监视,从而保证始终处于一个特定的范围。当监视的属性值的变化超出了预期定义的范围,一个特定的通告就会发出。JMX规范当前规定了三种监视器:

1)计数器监视器,监视计数器类型的属性值,通常为整型,且只能按一定规律递增。
2)度量监视器,监视度量类型的属性值,通常为实数,值能增能减。
3)字符串监视器,监视字符串类型的属性值。

每一个监视器都是作为一个标准管理构件存在的,需要提供服务时,可以由相应的管理构件或远程管理应用程序动态创建并配置注册使用。

下图例示了计数器监视器的使用情况:
 


3.时间服务

时间服务可以在制定的时间和日期发出通告,也可以定期的周期性的发出通告,依赖于管理应用程序的配置。时间服务也是一个管理构件,它能帮助管理应用程序建立一个可配置的备忘录,从而实现智能管理服务。

4.关系服务

JMX规范定义了管理构件之间的关系模型。一个关系是用户定义的管理构件之间的N维联系。

关系模型定义如下一些术语:

1)角色:就是是一个关系中的一类成员身份,它含有一个角色值。
2)角色信息:描述一个关系中的一个角色。
3)关系类型:由角色信息组成,作为创建和维持关系的模板。
4)关系:管理构件之间的当前联系,且必须满足一个关系类型的要求。
5)角色值:在一个关系中当前能满足给定角色的管理构件的列表。
6)关系服务:是一个管理构件,能接触和维持所有关系类型和关系实例之间的一致性。

在关系服务中,管理构件之间的关系由通过关系类型确定的关系实例来维护。仅仅只有注册到MBean服务器上并且能被对象名标识的管理构件才能成为一个关系的成员。关系服务从来就不直接操作它的成员--管理构件,为了方便查找它仅仅提供了对象名。

关系服务能锁定不合理关系类型的创建,同样,不合理的关系的创建也会被锁定。角色值的修正也要遵守一致性检查。

由于关系是定义在注册的管理构件之间的联系,所以当其中的管理构件卸载时,就会更改关系。关系服务会自动更改角色值。所有对关系实例的操作比如创建、更新、删除等都会使关系服务发出通告,通告会提供有关这次操作的信息。

JMX关系模型只能保证所有的管理构件满足它的设计角色,也就是说,不允许一个管理构件同时出现在许多关系中。
 

原创粉丝点击