您的位置:首页 > 其它

分布式系统原理与规范 笔记

2014-01-22 00:00 113 查看
传统的集中式系统:单处理器系统,由单个计算机及其外围设备构成,也可以包括一些远程终端。

大量计算机通过高速网络连接 成为计算机网络或者分布式系统。

描述:若干计算机的集合。

分布式目标:

1、让用户方便地与资源链接

2、隐藏在网络上分布(透明性)

访问、位置、迁移、重定位、复制、并发、故障、持久性

3、开放

4、可扩展

接口通过IDL定义,记录服务的语法。实际通过非正式方式给出。

策略与机制分离。

扩展性:1.规模上扩展;

分布式app直接使用套接字通信。

商业环境中,使用多层分布体系:纵向分布:逻辑上不同的组件放在不同的机器上。

客户和服务器可以在物理上分割成几个部分,它们在逻辑上拥有同等地位,但每个部分都处理自己拥有的完整的数据集,从而达到负载平衡。

通信模型:

1.RPC

2.远程方法调用

3.面向消息的中间件

4.stream

物理层:负责对信号的传输

数据链路层:实际的通信网络会发生错误,本层采取某种机制检测并纠正这种错粗。 校验。

远程过程调用: 允许程序调用位于其他机器的进程。当机器A上的进程调用机器B上的进程时,A上的调用进程被挂起,B上的进程开始执行,

调用方使用参数将信息传送给调用方,通过传回的结果得到信息。

希望RPC是透明的。

RPC方式:

1、门

2、异步RPC(RPC)

DCE 分布式计算环境

现有操作系统与分布式应用程序之间的中间抽象来执行。 中间件系统。

由 分布式文件服务,目录服务,分布式时间服务(DTS)

RPC系统自动找到恰当的服务器,在客户端和服务器建立通信。

接口定义 和 唯一标识符。

客户绑定到服务器,服务器上都有DCE守护进程维护一张 服务器,断点 列表。

对象的关键特点是对数据的封装,封装的数据称为状态,操作成为方法。

将接口和实现这些接口的对象分离 。 接口在一台机器上,对象本身驻留在另一台机器上。 分布式对象。

当一个client绑定到一个分布式对象的时候,该对象接口的一种实现:代理proxy 被加载到客户的地址空间。

代理唯一的工作时对方法的调用编组成消息,并对 应答消息进行编解码,将调用的结果返回给客户。

实际对象驻留在服务器所在机器上,它向服务器提供的接口与客户端接口相同。

对象适配器 让该object adapter。

接口的实现可研在适配器中注册,随后适配器可以使该接口可供远程调用。

对象分为:语言对象和运行时对象
 持久性对象和暂时对象。
 

持久对象始终存在,不依赖于当前服务器。

创建进程时,分配一个独立的地址空间。

空间分配意味着 对内存段进行初始化,数据段清零,有关程序复制到文本段,为临时数据建立堆栈。

进程之间切换  CPU切换(寄存器,程序计数器,堆栈指针),os要修改MMU的寄存器,位于转换后备缓冲器(TLB)的地址

转换缓冲内容标记为无效。如果同时运行进程数目超过主存

容纳能力,切换进程前必须在主存和磁盘之间进行切换。

unix IPC:管道、消息队列、共享内存段

IPC禁止的主要缺陷: 通信需要开销庞大的上下文切换。

因为IPC需要内核干预才能进行。

线程切换可以在用户空间完成。 而进程切换需要在内核空间完成。

服务器处理 客户端突然要求中断通信,如 下载中断。 考虑 带外数据的支持。

服务器是否是stateless的。

状态无关:不保存客户的状态信息,也不降自身的状态变化告知任何客户。

stateful server保存客户端信息,并对其进行维护。(复杂性:恢复机制) 

对象服务器 支持分布式对象而设计的对象。

对象服务器本身并不真正提供特定服务,服务由驻留在服务器中的对象实现。 也就是只提供根据远程客户的请求来调用本地对象的手段。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: