用以支持分布式的技术的3个层次:

ad hoc网络编程,可以参考:http://baike.baidu.com/link?url=eF7jZV0BWQMUd7EfM8F7Ia77Oy0YlO9yY1tSaUy2Gkco0yfpSxwnCAz5Q1FzhChH2DveRsOEguBL5t6Dnm0h6K

结构化通信:通过提供较高层次的通信机制,避免了应用代码与底层IPC机制的直接耦合,从而解决ad hoc网络比编程的限制。最有名的结构化通信实例时远程过程调用RPC平台,如sun rpc以及分布式计算环境DCE、ACE等。

中间件:

1、 分布式对象计算中间件,用来构建分布式系统应用的CORBA2.x和java rmi是分布式对象计算中间件技术的典范。

2、 组件中间件,EJB和CORBA组件模型CCM是组件中间件技术的典型代表。

3、 发布/订阅中间件和面向消息的中间件,支持异步通信。如IBM的MQ系统、BEA的message q,及java消息服务JMS、数据发布服务DDS等等。

4、面向服务架构和web服务,如websercie、mule、apache web服务调用框架(web service invocation framework,WSIF)等等。

模式语言

分布式计算的模式语言一共包含114个模式,分为13组问题域。每个问题域描述一个和构造分布式系统相关的特定技术主题,并包含模式语言中针对该问题的所有模式。

(1) 从混沌到结构,该问题域包括了分布式模式语言的基础模式。它们帮助我们从需求和限制的混沌中得到粗粒度的软件结构,进而产生清晰而独立的实体部件以构成整个要开发的系统。Domain model,Layer,Modele-View-Controller,Presentation-Abstract-Controll,Microkernel,Reflection,pipes and filters,shared repository,blackboard,domain object.

(2)分布式基础设施,该问题域描述了中间件相关的模式。中间件是分布式软件的基础设施,帮助我们简化分布式系统中的应用开发。这里的模式可以帮助开发人员理解常用中间件产品和平台所支持的基础通信范式,以及其软件架构的关键方面。Messaging,Message channel,Message Endpoint,Message Translator,Message Router,Broker,Client Proxy,Requestor,Invoker,Client Request Handler,Server Request Handler,publisher-subscriber.

(3) 事件分离和分发,不管应用使用一个多么负责的通信模型,比如同步请求-响应,异步消息或者发布/订阅传播机制,分布式计算的核心仍然是处理和响应网络中接收到的事件。事件驱动的内核扮演着至关重要的角色,正因为如此,它绝不能成为系统的性能瓶颈。Reactor、Proactor、Acceptor-Connector、Asynchronous Completion Token。

(4) 接口划分,接口时组件的"名片",客户端可以通过它来了解组件的功能和使用协议。Explicit Interface,Extension Interface,Introspective interface,Dynamic Invocation Interface,Proxy,Business Delegate ,Facade ,Combined Method, Iterator,Enumeration Method和batch method.

(5) 组件划分,组件是基本实现单元,它为客户提供定义清晰的服务。Encapsulated Inplementation、whole part、Composite 、Master-slave、Half-Object plus protocol、Replicated Component group.

(6)应用控制,首先是将应用程序的用户输入转换成具体的功能服务请求,然后执行这些请求,最后再将结果转换成对用户有用的输出。Page Controller、Front Controller、Application Controller、CommandProcessor、Template View、Transform View、Firewall Proxy、Authorization。

(7) 并发,分布式系统软件经常能从并发中受益,尤其是那些需要同时处理多个客户请求的服务器和服务器端的应用。Half-Sync/half_aysnc、Leader/Followers、Active Object、Monitor Object。

(8) 同步,同步访问共享组件、对象和资源,并避免死锁、竞争和其他并发问题是构建分布式系统最困难的任务之一。此外,同步会产生很大的开销,因此设计应用程序时应尽量减少或者避免不必要的同步。Guarded Suspension、future、Thread-safe Interface、Double-Checked Locking、Strategized Locking、scope Locking、Thread-specific storage、Copied Value、Immutable Value。

(9) 对象交互,在独立程序中,对象间的协作主要包含相互调用方法和服务、传递调用参数已经同步等待被调用对象返回结果。Observer、Double Dispatch、Mediator、Memento、Context Object、Data Transfer Object、Command、Message。

(10) 适配与扩展:会长期存在的分布式系统中组件应当是可配置的、自适应的和便于改进的。Bridge、Object Adapter、Interceptor、Chain of Responsibility、Interpreter、Visitor、Decorator、Template Method、Strategy、Null Object、Wrapper Facade、Execute-Around Object、Declarative Component Configuration。

(11) 状态行为:在实践中,开发人员经常会面对使用状态机的情形,某些情况下,这样做会导致实现上不必要的复杂性。Objects For states、Methods For States、Collection for states。

(12) 资源管理:资源管理对分布式系统的成功至关重要。Object manager、Container、Component Configuration、lookup、Virtual Proxy、Lifecycle Callback、Task Coordinator、Resource Pool、resource Cache、lazy acquisition、eager acquisition、partial acquisition、activator、evictor、leasing、automated garbage collection、counting handle、abstract factory、Builder、factory method、disposal method。

