我开发j2ee用的是weblogic和websphere,他们应该只是对sun公司的j2ee的一种应用,我一直都没用过sun公司的免费的j2ee包j2sdkee-1_3_1-win.exe,但我在weblogic和websphere安装目录中也没有找着sun的j2ee包的蛛丝马迹,那他们究竟是怎么做的呢,tomcat却要先装上j2sdk。
sun的j2sdkee-1_3_1-win.exe究竟做了些什么
j2ee是一个规范,作为中间件服务器提供商所实现的j2ee服务器,是对j2ee规范的实现,如ejb容器,命名服务,jca的支持,jms的提供等等.由于是针对规范来实现的,所以每个服务器提供商都根据各自的理解对这个规范进行了实现,他们都有自己实现j2ee的类库和包,至于有多少是建立在sun的标准api之上,或者是自己为规范定制了些什么样的接口,每个提供商都有自己一套体系.tomcat之所以要先安装jdk,是因为它作为open source的项目,出于非商业因素考虑,所以选择了sun公司提供的资源.j2sdkee-1_3_1-win.exe跟j2sdk一样,是sun公司自己定制的j2ee开发工具包,并提供了一个web服务器,之所以有这个开发包的出现,一是它作为j2ee的提出者,需要作出相应的开发工具,以作为开发蓝本,同时提供给开发者进行开发,也提供给服务器提供商作为选择来进行集成;二是以这个工具包作为j2ee的布道手段,使开发人员熟悉这个体系,可以利用这个工具包给开发人员提供学习的入口;三也是有商业意义的,因为其服务器也可提供给软件开发集成商作为商业平台来完成商业系统的构建.
首先从功能上讲,
sun的j2ee开发工具包基本上是一个对j2ee规范全面支持的服务器。
但是其他著名中间件厂商,如bea,它除了对j2ee规范支持外,还有一些扩展功能。
以ejb容器容器为例:
在并发事务处理上:sun的j2ee131并未提供任何并发策略的控制。
但bea在weblogic700中一共支持4种并发策略。
在EJB QL上:sun的j2ee131中还未实现Order by功能,但weblogic700中有实现。
此外,weblogic700还提供了几个EJB20规范中未包括的增强功能,如
子查询,Aggregate,查询返回ResultSets等。
weblogic700还支持动态构造 EJB QL查询的功能。
weblogic700还有一些扩展功能如:
可移植的消息驱动bean(MDB Migratable Service Support),
关系缓存,
自声称主健,
事务间缓存,等等,。。。
其次从实现细节上讲:
有的厂商的j2ee产品只是简单封装的sun的源码,又追加了一些各自的特色功能。
另有个别有实力的厂商,如bea,ibm,他们的产品在实现细节上花了很多优化工作,
比如对群集处理能力增强,并发处理增强,java性能优化。。。
总体上说,几个主要中间件服务器提供商的产品要比sun公司的至少要全面。功能支持多些。
虽然说j2ee的标准把握在sun手中,但现在的事实是,bea和ibm对j2ee的支持速度均快于sun。