欢迎光临
我们一直在努力

EJB核心技术及其应用(转自china-pub,不错的文章)-JSP教程,J2EE/EJB/服务器

建站超值云服务器,限时71元/月

ejb核心技术及其应用  

作者:周波 

文章摘要:
  ejb的全称是enterprise java bean。是java中的商业应用组件技术。ejb结构中的角色 ejb 组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件…  

一、ejb技术简介

  ejb的全称是enterprise java bean。是java中的商业应用组件技术。ejb结构中的角色 ejb 组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件。
  一个完整的基于ejb的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循sun公司提供的ejb规范,以保证彼此之间的兼容性。这六个角色分别是ejb组件开发者(enterprise bean provider) 、应用组合者(application assembler)、部署者(deployer)、ejb 服务器提供者(ejb server provider)、ejb 容器提供者(ejb container provider)、系统管理员(system administrator):

二、ejb中各角色的分析

1、ejb组件开发者(enterprise bean provider)
  ejb组件开发者负责开发执行商业逻辑规则的ejb组件,开发出的ejb组件打包成ejb-jar文件。ejb组件开发者负责定义ejb的remote和home接口,编写执行商业逻辑的ejb class,提供部署ejb的部署文件(deployment descriptor)。部署文件包含ejb的名字,ejb用到的资源配置,如jdbc等。ejb组件开发者是典型的商业应用开发领域专家。
  ejb组件开发者不需要精通系统级的编程,因此,不需要知道一些系统级的处理细节,如事务、同步、安全、分布式计算等。

2、应用组合者(application assembler)
  应用组合者负责利用各种ejb组合一个完整的应用系统。应用组合者有时需要提供一些相关的程序,如在一个电子商务系统里,应用组合者需要提供jsp(java server page)程序。
应用组合者必须掌握所用的ejb的home和remote接口,但不需要知道这些接口的实现。

3、部署者(deployer)
  部署者负责将ejb-jar文件部署到用户的系统环境中。系统环境包含某种ejb server和ejb container。部署者必须保证所有由ejb组件开发者在部署文件中声明的资源可用,例如,部署者必须配置好ejb所需的数据库资源。
部署过程分两步:部署者首先利用ejb container提供的工具生成一些类和接口,使ejb container能够利用这些类和接口在运行状态管理ejb。 部署者安装ejb组件和其他在上一步生成的类到ejb container中。 部署者是某个ejb运行环境的专家。
  某些情况下,部署者在部署时还需要了解ejb包含的业务方法,以便在部署完成后,写一些简单的程序测试。

4、ejb 服务器提供者(ejb server provider)
  ejb 服务器提供者是系统领域的专家,精通分布式交易管理,分布式对象管理及其它系统级的服务。ejb 服务器提供者一般由操作系统开发商、中间件开发商或数据库开发商提供。
  在目前的ejb规范中,假定ejb 服务器提供者和ejb 容器提供者来自同一个开发商,所以,没有定义ejb 服务器提供者和ejb容器提供者之间的接口标准。

5、ejb 容器提供者(ejb container provider)
  ejb 容器提供者提供以下功能:
  提供ejb部署工具为部署好的ejb组件提供运行环境 。ejb容器负责为ejb提供交易管理,安全管理等服务。
  ejb 容器提供者必须是系统级的编程专家,还要具备一些应用领域的经验。ejb 容器提供者的工作主要集中在开发一个可伸缩的,具有交易管理功能的集成在ejb 服务器中的容器。ejb 容器提供者为ejb组件开发者提供了一组标准的、易用的api访问ejb 容器,使ejb组件开发者不需要了解ejb服务器中的各种技术细节。
  ejb容器提供者负责提供系统监测工具用来实时监测ejb容器和运行在容器中的ejb组件状态。

6、系统管理员(system administrator)
  系统管理员负责为ejb服务器和容器提供一个企业级的计算和网络环境。
  系统管理员负责利用ejb 服务器和容器提供的监测管理工具监测ejb组件的运行情况。

