首页 理论教育分布计算的内容和中间件服务在分布式系统中的重要角色

分布计算的内容和中间件服务在分布式系统中的重要角色

【摘要】:分布计算的内容已经讨论了很多。根据维基百科中所说:分布计算是计算机科学中的关于分布式系统的一个研究领域。分布式系统是这样一个系统,其组成成分部署和活动在不同的联网计算机上,通过互相交换信息来进行通信和协调动作。分布计算也指使用分布式系统解决计算问题。图18.1中间件服务在分布式系统中扮演着重要角色这样,一个目前大家熟知的分布式系统软件架构开始流行,中间件服务开始扮演重要角色,如图18.1所示。

分布计算的内容已经讨论了很多。那么,究竟什么是分布计算呢?根据维基百科(https://en.wikipedia.org/wiki/Distributed_computing)中所说:分布计算(distributed computing)是计算机科学中的关于分布式系统的一个研究领域。分布式系统是这样一个系统,其组成成分部署和活动在不同的联网计算机上,通过互相交换信息来进行通信和协调动作。这些成分的互相交换,以实现共同的目标。分布式系统有三个重要问题,即成分间的并发、缺乏全局性的时钟、成分的独立故障。

分布计算也指使用分布式系统解决计算问题。此时,一个问题会分割成许多任务,每个任务由一台或几台计算机来完成,这些计算机通过交换消息来互相通信。

众所周知,目前的计算机体系是冯·诺依曼(Von Neumann)体系。在冯·诺依曼体系中,存储程序控制计算模型(stored program control computing model,SPC)是其典型特征。

首先讨论基于SPC框架体系的分布式管理。如何管理和协调跨越不同硬件和区域的资源来实现共同的目标,是一个巨大挑战。在分布式系统中,为了实现系统目标,使用的共享资源会跨越地理境界。分布资源的性能和安全管理需要采用不同的通信机制,以确定全局响应时间和端到端事务的成功与失败。对于SPC框架体系来说,计算和存储分别由CPU和存储器实现。单一的存储结构既要存放计算所需的指令,又要存放计算生成的数据,存储的负担很重。

20世纪70年代开始使用联网的计算资源,出现了分布计算,最初是客户端/服务器(Client/Server)结构。现在是成千上万的物理服务器和虚拟服务器的云计算平台。资源的共享,提供了巨大的功能,但也出现了新问题,例如,相同资源的争夺、参与节点的故障、信任的缺失、潜在因素与性能的管理等。设计分布式系统时,要关注以下几个问题。

(1)弹性(resiliency):共享资源的协作只有在受控的情况下才有可能,基于这种控制形态,只有在协作期间才能保证互联和通信。因此,必须保证共享资源的可靠性可用性、记账能力、性能和安全,让用户在服务层面相互协商,无需顾忌和关注基础与底层的问题。事务的故障(fault)、配置(configuration)、记账(accounting)、性能(performance)和安全(security)(即FCAPS)是分布式系统的大问题,需要专门的FCAPS进行管理和合理分配。因此,这里说的弹性包括如下功能。

●能在各个资源级层面和系统层面测定FCAPS参数。

●基于测定结果,业务优先级、负载变化和潜在限制,在系统范围内控制资源。

(2)效率:为了实现整个分布式系统的目标,资源使用的效率与两个成分(协调与管理成本)有关。效率可以通过分布式系统的投资回报率(return on investment,ROI)和总拥有成本(total cost of ownership,TCO)来测度。

(3)伸缩性:为了满足业务优先级、负载变化或潜在约束的变化,分布式系统必须设计成可伸缩,无论是增大与缩小。

随着虚拟化技术的发展,上述问题都可以很好地解决。

这里,端到端的分布式事务的弹性依靠检测需求的变化并进行校正来实现。注意,这个过程具有串行特性,从而导致不可避免的延迟。(www.chuimin.cn)

下面再对分布式系统作进一步讨论。

20世纪90年代开始流行两种基本的分布式系统(技术):基于Web的分布式系统和面向对象的分布式技术,如CORBA和DCOM。

进入21世纪后,P2P和网格技术开始大行其道。基于文件分享的P2P系统,如Gnutella、Napster和Bit Torrent等纷纷涌现。与此同时,网格计算试图构建按需计算的基础设施,也开始流行。基于Web服务的开放网格服务体系结构(open grid services architecture,OGSA)也随即问世。

2001年,dot-com泡沫破裂,对Web提出了新的要求,于是Web 2.0技术诞生。MySpace和Facebook等社交软件迅速发展,这时发现集中式的基础设施已无法承担重任。Web服务和SOA体系结构应运而生。分布式系统进入新的时代。

图18.1 中间件服务在分布式系统中扮演着重要角色

这样,一个目前大家熟知的分布式系统软件架构开始流行,中间件服务开始扮演重要角色,如图18.1所示。此时的分布式系统具有如下特征。

●有能力接入异构设备。

●易于扩展和收缩。

●持久可用。

为了支持众多的异构计算机和网络,分布式系统软件架构分为两个层次:底层是中间件,负责与计算机和网络交互,给应用提供异构的透明性;另一个层次是分布式应用,通过中间件的支持,它们看到的是统一的计算机和网络。中间件抽象底层的机制和协议给应用开发者提供了易于编程和部署的高级环境