Huihoo.org - Open Source Middleware Foundation


jBoss系统框架的一次探讨


(orbat和lava的一次交流,Allen 整理)

你好,我是 huihoo 的 orbat,看到你在 huihoo 的帖子,很高兴认识你。

huihoo 的 hEJB 很需要向你这样有实际经验的朋友,如果你有时间,有热情,我们可以一起好好探讨,非常乐意向你学习。

如果你有什么经验或者文档,也很希望你能够与大家分享

orbat

>From: "lava"
>To: "杨 泳"
>Subject: 答复: 探讨 JBoss
>Date: Wed, 8 May 2002 16:06:22 +0800
>
>orbat:
>你好,我对JBoss的兴趣主要集中在它的实现上,对于JBoss上的J2EE开发,只是做了几个小例子。平时的工作主要还是用weblogic。

>JBoss的核心结构完全依赖于JMX,我当初看它的源码就是为了学习JMX.。接着随着性子阅读了JBoss的JNDI,EJB,configuration等模块,尤其是对于JBoss的container的设计,费了很大的力气,由于周围也没有朋友切磋,所以真是事倍功半。

>不过,我觉得如果我们自己来写Container的话,对于JBOss应该只是参考,JBoss的dynamic proxy结构的container有一些致命的弱点,比如只支持java客户端,效率要低于预编译结构的container,下面是一篇我翻译整理的关于JBoss性能的文章,本来贴在javaunion,不过好像这个网站上不去了

>祝你工作顺利,常联系,希望我们大家可以一起切磋,共同进步 !

>致
>>礼

> lava(李博)

> 2002-5-8

你好,我对 JBoss 研究还只是刚刚起步,没有涉及到深入的实现问题。看了你的描述,有几个问题想要请教:

1、 JMX 只是一个 java 的管理规范,我并没有太多的研究,你可以详细说说 JBoss是怎么应用 JMX 的吗?

2、JBoss 的dynamic proxy 结构能说得具体点吗?为什么该结构只支持 java 客户端

谢谢!

>From: "libo"
>To: "杨 泳"
>Subject: 答复: 答复: 探讨 JBoss
>Date: Wed, 8 May 2002 16:47:47 +0800
>
>你好!
>JMX相当于JBoss的微内核,所有的服务,比如JNDI,JMS等等,都是作为一个MBean(Managed Bean)注册到JMX的 MBean Server上,对于服务的启动,关闭,重启都通过MBean Server调用的。在JBoss的在线文档上也有描述,见http://www.jboss.org/jboss-overview.jsp

>关于JMX的一个简单描述,我曾在javaunion上贴过一篇文章,是讲述weblogic上的JMX应用,主要目的是想找人一起研究,不过几乎没有人回应,让我很郁闷,毕竟我还要谋生,没有太多的时间来解决所有问题,很希望有人一起来研究。我把这篇文章发给你,很粗糙,见笑了

>我觉得JMX是一个很好的管理平台,很适合作为应用服务器这类程序的管理器,或者JBoss的说法是微内核。sun的用意在于对于所有的管理程序的编写,有一个统一的规范,这就减少了不同应用服务器之间管理,移植的困难。比如现在,weblogic和JBOss都支持JMX,我们就完全可以做一个通用程序对他们进行监控。 >

>关于dynamic proxy,是java语言reflection的一部分,一个proxy对象,可以代理对指定的接口的访问,比如在EJB中的home接口,JBoss中通过JNDI获得的home接口,就只是一个Proxy对象,由他来转发请求,在JDk1.3的文档里有详细的描述。proxy对象是运行时动态产生的,而其他应用服务器的做法是通过一个编译工具,编译产生客户端的stub,这个stub支持corba的IIOP协议。而JBoss的stub就是一个java对象proxy.它只支持java RMI专用的JRMP协议。可能我的理解有些偏差,不过JBoss的源码里确实没有支持IIOP协议。

>

>另外,我刚刚去了huihoo.com,对于你所作的工作感到敬佩,也希望可以尽一份力,也热烈欢迎huihoo的所有朋友一起探讨。
>

>致
> 礼!
>
> lava
经你这么一解释,我的疑云全部散开了,非常感谢你的答复。

这是我先前在论坛回复你的帖子的内容:“lava 说得很好,我有类似的想法,就是采用 CORBA 的设计思路,一个小的核心,然后其它的特性全部都通过附加服务挂接在上面,所以我准备设计一个具备插件功能的 server 核心,其它的服务如:container,jms,jts等等全部采用插件形式挂上去,获得扩展性”

这么说来,看来,我和 JBoss 的结构想到一块去了,只是先前我没有注意到 JMX 的重要性,那你说说看,如果新设计一个 AppServer,你觉得是不是也应该采用类似JBoss 的设计的方式才好,而且现在看来,当然基于 JMX 这个标准的规范是最好的了期待你的答复。

>From: "lava"
>To: "杨 泳"
>Subject: 答复: 答复: 答复: 探讨 JBoss
>Date: Wed, 8 May 2002 17:27:07 +0800
>

>就结构来讲,我觉得JBoss的结构挺好的,一个微内核,基于上面的各种服务,其实就是一种分层的体系结构,这样比较清晰,而且,如果我们把内核做的很好,经过认真的测试的话,整个系统的稳定性就很好了。而且,sun还提供了JMX的参考实现,并且公布了源代码。

>不过,JMX规范还处于发展阶段,有些地方还要等到下一版本才能实现。JBoss就是自己增加了一些扩充实现。

>另外有个建议:

>我觉得在进行设计之前,是不是首先制订相关的标准,比如编码标准,文档模版等等?

>致
> 礼!!!
>
>lava
>
非常感谢你的答复。

希望以后的时间,一起参与到 hEJB 的设计和编码中来,你的加入,讲使整个团队的设计开发能力大大提高,我会把其他成员的名单公布出来。

你的建议很好,也是必须的一部分,如果你有既成的标准和模板可以拿出来,我们一起再改进一下,如何?

和你的交流让我受益非浅,非常感谢。

orbat