三、ejb的体系结构:

  ejb分布式应用程序是基于对象组件模型的,低层的事务服务用了api技术。ejb技术简化了用java语言编写的企业应用系统的开发,配置。ejb技术定义了一组可重用的组件:enterprise beans。你可以利用这些组件,象搭积木一样的建立你的分布式应用程序。当你把代码写好之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个enterprise beans,在加上一些配置参数。最后,这些enterprise beans被配置到一个装了ejb容器的平台上。客户能够通过这些beans的home接口,定位到某个beans,并产生这个beans的一个实例。这样,客户就能够调用beans的应用方法和远程接口。
  ejb服务器作为容器和低层平台的桥梁管理着ejb容器和函数。它向ejb容器提供了访问系统服务的能力。例如:数据库的管理和事务的管理,或者对于其它的enterprise的应用服务器。所有的ejb 实例都运行在ejb容器中。  容器提供了系统级的服务,控制了ejb的生命周期。ejb中的有一些易于使用的管理工具如:security–配置描述器(the deployment descriptor)定义了客户能够访问的不同的应用函数。容器通过只允许授权的客户访问这些函数来达到这个效果。remote connectivity–容器为远程链接管理着低层的通信issues,而且对enterprise beas的开发者和客户都隐藏了通信细节。ejb的开发者在编写应用方法的时候,就象是在条用本地的平台一样的。客户也不清楚他们调用的方法可能是在远程被处理的。life cycle managment–客户简单的创建一个enterprise beans的实例,并通常取消一个实例。而容器管理着enterprise beans的实例,使enterprise beans实现最大的效能和内存利用率。容器能够这样来激活和使enterprise beans失效,保持众多客户共享的实例池。等等。    trasction management-配置描述器定义了enterprise beans 的事务处理的需求。容器管理着那些管理分布式事务处理的复杂的issues。这些事务可能要在不同的平台之间更新数据库。容器使这些事务之间互相独立,互不干扰。保证所有的更新数据库都是成功发生的,否者,就回滚到事务处理之前的状态。
  ejb 组件是基于分布式事务处理的企业级应用程序的组件。所有的ejb都有如下的特点:ejb包含了处理企业数据的应用逻辑。定义了ejb的客户界面。这样的界面不受容器和服务器的影响。于是,当一个ejb被集合到一个应用程序中去时,不用更改代码和重新编译。ejb能够被定制 各种系统级的服务,例如安全和事务处理的特性,都不是属于ejb类的。而是由配置和组装应用程序的工具来实现。 有两种类型的ejb: session beans 和 entity beans.session beans是一种作为单用户执行的对象。作为对远程的任务请求的相应,容器产生一个session beans 的实例。一个session beans有一个用户.从某种程度上来说,一个session bean 对于服务器来说就代表了它的那个用户.session beans 也能用于事务,它能够更新共享的数据,但它不直接描绘这些共享的数据。session beans 的生命周期是相对较短的。典型的是,只有当用户保持会话的时候,session beans 才是活着的。一旦用户退出了,session beans 就不再与用户相联系了。session beans被看成是瞬时的,因为如果容器崩溃了,那么用户必须重新建立一个新的session对象来继续会话。
  session bean典型的声明了与用户的互操作或者会话。也就是说,session bean了在客户会话期间,通过方法的调用,掌握用户的信息。一个具有状态的session bean称为有状态的session bean.当用户终止与session beans互操作的时候.会话终止了,而且,bean 也不再拥有状态值。session bean也可能是一个无状态的 session bean.无状态的session beans并不掌握它的客户的信息或者状态。用户能够调用beans的方法来完成一些操作。但是,beans只是在方法调用的时候才知道用户的参数变量。当方法调用完成以后,beans并不继续保持这些参数变量。这样,所有的无状态的session beans的实例都是相同的,除非它正在方法调用期间。这样,无状态的session beans就能够支持多个用户.容器能够声明一个无状态的session beans.能够将任何session beans指定给任何用户.
  entity beans对数据库中的数据提供了一种对象的视图。例如:一个entity bean能够模拟数据库表中一行相关的数据。多个client能够共享访问同一个entity bean.多个client也能够同时的访问同一个entity bean.entity beans通过事务的上下文来访问或更新下层的数据。这样,数据的完整性就能够被保证。entity beans能存活相对教长的时间,并且状态是持续的。只要数据库中的数据存在,entity beans就一直存活。而不是按照应用程序或者服务进程来说的。即使ejb容器崩溃了,entity beans也是存活的。entity beans生命周期能够被容器或者 beans自己管理。如果由容器控制着保证 entity beans持续的issus。如果由beans自己管理,就必须写entity beans的代码,包括访问数据库的调用。
  entity beans是由主键(primary key 一种唯一的对象标识符)标识的。通常,主键与标识数据库中的一块数据,例如一个表中的一行,的主键是相同的。主键是client能够定位特定的数据块。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » EJB核心技术及其应用(转自china-pub,不错的文章)-JSP教程,J2EE/EJB/服务器
分享到: 更多 (0)