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程序。