当前位置:首页 > 工业技术
SOA服务设计原则
SOA服务设计原则

SOA服务设计原则PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:(美)ThomasErl著;郭耀译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115204929
  • 页数:347 页
图书介绍:本书在简要介绍了SOA与面向服务的基本概念和关键目标之后,着重阐述了为实现SOA的目标而需要遵守的8个核心设计原则:标准化服务合约、服务松散耦合、服务抽象、服务可复用性、服务自治、服务无状态性、服务可发现性和服务可组合性。
《SOA服务设计原则》目录

第1章 概述 1

1.1本书的目标 2

1.2读者对象 3

1.3本书不涉及的内容 3

1.3.1本丛书中包括的其他书 3

1.3.2 SOA的标准化努力 4

1.4本书的组织结构 4

1.4.1第1部分:基本原理 5

1.4.2第2部分:设计原则 6

1.4.3第3部分:补充内容 8

1.4.4附录 8

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

1.5.1符号图例 9

1.5.2服务的符号 9

1.6附加说明 11

1.6.1更新、勘误和资源 11

1.6.2主术语表 11

1.6.3参考规范 11

1.6.4面向服务计算的海报 11

1.6.5 SOA杂志 11

1.6.6通知服务 12

1.6.7联系作者 12

第2章 案例研究 13

2.1案例研究背景:Cutit Saws公司 14

2.1.1历史 14

2.1.2技术基础设施和自动化环境 14

2.1.3业务目标与障碍 14

第1部分 基本原理 18

第3章 面向服务计算与SOA 18

3.1设计的基本原理 19

3.1.1设计特性 19

3.1.2设计原则 20

3.1.3设计范型 21

3.1.4设计模式 21

3.1.5设计模式语言 22

3.1.6设计标准 23

3.1.7最佳实践 24

3.1.8一个基本设计框架 25

3.2面向服务计算概述 27

3.2.1面向服务架构 27

3.2.2面向服务、服务以及面向服务方案逻辑 28

3.2.3服务组合 28

3.2.4服务库存 29

3.2.5理解面向服务计算中的元素 29

3.2.6服务模型 31

3.2.7 SOA和Web服务 34

3.2.8服务库存蓝图 37

3.2.9面向服务分析和服务建模 37

3.2.10面向服务设计 37

3.2.11 Service-Qriented Architecture:Concepts, Technology, and Design 39

3.3面向服务计算的目标和价值 39

3.3.1内在互操作性的提高 40

3.3.2联合的增强 41

3.3.3厂商多样性选择的增加 42

3.3.4业务和技术领域一致性的提高 42

3.3.5投资回报率的提高 43

3.3.6组织敏捷度的提高 44

3.3.7 IT负担的降低 45

3.4案例研究背景 46

第4章 面向服务 47

4.1面向服务概述 48

4.1.1业务自动化中的服务 49

4.1.2服务是能力的集合 49

4.1.3面向服务作为一种设计范型 49

4.1.4面向服务和互操作性 51

4.2面向服务解决的问题 52

4.2.1在面向服务到来之前 53

4.2.2面向服务的必要性 56

4.3面向服务带来的挑战 58

4.3.1设计复杂性 58

4.3.2对设计标准的需求 59

4.3.3自顶向下的需求 59

4.3.4支持敏捷方案交付的反敏捷服务交付 60

4.3.5治理需求 60

4.4其他考虑 61

4.4.1它不是一个革命性的范例 61

4.4.2不要求整个企业范围的标准化 61

4.4.3复用不是一个绝对的需求 62

4.5面向服务对企业的影响 62

4.5.1面向服务和“应用程序”的概念 62

4.5.2面向服务和“集成”的概念 64

4.5.3服务组合 65

4.5.4应用程序、集成和企业架构 66

4.6面向服务的起源和影响 67

4.6.1面向对象 67

4.6.2 Web服务 67

4.6.3业务流程管理(BPM) 67

4.6.4企业应用集成(EAI) 68

4.6.5面向侧面的编程(AOP) 68

4.7案例研究背景 69

第5章 理解设计原则 71

5.1使用设计原则 72

5.1.1在面向服务分析中应用这些原则 72

5.1.2在正式的设计过程中应用这些原则 73

5.1.3建立支持的设计标准 74

5.1.4把原则应用到一个可行的程度 74

5.2原则概要 75

5.3设计模式引用 76

5.4实现原则vs.调控原则 76

5.5原则与服务实现媒介 78

5.6原则与设计粒度 79

5.6.1服务粒度 79

5.6.2能力粒度 79

5.6.3数据粒度 79

5.6.4约束粒度 80

5.6.5关于粒度级别的小节 81

5.7案例研究背景 81

第2部分 设计原则 86

第6章 服务合约(标准化与设计) 86

6.1合约释义 87

6.1.1技术合约简述 87

6.1.2服务合约的起源 88

6.2原则概要 90

6.3服务合约标准化的类型 91

6.3.1功能服务描述的标准化 91

6.3.2服务数据表示的标准化 92

6.3.3服务策略的标准化 94

6.4合约与服务设计 96

6.4.1数据表示标准化和转换的避免 96

6.4.2标准化与粒度 97

6.4.3标准化服务合约与服务模型 99

6.4.4标准化服务合约设计如何影响其他原则 99

6.5服务合约设计的相关风险 102

6.5.1版本化 102

6.5.2技术依赖 103

6.5.3开发工具缺陷 103

6.6服务合约的进一步介绍 104

6.6.1非技术性服务合约文档 105

6.6.2“针对SOA的Web服务合约设计” 105

6.7案例研究 105

6.7.1计划中的服务 105

6.7.2设计标准 106

6.7.3标准化的WSDL定义概要 106

6.7.4标准化的XML Schema定义 107

6.7.5标准化的服务和数据表示层 107

6.7.6服务描述 108

6.7.7小结 109

第7章 服务耦合(服务内及消费者依赖) 110

7.1耦合释义 111

7.1.1耦合简述 111

7.1.2软件耦合的起源 112

7.2原则概要 113

7.3服务合约耦合的类型 114

7.3.1“逻辑-合约”耦合(服务逻辑到服务合约的耦合) 116

7.3.2“合约-逻辑”耦合(服务合约到服务逻辑的耦合) 118

7.3.3“合约-技术”耦合(服务合约到其底层技术的耦合) 119

7.3.4“合约-实现”耦合(服务合约到其实现环境的耦合) 119

7.3.5“合约-功能”耦合(服务合约到其外部逻辑的耦合) 121

7.4服务消费者耦合的类型 122

7.4.1“消费者-实现”耦合 123

7.4.2标准化服务耦合与合约集中化 123

7.4.3“消费者-合约”耦合 124

7.4.4消费者耦合的度量 128

7.5服务松散耦合与服务设计 129

7.5.1耦合与面向服务 129

7.5.2服务松散耦合与粒度 130

7.5.3耦合与服务模型 131

7.5.4服务松散耦合如何影响其他原则 132

7.6服务松散耦合的相关风险 133

7.6.1“逻辑-合约”耦合的限制 133

7.6.2当模式耦合太“松散”时的问题 134

7.7案例研究 135

7.7.1现有服务的耦合级别 135

7.7.2引入InvLegacyAPI服务 135

7.7.3服务设计选择 136

第8章 服务抽象(信息隐藏与元抽象类型) 140

8.1抽象释义 141

8.2原则概要 142

8.3元抽象类型 144

8.3.1技术信息抽象 145

8.3.2功能抽象 146

8.3.3程序逻辑抽象 147

8.3.4服务质量抽象 148

8.3.5元抽象类型和Web服务影响区域 149

8.3.6真实世界中的元抽象类型 150

8.4服务抽象度量 153

8.4.1合约内容的抽象级别 153

8.4.2访问控制级别 154

8.4.3抽象级别与服务质量元信息 155

8.5服务抽象与服务设计 155

8.5.1服务抽象vs.服务封装 155

8.5.2封装如何影响抽象 156

8.5.3服务抽象与非技术合约文档 157

8.5.4服务抽象与粒度 157

8.5.5服务抽象与服务模型 158

8.5.6服务抽象如何影响其他的原则 158

8.6服务抽象的相关风险 160

8.6.1多消费者耦合的需求 160

8.6.2人为误判 160

8.6.3安全和隐私的考虑 161

8.7案例研究 161

8.7.1服务抽象级别 161

8.7.2操作级的抽象例子 163

第9章 服务可复用性(商业与无关设计) 166

9.1复用释义 167

9.1.1复用简述 167

9.1.2复用的起源 169

9.2原则概要 170

9.3服务可复用性度量及商业设计的应用 171

9.3.1商业设计考虑 173

9.3.2计划中复用的度量 174

9.3.3实际复用的度量 175

9.3.4商业设计和镀金 175

9.4 SOA中的服务复用 176

9.4.1复用和无关服务 176

9.4.2服务库存蓝图 176

