码迷,mamicode.com
首页 > 其他好文 > 详细

什么是分布式

时间:2015-11-10 16:17:33      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:一律it

--俗解-- 

§什么是分布式系统 

1通俗点说分布式系统就是能把服务器端程序分开部署到多台机器上。 

2跟分层毫无关系,跟它容易搞混的是集群 

分布式就是把一个系统分布在不同的节点上,各节点协同工作,缺一不可 

集群也是把一个系统部署在很多节点上,但是每个节点都能独立工作,一个

节点当掉不仍然可以工作. 


--专业-- 

  分布式软件系统(Distributed Software Systems)是支持分布式处理的软

件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分

布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和

分布式数据库系统等。 

  分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它

和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。 

分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。

一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式

处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个

特点分布性、通信性和稳健性。 

  分布式系统是独立计算机的集合体而这些计算机在系统用户看来像是一

台计算机。几乎所有的大型软件系统势必是分布式的。例如企业范围的商业

系统必须支持多个用户在不同的地点运行公用应用程序。 

  一个分布式系统包含各种各样的应用程序、它们的基本支持软件、它们借

以运行的硬件以及连接分布式硬件的通信链路。最大、最为人熟识的分布式系

统是构成万维网的那一整套计算机、软件和服务。万维网遍布各地与大多数

其他现有分布式系统共存或连接。最常见的分布式系统是联网的客户/服务器系

统。分布式系统都具有以下描述的一般特性。 


1、资源共享 

将一组计算机连接成分布式系统的最常见原因是允许其分享物理资源和

计算资源(例如打印机、文件、数据库、邮件服务、股票行情和合作应用程序

等)。支持资源共享的分布式系统组件发挥类似于操作系统的作用且与其越来

越难以区分。 


2、多节点 

分布式系统的软件在节点或多台独立的计算机(不仅仅是同一台计算机上的

多个处理器因为这属于并行计算的领域)上执行。这些节点可以是个人计算机、

高性能工作站、文件服务器、大型机和巨型计算机。每个节点所扮演的角色可

以是向其他节点要求服务的客户可以是向其他节点提供计算或资源服务的服

务器也可以是兼备两者功能的对等体。一个分布式系统可以小至两个节点

假如存在软件连通性。这种安排如图6a-1所示。 


3、并行性 

分布式系统中的每个节点既独立工作又与所有其他节点并行工作。每个

节点多于一个进程(执行程序)每个进程多于一个线程(并行执行任务)可在

系统中充当组件。大多数组件具有反应性对来自用户的命令和来自其他组件

的消息不断地进行响应。像操作系统一样分布式系统旨在避免终止因此应

始终保持至少部分可用的状态。 


4、异构性 

系统中包含的节点可以由不同的计算与通信硬件组成。组成系统的软件可

以包括不同的编程语言和开发工具。有些异构性问题可以通过使用共同的消息

格式或者在不同平台(如个人计算机、服务器和大型机)上易于执行的低级协议

来解决。其他的可能要求构建将一套格式或协议转变为另一套的网桥。更彻底

的系统集成可以通过这样的方式达到即要求所有的节点支持对独立于平台的

程序指令进行处理的共同虚拟机。使用java编程语言的系统就采用这种方式。 


5、多种协议 

大多数分布式消息传送与在顺序程序范围内使用的调用种类(如过程调用)

有相当大的区别。分布式通信的最基本形式是异步的。与邮政系统中邮寄的信

件类似发送者发送消息而不指望其接收者收到或答复。这种基本的分布式消

息抵达接收者通常要比本地调用花的时间长得多。它们有时以不同于发送的顺

序到达接收者而且可能根本就不能到达接收者。为了避免这种情况必须构

建更复杂的协议。这些协议可能包括 

●过程消息接发在这种消息接发中发送者等待完整的答复 

●半同步消息接发在这种消息接发中发送者在继续之前等待收到消息的

确认 

●事务处理协议在这种协议中一个给定的会话期或事务处理内的所有消

息要么全部被处理要么全部不被处理 

