1、对几种典型分布式计算技术的比较分布式计算是一门计算机学科,它主要是研究如何把一个需要巨大计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多不同的计算机进行处理,最后把这些计算结果综合起来得到最终的结果。本文还对分布式计算技术的工作原理和几种典型的分布式计算技术,如中间件技术、网格技术、移动Agent 技术、P2P 技术以及 Web Service 技术进行了分析和比较,介绍了存储整合在分布式计算技术中的应用,指出了其存在的一些问题。1 概述所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算研究
2、主要集中在分布式操作系统和分布式计算环境研究两个方面。但随着 Internet 技术的飞速发展,分布式计算的研究热点也从以分布式操作系统为中心的传统模式转换到以网络计算平台为中心实用分布式技术,并取得了较大的成功。此外,在过去的20多年间也涌现出了大量的分布式计算技术,如中间件技术、网格技术、移动 Agent 技术、P2P 技术以及 Web Service 技术。它们在特定的范围内都得到了广泛的应用。2 几种典型的分布式计算技术2.1中间件技术中间件(middleware)是一个基础性软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、
3、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是 IDC 表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。中科院软件所研究员仲萃豪形象地把中间件定义为:平台通信。这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。2.2 网格计算技术网格计算(Grid computing)通过利用大量异构计
4、算机(通常为桌面)的未用资源(CPU 周期和磁盘存储) ,将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供了一个模型。网格计算的焦点放在支持跨管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。网格计算的设计目标是解决对于任何单一的超级计算机来说仍然大得难以解决的问题,并同时保持解决多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。它的第二个目标就是:更好的利用可用计算机,迎合大型的计算练习断断续续的需求。这隐含着使用安全的授权技术,以允许远程用户控制计算资源。网格计算包括共享异构资源(基于不同的平台,硬件/软件体系结构,以及计算
5、机语言),这些资源位于不同的地理位置,属于一个使用公开标准的网络上的不同的管理域。简而言之,它包括虚拟化计算资源。网格计算经常和集群计算相混淆。二者主要的不同就是:集群是同构的,而网格是异构的;网格扩展包括用户桌面机,而集群一般局限于数据中心。对于网格计算(Grid computing)这一术语有三重理解可供参考,如下:为万维网诞生起到关键性作用的欧洲核子研究组织(CERN,European Organization for Nuclear Research),其对网格计算是这样定义的:“网格计算就是通过互联网来共享强大的计算能力和数据储存能力” 。外部网络(External grids) 。
6、事实上,网络计算对分布在世界各地的、非营利性质的研究机构颇有吸引力,进而造就了美国国家超级电脑应用中心计算生物学网格,如生物学和医学信息学研究网络。内部网络(Internal grids) 。同样,网络计算对那些需要解决复杂计算问题的商业公司有着非同一般的吸引力,其目标是将企业内部的计算能力最大化。2.3 移动 Agent 技术移动 Agent 的最初概念是在20世纪90年代初,由 General 移动 Agentgic 公司在推出商业系统 Telescript 时提出的。它是一可执行的程序,分布式人工智能技术和网络技术发展的必然结果,能够携带其代码和状态自主地从网络中一个节点移动到另一个节点
7、上运行,寻找合适的计算资源和信息资源,完成特定的任务。移动 Agent 具有智能性和移动性,并根据服务需要协调多个 Agent 的行为,协作执行特定任务。移动 Agent 是一种软件对象,它能携带执行代码、数据和运行状态,在复杂的网络中自治的、有目的迁移,并能响应外部事件,在迁移过程中能保持状态的一致性。移动Agent 就是一个能在异构网络中自主地从一台主机迁移到另一台主机,并可与其它 Agent或资源交互的程序。移动 Agent 技术是分布式技术和 Agent 技术相结合的产物,它结合了分布式计算机技术和人工智能技术,它除了具有智能 Agent 的最基本特性:自主能力、社交能力、适应能力和一
8、致主动性,还具有移动能力、可靠性和安全性。移动 Agent 不同于基于过程的RPC,也不同于面向对象的对象引用,其独特的对象传递思想和卓越的特性给分布式计算乃至开发系统带来了巨大的革新。移动 Agent 技术在实际中得到了广泛的应用,主要应用于电子商务、分布式信息检索、无线通信服务、入侵检测和网络管理等方面。2.4 P2P 技术P2P 技术起源于最初的联网通信方式,如在建筑物内 PC 通过局域网互联,不同建筑物间通过 Modem 远程拨号互联。其中建立在 TCP/IP 协议之上的通信模式构成了今日互联网的基础,所以从基础技术角度看,P2P 不是新技术,而是新的应用技术模式。今天,P2P 再一次
9、被关注主要是由 Napster 以及 ICQ 类软件的出现,虽然在 Napster 之前 P2P 方式的研究也从未停止。现在互联网是以 S(Server)/B(Browser)或 S/C(Client)结构的应用模式为主的,这样的应用必须在网络内设置一个服务器,信息通过服务器才可以传递。信息或是先集中上传到服务器保存,然后再分别下载(如网站),或是信息按服务器上专有规则(软件)处理后才可在网络上传递流动(如邮件)。如今拥有 Napster 及 ICQ 类软件的 PC(或操作者)就可以选择同样拥有此类软件的另一 PC(或操作者)形成互联(直接连接,不通过服务器) ,双方共享资源,协同完成某种行动
10、。而拥有同一 P2P 软件的设备和用户,还可以形成一个为其自己所有的在互联网上的P2P 专用网。目前互联网主要技术模式是 S/C 方式,此方式要在互联网上设置拥有强大处理能力和大带宽的高性能计算机,配合高档的服务器软件,再将大量的数据集中存放在上面,并且要安装多样化的服务软件,在集中处理数据的同时可以对互联网上其他 PC 进行服务,提供或接收数据,提供处理能力及其他应用。对于一台与服务器联机并接受服务的 PC 机来说,这台 PC 机就是客户机,其性能可以相对弱小。而 P2P 技术的特征之一就是弱化了服务器的作用,甚至取消服务器,任意两台 PC 互为服务器,同时又是客户机,即对等。右面是 P2P
11、与 S/C 方式的一些比较:S/C 方式造成互联网络上的集中,无论信息资源还是成本资源均向同一方向集中,这样的模式符合一对多、强对弱的社会关系形式,如政府对个人、对企业,大企业对小企业,学校对学生,企业对职工等等关系。所以 S/C 方式是符合市场需求的。P2P 方式将导致信息数量、成本资源都向互联网各点均匀分布,也就是所谓“边缘化“的趋势。此模式符合“一对一”的特点,以及彼此相当的社会关系形式,如个人对个人,规模相当的企业之间,等等,这也是符合市场需求的(如 ICQ) 。所以这两种方式会共存,有关 P2P 即将替代 S/C模式的说法是不成立的。P2P 有其独特的市场空间,是现有互联网应用的补充
12、,这一点应该是毫无疑问的。P2P 技术特性:1)既是 S 又是 C,如何表现取决于用户的要求,网络应用由使用者自由驱动。2)信息在网络设备间直接流动,高速及时,降低中转服务成本。3)构成网络设备互动的基础和应用。4)在使网络信息分散化的同时,相同特性的 P2P 设备可以构成存在于互联网这张大网中的子网,使信息按新方式又一次集中。2.5WebService 技术WebService 使用标准技术,通过它,软件应用程序资源在各网络上均可用。因为 Web Service 基于标准接口,所以即使是以不同的语言编写并且在不同的操作系统上运行,它们也可以进行通信。因此,Web Service 是生成必须适
13、用于网络上不同系统的分布式应用程序的极好方法。标准技术因为 Web Service 符合公认的标准,所以能够以这种通常可访问的方式来公开其资源。Web Service 使用的标准技术包括:通过 WSDL 文件公开描述其自身功能;通过 XML 消息(通常使用 SOAP 格式)与其他应用程序进行通信;使用标准网络协议,如 HTTP 等。Web Service(在中央) 、其客户端软件应用程序(在左侧)及其使用的资源(包括数据库、其他 Web Service 等) (在右侧)之间的关系(如图1) 。Web Service 通过使用标准协议(如 HTTP)交换 XML 消息来与客户端和各种资源进行通信
14、。在 WebLogic Server 上部署 Web Service 后,由 WebLogic Server 负责将传入的 XML 消息路由到您编写的 Web Service 代码。Web Service 将导出 WSDL 文件,以描述其接口,其他开发人员可以使用此文件来编写访问此 Web Service 的组件。2.6 几种技术的比较Web Service 技术的体系结构与基于中间件分布式系统的体系结构相比,发现它们是非常相似的,可以把体系结构中的 Web 程序看作中间件。从结构上来看,Web 服务只是从侧面对中间件平台技术进行革新,虽然所有服务之间的通信都以 XML 格式的消息为基础,但调
15、用服务的基本途径主要还是 RPC,而且具体实现并没有提供一种全新的编程模式。网格计算与基于中间件的分布式计算技术相比较,它依然以“中间件”为技术核心,在实现形式上并没有太大的改变。然而经过一系列的技术革新,网格系统中的技术内涵已经发生了深刻的变化。其一,基于中间件的分布式计算技术的资源主要是指数据和软件,而网格计算的资源已经延伸到所有用于共享的实体,包括硬件、软件,甚至分布式文件系统、缓冲池等;其二,在 Internet 上,网格中间件层提供了与 Web 服务一样优秀的扩展功能,打破了传统分布式技术 C/S 模式的局限。网格计算、Web Service 等技术在异构平台上构筑了一层通用的、与平
16、台无关的信息和服务交换设施,从而屏蔽了 Internet 中千差万别的差异,使信息和服务畅通无阻地在计算机之间流动。网格计算与 Web Service 技术的共同载体是 Internet。但两者的不同之处在于,网格系统连接物理上分散的硬件资源,形成虚拟计算组织,从而使计算资源得到充分共享。而 Web 服务则是以商务应用为背景,是基于网格系统之上的。网格系统为 Web 服务提供一个与硬件无关的虚拟计算机;而 Web 服务是架构在虚拟计算机平台上,与环境、语言无关的应用集成平台。尽管 http:/ 存储整合因为分布式计算模式的核心常常是每个部门选择各自不同的电脑系统,这样就会造成由于数据格式的不统
17、一所导致的管理困难,其次管理分布式计算中所用的大量存储设备所需的费用也是一笔庞大的开支。这些都有悖于分布式计算技术的初衷。所以,存储整合对分布式计算技术的发展起着不可低估的作用。存储整合是指多个异构型主机共享集中式存储。针对不同的环境和要求,有许多不同的整合方法,但主要有以下三种形式:1)从存储在多个服务器上转变为存储在单个服务器上。此模式可以降低管理工作的复杂性和对数据中心占地面积的要求;2)直接将多个异构型服务器附加到一个存储设备上。此模式极大降低了存储成本,同时也可以简化管理;3)整合到存储局域网上(SAN) 。此模式既有利于提高工作效率,降低管理工作的复杂性,同时还可以提高可扩展性,可
18、用性和数据可访问性。所以,在分布式计算技术越来越得到广泛应用的今天,存储整合技术也显示出它重要的地位。4 共同存在的问题通过上面对几种技术的分析与比较,我们不难发现它们均存在着一些共同的问题。1)标准问题目前,几乎所有的分布式计算技术都没有完整的统一的标准,虽然已开始这方面的工作,标准的缺乏使得分布式计算技术研究分散,很难形成稳定的研究方向,从而在很大程度上制约了分布式计算技术的发展。2)软件方法问题软件方法学是软件能够进行工业化生产的前提。但缺乏可行的软件方法学使得分布式计算软件的质量、开发进度等很难得到保证,没有工业化生产方式,分布式计算系统的普及将十分困难。3)异构问题现在的网络是一个异
19、构的环境,分布式计算技术首先需要解决异构环境的互操作问题。而要解决异构环境的互操作问题,首要的任务是如何互相识别。目前,既不可能要求所有的资源用同一种方式描述,又没有方法可智能地识别这些资源,这就导致任何一种分布式计算技术只能在一定的范围内使用。4)安全性问题分布式计算技术面临的最大挑战就是不断增长的网络规模,整个平台的安全性方面的问题就会极为严重。5 展望随着 Internet 上的硬件、软件、数据库等资源急速膨胀,其关联关系不断发生变化,但是到目前为止,所有这些资源的共享和社会化程度还很低,基本上是各自为政,相互间缺乏有效的交互、协作与协同能力。因此要创建大型的、松散的、健壮的分布式系统还必须以先进技术和大量劳动为基础,除了各种资源本身的技术和管理之外,关键的因素是标准的建立,从底层信号的传输到复杂业务的流程等各种不同的层次都要形成统一的标准。此外到目前为止,所有的分布式计算技术都或多或少存在没有解决的问题,还没有哪一种技术被所有的研究者认同为分布式计算技术研究的方向,也没有哪一种技术能实现完全意义上的分布式计算,满足所有分布式计算的需求。