J2ee与ASP.NET平台电子企业的两种构想(4)

原创 2001年08月16日 16:37:00
 

J2EE体系结构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

.NET平台相比,Sun公司的标准定义的J2EE体系结构有很少可以讨论的空间,因为就没有什么可讨论的。如果一个人注意某个具体开发商的产品,如IBM公司的WebSphere,那么就会看到其技术的最大的一部分是WebSphere专用的。比较所有开发商对J2EE的具体改进,已经超出了本文的范围,在我的经验中,大多数对J2EE作为一个平台感兴趣的公司对该标准的可移值性感兴趣。任何对可移值性感兴趣的人都会需要将他们自己局限于Sun公司所定义的标准。

J2EE体系结构可以被分为5部分:

  • Java语言系统
  • 客户端程序设计模型
  • 中间层基础结构
  • 程序员企业级API
  • 非程序员可见API

最后一部分,非程序员可见API,包括定义了如何将其他产品插入到J2EE中的API,如连接器API,以及J2EE模型中被最近的改进有效替代的API,如JTAJava Transaction API)。由于从比较微软和Sun公司计划的角度来说,非程序员可见API并不重要,因此在笔者的概述中将不涉及这些方面 (就如同笔者在.NET平台概述中并没有涉及功能相当的API一样)

Java语言系统

在高层次上,Java语言系统看起来与.NET Framework类似。在这两种情况中,源代码都是被翻译成一种中间语言。但是,在.NET平台中,这种中间语言是MSIL,而在Java系统中,是Java Byte Code。在这两种情况中,中间语言被带入到运行环境中。在Framework中,运行环境是Common Language Runtime。对于Java,运行环境是Java虚拟机(Java Virtual Machine)。总体而言,Common Language RuntimeJava虚拟机有类似的功能,并且在技术进步方面,都无可置疑地在发展和彼此交互跃进。

这两种系统之间最重要的区别与源代码到中间语言的翻译有关。在.NET平台中,中间语言设计用来适应各种语言的需求。在Java中,中间语言设计用来满足Java的需求。虽然从理论上,从除Java外的语言生成Java Byte Code是可能的,但是实际上这还没有在任何一种商业产品中证明。

客户端程序设计模型

J2EE客户端程序设计模型重点集中在与浏览器的交互上。客户端程序设计模型有3部分:Java AppletsJava ServletsJava Server Pages

Java Applets用来对在浏览器内运行的Java代码进行打包。在.NET平台空间中,这在功能上与ActiveX相当。在笔者的经验中,appletsActiveX组件使用的相对较少。电子商务体系结构一般都是以向表示层发出请求的浏览器为基础,然后表示层使用HTML页面进行响应。这种系统并没有使用ActiveXJava Applets,因此笔者在本白皮书中并没有讨论这些技术的任何一种。

处理HTTP请求和HTML响应的重要技术是Java Servlets[1]Java Server Pages[2]。这两种技术与微软空间中的ASP.NETActive Server Pages)类似。

.NET平台与Java表示层中间的主要区别在于处理不同的客户端功能的方式。Java表示层沿用了以前的Microsoft ASP (pre .NET)模型,它使得表示层程序员的责任是决定最终的目的浏览器(或其他瘦客户端系统),瘦客户端系统的功能,以及如何生成HTML来充分发挥瘦客户端系统的优势。

中间层基础结构

对于J2EE,中间层基础结构是Enterprise Java Beans (EJB)。该规范的当前版本是2.0,可以从网上获得[3]。与J2EE相当的.NET平台是COM+

EJBCOM+之间,体系结构的差别非常少。这两种体系结构本质上是从MTSMicrosoft Transaction Server)派生出来的,是由微软公司在1996年引入的最初的面向组件的中间层基础结构。由MTS最先引入,然后合并到EJBCOM+中的重要想法包括:

  • 通过组件示例的共享所实现的高可伸缩性

  • 以中间层为中心的安全性
  • 自动事务处理边界管理

EJB加入了一种新的体系结构想法,一项自动管理组件状态的技术。这项技术被称为entity beans(实体豆)。虽然这种想法具有吸引力,但是当前的实施却依赖于独立于数据库缓存的中间层数据缓存。很不幸的是,在这两种缓存之间没有保持一致性的机制。这意味着对实体豆的任何使用都会带来数据库损坏的高风险。在缓存一致性问题解决之前,在最佳试验技术方面,必须得不断考虑实体豆技术。

要连接EJBCOM+的深入比较,请参阅笔者最近的著作[4]

程序员企业级API

