Chapter 2. Architecture 结构:


Jolokia 的架构是完全不同于  JSR-160 connectors, 一个显著的区别是 Jolokia的无类型方法

JSR-160,  在2003年发布,有不同的设计目的相比Jolokia.

它是一个规范 一个客户端可以透明的调用 MBean calls, 


无论是否MBean 属于本地或者远程MBeanServer.


这个提供了一个很好处理的舒适用于 这个API的 Java clients,

但是它也是危险的 因为 它隐藏了遥远的JMX 请求。

有几个微妙的问题,性能是其中之一。

它关系是否一个请求是被本地或者远程调用。

一个调用 应该至少知道发生了什么,结果是什么。

另一方面, 有消息传递模型 包含远程,

这样caller 知道 从programming model 它是调用一个潜在的昂贵的远程调用。


这个是一个大概主要reason 为什么RMI (jsr-160连接器的默认协议栈)

失去了市场共享到一个明确的远程协议。



2.1. Agent mode

图2.1,  "Jolokia architecture" 阐述环境Jolokia 操作。

agent  导出正面一个JSON 基于协议通过HTTP,得到桥接到本地的 JMX MBeans.

它的生活在 JSR-160 空间和因此需要一个不同的设置。

各种技术 是可用的用于 导出它的协议通过HTTP.


最突出的是把代理放到一个servlet container。


这个可以是一个轻量的像Tomcat或者Jetty  或者一个成熟的JEE Server. 


因为它表现为一个常用的web应用 agent的调度是很好理解的.



但是有更多的选择,指定agent 是可用的使用一个OSGi HttpService 或者 有一个嵌入式的  Jetty-Server。


JVM agent 使用 HTTP-Server 被包含在每个Oracle JVM 6和可以被动态附加到任何允许的Java程序。