本版版主招募中

 
标题: 书评:O'Reilly《Java管理扩展》
瓜小南
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14


UID 128
精华 32
积分 1808
帖子 3485
活跃指数 10
LU金币 188 个
LU金条 0 个
阅读权限 200
注册 2003-9-26
 
发表于 2003-10-4 16:09  资料  个人空间  短消息  加为好友 
书评:O'Reilly的新书《Java管理扩展》

JMX是新的Java应用程序资源的管理标准。它的目标就是与现有的解决方案——如简单网络管理协议(Simple Network Management Protocol ,SNMP)以及基于Web的企业管理(Web-Based Enterprise Management ,WBEM)——协同工作,并维护新的J2EE管理界面中的所有标准。JMX允许Java开发者通过某种管理界面(而不是记录文件以及命令行)创建维护应用程序的途径。


在接触到O'Reilly出版社的《Java管理扩展》(Java Management Extensions)之前,我曾经利用JMX来建立Jboss应用程序服务器的监控部件。我创建了Managed Beans (即Mbeans,它使最简单的JMX bean),并把它们插入到服务器。然后,通过访问Web页面,我可以看到系统中Mbean服务的列表,甚至还可以启动、停止或者修改这些服务。这样我就可以很容易的看到当前有多少用户联到我们的客户服务器上,甚至还可以重新启动任何悬挂的线程(hung thread)。但是我还想了解J2EE解决方案框架下的底层知识。这就是我的目的。但是你可以看出,我有一点点失望。图A给出了该书的基本信息。
图A



--------------------------------------------------------------------------------

Java管理扩展

作者J. Steven Perry
O'Reilly出版社,2002
312页
ISBN:0-596-00245-9
封面页:$34.95

优点:
对JMX世界给出了优秀、简洁的介绍
比规范本身易于阅读
指出了出版时的几个错误
缺点:
内容与JMX规范没什么区别
缺乏如何使用JMX的例子
有些章节很相似,使得它们难以阅读

--------------------------------------------------------------------------------


我发现《Java管理扩展》令人失望

本书组织成两大部分,各自对应于JMX的功能层次。第一部分覆盖了工具层,这包括了各种类型的Mbean,你可以扩展它们建立JMX-aware应用程序。本书的第二部分讨论了代理层(agent level),它解释了Mbean所处的环境以及功能。从技术的角度来说,还有第三层——分布服务层(the distributed services level),但是这一层的规范尚未完成。所以,可以理解为什么作者仅仅在介绍中讨论了分布式服务。

导言是最重要的

几乎没有哪一本书的导言会作为一个重要的章节存在,但是在本书中,导言的作用很显著。本书的导言为你提供了一个高层次的JMX规范概述,在学习后面的内容之前,了解它是有必要的。导言这一章甚至还给出了一个例子——尽管这个例子非常抽象。

在导言之后,本书直接介绍了JMX以及Mbean。这里介绍了四种Mbean——标准(Standard)、动态(Dynamic)、模型(Model)以及开放(Open)——各自对应于本书的四章的篇幅中的每一章。每章都是首先介绍什么时候以及为什么使用该种Mbean,然后详细描述它是如何工作的。本书的前四章的篇幅为140页——几乎占了全书的一半——并且覆盖了JMX的工具层(instrumentation level)。

尽管本书详细介绍了每一种Mbean,但是我发现很难读下去。由于各种Mbean之间的相似性,本书的前四章的内容看起来并没有向前推进。而且我不得不强迫自己读完它们。每一章都有一个例子,但基本上都是把Mbean应用于一个乏味的队列中。也许举个比队列轻松点的例子会让前四章的内容有意思的多。

理解Mbean环境
本书的第二部分介绍了JMX三层结构中的处于中间位置的代理层。这部分覆盖了容器(countainer)、Mbean server以及通知模型(notification model)和每种JMX容器期望拥有的标准服务。虽然通过这些章节,对managed server有了清楚的认识,但是这些章节并没有真正告诉我如何使用Mbean,也没有告诉我如何把学到的知识体现到代码中去。

我想,如果在这部分内容中插入一个例子将是一件有趣的补充。在以往的工作中,我们用一个基于Quartz(开放源码的类似计时程序的Java API)的服务(service)取代了Timer服务,效果不错。作者在这里或者本书的末尾给出一个关于服务的例子。

一个令人失望的地方——缺乏例子
正如我在前面所提到那样,由于我使用J2EE解决方案正来劲,想看看框架下的结构,所以想到了本书。尽管《Java管理扩展》让我到达了这个目的,但是它并没有为我如何在工作中利用所学知识很明确的指出方向。但这并不是一个明显的错误;作者的风格并不是不受欢迎的,他在书中展示了JMX规范的理解,并很好的覆盖本论题,尽管如此,本书的某些方面还是不对我的胃口。

我想这个问题可能是因为我从JMX中得到的好处并没有全部在本书中得到阐述。总之,对我来说,由于本书缺乏吸引人的例子,所以不能从中得到一个为什么你要使用JMX的整体概念。例如在介绍servlet时,由于没有给出servlet如何在容器中运行的好例子,你就会有这种感觉。也许因为JMX是一个新生事物才导致我的上述问题存在,但并不能因此而原谅缺乏有趣例子这一缺陷。

最后一句话
如果你已经开始使用JMX,那么购买本书应该是个不错的选择。本书提供了绝大多数你的参考所需,这就节省了你在在网络或者J2EE文档中搜索所花费的时间。如果你想我那样在日常应用之外仅仅想了解一下JMX,那么本书也可胜任。

然而,如果你现在还没有使用JMX,而且想掌握它,为此正在寻找一本介绍JMX的书,那么如果我是你,我情愿等待本书的第二版问世。或许在那时,JMX将会变得更加成熟一些,作者也会给容器和Mbean插入一些例子,然后新增分布服务层这一部分。总而言之,现在不要购买本书,你只需要在书店中把序言这一章看看就可以了。





我们匆匆相识 匆匆言爱 匆匆相许一生,
爱情也许并没有那么真的让我们那么失望,
失望只是由于我们自己的放弃。

午夜梦回。
略为清醒的时刻,
总是会想起她。
相信, 她也会想起我。
顶部
 



当前时区 GMT+8, 现在时间是 2008-8-30 09:16
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.053402 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver