分布式计算技术发展状况研究
2011-10-14王欣
王欣
(太原旅游职业学院,山西 太原 030006)
分布式计算技术发展状况研究
王欣
(太原旅游职业学院,山西 太原 030006)
分布式计算技术是把网络上分散于各处的资源汇聚起来,利用空闲的计算容量完成各种大规模、复杂的计算和数据处理任务。文章研究总结了目前分布式计算技术的主流技术和新一代分布式计算技术的体系结构,讨论分析了它们各自的优缺点,提出了分布式计算技术存在的问题并展望了未来。
分布式计算;中间件;Web服务;网格
分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算的研究主要是分布式操作系统和分布式计算环境两个方面。随着因特网的广泛应用,分布式计算的研究从传统的以分布式操作系统为中心转变为以网络平台为中心的实用分布式技术,并取得了一定的成功。在过去的20多年间出现了大量的分布式计算技术,如中间件技术、移动Agent技术、P2P技术以及最近推出的Web服务技术和网格技术等。每一种技术都得到了一定程度的认同,在特定的范围内得到了广泛的应用。
一、主流的分布式计算技术
通信网络的出现使得计算能力的远程使用成为可能,下面讨论几种主流的分布式计算技术,并分析其各自的优缺点。
(一)远程过程调用
远程过程调用 (Remote Procedure Call,RPC)(如图1-1)是为了缓解最初的消息传递模型编程的琐碎性而提出的,它支持本地机的程序通过标准过程调用机制调用远程机的过程。基本思想是把本地的过程调用扩展到分布式环境中,当程序员使用RPC调用一个远程过程时,代码实际执行的是一个代理函数,代理过程的目的是编排输入参数,并把它们传送到远程服务器。
缺点:1)RPC是面向过程的一种方法,在应用过程中有很大的局限性,例如系统管理问题、系统安全问题等;2)在通信过程中,远程与本地需要进行频繁的交互,而且调用必须是单向的;3)RPC正确执行的前提是被调用的过程事先存在,这个要求限制了RPC在大型分布式系统中的应用,很多情况下,要调用的过程在远程节点上并不存在。下面的远程求值可以解决这个问题。
(二)远程求值
远程求值(Remote Evaluation,REV)(如图1-2)允许网络中的节点向远程节点发送子程序和参数信息,远程节点启动该子程序,一些初始请求可由该子程序发出,中间结果由该子程序处理,而不是发回源节点,子程序只是将最后的处理结果返回到源节点。
(三)客户/服务器模式
在客户/服务器(Client/Server,C/S)通信模式中,通信的实体双方有固定、预先定义好的角色:服务器提供服务,客户使用服务。这种模式隐含了一种严格的依赖关系:客户依赖服务器所提供的服务而工作。客户发出服务请求,然后在服务器上完成任务,最后服务器将处理结果返回到客户机(如图1-3)。引入客户和服务器的角色,RPC模式和REV模式都是客户/服务器模式的一种。
优点:1)优化网络利用率,减少了网络流量;2)响应时间较短;3)通过把应用程序同它们处理的数据隔离,可以使数据具有独立性。
缺点:1)C/S模式的服务器若不能确切提供客户方所要求的服务,则客户就必须通过一系列的远程调用来获得它所需的服务,这就导致了服务响应的延迟和网络带宽的浪费;2)因为计算环境中的处理器资源、软件资源和信息资源等都集中在服务器上,当客户请求较多时,服务器的效率会大大降低,客户请求的响应时间也会增大。
(四)移动代码
移动代码(Code-on-demand)模式使用了代码移动的技术,即在需要远程服务时,首先从远程获得该服务的代码[4]。
优点:1)解决了C/S结构中资源过于集中的缺点。2)与C/S模式不同,本地机不用知道远程主机的情况,只需下载所需的代码即可。
缺点:可移动代码的迁移只是程序代码的迁移,而并没有携带程序的运行状态和数据等其他信息。另外,移动代码本身不是有名字的实体,它们相互之间不能进行通信合作。因此,移动代码只适合简单的网络服务提供以及远程软件安装等领域。
(五)移动Agent计算技术
移动Agent技术是分布式技术和Agent技术相结合的产物,它结合了分布式计算技术和人工智能技术,除了具有智能Agent的最基本特性:自主能力、社交能力、适应能力和一致主动性,还具有移动能力、可靠性和安全性[5]。
移动Agent计算模式与其他分布式计算模式的不同之处在于:1)自治性的优势。移动Agent模式可以根据资源所在的位置自主地决定移动的目的地,适合大规模的网络系统,有效利用了网络中各主机的资源,节省网络带宽,避免大量网络传输,克服了网络延迟;2)在异构平台适应性更强。网络环境下分布式计算平台往往是异构的,移动Agent通常独立于特定的软硬件环境,与它所在的系统和网络传输层无关,仅依赖于其运行环境。其自治性和智能性使它更能动态适应网络资源分散、网络拓扑结构多变、网络接入带宽不一、网络性能稳定性较差的大规模的异构的网络环境;3)健壮与容错。移动Agent对网络的依赖性很小,而且具备动态反应能力,使其易于建立健壮而容错的分布式系统。当所工作的主机出现问题时,它会迁移到其他主机上继续工作;4)使用移动Agent特有的通信协议可以将不同的通信协议进行封装,不再需要考虑不同系统间通信协议不同的通信问题;5)使用移动Agent模式构建分布式系统,在设计上更加灵活。
(六)P2P技术
P2P系统由若干互联协作的计算机构成,是因特网上实施分布式计算的新模式。它把C/S系统中的角色一体化,引导网络计算模式从集中式向分布式转变。P2P技术已发展为一种重要的分布式计算技术。
优点:1)P2P模式最主要的优点就是资源的高度利用率。2)P2P不同于传统的C/S模式,它们能分配每一个节点作为客户机或服务器。这就避免了在不对称的C/S模式中服务器可能遇到的性能瓶颈问题。3)信息在网络设备间直接流动,高速及时,降低中转服务成本。
缺点:1)P2P不易于管理,而C/S网络,只需在中心点进行管理。2)P2P网络中数据的安全性难于保证。安全策略、备份策略等方面的实现复杂。3)对等点可以随意地加入或退出网络,造成网络带宽和信息存在的不稳定。
二、新一代分布式计算系统
web服务和网格计算是在因特网上进行大规模分布式计算的两大关键技术,它们主要是专注于解决分布式计算的系统管理和资源共享问题,web服务和网格计算的出现,无论是在理念上,还是在技术上都取得了巨大的进步。
(一)Web服务
Web服务(Web Service)技术是对Web进行扩展,为相互间连接的软件提供服务。Web服务是一种构建在简单对象访问协议之上的分布式应用程序,其实质是由XML通过HTTP协议来调度的远过程调用[6]。
Web服务技术是新一代的分布式计算和处理技术,它具有如下诸多优点,可以说是新一代的真正动态的分布式系统。
优点:1)Web服务在因特网上的高度的扩展性;2)Web服务技术是跨平台的,联接非常松散,采用的是性能稳定的、基于消息的异步技术,在改变任何一端接口的情况下,应用程序仍可以不受影响地工作。3)完全的平台、语言的独立性。Web服务进行了更高程度的抽象,只要遵守Web服务的接口即可进行服务的请求和调用。
当然,Web服务也存在缺点,在有些情况下,它会降低应用程序的性能。
(二)网格计算
网格计算通过因特网把分散在各处的硬件、软件、信息资源连结成为一个巨大的整体,从而使得人们能够利用地理上分散于各处的资源,完成各种大规模的、复杂的计算和数据处理的任务[7]。
目前比较重要的网格体系结构有两个:一个是以GLobus项目为代表的五层沙漏结构,它是一个以协议为中心的框架;另一个是与Web服务相融合的开放网格服务结构OGSA,它与Web服务一样都是以服务为中心。
网格的体系结构包括:资源层、中间件层和应用层。1)资源层:构成网格系统的硬件基础。它包括因特网上的各种计算资源,这些资源通过网络设备连接起来。网格资源层仅仅实现了计算资源在物理上的连通。2)中间件层:一系列工具和协议软件。其功能是屏蔽资源层中计算资源的分布、异构特性,向网格应用层提供透明、一致的使用接口。网格中间件层也称为网格操作系统,它同时需要提供用户编程接口和相应的环境,以支持网格应用的开发。3)网格应用层:用户需求的具体体现。在网格操作系统的支持下,提供系统能接受的语言、Web服务接口、二次开发环境和工具,并可配置支持工程应用、数据库访问的软件等。
网格计算应用于分布式面临一些问题:互连网的数据传输能力不足的问题;人机通信的问题;网格计算的安全性。
网格计算、web服务等技术在异构平台上构筑了一层通用的、与平台无关的信息和服务交换设施,从而屏蔽了因特网中千差万别的差异,使信息和服务畅通无阻地在计算机之间流动。因此说,网格系统、Web服务是新一代的、真正动态的分布式系统。
三、分布式计算技术存在的问题
1)到目前为止,几乎所有的分布式计算技术都没有完整的统一的标准。标准的缺乏使得分布式计算技术研究分散,很难形成稳定的研究方向,更难以开发出得到广泛接受的产品。不过,统一标准的工作研究已经展开。
2)软件方法学是软件能够进行工业化生产的前提,分布式计算系统没有相关的软件方法。缺乏可行的软件方法学使得分布式计算的软件质量、开发进度等很难得到保证,普及则更困难。
3)分布式计算系统没有统一的控制手段,它的质量和可用性难以保证。在没有满意的服务质量和可用性保证之前,这项技术很难被接受。
4)网络是一个异构的环境,分布式计算技术需要解决异构环境的互操作问题。解决异构环境的互操作问题,重要的是如何互相区别。现有资源不可能以同一种方式描述,又没有自动识别资源的方法,所以分布式计算技术的使用具有范围性。
四、展望
自从出现了分布式技术之后,分布式计算技术的发展就没有停止过。目前已进行了大量的研究,并产生了诸如中间件、移动Agent、P2P、Web服务和网格等技术,但离真正完善还有很大的距离。分布式计算技术是计算机网络的产物,也是计算机网络应用未来的发展方向,有机地综合已有的技术,吸取所有技术的优点,合理地解决分布式计算的需求,是分布式计算技术研究的方向。
[1]李文军.分布式对象技术[M].北京:机械工业出版社,2006.
[2]申晋祥.BP神经网络在无损检测中的应用[J].山西大同大学学报,2009,(2):16-17.
[3]黄承忠,郭中.基于移动代理技术的分布并行计算环境[J].计算机工程,2005,(4):99-100.
[4]邹明亮,程小辉,刘亚荣.嵌入式移动数据库中的移动Agent问题探讨[J].微计算机信息,2006,(12):61-62.
[5]杨涛,刘锦德.Web Services技术综述——一种面向服务的分布式计算模式[J].计算机应用,2004,(8):1-4.
[6]都志辉,陈渝,刘鹏,等.网格计算[M].北京:清华大学出版社,2002.
TP
A
1673-0046(2011)06-0187-02