《SOA核心技术及应用》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:王紫瑶,南俊杰,段紫辉等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:7121061732
  • 页数:587 页
图书介绍:SOA技术发展至今,越来越多的人已经深入理解了这一架构风格,进而开始思考如何在实际企业环境中实施SOA。这样就涉及到一个具体的技术问题,究竟应该选择什么技术编程模型来搭建这样一个服务计算环境?作为SOA的系列图书之一,本书立足于技术底层,试图指引读者理解构建SOA的基础编程模式。这一技术模式也并非耳熟能详的Web服务,而是新兴的SOA技术标准——服务组件架构(Service Component Architecture,SCA)、服务数据对象(Service Data Object,SDO)和业务流程执行语言(Business Process Execution Language,BPEL)。这三个技术分别解决了服务构建、数据模型和流程编排领域的问题,因而被称为“SOA编程模式的铁三角”。 本书首先和读者一起回顾一下SOA的基本理念和实施SOA的技术需求,进而简要介绍SCA、SDO和BPEL技术。此后的章节根据这三个主要的技术方向分为不同的模块,分别介绍相应技术的起源、理念、规范和实例,力图使读者全方位地理解这些技术,并能够进行基本的开发实践。本书的读者对象是参与SOA项目实施的系统架

第1章 SOA的技术决策 1

1.1 公司IT部门面临的困境 2

1.2 决策者的决策——部署SOA 4

1.2.1 什么是SOA 4

1.2.2 SOA实施的主要困难 7

1.3 SOA的技术抉择 8

1.3.1 相关技术概览 9

1.3.2 服务 10

1.3.3 数据和消息模型 13

1.3.4 服务编排和流程整合 15

1.4 本章小结 17

第2章 为什么需要SCA 18

2.1 SCA的起源 19

2.1.1 Web服务技术的兴起 19

2.1.2 Web服务调用框架的任务 21

2.1.3 SCA的提出 23

2.2 WPS中SCA实现简介 25

2.2.1 服务组件(Service Component) 25

2.2.2 导入(Import)、导出(Export)和绑定(Binding) 26

2.2.3 同步调用和异步调用 28

2.2.4 SCA的静态调用和动态调用 29

2.2.5 接口映射(Interface Map) 31

2.2.6 服务模块(Module) 31

2.3 为什么需要SCA 32

2.4 本章小结 33

第3章 SCA基本概念 34

3.1 SCA编程模型 35

3.2 SCA组件(component) 38

3.2.1 组件的实现(implementation) 40

3.2.2 组件中的接口 44

3.2.3 组件中的绑定 48

3.2.4 组件的服务(service) 51

3.2.5 组件的引用(reference) 51

3.2.6 组件的属性(property) 52

3.2.7 组件中的服务质量 53

3.3 SCA构件(composite) 54

3.3.1 构件的属性(property) 57

3.3.2 构件的服务(service) 58

3.3.3 构件的引用(reference) 61

3.3.4 构件的连接(wire) 64

3.3.5 将构件用做组件的实现 67

3.4 打包(package)和部署(deployment) 70

3.4.1 SCA域(domain) 70

3.4.2 Contribution 71

3.5 SCA中的常见绑定 72

3.5.1 SCA绑定 72

3.5.2 Web服务绑定 73

3.5.3 JMS绑定 77

3.6 策略框架(policy framework) 82

3.6.1 框架模型 83

3.6.2 策略意向和策略集的应用 85

3.6.3 角色和分工 86

3.6.4 安全策略 87

3.6.5 可靠性策略 88

3.7 扩展模型(extension model) 89

3.8 本章小结 91

第4章 Tuscany SCA简介 92

4.1 Tuscany与Apache开源 93

4.2 Tuscany与Apache Maven 95

4.3 Maven简介 96

4.3.1 Maven及其所解决的问题 96

4.3.2 Maven的安装 98

4.3.3 命令行的使用 98

4.3.4 Maven与Eclipse的结合使用 103

4.3.5 从源代码构建Tuscany SCA Java 107

4.4 Maven原型(Archetype)与Tuscany SCA开发 109

4.4.1 Maven原型(Archetype)简介 109

4.4.2 创建Maven原型 109

4.4.3 Tuscany SCA的安装 116

4.5 本章小结 116

第5章 SCA实践起步 118

5.1 SCA初接触 119

