代理层是一个运行在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关系模型只能保证所有的管理构件满足它的设计角色,也就是说,不允许一个管理构件同时出现在许多关系中。
分享到:
相关推荐
JMX定义了三层架构:设备层、代理层和部署服务层,每一层都有自己的组件和服务,共同构成了JMX管理架构的基础。 在JMX架构中,设备层是整个管理框架中与具体被管理对象直接交互的层次,它包括了标准MBean和动态...
远程 API 是 JMX 架构的重要组成部分,它允许远程客户端与 JMX 代理层交互。这部分规范定义了如何实现远程连接和传输协议,以支持远程管理操作。 #### 六、结论 通过 JMX 1.4 规范的学习,开发者不仅可以更好地...
- **应用程序开发者**:希望遵循JMX规范管理硬件设备、应用程序和接口的开发人员。 #### 八、准备工作 要深入理解JMX 1.4规范,读者应具备以下条件: - 对Java编程语言有良好的掌握能力。 - 熟悉Java环境开发。 - ...
2. **代理层(Agent Level)**:代理层是 JMX 架构的核心,它包含一个 MBean 服务器,所有的管理构件都需要在这个服务器上注册。MBean 服务器作为管理和代理之间的桥梁,负责处理管理和操作请求。通过协议适配器和...
通过三层架构——设备层、代理层和分布式服务层,JMX能够处理从简单的设备管理到大规模企业环境的复杂网络管理需求。 **设备层** 设备层是JMX架构的基础,主要负责将资源封装成可管理资源,即MBean。MBean是对任何...
MBeans可以通过JMX代理暴露出来,使得管理员或管理系统能够通过JMX API进行访问和操作。 在JMX中,MBeans主要有三种类型:Standard MBeans、Dynamic MBeans和Model MBeans。Standard MBeans是预定义了管理接口的类...
2. **代理层(Agent Layer)**:包含JMX代理,它连接仪表层和管理层。代理负责注册MBeans,处理MBean之间的交互,并提供与其他管理工具的接口。 3. **管理层(Management Layer)**:这是外部管理实体(如管理应用...
- 代理层(Proxy Layer):JMX代理是一组服务和工具的集合,可以在远程管理JMX应用程序。 - 资源封装层(Resource Wrapper Layer):为实现资源的抽象和封装提供方法。 - Web管理器/浏览器管理器(Web Manager/...
3. **分布服务层**:这一层定义了用于操作代理层的管理接口和组件,但当前JMX规范并未详细规定这一层的具体实现。 4. **附加管理协议API**:主要用于支持现有网络管理协议,例如SNMP、TMN、CIM/WBEM等。 #### 三、...
2. **代理层** (Agent Level):负责处理本地或远程客户端的请求,并且管理MBeans。 3. **分布式服务层** (Distributed Services Level):支持远程管理功能。 #### 四、MBeans详解 MBeans是JMX中的核心概念,它们是...
分布服务层(Distributed Service Level)虽然在JMX规范中没有详细定义,但它是JMX设计中很重要的一部分。它允许跨网络的分布式管理,使管理者可以控制分布在不同位置的资源。这一层通常涉及到安全性、认证和授权...
JMX的核心框架分为两个主要层次:装配层(Instrumentation Level)和代理层(Agent Level)。装配层负责定义可管理资源的规范,通过将应用程序、服务组件或设备等封装为ManagedBean(MBean),使其具备可管理性。...
- **Hibernate 集成**:此版本还增强了 Hibernate 的集成能力,从而简化了持久化层的开发工作。 - **集群与缓存**:JBoss 4 改进了集群和缓存机制,提供了更强大的横向扩展能力以及更高的数据访问性能。 #### 四、...
JMX的核心在于其强大的架构设计,它分为两个主要层次:**仪器层(Instrumentation Level)** 和 **代理层(Agent Level)**。 ##### 2.1 仪器层 这个层次关注于如何将被管理的对象转换为可管理的实体,即所谓的...
- **RMI/IIOP**:远程方法调用/Internet对象请求代理,用于分布式计算。 - **JDBC 3.0 和 2.0 扩展**:Java数据库连接,提供了与数据库交互的标准API。 - **EJB 2.0**:企业级JavaBean,用于构建可部署的组件模型...
- **JMX增强**:提供更方便的JMX集成,简化管理 bean 的监控和管理。 - **`java8`支持**:全面支持Java 8新特性,如日期时间API和函数式编程接口。 - **WebSocket增强**:提供了更好的WebSocket支持,包括STOMP...