(13) 数据库访问: 许多分布式系统使用数据库来存储持久化数据,越来越多的系统正使用面向对象的技术的同时使用关系数据库模型。Database Access Layer、Data Mapper、Row Data Gateway、Table Data Gateway和active record。

它们之间的关系如下图所示:

小结:

我们关于分布式计算的模式语言一共包含114个模式,分为13组问题域,每个问题域描述一个和构造分布式系统相关的特定技术主题,并包含模式语言中针对该问题的所有模式。

转载于:https://www.cnblogs.com/davidwang456/p/4475402.html

分布式计算的模式语言读后感相关推荐

  1. 分布式计算的模式语言读后感--基线架构

    基线架构: (来自http://xuliangyong.iteye.com/blog/321945) 架构基线的定义  架构是最终系统的一个早期版本,也称为架构基线.架构基线是整个系统的子集,我们称之 ...

  2. 图灵2010.07书讯

    图灵五周年活动汇集 : [互 动]图灵5周年之"Linux盛宴" [互动] <UNIX网络编程>买赠活动 [卓越]图灵5周年专题感恩活动 [上海第一书店]图灵图书真情回 ...

  3. 编程语言入门及进阶、设计模式、面向对象书籍

    1. Python Python 基础教程 Python教程(在线版) Automate the Boring Stuff with Python(繁琐工作自动化) 前六章,python 语言基础: ...

  4. 面向模式的软件体系结构(卷1-5

    面向模式的软件体系结构(卷1-5 [一日养生24法].宋爱莉.插图版.pdf: http://www.t00y.com/file/60331740 [一桶金]--颠覆传统赚钱方式的系统创富法则.艾莫. ...

  5. 模式的模式:从设计模式到元模式

    最近的一两个月里,我一直在研究各类的模式:设计模式.架构模式.容器模式,以及其它一些特定领域的模式(如并行计算模式)等等. 经历了一番买书.读论文.读代码,我发现了以前对于模式的理解不够深刻.也因此呢 ...

  6. it Ebook 免费

    it Ebook 免费 [30天自制操作系统].(川合秀实).周自恒等.扫描版.pdf: http://www.t00y.com/file/60741230 [Apache服务器配置与使用工作笔记]. ...

  7. 2010年下半年书单

    1.工作3年了, 后天是25岁生日.奔向而立的人了, 想在而立之年, 有所作为. 生活是上班下班,在泡论坛.看博客,技术学得很零碎. 保持对代码.软件的喜欢与热情,不断尝试新东西. 努力学习网络.并发 ...

  8. Robert C. Martin列举的专业软件开发人员必须精通的技能

    在世界顶级软件开发大师Robert C. Martin(Bob大叔)最新力作The Clean Coder: A Code of Conduct for Professional Programmer ...

  9. 软件架构设计经典书籍有哪些

     1. 软件架构设计 作者:温昱 内容简介:本书紧紧围绕"软件架构设计"这一主题,立足实践解析了软件架构的概念.阐述了切实可行的软件架构设计方法.提供了可操作性极强的完整的架构 ...

最新文章

  1. python threading模块多线程源码示例(二)
  2. 一览六月最热的5篇AI技术论文
  3. c++求解自行车慢速比赛问题_一元一次方程应用专题,十大题型(包括数轴上动点问题)...
  4. asp.net日历控件My97DatePicker下载地址
  5. Oracle 时区(TimeZone )-- DST
  6. NopCommerce 2.5的部署
  7. hdf5 目录没有serial_Serial靶机实战
  8. c语言延时函数delay_STM32中精确延时函数的实现
  9. vector获取缓冲区指针
  10. 深化代理模式,Mybaits如何做到调用接口
  11. WebCollector 简介与 快速入门
  12. goeasy的ios无后台接收消息的一些bug解决
  13. 【计算机网络学习笔记04】网络体系架构与网络协议
  14. mac pdf去水印_Inpaint For Mac :超强去水印工具
  15. filter 无效不起作用
  16. xp系统启动时0x0000007B(0XF799A524,0XC0000034,0X00000000,0X00000000)错误
  17. vscode英文感叹号没出现提示文本解决方法!
  18. 阿里云云盘扩容数据盘_Linux
  19. usim卡如何换nano卡_5G超级SIM卡价格正式公布,iPhone用户彻底无缘
  20. html表单验证spry,Spry验证表单教案

热门文章

  1. 微软模拟飞行2020服务器多少内存,《微软模拟飞行2020》配置公开,想玩爽还需玩家加大投入...
  2. php统计日周月数据,PHP实现 今天、昨天、上周、本周、本月、本季度 、本年数据统计功能...
  3. 传输滤波器的选型及使用说明
  4. 将服务端移植到Linux和MAC OS
  5. .so 依赖目录 cmake_CMake 的研究与学习笔记
  6. java map 查找_在Java TreeMap中查找元素位置
  7. C++学习 之 fill和memeset的区别
  8. C++成员对象和封闭类
  9. c++   string类
  10. 83. Leetcode 148. 排序链表 (排序)