J2EE应用服务器:开源的vs商业的,国内的vs国外的
最近,JE关于AS的话题似乎多了一点。
看了很多同志的感言,作为一个AS技术爱好者,我希望能够和大家分享个人的一些看法和亲身经历。
首先我没有必要隐瞒,我目前在金蝶中间件(Apusic)做事,Apusic AS是我们公司的产品。但是,作为一个小小程序员,一个自称“热崇技术”的人,我想我不会、也没有必要带有任何商业目的来写这些文字。
一、开源的AS和商业的AS
1、品质
进入Apusic做事之前,个人曾经细致阅读过JFox的代码,大体阅读过JBoss的代码,部分OpenEJB的代码。当时,JFox/JBoss项目都远
远没有资格谈J2EE兼容,更不要说商业化。不过,对于初出茅庐的我来说,JBoss在我心中还是占据了不轻的地位。进入Apusic之后,再
回头审视JBoss,这个自称“professional"的AS和商用AS(包括Apusic/WL/WS)从品质上来说没有可比性,它需要走的路还很长。
个人觉得一个成熟的AS要求相当广泛,但是以下两点应该说是必备的:
1)需要在广泛、严格、长期的商业系统中磨炼以提升品质。
2)高端附加特性和工具,譬如强大的安全支持、可管理、可监控、可诊断、集群、高可用性、高级事务支持(譬如日志恢复)等等。
很显然,做为非商业化AS代表的JBoss还远不具备,当然也包括Geronimo。
2、技术
对WL/WS架构没了解,JBoss出道较晚,架构和采用的技术够新、够炫,同时商业客户有限,所以,它也敢动不动修改一下核心架构。
但是技术“新”“炫”并不代表产品就好。而这些”新“”炫“可能正是JBoss在某些人心目中奠定地位的原因。
谈到技术,这里顺便讲个小故事:
很久之前,感叹SmartWorld的鬼斧神工,也感叹于Richard Oberg的天赋。
后来,我发现,N年前,CORBA就在采用interceptor技术。
再后来,我到Apusic做事,Apusic AS多处核心部分采用bcel操作bytecode,在内存中动态生成Class。
公司的同事还告诉我,这些都是2、3年前做的。当时,我很惊讶。为什么?还记得不久前炒的很热的AOP吧。
一般来说,AOP Framework基于(CGL)Code Generation Library(譬如CGLib),而CGL基于Byte Code
Engineering Library(譬如BCEL/ASM/Javassist)。也就是说,Apusic 2、3年前就做了目前流行AOP Framework做的事,
并且是从最底层做起的。
除此之外,Apusic创造性的采用的一些在protocal、security、message router等方面的技术,都让我认识到:
外国佬那些”新“”炫“的项目真的能够说明它们的技术就那么牛吗?
国人的技术就真的差到哪里去吗?
不要再盲目地将国外的JBoss、Spring什么的奉为上帝了,诚然,它们很多
东西值得学习。亏得有些人谈起国产AS就提到抄袭JBoss的,如果,你说抄袭
WL/WS的,说不定别人觉得你还不太无聊。
二、国产商业化AS与国外商业化AS
国外商业化AS的代表:WL、WS。
我不会告诉你,Apusic或者Once比WL/WS还强,但是我想说,Apusic(Once不了解)是有资格和WL/WS同台竞技的,各有优点。同时请问那些声称“作为一种产品来说他们还不够格”的人说,何出此言?
为什么说Apusic有资格何WL/WS同台竞技? 谈技术,我想我现在扯再多,也很难扯清。一方面,都是非开源的,另一方面,J2EE AS涉及的面非常广,无法做一个严格的比较论证。
Apusic作为国内唯一正式商业化的AS,从1.0开始走过了5个年头,在国家很多部级、银行、金融等领域支撑核心应用,应该说也没少锻炼。
AS共性的东西就不说了,Apusic的性能(包括WebServer/AppServer)、多路复用、消息路由、动态bytecode Operation Deployer等等特色技术都可以说是可圈可点的。
三、关于huihoo和JFox
huihoo对国内开源的贡献估计任何人都不能否认,本人也从huihoo的项目中收获很多。
如果有人说,JFox抄袭JBoss,那么我只能说,又一个“伪技术者“,JFox的基础架构和JBoss3.0之前的架构思路一样,但是不代表JFox 是抄袭JBoss的,而且JFox很多地方都有创新,记得不是很清楚了,JFox的每种Bean采用一个bucket,还有前端可以任意撤换通信协议等 特性就是当时JBoss没有的。