http://spaces.msn.com/members/flierlu/Blog/cns!1pQ1oe7hJhEc4MgjNgGwRvvA!131.entry
《Enterprise Services with the .NET Framework》一书实际上漏掉了一个非常重要的议题,那就是对企业级服务自身的可管理性支持。JSE 5 中一个非常重要的改进,就是直接集成了对 JMX 标准的支持,这一特性的运用能大大增强服务的可用性。JBoss 的设计人员就曾评价说,JBoss 4 之所以能够成功,很大程度上依赖于基于 JMX 的微内核结构的设计,而 JMX 在 JBoss 实现上也起到了事实上的服务容器与管理机制的作用。虽然普通的企业级应用,没有必要灵活到全部通过 JMX 类似的机制管理,但基于 JMX 机制提供服务自身的监控和管理支持确实非常必要的选择。而 Java 阵营的绝大多数引擎和服务,都陆续提供了 JMX 支持和集成;MS 自身的几乎所有服务器端产品,也都内嵌了 WMI 和性能监视器的支持。
《Enterprise Services with the .NET Framework》一书实际上漏掉了一个非常重要的议题,那就是对企业级服务自身的可管理性支持。JSE 5 中一个非常重要的改进,就是直接集成了对 JMX 标准的支持,这一特性的运用能大大增强服务的可用性。JBoss 的设计人员就曾评价说,JBoss 4 之所以能够成功,很大程度上依赖于基于 JMX 的微内核结构的设计,而 JMX 在 JBoss 实现上也起到了事实上的服务容器与管理机制的作用。虽然普通的企业级应用,没有必要灵活到全部通过 JMX 类似的机制管理,但基于 JMX 机制提供服务自身的监控和管理支持确实非常必要的选择。而 Java 阵营的绝大多数引擎和服务,都陆续提供了 JMX 支持和集成;MS 自身的几乎所有服务器端产品,也都内嵌了 WMI 和性能监视器的支持。
Windows 平台下与 JMX 对应的是 WMI 架构,它在底层通过类似 SNMP MIB 表的机制定义自己的 Metadata 模型,在上层则通过类似 LDAP 的机制提供访问和查询。并且也提供了非常灵活的事件通知机制,以及各种辅助开发工具。
WMI 的概念和应用可以参考:
.NET 在这方面提供了非常易于使用的封装和支持
不过 WMI 在针对分布式系统的监控上,相对于 JMX 缺乏良好的支持。不知是不是因为 MS 将这块的特性,准备放到单独的 MOM ( Microsoft Operations Manager ) 产品中销售,因此故意不去增加支持 :S
不过总体上 MS 给人的感觉是,在企业级应用层面想的不太明白,往往看到 JEE 阵营有什么好东东,就抄过来实现之。但却始终没有想明白一个问题,有功能和能将功能用起来,对于企业级应用来说是完全两码事。毕竟指望每个 MS 架构下的设计师都通晓其所有的技术,这本身就不太现实。而通过种种看似方便,实际上分散且繁琐的封装和工具,虽然可以缓解这一问题,但长期来说只会导致大家都偷懒用缺省配置,虽然效率低但好歹能工作,知其然而不知其所以然。Windows 下的企业级应用,从 DNA 开始扯到现在,仍是个半死不活的状况(起码就国内来说如此),MS 应该好好检讨一下自己的相关策略了。