首页>参考读物>计算机科学与技术>综合

服务器组件模式——EJB描述的组件基础设施
作者 : Markus Volter,Alexander Schmid,Eberhard Wolff
译者 : 张志祥 孙宁 石剑琛
出版日期 : 2003-12-01
ISBN : 7-111-13157-6
定价 : 39.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 273
开本 : 16开
原书名 : Server Component Patterns
原出版社: John Wiley & Sons
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书分三部分讲述服务器端组件基础设施的原理和模式。第一部分介绍一种描述服务器端组件基础设施内部工作原理的模式语言,对于每种模式都提供用EJB、CCM和COM+实现的例子加以说明。第二部分使用EJB技术为每种模式提供了实现的详细实例。第三部分以对话形式讨论如何使用组件技术实现一个具体的应用。
  本书既可作为软件工程教材又可作为参考指南,帮助软件开发人员理解服务器端组件基础设施的原理和模式,了解服务器端组件基础设施对实际应用的好处以及EJB、CCM和COM+之间的异同,全面认识EJB技术从而能够为具体的项目设计自己专用的组件。本书是经典的“软件模式”系列中的一卷,讲述组件中的模式。在很多就用领域,Enterprise JavaBeans(EJB)、COM+和CORBA组件模型(CCM)等组件技术已经成为主流。在日常工作中使用这一技术的开发人员和架构师需要知道更多有关组件基础设施的知识,而不仅仅是每种技术的API。本书正是为此而撰写的。
  理解服务器端组件基础设施的原理和模式了解EJB,CCM和COM+之间的异同对EJB技术有全面的认识能够为具体的项目设计自己专用的组件

图书前言

