服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

ejb技术的体系结构(1)

为什么使用ejb容器

ejb的体系结构:

ejb的上层的分布式应用程序是基于对象组件模型的,低层的事务服务用了api技术。ejb技术简化了用java语言编写的企业应用系统的开发,配置,和执行。ejb的体系结构的规范由sun microsystems公司制定。inprise的ejb容器是基于1.1版的规范。

ejb技术定义了一组可重用的组件:enterprise beans。你可以利用这些组件,象搭积木一样的建立你的分布式应用程序。当你把代码写好之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个enterprise beans,在加上一些配置参数。最后,这些enterprise beans被配置到一个装了ejb容器的平台上。客户能够通过这些beans的home接口,定位到某个beans,并产生这个beans的一个实例。这样,客户就能够调用beans的应用方法和远程接口。

ejb服务器作为容器和低层平台的桥梁管理着ejb容器和函数。它向ejb容器提供了访问系统服务的能力。例如:数据库的管理和事务的管理,或者对于其它的enterprise的应用服务器。

所有的ejb 实例都运行在ejb容器中。容器提供了系统级的服务,控制了ejb的生命周期。因为容器掌握了绝大多数系统级的issues(呵呵,不知道怎么翻译)。enterprise beans 的开发者不需要应用逻辑考虑进来。通常来说,ejb容器掌握了以下的系统级issues.

1、security--配置描述器(the deployment descriptor)定义了客户能够访问的不同的应用函数。容器通过只允许授权的客户访问这些函数来达到这个效果。

2、remote connectivity--容器为远程链接管理着低层的通信issues,而且对enterprise beas的开发者和客户都隐藏了通信issues.enterprise beans的开发者在编写应用方法的时候,就象是在条用本地的平台一样的。客户也不清楚他们调用的方法可能是在远程被处理的。

3、life cycle managment--客户简单的创建一个enterprise beans的实例,并通常取消一个实例。而容器管理着enterprise beans的实例,使enterprise beans实现最大的效能和内存利用率。容器能够这样来激活和去活enterprise beans,保持众多客户共享的实例池。等等。

4、trasction management―配置描述器定义了enterprise beans 的事务处理的需求。容器管理着那些管理分? 事务处理的复杂的issues。这些事务可能要在不同的平台之间更新数据库。容器使这些事务之间互相独立,互不干扰。保证所有的更新数据库都是成功发生的,否者,就回滚到事务处理之前的状态。

enterprise beans 组件

enterprise beans 是基于分布式事务处理的企业级应用程序的组件。所有的enterprise beans都有如下的特点:

  1. enterprise beans包含了处理企业数据的应用逻辑
  2. enterprise beans provider定义了enterprise beans的客户界面(enterprise beans 的远程界面)。这样的界面不受容器和服务器的影响。于是,当一个enterprise beans被集合到一个应用程序中去时,不用更改代码和重新编译
  3. enterprise beans能够被定制
  4. 各种系统级的服务,例如安全和事务处理的特性,都不是属于enterprise beans class的。而是由配置和组装应用程序的工具来实现。

有两种类型的enterprise beans: session beans 和 entity beans.

session beans:

session beans 是一种作为单个的client执行的对象。作为对远程的任务请求的相应,容器产生一个session beans 的实例。一个session beans有一个client.从某种程度上来说,一个session bean 对于服务器来说就代表了它的那个client.session beans 也能用于事务,它能够更新共享的数据,但它不直接描绘这些共享的数据。

session beans 的生命周期是相对较短的。典型的是,只有当client保持会话的时候,session beans 才是活着的。一旦client退出了,session beans 就不再与client相联系了。session beans被看成是瞬时的,因为如果容器崩溃了,那么client必须重新建立一个新的session对象来继续会话。

一个session bean典型的声明了与client的互操作或者会话。也就是说,session bean了在客户会话期间,通过方法的调用,掌握client的信息。一个具有状态的session bean称为有状态的session bean.当client终止与session beans互操作的时候.会话终止了,而且,bean 也不再拥有状态值。

