SOAWebService合约设计与版本化

王朝百科·作者佚名  2010-09-22  
宽屏版  字体: |||超大  

图书信息

SOAWebService合约设计与版本化

书 名: SOA Web Service合约设计与版本化

作者:ThomasErl译者:郭耀

出版社:人民邮电出版社

出版时间: 2010年01月

ISBN: 9787115218193

开本: 16开

定价: 89.00 元

内容简介本书首先简要回顾了SOA与面向服务的基本概念和关键目标,然后着重阐述了与Web服务合约的设计和演化相关的各种话题。主要内容包括WSDL、SOAP、XML Schema、WS-Policy以及消息设计的相关技术(SOAP和WS-Addressing)。本书着重在SOA的上下文中论述Web服务合约技术,并且介绍了可以用于合约设计和版本化的各种设计模式。本书同时还提供了许多代码示例,可以帮助读者从实际案例中掌握如何在实践中运用相关的技术和原则。通过阅读本书,读者不仅可以学到在SOA中Web服务合约设计与版本化的基本技术,并且可以深入理解如何构建Web服务合约来支持面向服务。

本书作者包括了来自SOA、Web服务技术、服务合约设计以及服务版本化和治理等领域的顶级专家学者。其中主要作者Thomas Erl是业界公认的SOA领袖,本书以及他的其他著作被许多著名跨国公司的资深专家誉为“必备的SOA参考书”。

本书的读者对象是对面向服务架构、Web服务技术和服务合约版本化感兴趣的IT开发人员、分析师与架构师。

图书目录目录

第1章概述1

1.1关于本书2

1.2本书的目标3

1.3读者对象3

1.4本书不涉及的内容3

1.5必备知识阅读4

1.6补充阅读4

1.7本书的组织结构5

1.7.1第1部分:基本服务合约设计5

1.7.2第2部分:高级服务合约设计7

1.7.3第3部分:服务合约版本化8

1.7.4第4部分:附录9

1.8符号、图形和风格约定9

1.8.1符号图例9

1.8.2突出显示的代码10

1.8.3要点总结10

1.9附加说明10

1.9.1本丛书官方站点10

1.9.2Visio模板10

1.9.3社区模式站点10

1.9.4主术语表10

1.9.5参考规范10

1.9.6补充的张贴图10

1.9.7SOA杂志11

1.9.8通知服务11

第2章案例研究背景12

2.1案例研究示例的使用13

2.2案例研究背景:ActionCon公司13

2.2.1历史和文化13

2.2.2技术基础设施13

2.2.3商业目标和挑战14

第1部分基本服务合约设计

第3章SOA基础和Web服务合约16

3.1基本的SOA术语17

3.1.1面向服务计算17

3.1.2面向服务17

3.1.3面向服务架构18

3.1.4服务19

3.1.5服务模型20

3.1.6服务组合20

3.1.7服务库存21

3.1.8面向服务分析22

3.1.9服务候选22

3.1.10面向服务设计22

3.1.11Web服务23

3.1.12服务合约24

3.1.13服务相关的粒度24

3.1.14进一步阅读25

3.2面向服务计算的目标和Web服务合约25

3.2.1内在互操作性的提高26

3.2.2联合的增强26

3.2.3厂商多样性选择的增加26

3.2.4业务和技术领域一致性的提高26

3.2.5策略性的好处26

3.2.6进一步阅读26

3.3面向服务和Web服务合约27

3.3.1标准化服务合约28

3.3.2服务松散耦合28

3.3.3服务抽象29

3.3.4服务可复用性30

3.3.5服务可发现性30

3.3.6服务可组合性30

3.3.7进一步阅读30

3.4SOA设计模式与Web服务合约30

第4章Web服务合约剖析33

4.1Web服务合约是什么34

4.1.1基本结构34

4.1.2抽象与具体描述35

4.2Web服务合约的组成部分36

4.2.1抽象描述的主要组成部分36

