2022年JEE与.NET技术架构的比较 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年JEE与.NET技术架构的比较 .pdf》由会员分享,可在线阅读,更多相关《2022年JEE与.NET技术架构的比较 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电信交换 2009 年第 1 期J2EE与.NET技术架构的比较摘要:从体系架构、移植性、性能、安全性、稳定性、可扩展性、成熟度、第三方厂商支持、开源支持、学习成本和对Web 服务支持等方面,试图对目前两种主要的软件开发技术架构J2EE 与.NET 进行一个客观、公正、全面的比较。关键词 : J2EE .NET 体系架构移植性安全性可扩展性Web 服务随着三层 /多层企业信息系统结构的深度发展和下一代分布式计算模型Web 服务的出现,软件开发中关于平台、框架、语言的竞争也愈演愈烈。自从微软推出.NET 平台,业界关于 J2EE 平台与 .NET 平台的比较从未停止过。本文在收集整理相关文章的基
2、础上,试图对目前两种主要的应用软件开发技术架构J2EE 与.NET 进行一个客观、 公正、全面的比较, 以帮助软件开发商选择一个较为合适的开发平台进行应用软件的开发。一、J2EE简介Java于 1995 年由 Sun 公司推出,当时它的主要用途是制作产生动态网页的Applet 。后来,人们发现Java 的“ 一次开发,多次运行” 、纯面向对象的特性、垃圾回收机制和内置安全特别适合于开发企业应用系统。于是,企业应用开发商纷纷在Java 标准版的基础上各自扩展出许多企业应用API,其结果导致基于Java 的企业应用呈爆炸式增长。但是各企业系统 API 之间又不能相互兼容, 破坏了 Java的平台独
3、立性。 鉴于此,Sun 公司联合IBM 、 Oracle、BEA 等大型企业应用系统开发商于1999年共同制订了一个基于Java组件技术的企业应用系统开发规范, 该规范定义了一个多层企业信息系统的标准平台,旨在简化和规范企业应用系统的开发和部署。这一规范和其定义的平台就构成了J2EE。它定义了基于组件的方式设计、开发、组装和部署企业应用系统的各个组成部分。同时,J2EE 规范定义了分布式多层应用系统模型、 组件重用策略、 一体化的安全模型以及灵活的事务控制策略等,使得独立软件提供商( ISV)能够比以前更快的速度,向市场推出用户适应的解决方案。J2EE 是一套针对于企业级分布式应用的计算环境,
4、其结构体系如图1 所示。它定义了动态 Web 页面功能( Servlet 和 Jsp) 、商业组件( EJB) 、异步消息传输机制(JMS) 、名称和目录定位服务(JNDI ) 、数据库访问(JDBC) 、与子系统的连接器(JCA)和安全服务等。需要注意的是,J2EE 本身是一个标准,而不是一个现成的产品(虽然现在有很多符合J2EE 标准的产品),它由以下几个部分组成:(1)J2EE 规范该规范定义了J2EE 平台的体系结构、平台角色及J2EE 中每种服务和核心 API 的实现要求。它是J2EE 应用服务器开发商的大纲。(2)J2EE 兼容性测试站点Sun 公司提供的一个测试J2EE 应用服务
5、器是否符合J2EE规范的站点,对通过该站点测试的产品,Sun 公司将发放兼容性证书。(3)J2EE 参考实现即 J2EE SDK ,它既是 Sun 公司自己对J2EE 规范的一个非商业性实现,又是为开发基于J2EE 企业级应用系统原型提供的一个免费的底层开发环境。(4)J2EE 实施指南即 BluePrints 文档,该文档通过实例来指导开发人员如何去开发一个基于J2EE 的多层企业应用系统。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - -
6、 - - - 岳福香 :J2EE 与.NET 技术架构的比较2 图 1 J2EE 体系结构图1组件 - 容器模型J2EE 是一个基于组件-容器模型的系统平台,其核心概念是容器。容器是指为特定组件提供服务的一个标准化的运行时环境,Java虚拟机就是一个典型的容器。组件是一个可以部署的程序单元,它以某种方式运行在容器中,容器封装了J2EE 底层的 API ,为组件提供事务处理、数据访问、安全性、持久性等服务。在J2EE 中组件和组件之间并不直接访问,而是通过容器提供的协议和方法来相互调用。组件和容器间的关系通过“ 协议” 来定义。 容器的底层是 J2EE 服务器,它为容器提供J2EE 中定义的各种
7、服务和API。一个 J2EE 服务器(也叫 J2EE 应用服务器)可以支持一种或多种容器。2J2EE 的核心 EJB J2EE 定义了四种组件:Applet 组件、Application 客户组件、 Web 组件及 EJB(Enterprise JavaBeans)组件。其中Applet 和 Application 客户组件在客户端运行,J2EE 通过 Java 插件为 Applet 提供运行环境,Application 客户的容器就是本地Java 虚拟机; Web 及 EJB 组件在服务端运行。J2EE 中包含 JSP和 Servlet 两种 Web 组件,它们是Web 服务器的功能扩展,都
8、能生成动态Web 页面。不同的是 JSP是将 Java代码嵌入到HTML 中,服务器负责解释执行,生成结果返回用户 (与 ASP 技术相似) ; 而 Servlet 是单独的Java类,它动态生成HTML文件返回给客户。Web 组件的容器比较典型的就是基于Java 的 Web 服务器。EJB 是 J2EE 平台的核心,也是J2EE 得到业界广泛关注和支持的主要原因。众所周知J2EE 的一个主要目的就是简化企业应用系统的开发,使程序员将主要精力放在商业逻辑的开发上。 EJB 正是基于这种思想的服务器端技术,它本身也是一种规范,该规范定义了一个可重用的组件框架来实现分布式的、面向对象的商业逻辑;其
9、核心思想是将商业逻辑与底层的系统逻辑分开,使开发者只需关心商业逻辑,而由EJB 容器实现目录服务、事务处理、持久性、安全性等底层系统逻辑。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 岳福香 :J2EE 与.NET 技术架构的比较3 一个可部署的EJB 组件包含3 个部分: Remote 接口、Home 接口和 Enterprise Beans 类。() Remote 接口Remote 接口定义EJB 组件中提供的可供用户调
10、用的方法,也就是通常所说的实现商业逻辑的函数或过程(如计算商品价格的函数),以供远程客户端调用。在 EJB 组件部署到容器的时候,容器会自动生成Remote 接口相应的实例,即 EJB 对象, 它负责代理用户的调用请求。() Home 接口Home 接口定义了一组方法来创建新的EJB 对象,查找、定位和清除已有的EJB 对象。在EJB 组件部署时,容器也会自动生成相应的Home 对象,该对象负责查找和创建EJB 对象,返回EJB 对象的引用给客户;用户利用该引用调用EJB 组件的方法,得到结果;最后Home 对象清除EJB 对象。可以形象地称Home 接口为 EJB 对象的工厂。() Ente
11、rprise Beans类Enterprise Beans类是商业逻辑的具体实现类。它可供用户调用的方法在Remote接口中定义。 根据功能不同, EJB 2.0 规范中定义了三种Enterprise Beans:会话 Beans ( Session Beans )、实体 Beans ( Entity Beans)和消息驱动Beans (Message-driven Beans)。会话 Beans 分无状态和有状态两种。一般无状态的会话Beans 模拟商业逻辑, 比如计算价格等。 有状态的会话Beans通常模拟一个客户会话,它会临时保存客户信息,根据客户要求调用其他Beans 来存取数据。 两
12、种会话 Beans 都不保存状态信息或数据,当客户断开连接或服务器关闭时, 会话 Beans 也随之消失。 一个会话 Beans 的典型例子是网站上的购物车。实体 Beans 模拟商业数据, 并表示一个数据存储,可以是状态信息或数据库中的一条记录。 实体 Beans 在客户断开连接或服务器关闭后,仍有服务保证其数据得以保存。一个实体 Beans 的典型例子就是客户账号信息。消息驱动Beans在行为上很像会话Beans。不同的是仅在需要向这些Beans发送消息时才调用消息驱动Beans,比如在需要的时候发送用户确认信息等。另外,在提交和部署EJB 组件时,还需要两个文件:部署描述文件,容器根据该
13、文件来部署 Enterprise Beans,提供所要求的服务;EJB jar 文件,它是提交给EJB 容器的一个部署单元,容器(应用服务器)在部署时解开它,装入Enterprise Beans。EJB 容器非常复杂,一般由专业的J2EE 应用服务器开发商提供,比较流行的EJB 容器由 IBM 的 WebShpere、BEA 公司的 WebLogic Server 、Sun 公司的 iPlant 等应用服务器提供。EJB 容器除了为EJB 提供事务处理、目录服务、持久性管理和安全性服务外,还负责EJB的部署、发布和生命周期管理。3平台标准服务服务是组件和容器之间,以及容器和J2EE 服务器之间
14、的接口,在实现层面上它就是一系列 API 和协议。 J2EE 平台定义了一组标准的服务,其中有些服务是由J2SE 提供的, 有些则是 J2EE 对 Java的扩展。(1) 目录服务 JNDI (Java Name and Directory )API 为应用程序提供了一个统一的接口来完成标准的目录操作,由于JNDI 是独立于目录协议的,应用程序可以用它访问各种目录服务,如LDAP 、NDS、DNS 等。(2) 数据访问 JDBC(Java Database Connectivity) API 为访问不同类型的数据库提供了统一的途径, 屏蔽了不同数据库的细节,具有平台无关性。J2EE 平台除了要
15、求核心的JDBC API (包含在J2SE 中)外,还要求扩展的JDBC API 2.0,它支持行集、连接池和分布式的事务处理。(3) 事务处理JTA(Java Transaction Architecture )它定义了一组标准的接口,为应用系统提供可靠的事务处理支持。JTS(Java Transaction Service)是 CORBA OTS 事务监控的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 岳福香 :J2EE
16、 与.NET 技术架构的比较4 Java 实现。 JTS 规定了事务管理器的实现方式,该事务管理器在高层支持JTA 标准,在底层实现了 OMG OTS 规范的 Java映射。(4) 消息服务 JMS( Java Message Service)它是一组用于和面向消息的中间件相互通信的 API,它既支持点对点的消息通信,也支持发布 /订阅式的消息通信。电子邮件JavaMail API允许在应用程序中以独立于平台、独立于协议的方式收发电子邮件。JAF(JavaBeans Activation Framework )负责处理MIME 编码, JavaMail 利用 JAF 来处理 MIME 编码的邮
17、件附件。(5) CORBA 兼容接口RMI(远程方法调用)是在分布式对象间通信的Java 本地方法,它使应用程序调用远程方法像调用本地方法一样,不需要考虑所调用对象的位置。RMI-IIOP是 RMI 的扩展,是符合 CORBA 标准的对象通信协议,也是 J2EE 默认的组件通信协议。Java IDL 允许 J2EE 应用组件通过IIOP 协议访问外部的CORBA 对象。(6) 安全服务JAAS(Java Authentication and Authorization Service )它用两个步骤实现安全性:认证,即由用户提供认证信息(如用户名和密码)来获得系统认证,这一过程又称之为登录;授
18、权,在被确认为合法用户后,系统根据用户的角色授予其相应的权限。J2EE的授权是基于安全角色的概念,一个安全角色是一个拥有相同权限的逻辑组。J2EE 的安全角色由应用组件提供商来定义。4对 WEB 服务的支持Sun 提供了一套API 及其实现WSDP 作为对 J2EE 的扩展。在WSDP 中,JAXP 用来解析 XML 文档 ;JAXR 向 UDDI 服务器注册Web Services;JTX/RPC 用基于 XML 的协议(如SOAP)来发送和接收XML 文档; JWSDL 处理 WSDL 文档。J2EE 1.4 的设计目标就是Web 服务, 其中新加入了像JAX-RPC SAAJ 和 JAX
19、R 等 API,另外 EJB 2.1 里也增加了许多针对Web 服务设计的特性。5 多层应用模型从应用的角度来看,J2EE 为企业应用系统的开发提供了一种多层分布式企业应用模型。在 J2EE 中,应用逻辑按功能不同可以划分为不同类型的组件,各组件根据它们所在的层分布在不同的机器上,共同组成一个基于组件的分布式系统。如图 1 所示, J2EE 定义了一个典型的四层结构,分别是客户层、表示层(Web 层)、业务逻辑层和企业信息系统层。在应用开发时,J2EE 定义的四层模型可根据实际情况灵活运用。由于除Applet 外,其他的组件都可以访问数据库、EJB 组件和企业信息系统,因此通过不同层的取舍及组
20、合,可以衍生出许多应用软件开发模型,如基于Web 的四层模型、基于桌面应用的三层模型(不包括 Web 层) 、B2B 模型(不包括客户层)等。如果应用系统比较简单,一般不用EJB 作为逻辑层,而直接用Web 组件来实现商业逻辑和数据访问,毕竟EJB 的开发和部署费用还相当高。二、.NET 简介.NET 来自于微软,是一套全能的框架平台,支持C+、C#、J+、VB、ASP 等语言,能够解决C/S、B/S 和单机等结构的软件开发需求。.NET 平台将这些语言编译成CLR 语言,使它们可以无差别的运行在.NET Framework 上,是 2000 年以后微软最为重要的软件开发套件产品。.NET 的
21、绝大部分是微软Windows DNA(Distributed Network Architecture)的重写, DNA是微软以前开发企业应用程序的平台。Windows DNA 中包括了许多已经被证实的技术,新名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 岳福香 :J2EE 与.NET 技术架构的比较5 的.NET 框架取代了这些技术,并包含了Web 服务层和改良的语言支持。图2 是.NET 开发平台的体系结构。图 2 .N
22、ET 体系结构图1 NET 框架内核.NET 框架实现了语言开发、代码编译、组件配置、程序运行和对象交互等各个层面的功能,为Web 服务及普通应用程序提供了一个托管、安全和高效的执行环境。所有在.NET平台上创建的应用程序运行都需要两个核心模块:Common Language Runtime (CLR,通用语言运行时)和.NET Framework 类库。() CLR .NET 的虚拟机CLR 是一个软件引擎,用来加载应用程序,确认它们可以没有错误地运行,并进行相应的安全许可验证,执行应用程序, 然后将被清除。 它为 .NET应用程序提供了一个托管的代码执行环境,托管意味着将原来由程序员或操作
23、系统做的工作剥离出来交由CLR 来完成,从而使程序运行获得更高的安全性和稳定性。这些工作包括内存管理、即时编译、组件自描述、安全管理、代码验证以及其他一些系统服务。CLR 提供一个技术规范, 无论程序使用什么语言编写,只要能编译成中间语言,就可以在它的支持下运行,这样 .NET 应用程序就可以独立于语言。CLR 还在应用程序运行环境中为基于组件的编程提供了直接支持,比如它支持属性、事件、对象、继承性、多态性和接口等组件编程特性。CLR 中的自动垃圾收集器负责.NET 应用程序运行时的内存分配、对象布局、内存释放等内存管理问题, 彻底解决了多年来困扰程序员的内存泄漏问题,大大增强了应用程序的健壮
24、性。即时编译器在运行时,将中间语言以调用对象的方法将单位动态编译成本地二进制代码。(2)类库NET Framework 类库向程序员提供软件组件,用来编写在CLR 控制下运行的代码,它们按照单一有序的分级组织提供了一个庞大的功能集,包括从文件系统到对XML功能的网访问的每一样功能。该类库为开发提供了三种基本编程模板:基于 ASP.NET 的 Web表单应用、基于ASP.NET 的 Web 服务应用和基于传统GUI 交互的 Windows 应用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
25、- 第 5 页,共 10 页 - - - - - - - - - 岳福香 :J2EE 与.NET 技术架构的比较6 .NET Framework 类库由一组广泛的、面向对象的、可被开发者用于任何编程语言的可重用类集合组成,它提供了几乎所有应用程序都需要的公共代码;在此之上是许多应用程序模板,这些模板为开发网络站点和网络服务提供特定的高级组件和服务,无论是传统的命令行程序,还是 Windows 图形界面程序, 亦或是面向下一代互联网分布式计算平台的ASP.NET或 Web 服务应用,与在Windows 和它的 SDK 中发送的代码库一样,.NET 框架类库将程序员从繁重的编程细节中解放出来,而专
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年JEE与.NET技术架构的比较 2022 JEE NET 技术 架构 比较
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内