
在过去的几年时间里,Java在分布式应用程序和系统的发展中占据了一个非常重要的位置。我们已经亲眼目睹了Java应用程序到现有系统、资源、主机(mainframe)和设备的连接能力有了里程碑意义上的飞跃。随着连通性的飞速发展,客观上需要定义一种管理所有实体的通用方法。这就导致了Java管理扩展(Java
Management Extensions ,JMX)规范的产生。
今天的分布式应用程序和系统的环境是动态且不可预测的,用传统的静态解决方案来处理分布式应用程序和系统已经被证明是不现实的。因此,JMX被引入到Java编程领域,其目的是允许任何Java组件都具有固有的、动态的可管理性。
Java Community Process(JCP)组织与业界中的佼佼者已经把JMX的规范定义为管理用Java编程语言实现的系统、应用程序和资源的标准。JMX促使开发者考虑基本的管理事项而不是在开发后再加以弥补。
JMX定义了一种用管理属性和操作来动态扩充Java对象的标准方法。这个方法,即工具法(instrumentation),允许开发者把精力集中于他们擅长的领域而无需考虑它们是否符合专有的管理API。
三个层次上的管理
JMX的体系按照三个层次进行设计。这样不同分工的开发者可以在最适合他们的层次上工作,这也就优化了开发框架。JMX的三个层次定义如下:
- 分布式服务层(Distributed services)——这一层致力于通过定义一种定位和访问代理和MBean而无需考虑它们物理位置的机制来管理应用程序群体(application
community)。这一层涉及到了服务查找、连接协议、消息交换等等内容。
- 代理层(Agent)——这一层致力于通过定义一种建立管理代理的机制来管理应用程序群体。管理代理通过一个称之为MBean服务的注册(registry)来向管理客户提供保存、控制并提供MBean的服务。
- 工具层(Instrumentation)——这一层的作用是定义一种提供资源的机制,该机制叫着Managed
Bean,或者MBean。资源可以是一个应用程序、服务或者设备等等。
图A给出了JMX体系中这三层之间的关系:
图A
