面向模式的软件架构 分布式计算的模式语言 卷4pdf

图书网 2019年6月26日16:11:39
评论
1.8K
摘要

《面向模式的软件架构:分布式计算的模式语言(卷4)》:迄今为止,人们提出的软件开发模式有不少是关于分布式计算的,但人们始终无法以完整的视角了解分布式计算中各种模式是如何协同工作、取长补短的。构建复杂的分布式系统似乎成为了永远也无法精通的一门手艺。《面向模式的软件架构:分布式计算的模式语言(卷4)》的出版改变了这一切。
《面向模式的软件架构:分布式计算的模式语言(卷4)》是经典的POSA系列的第4卷。介绍了一种模式设计语言。将分布式系统开发中的114个模式联系起来。书中首先介绍了一些分布式系统和模式语言的概念。然后通过一个仓库管理流程控制系统的例子,介绍如何使用模式语言设计分布式系统,最后介绍模式语言本身。
使用这一模式语言,人们可以有效地解决许多与分布式系统开发相关的技术问题。如
·对象交互
·接口与组件划分
·应用控制
·资源管理
·并发与同步
《面向模式的软件架构:分布式计算的模式语言(卷4)》从实用角度展示了如何从现有的主要模式中整合出一门全面的模式语言,用于开发分布式计算中间件及应用程序。作为该领域在市场上 统揽全局的书,它将给读者带来醍醐灌顶的感觉!

面向模式的软件架构 分布式计算的模式语言 卷4 内容简介

《面向模式的软件架构:分布式计算的模式语言(卷4)》关注分布式计算系统软件的设计和实现。书中首先介绍理解《面向模式的软件架构:分布式计算的模式语言(卷4)》内容所需的核心的模式概念,分布式计算的好处和挑战;然后描述如何使用分布式计算模式语言,设计真实世界中仓库管理流程控制系统;最后重点讲述分布式计算模式语言,该语言陈述了创建分布式系统相关的技术主题。

《面向模式的软件架构:分布式计算的模式语言(卷4)》适用于软件架构师和开发人员。

面向模式的软件架构 分布式计算的模式语言 卷4 目录

第一部分 概念

第1章 模式与模式语言 2

1.1 模式 2

1.2 模式内幕 3

1.2.1 问题的环境 3

1.2.2 驱动因素:所有模式的核心 4

1.2.3 解决方案与结果 4

1.2.4 模式命名 4

1.2.5 模式表现形式概述 5

1.3 模式的关系 5

1.3.1 模式的互补 5

1.3.2 模式的组合 6

1.3.3 模式故事 6

1.3.4 模式序列 7

1.4 模式语言 7

1.4.1 从模式序列到模式语言 7

1.4.2 展现和使用模式语言 7

1.5 模式的连接 8

第2章 分布式系统 9

2.1 分布式的优点 9

2.2 分布式的挑战 11

2.3 用以支持分布式的技术 12

2.3.1 分布式对象计算中间件 13

2.3.2 组件中间件 14

2.3.3 发布/订阅中间件和面向消息的中间件 15

2.3.4 面向服务架构和Web服务 16

2.4 中间件技术的局限性 17

第3章 模式语言 18

3.1 意图、范畴和对象 18

3.2 起源 18

3.3 结构和内容 19

3.4 模式的表现 24

3.5 实际应用 26

第二部分 模式故事

第4章 仓库管理流程控制 33

4.1 系统范畴 33

4.2 仓库管理流程控制 34

第5章 基线架构 37

5.1 架构环境 37

5.2 划分大泥球 38

5.3 层次分解 38

5.4 访问领域对象功能 40

5.5 网络桥接 41

5.6 分离用户界面 43

5.7 功能分布 45

5.8 支持并发的领域对象访问 47

5.9 获得可扩展的并发性 48

5.10 将面向对象与关系型数据库连接起来 49

5.11 领域对象的运行时配置 50

5.12 基线架构总结 51

第6章 通信中间件 54

6.1 分布式系统的中间件架构 54

6.2 对中间件的内部设计进行结构化 57

6.3 封装底层系统机制 58

6.4 分离ORB核心事件 59

6.5 ORB连接管理 61

6.6 提高ORB的可伸缩性 63

6.7 实现同步请求队列 65

6.8 可互换的内部ORB机制 66

6.9 管理ORB策略 68

6.10 ORB动态配置 69

6.11 通信中间件总结 71

第7章 仓库拓扑 74

7.1 仓库拓扑基线 74

7.2 表现层次化的存储结构 74

7.3 存储结构导航 77

7.4 存储属性建模 78

7.5 不同的存储单元行为 79

7.6 实现全局功能 81

7.7 遍历仓库拓扑 81

7.8 支持控制流扩展 83

7.9 连接数据库 84

7.10 维护内存中的存储单元数据 85

7.11 配置仓库拓扑 86

7.12 细述显式接口 88

7.13 仓库拓扑总结 89

第8章 模式故事背后的故事 91

第三部分 模式语言

第9章 从混沌到结构 97

9.1 Domain Model** 106

9.2 Layers** 108

9.3 Model-View-Controller** 109

9.4 Presentation-Abstraction-Control 111

9.5 Microkernel** 113

9.6 Reflection* 114

9.7 Pipes and Filters** 116

9.8 Shared Repository** 117

9.9 Blackboard 119

9.10 Domain Object** 121

第10章 分布式基础设施 123

10.1 Messaging** 129

10.2 Message Channel** 130

10.3 Message Endpoint** 132

10.4 Message Translator** 133

10.5 Message Router** 134

10.6 Publisher-Subscriber** 135

10.7 Broker** 137

10.8 Client Proxy** 139

10.9 Requestor** 140

10.10 Invoker** 142

10.11 Client Request Handler** 143

10.12 Server Request Handler** 144

第11章 事件分离和分发 147

11.1 Reactor** 150

11.2 Proactor* 152

11.3 Acceptor-Connector** 154

11.4 Asynchronous Completion Token** 155

第12章 接口划分 157

12.1 Explicit Interface** 163

12.2 Extension Interface** 165

12.3 Introspective Interface** 166

12.4 Dynamic Invocation Interface* 167

12.5 Proxy** 169

12.6 Business Delegate** 170

12.7 Facade** 171

12.8 Combined Method** 172

12.9 Iterator** 173

12.10 Enumeration Methond** 174

12.11 Batch Method** 175

第13章 组件划分 177

13.1 Encapsulated Implementation** 181

13.2 Whole-Part** 183

13.3 Composite** 185

13.4 Master-Slave** 186

13.5 Half-Object plus Protocol** 188

13.6 Replicated Component Group** 189

第14章 应用控制 191

14.1 Page Controller** 196

14.2 Front Controller** 197

14.3 Application Controller** 198

14.4 Command Processor** 199

14.5 Template View** 200

14.6 Transform View** 201

14.7 Firewall Proxy** 202

14.8 Authorization** 204

第15章 并发 206

15.1 Half-Sync/Half-Async** 209

15.2 Leader/Followers** 211

15.3 Active Object** 212

15.4 Monitor Object** 214

第16章 同步 216

16.1 Guarded Suspension** 221

16.2 Future** 223

16.3 Thread-Safe Interface* 224

16.4 Double-Checked Locking 225

16.5 Strategized Locking** 226

16.6 Scoped Locking** 227

16.7 Thread-Specific Storage 228

16.8 Copied Value** 230

16.9 Immutable Value** 231

第17章 对象间的交互 233

17.1 Observer** 237

17.2 Double Dispatch ** 238

17.3 Mediator* 239

17.4 Command** 240

17.5 Memento** 242

17.6 Context Object** 243

17.7 Data Transfer Object** 244

17.8 Message** 245

第18章 适配与扩展 247

18.1 Bridge** 255

18.2 Object Adapter** 256

18.3 Chain of Responsibility* 257

18.4 Interpreter 258

18.5 Interceptor** 260

18.6 Visitor** 261

18.7 Decorator 262

18.8 Execute-Around Object** 264

18.9 Template Method* 265

18.10 Strategy** 266

18.11 Null Object** 267

18.12 Wrapper Facade** 269

18.13 Declarative Component Configuration* 270

第19章 模态行为 272

19.1 Objects for States* 274

19.2 Methods for States* 275

19.3 Collections for States* 276

第20章 资源管理 278

20.1 Container* 288

20.2 Component Configurator* 289

20.3 Object Manager** 291

20.4 Lookup** 292

20.5 Virtual Proxy** 294

20.6 Lifecycle Callback** 295