5.2 SCA项目的创建 119

5.3 定义一个SCA组件 120

5.4 SCA组件的单元测试 125

5.4.1 JUnit与单元测试 125

5.4.2 SCA单元测试的编写 127

5.4.3 单元测试的运行 129

5.5 接口与实现 133

5.5.1 接口的重用 133

5.5.2 接口与实现的分离 134

5.5.3 业务逻辑与技术的分离 135

5.6 实现一个Web服务 136

5.6.1 使用Web服务绑定 136

5.6.2 Java接口到WSDL接口的转化 138

5.6.3 Web服务测试用例 140

5.6.4 部署Web服务到Tomcat服务器 143

5.7 在一个SCA中使用Web服务 147

5.7.1 引用的定义 148

5.7.2 在实现中使用引用 149

5.7.3 引用使用的测试用例 150

5.7.4 测试驱动的学习模式 152

5.8 本章小结 153

第6章 使用SCA构建SOA应用 154

6.1 SCA服务整合的特点 155

6.1.1 对服务整合技术的要求 156

6.1.2 SCA服务整合的特点 157

6.1.3 组件、构件和SCA域 157

6.1.4 两个主要的核心问题 158

6.2 SCA绑定 159

6.2.1 默认服务绑定 160

6.2.2 显式地获取服务 160

6.2.3 使用引用获取服务 161

6.2.4 服务的命名约定 162

6.2.5 引用的使用与多接口 164

6.2.6 服务的无状态实现 167

6.3 服务实现的不同作用域 169

6.3.1 EJB会话Bean的无状态和有状态 170

6.3.2 一个错误的计数器实现 172

6.3.3 实现实例创建和销毁的时机 175

6.3.4 构件作用域 177

6.3.5 请求作用域 179

6.3.6 会话作用域 181

6.4 可会话服务 182

6.4.1 可会话的例子 182

6.4.2 会话的标识 186

6.4.3 可会话服务的生命周期 189

6.4.4 会话的属性 193

6.4.5 服务的显式引用 197

6.5 异步调用与可会话编程 198

6.5.1 单向异步 199

6.5.2 延迟响应 202

6.5.3 组件上下文和请求上下文 204

6.5.4 请求回调(Callback) 205

6.6 不同类型的绑定 209

6.6.1 Web服务绑定 209

6.6.2 企业会话Bean绑定 210

6.6.3 JMS绑定 216

6.7 组件的不同类型的实现 219

6.7.1 Java实现 219

6.7.2 SCA对脚本语言的支持 220

6.7.3 使用构件作为组件实现 222

6.8 SCA的服务接口 225

6.8.1 WSDL接口 226

6.8.2 Java接口 226

6.9 SCA其他语言的实现 227

6.9.1 SCA的C++实现 227

6.9.2 SCA的PHP实现 231

6.9.3 SCA不同语言实现小结 233

6.10 本章小结 234

第7章 SCA与其他技术 236

7.1 SCA与Spring 237

7.1.1 Spring的新主张 237

7.1.2 从Spring到Tuscany 240

7.1.3 在SCA里使用Spring 241

7.2 SCA与OSGi 243

7.2.1 OSGi的成功 243

7.2.2 OSGi与SCA的异同 246

7.2.3 SCA和OSGi的关系 246

7.3 SCA与SDO 247

7.3.1 SDO简介 248

7.3.2 SCA里使用SDO 250

7.3.3 数据整合和服务整合的目的 251

7.4 本章小结 252

第8章 什么是SDO 253

8.1 产生背景 254

8.1.1 SDO的历史 254

8.1.2 产品支持 256

8.1.3 基本结构 258

8.2 设计思想 261

8.2.1 为什么需要SDO 261

8.2.2 设计需求 264

8.3 SDO、EJB和Hibernate 267

8.3.1 SDO和EJB 267

8.3.2 SDO和Hibernate 269

8.4 Data Access Service(DAS) 272

8.4.1 DAS的功能 272

8.4.2 关系数据库数据访问服务(RDB DAS) 274

8.5 本章小结 280

第9章 SDO的基本概念 281

9.1 数据图和数据对象 282

9.1.1 数据图(DataGraph) 282

9.1.2 数据对象(DataObject)概念和特性 284

9.1.3 数据对象的接口定义 289

9.1.4 XPath表达式 290

