background image

JAVA 语言——EJB 技术概论

  EJB 技术概论
  Enterprise JavaBean (EJB) 1.1 规范定义了开发和部署基于事务性、分布式对象应
用程序的服务器端软件组件的体系结构。企业组织可以构建它们自己的组件,或从第三方

 

供 应 商 购 买 组 件 。 这 些 服 务 器 端 组 件 称 作 Enterprise Bean

 

, 它 们 是 Enterprise 

JavaBean 容器中驻留的分布式对象,为分布在网络中的客户机提供远程服务。
  两层和三层环境
  在两层客户机/服务器环境中,程序员编写与供应商特定软件紧密结合的应用程序。
通常,两层应用程序直接从客户机访问数据库服务或事务服务。有时这种应用程序称作胖
客户机,因为应用程序逻辑驻留在客户机上,这使客户机变得庞大和复杂。下图描绘了这
一特性:
  三层客户机/服务器应用程序使用一个中间或中间层,应用程序服务器,它在客户机
应用程序和后端数据库之间操作。中间层存储了系统的商业逻辑,并协调客户机上与后端
数据库交互的显示。
  在两层模型上使用三层体系结构是出于以下两个动机:
  改进的可伸缩性、可用性和性能
  改良的商业系统灵活性和可扩展性
  由于两层系统利用了客户机的处理能力,因而它具有良好的性能,但许多客户机对
单一后端资源(如数据库)的特性会产生瓶颈,随着客户机数量逐渐增大,这会抑制可伸
缩性、可用性和性能。三层系统试图通过更有效地管理后端资源来消除这个瓶颈。利用资源
管理技术,如合用和集群中间层服务器,可以实现这个目标。合用允许许多客户机共享不
充足的资源(如数据库连接),这样可以减少后端服务器的工作负荷,从而使三层系统更
有效。由于多个服务器和资源可以支持故障恢复并均衡不断增加的客户机数量的负载,因
此集群可以使三层系统变得更具可用性和可伸缩性。
  三层系统比相应的两层系统更灵活且更可扩展,这是因为商业逻辑和服务(如安全性
和事务)都驻留在中间层,并且基本上独立于客户机应用程序。如果正确实现了三层系统,

 

那么在使用 Enterprise JavaBean 的情况下,服务会自动应用于客户机请求,因此服务
是看不见的。由于服务对于客户机不可见,因此对服务的更改也不可见。如果正确实现了
三层系统,那么中间层上对商业逻辑的更改和增强也可对客户机应用程序隐藏。

 

  另外,如果客户机与中间件组件是以 Java 编程语言实现的,那么它们极有可能具
有可移植性。可以非常容易地将实现客户机和应用程序服务器的类文件重新安置到当前最
合适的主机上。

 

  在最近二、三年中,一些供应商发布了基于 Java 的三层应用程序服务器,这些服务
器全都可以与后端服务器操作交互,并管理这些操作。尽管这些中间件产品支持分布式体
系结构,这些体系结构在两层设计上(

 

以及 Java 之前的应用程序服务器)做了非常重大的

改进。它们的主要限制是编程模块越来越趋向于特定于某个供应商。这意味着公司必须大
量购买一家供应商的型号,而且系统是不可移植的,从而导致了供应商锁定。
  随着面向对象编程范例日益普及,分布式对象系统已经逐渐壮大。现在已经存在一些