9.5标准化服务复用与逻辑集中化 177

9.5.1理解逻辑集中化 177

9.5.2作为企业标准的逻辑集中化 178

9.5.3逻辑集中化与合约集中化 179

9.5.4集中化与Web服务 180

9.5.5实现逻辑集中化的挑战 180

9.6服务可复用性与服务设计 181

9.6.1服务可复用性与服务建模 181

9.6.2服务可复用性与粒度 182

9.6.3服务可复用性与服务模型 182

9.6.4服务可复用性如何影响其他原则 183

9.7服务可复用性的相关风险 184

9.7.1文化上的考虑 184

9.7.2治理上的考虑 185

9.7.3可靠性上的考虑 187

9.7.4安全上的考虑 188

9.7.5商业设计需求上的考虑 188

9.7.6敏捷交付上的考虑 188

9.8案例研究 189

9.8.1 Inventory服务概要 189

9.8.2评估当前的能力 189

9.8.3为针对性的可复用性进行建模 190

9.8.4添加EditItemRecord操作 190

9.8.5添加ReportStockLevels操作 190

9.8.6添加AdjustItemsQuantity操作 190

9.8.7修改后的Inventory服务概要 191

第10章 服务自治(处理边界与控制) 192

10.1自治释义 193

10.1.1自治简述 193

10.1.2自治的起源 193

10.2原则概要 194

10.3服务自治的类型 195

10.3.1运行时自治 195

10.3.2设计时自治(治理) 196

10.4服务自治度量 197

10.4.1服务合约自治(带有规范化合约的服务) 197

10.4.2服务逻辑自治(部分孤立服务) 201

10.4.3完全自治(孤立的服务) 202

10.4.4具有混合自治级别的服务 203

10.5自治与服务设计 204

10.5.1服务自治与服务建模 204

10.5.2服务自治与粒度 204

10.5.3服务自治与服务模型 204

10.5.4服务自治怎样影响其他原则 206

10.6服务自治的相关风险 208

10.6.1错误地判断服务的范围 208

10.6.2包装服务和遗留逻辑封装 208

10.6.3对服务需求的过高估计 209

10.7案例研究 209

10.7.1 GetItern操作现在所实现的自治 209

10.7.2新的拥有更高自治的操作级别架构 210

10.7.3对于Run Lab Project组合的影响 211

第11章 服务无状态性(状态管理延迟与无状态性设计) 213

11.1状态管理释义 214

11.1.1状态管理简述 214

11.1.2状态管理的起源 215

11.1.3延迟与委托的比较 218

11.2原则概要 218

11.3状态的类型 220

11.3.1活跃和被动 221

11.3.2无状态和有状态 221

11.3.3会话和上下文数据 221

11.4服务无状态性度量 223

11.4.1非延迟的状态管理(无状态性从低到没有) 224

11.4.2部分延迟存储(较低的有状态性) 225

11.4.3部分架构状态管理延迟(中等无状态性) 225

11.4.4完全架构状态管理延迟(高度无状态性) 225

11.4.5内部延迟状态管理(高度无状态性) 226

11.5无状态性与服务设计 227

11.5.1消息作为一个状态延迟选项 227

11.5.2服务无状态性与服务实例 228

11.5.3服务无状态性与粒度 228

11.5.4服务无状态性与服务模型 229

11.5.5服务无状态性如何影响其他原则 229

11.6服务无状态性的相关风险 231

11.6.1对于架构的依赖 231

11.6.2增加的运行时性能需求 231

11.6.3低估交付代价 231

11.7案例研究 232

第12章 服务可发现性(可解释性与交流) 237

12.1可发现性释义 238

12.1.1发现和解释、可发现性和可解释性简述 239

12.1.2发现的起源 241

12.2原则概要 242

12.3发现和可发现性元信息的类型 243

12.3.1设计时发现和运行时发现 244

12.3.2可发现性元信息 245

12.3.3功能性元数据 246

12.3.4服务元数据的质量 246

12.4服务可发现性度量 247

12.4.1基本级别 247

12.4.2定制分级系统 247

12.5可发现性与服务设计 248

12.5.1服务可发现性与服务建模 248

12.5.2服务可发现性与粒度 249

12.5.3服务可发现性与策略断言 249

12.5.4服务可发现性与服务模型 249

12.5.5服务可发现性如何影响其他原则 249

12.6服务可发现性的相关风险 251

12.6.1可发现性在实施后的应用 251

12.6.2由不擅交流的人员来应用本原则 251