●回叫协议在这种协议中接收者过后给发送者发回不同的消息 

●超时协议在这种协议中发送者在继续之前仅在一定的时间段内等待回

应 

●多址通信协议在这种协议中发送者同时给一组其他的节点发送消息。 

这些以及其他的协议常常被扩充和专门化以提高可靠性、安全性和效率。 


6、容错 

  在单独一台计算机上运行的程序其可靠性充其量仅与该计算机的可靠性

相等。而另一方面大多数分布式系统需要至少保持部分可用和发挥作用的状

态即使其节点、应用程序或通信链路有些出故障或不正常情况。除彻底出故

障外应用程序可能因为带宽不足、网络争用、软件开销或其他系统限制而出

现服务质量难以接受地低的情况。因此在分布式系统的构建中容错的需求

提出了一些最为重要且困难的挑战。 


7、安全性 

  只有特许用户可访问敏感数据或执行关键操作。分布式系统的安全性本质

上是个多层次问题从每个节点的常驻硬件与操作系统所提供的基本安全保证

到信息加密与验证协议到为隐私、内容适宜性和个人责任等问题提供支持的

机制。 

  解决可靠性问题的技术包括使用数字证书和阻止组件编码执行修改磁盘

文件等可能具有危险性的操作。

 

8、消息传送 

  不同计算机上的软件通过建立于若干联网协议(如tcp/ip)基础上的结构化

消息传送规程来进行通信。而这些协议则可以在若干连接技术(如以太网和调制

解调器)之任一种的基础上运行。大多数分布式系统的节点是完全相连的--任一

节点可给任一其他节点发送消息。消息传递由基本的路由算法和相关的联网支

持来完成。 

  消息包括命令、服务请求、事件通知、多媒体数据、文件内容甚至完整

的程序。应注意的是大多数多处理器通过共享存储器而不是消息传送来进行

通信因此不是分布式的。 


9、开放性 

  大多数顺序程序被认为是封闭的因为在执行开始后它们的配置一直保持

不变。在一定程度上大多数分布式系统是开放的因为在系统运行期间可

以添加或改变节点、组件和应用程序。这就提供了容纳扩展所必需的可扩展性

以及随着系统所驻留的环境的变化而变化并应对之的能力。 

  开放性要求每个组件遵守一组最起码的策略、惯例和协议以确保更新或

添加的组件之间具有互操作性。以往最成功的开放式系统是那些提出最低限

度要求的系统。例如超文本传输协议的简易性就是万维网成功的一个主要原

因。 

  国际标准化组织和美国国家标准协会等标准组织与对象管理组等工业财

团一起制定了构成许多互操作性保障之基础的基本格式和协议标准。另外

单个分布式系统还依赖于和环境细节或域相关的策略和机制。 


10、隔离 

  每个组件在逻辑上或物理上是独立存在的仅通过结构化信息协议来与其

他组件进行通信。另外出于功能、性能或安全的考虑一组组的组件也可能

被分开。例如尽管一个公司用分布式系统的连通性可能延伸到整个因特网

但其基本功能可能(常常通过防火墙)限定于只在防火墙之内运行的局域网。这

样它与系统的其他部分进行通信要通过限定的安全协议。 


11、持久性 

  至少有些数据与程序保留在持久性介质上其持久性大于特定应用程序的

执行时间。可在文件系统、数据库系统或编程语言的运行时支持机制等层次上

作出持久性安排。 


12、分散控制 

  单独的计算机无需对整个系统的配置、管理或策略控制担负责任。分布式

系统反而是通过自主主体协议连接的域而这些自主主体为提供聚合功能要达

成足够的共同策略。分散化在有些方面是可取的如为容错而预先采取的措施。

分散化在另一些方面则是必不可少的因为集中控制不能适应当代系统所支持

的节点与连接数量。然而对系统范围的策略实施管理的工具则可能限于特定

用户使用。 


什么是分布式

标签:一律it

原文地址:http://zhangyanfeng.blog.51cto.com/3884312/1711457

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!