微内核MicroKernel与JMX

时间:2023-01-19 21:22:34

微内核源自操作系统设计,例如“Linus vs. Tanenbaum微内核论战”。就像许多编程语言、框架从操作系统设计中借鉴技术一样,JBoss、Spring、OSGi中也有微内核的概念。

micro kernel就是为了实现插件化plugin,实现模块化、可插拔等特性。微内核框架负责管理plugin,它只提供类似这种管理功能的最小功能集。其他的功能特性由plugin去完成。

下图显示了JBoss中使用JMX(Java Management Extension)技术,作为组件插入的总线(Bus,也可称为integration spine)。其中组件实现为MBean Service由JBoss加载管理。

微内核MicroKernel与JMX


一、JMX

JMX是从java中管理、监控各种软件、硬件组件的标准。进一步的,JMX致力于对现存各种管理标准的集成。

JMX的接口定义在javax.management包下。

JMX模型分为三层;

1、Instrumentaion:即被管资源。

本质上可以是任何东西,例如application、service、device。

该层也定义了通知机制,以允许MBean与其所在环境进行通讯,例如属性改变通知、状态变化通知等等。

2、Agents:Instrumentation层被管对象的控制器controller

3、Distributed services:管理应用程序可以与agent和agent管理的对象交互的机制

微内核MicroKernel与JMX


二、JMX的MBean

一个MBean是实现了JMX中定义的MBean接口、并遵从相关设计模式的java对象。被管资源经由MBean暴露了必要的信息和操作,可供管理应用访问控制。

MBean的管理接口包括四个方面:

1、可通过名字访问的属性attribute

2、可被调用的操作operation或功能function

3、可发送的通知notification或事件event

4、MBean对应java类的构造器


JMX定义了4中MBean:

1、standard mbean

遵循java bean命名规范的java类(??)

2、dynamic mbean

实现了javax.management.DynamicMBean接口。它在运行时暴露其管理接口,已提供最大的灵活性。JBoss针对被管组件直到运行时才知晓的情况使用dynamic mbean。

3、open mbean

扩展自dynamic mbean。它依赖于基础的、自描述的、用户友好的数据类型,以满足通用管理性。

4、model mbean

扩展自dynamic mbean,实现了javax.management.modelmbean.ModelMBean接口,提供默认的行为用以简化实现。JBoss中的XMBean是其一种实现。