2.1.3.3 代理服务
代理服务可以对注册的管理构件执行管理功能。通过引入智能管理,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关系模型只能保证所有的管理构件满足它的设计角色,也就是说,不允许一个管理构件同时出现在许多关系中。
编辑推荐: