J2EE与.NET平台的相似点
图2中给出了J2EE与呢平台之间的所有相当之处。正如你所看到的,许多.NET平台功能范围在J2EE中没有对应功能。在某些情况下,至于是否支持这些功能,如果支持,支持情况如何,被认为是一个实施明确的决策,注意:要了解不熟悉的缩写词,请查看术语表。
图 2. 技术对应
技术
.NET
J2EE
支持技术
发布协议
DCOM, SOAP
RMI/IIOP
防火墙
ISA*
没有定义-
HTML页面缓存
ISA*, ASP.NET
没有定义
表示层技术
基础结构
IIS
没有定义
程序设计模型
ASP.NET
Servlets, JSP
高可用性
NLBS*, ACS*, 其他
没有定义
负载平衡
NLBS*, ACS*, 其他
没有定义
管理
ACS*
没有定义
中间层技术
基础结构
COM+
EJB
程序设计工具
Visual Studio.NET
没有定义-
高可用性
ACS*
没有定义
负载平衡
ACS*
没有定义
安全性API
COM+ Security Call Context
JAAS
消息队列API
MSMQ
JMS 1.0
异步组件
Queued (COM+)
Message driven beans (EJB 2.0)-
命名与目录服务
ADSI
JNDI
数据层技术
分布式事务处理
MS-DTC
JTS
关系型数据库API
ADO.NET
JDBC 2.0
层次型数据库API
ADO.NET
-
数据库存储
SQLServer**
-
大型机数据库连接性
HIS*
Java连接器
架构技术
电子商务架构
Commerce Server*
-
B2B
BizTalk Server*
-
* 对于.NET平台是可选附加服务。
** SQLServer是正式的.NET平台数据库技术,但是可以使用任何支持ADO.NET的数据库,包括大多数数据库。
J2EE与.NET平台之间的差别
你可以看到在J2EE与.NET平台技术之间由很大的重叠。但是,如何在它们之间进行选择呢?在本节中,笔者将讨论我所看到的主要差别。
开发商中立性
许多公司购买J2EE,他们相信这可以给他们开发商中立地位。而实际上,这是Sun公司计划的一个确定目标:
配置和实施各种满足J2EE规范需求的产品是可能的。一个可移植的J2EE应用程序在这些产品[1]中的任何一个产品中被成功部署后,都可以正确地运行。
实际上,在不是Sun J2EE对手的人中,很少有人相信这是可以实现的。Paul Harmon是最重要的独立J2EE发言人之一,他是Cutter Consortium的首席顾问,广泛发行的Architecture/e-Business E-Mail Advisory的作者。虽然Harmon总是反对J2EE,但他最近对J2EE的开发商可移植性写了这样不同寻常的坦诚的评价。
EJB模型是否已经达到了我可以将EJB组件从一个EJB应用服务器移动到另一个服务器的程度?在大多数情况下不能。EJB规范不够全面。通过提供专有的解决方案来完善这个模型,确保他们的客户可以创建生产系统,EJB应用服务器开发商弥补了这一点。[2]
Harmon总结了当今开发商中立的情况, 他的评论如下:
此刻,现实情况是如果你想开发一个EJB应用程序,你应当忠心于一个开发商。[3]
今天的现实是,没有像开发商中立这样的情况。当然,.NET平台不是开发商中立的,它与微软公司的操作系统捆绑到了一起。但是两者都不是J2EE的实现。笔者可以给的最佳建议是,选择某一开发商,计划与其始终站在一起,这样可以充分利用该开发商所提供的平台优势。
整体成熟性
第一个J2EE规范,EJB规范在1998年提出,而第一个β版本出现于1999年。而这则是在与之相当的.NET平台技术,MTS,COM+的前身第一次实现的3年之后了。笔者在最近的一篇文章[4]中讨论了从MTS到COM+的发展过程。
在.NET平台比J2EE早出现两年的情况下,了解.NET平台比J2EE平台更成熟就不足为怪了。虽然我们有大量的使用.NET技术的高度可靠的网站(NASDAQ和戴尔就是众多例子中的两个),但我们不知道有哪个网站使用了J2EE平台。Paul Harmon又作了如下评论:
今天,任何一个正在尝试[基于J2EE的]公司范围的企业级系统的公司,都在尽力工作,更好的方法是让一个真正优秀的开发团队来帮助他们摆脱困境。更重要的是,它可能应当重新考虑一个综合的项目,并满足于初始近似。[5]
互用性与网络服务
诸如笔者详细讨论的,.NET平台电子协作模型是以UDDI和SOAP标准为基础的。这些标准被100多家公司广泛支持。微软公司,IBM和Ariba是这个领域的领导者。Sun公司是UDDI协会的会员,并且认识到了UDDI标准的重要性。在最近的新闻发布会上,Sun公司负责Java群体开发的付总裁George Paolini说:
“Sun公司一直在工作,以帮助建立和支持开放的、基于标准的技术,来促进基于网络的应用的增长,并且我们认为UDDI是一个重要的、为B2B电子商务建立一个注册架构的项目。”[6]
但是虽然Sun公司公开说相信UDDI标准,但实际上,Sun公司没有采取任何措施将任何一种UDDI标准合并到J2EE中。这包括最基本的、已经有一年多的UDDI标准,SOAP。正如IBM公司的Rod Smith(Emerging Technologies公司副总裁,该公司是Sun公司最强大的合作伙伴之一)所说:
迄今为止,Sun公司还没有对[UDDI]网络服务发表过得评论。但是我认为这样是有原因的。我认为他们正在考虑Java。当我们考虑网络服务的时候,我们正在倾听客户的声音和他们的需求,但事实是,客户已经有了不基于Java的系统和Java应用程序。因此,Sun公司仍然在坚持Java,但是在这个问题上非常平静。[7]
实际上,Smith对Sun公司的互用性策略的分析一语中的。Sun公司将重点主要集中在了J2EE开发商与CORBA开发商的互用性上。Sun公司的互用性想法是,应当以所谓的IIOP通信协议为基础。
利用基于IIOP的互用性,有三个主要缺陷。
第一,它需要全世界都运行J2EE或CORBA,这是一个连Sun公司的合作伙伴都反对的假定。IBM公司的Rod Smith解释了IBM支持SOAP,而不是支持IIOP作为互用性开放标准的原因:
当发布声明,并说我们[IBM]将把SOAP作为开放标准,并将其相应提前时,响应是令人无法置信的和积极的,因为人们希望进行这样的集成工作。他们拥有基于微软的解决方案。他们同时拥有基于Java的解决方案。他们还拥有基于[Windows] NT的解决方案和基于Linux的解决方案。[8]
第二个缺陷是,像所有通信协议一样,IIOP 应当服从在Internet上进行传输。这使得它不可能作为普遍的电子协作机制。
第三个缺陷是,即使全世界都同意使用IIOP和J2EE,即使在J2EE开发商中,对于确保互用性当前的IIOP规范也是不适当的。正如Paul Harmon所说的那样:
来自不同开发商的EJB应用服务器是否以能在更大的系统中咬接的方式实行了标准化?尽管使用Internet InterORB Protocol (IIOP)来支持EJB间的应用程序通讯,但仍不能随便地在一个网络中将多个EJB产品结合在一起。 将每个都依赖几个非标准工具进行平稳通信的两个EJB应用服务器仍然需要进行一些重要的程序设计工作。[9]
今天的现实情况是,与J2EE相比,.NET平台有一个更加强大的技术中性的电子协作策略。IBM公司深信不已,UDDI,而不是IIOP才是正确的互用性方法,在这个问题上,这已经与Sun公司决裂了。在这一点上,令人痛苦但却很明显的是,尽管在UDDI上已经领先了10年,但却是一个完全的失败。
[1] Java 2平台企业版说明书,v1.3, 第2-7页,可以在http://java.sun.com/j2ee/得到。
[2] Building a Large, Integrated, Multi-EJB Server System ,Paul Harmon著 http://www.cutter.com/consortium/consultants/phbio.html Architecture/e-Business E-Mail Advisory, Cutter Consortium August 23, 2000
[3] ibid
[4] 请参阅ObjectWatch第30期Roger Sessions的文章:CIO Alert: ObjectWatch Responds to Gartner (可以在www.objectwatch.com获得)。
[5] Building a Large, Integrated, Multi-EJB Server System,Paul Harmon著 http://www.cutter.com/consortium/consultants/phbio.html Architecture/e-Business E-Mail Advisory, Cutter Consortium August 23, 2000
[6] http://www.sun.com/smi/Press/sunflash/2000-09/sunflash.20000906.1.html
[7] Interview with IBM's Rod Smith, Vice President of Emerging Technologies, September, 2000,可以在http://www-4.ibm.com/software/developer/library/w-int.html?dwzone=ws获得。
[8] ibid.
[9] Building a Large, Integrated, Multi-EJB Server System, Paul Harmon著 http://www.cutter.com/consortium/consultants/phbio.html Architecture/e-Business E-Mail Advisory, Cutter Consortium August 23, 2000