《分布式计算》以分布式计算范型的发展演变为线索,由简入繁、由浅入深地介绍Socket通信程序、分布式对象技术、组件开发技术、面向服务体系结构等内容;以Socket应用层程序、Sun公司的RMI(Remote Method Invocation)、OMG组织的CORBA(Common Object Request Broker Architecture)、Sun公司的EJB(Enterprise JavaBeans)规范、Web 服务(Web Services)和SOA(Service?Oriented Architecture)具体开发技术为例,向读者全面介绍分布式计算技术的基本概念、发展演变、开发过程、规范标准、部署应用等内容。
《分布式计算》可作为计算机科学与技术专业高年级本科生和研究生学习分布式计算技术的教材,也可作为分布式计算领域的研究与开发人员的参考书。
出版说明
前言
本书知识点结构
第一部分 基 本 概 念
第1章 绪论
1.1 引言
1.1.1 分布式计算的产生背景
1.1.2 分布式计算的发展历程
1.1.3 分布式计算技术的特点
1.1.4 中间件技术
1.2 软件设计的基本思想
1.2.1 隐式地与显式地
1.2.2 逻辑的与物理的
1.2.3 面向对象技术与UML
1.2.4 软件体系结构与MDA
1.3 分布式计算基本范型
1.3.1 分布式计算范型的概念
1.3.2 消息传递范型
1.3.3 远程过程调用范型
1.3.4 分布式对象范型
1.3.5 分布式组件模型
1.3.6 面向服务的体系结构
1.4 进程间通信
1.4.1 进程间通信的基本原理
1.4.2 接口与接口定义语言
1.4.3 数据表示与编码
1.4.4 事件同步机制
思考与练习
进一步阅读
第2章 基于Socket的通信
2.1 基本原理
2.1.1 Socket API的基本概念
2.1.2 Java对网络通信的支持
2.1.3 TCP、UDP与端口
2.2 数据报Socket
2.2.1 基本编程原理
2.2.2 面向无连接数据报UDP
2.2.3 面向连接数据报UDP
2.3 流式Socket
2.3.1 基本编程原理
2.3.2 单线程服务程序与客户程序
2.3.3 多线程服务程序
2.4 应用层协议开发
2.4.1 理解应用层协议
2.4.2 Daytime协议开发
2.4.3 FTP协议开发
2.4.4 HTTP协议开发
思考与练习
进一步阅读
第二部分 分布式对象技术
第3章 RMI基本原理与开发过程
3.1 分布式对象技术
3.1.1 分布式对象基本技术架构
3.1.2 分布式对象技术特点
3.1.3 分布式对象技术分 类
3.2 RMI基本原理
3.2.1 RMI技术结构
3.2.2 RMI API介绍
3.2.3 RMI与RPC的区别
3.3 简单RMI例子开发过程
3.4 复杂RMI例子开发过程
3.4.1 数据库设计
3.4.2 对象接口定义
3.4.3 服务端程序
3.4.4 客户端程序
3.4.5 部署并运行应用程序
3.5 分布式应用程序设计决策
3.5.1 网络传输
3.5.2 通信方式
3.5.3 运行平台
3.5.4 资源优化
3.5.5 其他决策问题
思考与练习
进一步阅读
第4章 CORBA基本原理与开发过程
4.1 对象管理体系结构
4.1.1 对象请求代理
4.1.2 对象服务
4.1.3 公共设施
4.1.4 领域接口
4.1.5 应用接口
4.2 CORBA体系结构
4.2.1 OMG的对象模型
4.2.2 对象请求代理的体系结构
4.2.3 对象接口定义
4.2.4 客户端机制
4.2.5 服务端机制
4.3 CORBA应用程序开发过程
4.3.1 编写对象接口
4.3.2 编译IDL文件
4.3.3 编写对象实现和服务程序
4.3.4 编写客户程序
4.3.5 创建并部署应用程序
4.3.6 运行应用程序
4.4 一个银行账户管理程序
4.4.1 对象接口定义
4.4.2 生成的接口和类
4.4.3 编写对象实现和服务程序
4.4.4 编写客户程序
4.4.5 创建应用程序
4.4.6 运行应用程序
4.5 深入IDL桩和框架
4.5.1 IDL桩和框架的类层次
4.5.2 IDL桩与客户端对象引用
4.5.3 IDL框架的代码
4.5.4 用于纽带机制的IDL框架
4.6 分布式对象的可互操作性
4.6.1 可互操作性
4.6.2 ORB域和桥接
4.6.3 GIOP、IIOP与ESIOP
4.6.4 更高的可互操作性
4.7 CORBA规范与CORBA产品
4.7.1 CORBA规范
4.7.2 CORBA产品概述
4.7.3 商品化ORB产品
4.7.4 免费与开源ORB产品
4.7.5 产品与规范的一致性
4.8 内容小结
4.8.1 CORBA带来了什么
4.8.2 未解决的问题
思考与练习
进一步阅读
第5章 编写对象接口
5.1 对象接口与对象实现
5.1.1 接口与实现分 离
5.1.2 接口定义语言
5.2 OMG IDL的语法与语义
5.2.1 词法规则
5.2.2 模块的声明
5.2.3 类型的声明
5.2.4 常量的声明
5.2.5 异常的声明
5.2.6 接口的声明
5.2.7 值类型的声明
5.3 使用值类型
5.3.1 IDL定义
5.3.2 编译IDL文件
5.3.3 实现IDL接口
5.3.4 实现值类型
5.3.5 服务程序与客户程序
5.4 使用接口库
5.4.1 接口库的定义
5.4.2 接口库的结构
5.4.3 接口库管理工具
5.4.4 编写接口库客户程序
5.5 设计对象接口的准则
5.5.1 编写对象接口
5.5.2 典型的对象接口
思考与练习
进一步阅读
第6章 服务端程序设计
6.1 可移植对象适配器
6.1.1 CORBA对象与伺服对象
6.1.2 CORBA对象的基本语义
6.1.3 对象适配器
6.1.4 可移植对象适配器
6.1.5 POA及其组件的IDL定义
6.2 设计POA策略
6.2.1 POA策略
6.2.2 选择POA策略
6.2.3 组合使用POA策略
6.2.4 请求的处理过程
6.3 使用POA
6.3.1 获取根POA的对象引用
6.3.2 创建自定义策略的POA
6.3.3 使用POA管理器
6.3.4 激活与冻结对象
6.3.5 使用默认伺服对象
6.4 伺服对象管理器
6.4.1 伺服对象激活器
6.4.2 伺服对象定位器
6.5 适配器激活器
6.5.1 按需激活POA
6.5.2 使用适配器激活器的例程
6.6 纽带机制
6.6.1 纽带机制的工作原理
6.6.2 使用纽带机制的例程
6.7 POA vs BOA
6.7.1 基本对象适配器
6.7.2 POA对BOA的改进
思考与练习
进一步阅读
第7章 客户端程序设计
7.1 请求的基本概念
7.1.1 请求是一个对象
7.1.2 ORB伪对象
7.1.3 创建请求对象
7.1.4 Any类型
7.1.5 实际参数与返回结果
7.1.6 服务端的请求对象
7.2 选择调用类型
7.2.1 静态调用接口
7.2.2 动态调用接口
7.2.3 选择合适的调用类型
7.3 选择通信方式
7.3.1 同步通信
7.3.2 延迟同步通信
7.3.3 单向通信
7.3.4 使用不同的通信方式
7.4 使用动态调用接口
7.4.1 基于DII的IDL桩
7.4.2 使用DII的开发步骤
7.4.3 完整的例程
7.5 使用动态框架接口
7.5.1 动态框架接口
7.5.2 基于DSI的IDL框架
7.5.3 使用DSI编写对象实现
7.6 请求的上下文
7.6.1 上下文对象的概念
7.6.2 Context伪对象
7.6.3 使用附带上下文的请求
7.7 消息传递的服务质量
7.7.1 消息传递的QoS策略
7.7.2 为消息传递指定QoS策略
7.7.3 一个完整的例程
思考与练习
进一步阅读
第8章 部署CORBA应用程序
8.1 部署阶段的总体决策
8.1.1 选择运行平台
8.1.2 决定包装形式
8.1.3 考虑系统容错性
8.1.4 开放系统 vs 封闭系统
8.1.5 安装过程启示
8.2 部署服务端程序
8.2.1 创建和发布对象引用
8.2.2 部署对象实现
8.2.3 部署持久服务程序
8.3 部署客户端程序
8.3.1 获取对象引用
8.3.2 部署接口定义
8.3.3 部署IDL客户桩
8.4 部署VisiBroker应用程序
8.4.1 安装运行环境
8.4.2 安装支持服务
8.4.3 定制运行环境
8.4.4 启动应用程序
8.4.5 使 用管理工具
8.5 设置VisiBroker属性
8.5.1 VisiBroker属性
8.5.2 设置VisiBroker属性
8.6 配置智能代理
8.6.1 部署智能代理
8.6.2 使用ORB域
8.6.3 提高对象容错性
8.7 使用实现库
8.7.1 实现库服务
8.7.2 实现库管理工具
8.7.3 编写实现库客户程序
8.7.4 按需激活对象
思考与练习
进一步阅读
第三部分 分 布式对象高级课题
第9章 对象查找与对象通信
9.1 对象查找
9.1.1 查找对象的基本机制
9.1.2 CORBA命名服务
9.1.3 命名服务的类结构
9.1.4 CORBA交易对象服务
9.1.5 选择合适的对象查找机制
9.2 对象通信
9.2.1 分 布式对象的通信
9.2.2 CORBA事件服务
9.2.3 CORBA通知服务
9.2.4 CORBA消息服务
思考与练习
进一步阅读
第10章 事务处理及其他对象服务
10.1 对象事务处理
10.1.1 事务
10.1.2 基于DBMS的事务处理
10.1.3 分 布式事务处理
10.1.4 CORBA对象事务服务
10.1.5 OTS应用编程模型
10.1.6 OTS与TP监控程序
10.2 并发控制
10.2.1 CORBA并发控制服务
10.2.2 不同的锁模式
10.2.3 并发控制服务提供的接口
10.3 对象安全性
10.3.1 信息系统的安全性
10.3.2 CORBA安全服务
10.3.3 安全策略及其实施
10.3.4 安全服务的体系结构
10.4 对象持久性
10.4.1 CORBA持久对象服务
10.4.2 CORBA持久状态服务
10.4.3 CORBA外表化服务
10.5 对象集管理
10.5.1 CORBA关系服务
10.5.2 CORBA生存期服务
10.5.3 CORBA对象类集服务
10.5.4 CORBA查询服务
10.6 其他服务
10.6.1 CORBA属性服务
10.6.2 CORBA时间服务
10.6.3 CORBA特许服务
思考与练习
进一步阅读
第11章 分 布式应用程序性能与可伸缩性
11.1 基本概念
11.1.1 分 布式应用程序的性能和可伸缩性
11.1.2 POA与可伸缩性
11.2 优化IDL接口的设计模式
11.2.1 优化分 布式应用程序性能的设计原则
11.2.2 一个忽略性能的IDL接口设计例子
11.2.3 值对象设计模式
11.2.4 迭代器设计模式
11.3 资源池
11.3.1 资源池的概念
11.3.2 资源池的体系结构
11.3.3 资源池的QoS策略
11.4 多线程
11.4.1 多线程体系结构
11.4.2 服务程序的多线程模型
11.4.3 VisiBroker的线程管理
11.5 连接管理
11.5.1 连接与可伸缩性
11.5.2 可伸缩的连接管理
11.5.3 VisiBroker的连接管理
11.6 内存管理
11.6.1 杜绝内存泄漏
11.6.2 伺服对象实例池
11.7 负载均衡
11.7.1 实现负载均衡的体系结构
11.7.2 基于网络的负载均衡
11.7.3 基于操作系统的负载均衡
11.7.4 基于中间件的负载均衡
11.7.5 基于应用程序的负载均衡
思考与练习
进一步阅读
第四部分 分 布式组件模型与Web应用开发
第12章 EJB组件模型
12.1 EJB的基本概念
12.1.1 EJB组件的分 类
12.1.2 EJB组件与EJB容器
12.1.3 EJB 3.0 改进之处
12.2 EJB容器提供的设施与服务
12.2.1 通信基础设施
12.2.2 生存期管理
12.2.3 命名服务
12.2.4 并发控制服务
12.2.5 持久性服务
12.2.6 事务服务
12.2.7 安全服务
12.3 应用WebLogic开发与部署EJB 2.3组件
12.3.1 开发与部署EJB 2.3实体组件
12.3.2 开发与部署会话组件
12.3.3 开发与部署消息驱动组件
思考与练习
进一步阅读
ⅩⅦ第13章 J2EE规范、Web应用框架与CCM
13.1 J2EE规范
13.1.1 J2EE概述
13.1.2 JavaEE 5与JavaEE 6
13.1.3 J2EE平台的执行模型
13.1.4 MVC设计模式
13.1.5 基于角色的开发过程
13.1.6 J2EE应用服务器
13.2 J2EE Web层组件
13.2.1 客户端组件Applet
13.2.2 服务端组件Servlet
13.2.3 服务端组件JSP
13.3 Web应用框架
13.3.1 Web应用分 层架构
13.3.2 Web应用开发框架
13.3.3 主流Web应用框架比较
13.4 基于JBoss开发与部署EJB 3.0组件
13.4.1 EJB 3.0实体组件
13.4.2 EJB 3.0无状态会话组件
13.4.3 EJB 3.0有状态会话组件
13.4.4 JSP页面调用EJB组件及部署
13.5 CORBA组件模型CCM
13.5.1 CCM组件特性
13.5.2 CCM组件设计与开发过程
思考与练习
进一步阅读
第五部分 面向服务的体系结构及展望
ⅩⅧ第14章 Web服务与SOA基础
14.1 Web服务的基本概念
14.1.1 Web的发展过程
14.1.2 Web服务架构与定义
14.1.3 Web服务的技术特点
14.2 Web服务的实现原理
14.2.1 XML
14.2.2 简单对象访问协议
14.2.3 Web服务描述语言
14.2.4 UDDI
14.3 Web服务开发实例
14.3.1 Web服务与客户程序设计
14.3.2 Web服务部署与测试
14.4 SOA的基本概念
14.4.1 SOA的定义与功能描述
14.4.2 SOA分 层体系结构
14.4.3 SOA与面向对象、Web服务技术
14.4.4 SOA的主要支持厂商与产品
思考与练习
进一步阅读
第15章 SOA实现与SOA治理基础
15.1 SOA编程基本范型
15.1.1 SOA编程范型
15.1.2 业务流程执行语言
15.1.3 服务组件架构
15.1.4 服务数据对象
15.2 SOA的基本架构与实施方法
15.2.1 服务调用方式与企业服务总线
15.2.2 面向服务的分 析与设计
15.2.3 SOA生命周期
15.2.4 SOA实施切入点与步骤
15.3 SOA实现:以JBoss产品为例
15.3.1 JBoss产品线介绍
15.3.2 SOA配置与开发示例
15.4 SOA治理基础
15.4.1 提出SOA治理的背景
15.4.2 SOA治理生命周期与SOA生命周期
15.4.3 SOA治理参考模型
思考与练习
进一步阅读
第16章 分 布式计算展望
16.1 网格计算与网络服务
16.1.1 网格计算
16.1.2 高性能网格计算
16.1.3 网格服务
16.1.4 与网格计算相关的研究计划
16.2 其他发展方向
16.2.1 对等计算
16.2.2 移动代理
16.2.3 云计算
思考与练习
进一步阅读
ⅩⅧ附录
附录A OMG IDL语法规则
附录B OMG主要规范一览
附录C 中英文术语对照表
参考文献