书籍:《面向模式的软件架构IV:分布式计算的模式语言》
简介
迄今为止,人们提出的软件开发模式有不少是关于分布式计算的,但人们始终无法以完整的视角了解分布式计算中各种模式是如何协同工作、取长补短的。构建复杂的分布式系统似乎成为了永远也无法精通的一门手艺。本书的出版改变了这一切。
本书是经典的POSA系列的第4卷,介绍了一种模式设计语言,将分布式系统开发中的114个模式联系起来。书中首先介绍了一些分布式系统和模式语言的概念,然后通过一个仓库管理流程控制系统的例子,介绍如何使用模式语言设计分布式系统,最后介绍模式语言本身。

使用这一模式语言,人们可以有效地解决许多与分布式系统开发相关的技术问题,如
★ 对象交互
★ 接口与组件划分
★ 应用控制
★ 资源管理
★ 并发与同步
本书从实用角度展示了如何从现有的主要模式中整合出一门全面的模式语言,用于开发分布式计算中间件及应用程序。作为该领域在市场上唯一统揽全局的书,它将给读者带来醍醐灌顶的感觉!
笔记
以前总是困惑自己正在开发的游戏网络通信框架是前人怎么想出来的,看着底层那些乱七八糟的代码,即膜拜又感到不解。看到本书讲的一个模式:Half-Sync/Half-Async 顿时感觉清楚了许多。这本书对于很多模式都讲的不是很细致,只是粗略总结一下,详细的用法和介绍还是要去参考一些《面向模式的软件架构I》、《面向模式的软件架构II》、《设计模式:可复用面向对象基础》。对于网络框架的架构这本书和《面向模式的软件架构II》必备。
下面把书中提及到的分布式相关的模式列举出来:
从混沌到结构(From Mud To Structure )
- 领域模型(Domain Model)
 - 分层(Layers)
 - MVC模式(Model-View-Controller)
 - PAC模式(Presentation-Abastraction-Control)
 - 微内核(Microkernel)
 - 反射(Reflection)
 - 管道和过滤器(Pipes and Filters)
 - 共享仓库(Shared Repository)
 - 黑板(Blackboard)
 - 领域对象(Domain Object)
 
分布式架构
- 消息机制(Messaging)
 - 消息通道(Message Channel)
 - 消息端点(Message Endpoint)
 - 消息转换器(Message Translator)
 - 消息路由(Message Router)
 - 发布-订阅者(Publisher-Subscriber)
 - 代理者(Broker)
 - 客户端代理(Client Proxy)
 - 请求者(Requestor)
 - 调用者(Invoker)
 - 客户端请求处理(Client Request Handler)
 - 服务端请求处理(Server Request Handler)
 
事件分派(Event Demultiplexing and Dispatching)
- Reator
 - Proator
 - Acceptor-Connector
 - Asynchronous Completion Token
 
接口划分(Interface Partitioning )
- Explicit Interface
 - Extension Interface
 - Introspective Interface
 - 动态调用接口(Dynamic Invocation Interface)
 - 代理(Proxy)
 - 业务委托(Business Delegate)
 - 外观模式(Facade)
 - 复合方法(Combined Method)
 - 迭代器(Iterator)
 - 枚举方法(Enumeration Method)
 - 批处理方法(Batch Method)
 
组件划分(Component Partitioning)
- 封装实现(Encapsulated Implementation)
 - 整体-部分(Whole-Part)
 - 组合模式(Composite)
 - 主从模式(Master-Slave)
 - Half-Object plus Protocol
 - Replicated Component Group
 
应用控制(Application Control)
- 页控制器(Page Controller)
 - 前端控制器(Front Controller)
 - 应用控制器(Application Controller)
 - 命令处理器(Command Processor)
 - 模板视图(Template View)
 - 转换视图(Transform View)
 - 防火墙代理(Firewall Proxy)
 - 授权(Authorition)
 
并发(Concurrency)
- Half-Sync/Half-Async
 - Leader/Followers
 - Active Object
 - Monitor Object
 
同步(Synchronization)
- 守护挂起(Guarded Suspension)
 - Future
 - 线程安全接口(Thread-Safe Interface)
 - 双检查锁(Double-Checked Locking)
 - 策略锁定(Strategized Locking)
 - 范围锁定(Scoped Locking)
 - 线程指定存储(Thread-Specific Storage)
 - 复制值(Copied Value)
 - 常量值(Immutable Value)
 
对象交互(Object Interaction)
- 观察者(Observer)
 - 双分配(Double Dispatch)
 - 中间者(Mediator)
 - 命令模式(Command)
 - 备忘录模式(Memento)
 - 环境对象(Context Object)
 - 数据传输对象(Data Transfer Object)
 - 消息(Message)
 
适配和扩展(Adaptation and Extension)
- 桥接模式(Bridge)
 - 对象适配器(Object Adapter)
 - 责任链(Chain of Responsibility)
 - 解释器(Interpreter)
 - 插入器(Interceptor)
 - 访问者(Visitor)
 - 修饰模式(Decorator)
 - Execute-Around Object
 - 模板方法(Template Method)
 - 策略模式(Strategy)
 - 空对象(NULL Object)
 - 封装外观(Wrapper Facade)
 - Declarative Component Configuration
 
模态行为(Modal Behavior)
- 状态对象(Objects for States)
 - 状态方法(Methods for States)
 - 状态集合(Collections for States)
 
资源管理(Resource Management)
- 容器(Container)
 - 组件配置(Component Configurator)
 - 对象管理器(Object Manager)
 - 查找(Lookup)
 - 虚拟代理(Virtual Proxy)
 - 生命周期回调(Lifecyce Callback)
 - 任务协调器(Task Coordinator)
 - 资源池(Resource Pool)
 - 资源缓冲(Resource Cache)
 - Layzy Acquisition
 - Eager Acquisition
 - Partial Acquisition
 - Activator
 - Evictor
 - Leasing
 - 自动垃圾回收(Automated Garbage Collection)
 - 计数句柄(Counting Handle)
 - 抽象工厂(Abstract Factory)
 - 构建者(Builder)
 - 工厂方法(Factory Method)
 - Disposal Method
 
数据库访问(Database Access)
- 数据库访问层(Database Access Layer)
 - 数据映射(Data Mapper)
 - 行数据网关(Row Data Gateway)
 - 表格数据网关闭(Table Data Gateway)
 - Active Record
 
以上模式详细内容还需要更加深入的应用才能很好的掌握。继续学习…