9.2 变更摘要 292

9.2.1 内容和范围 292

9.2.2 序列化 293

9.2.3 接口定义 296

9.3 类型、属性和序列 297

9.3.1 类型(Type) 297

9.3.2 类型和属性的模型 302

9.3.3 属性(Property) 305

9.3.4 序列(Sequence) 306

9.4 Helper(帮助)类 307

9.4.1 DataFactory 307

9.4.2 TypeHelper 309

9.4.3 CopyHelper 311

9.4.4 EqualityHelper 312

9.4.5 XMLHelper 313

9.4.6 XMLDocument 317

9.4.7 XSDHelper 318

9.4.8 DataHelper 320

9.4.9 HelperContext和HelperProvider 321

9.5 序列化 322

9.5.1 Java序列化 322

9.5.2 XML序列化 323

9.6 本章小结 323

第10章 SDO和XSD的关系 324

10.1 XSD基本概念 325

10.1.1 XML概念 325

10.1.2 XSD介绍 327

10.2 XSD和SDO的映射 333

10.3 本章小结 338

第11章 在Tuscany上使用SDO 339

11.1 搭建Tuscany环境 340

11.2 定义SDO模型 341

11.2.1 静态模型的定义 342

11.2.2 动态模型的定义 346

11.3 创建和使用SDO实例 347

11.4 SDO和SCA的集成使用 354

11.5 本章小结 356

第12章 SDO的深入实践 357

12.1 ChangeSummary 358

12.1.1 应用场景描述 358

12.1.2 使用介绍 359

12.1.3 总结 365

12.2 序列化服务 366

12.2.1 应用场景描述 366

12.2.2 使用介绍 368

12.2.3 总结 373

1 2.3 比较和复制服务 373

12.3.1 应用场景描述 373

12.3.2 使用介绍 375

12.3.3 总结 378

12.4 本章小结 379

第13章 业务对象介绍 380

13.1 WPS简介 381

13.2 WID简介 383

13.3 业务对象 384

13.3.1 业务对象介绍 384

13.3.2 业务对象(BO)模型的开发 386

13.3.3 总结 388

13.4 本章小结 389

第14章 BPEL概述 390

14.1 BPEL及其发展历程 391

14.2 BPEL相关技术 397

14.3 初识BPEL 405

14.4 BPEL引擎 407

14.5 BPEL与SOA 411

14.6 BPEL与业务过程管理 415

14.7 本章小结 424

第15章 BPEL详解 425

15.1 BPEL总体结构 426

15.2 BPEL中的交互 433

15.3 BPEL中的数据 438

15.4 消息关联 440

15.5 BPEL活动 444

15.5.1 BPEL基本活动(Basic Activities) 445

15.5.2 BPEL结构化活动 455

15.6 作用域(Scope)的概念 460

15.7 错误处理与补偿(Fault Handling and Compensation) 462

15.8 事件处理(Event Handling) 469

15.9 BPEL的扩展机制 472

15.10 本章小结 476

第16章 IBM业务过程产品简介 477

16.1 业务过程管理及其产品概述 478

16.2 WebSphere Process Server(WPS) 481

16.3 WebSphere Integration Developer(WID) 486

16.4 本章小结 489

第17章 实例分析 490

17.1 背景介绍 491

17.1.1 业务需求 491

17.1.2 技术架构考虑 494

17.2 方案设计 497

17.3 开发过程 500

17.3.1 创建库和模块 501

17.3.2 创建业务对象 502

17.3.3 创建服务接口 504

17.3.4 创建业务状态机 508

17.3.5 创建业务流程和人员任务 518

17.3.6 送货服务系统的开发 524

17.3.7 银行业务系统的开发 535

17.3.8 创建调解流程 538

17.3.9 Web应用程序的开发 547

17.3.10 整合服务 548

17.4 系统调试 550

17.4.1 功能测试 551

17.4.2 系统测试 553

17.5 监控管理 557

17.5.1 流程的监控管理 558

17.5.2 通用事件的监控管理 558

17.5.3 失败事件的监控管理 559

17.6 本章小结 561

附录A 数据对象的接口 562

附录B Externalizable Delegator 567

附录C 数据图序列化的XSD 570

附录D XSD和SDO的映射表格 573

附录E BPEL的Schema定义 580

技术术语表 583

参考文献 587