12.7案例研究 252

12.7.1服务概要(功能元信息) 252

12.7.2相关的服务质量元信息 253

第13章 服务可组合性(组合成员设计与复杂组合) 255

13.1组合释义 256

13.1.1组合简述 256

13.1.2组合的起源 256

13.2原则概要 260

13.3组合的概念和术语 262

13.3.1组合和组合实例 262

13.3.2组合成员和控制器 262

13.3.3服务组合和Web服务 265

13.3.4服务活动 266

13.3.5组合启动器 267

13.3.6点到点的数据交换和组合 268

13.3.7组合的类型 268

13.4复杂服务组合 269

13.4.1一个服务库存演化的阶段 269

13.4.2定义复杂服务组合 271

13.4.3为复杂服务组合做准备 271

13.5服务可组合性度量 272

13.5.1组合的演化周期状态 272

13.5.2组合设计评估 273

13.5.3组合运行时评估 273

13.5.4组合治理的评估 274

13.5.5可组合性的度量 275

13.6组合与服务设计 278

13.6.1服务可组合性与粒度 278

13.6.2服务可组合性与服务模型 279

13.6.3服务可组合性与组合自治 279

13.6.4服务可组合性与编排 280

13.6.5服务可组合性如何影响其他原则 281

13.7服务组合的相关风险 284

13.7.1组合成员成为单点失效的源头 285

13.7.2组合成员成为性能瓶颈 285

13.7.3对于组合中“过度复用”的治理强度 285

13.8案例研究 286

第3部分 补充内容 290

第14章 面向服务与面向对象:原则和概念上的比较 290

14.1两种设计范式的传说 291

14.2目标的比较 293

14.2.1提高业务需求的满足度 294

14.2.2提高鲁棒性 294

14.2.3提高可扩展性 295

14.2.4提高灵活性 295

14.2.5提高可复用性和生产率 295

14.3基本概念的比较 296

14.3.1类和对象 296

14.3.2方法和属性 296

14.3.3消息 297

14.3.4接口 298

14.4设计原则的比较 299

14.4.1封装 300

14.4.2继承 300

14.4.3泛化和特化 301

14.4.4抽象 303

14.4.5多态性 303

14.4.6开放-封闭原则(OCP) 304

14.4.7别重复你自己(DRY) 304

14.4.8单一职责原则(SRP) 304

14.4.9委托 307

14.4.10关联 307

14.4.11组合 308

14.4.12聚合 308

14.5面向服务类的设计指南 310

14.5.1类接口的实现 310

14.5.2限制类对接口的访问 310

14.5.3不要在接口中定义公共属性 310

14.5.4谨慎使用继承 310

14.5.5避免跨服务的has-a关系 311

14.5.6使用抽象类进行建模,而不是进行设计 311

14.5.7使用门面(Facade)类 311

第15章 实践支持 312

15.1服务概要 313

15.1.1服务层的概要结构 313

15.1.2能力概要结构 314

15.1.3其他考虑因素 315

15.2词汇表 316

15.2.1面向服务计算的术语 317

15.2.2服务分类的术语 317

15.2.3类型和相关术语 318

15.2.4设计原则的应用级别 318

15.3组织角色 319

15.3.1服务分析员 321

15.3.2服务架构师 321

15.3.3服务管理者 321

15.3.4 schema管理者 322

15.3.5策略管理者 322

15.3.6服务注册表管理者 322

15.3.7技术交流专家 323

15.3.8企业架构师 323

15.3.9企业设计标准管理者(及审计员) 323

第16章 面向服务原则到战略目标的映射 325

16.1提高内在互操作性的原则 326

16.2增强联合的原则 327

16.3增加厂商多样化选择的原则 327

16.4提高业务和技术领域一致性的原则 328

16.5提高投资回报率的原则 328

16.6提高组织敏捷度的原则 329

16.7降低IT整体负担的原则 330

第4部分 附录 332

附录A 案例研究总结 332

附录B 过程描述 334

B.1交付过程 335

B.1.1自顶向下与自底向上 335

B.1.2库存分析周期 335

B.1.3库存分析与面向服务设计 337

B.1.4选择交付策略 337

B.2面向服务分析过程 338

B.2.1定义分析范围 339

B.2.2识别受影响的系统 340

B.2.3执行服务建模 340

B.3服务建模过程 340

B.4面向服务设计过程 342

B.4.1设计过程和服务模型 342

B.4.2服务设计过程与面向服务 342

附录C 原则和模式的对照 345

其他资源 347

返回顶部