4.2.2抽象描述的一个物理视图38

4.2.3具体描述的主要组成部分(一)39

4.2.4具体描述的主要组成部分(二)40

4.2.5合约组成部分之间的关系41

4.2.6消息的主要组成部分43

4.3Web服务合约的创建技术44

4.3.1Web服务描述语言45

4.3.2XML模式定义语言46

4.3.3WS-Policy语言48

4.3.4SOAP语言48

4.3.5抽象描述的技术49

4.3.6具体描述的技术50

4.3.7WS-I Basic Profile51

4.4使用Web服务合约技术的指导原则52

4.4.1自动生成工具52

4.4.2灵活性vs. 限制性53

4.4.3模块化和复用53

4.4.4清晰度和易于处理54

第5章关于命名空间的简明指南55

5.1元素、属性与命名空间56

5.1.1命名空间和元素57

5.1.2命名空间和属性60

5.1.3使用命名空间61

5.2命名空间术语表62

5.2.1局部名称62

5.2.2扩展名称62

5.2.3命名空间前缀62

5.2.4默认命名空间63

5.2.5受限名称63

5.2.6目标命名空间63

5.3命名空间的结构64

5.3.1业界标准命名空间66

5.3.2命名空间与URL编码67

5.3.3命名空间与实际URL68

5.4命名空间语法69

5.4.1声明一个命名空间前缀70

5.4.2默认命名空间73

5.4.3没有命名空间74

5.5命名空间与Web服务合约76

5.5.1Web服务合约中的常见命名空间77

5.5.2消息中的常见命名空间78

5.5.3本书中使用的命名空间79

第6章基本XML Schema:类型和消息结构基础80

6.1XML模式的结构83

6.2元素和属性84

6.2.1元素与类型85

6.2.2元素与属性85

6.2.3全局与局部声明87

6.2.4元素粒度88

6.3类型89

6.3.1什么是内容模型89

6.3.2命名类型与匿名类型89

6.3.3内置的简单类型90

6.3.4类型与继承91

6.3.5用户定义的简单类型91

6.3.6复合类型94

6.3.7在Web服务合约中如何使用类型97

6.4命名空间98

6.4.1目标命名空间99

6.4.2受限的与非受限的元素102

6.4.3命名空间与模式复用104

6.5消息结构107

第7章基本WSDL(一):抽象描述设计117

7.1WSDL定义和文档118

7.1.1definitions元素118

7.1.2documentation元素121

7.2抽象描述结构122

7.3类型定义123

7.4消息定义127

7.4.1message元素127

7.4.2part元素128

7.5操作定义131

7.5.1operation元素131

7.5.2消息交换模式131

7.5.3parameterOrder属性132

7.5.4操作重载133

7.6端口类型定义134

7.7一个完整的抽象描述135

第8章基本WSDL(二):具体描述设计138

8.1具体描述结构139

8.2绑定定义139

8.2.1binding元素140

8.2.2可扩展性元素141

8.2.3binding元素的transport属性142

8.2.4 “继承规则”142

8.2.5soap11:operation元素的soapAction属性142

8.2.6soap11:binding与operation元素的style属性143

8.2.7SOAP可扩展性元素(和use属性)146

8.2.8Literal vs. Encoded146

8.2.9绑定到SOAP 1.2149

8.3服务和端口定义151

8.4一个完整的WSDL定义(包含具体描述)154

第9章基本WSDL 2.0:新特性与设计选项159

9.1WSDL 2.0文档结构160

9.2接口定义160

9.2.1interface元素的extends属性161

9.2.2interface元素的styleDefault属性162

9.2.3wsdlx:safe全局属性162

9.2.4fault、infault和outfault元素163

9.2.5pattern和messageLabel属性165

9.3服务与端点定义166

9.4一个完整的WSDL 2.0定义166

第10章基本WS-Policy:断言、表达式与附加项170

10.1策略结构171

10.1.1新的命名空间与前缀172

10.1.2断言、表达式与Policy元素172

10.2组合策略175

10.2.1ExactlyOne元素175

10.2.2wsp:All元素176

10.2.3wsp:optional属性176

10.3操作符组合规则177

10.3.1幂等性规则178

10.3.2交换性规则178

10.3.3结合性规则179

10.3.4wsp:All对wsp:ExactlyOne的分配性179

10.3.5空操作符181

10.3.6等价181

10.4把策略附加到WSDL定义之上182

10.4.1策略附加点与策略主题182

10.4.2wsp:PolicyReference元素186

10.4.3嵌入的附加项187

10.5带有附加策略表达式的一个完整WSDL定义188

第11章基本消息设计:SOAP信封结构、故障消息与报头处理193

11.1SOAP消息结构195

11.1.1soap:Envelope元素196

11.1.2soap:Body元素196

11.1.3soap:Header元素197

11.1.4soap:Fault元素198

11.2SOAP节点与角色198

11.3SOAP报头块与指定目标处理200

11.3.1soap:role属性201

11.3.2soap:mustUnderstand属性204

11.3.3soap:relay属性206

11.3.4业界SOAP报头块示例206

11.4SOAP中介208

11.4.1转发中介209

11.4.2主动中介210

11.5故障消息211

11.5.1SOAP故障词汇表211

11.5.2soap:Code元素212

11.5.3soap:Detail元素216

11.5.4SOAP故障vs. WSDL故障216

11.5.5SOAP 1.1故障元素与取值217

第2部分高级服务合约设计

第12章高级XML Schema(一):消息灵活性、类型继承与组合220

12.1消息灵活性与约束粒度221

12.1.1通配符(xsd:any和xsd:anyAttribute)221

12.1.2扩展桶225

12.1.3通用元素与特殊元素227

12.1.4内容模型分组(xsd:choice、xsd:all与 xsd:sequence)230

12.2类型继承与组合233

12.2.1效仿类继承(抽象与xsd:extension)233

12.2.2类型组合(xsd:group)238

12.3常见的CRUD消息类型240

12.3.1 “饶舌”因素241

12.3.2 “无关”因素242

12.3.3常见消息类型242

12.3.4Add操作消息245

12.3.5Get操作消息245

12.3.6文档为中心的Update操作消息246

12.3.7参数为中心的Update操作消息247

12.3.8Delete操作消息249

12.3.9任务服务的消息类型249

第13章高级XML Schema(二):可复用性、关系设计与业界模式250

13.1可复用模式设计251

13.1.1使用xsd:include元素来复用模式251

13.1.2使用xsd:import元素来复用模式256

13.2在XML模式中表示关系263

13.2.1xsd:key与xsd:keyref元素265

13.2.2单独的关系元素267

13.3叙述性内容269

13.4采用产业模式270

13.4.1类型复用271

13.4.2添加通配符274

第14章高级WSDL(一):模块化、可扩展性、MEP与异步282

14.1模块化机制283

14.1.1import元素(WSDL 1.1、WSDL 2.0)283

14.1.2include元素(WSDL 2.0)288

14.1.3如何合并WSDL文档290

14.1.4导入XML模式290

14.1.5关于接口继承的更多内容(WSDL 2.0)297

14.2WSDL语言的扩展298

14.2.1SOAP绑定扩展的可扩展性299

14.2.2定制的WSDL扩展与wsdl:required属性300

14.3特殊的消息交换模式301

14.3.1关于向外的MEP301

14.3.2WSDL 2.0中的Robust In-Only MEP302

14.3.3WSDL 2.0中的定制MEP303

14.4异步操作设计305

14.4.1异步的Web服务305

14.4.2轮询306

14.4.3异步协议绑定307

14.4.4WS-Addressing308

14.4.5使用异步模式的指导原则311

14.5WS-BPEL与WSDL312

14.5.1WSDL的WS-BPEL扩展313

