本书是Sun公司J2EE架构师认证考试(SCEA)的指导用书。作为Sun公司认证部门所策划的系列用书之一,它围绕考试中所涉及的内容有针对性地进行介绍,主要包括体系结构和J2EE技术的概述、体系结构的文档化、设计模式、系统安全性以及系统国际化与本地化等。此外还提供一些有关考试的背景信息和技巧。
本书内容丰富,结构清晰,适合于准备SCEA考试的J2EE开发人员使用,同时也可作为Java编程人员的参考用书。
译者序
前言
第1章 什么是体系结构
1.1 了解体系结构
1.2 架构师角色
1.3 服务级别需求
基本要点
检查你的进展
第2章J2EE概述
2.1 使用J2EE实现应用程序
2.2 J2EE API
2.3 J2EE组件
2.4 使用EJB
2.5 指定EJB的类和接口
2.6 使用会话和实体bean
2.7 无状态和有状态会话bean
2.8 EJB生命周期
2.9 实体bean、有状态bean和无状态bean的使用
2.10 使用bean池管理EJB
2.1l EJB的钝化
2.12 使用事务
2.13 使用容器管理的持久性
2.14 使用中间数据存取对象
基本要点
检查你的进展
练习解答
第3章 体系结构的文档化
3.1 UML的构建模块
3.2 UML的常见机制
3.3 UML图
基本要点
检查你的进展
练习解答
第4章设计模式
4.1 创建性模式
4.2 结构性模式
4.3 行为性模式
基本要点
检查你的进展
练习解答
第5章 安全性
5.1 下载的代码、applet和Java安全管理器
5.2 安全基础
5.3 加密
5.4 签名和证书
5.5 构建安全分布式系统的常见工具
5.6 保护系统
5.7 安全网络的拓扑结构
5.8 监控
5.9 通道操作
基本要点
检查你的进展
练习解答
第6章 国际化
6.1 系统国际化
6.2 API
基本要点
检查你的进展
练习解答
第7章 协议
7.1 HTTP
7.2 HTTPS
7.3 IIOP
7.4 JRMP
基本要点
检查你的进展
练习解答
第8章 实例研究
8.1 实例
8.2 解决方案
8.3 考试的第三部分
附录 认证考试内容简介
SCEA考试是为经验丰富的计算机人才所准备的。我们不可能将所有基础知识都精简到这一本书中,所以它只是一个学习指南。我们会尽量涵盖考试所涉及的关键内容,但是你必须理解这些概念以及通过考试的意义。此外,还应该阅读更多的书籍,而且必须对考试所涉及的内容有一个全面的理解。
有些考试问题可能会从不同于本书所提到的角度进行考查。这就是为什么你必须理解这些问题的原因。我们有意回避直接给出任何问题的答案,因为这样只能降低考试的价值。而且,考试的内容本身也在不断地发展,可能会添加新的问题,删除一些旧的问题。这样做是为了减少作弊的机会,也是为了保证考试质量不会下降,从而不会浪费你为了通过此考试所做的努力。
既然本书不会直接给出答案,那它还有什么用途呢?本书介绍了在考试中涉及的主要概念,澄清了所涉及的术语。这将确保你和考试开发人员的同步。本书还列出了你可能感兴趣的一些内容的参考资料。而且,它还提供了自我检查的问题,这些问题可以帮助你确认自己是否真正理解了这些内容。
你可能会很奇怪,你可能不同意本书中给出的某些答案,而这并不表示你是错的。体系结构往往存在众多相互冲突的内容,即便是两个经验丰富的架构师也经常会就如何最佳地解决特定问题提出完全相反的意见。
本书的大多数问题都对客户可能遇到的各种情况进行了仔细地研究,这可以帮助你理解为什么特定的回答会是正确的。但是,理解正确答案与可供选择的答案之间的关系是更重要的。
在考试的多选测试部分,只有一个合理的答案(或者多个答案的组合)。正是由于这个原因,你必须具有客观地评估问题的能力。必须根据所提供的信息回答这些问题,尽量避免增加“如果……但是……因为……”之类的条件。通常,考试只有一个答案。也许有额外的答案也有道理,但由于它不能回答所提出的问题,这个额外的答案也是错误的。
本书并不只能帮助你通过考试,还能帮助你提高专业技能。因为它允许你评估自己的决策制定过程,而且可以确定是否应用了自己的秘诀,或者是否真正能够有效地满足客户的合理要求。如果你是一个经验丰富的架构师,这一点是没有问题的,甚至在许多情况下,利用你的价值填写客户所留下的“空白”是必要的。但是,当你这样做时,应该与客户进行交流,让他们了解你的想法。你可能需要提示他们记住一些额外的信息。
本书的对象
本书并不是针对初级程序员提供考试所需的技术和知识。它是为了帮助具有多年经验的工程师完善其所掌握的知识而编写,虽然并不是所有的人都会使用Java技术;事实上,如果你还使用过其他技术的话,这本书将会更好地“武装”你的头脑。你一定已经注意到了这里所讨论的技术的广泛意义,但是你不一定要具有所有这些技术的使用经验。
我们编写本书主要针对以下读者:
·理解面向对象的概念,例如封装性、继承性和多态性,而且熟悉Java编程语言中所用的接口;
·曾经使用过面向对象语言进行编程,例如Java编程语言;
·曾经设计过面向对象系统;
·正在准备SCEA考试,或者准备提高作为架构师的水平。
当然,本书还会对许多人有用。例如,许多具有一定技术背景的管理人员也会觉得它非常有帮助。本书将帮助他们理解整个体系结构,从而能够更有效地进行管理。
本书的结构
本书的章节或者介绍了考试中所包括的常规内容,或者是考试多选部分的关键内容。有些章还提供了一些全面的背景信息和技巧,而有些则直接与任务指派部分相关。
那些与考试内容有直接关系的章节具有统一的格式。它们都是从内容的描述开始,并且提供了关于此内容的背景信息。接下来是对我们假设你已经掌握了的预备知识的描述。请注意这些预备知识,我们已经尽量做了压缩。在有些章节中,可能不需要任何预备知识。但是如果列出,你必须确保已经熟练掌握。在介绍预备知识后,这些章节将开始讨论内容。从这一点看,你将会非常方便地找到对主要问题的描述。
在讨论了这些问题后,本书将帮助读者检查每一章所包含的关键内容。这将帮助你了解并复习这些内容。“基本要点”部分包括了一个简明的列表。如果你认为已经掌握了每一章的问题,就可以直接阅读这个列表并且检查是否熟悉其中的信息。
最后,每一章都给出了一些自我测试的问题。虽然有些自我测试问题与考试问题的格式相同,但是不能将这些问题看作是考试问题的示例。它们只是用来让你思考,并且检测你对内容的理解。使用宽泛的问题进行检查比使用更精确的考试问题进行检查要简单得多。你不用太在意书中给出的答案是否与你的答案相符,应该将注意力集中在问题所给的思路上。作为例子,本书包含了使用自由形式答案的问题,例如,“什么问题将影响一个决策的制定?”虽然在考试中你不会遇到这样的问题,但是还是应该列出你的决策制定过程并且把重点放在任务指派上。当你回答这种类型的问题时,应该有一种感觉一一“没问题!我已经考虑了所有的情况厂而且你还应该有一种已经理解了问题的全部的自信。如果你遗漏了某些方面,或者你真的不知道特定的内容,就应该对自己诚实。在自我测试中采取诚实、专业的态度是发挥自己最佳水平和从本书吸取最佳内容的惟一途径。