admin 管理员组文章数量: 1086019
2024年3月13日发(作者:卵磷脂小体1十)
1.体系架构的比较
作为彼此竞争的应用平台,J2EE和.NET开发平台在目标和体系结构上极其相似,但在
实现上又完全不同。
(1)类似的平台基础构造 J2EE和.NET两个平台在底层的执行引擎都源于托管的虚
拟机概念,但.NET的CLR沿着Java虚拟机(JVM)走得更远,CLR在借鉴了JVM的自动垃圾
收集、异常处理等机制的同时,又为.NET平台添加了多语言支持、组件自描述等新的特性。
在.NET和 J2EE平台上,程序的编译都经过两个类似的过程。首先,特定高级语言编
译器将C#(及其他.NET语言)和Java源代码分别翻译成中间语言(IL)和字节代码
(ByteCode)。.NET在中间语言设计时通盘考虑了多个主流高级语言,在这一层面实现了.NET
平台的跨语言承诺;J2EE的基石是Java语言,它最典型的特征是:一次编写,多次运行。
跨平台是J2EE一直引以为豪的关键,这是通过JVM来实现的。
其次,在执行时,中间语言被即时编译器(JIT)编译成特定平台的二进制代码,字节代码
则通过JVM解释执行,完成各自语言的指令功能。鉴于微软在“Wintel平台”上的代码优化
功底,.NET代码的执行速度较之于Java有明显的优势是不争的事实。但在Unix/Linux平台
上,由于.NET迟迟未能实现其跨平台的承诺,J2EE几乎成了惟一的选择,执行效率的比较
也就无所谓。在代码执行的同时,通用语言运行时和Java虚拟机也都提出了异常捕捉、类
型安全、内存分配和垃圾收集等自动化内存管理工作,大大减轻少了现代软件的内存泄漏问
题,减轻了程序员的繁重负担。
面向对象程序设计在J2EE和.NET平台中都获得了直接的支持,单根继承加多接口实
现是它们共有的特征。但在面向对象之外,.NET对现代组件编程提供了直接支持。当然,
当下很多企业中间件都是基于J2EE平台,只是.NET从设计、编码、配置到运行都给予了
组件编程更多、更直接的支持。
在基础的和企业级的服务上两个平台很难一决高低。从基础的集合、字符串操作到企业
级的API接口,如JMS、JDBC、JAX和JNDI等,J2EE在这方面有着非常坚实的结构。微
软.NET框架类库也不示弱,提供了从图画、网络、线程到、ADSI、Windows表
单和等一系列的API。
除去API类库的无缝的功能复用外,对本地平台的调用操作也是值得关注的。CLR和
Java虚拟机都支持本地方法的调用。在异构平台方面,J2EE更钟情于IIOP(Internet InterORB
Protocol),而.NET则使用SOAP。
(2)相同的三层/多层体系 基于三层/多层分布式计算结构已毋庸置疑地成为当今企
业应用的主流模式,也是两个平台较量的着力点。
在客户端,表示层负责用户与系统的交互。对于不同的处理要求,.NET和J2EE都提
出了基于桌面的应用程序和基于浏览器的Web应用的开发组件:Java Application与Windows
表单、Java Servlet/JSP与双双形成犄角之势。但Windows表单依赖微软桌面系统
的天然优势,无论在交互速度还是在界面的表现性能上都较Java Application稍胜一筹。
Servlet/JSP与是目前企业在“瘦客户端”应用的重点,两者都基于HTTP请求/响应
模型,通过HTML浏览器页面完成用户交互。虽然声称在底层通过编译执行获得
了相当高的处理速度和服务器方控件的浏览器自适应能力,但目前并没有这方面的硬性数
据,很难据此而论高低。在缓存、状态优化等方面两者可谓是旗鼓相当。另一个与客户端应
用相关的技术是ActiveX与Applet,从目前的趋势来看,它们在两个平台上的地位逐渐边缘
化,也不为大多数企业所接受。
在中间层,分布式业务组件负责企业应用的商业逻辑部署。由于这些业务组件经常负责
处理数据库连接、网络资源和线程等高昂的资源,所以一直是三层/多层架构的关键和企业
应用的核心。J2EE的EJB是一个成熟的、得到业界广泛支持的大型企业级组件框架,而.NET
组件则是建立在新型的COM+服务之上,两者在组件与操作系统的交互、客户端资源共享
等方面都有很好的支持。.NET则通过元数据支持自描述性的组件开发、XCOPY部署以及
多版本共存,无需注册表和描述文件,对企业客户有一定的吸引力。
在后端数据层,两个平台都为数据库连接量身定做了一套数据存取模型:J2EE的JDBC
和.NET的,它们在支持传统SQL数据源的同时,也支持新型的XML数据源。
这方面由于更多地涉及到具体的数据库产品,很难说那种数据模型更有优势。
两种架构的简单对照如表1所示。
表1 J2EE与.NET架构比较
架构
比较项
通信协议
编程语言
运行时环境
客户端
目录服务
数据访问
异步消息处理
表示层技术
中间层组件模
型
安全访问
事物处理
JAAS
Java Transaction Server (JTS)
COM+ Security Call
Context
Microsoft Distributed
Transaction Coordinator
开发工具
2.安全配置和代码封装的比较
(1)安全配置
两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置
体系的方式不同。
在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。是图
形接口方式,提供了命令行方式,适用于批处理或配置文本。
JAVA平台只提供了图形接口的工具。和.NET不同的是,它的目标对象
(配置文件)的名字和位置不是固定的。
Borland JBuilder,IBM VisualAge
等
(MS-DTC)
Visual
J2EE
Remote Method Invocation over
Internet InterOrb Protocol (RMI/IIOP)
Java
Java Virtual Machine (JVM)
Java Swing
Java Naming and Directory
Interface (JNDI)
Java Database Connection (JDBC)
Java Message Service (JMS)
Servlets, Java Server Page(JSP)
EJB,JavaBean
.NET
XML
C#,,COBOL
等
Common Language
Runtime (CLR)
Windows Forms
Active Directory Services
Interface (ADSI)
Java Connectors
Microsoft Message Queue
COM+,COM
版权声明:本文标题:J2EE与.NET的比较 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710289956a566319.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论