本书的内容
本书阐述如何在服务器上进行基于组件的开发。这些技术的例子包括当前得到广泛应用的企业JavaBeans(EJB),CORBA组件模型(CCM)或微软的COM+。为构建基于这些技术的成功应用,开发者应该理解这种组件体系结构的工作—在规范和大部分书中没有说得很清楚的东西。本书的第一部分介绍从概念上描述这些体系结构的一种模式语言。为给出“现实环境中的基础”,第二部分给出使用EJB技术实现这些模式的大量实例。最后,第三部分说明这些模式为真实应用带来的好处。
谁应该读这本书
分布式组件(特别是EJB)是“外观友好的复杂技术”。这就意味着众多的复杂性被简单的界面所掩盖,或通过向导而实现。然而,要基于这些技术创建可维护的高效应用,我们认为有必要了解这些体系结构实际是如何运作的,以及某些特定的设计技术是如何使用的。这些技术不同于面向对象技术—试图为组件使用OO技术会导致非常低效的系统。
本书由三个独立的部分构成。第一部分写给开发人员或架构师,他们需要学习任何主流的组件技术中用到的基本原理和概念。我们用模式语言的形式来完成这项工作。由于每个模式都包括EJB、CCM和COM+的一个短小实例,你也可以从本节内容来理解这些技术之间的差异。由于本部分中的概念是用非常通用的方式描述的,因此也有助于你创建自己的专用组件体系结构。
第二部分有两个主要目的。首先,它用更具体、更丰富的例子阐述第一部分中的模式。由于以EJB为例,因此这部分对EJB的开发者最有用,但是COM+和CCM的用户也可以学到不少模式的实现细节。你还可以将这部分看成是EJB简明教程,尽管我们假定读者对EJB有一些基本了解。
最后第三部分说明模式给应用开发者提供了什么。借助一个用EJB开发的网上购物系统,我们说明了基于组件的开发方法比“正常的”方法好的优点。这部分写成一位组件新手和一位有经验的咨询顾问之间的对话。它说明模式是如何影响EJB开发者的日常工作的。
本书的结构
本书讲解服务器端组件模式。有3个主要部分,下面列出各部分的目的:
“基础知识”,作为本书的绪论。首先对本书中的“组件”一词进行定义,并与其他类型的组件作了区分。第二,引入模式和模式语言,并说明如何在本书中使用它们。第三,介绍4个原理。每种技术都是基于一套原理的,也就是技术开发者在设计时牢记在心的指导原则。理解了这些原理,才能对技术知其所以然。对组件体系结构来说也是如此。
第一部分,“服务器组件模式语言”,描述“产生”服务器端组件体系结构的模式语言。由于模式的基本原理是“模式是被证实了的解决方案”,因此已知应用很重要。我们使用3个最重要的组件模型作为例子,即Enterprise JavaBeans(EJB),CORBA组件模型(CCM)和COM+。这些例子是概念性的,仅作简单的介绍。
第二部分,“用EJB描述的模式”,给出第一部分中模式的大量例子,用EJB技术实现。说明在这些情况下如何应用这些模式,也介绍EJB体系结构。这部分包括EJB源代码和UML图。
第三部分,“一个故事”,是两个人之间的一段对话,他们讨论一个基于EJB的电子商务应用的设计与实现。这给出了观察模式的另一种方式。
例子技术
模式只有被实际应用或使用过才能被看作是模式。因此一般的模式写作过程首先是从具体系统中“寻找”相关模式,并从这些应用中抽象出核心模式。
对本书第一部分中的技术模式而言,这些具体的系统是3个最流行的服务器端组件体系结构,EJB、CORBA组件和COM+。本节给出这3种技术的简介,并为进一步阅读列出参考资料。
EJB
EJB是由Sun公司定义的服务器端组件体系结构。它的目标是实现企业业务解决方案,很注重基于Web的应用和与遗留系统的集成。EJB是更大的服务器端体系结构Java 2企业版(J2EE)的一部分。
虽然由于定义了到CORBA和IIOP(CORBA的基于TCP/IP的传输协议)的映射,可以通过其他的编程语言来访问EJB组件(Bean),但EJB和J2EE是完全Java的解决方案。EJB并不是一个官方标准,它是Sun公司的产品。然而,很多其他公司参与了这个体系结构的创建,而且市场上有很多这个标准的实现,既有开放源代码的服务器,也有很昂贵的商业应用。
介绍EJB的一本好书是Monson-Haefel的《Enterprise JavaBeans》[MH00]。Sun公司的EJB规范[SUNEJB]也值得一读。《Java Server Programming》[SU01]更广泛地介绍了J2EE,也包括EJB。当前EJB的版本是2.0。然而从模式语言的角度看,EJB 2.0没有引入很多新的特性。它在某些方面的确有了明显的改进,主要是在持久性和用本地接口(Local Interface)从本地访问组件方面。但是概念上看没有改变很多—例如,本地接口还是接口。因此,本书就没有详细地讨论这些新特性。
CORBA组件模型
CORBA(Common Object Request Broker Architecture,通用对象请求代理体系结构)是一个分布式对象基础设施的标准,一种面向对象的RPC(Remote Procedure Call,远程过程调用)。这个标准是由对象管理专家组(Object Management Group,OMG)定义的。OMG是一个非营利性组织,IT行业很多重要的公司都参加了这个组织。CORBA是一种独立于操作系统的编程语言,许多厂商提供了该标准的实现。除了低层的远程对象通信,CORBA还定义通用对象服务(Common Object Services, COS)来处理事务、异步事件、持久性、交易、命名,以及其他不为人们熟知的许多功能。
CORBA组件形成了一个构建于CORBA通信基础设施之上的组件体系结构。其规范是CORBA 3.0的一部分。虽然规范已经完成,在写规范时还没有商业实现可用,但已经有几家公司宣布了产品并正致力于CCM的实现。事实上,试验性的实现正在进行中,并且已经得到了早期成果[OPENCCM]。
CORBA组件模型(CCM)与EJB有许多共同特性,它实际是向上兼容的,人们希望将来这两种体系结构能够融合。
如前面所述,CCM仍很新颖,关于它的文献还不是很多。OMG[OMGCCM]的规范当然值得一读,而Jon Siegel的有关CORBA 3的书[SI00]也包含一章讨论CCM。
COM+
COM+是微软的组件基础设施的实现。它与Windows家族的操作系统紧密地集成在一起,其他操作系统则不能使用。COM+是Windows平台下的独立于编程语言的技术。
COM+实际上是由DCOM与微软事务服务器(Microsoft Transaction Server,MTS)集成之后取的新名称,与其名字的含义相反,它是一个组件的运行时环境。事务是由分布式事务协调器DTC管理的。DCOM本身是微软的桌面组件技术COM(Component Object Model,组件对象模型)的分布式版本。因此,与其他两种技术相比,COM+的历史较长。一方面这意味着它是一个被验证了的技术;另一方面,它有一些为了相容性而设置的奇怪特性。
市场上充斥着这方面的书籍。我们认为Alan Gordon的《The Com and Com+ Programming Primer》[GO00]是一本很好的入门书。
本书网站
用书籍作为交流知识的方式并非没有缺点。
主要有两个缺点:
写书需要花很长时间。这就意味着到书出版时,书中的某些信息可能已经过时了,或者至少是不完整的。
书是一种单向的传媒手段。没有直接的方式让读者反馈,或者进行讨论。
为了克服这些缺点,我们创建了网站www.servercomponentpatterns.org。它包含本书的源代码,相关网站的链接,联系作者和得到其他有用素材的方式。我们还用这个网站发布勘误表和新发现的模式。敬请浏览。
联系作者
我们很乐意收到你关于本书的意见,或者你可能有的其他任何评语。
用以下方式可以和作者联系:
voelter@acm.org
alex.schmid@t-online.de
ewolff@mac.com
给我们团体,用scp-book@yahoogroups.de
同本书的漫画作者Stefan Schulz联系,可通过sn.schulz@gmx.de。
漫画
写作这本书的过程中,我们在一个会议上展示了它的模式。我们想使演示轻松愉快一些,因此向为本公司工作的一位自由职业者咨询,是否能画一些漫画来表示这些模式,每个模式一幅。他做了,且效果非常好。于是我们进而说服他为书中的每个模式都画一幅漫画。
我们认为这些漫画有助于记住这些模式,因为它们用简单的图示抓住了每个模式的精华。同时,又形成了本书的特色。希望你能像我们一样喜欢这些漫画。你可以通过sn.schulz@gmx.de与画家Stefan Schulz联系。
符号和约定
与其他书一样,本书使用了一系列的符号和约定。事先理解这些约定很有用。
正文
正文,我们用5号宋体表示。模式使用特殊的格式,问题和解决方案小节使用仿宋字。本书中对其他模式的引用使用粗体表示模式名。本书以外的模式,包括可以找到这个模式的 [参考文献] 用楷体字。
源代码中的参数引用,或其他名字、标记或类型用斜体字表示。
源代码
对源代码来讲,我们用固定宽度的字体。我们没有声明例子中的源代码是完整的并且可编译。为了简短起见,我们省去所有不必要的细节。这些细节可能是一些导入语句、错误处理和其他我们认为不重要的代码—我们用省略符号(……)来标记省去的代码。为了简化代码例子还使用注释和伪码。

