J2EE技术浅析

时间:2022-07-21 07:13:42

J2EE技术浅析

摘要:J2EE平台提供了一个多层结构的分布式应用程序模型,该模型具有重要组件的能力,基于扩展标记语言(XML)的数据交换,最适合于其商业和所需技术的产品组件,因此,有必要把J2EE架构和核心技术简要阐述,以提高学习者的编程能力与企业人员的业务水平。

关键词:J2EE WEB服务 EJB

一、J2EE介绍

J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。

目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 P1atform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。

1.J2EE的核心概述

J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够僚企业开发者大幅缩短投放市场时间的体系结构。

2.J2EE中间件

J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprse JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

二、J2EE架构概述

1.B/S多层体系结构

长久以来,C/S(客户端朋艮务器)两层结构在软件开发中广泛应用,给人们带来相当的灵活性。近年来网络应用的快速普及,以及业务处理要求的不断提高,C/S模式逐渐暴露出以下架构上的缺陷。

(1)对客户端软件的维护问题.

(2)网络传输数据的准确性和稳定性问题.

(3)高负荷处理和平衡负载问题等。

2.J2EE三层架构

随着网络应用技术的成熟,针对这一系列的问题,基于多层框架(三层或以上)的B/S(Browser/Server)结构应运而生。典型情况下,由表示层、业务逻辑层和数据层各自独立组成所谓的“三层架构”。其中,数据层又叫企业信息系统层、集成层或者持久化层,本书从技术角度采用持久化层的称谓。J2EE架构设想的分布式多层体系结构如图1所示。

图1多层体系结构

该体系的核心是EJB组件,EJB是J2EE分布式应用的核心,但是一般的Web应用并不要求实现分布式应用,因此可以使用其他途径,如Hibernate、JDO等对象关系映射(ORM,Object―Relation Mapping)工具,或直接使用JDBCAPl实现数据持久化。

(1)客户端只需符合要求的通用浏览器(比如某系统要求IE5.5以上版本),就可以使用所有服务,节省了客户端软件安装和维护成本,从而有效降低部署费用。

(2)客户端(其实是表示层组件,这里只为和C/S模式对比理解)不再直接访问数据库,而通过中间业务逻辑层实现服务,从而可以方便地进行数据库和业务逻辑组件进化,各层次组件之间可以独立变化。

(3)多层结构可以方便地管理外部资源,各组件之间通过服务接口互相协作,可以使用各种优化技术提高资源和服务的利用率,典型的应用是资源池优化技术;

(4)错误和性能降低局部化,单独组件模块的错误和超载被最大限度的限制在本模块内部,维持整体服务的可用性。

三、J2EE实现构架

3目前,在Java Web应用中的主流框架是Sun的J2EE架构,本章在业务逻辑层一节中探讨了J2EE多层分布式应用模型。J2EE对持久层框架的实现提供了基本的实现架构如图2基本架构。可以看到,持久性框架是一组软件服务,将应用与其使用和操作的数据源分离,隐藏访问这些数据源的APl。这些APl组件包括JDBC、JDO以及实体Bean等。框架通过统一的DAO组件封装这些具体的访问逻辑。在各层次之间通过实现Serializable接口的可序列化对象(值对象或者数据传输对象等),传递对象化数据.本书的主题Struts框架位于顶端的表示层,它接受用户的输入和操作,传递请求和数据给业务逻辑层,接收返回的结果呈现给用户界面。

图2 J2EE实现构架

1.EJB概述

EJB(Enterprise JavaBean,企业级JavaBean)组件体系是J2EE框架的核心组件之一,最初被设计为支持分布式对象计算,因此在EJB2.0以前的版本中EJB组件只有远程接口,直到EJB2.0才因为实际应用的需求,加入了本地接口。业界对EJB的评价主要源于其复杂程度,EJB并不是一个好学好用的组件。

(1)使用EJB的正当理由:

a提供应用层组件的集群;

b提供与CORBA客户端的互操作:

c消费JMS异步消息。

(2)可以考虑使用EJB的理由

a提供多线程解决方案;

b基于角色的访问权限控制;

c熟悉EJB架构。

2.EJB类型

(1)实体Bean

实体Bean是J2EE核心的持久化组件,代表存储在外部介质中的持久化对象或者企业应用系统资源,它代表实体”,必须实现javax.ejb.EntityBean接口。简单地说,实体Bean相当于数据库信息,但二者并不等价。因此可以理解为――个对象关系映射,不过这个对象关系映射身后有整个J2EE体系的支撑。

EJB2.0中,实体Bean分为BMP和CMP。

BMP是Bean--managed persistent'entity bean,中文就是Bean管理持久性实体Bean,它需要开发者自己编写符合EJB编程规范的实现代码,实现各种业务方法和管理方法,因此Bean-managed就是Bean接口自己编写代码实现持久性管理。

CMP是Container--managed persistent entity bean,中文容器管理持久性实体Bean,顾名思义就是开发者不用再自己编写代码来实现持久性管理,借助集成开发工具甚至基本不用写代码。CMP是EJB2.0增加的类型,有效地降低了系统开发的复杂程度,但是在性能上比编写良好的BMP会稍有所下降。

(2)会话Bean

会话Bean分为有状态会话Bean(Stateless Session Bean)和无状态会话Bean(Staeless Session Bean)两种,实现javax.ejb.SessionBean接口。在应用中被用来完成一些业务操作,因此它代表的是“动作”。不同的是,在有状态会话Bean中可以保存状态,而无状态会话Bean不能。因此,同一个无状态会话Bean的实例之间完全相同,只能用来执行通用操作。而有状态会话Bean的实例各自带有不同的属性值,可以用来维持客户会话,典型的应用是购物车。有状态会话Bean的作用在一定程度上类似JSP开发中常用的Session。

(3)消息驱动Bean

消息驱动Bean(MDB,Message Driven Bean)是EJB2.0增加的类型,用来实现异步消息传递和处理机制,是实现JMS(Java Message Service,Java消息服务)的基础。JMS提供了一组标准的Java APl实现消息递和处理。消息传递和处理有两种方式:队列模型和机遇主题的/订阅机制。

队列模型是将消息对象放到消息队列中,监听该队列的消息驱动Bean取出消息进行处理,类似手机短信的形式(短信是消息对象,手机短信信箱是消息队列,机主是消息驱动Bean实例)。

/订阅机制则将消息分发给所有订阅者,类似生活中的报刊订阅。

四、小结

J2EE是java的核心技术之一,是大型企业和高等院校计算机相关专业学生所掌握的核心技术之一,是Java Web程序员必须在一定程度上了解和掌握的知识。明白EJB的架构和类型,对科研人员更好的掌握其内涵和原理有重要的理论价值和现实意义。

参考文献

[1]李刚.轻量级Java EE企业应用实战.北京:电子工业出版社,2008.

[2]郑阿奇.J2EE应用实践教程.北京:电子工业出版社,2009.

[3]杨中科.J2EE开发全程实录(附光盘).北京:清华大学出版社,2007.

[4]蔡剑,景楠.Java Web应用开发.北京:清华大学出版社,2005.

[5],周峰,孙更新编著.J2EE经典案例设计与实现.北京:电子工业出版社,2007.

作者单位:

太原大学

(中北大学在读研究生)

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:西方人文主义精神探讨 下一篇:关于加强高校隐性思想政治教育的思考