一个session bean也可能是一个无状态的 session bean.无状态的session beans并不掌握它的客户的信息或者状态。client能够调用beans的方法来完成一些操作。但是,beans只是在方法调用的时候才知道client的参数变量。当方法调用完成以后,beans并不继续保持这些参数变量。这样,所有的无状态的session beans的实例都是相同的,除非它正在方法调用期间。这样,无状态的session beans就能够支持多个client.容器能够声明一个无状态的session beans.能够将任何session beans指定给任何client.

entity 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能够定位特定的数据块。

ejb roles:

ejb体系结构通过把编程的过程分为6个不同的角色而使开发复杂的的应用系统变的简单。6个不同的角色,每个都有特定的任务。6个角色包括下层的服务,应用程序的开发,配置和操作说明(issues)

ejb体系结构能够简化应用程序开发人员的工作。在ejb体系结构中,容器和代理服务承担了很多在其他环境中又程序设计嗽背械5墓ぷ鳌u庋?的代理提供了很多原来需要程序设计人员编写代码的系统级的服务??/p>

infrastructure roles;(下层构造角色

ejb server providor服务提供者是典型的提供分布式低层服务的代理。ejb服务提供者提供了一个分布式应用程序开发者需要的平台和设施。也提供了分布式程序的运行时环境。

ejb container providor 容器提供者是分布式系统,事务处理,安全方面的专家容器提供者提供了一个ejb的配置工具,和这些配置实例的运行时支持。

一个容器对一个或多个ejb来说,是一个运行时系统。它将enterprise beans和ejb服务,包括事务服务,安全服务,分布式网络管理等胶合在一起。容器是既是一个定制的代码和对特定的 enterprise beans产生详细代码的工具。容器也提供了一个配置enterprise beans的工具和管理监视应用程序的方法。


application roles:(应用角色)

enterprise beans provider:beans提供者在应用领域方面是专家。例如:beans提供者可能是金融或电信方面的专家。beans提供者提供了业务tasks,enterprise beans的业务方法,定义了beans的romote和home接口,还定义了beans的配置描述器。因为容器管理着系统级的任务,所以,beans提供者便不需要关心分布处理,事务处理,安全性能等从应用方面看来没什么关系的方面。

application assembler程序组装器:

这是一个将定制的enterprise beans和其它的组件,例如,gui client,applet,servelet等组装成一个完整的应用程序的行家。在enterprise的配置器下,组装器在组装成一个应用程序的时候,只关心beans的接口,包括romote接口和home接口。而不关心这些接口是怎么实现的。组装的结果就是一个一个的应用程序,或者由多个enterprise beans组合成的一个比较复杂的enterprise beans.

deployment and operate roles配置和操作角色

配置器为特定的enterprise beans配置特殊的操作环境。配置器为了适应应用程序,将多个enerprise beans 组合起来,通过修改enterprise beans 的属性来达到配置相应的操作环境。例如,配置器通过设置配置描述符的相应的属性来设置事务和安全方针。配置器的另一个任务是将应用程序与现有的enterprise管理软件结合起来。

system administrator系统管理者

是与配置应用有关的。管理者配置个管理enterprise计算和网络服务的低层,包括ejb服务和容器。管理员监视着应用服务器的运行状况,当应用服务器不正常运行是就采取相应的措施。典型的说,管理员使用enterprise管理工具来与应用程序打交道,通过由容器提供的hooks来配置。

传统的应用程序开发者现在是enterprise beans的提供者。也可能是应用程序的装配者。这样能使他们将主要精力放在应用问题或者应用逻辑上面。当安装enterprise beans时,配置器定义了一系列的配置方针。机制的复杂性和执行配置的方针就交给了专门的代理。虽然分布式的应用程序还是比较复杂,可是,应用程序设计者的工作却变的简单了,因为所有复杂的工作都交给了ejb服务器和容器提供者了。

通过大量的设计之前的定义和命名约定,ejb达到了前面提到的目的。这样的编程体系结构限制了一定的自由,但是,允许ejb服 <

扫描关注微信公众号