图略微复杂一些,因为在本书中使用不同的符号。对结构图来说,我们尽可能用UML图。例如,组件通常是以一个有附着接口的“类矩形”形式绘制的。下面的图表示有两个接口IFA1和IFA2的组件A。
对很多结构图来讲,特别是在第一部分,我们使用了非UML记号,因为UML在这里不大起作用,通过使用标准语句和注释将所有东西强制变成UML图,也没有什么好处。下图给出一个具有代表性的例子:
这种记号需要解释一下。这些图大致展示类似UML的协作图,虽然聚合通过真实的包含关系以及其他细节展示。下面的图例解释所使用的符号—剩下的内容等你在模式语境中看到图时就会清楚了。
为了说明交互,我们通常使用UML顺序图。
组件和实例
为了避免误解,必须澄清我们关于“组件的论述”的重要问题。用我们的术语来说,组件是被开发和部署的产物,而组件实例(或者简称实例)指的是组件特定的运行时实例化。与OO术语相比,组件对应类,组件实例对应于对象(它在某些语言中称为类实例)。在特别针对EJB的部分,我们分别使用Bean和Bean实例。
致谢
就像其他的书一样,除了封面上署名的人,还有很多人参与了本书的创作过程。关于模式的书更是这样。因此我们希望对下面的人说“谢谢”。
首先,我们感谢Frank Buschmann, 在这本书的创作过程中他担任了双重角色。第一,他是Wiley模式系列丛书的编辑,是他建议我们写这本书。其次,他是我们的指导者,给了我们很多有用的意见—作为一个有经验的模式作者和技术书籍作家,他深深理解本书所讲的技术,他的意见有真正的帮助。
第二,我们要感谢我们的雇主MATHEMA AG公司,特别感谢Hans-Joachim Heins和Michael Wiedeking,感谢他们对这个项目的支持。
第一部分中的模式(部分)已经提交EuroPLoP 2001讨论会。我们从那里的工作组收到了很多有用的反馈意见,我们要特别感谢Klaus Marquardt,他在大会上是我们的指导者,并为模式的早期版本提供了很多有用的建议。
当然,要特别感谢Stefan Schulz,没有他的漫画,这本书会逊色很多。为了在本书的最后期限之前完成,我们向他施加了巨大的压力,我们对他能够完成感到很高兴。
我们同样感谢Peter Sommerlad,他总是同我们唱反调,向我们提出了有关一般基于组件的开发方法的几个关键性的问题。也感谢Matjaz Juric, 他在书稿完成的最后阶段审阅了关于EJB的部分,并发现了几处错误和问题,特别是关于当时全新的EJB 2.0版。
还有来自其他很多人的意见,我们对他们的工作也表示感谢。这些人包括Jim Coplien、Costin Cozianu、Kristijan Cvetkovic、Jutta Eckstein、Erwin Hoesch、Matthias Hessler、Markus Schiller、Michael Kircher、Jan Materne、Markus Sp妕h、Thomas Neumann、Francis Pouatcha、Stephan Preis、Michael Schneider和Oliver Vogel。
非常感谢WordMongers公司的Steve Rickaby所做的编辑和排版工作。Steve的校正语言文字、格式和版面的工作做得很出色—经历了长时间的写作,我们已经没有精力亲自来做这些事情。非常感谢你!
最后同样重要的是,我们感谢John Wiley & Sons公司的Gaynor Redvers-Mutton,他很好地帮助我们进行与Wiley公司的组织协调工作。毕竟我们并不是每天在写书,尤其在写第一本书时,因此有人能够负责技术和管理问题会大有帮助。
Alexander Schmid感谢Gudrun Hauk的耐心和支持。如果没有她的鼓励,他对这本书的贡献就不会像现在一样。
Eberhard Wolff感谢Tanja Maritzen和他家庭的支持。没有他们的支持和耐心,他简直就不可能参与本书的写作。

