深入浅出J2EE架构

深入浅出J2EE架构
作 者: 库姆 圣吉斯 撒伯拉汗门亚 宋梅 张学平
出版社: 清华大学出版社
丛编项: 应用程序设计与部署的原理
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: J2EE
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者:B V KumarB V Kumar拥有15年以上的各级IT领域工作经验,曾在新加坡电脑视景公司、韩国首尔Parametric技术公司及Sun Microsystems印度分公司任职。Kumar博士目前是Infosys的首席研究员和技术专家,负责电子商务研究实验室的新技术计划,承担开发概念验证和原型、推荐企业架构师及咨询等工作。Kumar已在Infosys公司E&R为不同角色设计和开发了多门基于J2EE企业架构的课程,并成为Sun Microsystems公司开发人员执行顾问委员会的会员。

内容简介

J2EE迅速风靡了许多大型企业和小型企业。大多数在《财富》排行榜中占有一席之地的公司都投入了资源和资金来实现基于J2EE框架的企业解决方案。银行业和其他一些金融公司将J2EE视为企业解决方案战略的重要部分。这样,面向业务的企业需要更完善、更深刻地理解J2EE技术的概念、设计和部署。本书旨在将J2EE技术生动鲜活地展现给企业应用程序开发活动中涉及的各类人员,它介绍J2EE架构知识,解释其他支持和服务技术、API和规范如何帮助架构师和设计人员在合理时间范围内交付企业解决方案。为理解J2EE概念,有必要登临高处,一览企业面临的各种问题。Java的演变简单自然,行业研究计划和强大的社区支持在推动Java的发展。除Sun Microsystems外,诸多具有重要行业影响力的巨头,如Oracle、IBM、BEA、Borland、Sybase、Hewlett Packard、Apple和SAP等,都纷纷在各类平台上推出基于J2EE的企业解决方案。社区对推进Java和J2EE做出重要贡献。有300多个JSR(Java规范请求)在处理Java各方面的要求,处理企业版要求的JSR达100多个。处理和审议要求的委员会由多个组织组成,这些组织以JCP(Java社区流程)会员的身份走上舞台。JSR的规范领导者不一定来自Sun Microsystems公司。例如,IBM的Jim Knutson负责领导JSR 109(用于实现企业Web服务)1;Oracle的Mark F Homik 是JSR 247(数据挖掘2.0)的规范领导者。显而易见,行业研究计划在推进这项基于需求的技术一路前行。今天,几乎所有大学和研究所都将Java编程语言纳入课程提纲2。Java的各个版本,尤其是J2EE正渗透到不同等级。在大学高年级和研究生级别,这表现得尤其突出。学术圈也在不同等级积极推进Java和相关技术。使计算机科学、工程和信息技术相关学科的研究生了解这项技术正变得日益重要。尽管诸如Servlet、JSP和EJB的组件技术已为人熟知,但这些组件在架构级别的交互同样是一个引人注目的方面。企业问题的多维特点将人们的一部分视线从功能要求转移到巨大的非功能要求上。本书利用三维方法,深入探讨这些重要方面。这种淳朴典雅的行文方式能使开发人员强化理解“层”和“级别”为什么能呈现企业解决方案的非功能要求,以及呈现的方式。本书还介绍作为技术和平台的J2EE如何恰到好处地...

图书目录

第1章 简介 3

  1.1 企业的含义 3

  1.2 企业和系统 4

  1.3 企业的多样性 4

  1.4 企业的发展 5

  1.5 企业和遗留系统 6

   1.5.1 遗留系统的含义 6

   1.5.2 遗留系统的组成 6

   1.5.3 遗留系统的重要性 9

  1.6 成长企业的需要 9

   1.6.1 迁移的可能性 10

   1.6.2 安全环境 10

   1.6.3 可靠事务 10

   1.6.4 系统的可访问性 10

   1.6.5 根据负载扩展系统 10

   1.6.6 访问的响应速度 10

  1.7 小结 11

  1.8 复习题 11

第2章 “架构师”助企业降低复杂性 12

  2.1 概述 12

  2.2 早期的企业 12

   2.2.1 大型机时代 12

   2.2.2 客户机/服务器时代 13

   2.2.3 分布式时代 13

  2.3 当前的企业 14

  2.4 架构原理 15

   2.4.1 架构师及其职责 15

   2.4.2 架构术语 16

   2.4.3 架构师和设计师 17

   2.4.4 架构方法 17

  2.5 架构技术 20

  2.6 小结 20

  2.7 复习题 20

