- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1
PAGE 1
异中有同同中有异——J2EE与.NET平台体系架构的异同
作为彼此竞争的应用平台,J2EE和.NET开发平台在目标和体系结构上极其相似,但在实现上又完全不同。平台的体系架构是支撑平台的基础,平台各方面的性能也会因平台架构实现的不同而有差异。 作为彼此竞争的应用平台,J2EE和.NET开发平台在目标和体系结构上极其相似,但在实现上又完全不同。平台的体系架构是支撑平台的基础,平台各方面的性能也会因平台架构实现的不同而有差异。对两个平台产生至关重要影响的三个方面是:系统平台基础构造、三层/多层体系结构和移植/性能/扩展。J2EE是一个平台规范而非产品,对等而论,在这里述及的.NET也专注于该平台的架构规范,而较少地涉及到详细产品,尽管对.NET而言有时候这方面并不能被区分得很清晰。 类似的平台基础构造 一个平台在语言编译、代码执行、编程支持等基础构造方面往往会对平台的可用性、生产性、移植性等产生重要的影响,也是我们评判一个平台是否适合特定应用的重要依据。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类库对于现代软件平台特别重要。从基础的集合、字符串操作到企业级的API接口,如JMS、JDBC、JAX、JNDI等,可以看到J2EE在这方面有着特别坚实的结构。微软.NET框架类库也不示弱,供应了从图画、网络、线程到ADO.NET、ADSI、Windows表单、ASP.NET等一系列的API。在这些基础的和企业级的服务上两个平台很难一决高下,而且对功能集合的支持许多时候是一个时间问题,往往是一个平台推出了某一子功能集,另一个平台立刻推出类似的功能集。 除去API类库的无缝的功能复用外,对本地平台的调用操作也是值得关注的一点。CLR和Java虚拟机都支持本地方法的调用。在异构平台方面,J2EE更钟情于IIOP(InternetInterORBProtocol),而.NET则使用SOAP。 相同的三层/多层体系 基于三层/多层分布式计算结构已毋庸置疑地成为当今企业应用的主流模式,也是两个平台较量的着力点。 在客户端,表示层负责用户与系统的交互。对于不同的处理要求,.NET和J2EE都提出了基于桌面的应用程序和基于浏览器的Web应用的开发组件:JavaApplication与Windows表单、JavaServlet/JSP与ASP.NET双双形成犄角之势。但Windows表单依靠微软桌面系统的天然优势,不管在交互速度还是在界面的表现性能上都较JavaApplication稍胜一筹。Servlet/JSP与ASP.NET是目前企业在“瘦客户端”应用的重点,两者都基于HTTP恳求/响应模型,通过HTML浏览器页面完成用户交互。虽然ASP.NET声称在底层通过编译执行获得了相当高的处理速度,以及服务器方控件的浏览器自适应能力,但目前并没有这方面的硬性数据,很难
原创力文档


文档评论(0)