14.5.2异步的消息交换313

14.5.3相关性314

第15章高级WSDL(二):消息分发、服务实例标识与非SOAP的HTTP绑定317

15.1WSDL 2.0中的极端松散耦合318

15.1.1#any属性318

15.1.2合法的#any消息318

15.1.3架构上的考虑320

15.1.4WSDL中的#any与XML Schema中的xsd:any321

15.2消息分发的挑战321

15.2.1创建唯一的消息类型323

15.2.2HTTP SOAP动作报头324

15.2.3WS-Addressing的SOAP动作报头327

15.3指向服务实例的消息329

15.3.1服务与服务实例329

15.3.2WSDL中的wsdlx与wsdli可扩展性属性330

15.3.3这个功能的应用332

15.4定制的报头块与报头故障332

15.4.1报头与报头故障类型333

15.4.2在WSDL 2.0中定义SOAP报头块337

15.5不使用SOAP绑定到HTTP337

15.5.1HTTP作为一种消息协议337

15.5.2使用WSDL 1.1绑定到HTTP338

15.5.3使用WSDL 2.0绑定到HTTP343

15.5.4WSDL 2.0 HTTP绑定的其他功能346

第16章高级WS-Policy(一):策略集中化与嵌套、参数化和可忽略的断言347

16.1可复用性与策略集中化348

16.1.1策略集中化与策略定义348

16.1.2设计外部的WS-Policy定义349

16.1.3策略集中化的常见挑战355

16.2嵌套的和参数化的断言356

16.2.1嵌套的策略断言356

16.2.2参数化的断言357

16.3可忽略的断言362

16.3.1wsp:Ignorable与wsp:Optional362

16.3.2使用wsp:Ignorable来指定消费者364

16.3.3使用可忽略断言的注意事项365

16.4支持并发策略的合约366

第17章高级WS-Policy(二):定制策略断言设计、运行时表示与兼容性371

17.1定制的策略断言设计372

17.1.1定制断言模式372

17.1.2定制断言的处理逻辑374

17.1.3定制断言的属性379

17.1.4定制策略断言的设计考虑清单380

17.2定制策略断言的维护381

17.2.1规范策略词汇表381

17.2.2断言描述文档382

17.3运行时策略表示383

17.3.1策略规范化383

17.3.2合并策略386

17.4交集与消费者-服务间的策略兼容性390

17.4.1兼容性的层次390

17.4.2断言兼容性391

17.4.3可替代项的兼容性391

第18章高级消息设计(一):WS-Addressing词汇表394

18.1EPR与MAP396

18.1.1端点引用396

18.1.2消息寻址属性397

18.2EPR词汇表399

18.2.1wsa:EndpointReference元素399

18.2.2wsa:Address元素399

18.2.3wsa:ReferenceParameters元素400

18.2.4wsa:Metadata元素401

18.3MAP词汇表402

18.3.1wsa:To元素403

18.3.2wsa:From元素403

18.3.3wsa:ReplyTo元素404

18.3.4wsa:FaultTo元素404

18.3.5wsa:Action元素405

18.3.6wsa:MessageId元素405

18.3.7wsa:RelatesTo元素与RelationshipType属性405

第19章高级消息设计(二):WS-Addressing规则与设计技巧408

19.1WS-Addressing消息规则409

19.1.1SOAP报头结构409

19.1.2从端点发送消息的回答411

19.1.3MAP元素的MEP需求412

19.2EPR与WSDL绑定416

19.2.1在EPR中嵌入WSDL引用416

19.2.2在WSDL文档中嵌入EPR418

19.3WS-Addressing与动作取值421

19.3.1为什么wsa:Action总是必需的421

19.3.2wsa:Action元素与WSDL422

19.3.3wsa:Action元素与HTTP423

19.3.4动作取值的一个简表424

19.4WS-Addressing SOAP故障424

19.5WS-Addressing策略断言425

