Java企业应用系统框架的比较与选择_第1页
Java企业应用系统框架的比较与选择_第2页
Java企业应用系统框架的比较与选择_第3页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java企业应用系统框架的比较与选择内部编号:(YUUT-TBBYMMITI RRUY-UOOYDBUYI0128)Java 企业应用系统框架的比较与选择作者:来源:不详2006年10月22曰引言EJB的体系结构是的基础和核心,J2EE定义了整个的应用开发体系结构和一 个部署环境,基于EJB的框架一度成为人们开发企业应用的首选。随着Java开源 项目阵营的发展壮大,一些基于POJOs (Plan Old Java Objects)的开源框架被越 来越广泛地引入到Java企业应用的开发中来。根据复杂程度人们习惯把前者称为 重量级框架,把后者称为轻量级框架。Java企业应用框架一般被划分为三个层

2、次:表现层、业务逻辑组件层和持久层。本文主要对目前企业应用对应于这三个 层次的两种类型的流行框架进行了细节比较,最后针对Java企业应用的系统框架 选择提出作者的观点。两种类型框架概述1、基于EJB的重量级框架由于EJB容器能够很好的处理系统性能、事务机制、访问权限以及运算等问 题,基于EJB框架进行开发能保证企业应用平滑发展,而不是发展到一种规模就 重新更换一套软件系统,且可以保证开发人员将大部份精力集中在业务逻辑的开 发上。采用EJB框架开发的企业应用具有必须继承或依赖EJB容器的待点。EJB充 分考虑到了顶级大型项目的需求,使用它儿乎能解决企业级应用涉及到的所有问 题,相应的基于EJB框

3、架也是一个功能复杂的重量级框架。标准规定的EJB框架缺少设计且实现起来有些过于复杂。当前的新规范提出 的EJB的目标就是简化开发1,借鉴了一些基于POJO的思想,它相对于中两个 重要的变化分别是:一是使用了 Java5中的程序注释工具,注释取代了过多的XML 配置文件并且消除了严格组件模型需求;二是采用了基于Hibernate和TopLink 思想的0/R Mapping模型。的新规范中定义企业应用三个层次的标准实现为:表现层釆用JSF (Java Server Face) , JSF的开发流程的核心是事件驱动,组件和标签的封装程度非常 高,很多典型应用已经不需要开发者去处理httpo整个过程

4、是通过IoC(依赖注 入)2来实现的;业务组件层采用的Session Bean。允许开发者使用藕合松散的 组件来开发应用。这些组件通过白己发布的商业接口来耦合,不必像EJB规范定 义的那样一个Bean必须遵守的严格的组件模型,每一个EJB类必须从某一种抽象 类中继承,并为容器提供了回调的钩子;持久层采用实体Bean持久化模型,吸收 了 Hibernate的一些思想采用0/R Mapping模式,EJBQL也有许多重要的改变。2、基于POJOs的轻量级框架在基于POJOs轻量级框架上开发的应用程序无需依赖于EJB容器可独立运 行,对应于Java企业应用三个层次的轻量级框架技术分别都得到了一定的发

5、展, 这三个层次流行的框架如下:目前比较流彳亍的开源表现层框架主要有Struts和Tapestryo Tapestry与 Struts应用框架不同的是,它是基于组件,而不是面向脚本语言(比如和 Velocity)的,组件是由一个定义文件(以XML的格式)、一个模板、一个JAVA类构成的;业务组件层轻量级解决方案也不少,包括Springs Hivemind等。但是目 前使用最为广泛的还是Spring框架,Spring框架是一个基于IoC和A0P (面向方 面编程)3的构架。采用IoC使得它可以很容易的实现bean的装配,提供了简 洁的A0P并据此实现事务管理等,但是它不具备处理应用分布式的能力。

6、Spring 的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。这 样的对象可以在不同J2EE环境(或EJB)、独立应用程序、测试环境之间重 用;持久层框主要有Hibernate和各种JD0产品,以及iBATISo Hibernate是一* 个开源的0/R Mapping框架,它对JDBC进行了非常轻量级的对象封装,可以应用 在任何使用JDBC的场合,可以在应用EJB的J2EE框架中取代CMP,完成数据持久 化的重任。iBATIS是一个简易的SQL Map工具,它是将手工编写的在xml配置文 件中的SQL语句映射成Java对象。对应于三个层次的框架比较1、表现层框架比较MV