第3章 管理企业的复杂性 21

  3.1 概述 21

  3.2 新架构的设计原理 21

  3.3 三维架构 21

   3.3.1 分层 22

   3.3.2 层 23

   3.3.3 企业应用程序质量 24

  3.4 小结 34

  3.5 复习题 34

第4章 J2EE简介 35

  4.1 概述 35

  4.2 J2EE的要素 35

  4.3 规范和API 36

  4.4 参考实现 37

  4.5 J2EE蓝图 37

  4.6 测试套件 38

   4.6.1 兼容测试套件 38

   4.6.2 J2EE应用程序验证包 39

  4.7 综述 40

   4.7.1 标准产品 40

   4.7.2 标准服务 43

  4.8 详述 44

  4.9 小结 47

  4.10 复习题 47

第5章 企业解决方案和J2EE 48

  5.1 概述 48

  5.2 企业解决方案 48

  5.3 Java的发展历程 49

   5.3.1 Java 1.1 51

   5.3.2 Java 2 52

  5.4 J2EE的发展历程 54

   5.4.1 J2SE 54

   5.4.2 J2ME 55

   5.4.3 J2EE 55

  5.5 J2EE社区 56

  5.6 J2EE是恰到好处的企业解决方案 57

  5.7 小结 58

  5.8 复习题 58

第Ⅱ部分 J2EE核心原理

第6章 J2EE规范的核心要素 61

  6.1 概述 61

  6.2 Servlet规范 63

   6.2.1 Servlet的发展史 63

   6.2.2 Servlet规范详解 63

  6.3 JSP规范 74

   6.3.1 JSP的发展史 74

   6.3.2 JSP规范详解 74

   6.3.3 JSP标准动作 78

   6.3.4 JSP文档 80

  6.4 EJB规范 81

   6.4.1 EJB的发展史 81

   6.4.2 EJB规范详解 82

   6.4.3 EJB详解 82

   6.4.4 EJB的生命期 85

   6.4.5 EJB的高级特性 91

  6.5 小结 91

  6.6 复习题 91

第7章 客户层 92

  7.1 概述 92

  7.2 客户层的重要性 92

   7.2.1 客户端的职责 92

   7.2.2 客户端的要点 93

  7.3 客户层的组件 94

   7.3.1 HTML客户端 94

   7.3.2 Applet客户端 95

   7.3.3 MIDlet客户端 96

   7.3.4 Java应用客户端 96

   7.3.5 非Java客户端 96

   7.3.6 Web服务客户端 97

  7.4 客户层容器 97

   7.4.1 浏览器环境 97

   7.4.2 Java环境 97

   7.4.3 移动环境 97

  7.5 小结 97

  7.6 复习题 98

第8章 表示层 99

  8.1 概述 99

  8.2 Web层的重要性 99

   8.2.1 静态和动态内容 101

   8.2.2 请求/响应 101

   8.2.3 轻量级 101

   8.2.4 会话 101

   8.2.5 可伸缩 101

   8.2.6 可能实现业务逻辑 102

  8.3 Web容器 102

  8.4 Web组件 102

   8.4.1 Servlet 102

   8.4.2 Filter 103

   8.4.3 JSP 104

  8.5 MVC架构 106

  8.6 Web层的最佳实践和指南 108

   8.6.1 控制器组件 109

   8.6.2 表示组件 109

  8.7 Web层的设计模式 109

  8.8 J2EE专用的设计模式 111

  8.9 小结 112

  8.10 复习题 112

第9章 业务层 113

  9.1 概述 113

  9.2 业务层的重要作用 113

  9.3 业务容器 114

  9.4 业务组件 115

   9.4.1 会话Bean 115

   9.4.2 实体Bean 115

   9.4.3 消息驱动的Bean 116

  9.5 会话Bean详解 116

   9.5.1 无状态会话Bean 116

   9.5.2 有状态会话Bean 117

  9.6 实体Bean详解 118

   9.6.1 持久数据 118

   9.6.2 主键 119

   9.6.3 关系 119

   9.6.4 实体Bean和池化 121

   9.6.5 BMP实体Bean 122

   9.6.6 CMP实体Bean 122

  9.7 MDB详解 123

  9.8 业务层的业务对象 123

  9.9 MVC架构与业务层 124

  9.10 业务层的最佳实践和指南 124

   9.10.1 会话Bean,有状态还是无状态? 124

   9.10.2 实体Bean,BMP还是CMP? 125

   9.10.3 MDB的使用时机和位置 125

   9.10.4 数据访问对象 126

   9.10.5 值对象 126

  9.11 业务层的设计模式 126

   9.11.1 Business Delegate 127

   9.11.2 Service Locator 127

   9.11.3 Session Facade 127

   9.11.4 Business Object 127

   9.11.5 Application Service 127

   9.11.6 Composite Entity 128

   9.11.7 Transfer Object 128

   9.11.8 Transfer Object Assembler 128

   9.11.9 Value List Handler 128

  9.12 小结 128

  9.13 复习题 129

第10章 EIS集成层 130

  10.1 概述 130

  10.2 已有的EIS系统 130

   10.2.1 应用系统 130

   10.2.2 数据库系统 130

   10.2.3 遗留系统 131

  10.3 EIS集成方案 131

   10.3.1 基于JDBC API的集成方案 131

   10.3.2 基于JMS的集成方案 132

   10.3.3 基于J2EE连接器架构的集成方案 132

  10.4 集成层的最佳实践和指南 133

   10.4.1 使用EIS访问对象 134

   10.4.2 连接到EIS 134

  10.5 小结 134

  10.6 复习题 135

第11章 服务 136

  11.1 概述 136

  11.2 事务 136

   11.2.1 普通事务 137

   11.2.2 嵌套事务 137

   11.2.3 链式事务 137

   11.2.4 Sagas 137

  11.3 J2EE的事务参与者 137

   11.3.1 JTS和JTA 138

   11.3.2 业务层的事务 138

  11.4 安全 141

   11.4.1 身份验证 141

   11.4.2 授权 143

   11.4.3 消息保护 143

   11.4.4 审计 143

  11.5 小结 143

  11.6 复习题 144

第Ⅲ部分 案 例 研 究

第12章 ServeNVolley公司 147

  12.1 概述 147

  12.2 目前的结构 147

  12.3 可供使用的服务 148

  12.4 要求 149

  12.5 假设、风险和约束 149

  12.6 可能的解决方案 150

   12.6.1 高级架构 150

   12.6.2 设计层和设计模式的运用 151

  12.7 小结 152

  12.8 复习题 153

第13章 SafeDrive.com门户 154

  13.1 概述 154

  13.2 目前的结构 154

  13.3 可供使用的服务 155

  13.4 要求 155

  13.5 假设、风险和约束 156

  13.6 可能的解决方案 156

   13.6.1 高级架构 156

   13.6.2 设计层和设计模式的运用 157

  13.7 小结 158

  13.8 复习题 159

第14章 SafeDrive.com门户解决方案 160

  14.1 概述 160

  14.2 高级设计 160

  14.3 组件和部署细节 161

  14.4 客户层 162

  14.5 Web层的设计 167

  14.6 业务层的设计 209

  14.7 小结 247

  14.8 复习题 247

附录A 部署描述符和打包文件 249

附录B 池和池化 260

附录C 设计模式 262

  C.1 表示层设计模式 263

  C.2 业务层设计模式 266

附录D Sun Java Studio Enterprise 269

  D.1 安装 269

  D.2 利用JSE构建应用程序 270

   D.2.1 JSE IDE的要点 271

   D.2.2 新添数据库 273

   D.2.3 新添数据库驱动程序 274

   D.2.4 创建连接池、数据源和持久管理器 276

   D.2.5 创建会话Bean 281

   D.2.6 创建CMP实体Bean 284

   D.2.7 创建消息驱动的Bean 288

   D.2.8 创建Web应用程序客户端 292

   D.2.9 创建一个J2EE应用程序 294

  D.3 部署J2EE应用程序 295

   D.3.1 使用JSE部署应用程序 295

   D.3.2 使用浏览器管理控制台部署应用程序 297

  D.4 测试J2EE应用程序原型 298

  术语表 299