20.7 Task Coordinator* 296

20.8 Resource Pool** 298

20.9 Resource Cache** 299

20.10 Lazy Acquisition** 300

20.11 Eager Acquisition** 301

20.12 Partial Acquisition* 303

20.13 Activator** 304

20.14 Evictor** 305

20.15 Leasing** 306

20.16 Automated Garbage Collection** 307

20.17 Counting Handles** 309

20.18 Abstract Factory** 311

20.19 Builder* 312

20.20 Factory Method** 313

20.21 Disposal Method** 314

第21章 数据库访问 316

21.1 Database Access Layer** 318

21.2 Data Mapper** 320

21.3 Row Data Gateway** 321

21.4 Table Data Gateway ** 323

21.5 Active Record 324

第22章 最后的思考 326

术语表 327

参考书目 340

面向模式的软件架构 分布式计算的模式语言 卷4 精彩文摘

这一章,我们抛开仓库管理流程控制系统的细节,再来回顾一下这个例子的全景,看看它是如何指导我们做出设计的。我们将讨论这个例子是如何支持模式语言中的各种属性,以及本书第三部分的分布式计算模式语言是如何支持和指导我们在这个例子选择什么样的模式序列。

回顾一下我们为仓库管理流程控制系统做架构设计的过程,你会发觉对模式的选择和应用是非常自然的,好像本来就应该设计成这个样子,甚至可能会认为是预先设计好的。这个故事自然流畅,我们很容易跟上它的节奏。所以,让人觉得这个架构设计的过程非常直观。

然而,这种感觉实际上是一种过于单纯的错觉,说明你没有意识到存在某种微妙的东西使得设计行为不像转门把手那么简单。对模式序列的分析告诉我们,这是经过深思熟虑的选择,而不是随便拿一个就可以用的。最明显的是,每个单独的模式满足了仓库管理流程控制系统的某个特定需求——这当然是创建一个良好的软件架构的必备条件。然而,仅仅选择了正确的模式还不能保证就能设计出一个高效的、健壮的架构。这些模式必须按照合适的顺序集成在一起,互为补充而不能互相打架。仅仅靠一套各自独立的模式完不成这个任务,因为它们主要关注于解决自己针对的那个问题。

随着设计慢慢地推进,每次引入一个模式,该系统架构的模式序列逐渐创建并显现出来,它不仅是完整的,而且不同的部分互为补充——不仅从功能角度上看是这样,对于成功至关重要的运营和开发方面亦是如此,比如吞吐量、可伸缩性、灵活性和可移植性。

在基线架构以及通信中间件和仓库拓扑的基础结构这个层次,模式序列中的这些模式用于解决系统级别战略性的问题并定义架构主干。像算法上的变化和控制流程这样的局部的战术上的问题则放到了模式序列的后面,等到各自稳定的战略性设计中枢确定下来之后再做处理。我们在序列中每次增加一个模式,增加的时候我们先把它整合到已有的设计中,而不过早地关心起实现细节。换句话说,就是每增加一个新的模式都是将原来的设计进行增强和扩展,从而产生一个新的设计。

所有的这些模式基于其各自的角色集成在一起,它们之间的平衡保证各自能够解决各自的问题,同时又能互相支持从而进一步地表现出各自的能力。例如,我们的基于CCM的ORB中的很多组件分别参与了几个模式的实现。

图书网:面向模式的软件架构 分布式计算的模式语言 卷4pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

软件工程/开发项目管理

软件设计重构pdf

以4个设计原则为中心,全面呈现25种在软件项目中导致技术债务的设计坏味 提供一种独特的坏味命名方法,帮助理解坏味的由来并指出潜在重构方法 包含丰富的例证,展现糟糕设计实践的潜在坏味...
软件工程/开发项目管理

DevOps 最佳实践pdf

DevOps 最佳实践 作者: Bart de Best(巴特・德・贝斯特) DevOps 最佳实践 出版社:电子工业出版社 DevOps 最佳实践 内容简介 近年来,许多组织都体会到了使用敏捷方法的...
软件工程/开发项目管理

Android组件化架构pdf

Android走过的十个年头,其技术演进也是有迹可循的,本书作者基于自己在大型App架构的技术演进中成长的经历,将遇到的相关问题进行深入剖析,包括Android 组件化架构、模块化...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: