快捷搜索:

EJB技术概论

EJB技巧概论

Enterprise JavaBean (EJB) 1.1 规范定义了开拓和支配基于事务性、散播式工具利用法度榜样的办事器端软件组件的体系布局。企业组织可以构建它们自己的组件,或从第三方供应商购买组件。这些办事器端组件称作 Enterprise Bean,它们是 Enterprise JavaBean 容器中驻留的散播式工具,为散播在收集中的客户机供给远程办事。

两层和三层情况

在两层客户机/办事器情况中,法度榜样员编写与供应商特定软件慎密结合的利用法度榜样。平日,两层利用法度榜样直接从客户机造访数据库办事或事务办事。无意偶尔这种利用法度榜样称作胖客户机,由于利用法度榜样逻辑驻留在客户机上,这使客户机变得宏大年夜和繁杂。下图描画了这一特点:

三层客户机/办事器利用法度榜样应用一其中心或中心层,利用法度榜样办事器,它在客户机利用法度榜样和后端数据库之间操作。中心层存储了系统的商业逻辑,并和谐客户机上与后端数据库交互的显示。

在两层模型上应用三层体系布局是出于以下两个念头:

改进的可伸缩性、可用性和机能

改善的商业系统机动性和可扩展性

因为两层系统使用了客户机的处置惩罚能力,因而它具有优越的机能,但许多客户机对单一后端资本(如数据库)的特点会孕育发生瓶颈,跟着客户机数量徐徐增大年夜,这会抑制可伸缩性、可用性和机能。三层系统试图经由过程更有效地治理后端资本来打消这个瓶颈。使用资本治理技巧,如合用和集群中心层办事器,可以实现这个目标。合用容许许多客户机共享不充沛的资本(如数据库连接),这样可以削减后端办事器的事情负荷,从而使三层系统更有效。因为多个办事器和资本可以支持故障规复并均衡赓续增添的客户机数量的负载,是以集群可以使三层系统变得更具可用性和可伸缩性。

三层系统比响应的两层系统更机动且更可扩展,这是由于商业逻辑和办事(如安然性和事务)都驻留在中心层,并且基础上自力于客户机利用法度榜样。假如精确凿现了三层系统,那么在应用 Enterprise JavaBean 的环境下,办事会自动利用于客户机哀求,是以办事是看不见的。因为办事对付客户机弗成见,是以对办事的变动也弗成见。假如精确凿现了三层系统,那么中心层上对商业逻辑的变动和增强也可对客户机利用法度榜样暗藏。

别的,假如客户机与中心件组件因此 Java 编程说话实现的,那么它们极有可能具有可移植性。可以异常轻易地将实现客户机和利用法度榜样办事器的类文件从新安置到当前最相宜的主机上。

在近来二、三年中,一些供应商宣布了基于 Java 的三层利用法度榜样办事器,这些办事器全都可以与后端办事器操作交互,并治理这些操作。只管这些中心件产品支持散播式体系布局,这些体系布局在两层设计上(以及 Java 之前的利用法度榜样办事器)做了异常重大年夜的改进。它们的主要限定是编程模块越来越趋向于特定于某个供应商。这意味着公司必须大年夜量购买一家供应商的型号,而且系统是弗成移植的,从而导致了供应商锁定。

跟着面向工具编程典型日益遍及,散播式工具系统已经徐徐强盛年夜。现在已经存在一些散播式工具技巧。最盛行的是由 Object Management Group 创建的 CORBA、Sun Microsystems 的 Java RMI (JRMP) 和 Microsoft 的 DCOM 和 MTS(别名 COM+)。每种都有其自身的优毛病。Sun Microsystems 的 Enterprise JavaBean 是最新加入这个圈子的技巧。在某些方面,它既是这些技巧的竟争者,同时也是相助者。

因为在三层谋略中应用了其它开放标准(如 LDAP),CORBA(公共工具哀求中介体系布局)在办理供应商垄断问题方面取得了成功。不幸的是,虽然 CORBA 根本改变了散播式谋略,但履历证编程模块太繁杂,而且供应商不能同等地遵守规范。CORBA 有高档的散播式谋略,但已证实太难而无法实现,并且其可移植性也比预期差。

Enterprise JavaBean (EJB) 是 Sun Microsystems 对 CORBA 的可移植性和繁杂性的办理规划。EJB 引入了比 CORBA 更简单的编程模块,它可以闪开拓职员创建可移植散播式组件,称作 Enterprise Bean。EJB 编程模块可以闪开拓职员创建安然的、事务性的和持久的商业工具 (Enterprise Bean),该工具应用异常简单的编程模块和声明属性。与 CORBA 不合,例如造访节制(授权安然性)和事务治理等举措措施异常易于编程。CORBA 必要应用繁杂的 API 来使用这些办事,而 EJB 则根据一种称作“支配描述信息”的特点文件中的声明将这些办事自动利用到 Enterprise Bean。这个模型确保了 bean 开拓职员可以集中精力编写商业逻辑,而容器会自动治理更繁杂但又需要的操作。

因为 EJB 规范颁布了一组明确的 EJB 容器(供应商办事器)和 EJB 组件(商业工具)之间的左券,是以 EJB 中实现了可移植性。这些左券或规则确切规定容器必须为 Enterprise Bean 供给什么办事,bean 开拓职员必要应用什么 API 和声明属性来创建 Enterprise Bean。因为具体指定了 Enterprise Bean 的生命周期,是以供应商知道若何在运行时治理 bean,bean 开拓职员确切知道 Enterprise Bean 在其存在时代可以做什么。

Enterprise JavaBean 简化了散播式工具的开拓、支配和造访。EJB 散播式工具(一种 Enterprise Bean)的开拓职员只需依照为 Enterprise JavaBean 建立的左券和协议实现工具。支持 EJB 的利用法度榜样办事器可以,也确凿,应用任何散播式收集协议,包括本地 Java RMI 协议 (JRMP)、专有协议或 CORBA 的收集协议 (IIOP)。不管在某个特定产品中应用的基础收集协议是什么,EJB 应用相同的编程 API 和语义以 Java RMI-IIOP 造访散播式工具。协议的细节对利用法度榜样和 bean 开拓职员暗藏;对付所有供应商来说,定位和应用散播式 bean 的措施是相同的。

注:Enterprise Bean 与 JavaBean 不合。JavaBean 是应用 java.beans 包开拓的,它是 Java 2 标准版的一部分。JavaBean 是一台机械上同一个地址空间中运行的组件。JavaBean 是进程内组件。Enterprise Bean 是应用 javax.ejb 包开拓的,它是标准 JDK 的扩展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多台机械上跨几个地址空间运行的组件。是以 Enterprise Bean 是进程间组件。JavaBean 平日用作 GUI 窗口小部件,而 Enterprise Bean 则用作散播式商业工具。

您可能还会对下面的文章感兴趣: