|
本书立足于技术底层,试图指引读者理解构建 SOA 的基础编程模式。这一技术模式也并非耳熟能详的 Web 服务,而是新兴的 SOA 技术标准——服务组件架构(Service Component Architecture, SCA)、服务数据对象(Service Data Object,SDO)和业务流程执行语言(Business Process Execution Language, BPEL)。这三个技术分别解决了服务构建、数据模型和流程编排领域的问题,因而被称为“SOA 编程模式的铁三角”。 阅读本书前言 | 更多图书 >
第 1 章 SOA 的技术决策
1.1 公司IT部门面临的困境
1.2 决策者的决策——部署 SOA
1.2.1 什么是 SOA
1.2.2 SOA 实施的主要困难
1.3 SOA 的技术抉择
1.3.1 相关技术概览
1.3.2 服务
1.3.3 数据和消息模型
1.3.4 服务编排和
1.3.4 流程整合
1.4 本章小结
第 2 章 为什么需要 SCA
2.1 SCA 的起源
2.1.1 Web 服务
2.1.1 技术的兴起
2.1.2 Web 服务调用框架的任务
2.1.3 SCA 的提出
2.2 WPS 中 SCA 实现简介
2.2.1 服务组件(ServiceComponent)
2.2.2 导入(Import)、导出(Export)和绑定(Binding)
2.2.3 同步调用和异步调用
2.2.4 SCA 的静态调用和动态调用
2.2.5 接口映射(InterfaceMap)
2.2.6 服务模块(Module)
2.3 为什么需要 SCA
2.4 本章小结
第 3 章 SCA 基本概念
3.1 SCA 编程模型
3.2 SCA 组件(component)
3.2.1 组件的实现(implementation)
3.2.2 组件中的接口
3.2.3 组件中的绑定
3.2.4 组件的服务(service)
3.2.5 组件的引用(reference)
3.2.6 组件的属性(property)
3.2.7 组件中的服务质量
3.3 SCA 构件(composite)
3.3.1 构件的属性(property)
3.3.2 构件的服务(service)
3.3.3 构件的引用(reference)
3.3.4 构件的连接(wire)
3.3.5 将构件用做组件的实现
3.4 打包(package)和部署(deployment)
3.4.1 SCA 域(domain)
3.4.2 Contribution
3.5 SCA 中的常见绑定
3.5.1 SCA 绑定
3.5.2 Web 服务绑定
3.5.3 JMS 绑定
3.6 策略框架(policyframework)
3.6.1 框架模型
3.6.2 策略意向和策略集的应用
3.6.3 角色和分工
3.6.4 安全策略
3.6.5 可靠性策略
3.7 扩展模型(extensionmodel)
3.8 本章小结
第 4 章 Tuscany SCA 简介
4.1 Tuscany 与 Apache 开源
4.2 Tuscany 与 Apache Maven
4.3 Maven 简介
4.3.1 Maven 及其所解决的问题
4.3.2 Maven 的安装
4.3.3 命令行的使用
4.3.4 Maven 与 Eclipse
4.3.4 的结合使用
4.3.5 从源代码构建 Tuscany SCA Java
4.4 Maven 原型(Archetype)与 Tuscany SCA 开发
4.4.1 Maven 原型(Archetype)简介
4.4.2 创建 Maven 原型
4.4.3 Tuscany SCA 的安装
4.5 本章小结
第 5 章 SCA 实践起步
5.1 SCA 初接触
5.2 SCA 项目的创建
5.3 定义一个 SCA 组件
5.4 SCA 组件的单元测试
5.4.1 JUnit 与单元测试
5.4.2 SCA 单元测试的编写
5.4.3 单元测试的运行
5.5 接口与实现
5.5.1 接口的重用
5.5.2 接口与实现的分离
5.5.3 业务逻辑与技术的分离
5.6 实现一个 Web 服务
5.6.1 使用 Web 服务绑定
5.6.2 Java 接口到 WSDL 接口的转化
5.6.3 Web 服务测试用例
5.6.4 部署 Web 服务到 Tomcat 服务器
5.7 在一个 SCA 中使用 Web 服务
5.7.1 引用的定义
5.7.2 在实现中使用引用
5.7.3 引用使用的测试用例
5.7.4 测试驱动的学习模式
5.8 本章小结
第 6 章 使用 SCA 构建 SOA 应用
6.1 SCA 服务整合的特点
6.1.1 对服务整合技术的要求
6.1.2 SCA 服务整合的特点
6.1.3 组件、构件和 SCA 域
6.1.4 两个主要的核心问题
6.2 SCA 绑定
6.2.1 默认服务绑定
6.2.2 显式地获取服务
6.2.3 使用引用获取服务
6.2.4 服务的命名约定
6.2.5 引用的使用与多接口
6.2.6 服务的无状态实现
6.3 服务实现的不同作用域
6.3.1 EJB 会话 Bean 的无状态和有状态
6.3.2 一个错误的计数器实现
6.3.3 实现实例创建和销毁的时机
6.3.4 构件作用域
6.3.5 请求作用域
6.3.6 会话作用域
6.4 可会话服务
6.4.1 可会话的例子
6.4.2 会话的标识
6.4.3 可会话服务的生命周期
6.4.4 会话的属性
6.4.5 服务的显式引用
6.5 异步调用与可会话编程
6.5.1 单向异步
6.5.2 延迟响应
6.5.3 组件上下文和请求上下文
6.5.4 请求回调(Callback)
6.6 不同类型的绑定
6.6.1 Web 服务绑定
6.6.2 企业会话 Bean 绑定
6.6.3 JMS绑定
6.7 组件的不同类型的实现
6.7.1 Java 实现
6.7.2 SCA 对脚本语言的支持
6.7.3 使用构件作为组件实现
6.8 SCA 的服务接口
6.8.1 WSDL 接口
6.8.2 Java 接口
6.9 SCA 其他语言的实现
6.9.1 SCA 的 C++ 实现
6.9.2 SCA 的 PHP 实现
6.9.3 SCA 不同语言实现小结
6.10 本章小结
第 7 章 SCA 与其他技术
7.1 SCA 与 Spring
7.1.1 Spring 的新主张
7.1.2 从 Spring 到 Tuscany
7.1.3 在 SCA 里使用Spring
7.2 SCA 与 OSGi
7.2.1 OSGi 的成功
7.2.2 OSGi 与 SCA 的异同
7.2.3 SCA 和 OSGi 的关系
7.3 SCA 与 SDO
7.3.1 SDO 简介
7.3.2 SCA 里使用 SDO
7.3.3 数据整合和服务整合的目的
7.4 本章小结
第 8 章 什么是 SDO
8.1 产生背景
8.1.1 SDO 的历史
8.1.2 产品支持
8.1.3 基本结构
8.2 设计思想
8.2.1 为什么需要 SDO
8.2.2 设计需求
8.3 SDO、EJB 和 Hibernate
8.3.1 SDO 和 EJB
8.3.2 SDO 和 Hibernate
8.4 Data Access Service(DAS)
8.4.1 DAS 的功能
8.4.2 关系数据库数据访问服务(RDB DAS)
8.5 本章小结
第 9 章 SDO 的基本概念
9.1 数据图和数据对象
9.1.1 数据图(DataGraph)
9.1.2 数据对象(DataObject)
9.1.2 概念和特性
9.1.3 数据对象的接口定义
9.1.4 XPath 表达式
9.2 变更摘要
9.2.1 内容和范围
9.2.2 序列化
9.2.3 接口定义
9.3 类型、属性和序列
9.3.1 类型(Type)
9.3.2 类型和属性的模型
9.3.3 属性(Property)
9.3.4 序列(Sequence)
9.4 Helper(帮助)类
9.4.1 DataFactory
9.4.2 TypeHelper
9.4.3 CopyHelper
9.4.4 EqualityHelper
9.4.5 XMLHelper
9.4.6 XMLDocument
9.4.7 XSDHelper
9.4.8 DataHelper
9.4.9 HelperContext和HelperProvider
9.5 序列化
9.5.1 Java 序列化
9.5.2 XML 序列化
9.6 本章小结
第 10 章 SDO 和 XSD 的关系
10.1 XSD 基本概念
10.1.1 XML 概念
10.1.2 XSD 介绍
10.2 XSD 和 SDO 的映射
10.3 本章小结
第 11 章 在 Tuscany 上使用 SDO
11.1 搭建 Tuscany 环境
11.2 定义 SDO 模型
11.2.1 静态模型的定义
11.2.2 动态模型的定义
11.3 创建和使用 SDO 实例
11.4 SDO 和 SCA 的集成使用
11.5 本章小结
第 12 章 SDO 的深入实践
12.1 ChangeSummary
12.1.1 应用场景描述
12.1.2 使用介绍
12.1.3 总结
12.2 序列化服务
12.2.1 应用场景描述
12.2.2 使用介绍
12.2.3 总结
12.3 比较和复制服务
12.3.1 应用场景描述
12.3.2 使用介绍
12.3.3 总结
12.4 本章小结
第 13 章 业务对象介绍
13.1 WPS 简介
13.2 WID 简介
13.3 业务对象
13.3.1 业务对象介绍
13.3.2 业务对象(BO)
13.3.2 模型的开发
13.3.3 总结
13.4 本章小结
第 14 章 BPEL 概述
14.1 BPEL 及其发展历程
14.2 BPEL 相关技术
14.3 初识 BPEL
14.4 BPEL 引擎
14.5 BPEL 与 SOA
14.6 BPEL 与业务过程
14.6 管理
14.7 本章小结
第 15 章 BPEL 详解
15.1 BPEL 总体结构
15.2 BPEL 中的交互
15.3 BPEL 中的数据
15.4 消息关联
15.5 BPEL 活动
15.5.1 BPEL 基本活动(BasicActivities)
15.5.2 BPEL 结构化活动
15.6 作用域(Scope)的概念
15.7 错误处理与补偿(Fault Handling and Compensation)
15.8 事件处理
15.8 (Event Handling)
15.9 BPEL 的扩展机制
15.10 本章小结
第 16 章 IBM 业务过程产品简介
16.1 业务过程管理及其产品概述
16.2 WebSphere ProcessServer(WPS)
16.3 WebSphere IntegrationDeveloper(WID)
16.4 本章小结
第 17 章 实例分析
17.1 背景介绍
17.1.1 业务需求
17.1.2 技术架构考虑
17.2 方案设计
17.3 开发过程
17.3.1 创建库和模块
17.3.2 创建业务对象
17.3.3 创建服务接口
17.3.4 创建业务状态机
17.3.5 创建业务流程和人员任务
17.3.6 送货服务系统的开发
17.3.7 银行业务系统的开发
17.3.8 创建调解流程
17.3.9 Web 应用程序的开发
17.3.10 整合服务
17.4 系统调试
17.4.1 功能测试
17.4.2 系统测试
17.5 监控管理
17.5.1 流程的监控管理
17.5.2 通用事件的监控管理
17.5.3 失败事件的监控管理
17.6 本章小结
附录 A 数据对象的接口
附录 B ExternalizableDelegator
附录 C 数据图序列化的 XSD
附录 D XSD 和 SDO 的映射
附录 D 表格
附录 E BPEL 的 Schema定义
技术术语表
参考文献
|