本书是EJB组件技术教程,专注于EJB的概念、方法、开发过程的介绍。同时,本书还研究许多高端的EJB知识,使得开发者能够真正理解和掌握EJB,实践出真知。因此,通过阅读此书,开发者将精通EJB。
当然,说起来容易做起来难。EJB组件技术吸收了企业级计算领域中各个方面的丰富经验和知识,比如分布式计算、数据库、安全性、基于组件的架构、面向消息系统等。这对于整个Java社区而言,实际上是向前迈进了一大步。但是,这对于开发者而言意味着需要花费更多的精力去研究和学习EJB组件技术。别担心,本书正是从EJB最基础的知识开始,向开发者阐述EJB中最为重要、基础的内容。开发者只要有Java基础便可以读懂本书。
在整个过程中,开发者可以去Sun公司网站下载EJB规范,具体网址如下:http://java.sun.com/products/ejb/docs.html
本 书 特 点
这是一本历史悠久的技术书籍,本书第一版于1999年出版,2002年出版了第二版,2005年出版了第三板。写作EJB 3.0也不是件容易的事情,在经过几位作者频繁地商议之后,才确定了本书的写作内容、手法等方方面面。总的而言,在各个版本的写作过程中,作者之间都保持了非常多的沟通。我们确信,开发者会喜欢这本书。本书特点如下。
更新到EJB 3.0。在编程和部署模型方面,同EJB 1.x、2.x相比,EJB 3.0变化非常大,本书采用了自顶向下的方式来阐述这些变化。我们不仅叙述这些变化本身,还更多地将精力放在为什么要改变现有EJB技术的讨论上。另外,本书还深入阐述了Java持久化API及其定义的实体。JPA采用了POJO(Plain Old Java Object,POJO)编程模型,开发者可以在EJB组件中使用它。本书在“如何协同使用EJB组件和POJO实体的实现技巧和最佳实践”内容方面花费了大量篇幅。
确保广度和深度。本书并没有研究完整的EJB规范,也没有涉及到EJB技术的各个细节。相反,它涉及到了EJB组件技术中最为重要的内容,并且讨论了EJB高级技术。如果开发者在开发EJB组件的过程中需要完整的EJB技术指南,请参考EJB规范。作为一本交互性好、读起来有趣、涉及到EJB中各方面知识的书籍,本书正是开发者要寻找的。
尽量短小精悍。我们在保证图书质量的前提下,尽量缩小全书篇幅,因此,取消了很多重复的实例。通过阅读此书,可以帮助开发者快速掌握EJB技术。作为技术书籍的写作者,写作短小精悍的图书比长篇大作更难。
针对开发者写作。本书并不是为高级商务人士而写的,这是一本技术书籍。
保证图书格调的正确性。本书几位作者都拥有大量的架构、开发、咨询、知识传播经验,并将这些应用到图书写作中。
对话风格。在阅读此书的过程中,开发者就像同作者面对面交流一样,从而拉近我们之间的距离,这使得开发者能够很轻松地掌握EJB技术,而且效率极高。
图、列表并重。图片比文字表达信息的能力强得多。而且,通过图片和列表能将不同内容的文字区分开,这有利于读者快速阅读。
一致的声音。本书虽然是几个作者共同写作完成的,但开发者并不会觉察到,因为全书的口吻是一致的。我们在确保风格一致的同时,还保证这些一流的作者能够共同完成一流的EJB知识写作,并传授给开发者。
既是介绍性书籍,又深入研究技术。通常,开发者手头都会有很多介绍技术的书籍,本书冲出了这个领域,高级技术与介绍性知识并重。为了达到这一目标,我们做过大量研究。比如,参与论坛讨论,开发大量的实际项目,参加学术会议和研讨会,同制定EJB 3.0规范的专家组进行沟通,同全世界顶级专家进行合作。
独立于特定EJB服务器厂商。本书给出的实例代码能够运行在任何EJB容器中,开发者可以依据自身熟悉的Java EE应用服务器来选用相应的开发和测试环境,从而验证实例代码的运行情况。在开发这些实例代码期间,确保它们能够在Java EE 5参考实现中稳定运行,而没有采用其他厂商的特定产品。
提供所有源代码,并公开于网上。开发者能够通过互联网下载本书的最新代码,这些代码都通过了最新版Java EE 5应用服务器的测试。
全书内容安排
全书共分为4个部分。
第一部分对EJB编程基础知识进行介绍。因此,它概要性地对EJB进行了阐述。无论是EJB初学者,还是资深EJB专家,这部分内容都值得阅读。其中包括的章节如下。
第1章是企业计算概述。本章将探讨基于组件的软件,分布式计算框架,应用服务器级软件,面向服务架构和容器;另外,还将介绍EJB和Java EE方面的知识。
第2章为第3章介绍革命性的EJB 3.0埋下伏笔。整个Java EE领域都在强烈要求简化EJB技术的编程和部署模型,而EJB 3.0做到了。通过阅读本章内容,能够加深开发者对传统EJB(EJB 1.x和EJB 2.x)的认识,从而为EJB 3.0引入的变化做好准备。
第3章成功开发了一个简单的EJB 3.0组件——HelloWorld;与此同时,还介绍了EJB基础技术,比如IIOP、位置透明性、JNDI命名服务、注释、部署描述符等。
第二部分重点关注EJB编程的具体内容和过程。它向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean。更有趣的是,本部分研究了新的Java持久化API和POJO实体。在整个过程中,本书结合大量的实例代码对上述内容进行阐述。
第4章介绍会话Bean。本章将研究有状态和无状态会话Bean之间的区别、如何开发会话Bean、会话Bean的工作机理。
第5章重点研究如何使用EJB模型实现Web服务。本章特别展示了如何将无状态会话Bean发布为Web服务。
第6章介绍Java持久化API。这是由EJB 3.0专家组制定的一项JCP规范(http://www.jcp.org)。JPA采用的开发和部署机制使得POJO实体能够替代原先的实体Bean,这在很大程度上降低了EJB 3.0技术的复杂度。本章还将介绍O/R Mapping的基础知识,实体(Entity)概念也在本章的介绍范围中。
第7章专门针对消息驱动Bean进行了全方位的介绍。一开始,本章回顾了面向消息的中间件(Message-Oriented Middleware,MOM)和Java消息服务的一些知识。在基于Java的MOM软件中,JMS的地位是不言而喻的,实际上,JMS是消息驱动Bean的一种支撑技术。随后,本章针对开发面向消息的EJB应用展开了多方面的讨论,并给出了大量的研究实例。
第8章讨论EJB技术中其他有意思的内容。比如,如何借助于JNDI命名服务访问资源,如何协同使用EJB和注释等;最后,还针对EJB 3.0新特性给出了相应的研究内容,比如依赖注入机制、拦截器。
第三部分是本书最令人兴奋的一部分内容,专注于高级EJB专题。其包括的章节如下。
第9章针对高级持久化实体概念进行了全面的讨论。主要涉及的讨论有继承、多态、实体关系、改进的EJB-QL。通过阅读本章内容,开发者能够对持久化实体有更深入的认识,从而指导他们的实际工作。
第10章专注于事务。在构建事务性EJB应用中,事务的使用占据了尤为重要的地位。事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)等特点。本章首先从事务的概念入手,然后介绍如何在EJB中使用事务;本章还针对Java事务API(Java Transaction API,JTA)给出了大量的研究内容。
第11章深入研究了EJB涉及到的安全性。重点包括的内容有Java认证和授权服务(Java Authentication and Authorization Service,JAAS)、安全性的互操作、Web服务的安全性。
第12章针对EJB Timer服务(用于任务调度)给出了介绍。EJB定时器服务能够在指定的时间点自动执行相应的任务(比如,某EJB方法)。
第13章介绍了在EJB应用中如何选用各种Web应用框架,模型驱动开发(Model-Driven Development,MDD)工具等;另外,还研究了EJB设计、开发及测试中的最佳实践。
第14章为设计和部署高性能的EJB应用给出了大量的技巧。很多设计策略都在本章进行了研究,比如如何在有状态和无状态会话Bean间选型、如何在本地和远程接口间选型等;另外,本章还为各种类型的EJB组件和基于JPA的实体提供了大量的性能调优技巧。
第15章深入剖析与EJB技术平台相关的企业应用集成问题。本章对各种可用的集成方式都做了认真细致的分析,并且讨论了用于集成EJB组件技术的各种技术。当然,Java EE连接器架构是用于集成后端企业应用的主要利器。本章除了介绍Java EE连接器架构外,还结合实例深入讨论了如何开发连接器。
第16章研究大型EJB系统中的群集技术。开发者将体会到群集技术的工作机理,而且能够深入到具体EJB容器实现群集的策略中。如果开发者需要在多台协作的机器间构建系统,则建议认真阅读本章内容。
第17章构建了一个实际Java EE系统,其中使用到EJB组件技术。开发者将领略到EJB同Java EE含有的其他技术栈的协同使用,比如,如何在EJB组件中使用持久化实体,如何使用Java Servlet和JSP技术连接到EJB组件;与此同时,本章还演示了如何使用UML设计EJB对象模型。
附录收集了与EJB组件技术相关的其他内容。当然,有些开发者可能经常要翻阅这部分内容,但其他的开发者未必。
附录A阐述基于Inte.net ORB间协议的Java远程方法调用(RMI-IIOP)、Java命名和目录接口(Java Naming and Directory Interface,JNDI)。在使用EJB技术前,开发者务必掌握它们。如果开发者刚接触EJB,则请先阅读这部分内容。
附录B讨论Java平台新引入的注释(Annotation)。EJB 3.0规范支持的各种注释都给出了阐述,开发者在编写EJB代码时可以时常翻阅这部分内容。
图 解
本书的大部分图都是基于统一建模语言(Unified Modeling Language,UML)制作的。如今,在软件工程领域中,UML是事实上的标准,如果开发者不熟悉它,请参阅《The Unified Modeling Language User Guide》(Addison-Wesley,ISBN 0201571684)一书。此书为开发者阐述了如何在软件开发中有效地使用UML技术。UML对面向对象的贡献很大。通常,开发者在具体编码之前,都会使用UML抽象出对象模型,从而完成系统的设计工作。当然,这方面的内容并不是本书的重点。
服 务 网 站
为保证在本书出版之后,开发者能够同它保持持续更新,本书特别提供了Web站点,它包括了如下内容。
本书所有的源代码。借助于Ant脚本,开发者能够编译并运行它们。注意,任何兼容于Java EE 5规范的应用服务器都能够运行本书展示的实例。
对源代码的持续更新。
错误信息。
本书的PDF版本。
该Web站点如下:http://www.wiley.com/go/sriganesh
反 馈
对于EJB编程人员而言,他们都拥有大量的开发经验,并喜欢同大家分享。如果您乐意,请通过E-mail告知我们,有关你们开发的实际案例、失败教训或者任何有助于EJB开发的经验,我们将在Web网站上发布,与广大开发者共享。
起 程
至此,一切准备工作已经就绪,开始探索EJB 3.0组件技术吧!
关 于 作 者
Rima Patel Sriganesh 目前,Rima在Sun Microsystems公司的Technology Outreach Group从事技术工作。她擅长于Java、XML和集成平台。同时,Rima还代表Sun公司参与各种金融服务标准的制定工作。她参与了3本图书的写作,并且经常通过论文和博客形式发表自己的研究成果。Rima经常在很多重量级的会议上发表演说。
Rima毕业于印度古杂拉特州的M.S.大学,主攻数学专业。目前,Rima同她丈夫生活在大波士顿。
Gerald Brose 在一家研发项目管理软件的公司领导Projektron的软件开发,在这之前,他担任过项目经理、软件架构师和研究员。获得计算机科学博士学位。
Gerald是分布式对象计算和中间件安全性领域的专家,主要擅长CORBA、Java EE和Web服务。他还是《Java Programming with CORBA》的合著者,由Wiley于2001年出版发行。
作为Java Open Source社区的成员,Gerald负责维护JacORB项目,JacORB是Java领域中广泛使用的CORBA ORB。如今,JBoss和JOnAS Java EE应用服务器中使用了JacORB。他与妻子和两个儿子生活在德国柏林。
Micah Silverman 一名专业的软件架构师和顾问,行业经验15年。自Java于1995年诞生时,他便投身于Java的开发工作。也就在那时,他成立了M*Power Internet服务公司,这是一家提供软件架构、开发和安全性服务的咨询公司。他写过大量的技术文章,文章涉及到软件开发、信息安全和操作系统等内容。
回书目 下一节 |