帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
J2EE全面简介
作者:佚名 发布时间:2005-04-02 来源:不详
 
 本文从五个方面对J2EE
典型的四层模型,和它的框
对J2EE中的服务,组件,层
J2EE有一个更清晰的认识。
进行了比较全面的介绍。从J2EE
架结构,最后是J2EE十三种核心
次,容器,API都做了比较详细

的概念说起,到它的优势,到J2EE
技术的一个简介。本文分门别类的
的介绍,相信看完此文,读者会对

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


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

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

  二. J2EE的优势                                                         
  J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:     

  保留现存的IT资产: 由于企业必须适
资,而不是重新制定全盘方案就变得很重
的)方式建立在已有系统之上的服务器端
户原有的投资,如一些公司使用的BEA Tu
VisiBroker 以及Netscape Application
界支持和一些重要的´企业计算&ac
户提供了不用废弃已有投资,进入可移植
乎能够在任何操作系统和硬件配置上运行
应新的商业需求,利用已有的企业信息系统方面的投
要。这样,一个以渐进的(而不是激进的,全盘否定
平台机制是公司所需求的。J2EE架构可以充分利用用
xedo、IBM CICS, IBM Encina,、Inprise
Server。这之所以成为可能是因为J2EE拥有广泛的业
ute;领域供应商的参与。每一个供应商都对现有的客
的J2EE领域的升级途径。由于基于J2EE平台的产品几
,现有的操作系统和硬件也能被保留使用。
  高效的开发: J2EE允许
。这样开发人员可以集中精
应商提供以下这些复杂的中
公司把一些通用的、很繁琐的服
力在如何创建商业逻辑上,相应
间件服务:
务端任务交给中间件供应商去完成
地缩短了开发时间。高级中间件供

  状态管理服务 -- 让开发人员写更少
成程序开发。
的代码,不用关心如何管理状态,这样能够更快地完

  持续性服务 -- 让开发
巧,与数据库无关的应用程
人员不用对数据访问逻辑进行编
序,这种应用程序更易于开发与
码就能编写应用程序,能生成更轻
维护。
  分布式共享数据对象CA
伸缩性。
CHE服务 -- 让开发人员编制高

性能的系统,极大提高整体部署的

  支持异构环境: J2EE能
赖任何特定操作系统、中间
到各种平台。这在典型的异
兼容的第三方的现成的组件
用。
够开发部署在异构环境中的可移
件、硬件。因此设计合理的基于
构企业计算环境中是十分关键的
,把他们部署到异构环境中,节

植程序。基于J2EE的应用程序不依
J2EE的程序只需开发一次就可部署
。J2EE标准也允许客户订购与J2EE
省了由自己制订整个方案所需的费

  可伸缩性: 企业必须要选择一种服务
那些在他们系统上进行商业运作的大批新
系统上。例如可被部署到高端UNIX与大型
这是NT服务器所望尘莫及的)J2EE领域的
中的瓶颈,允许多台服务器集成部署。这
满足未来商业应用的需要。
器端平台,这种平台应能提供极佳的可伸缩性去满足
客户。基于J2EE平台的应用程序可被部署到各种操作
机系统,这种系统单机可支持64至256个处理器。(
供应商提供了更为广泛的负载平衡策略。能消除系统
种部署可达数千个处理器,实现可高度伸缩的系统,

  稳定的可用性: 一个服务器端平台必
因为INTERNET是全球化的、无处不在的,
外停机,那会有灾难性后果。J2EE部署到
J2EE部署在WINDOWS环境中,客户也可选
OS/390。最健壮的操作系统可达到99.999
强商业系统理想的选择。
须能全天候运转以满足公司客户、合作伙伴的需要。
即使在夜间按计划停机也可能造成严重损失。若是意
可靠的操作环境中,他们支持长期的可用性。一些
择健壮性能更好的操作系统如Sun Solaris、IBM
%的可用性或每年只需5分钟停机时间。这是实时性很


  三. J2EE 的四层模型                                                   
  J2EE使用多层的分布式
在的层分布在不同的机器上
(client/server)的弊端,
中,第一次部署的时候比较
专有的协议??通常是某种数
的多层企业级应用模型将两
的每种服务提供一个独立的
应用模型,应用逻辑按功能划分
。事实上,sun设计J2EE的初衷
在传统模式中,客户端担当了过
容易,但难于升级或改进,可伸
据库协议。它使得重用业务逻辑
层化模型中的不同层面切分成许
层,以下是 J2EE 典型的四层结
为组件,各个应用组件根据他们所
正是为了解决两层模式
多的角色而显得臃肿,在这种模式
展性也不理想,而且经常基于某种
和界面逻辑非常困难。现在J2EE
多层。一个多层化应用能够为不同
构:

  运行在客户端机器上的客户层组件                                               
  运行在J2EE服务器上的Web层组件                                         
  运行在J2EE服务器上的业务逻辑层组件                                       
  运行在EIS服务器上的
企业信息系统(Enterprise info
rmation system)层软件

  J2EE应用程序组件                                                         
  J2EE应用程序是由组件构成的.J2EE
和文件组装成J2EE应用程序,并与其他组
组件是具有独立功能的软件单元,它们通过相关的类
件交互。J2EE说明书中定义了以下的J2EE组件:

  应用客户端程序和applets是客户层组件.                                 

  Java Servlet和JavaSe
rver Pages(JSP)是web层组件.
  Enterprise JavaBeans(EJB)是业务层组件.             

  客户层组件                                                                   
  J2EE应用程序可以是基于web方式的,也可以是基于传统方式的.             

  web 层组件J2EE web层
和Applets不算是web层组件
组件可以是JSP 页面或Servlets

.按照J2EE规范,静态的HTML页面


  正如下图所示的客户层那样,web层
输入发送给运行在业务层上的enterprise
可能包含某些 JavaBean 对象来处理用户输入,并把
bean 来进行处理。

  业务层组件                                                                   
  业务层代码的逻辑用来
的enterprise bean 进行处
据,进行处理(如果必要的
满足银行,零售,金融等特殊商
理. 下图表明了一个enterprise
话), 并发送到EIS 层储存的,
务领域的需要,由运行在业务层上
bean 是如何从客户端程序接收数
这个过程也可以逆向进行。

  有三种企业级的bean: 会话(session
(message-driven) beans. 会话bean 表
, 会话bean 和相关数据就会消失. 相反,
户端程序中止或服务器关闭时, 就会有潜
bean 结合了会话bean 和 JMS的消息监听
) beans, 实体(entity) beans, 和 消息驱动
示与客户端程序的临时交互. 当客户端程序执行完后
实体bean 表示数据库的表中一行永久的记录. 当客
在的服务保证实体bean 的数据得以保存.消息驱动
器的特性, 允许一个业务层组件异步接收JMS 消息.


  企业信息系统层                                                               
  企业信息系统层处理企
大型机事务处理, 数据库系
库连接需要访问企业信息系
业信息系统软件包括企业基础建
统,和其它的遗留信息系统. 例

设系统例如企业资源计划 (ERP),
如,J2EE 应用组件可能为了数据


  四. J2EE 的结构                                                       
  这种基于组件,具有平
辑被封装成可复用的组件,
因为你不用自己开发这种服
台无关性的J2EE 结构使得J2EE
并且J2EE 服务器以容器的形式
务, 所以你可以集中精力解决手
程序的编写十分简单,因为业务逻
为所有的组件类型提供后台服务.
头的业务问题.

  容器和服务                                                                   
  容器设置定制了J2EE服务器所提供得
Naming and Directory Interface)寻址,
内在支持,包括安全,事务管理,JNDI(Java
远程连接等服务,以下列出最重要的几种服务:

  J2EE安全(Security)模
用户才能访问系统资源. 每
你应在enterprise bean的
你不必编写加强安全性的规
型可以让你配置 web 组件或ent
一客户属于一个特别的角色,而
布置描述中声明角色和可被激活
则。
erprise bean ,这样只有被授权的
每个角色只允许激活特定的方法。
的方法。由于这种声明性的方法,

  J2EE 事务管理(Transaction Manag
关系,这样一个事务中的所有方法被当成
bean中的方法,容器介入一管理事务。因
的边界进行编码。要求控制分布式事务的
enterprise bean的事务属性,而不用编
enterprise bean的事务。
ement)模型让你指定组成一个事务中所有方法间的
一个单一的单元. 当客户端激活一个enterprise
有容器管理事务,在enterprise bean中不必对事务
代码会非常复杂。你只需在布置描述文件中声明
写并调试复杂的代码。容器将读此文件并为你处理此

  JNDI 寻址(JNDI Lookup)服务向企业
样应用程序组件可以访问名字和目录服务
内的多重名字和目录服务提供了一个统一的接口,这
.
  J2EE远程连接(Remote
低层交互. 当一个enterpri
于同一虚拟机上一样.
Client Connectivity)模型管
se bean创建后, 一个客户端可

理客户端和enterprise bean间的
以调用它的方法就象它和客户端位

  生存周期管理(Life C
enterprise bean在其生存
实例池与活动状态中移动他
create及remove方法,容器
ycle Management)模型管理ent
周期中将会历经几种状态。容器
,而最终将其从容器中移除。即
也将会在后台执行这些任务。
erprise bean的创建和移除,一个
创建enterprise bean,并在可用
使可以调用enterprise bean的

  数据库连接池(Database Connectio
连接是一项耗时的工作,而且连接数非常
enterprise bean可从池中迅速获取连接
n Pooling)模型是一个有价值的资源。获取数据库
有限。容器通过管理连接池来缓和这些问题。
。在bean释放连接之可为其他bean使用。

  容器类型                                                                     
  J2EE应用组件可以安装部署到以下几种容器中去:                             

  EJB 容器管理所有J2EE 应用程序中
器运行在J2EE 服务器上.
企业级bean 的执行. enterprise bean 和它们的容

  Web 容器管理所有J2EE
器运行在J2EE 服务器上.
应用程序中JSP页面和Servlet

组件的执行. Web 组件和它们的容

  应用程序客户端容器管
端和它们的容器运行在J2EE
理所有J2EE应用程序中应用程序
服务器上.
客户端组件的执行. 应用程序客户

  Applet 容器是运行在
客户端机器上的web浏览器和 Ja
va 插件的结合.

  五. J2EE的核心API与组件                                             
  J2EE平台由一整套服务
Web的多层应用提供了功能
这里只能进行简单的描述):
(Services)、应用程序接口(
支持,下面对J2EE中的13种技术

APIs)和协议构成,它对开发基于
规范进行简单的描述(限于篇幅,


  JDBC(Java Database Connectivity):           
  JDBC API为访问不同的
一些细节问题,另外,JDCB
数据库提供了一种统一的途径,
对数据库的访问也具有平台无关
象ODBC一样,JDBC对开发者屏蔽了
性。
  JNDI(Java Name and Directory Int
erface):
  JNDI API被用于执行名
DNS和LDAP,本地文件系统
字和目录服务。它提供了一致的
,或应用服务器中的对象。
模型来存取和操作企业级的资源如

  EJB(Enterprise JavaBean):                           
  J2EE技术之所以赢得某
施分布式商务逻辑,由此很
规范定义了EJB组件在何时
目录服务、事务管理、安全
现J2EE的唯一途径。正是由
到同样的目的。
体广泛重视的原因之一就是EJB
显著地简化了具有可伸缩性和高
如何与它们的容器进行交互作用
性、资源缓冲池以及容错性。但
于J2EE的开放性,使得有的厂商

。它们提供了一个框架来开发和实
度复杂的企业级应用的开发。EJB
。容器负责提供公用的服务,例如
这里值得注意的是,EJB并不是实
能够以一种和EJB平行的方式来达

  RMI(Remote Method Invoke):                         
  正如其名字所表示的那样,RMI协议
和服务器端传递数据。RMI是一种被EJB使
调用远程对象上方法。它使用了序列化方式在客户端
用的更底层的协议。
  Java IDL/CORBA:                                               
  在Java IDL的支持下,
象并使之可在CORBA ORB中
CORBA对象的客户。后一种
和旧的系统相集成。
开发人员可以将Java和CORBA集
展开, 或者他们还可以创建Java
方法提供了另外一种途径,通过

成在一起。 他们可以创建Java对
类并作为和其它ORB一起展开的
它Java可以被用于将你的新的应用

  JSP(Java Server Pages):                               
  JSP页面由HTML代码和嵌入其中的Jav
这些Java代码进行处理,然后将生成的HT
a代码所组成。服务器在页面被客户端所请求以后对
ML页面返回给客户端的浏览器。
  Java Servlet:                                                   
  Servlet是一种小型的J
当被请求时开始执行,这和
实现的方式不同。JSP通常
写成并且生成HTML。
ava程序,它扩展了Web服务器的
CGI Perl脚本很相似。Servlet
是大多数HTML代码中嵌入少量的

功能。作为一种服务器端的应用,
提供的功能大多与JSP类似,不过
Java代码,而servlets全部由Java

  XML(Extensible Markup Language):             
  XML是一种可以用来定
XML的发展和Java是相互独
Java和XML的组合,您可以
义其它标记语言的语言。它被用
立的,但是,它和Java具有的相
得到一个完美的具有平台独立性
来在不同的商务过程中共享数据。
同目标正是平台独立性。通过将
的解决方案。
  JMS(Java Message Service):                         
  MS是用于和面向消息的中间件相互通
支持发布/订阅(publish/subscribe)类型
递,事务型消息的传递,一致性消息和具
对您的应用与旧的后台系统相集成。
信的应用程序接口(API)。它既支持点对点的域,有
的域,并且提供对下列类型的支持:经认可的消息传
有持久性的订阅者支持。JMS还提供了另一种方式来

  JTA(Java Transaction Architecture):       
  JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。             
  JTS(Java Transaction Service):                 
  JTS是CORBA OTS事务监
器是在高层支持Java Trans
specification的Java映像
信资源管理器提供了事务服
控的基本的实现。JTS规定了事
action API (JTA)规范,并且在
。JTS事务管理器为应用服务器
务。
务管理器的实现方式。该事务管理
较底层实现OMG OTS
、资源管理器、独立的应用以及通

  JavaMail:                                                           
  JavaMail是用于存取邮件服务器的AP
SMTP服务器,也支持IMAP服务器。
I,它提供了一套邮件服务器的抽象类。不仅支持

  JTA(JavaBeans Activation Framework):     
  JavaMail利用JAF来处理MIME编码的
者转换自Java对象。大多数应用都可以不
邮件附件。MIME的字节流可以被转换成Java对象,或
需要直接使用JAF。

  参考资料:                                                                   

  《Develop n-tier app
lication using J2EE》- Steve
n Gould
  《The Business Benefits of EJB a

nd J2EE Technologies over COM+ and Windows DNA

  《The J2EE Tutorial》chapter ove
rview - Monica Pawlan
  本文所用图片由《The J2EE Tutorial》中的英文图片修改而成.   

  关于作者                                                                     
  刘湛,武汉大学信息与计算科学系学
论坛版主,现致力于 J2EE 平台上的 eCR
士,熟悉 Java 语言和 J2EE 思想,国内多个 Java
M 套件开发。你可以通过jeru@163.net与他联系!
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·对J2EE项目的一些体会  (2005-04-02)
 ·J2EE的13种核心技术  (2005-04-02)
 ·J2EE的异步消息机制  (2005-04-02)
 ·J2EE平台架构上开发CRM的技术过程  (2005-04-02)
 ·浅析J2EE与.NET平台优劣  (2005-04-02)
 ·简析J2EE应用程序数据库类设计模  (2005-04-02)
 ·从商业角度分析J2EE与WINDOWS DN  (2005-04-02)
 ·如何搭建J2EE开发环境  (2005-04-02)
 ·J2EE项目中如何组建开发团队  (2005-04-02)
 ·走向J2EE,漫长的道路  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统