Markus V歭ter
Alexander Schmid
Eberhard Wolff

图书序言

你手中的这本书写的是一个很重要并且很“热门的”软件工程主题:组件。虽然如今有关组件的书在书架上比比皆是,然而,本书绝对不同。这是Wiley公司经典的“软件设计模式丛书”的第四卷,因此你有理由期望从中获得独特的信息。
本书在基于组件的软件开发领域独树一帜,原因是它不着重于展示和解释某个特定组件平台及其API,而着重于挖掘在设计和实现每一个成功的组件时所体现的共性知识,不管是什么平台和容器。将这种知识记录成模式,以易用的形式呈现给对基于组件开发感兴趣的人。
例如,可以使用这些模式来学习为什么组件和容器被设计成现在这个样子,这样你就可以理解它们的基础构想。或者,从CORBA组件模型(CORBA Component Model, CCM)、微软组件对象模型(Component Object Model, COM+)的例子中,特别是从第二部分企业JavaBeans(EJB)环境中大量详细的例子中,你可以看到这些平台如何工作和为什么那样工作。这样,你就能更有效地使用它们。
在只讲述一种环境的书中,我们通常不能明显地看到形成组件思想精髓的“大视野”。即使这种书给出了总体轮廓,它也常常是深埋在针对具体容器的实现和API细节的无数内部描述中。在本书中,组件构想是以一种富有表现力的恰如其分的信息块来明确表示的。因此本书是对所有其他关于组件的书的补充,无论是学科概述性的书,还是针对具体容器或组件平台的编程指南或参考书。
本书中的模式当然也能帮你构建出良好的组件,它们具备基于组件开发所承诺的优点:更好的模块性、适应性、可配置性和可重用性。即使在理论上看起来不是很难,但是在实践中这项工作富有挑战性而且极不平凡。并没有多少书可以指导你应对这些挑战—而这本书做到了。
书中列举了许多来自主流组件平台的例子,它们说明本书中的模式并不仅仅是关于组件理论的,而且还记录了有经验的实践者在构建基于组件的系统时所运用的知识。我个人最喜欢第三部分。它呈现某个想在新项目中应用EJB的组件新手与一个有经验的顾问之间的一段对话,后者用本书中所陈述的模式向新手展示他如何开发基于EJB的电子商务应用。这个组件新手问了所有组件新手想问的问题,这些问题在当今的组件文献中很少有答案,恰恰这里就有。
虽然不明显,但是本书的最大价值在于:你可以用它来设计并实现你自己定制的组件平台。在当今风行CCM、COM+、EJB和其他的“现成”组件环境的情况下,乍听来这像痴人说梦。可是我说这话是认真的!
例如,考虑嵌入式或移动系统。这样的系统要遵守严格的约束条件:有限的内存、CPU处理能力、特制的硬件等等。此外这些系统应能像企业系统已经做到的一样,从组件技术中获益。对某些系统,例如移动电话应用,用组件进行设计是获得可观利润的惟一途径。然而现有的组件环境要么对当今的嵌入式或移动系统来说太大了,要么对采用的硬件和操作系统来说根本不可用。这种情况下,你就必须构建符合系统的特定需求和约束条件的平台和容器。
即使对企业系统而言,在使用诸如CCM、COM+和EJB的组件平台的传统领域,定制容器的趋势也已经出现。开发者抱怨说可用的现成容器要么没有提供所需的功能,要么是以一种他们不能够使用的方法实现所需功能。因此,开发者可能需要实现自己的容器,这就需要相关的、合适的指导。在这本书中他们就能够找到这种指导。
不仅受挫的开发者推动了企业系统的定制容器的趋势,而且,学术界和工业界已经启动了关于下一代容器的样式的讨论和研究。这与当今容器的“万金油”哲学有很大不同。新的方法需要装配、集成并定制小的构造块,来创建最优的与具体应用需求相符的组件平台。这就需要对组件及其运作方式有坚实的知识和深入的理解。然而,不论当今的容器与未来的容器有多大差别,如本书中的模式所表现的,它们的根本思想是一样的。因此本书不会过时,即使整个组件世界发生变化了,它仍应该留在你的书架上。
我希望你能像我一样喜欢阅读这本书。

Frank Buschmann
西门子公司技术部



用组件构成新的系统,将体系结构和设计分解成组件,两者都是现代企业应用系统开发中最有希望也是最具挑战性的工作。三层体系结构已经成为很多这种应用的最佳实践,针对具体应用的复杂度通常集中在应用服务器层。侧重于应用程序服务器的组件技术正趋于成熟,因此必然要探求如何使未来企业应用更好地沿用这种形式。本书的目的正是提供这种指导—指导如何使用最好的组件和应用程序服务器技术来构建企业应用。
书名中同时包含“服务器”、“组件”、“模式”本身已经是一种成就了。更进一步给出这么多有用的模式,帮助我们驾驭服务器端系统(绝大部分是中间层)组件技术的复杂和精妙,就更是一项重大贡献。这本书会因它的名字而畅销,它将帮助企业解决方案的架构师和设计者从目前功能强大的中间层组件技术中获得更大收获。
作者给出了一种模式语言,主要服务于三类读者群体:架构师、组件实现者和容器实现者。具有30种模式的这种模式语言是很丰富的,涵盖了从基本原理(组件、组件接口、组件实现、容器、部署)到细微细节(标识、持久性、生命周期、远程、打包)再到几乎是隐秘的部分(容器实现)。
虽然给出了有关CORBA组件模型(CCM)和微软COM+的高层次讨论,但本书还是花大量篇幅侧重于企业JavaBeans(EJB)。作者探讨了整个模式语言,该语言本身更具技术上的中立性,并详细解释了如何将模式语言映射到EJB体系结构和设计。映射一方面是始于有状态和无状态会话Bean的详细EJB情景,另一方面是始于持久性实体Bean。进一步,作者比较详细地描述了如何实现这样的EJB组件,包括生命周期和部署描述文件问题。关于客户端的讨论帮助我们理解远程访问的问题,以及EJB 2.0支持的从本地访问的差异评价问题。对于影响性能或可伸缩性的设计选择,作者也给出了具体建议。
容器实现问题的讨论可能与大部分读者没有多大关系。然而,花时间去了解容器的内部结构有助于建立更加坚实的理解。这是每个工程师必须首先做的—充分理解平台中发生的事情,从而做出有根据的决策。
为便于理解,作者给出了技术细节,但是避免了将读者引入无休止的冗长细节中去。尽管有时服务器端组件技术本身的特点难免有一定难度,但本书总体仍然让人感到耳目一新,可读性强且易于理解。本书特别适合作为进一步研究不同子课题文献的台阶,它提供了有用的概貌。

Clemens Szyperski
微软公司

作者简介

Markus Volter,Alexander Schmid,Eberhard Wolff:暂无简介

译者简介

张志祥 孙宁 石剑琛:暂无简介

译者序

用组件构成新的系统,将体系结构和设计分解成组件,两者都是现代企业应用工程中的最有前途也是最为困难的工作。很多应用都采用三层体系结构,针对这种体系结构,本书阐述了如何在服务器上进行基于组件的开发,指导读者使用最好的组件和应用服务器技术来构建企业应用。
本书介绍了在服务器上进行基于组件开发的技术,包括当前广泛使用的Enterprise JavaBeans(EJB),CORBA组件模式(CCM)和微软的COM+。本书在介绍组件、模式、模式语言以及组件体系结构的原理之后,在第一部分介绍“产生”服务器端组件体系结构的模式语言。与第一部分中的模式对应,第二部分给出了大量用EJB技术实现的例子(包括EJB源代码和UML图),说明在这些情况下如何使用这些模式,也介绍了EJB的体系结构。第三部分通过两个人之间的一段对话生动地说明了基于EJB的电子商务应用的设计与实现方法。
本书对软件开发人员和架构师都有帮助。它可以帮助架构师学习所有主流的组件技术中用到的基本原理和概念,理解这些技术之间的差异;对于软件开发人员,尤其是EJB、CCM和COM+的开发人员,不仅能从中学到上述基本原理和概念,还能够从模式的实现细节中学到不少东西,尤其是这本书可以作为EJB简明教程,从中学习如何开发基于EJB的电子商务应用。
本书是一本很好的参考指南,帮助软件开发人员和架构师全面认识服务器组件模式,并提供了一些技术来解决具体的设计问题。把本书用作软件工程课程的参考书可以给学生提供大型服务器组件软件设计的新观点。
本书第4~8、11~16章由张志祥翻译,其余章节由孙宁、石剑琛翻译。全书由贲可荣审校。杨强、朱继梅、冯伟强、崔楠、胡钰铣、罗云峰参与了本书的翻译工作,在此表示感谢。
由于各种原因,译稿难免存在错误和疏漏,欢迎读者批评指正。
本书可作为计算机专业高年级本科生、计算机专业研究生的软件工程教材或参考书,亦可作为软件开发人员的参考手册。

2003年8月1日

图书目录

