关注企业级服务自身的可管理性

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 和性能监视器的支持。
    Windows 平台下与 JMX 对应的是 WMI 架构,它在底层通过类似 SNMP MIB 表的机制定义自己的 Metadata 模型,在上层则通过类似 LDAP 的机制提供访问和查询。并且也提供了非常灵活的事件通知机制,以及各种辅助开发工具。
    WMI 的概念和应用可以参考:
 
    A Simple, Powerful Tool for Scripting Windows Management
    Administering Windows and Applications across Your Enterprise
 
    .NET 在这方面提供了非常易于使用的封装和支持
 
    System.Management Lets You Take Advantage of WMI APIs within Managed Code
    Instrument and Monitor Your ASP.NET Apps Using WMI and MOM 2005
 
    不过 WMI 在针对分布式系统的监控上,相对于 JMX 缺乏良好的支持。不知是不是因为 MS 将这块的特性,准备放到单独的 MOM ( Microsoft Operations Manager ) 产品中销售,因此故意不去增加支持 :S
 
    Monitoring in .NET Distributed Application Design
    利用 Microsoft Operations Manager 2005 监视 .NET 应用程序
 
    不过总体上 MS 给人的感觉是,在企业级应用层面想的不太明白,往往看到 JEE 阵营有什么好东东,就抄过来实现之。但却始终没有想明白一个问题,有功能和能将功能用起来,对于企业级应用来说是完全两码事。毕竟指望每个 MS 架构下的设计师都通晓其所有的技术,这本身就不太现实。而通过种种看似方便,实际上分散且繁琐的封装和工具,虽然可以缓解这一问题,但长期来说只会导致大家都偷懒用缺省配置,虽然效率低但好歹能工作,知其然而不知其所以然。Windows 下的企业级应用,从 DNA 开始扯到现在,仍是个半死不活的状况(起码就国内来说如此),MS 应该好好检讨一下自己的相关策略了。

你可能感兴趣的:(关注企业级服务自身的可管理性)