19.5.1wsam:Addressing策略断言425

19.5.2wsam:AnonymousResponse策略断言425

19.5.3wsam:NonAnonymousResponse策略断言426

第3部分服务合约版本化

第20章版本化基础430

20.1基本概念与术语431

20.1.1版本的范围431

20.1.2细粒度与粗粒度的约束432

20.2版本化与兼容性433

20.2.1向后兼容433

20.2.2向前兼容434

20.2.3兼容的改动435

20.2.4不兼容的改动436

20.3版本标识符437

20.4版本化策略439

20.4.1严格的策略(新改动、新合约)439

20.4.2灵活策略(向后兼容)440

20.4.3宽松策略(向后与向前兼容)440

20.4.4总结表格441

第21章WSDL定义的版本化442

21.1版本标识符与WSDL定义443

21.2操作定义的版本化445

21.2.1添加新的操作446

21.2.2重命名现有操作448

21.2.3删除一个现有操作452

21.2.4修改一个现有操作的MEP456

21.2.5向现有操作中添加一个故障消息459

21.3端口类型定义的版本化462

21.3.1向端口类型中添加一个版本标识符462

21.3.2多个端口类型的版本化(灵活策略)463

21.3.3使用前缀来关联版本465

21.4具体描述的版本化468

21.5WSDL定义与向前兼容470

21.5.1降低操作粒度级别470

21.5.2使用WSDL 2.0中的#any属性值471

第22章消息模式的版本化474

22.1基本术语与概念475

22.1.1 “构件”概念的重新引入475

22.1.2内容集合475

22.1.3版本化与UPA规则476

22.1.4基本示例477

22.2XML Schema与WSDL目标命名空间479

22.3严格的版本化策略479

22.3.1添加新的模式构件480

22.3.2删除现有模式构件480

22.3.3重命名现有模式构件481

22.3.4修改现有模式构件的约束481

22.4灵活的模式版本化(使用可选构件)482

22.4.1添加新的模式构件482

22.4.2删除一个现有模式构件484

22.4.3重命名一个现有模式构件485

22.4.4修改现有模式构件的约束485

22.5宽松的模式版本化(使用通配符)488

22.5.1添加一个新的模式构件488

22.5.2删除一个现有模式构件491

22.5.3重命名一个现有模式构件493

22.5.4修改现有模式构件的约束493

第23章高级版本化497

23.1策略的版本化498

23.1.1可替代项498

23.1.2可选断言499

23.1.3可忽略断言499

23.1.4不同的端点500

23.1.5把主要版本变动传播到WSDL定义501

23.2定义“不能忽略的”未知元素502

23.2.1使用定制的mustUnderstand属性502

23.2.2使用soap:mustUnderstand属性503

23.3版本化与模式集中化504

23.4终止信息的表示505

23.4.1可忽略的终止断言506

23.4.2强制的终止断言507

23.4.3终止单个操作508

23.5使用未知内容510

23.5.1接受并保留未知内容510

23.5.2使用mustRetain标志512

23.6部分确认513

23.7消息实例的版本化515

23.8版本化策略的定制516

23.8.1模式版本化的定制策略517

23.8.2版本标识约定517

第4部分附录

附录A案例研究总结520

附录B技术标准的制定过程522

B.1标准是如何开发的523

B.2标准开发过程523

附录CC伪模式列表525

附录D本书用到的命名空间与前缀541

附录E与本书有关的SOAP设计模式544

E.1规范表达545

E.2规范模式546

E.3规范版本化546

E.4兼容改动546

E.5并发合约547

E.6合约集中化547

E.7合约反规范化547

E.8分解能力548

E.9解耦合的合约548

E.10分布式能力549

E.11消息元数据549

E.12部分确认549

E.13策略集中化550

E.14代理能力550

E.15模式集中化550

E.16服务消息传递551

E.17终止通知551

E.18确认抽象552

E.19版本标识552

……

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有