我们调用Java Enterprise API 时的最重要部分如下:

  • Java Database Connection (JDBCJava数据库连接) 2.0 – 是用于从Java中访问关系型数据库的API[5]。这与.NET平台空间中的ADO.NET相当。
  • Java Naming and Directory Interface (JNDIJava命名与目录接口) – 是用于从Java中访问企业名称与目录服务的信息的API[6]。这与.NET平台空间中的Active Directory Services Interface (ADSI,活动目录服务接口)有点类似。

  • Java Message Service (JMSJava消息服务) 1.0 – 是用于异步工作流的Java API[7]。这在功能上与Microsoft Message Queue API相当,这个API已经被排队组件所替代。

J2EE:将一切合并到一起

4 显示了J2EE主要部分之间的关系,可以将其与图3和和图1进行比较。图3显示了.NET平台的相当的形象描述,图1中显示了相当的一般体系结构。

 



[1]Java Servlet 1.2规范可以在http://java.sun.com/products/servlets获得。

[2] Java Server Page 1.2规范可以在http://java.sun.com/products/jsp获得。

[4]COM+ and the Battle for the Middle TierRoger Sessions著,John Wiley and Sons20001月发行

[5] 说明书可以在http://java.sun.com/products/jdbc得到。

[6] 说明书可以在http://java.sun.com/products/jndi得到。

[7] 说明书可以在http://java.sun.com/products/jms得到。

J2ee与ASP.NET平台电子企业的两种构想(6)

 可伸缩性可伸缩性是指添加更多工作量的能力。一般来说,附加的工作量是客户的增加引起的。可伸缩性是一个复杂的问题,笔者已经在几篇已经可以得到的文章中对此进行了深入探讨[1]。未来简化这个讨论,笔者将在M...
  • netyfhome
  • netyfhome
  • 2001年08月16日 16:45
  • 842

J2ee与ASP.NET平台电子企业的两种构想(3)

 让我们根据图2,观察AustinKayaks和MoneyBroker 之间的电子协作。在使用浏览器工作的AustinKayaks客户(1)访问AustinKayaks URL,然后要求购买一个皮艇时...
  • netyfhome
  • netyfhome
  • 2001年08月16日 16:36
  • 777

J2ee与ASP.NET平台电子企业的两种构想(7)

 语言在语言方面,选择很简单。J2EE支持Java,并且只支持Java。在可预见的将来,它将不会支持其他任何种语言。.NET平台支持出Java以外的其他任何种语言(尽管它支持一种在语法和功能上与Jav...
  • netyfhome
  • netyfhome
  • 2001年08月16日 16:47
  • 858

J2ee与ASP.NET平台电子企业的两种构想(2)

 .NET平台体系结构整个.NET平台体系结构可以分为4个主要部分:.NET基础设施和工具:用来构建和运行电子企业系统的基础设施和工具,包括Visual Studio.NET,.NET Enterpr...
  • netyfhome
  • netyfhome
  • 2001年08月16日 16:34
  • 1264

J2ee与ASP.NET平台电子企业的两种构想(8)

 术语表ADO.NET –用于访问数据层的.NET API。Application Center Server – 提供中间层负载平衡和一般群集(cluster farm)管理的.NET技术。Asse...
  • netyfhome
  • netyfhome
  • 2001年08月16日 16:48
  • 1104

J2ee与ASP.NET平台电子企业的两种构想(5)

 J2EE与.NET平台的相似点图2中给出了J2EE与呢平台之间的所有相当之处。正如你所看到的,许多.NET平台功能范围在J2EE中没有对应功能。在某些情况下,至于是否支持这些功能,如果支持,支持情况...
  • netyfhome
  • netyfhome
  • 2001年08月16日 16:40
  • 847

Java vs C# —— J2ee与ASP.NET平台电子企业的两种构想(8)

术语表 ADO.NET –用于访问数据层的.NET API。 Application Center Server – 提供中间层负载平衡和一般群集(cluster farm)管理的.NE...
  • thebesghost
  • thebesghost
  • 2006年10月11日 23:27
  • 898

第三方电子合同平台如何选?看这七点就够了

面对良莠不齐的第三方电子合同平台,互联网金融企业如何选择一家靠谱的平台?以下是法大大小编整理的,能够初步判定第三方电子合同平台是否合法靠谱的几个要点。...
  • kesserly
  • kesserly
  • 2017年08月28日 17:27
  • 635

J2EE 企业级应用架构简述

企业应用的特点 多环境多系统的交互海量数据、高并发、高TPS安全等级高自动化集群管理 架构的原则 CAP原则(一致性、可用性、分区容错性)复杂的事情简单化 ...
  • zwx19921215
  • zwx19921215
  • 2017年03月12日 20:12
  • 763

PHP和J2EE比较

我们该如何选择?java还是php?《Java和PHP的web开发技术比较》 比较PHP和JSP这两个web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的...
  • wangnana_bg
  • wangnana_bg
  • 2010年10月29日 13:26
  • 2797
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2ee与ASP.NET平台电子企业的两种构想(4)
举报原因:
原因补充:

(最多只允许输入30个字)