7、C设计模式不再是某一种表现层框架的特点而是这儿种框架的共性。Struts 框架由于出现时间早,所以使用相对广泛,它的非常活跃,很容易找到很多现成 的开源功能标签以供使用以及样例程序可供参考。但是它的组件在页面中显示的 粗粒度,以及框架类的限制在很多情况下会表现得过于死板,给表示层的开发会 带来一些额外的代码开销。JSF在很大程度上类似Struts,只是JSF的组件概念 没有象Struts那样必须继承ActionForm的限制,JSF在事件粒度上要比Struts 细腻。JSF有的另外一个优势就是其身后有Sun公司和其他的一些大公司的支持。 Tapestry是一个完全组件的框架,Tapestry的

8、组件可以被套嵌并包裹其它组件,因此可以组合形成一个更大的组件或逻辑页面。组件的行为模式为Web页面编程 提供了很大的方便,事件处理也方便很多。所以,如果做一个对页面要求灵活度 相当高的系统就可以考虑选用Tapestry。表1三种框架的表现层功能技术细节比较2、业务组件层框架比较EJB框架有些过于复杂了,有如下缺点: EJB模型需要建立许多组件接口和实现许多不必要的回滚方法; EJB的部署描述复杂而容易出错; 开发人员不能脱离EJB容器测试。对于以上缺点JCP ( CommunityProcess)制订的框架做了相应的改进,该框架为所有主要的厂商支持。和Spring 两个框架结构都有一个共同核心

9、设计理念:将中间件服务传递给耦合松散的 POJOso框架与应用服务器高度整合,服务整合代码也包装在一个标准接口后面。EJB框架一方面有成熟的EJB容器支持,基于EJB框架的企业应用性能优良;另一方 面EJB容器设计因为考虑了多方面的功能,所以在其内核上总是会显得臃肿,这 也是一种重量表现。不需要的东西存在肯定会影响效率,EJB不能根据项目需求对 EJB整体包括EJB容器进行可配置式的切割。Spring框架处于应用服务器和服务库的上方,服务整合的代码属于框架,并 暴露于应用开发者。它与应用服务器整合的能力相对要弱。但是Spring框架模块 的可分离配置体现了它优于的灵活性。表2 EJB和Spri

10、ng框架的具体细节比较3、持久层框架比较容器管理持久性(CMP)是对EJB中Entity Bean进行持久性管理的方式。 持久性模型过于复杂并且存在基础缺陷3。持久层针对的缺陷做了相应改进,采 用与Hibernate类似的机制。Hibernate相对而言其基本优势如下:©Hibernate使用Java反射机制而不是字节码增强程序来实现透明性; Hibernate的使用简单; 映射的灵活性很出色,它支持各种关系数据库,从一对一到多对多的各种 复杂关系。Hibernate也有一些缺点,它限制所使用的对象模型(例如,一个持 久性类不能映射到多个表)。使用i BAT IS提供的0/R Map

11、ping机制,对业务逻辑实现人员而言,面对的是 纯粹的Java对象,这一层与通过Hibernate实现0/R Mapping而言基本一致, 而对于具体的数据操作,Hibernate会自动生成SQL语句,而iBATIS则要求开发 者编写具体的SQL语句。相对Hibernate等“全自动” 0/R Mapping机制而言, iBATIS以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的 白由空间。作为“全自动” ORM实现的一种有益补充,iBATIS的出现显得别具意 义。企业框架选择设计和性能是实际框架选择的两个基本点,善于平衡才是框架选择的主要宗 旨。轻量级框架和重量级框架解决问

12、题的侧重点是不同的。轻量级框架侧重于减小开发的复杂度,相应的它的处理能力便有所减弱(如 事务功能弱、不具备处理能力),比较适用于开发中小型企业应用。采用轻量框 架一方面因为尽可能的采用基于POJOs的方法进行开发,使应用不依赖于任何容 器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源提供 了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于 项目的快速开发。例如目前Tomcat+Spring+Hibernate已经成为许多开发者开发 中小型企业应用偏爱的一种架构选择。随着可供选择的框架层出不穷,开发者可 以根据需要对应于企业应用三个层次的轻量级框架选择,本文

13、第2节的内容可供 选择参考。而作为重量级框架EJB框架则强调高可伸缩性,适合与开发大型企业应用。 在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由应用程 序容器或服务器来处理,且EJB容器通过减少数据库访问次数以及分布式处理等 方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。轻量级框架的产生并非是对重量级框架的否定,找至在某种程度上可以说二 者是互补的。轻量级框架在努力发展以开发具有更强大,功能更完备的企业应 用;而新的EJB规范则在努力简化J2EE的使用以使得EJB不仅仅是擅长处理大型 企业系统,也利用开发中小型系统,这也是EJB轻量化的一种努力。对于大型企 业应用以及将来可能涉及到能力扩展的中小型应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论