什么是分布式处理?要求通俗,易懂。感谢!
分布式处理系统与并行处理系统都是计算机体系结构中的两类。并行处理系统是利用多个功能部件或多个处理机同时工作来提高系统性能或可靠性的计算机系统,这种系统至少包含指令级或指令级以上的并行。并行处理系统的研究与发展涉及计算理论,算法,体系结构,软硬件多个方面,但它与分布式处理系统有密切的关系,随着通信技术的发展,两者的界限越来越模糊。广义上说分布式处理也可以认为是一种并行处理形式。而分布式处理系统将不同地点的或具有不同功能的或拥有不同数据的多台计算机用通信网络连接起来,在控制系统的统一管理控制下,协调地完成信息处理任务的计算机系统。一般认为,集中在同一个机柜内或同一个地点的紧密耦合多处理机系统或大规模并行处理系统是并行处理系统,而用局域网或广域网连接的计算机系统是分布式处理系统。松散耦合并行计算机中的并行操作系统有时也称为分布式处理系统。
分布式处理系统包含硬件,控制系统,接口系统,数据,应用程序和人等六个要素。而控制系统中包含了分布式操作系统,分布式数据库以及通信协议等。
分布式计算环境是在具有多地址空间的多计算机系统上进行计算和信息处理的软件环境。而分布式软件系统是支持分布式处理的软件系统,它包括分布式操作系统,分布式程序设计语言及其编译系统,分布式文件系统和分布式数据库系统等。而CORBA,COM+等是设计分布式软件系统的一些技术。
通俗地讲(一通俗就不是很科学了,你可以参照上边的说法),分布式处理就是多台相连的计算机各自承担同一工作任务的不同部分,在人的控制下,同时运行,共同完成同一件工作任务.
分布式——一个高大上的名词,是计算机软件设计中人民群众喜闻乐见的“逼格满满”、“不明觉厉”的几个名词之一。但很可惜,这玩意儿一点也不复杂,甚至有些“简单”。不信?你只要遵循下述步骤即可将任何一个软件拆分为“分布式”的:
将你的整个软件视为一个系统(不管它有多复杂)
将整个系统分割为一系列的 Process(进程), 每个 Process 完成一定的功能
将这些 Process 分散到不同的机器上。分散后,选择若干种(没错一种可能不够)通信协议把他们连接起来
蹬蹬蹬蹬~大功告成。哈哈别打我,这真的是很严肃的通用型三步骤大杀器,对付任何软件,是任何软件都可以的。接下来我当然要解释清楚为什么。二、跳出误区——分布式不等于并行计算
人们常常把分布式系统自然而然的和并行计算联系起来。然而这并不正确。实际上,分布式系统并不一定是并行的,举个简单的例子就能理解——
某软件,功能如下:
提示用户输入两个数 A 和 B
在内部,对 A 和 B 执行某数学运算,获得 C
输出 C
很简单吧?这三个步骤是无法并行的。它们需要被依次执行。但是这个软件依然可以被改为分布式的,方法就是用前面提到的方法,把步骤 2 的计算过程独立为一个 Process 移动到另外一台计算机上完成。如果我们从整个系统流程的观点来看,并没有什么并行。整个过程都是顺序执行的。只不过执行时出现了“跨设备”的现象而已。可见,分布式本身就只如其字面意思所指,指的仅仅是从结构角度的分散而已。
当然啊,现实世界中,我们更多的时候钟情于分布式,还是因为它与并行之间可以相互配合。例如实现既是分布同时也是并行的系统。
好了,理解这一点之后就不难解释为什么我会说前文提到的三步骤是万用大法了。接下来我们继续讨论分布式本身。
三、拆分+连接是分布式系统的本质
所谓分布式,无非就是”将一个系统拆分成多个子系统并散布到不同设备“的过程而已。
本质上而言,实现一个分布式系统,最核心的部分无非有两点:
如何拆分——可以有很多方式,核心依据一是业务需求,二是成本限制。这是实践中构建分布式系统时最主要的设计依据。
如何连接——光把系统拆开成 Process 还不够,关键是拆开后的 Process 之间还要能通信,因此涉及通信协议设计的问题,需要考虑的因素很多,好消息是这部分其实成熟方案很多
四、为什么你要使用分布式?
分布式系统并非灵丹妙药,解决问题的关键还是看你对问题本身的了解。通常我们需要使用分布式的常见理由是:
为了性能扩展——系统负载高,单台机器无法承载,希望通过使用多台机器来提高系统的负载能力
为了增强可靠性——软件不是完美的,网络不是完美的,甚至机器本身也不可能是完美的,随时可能会出错,为了避免故障,需要将业务分散开保留一定的冗余度
在以提供 Service 为主的服务端软件开发过程中常常遇到这些问题。五、一些分布式方案能解决你的问题,另一些却不能,要学会的其实是选择
笼统的讨论分布式没有太大的意义,就如我刚才所谈的,实际上分布式很容易实现。真正难的地方在于如何选择正确的分布方案。
例如,当你想要建立一个分布式的数据管理系统的时候,你就必须得面对“一致性”问题。如果你对数据一致性要求很高,你就不得不容忍一些缺陷例如规模伸缩困难;而如果你放弃它,你可以轻松伸缩规模,但你必须解决好由此带来的一系列数据不一致导致的问题。(CAP 问题)
于是你会意识到,有许多种分布方案,为了正确解决你的问题,你需要对每一个方案都进行了解,并评估,选择不同的方案有时候区别不大,有时候却会深刻的影响整个系统中其他部分的工作方式,甚至影响用户界面中用户操作时的流程。这是我们学习分布式系统的重点所在。
六、分布式学习入门——基础知识要点
如我前面所讲,分布式入门不难。主要包含如下知识点:
Process(进程)。在分布式系统中,进程是基本单元
通信协议。Process 间需要相互配合才能完成工作,因此通信协议是最基本要解决的问题。这部分其实挺复杂,牵涉面光,不过核心还是抓住两方面,一是存在哪些需求,二是各个协议如何满足这些需求
命名法。两个 Process 要通信,必须相互知道对方的名字,名字可以是数字,也可以是结构化的字符串。例如众所周知域名系统就是一种命名方案,但是方案还有很多,各有特点
协作。上面都在谈 Process 之间的通信,可是为什么要通信?因为要协作。协作是个复杂的主题,其中最基本最基本的一个问题就是同步问题。而聊同步问题必然要聊“锁”……知识点就这么展开了
上面几点是最基础的知识。了解了这些其实就算入门了。可是如何进阶呢?那么必然要开始学习下面的问题:一致性。数据存储时,最基本的问题。其实也是实际设计系统时常常需要反复考虑的问题
容错。冗余是容错的基础,但并不是全部,分布式本身为实现容错提供了一些便利,这也是实际设计系统时常常需要考虑的问题
分布式拼接处理器
1、分布式拼接处理器——是新推出的网络化、数字化、高可靠性、高实时性、高灵活性、高扩展性以及独创图形拼接同步技术(ESYNC)的分布式节点机图像处理系统,是针对众多行业复杂多变的可视化信息显示应用需求研发的大屏幕显示墙易拼接系统。
2、分布式拼接处理器——采用网络分布式架构设计,基于,轻松实现多级网段子系统显示墙数据业务信息安全可靠地互联互动指挥调度决策。
即在网络环境中,信号输入节点机可根据不同地点、不同信号类型、不同性质等进行分布式信号源优化分组;而显示输出节点机亦可根据不同地点、不同大楼、不同场合任意组合拼接,各自可分别自定义,将原有的信号源图像进行单屏、跨屏、全墙显示扩展为跨楼层、跨地点、跨显示墙系统显示,实现多个指挥调度中心/控制室平台的大屏幕系统间信号源共享显示和远程调用显示。
完美解决视频调度指挥中心显示墙与决策室、分析调研室、会商室等显示墙之间的全屏信息同步显示,有利于决策室领导决策指挥、调度、同墙模拟观演,有助于控制中心人员接受指令、准确判断,同时真正意义上做到前端信号系统、显示系统、控制系统、决策机构互相调度与备份。
3、分布式拼接处理器——由于采用网络分布式架构,基于超五类CATe5及其以上规格网线传输,易拼接系统布线更加方便简洁,传输距离更远;使得大屏显示墙无需要昂贵的高品质DVI/HDMI/VGA长线缆、光纤或者增加延长器方式的应用方案,易拼接系统的建造成本大为降低,同时又区别于其他类型大屏拼接器体系。