岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> J2EE >> EJB >> Java正文
EJB概述:分布式多层体系结构
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 21:45:59

  互联网以及电子商务技术的普及和发展,推动着企业信息系统的构建和更新进程。为了缩短企业信息系统的设计和开发周期、降低构建企业信息系统的成本、在已有系统中对变化的商务规则迅速地做出反映,Sun公司制订了Java2 SDK Enterprise Edition(J2EE)规范,定义基于组件的方式设计、开发、组装和部署企业应用系统的各个组成部分。
  
  J2EE规范定义了分布式多层应用系统模型、组件重用策略、一致化的安全模型以及灵活的事务控制策略等,使得独立软件提供商(ISV)能够以比以前更快的速度向市场推出具有用户适应性的客户解决方案。另外,平台独立、基于组件技术的J2EE解决方案不受软件产品类型和不同应用环境的制约。
  
  分布式多层应用模型
  
  在实际构建的企业信息系统中,需要根据J2EE规范定义的分布式多层应用模型将不同性质和用途的组件部署到不同类型的应用服务器中。J2EE规范根据企业信息系统各个组成部分在功能上的区别,将整个应用系统划分为客户层、中间层(其中可包括WEB层、业务层)和企业信息系统层三层结构,如下图所示。各个应用层分别配置在不同类型的应用服务器中。
  
  图1 基于J2EE规范划分的企业应用系统逻辑层
  
  
  客户层
  
  客户层用于与企业信息系统的用户进行交互以及显示根据特定商务规则进行计算后的结果。基于J2EE规范的客户端可以是基于WEB的,也可以是不基于WEB的独立(Stand Alone)应用程序。
  
  在基于WEB的J2EE客户端应用中,用户在客户端启动浏览器后,从WEB服务器中下载WEB层中的静态HTML页面或由JSP或Servlets动态生成的HTML页面。
  
  在不基于WEB的J2EE客户端应用中,独立的客户端应用程序可以运行在一些基于网络的系统中,比如手持设备或汽车电话等。同样,这些独立的应用也可以运行在客户端的Java Applet中。这种类型的客户端应用程序可以在不经过WEB层的情况下直接访问部署在EJB容器(EJB Container)中的EJB组件。
  
  WEB层
  
  J2EE规范定义的WEB层由JSP页面、基于WEB的Java Applets以及用于动态生成HTML页面的Servlets构成。这些基本元素在组装过程中通过打包来创建WEB组件。运行在WEB层中的WEB组件依赖WEB容器来支持诸如响应客户请求以及查询EJB组件等功能。
  
  业务层
  
  在基于J2EE规范构建的企业信息系统中,将解决或满足特定业务领域商务规则的代码构建成为业务层中的Enterprise JavaBean(EJB)组件。EJB组件可以完成从客户端应用程序中接收数据、按照商务规则对数据进行处理、将处理结果发送到企业信息系统层进行存储、从存储系统中检索数据以及将数据发送回客户端等功能。
  
  部署和运行在业务层中的EJB组件依赖于EJB容器来管理诸如事务、生命期、状态转换、多线程及资源存储等。这样,由业务层和WEB层构成了多层分布式应用体系中的中间层。
  
  企业信息系统层
  
  在企业应用系统的逻辑层划分中,企业信息系统层通常包括企业资源规划(ERP)系统、大型机事务处理(Mainframe Transaction Processing)系统、关系数据库系统(RDMS)及其它在构建J2EE分布式应用系统时已有的企业信息管理软件。
  
  
  J2EE平台应用编程环境
  
  
  按照对基于J2EE规范的企业应用系统逻辑层的划分,通常将分布式应用系统的编程环境划分为如下四种类型:
  
  ◇EJB容器
  
  EJB容器用于提供EJB组件的开发、部署和运行环境。
  
  ◇WEB容器
  
  WEB组件用于提供应用系统的显示逻辑,而WEB容器则提供适合于Servlet和JSP开发、部署和运行的环境。
  
  ◇客户应用容器
  
  客户应用容器用于提供分布式应用系统的客户端运行环境,其本质上是J2SE。
  
  ◇Applet容器
  
  提供适合于Java Applet运行的浏览器运行环境。
  
  
  Enterprise JavaBean规范的基本特征
  
  
  在J2EE规范将企业应用系统划分的各逻辑层中,将封装商务规则的EJB组件部署在业务层中,用于根据客户端的服务请求进行业务数据的处理。EJB组件是基于分布式事务处理的企业级应用程序组件,其中包含处理业务数据的应用逻辑以及客户端调用EJB组件的商务方法获取服务的客户端接口。当一个遵循EJB规范开发的第三方EJB组件被集成到一个应用系统中时,不需要更改其实现代码或者重新编译。
  
  EJB组件类型
  
  在EJB2.0规范中定义了三种类型的组件:会话组件(Session Bean)、实体组件(Entity Bean)和消息驱动组件(Message-Driven Bean)。
  
  会话组件和实体组件的定义由Home接口、Remote接口和组件类构成。在EJB组件的Home接口中定义了创建、删除和定位EJB组件的方法;EJB组件的Remote接口用于定义组件能够提供的商务方法;EJB组件类则用于实现Home接口中定义的组件生命期方法以及Remote接口中定义的商务方法。
  
  ◇会话组件
  
  会话组件代表EJB组件与客户程序的一个短暂交互过程,其完成的功能可能是执行数据库读写操作或者是进行简单的数学计算等。
  
  会话组件可以看成是瞬态的,其生命周期相对短暂,只有在客户程序与会话组件保持联系的过程中会话组件才具有生命力。如果客户程序结束会话过程,EJB容器将会话组件对象实例移出EJB容器中的组件实例池,该会话组件实例将失去生命力。另外,如果在客户程序与会话组件交互过程中EJB容器崩溃,那么用户必须重新创建一个新的会话组件对象实例来继续会话过程。
  
  按照EJB2.0规范的定义,会话组件分为有状态(Stateful)和无状态(Stateless)两种类型。有状态会话组件中包含表示客户程序访问和更新数据的会话状态参数。会话状态参数用于记录会话组件引用的对象状态而不是在关系数据库中存储的数据资源。相对而言,在无状态会话组件中没有用于记录与特定客户程序相关联的状态参数,因此不能够记录客户程序的状态和保持客户程序在服务器端行为。
  
  ◇实体组件
  
  实体组件用于提供数据库中数据记录在EJB服务器中的对象类型视图。一个实体组件代表数据库表中一行数据记录。客户端应用程序对实体组件的访问等价于对EIS层中数据库的访问过程。在多客户应用的情况下,通过EJB容器的事务管理功能能够使多个客户进程以共享的方式访问同一个实体组件,进而保持组件对应数据库记录的一致性和完整性。实体组件的状态是持续的,只要数据库中的数据记录存在,实体组件创建后就一直存在于EJB容器中,即使EJB服务器崩溃,实体组件同样具有生命力。
  与数据库记录在数据库表中的存在方式类似,在实体组件中定义了用于标识实体组件的主键(Primary Key)对象。该主键与标识数据库表记录的主键相对应,代表同一数据库记录的实体组件的主键值是相同的。客户端应用程序能够利用主键来定位EJB容器中的实体组件,进而定位实体组件表示的数据库记录。
  
  按照实体组件的生命期管理方式,EJB规范将实体组件划分为组件管理持久性(Bean-Managed Persistence,BMP)和容器管理持久性(Container-Manage

[1] [2] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    传世私服 传奇世界私服 天龙八部私服 bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365