网 络 计 算
20世纪90年代,Internet蔓延到世界各地,成为人们沟通信息和协同工作的有效工具,更为重要的是,Internet上汇集的成千上万的计算资源、数据资源、软件资源、各种数字化设备和控制系统共同构成了生产、传播和使用知识的重要载体。人们开始思考如何将物理上互连的众多资源汇聚起来,联合提供服务,重新认识网络计算技术的实质。
目前,网络计算正处于发展阶段,人们对它的定义已经形成了相对可以接受的共识: “网络计算”是把网络连接起来的各种自治资源和系统组合起来,以实现资源共享、协同工作和联合计算,为各种用户提供基于网络的各类综合性服务。
网络计算的形式:
1) 企业计算
2) 网格计算
3) 对等计算
4) 普及计算
企业计算:以中间件为核心
什么是中间件
中间件是处于操作系统和应用程序之间的软件。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,因此,我同意这种定义:
中间件=平台+通信
这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。要说清这个问题用一个生活中的实例来比喻。把分布式系统看作上海市区的交通系统,网络看作市区马路,通过交通工具(汽车)实现通信,每分钟将有几万辆车在马路上行驶,如果没有相应的交通设施和管理规划,上海市将会乱成一团,发生各种交通事故。
企业计算是“以实现大型组织内部和组织之间的信息共享和协同工作为主要需求而形成的网络计算技术”,其核心技术是Client/Server(客户机/服务器)计算模型和相关的中间件技术。
早在20世纪80年代,人们就提出在互连的计算机硬件上部署新型的分布式操作系统,全面彻底地管理整个系统,给用户单一的系统视图。尽管这一努力产生了许多技术成果和实验系统,但一直没有形成可用的产品,人们直觉地感到在不断扩展的局部自治异构系统上实现资源的集中管理几乎是不可能的,于是开始采用中间件平台技术,以屏蔽系统的异构性,支持局部自治系统的信息交互和协同。经过十几年的发展,中间件取得了令人瞩目的发展,出现了远程数据库访问、远程过程调用、消息传递、交易管理等各类中间件。
20世纪90年代末,面向对象的中间件技术成为中间件平台的主流技术,出现了以Sun公司的EJB/J2EE、Microsoft的COM+/DNA和OMG的CORBA/OMA为代表的三个技术分支。其研究热点是建立标准化的对象请求代理,屏蔽网络环境下计算平台、操作系统、编程语言、网络协议的异构性和复杂性,使分布在网络上的应用系统能够协同工作,为网络应用提供通用的高级网络管理服务以及与应用领域相关的增值服务。
进入新世纪,随着电子商务需求的发展,企业计算面临企业间的信息共享和协同工作问题,面向Web的企业计算解决方案成为热点,为此国际互联网论坛W3C(World Wide Web Consortium)提出了Web Service技术体系,Microsoft推出了.Net技术,Sun推出SUN ONE架构,企业计算技术全面进入Internet时代。
网格计算:让计算能力“公用化”
网格计算(Grid Computing)是网络计算的另一个具有重要创新思想和巨大发展潜力的分支。最初,网格计算研究的目标是希望将超级计算机连接成为一个可远程控制的元计算机系统(MetaComputers);现在,这一目标已经深化为建立大规模计算和数据处理的通用基础支撑结构,将网络上的各种高性能计算机、服务器、PC、信息系统、海量数据存储和处理系统、应用模拟系统、虚拟现实系统、仪器设备和信息获取设备(如传感器)集成在一起,为各种应用开发提供底层技术支撑,将Internet变为一个功能强大、无处不在的计算设施。
网格计算可以从三个方面来理解。
(A)首先,从概念上,网格计算的目标是资源共享和分布协同工作。网格的这种概念可以清晰地指导行业和企业对各部门的资源进行基于行业或企业的统一规划、部署、整合和共享,而不仅仅是行业或大企业中的各个部门自己规划、占有和使用资源。这种思想的沟通和认同对行业和企业是至关重要的,将提升或改变整个行业或企业信息系统的规划部署、运行和管理机制。
(B)其次,网格是一种技术。为了达到多种类型的分布资源共享和协作,网格计算技术必须解决多个层次的资源共享和合作技术,制定网格的标准,将Internet从通信和信息交互的平台提升到一个资源共享的平台。
(C)最后,网格是基础设施,是各种网络来综合计算机、数据、设备、服务等资源的基础设施。随着网格技术逐步成熟,建立地理分布的遍布全国或全球的大型资源节点,集成网络上的多个资源,联合向全社会按需提供全方位的信息服务。这种设施的建立,将使用户如同今天我们按需使用交通一样,无需在用户端配备全套的计算机系统和复杂软件,就可以简便地得到网格提供的各种服务。
如同交通系统一样,把网格设施作为一个国家战略信息基础设施来规划、建设和运行管理,其复杂度和难度是相当大的,这里面有思想和观念上的变化,技术上的难点,以及国家法律和政策上的问题等,需要经过多年的艰苦努力。但是,大型企业、行业、国防等部门完全可以从现在就开始实施网格基础设施战略。
网格计算的重要战略意义及其广阔应用前景,使其成为当今吸引众多研究人员和巨大资金投入的研究热点,一些大型网格计算研究项目相继启动。截止到目前,最著名的网格计算研究项目包括以下一些:
● 美国自然科学基金于1997年底开始实施的“分布式网格”研究项目,其目标是在美国建立遍及全国的计算网格,支持重大科学与工程计算,为用户提供到桌面上的虚拟高性能计算环境。
● 美国国家航空和宇宙航行局(NASA)的IPG(Information Power 网格)项目。这是一个20年的研究计划,目的是让人们使用计算资源和信息资源就像使用交通网提供的交通资源一样方便快捷。
● 美国能源部开发的ASCI 网格已经投入生产性使用,其主要用途是核武器研究。
● 美国国防部的全球信息网格(GIG)项目是最庞大的网格计划,用于美军新世纪作战支撑,预计2020年完成。
● 欧洲共同体的Euro网格和Data 网格。主要用于包括高能物理、生物计算、气候模拟等多个领域的应用。
● 2001年8月,美国NSF宣布了一个重大科研项目,研制名为“分布式万亿级设施”(Distributed Terascale Facility)的网格系统,简称Tera网格,它是世界上第一个从设计开始就面向网格的广域超级计算平台,也是第一个无处不在的计算机基础设施。
● 我国科技部在“九五”开展了国家高性能计算环境(网格)建设和关键技术的研究。“十五”期间科技部加大了对网格技术研究和推广的力度,目标是突破网格关键技术,建立网格计算技术标准,将网格计算技术应用到行业和企业应用中,建立行业和企业应用网格,进一步加强全社会共享的国家高性能网格计算环境的建设,推动我国网格产业的形成和发展。
目前,大的网格项目研究和实施有一个显著的特点,即各个项目是直接面向应用,与应用领域紧密相关。目前,IBM、HP、Sun、LSF、Boeing等公司都已经进入网格计算领域,加紧研究相关的技术和产品。
需要强调的是“网格计算”与“高性能计算机”的关系。高性能计算机是网格计算环境结构的节点和重要组成部分;网格计算技术是高性能计算技术的发展方向之一,它并不能替代超高性能计算机系统。但是未来的超高性能计算机系统必须支持网格计算环境,应能够很容易地融入到网格计算环境中,将其强大的计算和数据存储处理能力提供给众多的用户使用。网格计算技术的目的是结合高性能计算技术和网络计算技术,将高性能计算机的能力释放出去,构造一个公共的高性能处理和海量信息存储的计算基础设施,使各类用户和应用能够共享资源。因此,网格计算将会促进高性能计算机应用的发展,促进高性能计算机服务市场的发展,刺激市场对高性能计算机和海量存储系统的需求。
对等计算:倡导“平等”共享
对等计算(Peer-to-Peer,简称P2P)是在Internet上实施网络计算的新模式。在这种模式下,服务器与客户端的界限消失了,网络上的所有节点都可以“平等”共享其他节点的计算资源。
IBM为P2P下了如下定义:
P2P系统由若干互联协作的计算机构成,且至少具有如下特征之一:系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户机的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。
不难看出,P2P把网络计算模式从集中式引向分布式,给Internet的分布、共享精神带来了无限的遐想。有观点认为,至少能开发出几百种应用。但从目前的应用看,P2P的威力还主要体现在大范围的共享和搜索的优势上,诸如
1) 对等计算
2) 协同工作
3) 搜索引擎
4) 文件交换
也就是说,P2P把网络应用的核心从中央服务器向网络边缘的终端设备扩散:服务器到服务器、服务器到PC机、PC机到PC机,PC机到WAP手机,所有网络节点上的设备都可以建立P2P对话。
普及计算:计算无所不在
普及计算(ubiquitous computing or pervasive computing)强调人与计算环境的紧密联系,使计算机和网络更有效地融入人们的生活,让人们在任何时间、任何地点都能方便快捷地获得网络计算提供的各种服务。
普及计算研究的内容主要包括两个方面:自然的人机交互和网络计算。美国排名前10位的大学无一例外地投巨资设立了以“普及计算”为主要方向的研究计划。目前有4个研究计划最具影响力,这些计划的目标是提出全新的体系结构、应用模式、编程模型等基础理论模型和方法。
● MIT(麻省理工学院)的Oxygen研究计划
该计划的研究人员认为,未来世界将是一个到处充斥着嵌入式计算机的环境,它们已经融入了人们的日常生活中。Oxygen希望充分利用这些计算资源,达到“做得更少,完成更多(to do more by doing less)”的目的。
● CMU(Cambridge Management Unit剑桥管理机构)的Aura研究计划
它致力于研究在普及计算时代,在用户和计算环境之间增加一层软件层(称为Aura),由Aura代理用户去管理、维护分布式计算环境中频繁变化、松散耦合的多个计算设备,以完成用户的目标任务。Aura推崇的理念是:“‘人的精力’(User Attention)是最宝贵的资源,应该让它集中在用户要完成的任务上,而不是管理、配置硬件和软件资源上”。
● UC Berkeley(加州大学伯克利分校)的Endeavour计划
这是UC Berkeley进行的旨在通过运用信息技术,提供全新的、全球规模的信息基础设施,从根本上方便人们与信息、设备和他人进行交互的计划。这些信息设施应该能够动态实时地协调世界上任何可用的资源来满足用户计算的需要,其创新点之一是“流体软件”(Fluid Software),这种软件能够自适应地选择在何处执行、在何处存储,它通过协议获得可用资源并向其他实体提供服务。
● 华盛顿大学的Portolano计划
该计划提出了“数据为中心的网络”以适应让计算本身变成不可见的(Invisible Computing)的要求。该计划认为目前计算机技术的发展仍然是技术驱动而非用户需求驱动。为了改变这一现状,该计划致力于研究根据用户的位置变化而自适应地改变软件用户界面的机制、以数据为中心的网络以及新型的分布式服务模型。
以上四类网络计算虽然侧重点不同,但最终的目标是一致的:
1) 广泛共享:
所谓广泛共享,是指通过各种方法、技术和策略将网络上的各种资源提供给网络上众多用户共享、使用;
2) 有效聚合:
所谓有效聚合,是指将网络上的巨大资源通过协同工作连接集成起来,产生巨大的综合效能,联合完成应用任务;
3)充分释放:
所谓充分释放,是指为用户提供良好的开发手段和使用环境,将网络上多种资源的聚合效能按照需求传递给用户,为用户提供个性化的信息服务、计算服务和决策支持服务。
但是面对众多的网络计算技术和应用,人们有时很难区分它们之间的技术差异,不知道谁将成为未来网络计算的主导。事实上,虽然最终目标一致,但各种网络计算技术的应用范围和研究对象的规模、层次却各有不同。
面向对象的分布式计算技术强调的是分布系统的集成能力,以两层或多层Client/Server为主要计算模式,关心的是简化用户端的工作,强化多层服务器的功能,注重分布系统之间的协同工作和快速的应用开发和实现,强调应用服务之间的可交互、可操作性和代码的可移植性,通常关注一个组织内的资源共享。
P2P技术弱化了集中式服务器的功能,重视网络中所有个体的作用,强调的是个体之间、系统之间、计算机之间的直接通信和联系,每一个参与者既是客户方又是服务方,这使人们在Internet上的共享行为被提升到了一个更广泛的层次,使人们以更主动的方式参与到网络中去。它与现行的以中间件为主的分布式计算技术所采用的Client/Server模式有本质区别。
网格计算在Internet基础上强调对计算、数据、设备等网络基本资源进行整合,力图将Internet作为一个社会化的计算基础设施。在计算模型、技术路径和研究目标上,网格计算和目前分布计算中间件领域面向应用级别的交互、互操作和开发有很大的不同。它强调多机构之间大规模的资源共享和合作使用,提供了资源共享的基本方法,而分布计算技术没有提供多组织之间的资源共享通用框架。显然,网格计算正在建立一种新的Internet基础支撑结构(如同TCP/IP、WWW协议和相应的软件系统奠定了现行Internet的基础),是21世纪Terascale设施的信息处理基础设施的先期实践。
普及计算模式则是要颠覆“人使用计算机”的传统方式,将人与计算机的关系改变为“计算机为人服务”,从某种意义上说,是让人与计算环境更好地融合在一起。
尽管各种网络计算技术有差异,但是它们之间并不是冲突的关系,而是一种正交关系,有时甚至是融合的,因此,各种网络计算技术可以共存。例如网格计算和CORBA(公共对象请求代理体系结构Common Object Request Broker Architecture)、SOAP(符号最有汇编程序Symbolic Optimal Assembly Program)、XML(扩展的标记语言Extensible Markup Language)等技术结合可以访问多个机构组成的虚拟组织的资源。
信息技术的多变性使我们不能肯定10年之后的网络计算将会发展到何等程度,但是多种网络计算形式共存、相互结合和融合是肯定的。无论如何,从当今基于Internet的各种网络计算实践和研究来看,实现网络资源的共享,提供大规模协同计算能力和对资源的有效访问,是网络计算未来发展的趋势,是下一代Internet的技术基础。