2008年(8065)
分类: 服务器与存储
2008-11-19 14:49:16
不同的人对于分布式计算的理解是不同的,我们可以用不同的方式定义分布式计算的具体含义。其中一种较为普遍的定义就是,分布式计算就是利用网络把成千上万台计算机连接起来,组成一台虚拟的超级计算机,并利用它们的空闲时间和存储空间来完成单台计算机无法完成的超大规模计算事务的求解。分布式计算的最早形态出现在80年代末的Intel公司。随着Internet的迅速发展和普及,分布式计算的研究在 90年代后达到了高潮。Internet技术实现了计算机硬件的连通,Web则实现了网页的连通,而分布式计算技术的目标就是实现Internet上所有 资源的全面连通。它要把整个Internet整合成一台巨大的超级计算机,实现计算资源、通信资源、软件资源、信息资源、知识资源的全面共享,为现代信息技术开创一个新的纪元。
分布式计算研究主要集中在分布式操作系统和分布式计算环境研究两个方面。但随着Internet技术的飞速发展, 分布式计算的研究热点也从以分布式操作系统为中心的传统模式转换到以网络计算平台为中心的实用分布式技术, 并取得了较大的成功。此外,在过去的20 多年间也涌现出了大量的分布式计算技术,如中间件技术、网格技术、移动Agent技术、P2P技术以及最近推出的Web Service技术,它们在特定的范围内都得到了广泛的应用。但是,现有的分布式计算技术都存在着一些没有解决的问题,从而也影响了 分布式计算技术的使用和普及。本文力争通过介绍分布式计算技术的工作原理,以及对几种典型的分布式计算技术的分析和比较,来发现它们共同面临的一些问题。 除此之外,还简要介绍了一下存储整合对解决分布式计算中出现的一些问题所起到的作用。最后对分布式计算技术的发展方向进行了探讨。
下面就让我们来看一下分布式计算技术的工作原理。
要想实现分布式计算,首先就要满足三方面的条件:
第一、计算机之间需要能彼此通信;
第二、需要有实施的“交通”规则(例如,决定谁第一个通过,第二个做什么,如果某事件失败会发生什么情况等);
第三、计算机之间需要能够彼此寻找。
只有满足了这三点,分布式计算才有可能实现。
目前,一个分布式网络体系结构包括了安装了超轻量软件代 理客户端系统,以及一台或多台专用分布计算管理服务器。此外,还会不断有新的客户端申请加入分布式计算的行列。当代理程序探测到客户端的CPU处于空闲时,就会通知管理服务器此客户端可以加入运算行列,然后就会请求发送应用程序包。客户端接收到服务器发送的应用程序包之后,就会在机器的空闲时间里运行该 程序,并且将结果返回给管理服务器。应用程序会以屏保程序,或者直接在后台运行的方式执行,不会影响用户的正常操作。当客户端需要运行本地应用程序的时 候,CPU的控制权会立即返回给本地用户,而分布式计算的应用程序也会中止运行。
中间件是基础软件,是分布式系统中介于应用层和网络层的一个功能层次,它能够屏蔽操作系统(或网络协议)的差异,实现分布式异构系统之间的互操作。分布式 应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。它扩展了C/S结构,形成了一个包括客 户端、中间件和服务器的多层结构。基于中间件分布式系统的体系结构如图1所示。
基于中间件的分布式计算技术以中间件为桥梁,通过把数据转移到计算之处的计算方式,把网络系统的所有组件集成为一个连贯的可操作的异构系统,从而达到网络“透明”的目的。
早期的中间件比较简单,仅具有消息通讯和事务管理功能。但随着需求的多样化,也产生了许多不同类别的中间件产品,如:消息中间件(MOM :Message-Oriented Middleware)、数据库中间件(Database Middleware)、远程过程调用中间件(RPC :Remote Process Call)、对象请求代理中间件(ORB :Object Request Broker)和事务处理中间件(TP Monitor:Transaction Process Monitor)。
图1 中间件技术
网格计算是通过Internet把分散在各处的硬件、软件、信息资源连结成为一个巨大的整体,从而使得人们能够利用地理上分散于各处的资源,完成各种大规 模的、复杂的计算和数据处理的任务。网格计算建立的是一种新型的Internet基础支撑结构,目标是将与Internet互联的计算机设施社会化。网格计算的发展非常迅速,数据网格、服务网格、计算网格等各种网格系统在全球范围内得到广泛的研究和实施。网格计算无疑是分布式计算技术通向计算时代的一个非常重要的里程碑。
网格的体系结构是有效进行网格计算的重要基础,到目前为止比较重要的网格体系结构有两个: 一个是以Globus项目为代表的五层沙漏结构,它是一个以协议为中心的框架;另一个是与Web服务相融合的开放网格服务结构OGSA(Open Grid Services Architecture),它与Web 服务一样都是以服务为中心。但是,所有的网格系统都有这样一个基本的、公共的体系结构:资源层、中间件层和应用层。
(1)网格资源层:它是构成网格系统的硬件基础。包括Internet各种计算资源,这些计算资源通过网络设备连接起来。
(2)网格中间件层:它是一系列工具和协议软件。其功能是屏蔽资源层中计算资源的分布、异构特性,向网格应用层提供透明、一致的使用接口。
(3)网格应用层:它是用户需求的具体体现。在网格操作系统的支持下,提供系统能接受的语言、Web 服务接口、二次开发环境和工具,并可配置支持工程应用、数据库访问的软件等。
目前还没有一个关于移动Agent的确切定义,我们一般认为移动Agent是一类能在自己控制之下从一台计算机移动到另一台计算机的自治程序,它们能为分布式应用提供方便的、高效的执行框架。
移动Agent是一类特殊的软件Agent,可以看成是软件Agent技术与分布式计算技术相结合的产物,它除了具有软件Agent的基本特性 ——自治性、响应性、主动性和推理性外,还具有移动性,即它可以在网络上从一台主机自主地移动到另一台主机,代表用户完成指定的任务。由于移动Agent 可以在异构的软、硬件网络环境中自由移动,因此这种新的计算模式能有效地降低分布式计算中的网络负载、提高通信效率、动态适应变化的网络环境,并具有很好 的安全性和容错能力。但目前,所有的移动Agent系统还都很不成熟,存在着各种各样的缺陷。所以,我们可以把目前的众多Agent系统看成是实验室系 统,它们离真正实用的产品还有很大的距离。
P2P 系统由若干互联协作的计算机构成,是Internet上实施分布式计算的新模式。它把C/S与B/S系统中的角色一体化,引导网络计算模式从集中式向分布 式偏移,也就是说网络应用的核心从中央服务器向网络边缘的终端设备扩散,通过服务器与服务器、服务器与PC机、PC机与PC机、PC机与WAP手机等两者 之间的直接交换而达成计算机资源与信息共享。
此外一个P2P系统至少应具有如下特征之一:第一、系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受 益;第二、系统中成员同时扮演服务器与客户端的角色;第三、系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。P2P技术已发展为一种重要 的分布式计算技术,典型代表就是Napster。
Web Service技术是对Web进行扩展,为相互间连接的软件提供服务。Web Service技术是一种分布式应用程序,它可以通过编程并使用标准的Internet协议,像HTTP和XML ,将功能展示在互联网和企业网内部。Web Service结合了以组
件为基础的开发模式以及Web的出色性能,一方面,Web Service和组件一样,具有黑匣子的功能,可以在不关心功能如何实现的情况下重用;同时,与传统的组件技术不同,Web Service可以把不同平台开发的不同类型的功能块集成在一起,提供相互之间的互操作。
我们也可以认为Web Service技术是以Internet为载体,通过将紧密连接的、高效的n层计算技术与面向消息、松散联接的Web概念相结合来实现的。Web服务是一种构建在简单对象访问协议(SOAP)之上的分布式应用程序,其实质是由XML通过HTTP 协议来调度的远过程调用。实现Web服务的体系结构如图2所示。
图2 Web Service技术
我们说Web Service技术是新一代的分布式计算和处理技术,主要是因为它在Internet 上表现出来的高度扩展性。原有的中间件平台技术都是基于C/S体系结构,这要求两端必须是同质的而且是紧密联接的基础体系,如果任何一端接口发生变化,另 一端的程序必然会中断。这种模型扩展性是较差的,特别是无法扩展到Internet ,这是受限于计算机操作系统、对象模型和编程语言的差异性;而Web Service技术是跨平台的,联接非常松散,采用的是性能稳定的、基于消息的异步技术,在改变任何一端接口的情况下,应用程序仍可以不受影响地工作。它为集成分布式应用中的中间件及其它组件提供了一个公共的框架,无须再考虑每一个组件的具体实现方式。
Web Service技术的体系结构与基于中间件分布式系统的体系结构相比,发现它们是非常相似的,可以把体系结构中的Web程序看作中间件。从结构上来 看,Web服务只是从侧面对中间件平台技术进行革新,虽然所有服务之间的通信都以XML格式的消息为基础,但调用服务的基本途径主要还是RPC,而且具体 实现并没有提供一种全新的编程模式。
网格技术与基于中间件的分布式计算技术相比较,它依然以“中间件”为技术核心,在实现形式上并没有太大的改变。然而经过一系列的技术革新,网格系统中的技 术内涵已经发生了深刻的变化。其一,基于中间件的分布式计算技术的资源主要是指数据和软件,而网格计算的资源已经延伸到所有用于共享的实体,包括硬件、软 件,甚至分布式文件系统、缓冲池等;其二,在Internet上,网格中间件层提供了与Web服务一样优秀的扩展功能,打破了传统分布式技术C/S模式的 局限。
网格计算、Web Service等技术在异构平台上构筑了一层通用的、与平台无关的信息和服务交换设施,从而屏蔽了Internet中千差万别的差异,使信息和服务畅通无 阻地在计算机之间流动。网格计算与Web Service技术的共同载体是Internet。但两者的不同之处在于,网格系统连接物理上分散的硬件资源,形成虚拟计算组织,从而使计算资源得到充分 共享。而Web服务则是以商务应用为背景,是基于网格系统之上的。网格系统为Web服务提供一个与硬件无关的虚拟计算机;而Web服务是架构在虚拟计算机 平台上,与环境、语言无关的应用集成平台。
尽管各种分布式计算技术在理念、规范和实现等方面有较大的差异,但它们之间并不矛盾,而是一种承上启下的关系,有时甚至是融合的。因此,各种分布式计算技术可以共同存在, 它们的相互结合也是非常有意义和现实的。
因为分布式计算模式的核心常常是每个部门选择各自不同的电脑系统,这样就会造成由于数据格式的不统一所导致的管理困难,其次管理分布式计算中所用的大量存储设备所需的费用也是一笔庞大的开支。这些都有悖于分布式计算技术的初衷。所以,存储整合对分布式计算技术的发展起着不可低估的作用。
存储整合是指多个异构型主机共享集中式存储。针对不同的环境和要求,有许多不同的整合方法,但主要有以下三种形式:
(1)从存储在多个服务器上转变为存储在单个服务器上。此模式可以降低管理工作的复杂性和对数据中心占地面积的要求;
(2)直接将多个异构型服务器附加到一个存储设备上。此模式极大降低了存储成本,同时也可以简化管理;
(3)整合到存储局域网上(SAN)。此模式既有利于提高工作效率,降低管理工作的复杂性,同时还可以提高可扩展性,可用性和数据可访问性。
所以,在分布式计算技术越来越得到广泛应用的今天,存储整合技术也显示出它重要的地位。
通过上面对几种技术的分析和比较,我们不难发现它们均存在着一些共同的问题。
(1)标准问题
目前,几乎所有的分布式计算技术都没有完整的统一的标准,虽然已开始这方面的工作,标准的缺乏使得分布式计算技术研究分散,很难形成稳定的研究方向,从而在很大程度上制约了分布式计算技术的发展。
(2)软件方法问题
软件方法学是软件能够进行工业化生产的前提。但缺乏可行的软件方法学使得分布式计算软件的质量、开发进度等很难得到保证,没有工业化生产方式,分布式计算系统的普及将十分困难。
(3)异构问题
现在的网络是一个异构的环境,分布式计算技术首先需要解决异构环境的互操作问题。而要解决异构环境的互操作问题,首要的任务是如何互相识别。目前,既不可能要求所有的资源用同一种方式描述,又没有方法可智能地识别这些资源,这就导致任何一种分布式计算技术只能在一定的范围内使用。
(4)安全性问题
分布式计算技术面临的最大挑战就是不断增长的网络规模,整个平台的安全性方面的问题就会极为严重。
随着Internet上的硬件、软件、数据库等资源急速膨胀,其关联关系不断发生变化,但是到目前为止,所有这些资源的共享和社会化 程度还很低,基本上是各自为政,相互间缺乏有效的交互、协作与协同能力。因此要创建大型的、松散的、健壮的分布式系统还必须以先进技术和大量劳动为基础, 除了各种资源本身的技术和管理之外,关键的因素是标准的建立,从底层信号的传输到复杂业务的流程等各种不同的层次都要形成统一的标准。此外到目前为止,所 有的分布式计算技术都或多或少存在没有解决的问题,还没有哪一种技术被所有的研究者认同为分布式计算技术研究的方向,也没有哪一种技术能实现完全意义上的 分布式计算,满足所有分布式计算的需求。
所以对多种现有分布式计算技术的综合研究,吸取所有技术的优点,合理地解决分布式计算的需求,越来越被人们所重视。从某种意义上说它也表明了今后分布式计算技术研究的方向。