分布式系统设计范型

分布式系统是若干独立计算机的集合,这些计算机对于用户来说像是单个系统。

分布式系统,包括基于对象的分布式系统、分布式文件系统、基于文档的分布式系统以及基于协作的分布式系统。

中间件是高层的用户应用程序与低层的操作系统之间的软件层。

体系结构模型

体系结构是各个独立指定组件的结构。

整体目标:确保结构能满足现在和将来可能的需求。

主要关心:系统可靠性、适应性、可管理型和性价比。

第一步,体系结构元素——通信实体

1)面向系统的角度:线程、进程、结点。

2)面向问题的角度:对象(自然单元)、组件(提供的接口和所需接口)、Web服务(经常跨越组织边界)。

3)进程间通信:相对底层支持(套接字、多播、消息传递)。

4)远程调用:最常见的通信范型,双向交换。

请求——应答协议(RR):一对消息的交换。

远程过程调用(RPC):远程计算机上进程中的过程能被调用。

远程方法调用(RMI):一个发起调用的对象可以调用一个远程对象中的方法。

进程通信及远程调用的限制:

发送者需要知道接收者(空间耦合);

发送者和接收者同时存在(时间耦合)。

5)间接通信(时间空间解耦合)。

组通信:一对多通信范型。

发布——订阅系统:提供一个中间服务,有效确保生产者生成的消息被路由到需要这个消息的消费者(体系结构生产者消费者问题特化,特对特)。

消息队列:提供点到点服务。

元组空间:进程可把任意结构化数据存放在一个持久化元组空间,其他进程可读可删除。

分布式共享内存:用于支持在不共享物理内存的进程间共享数据。

第二步,体系结构元素——中间件内容补充

中间件提供一个编程抽象来屏蔽异构问题,主要解决下列问题:

1)硬件。

数据类型在不同硬件平台上表示不同。

存储方式不同(PowerPC采用big-endian,X86采用little-endian)。

2)通信协议。

独立于网络底层的传输协议(底层无关)。

3)操作系统。

在操作系统上提供更高级的抽象API,屏蔽操作系统级的异构。

4)编程语言。

CORBA通过IDL,可以使得不同的语言写的代码互相调用。

CORBA——公共对象请求代理结构。

第三步,体系结构模型——分布式系统结构的设计需求

设计考虑:系统组件间的责任划分,组件在网络上的放置等。

1)影响1:性能问题。

响应能力:服务器和网络负载;OS中间件与代码引起的延迟。

吞吐量。

负载平衡。

2)影响2:QoS服务质量。

可靠性、安全性、适应性。

性能一般体现在响应与吞吐,但是还有一些新的解释。

强时间性数据(time-critical data)。

QoS可以在操作系统层、网络层等多个层级实现。

3)影响3:缓存和复制的使用。

缓存复用频度。

优化访问时间。

4)影响4:可靠性问题。

正确性:形式化验证;Model Checking;测试技术。

容错性:冗余是关键。

安全性:保证数据不受攻击;通过网络访问数据的权限。

第四步,体系结构模型——客户-服务器模式

客户端Client发出Invocation,服务端Server返回Result。

CS模式C端比较肥胖,分担了S端一些任务,但result计算却又只在S端进行。

S端和网络也是瓶颈。

第五步,体系结构模型——层次化体系化结构

层次化与分层体系结构互补,是一项组织给顶层功能的技术。

层次化应用功能分解如下:

1)表示逻辑:用户交互与用户应用视图逻辑。

2)应用逻辑:设计应用相关(业务逻辑)详细的应用特定储存。

3)数据逻辑:涉及应用的持久存储,通常在一个数据库管理系统中。

第六步,体系结构模型——P2P体系化结构

1)结构化P2P(分布式哈希表DHT映射);

2)非结构化P2P;

3)混合P2P。

第七步,体系结构模型变体

1)思路。

使用多个服务器和缓存,增加性能和灵活性。

使用移动代码和移动代理。

用户硬件喜好。

弹性扩展删除的需求。

2)方式。

服务器组。

代理服务器与缓存。

移动代码(服务器与客户端传递)。

移动代理(Server 间传递)。

网络计算机。

猜你喜欢

转载自blog.csdn.net/weixin_43268590/article/details/128632595
今日推荐