Floyd Marinescu Floyd EJB Second ...

download Floyd Marinescu Floyd EJB Second  

Floyd Marinescu Floyd EJB Second Edition ... ¨¯â€¨â‚¬‡›ˆ

If you can't read please download the document

  • date post

    05-Jun-2020
  • Category

    Documents

  • view

    10
  • download

    0

Embed Size (px)

Transcript of Floyd Marinescu Floyd EJB Second ...

  • 译者序 随着 J2EE 技术的日益流行,越来越多的企业都选择使用 J2EE 技术来构建它们的应用

    系统,但是,EJB 技术是一项高端技术,如何构建高效、安全和可靠的基于 EJB 的企业应 用系统就成为了软件开发者要面临的一个重大挑战。很多有经验的 EJB 系统开发人员在他 们的实践过程中总结出了许多可以提高系统性能的用于 EJB 编程的可重用方法,从而形成 了 EJB 设计模式。这些设计模式可以帮助其他的 EJB 开发人员提高项目的质量,缩短项目 的开发周期。但是 EJB 设计模式种类众多,所针对的问题各不相同,在解决问题时的侧重 点也不尽相同。因此需要对它们进行分类整理,综合分析,使 EJB 开发人员能够在实际项 目中选择最合适的设计模式。

    《EJB 设计模式》一书正是以这种方法来介绍 EJB 设计模式的。这本书分为两大部份, 第一部介绍了 EJB 设计模式语言,包括系统架构设计模式、层内数据传输模式、事务和持 久性模式、客户端 EJB 交互模式以及主键生成策略等;第二部分介绍了从需求到模式驱动 的设计、用 Ant 编译与用 JUNIT 进行单元测试的 EJB 开发过程、实体 Bean 的替代物以及 众多的灵活小巧的设计技巧等。这本书通俗易懂,书中述及的 EJB 设计模式都从实际的 EJB 项目中抽取的,所以它们非常实用。通过使用这些设计模式,使得系统的质量得以提高,并

    且更加易于被熟悉这些模式的开发者所理解。 本书的作者 Floyd Marinescu 是 EJB 设计模式方面的著名专家,他领导了 EJB 设计模

    式项目。并且和另外一名 EJB 领域的专家 Ed Roman(《精通 EJB》一书的作者)一起成立 了一个培训和咨询公司——中间件公司(MiddleWare),以帮助开发者掌握企业 Java 技术。

    我们在翻译本书的过程中力求终于原著。对于本书中出现的大量的专业术语尽量遵循标

    准的译法,并在有可能引起歧义之处著上了英文原文,以方便读者的对照理解。 全书的翻译由饶若楠、陈昊鹏和张保稳合作完成。由于我们水平有限,书中出现错误与

    不妥之处在所难免,恳请读者批评指正。

  • 前 言

    许多具有良好体系结构的 EJB 项目都使用了设计模式,不管开发者当时是否意识到他在使 用设计模式。通常,开发者在项目开发过程中会考虑他们的最优方案,他们并没有意识到这些

    最优方案实际上就是设计模式――用于编程的可重用方法。设计模式对其他开发者的项目开发 也颇有益处。

    这就是这本书中述及的 EJB 设计模式的妙处所在――它们是从真实的 EJB 项目中抽取的 实用的现实世界内的模式。J2EE 社区鼓励成员们去到 Serverside.com 上分享他们的模式。

    Floyd Marinescu 是 EJB 世界里设计模式方面的带头的专家,他领导了本 EJB 设计模式项 目。Floyd 和我在过去几年中一直在一起工作。我们成立了中间件公司(MiddleWare)。该公司 是一个培训和咨询公司,帮助开发者掌握企业 Java 技术。

    在中间件公司,我们为现实世界中的项目提供咨询,帮助提高设计模式的质量。我们也曾

    经向诸位这样的开发者讲授 EJB 设计模式方面的培训课程,同时这些课程的反馈显著提高了本 书的质量。

    在这本书中,Floyd 将向大家展示许多的 EJB 设计模式,它们可以用于提高 EJB 项目的质 量。在进行合理的判断后,通过使用这些设计模式,我们可以改善体系结构的质量,使得代码

    更加雅致和可重用,使得系统易于被熟悉这些模式的开发者所理解。 关于这本书的很好的一点是它易于理解。Floyd选择了一种叫做Alexandiran形式的容易理解的 写作模式的形式。这使得任何懂得用EJB编写程序的人都可以容易地阅读本书。(如果你还不了 解EJB,你或许想读一下另一本拙作,《精通EJB(第二版)》(Mastering Enterprise JavaBeans, Second Edition,)。在书店和serverside均可找到它。)另一个选择是你也可以参加一个EJB的培 训课程,比如中间件公司提供的课程之一。

    当你准备开始阅读时,你将获益匪浅。Floyd 用了整整一年时间解决 EJB 设计模式的概念 问题,这将对整个 EJB 团体都有益处。能和 Floyd 在这个项目上一起工作,我感到很荣幸。同 时我也学到很多东西。相信你也会的。

    Ed Roman The Midlleware Company 的 CEO 精通 EJB 一书的作者。

  • 简 介

    这本书关系到我们的生活质量。无论是你是一名开发者、系统架构师还是项目经理,在一

    天结束的时候,我们都会为在构建和发布设计精良的应用时没有产生代价高昂的错误,没有工

    作到深夜和没有经历那种长达数月的压力而感到高兴。我们都是普通人,都希望在一天结束的

    时候看到项目在按进度进行,并且回家后有充足的时间去干任何我们喜欢干的事情。 遗憾的是,当使用诸如Java 2 Enterprise Edition(J2EE)这类正处在发展阶段的新技术时,

    设计精良的应用并不容易实现。在相对较新的领域内,总是非常缺乏有关设计优良系统的知识,

    开发者要么低效率地从头开始努力学习,要么每天都在项目上产生很多代价高昂的错误。如果

    没有任何有条理的最优方法集可遵循,那么EJB开发者的工作将十分困难。学习优良的设计方 法在技术上对于初学者来说尤其困难,他们中的许多人在这之前从来就没有构建过分布式系统,

    并且不理解影响分布式系统设计的最基本需求。 使事情变得更糟的是,EJB规范从一个版本到另一个版本之间的变化总是会给在设计优良

    的EJB系统时所使用的设计方式带来显著的变化。特别是随着EJB2.0规范的引入,甚至在大多 数最近出版的有关EJB的书中所讨论的多年来积累的最优方法都将不再适用,或者达不到相同 的目的了,使用这样的最优方法只能导致设计出的系统非常拙劣。

    这本书的内容(以及Middleware 公司的“EJB for Architects” 课程的内容,它被用于教 授这本书中所描述的模式)所关注的是传播精妙的设计思想,提高开发者设计的应用的质量,

    从而提高开发者自己的生活质量,我们的最终目的是希望能够帮助你学习在当今业界中被使用

    的顶尖的设计策略,使得你能够快速地设计出高效的、可扩展的和可维护的系统。 我们希望使用模式(Pattern)这种机制来给你传授设计知识。

    什么是模式?

    我喜欢将模式看作是对一个常见的重复性问题的最优方法解决方案。也就是说,一个模式

    说明并解释了一个在设计和实现一个应用时所产生的重要的或者是具有挑战性的问题,并且讨

    论了对这个问题的最优方法的解决方案。随着时间的推移,模式开始体现出产生它的业界的集

    体知识和经验。例如,在这本书中的模式表示了成千上万的来自TheServerSide和业界的EJB 开发者的知识,他们的意见和评论为这本书提供了素材。

    模式的好处

    模式当然有很多的用处,但是下面是一些可以帮助促进诸如J2EE这样的新软件平台成熟的 最重要的好处:

    帮助提供了一种为讨论设计问题而使用的高级语言。EJB开发者可以使用在这本书中的模式 名字来高效地共同讨论实现细节。想象一下描述一个应用是使用无状态会话façade (stateless session façade) 模式构建的比设法解释会话 bean 怎样包装实体 bean 的所

  • 有语义要快多少。 预先提供了许多设计工作。一个编写优良的模式详细讨论了需要解决的问题,并且通过正

    反两方面的讨论,说明了问题应该如何被解决,以及其它应该被了解的问题。通过阅读一

    个模式,可以预先讨论和考虑许多有挑战性的并且是潜在的、被隐藏的问题。 模式的组合有助于可复用的体系结构。模式总是在彼此之间互相引用和依赖。这种模式之

    间的连接适合于创建一种被称为模式语言(pattern language)的东西:即一系列互联的模 式,作为一个整体,通常建议将其作为一个应用的完整的体系结构。这样,当阅读这本书

    时,某些互联模式的集合将形成一个可以被反复应用于多个项目的可复用的体系结构。 特别是在这本书中,我们选取的焦点是与EJB相关的非常底层的模式,也就是说,不同于可

    以被应用于多种技术的文档通用的抽象模式。我们将焦点放在怎样完成EJB开发上,讨论与具 体EJB相关的问题和与具体EJB相关的实现的复杂性。这样,在这本书中,我们与许多其它的 通常是说明一个模式的具体实现的模式书不同(那些模式不是与具体的项目相关的),我们的

    目标是为您——EJB开发者/体系架构师提供在基于EJB/J2EE的应用中使用那些模式所必需的 所有信息。

    模式的起源

    对许多人来说,模式首先是通过里程碑式的书籍 design pattern:elements of reusable object-oriented sof