译者序
序一
序二
前言
基础知识 1
什么是组件 1
模式和模式语言 3
组件体系结构的原理 7
组件:是银弹吗 13
第一部分  服务器组件模式语言 15
模式语言图 16
阅读模式语言的顺序 16
一段对话 17
第1章  核心基础元件 21
1.1  组件 21
1.2  容器 24
1.3  服务组件 27
1.4  实体组件 29
1.5  会话组件 31
1.6  小结 34
第2章  组件实现构造块 37
2.1  组件接口 37
2.2  组件实现 40
2.3  实现限制条件 43
2.4  生命周期回调 45
2.5  注释 48
2.6  小结 51
第3章  容器实现基础 53
3.1  虚实例 53
3.2  实例池调度 55
3.3  钝化 58
3.4  组件代理 61
3.5  代码粘合层 63
3.6  小结 65
第4章  组件及其环境 69
4.1  组件上下文 69
4.2  命名 72
4.3  组件局部命名上下文 74
4.4  被管资源 76
4.5  可插资源 78
4.6  配置参数 80
4.7  所需接口 82
4.8  小结 84
第5章  标识和管理实例 87
5.1  组件HOME 87
5.2  主键 90
5.3  句柄 92
5.4  小结 94
第6章  远程访问组件 99
6.1  组件总线 99
6.2  调用上下文 103
6.3  客户端代理 105
6.4  客户库 107
6.5  客户引用合作 109
6.6  小结 111
第7章  容器的进一步实现 113
7.1  系统错误 113
7.2  组件自查 116
7.3  实现插件 117
7.4  小结 119
第8章  组件部署 121
8.1  组件安装 121
8.2  组件包 124
8.3  装配包 126
8.4  应用程序服务器 127
8.5  小结 129
第二部分  用EJB描述的模式 131
第9章  EJB核心基础元件 133
9.1  组件 133
9.2  容器 133
9.2.1  管理资源 134
9.2.2  持久性 134
9.2.3  安全性 135
9.2.4  事务 135
9.2.5  其他特性 135
9.3  服务组件 136
9.4  实体组件 138
9.4.1  什么是实体Bean 138
9.4.2  技术观点 139
9.5  会话组件 142
第10章  EJB组件实现构造块 145
10.1  组件接口 145
10.2  组件实现 150
10.3  实现的限制 152
10.3.1  限制条件 152
10.3.2  检查这些限制条件 154
10.4  生命周期回调 154
10.4.1  无状态会话Bean 154
10.4.2  消息驱动Bean 156
10.4.3  有状态会话Bean 158
10.4.4  实体Bean 161
10.5  注释 166
10.5.1  标准部署描述文件的内容 167
10.5.2  销售商相关的典型内容 169
第11章  EJB容器实现基础 171
11.1  虚实例 171
11.2  实例池调度 171
11.2.1  无状态会话Bean的池调度 172
11.2.2  实体Bean的池调度 173
11.3  钝化 175
11.3.1  钝化Bean实例 175
11.3.2  钝化实例的重激活 176
11.4  组件代理 177
11.5  代码粘合层 179
第12章  EJB Bean及其环境 181
12.1  组件上下文 181
12.2  命名 185
12.3  组件局部命名上下文 187
12.4  被管资源 188
12.4.1  资源池调度 188
12.4.2  资源工厂 189
12.4.3  与技术问题的集成 192
12.5  可插资源 192
12.6  配置参数 194
12.7  所需接口 195
第13章  标识和管理Bean实例 197
13.1  组件HOME 197
13.1.1  不同类型Bean的Home操作 198
13.1.2  本地Home 202
13.1.3  Home业务方法 203
13.1.4  使用Home接口 203
13.2  主键 203
13.3  句柄 206
第14章  远程访问Bean 209
14.1  组件总线 209
14.1.1  使用JRMP作为传输协议 210
14.1.2  使用IIOP作为传输协议 210
14.1.3  其他协议 211
14.1.4  本地调用 211
14.1.5  异步调用 211
14.1.6  实现选项 211
14.2  调用上下文 213
14.3  客户端代理 214
14.4  客户库 215
14.5  客户引用合作 216
第15章  进一步的EJB容器实现 219
15.1  系统错误 219
15.1.1  系统错误 219
15.1.2  应用错误 221
15.2  组件自查 222
15.3  实现插件 223
第16章  Bean部署 225
16.1  组件安装 225
16.2  组件包 226
16.3  装配包 227
16.4  应用程序服务器 228
第三部分  一个故事 229
参考文献和在线资源 261
术语表 271

教学资源推荐
作者: 郭春宁
作者: [美] 迈克尔·米森马彻(Michael Mitzenmacher) 伊莱·阿法尔(Eli Upfal) 著
作者: 刘凤岐 编著
作者: 黄宜华 主编 苗凯翔 副主编
参考读物推荐
作者: [美]迈克尔·贝耶勒(Michael Beyeler)著
作者: [印度] 迪潘简·萨卡尔(Dipanjan Sarkar) 著
作者: 杨柏林 陈根浪 徐静 编著