网格---未来的Internet应用

网格---未来的Internet应用

徐志伟 李国杰

1.网格的技术特征和业务益处

简单地讲,网格是把整个因特网整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享和协同。当然,网格并不一定非要这么大。我们也可以构造地区性的网格(如中关村科技园区网格)、企事业内部网格、局域网网格、甚至家庭网格和个人网格。网格的根本特征并不一定是它的规模,而是资源共享,消除了资源孤岛。

网格的技术特征包括:

  •  资源共享,消除资源孤岛;协同工作。这两条是网格的基本技术要求。
  • 通用开放标准,非集中控制,非平凡服务质量。
  • 动态功能、开放系统、单一系统映像。

 

网格是未来10年计算机体系结构、操作系统、用户界面领域最重要的突破性创新机会网格不是一个已经成熟的、有定论的技术,它正在不断展开,是我们能够影响与创造的技术。因此,它为中国提供了一个前所未有的创新机会,包括科学理论创新、技术创新和产业模式的创新。

说网格是突破性创新,是因为各种迹象都表明,像计算机历史上的IBM S/360系统、操作系统、关系数据库和Web一样,网格会产生计算机领域的新科学与新技术,导致业界重新洗牌,从而淘汰或超越现有产品,开辟庞大的新市场。

2001910,美国《福布斯》杂志的科技版《Forbes ASAP》发表了一组文章,预告了网格技术的普及。文章分析了计算机技术的发展历史和近几年的趋势,并指出:

  • 信息技术的下一波大浪潮将在20042005年度出现。
  •  这个大浪潮将极大地改变我们的工作和生活。到2020年,由此产生的互联网将成长为一个20万亿美元产值的大工业。
  •  这一波浪潮的本质特征,就是全球万维网(World Wide Web)升华为全球大网格(Great Global Grid)。

 


这个GGG按应用模式可以分为四类:

                                                                  图1.    网格相关研究的一些常见实例

为什么《福布斯》杂志如此看好网格呢?主要的原因是网格能够从五个方面提高生产力(生产率),即提高产出和降低成本(图2)。这些也正好是中国用户总结的网格好处。

 

                                                                            图2.   


网格的业务益处

 

这五个方面中,用户为中心对提高产出和降低成本都有用。网格提供更高的功能性能有助于提高产出,而网格的可依赖性技术低成本技术则有助于降低成本。

网格的功能益处包括:资源共享,协同工作;应用层面的互连互通;一体化服务(一站式服务),无障碍服务(自动化与无缝连接);动态服务;现有系统集成(Legacy Integration);共享资源(计算、软件、数据),提高利用率;负载平衡,容错容灾,就近服务。

网格的性能益处包括:拓广应用面,实现用户与用户间的交互(而不是用户与机器的交互),利用麦特考夫定律和布朗定律实现网络效应,提高系统的价值;服务器端提高资源利用率;自动化以减少人为环节;并行、缩短路径、拓宽瓶颈等优化。

用户为中心的两个突出特征是自主控制专业化服务。自主控制:用户选择产品,而不是被厂家锁定(lock-in)。专业化服务:系统可根据用户需求个性化动态定制;应用、界面、安全与隐私策略、资源共享策略都可定制;定制策略可动态调整;用户确定定制策略、系统自动完成定制细节。

可依赖性常常被中国用户简化为安全可靠,但它包括RAS(可靠性、可用性、可维护性),还包括安全性(Security) 、隐私保护 (Privacy) 、诚信(Trust)。由于联通性,网格的可依赖性面临更大挑战,同时,网格也具有更高可依赖性的潜力(异地冗余,多途径检测、监控)。

上述益处(除用户为中心外),都可以使用现有技术实现,但网格的优势在于低成本(最根本的原因是基于通用开放标准平台化,),包括时间成本降低(开发时间、部署时间、维护时间),人力成本降低,知识成本降低(系统的使用和维护更方便),硬件和软件成本降低(独立性,“无限升级”)

今天的计算机系统效率很低。用户只用到计算机软件的功能的5%,大部分应用常常只能得到5%甚至1%以下的利用率。 同时,一个趋势是:“性能价格比”正在向“总拥有性能价格比”(Total Performance/Cost of Ownership)过渡,与性能表面上看起来无关的因素越来越重要(如互操作性、可移植性、安全性、好用性、易管理性、高可用性、易部署性)。网格带来的另一个趋势是:除了速度、响应时间、吞吐率等传统指标外,人们正在提出和使用更靠近用户的服务协议等级(Service Level Agreement)、生产力(productivity)、用户价值(value)等新指标。

2. 网格是下一代因特网应用

有一些人把网格看成是未来互联网技术。国外媒体常用“下一代因特网”、“Internet2”、“下一代Web”等词语来称呼网格相关技术。要注意的是,“下一代因特网”(NGI)和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交,但研究内容和重点有很大不同。

一旦关于网格的一系列协议标准面世,就会推动产生全球网络应用的第三次浪潮(前两次是InternetWeb的出现)。因此,我们将网格称为第三代因特网应用。简单地讲,传统因特网实现了计算机硬件的连通,Web实现了网页的连通,而网格试图实现互联网上应用层面的互联互通,这就意味着所有资源的全面连通,包括计算资源、存储资源、通信资源、软件资源、信息资源、知识资源等等(见图3-4)。


                                                           图3.    网格的功能益处:应用层面的互连互通

 

 

                                                                          图4.    网络的三次大浪潮

 

由于看到了网格的这种潜力和可能带来的巨大市场,各国政府和大公司近年来纷纷投入巨资开展网格相关的研究开发工作。这方面仍然是美国最为积极,除了现有的TeraGrid (DTF)ETF、各种应用网格计划、Middleware Initiative 以外,最值得注意的是NSF Blue Panel已经酝酿了两年多的Cyberinfrastructure计划。该计划可望在2004年左右得到批准,届时每年会增加6亿美元的研究经费,其中网格是一个核心技术。美国国家基金委认为,从1980年代开始支持高性能计算中心,90年代开始支持计算网格计划(PACITeraGridITR等),到2005年左右将开始执行的Cyberinfrastructure计划,是美国利用高性能计算保持科技领先的战略步骤。

欧洲方面最积极的是英国(e-Science)。荷兰、意大利与德国也有相当投入。连原来不甚积极的法国,也启动了一个称为ACI GridAction Concerte Incidative)的国家网格计划,牵头单位是INRIAMichael.Cosnard@inria.fr)。日本与韩国的网格计划已经启动,并各自成立了全国网格论坛。韩国的网格计划之一是N*Grid,这个2002-2006的五年计划将投资3500万美元,但不包括网络和高性能计算机的投入,后者每年投入为1500万美元。东京工业大学的松岗聪教授(他是GGF指导委员会成员)认为,到2004财年,网格技术将成为日本信息技术领域的基础设施类大项目。就连台湾,也启动了“知识创新网格”的三年科研计划(2003-2005),总投资为3000万美元。

不过,尽管政府的投入不小,产业界的投入就大多了。比如,IBM最近宣布投入100亿美元,启动“按需计算”计划(On Demand Computing Initiative),这个计划由IBM资深科学家Wladawsky-Berger领导,其主要内容是网格计算(grid computing)与自主计算(autonomic computing)。Wladawsky-Berger曾以“Beyond TechnologyOn-Demand Computing”为题,对“按需计算”做了精辟的介绍(见图3)。

 

 

 

 

 

 

 

 

                                                                            图5.    按需计算的演化

任何一种技术的发展可以分成四个阶段:(1)少数技术专家使用阶段,如计算机领域中的大型机一终端时代。此时,一般用户根本用不上计算机。(2早期流行阶段(early adoption),此时更多技术专家以及一般用户开始使用,如计算机领域中客户-服务器(微机-局域网)时代。这时,用户仍然需要有一定的计算机知识,要很好地使用则需要深入的知识。(3公众认识阶段(public recognition),此时广大社会民众对该项技术有了初步意识和认同感,如计算机领域中的因特网时代。计算机技术已在公众中流行起来(如网吧)。用户仍然需要知道计算机的知识。(4)在所谓广泛使用时代(mass adoption)或“后技术时代”(post-technology stage),用户已经看不见技术(也不需要知道技术),只看得到技术带来的好处。对计算机

3.网格是不是分布式系统?

对这个问题的简要回答是:网格是一种分布式系统,但网格不同于传统的分布式系统。

这个问题之所以必须回答,因为人们常常会问另一个相关的问题:“为什么我们需要网格?现在已经有很多系统(比如海关报关系统、飞机订票系统)实现了资源共享与协同工作。这些系统与网格有什么区别?”

我们把这些系统称为传统的分布式系统IBM Global ServiceEDS是在这个领域最著名的公司。构建分布式系统有三种方法:即传统方法(我们称之为EDS方法)、分布自律系统(Autonomous Decentralized Systems, ADS)方法,网格(grid)方法。ADS通常用于工业控制系统中。网格方法与传统方法的区别见下表:

                                                                表1.    网格与传统分布式系统的区别

特征

传统分布式系统

网格

开放性

需求和技术有一定确定性、封闭性

开放技术、开放系统

通用性

专门领域、专有技术

通用技术

集中性

很可能是统一规划、集中控制

一般而言是自然进化、非集中控制

使用模式

常常是终端模式或C/S模式

服务模式为主

标准化

领域标准或行业标准

通用标准(+行业标准)

平台性

应用解决方案

平台或基础设施

 

4. 网格是一种中间件,还是一种操作系统?

目前国际上网格的研究看起来大量集中在中间件层面,但事实上正在创造下一代的操作系统和用户界面。比如,IBM已经把WebSphere变成了公司的一个品牌,甚至直接了当地说WebSphere就是“Internet operating system”。Ian Foster说他们的Globus的目标是成为“分布式计算的Linux.他进一步确认,Globus就是开放源码的网格操作系统核心。这方面最明显的是微软。


这种网格操作系统的基本结构继承了以前操作系统的做法,即一个核心(内核)加上一个框架,就像GNU/Linux一样(见图6)。当我们说Linux操作系统时,我们实际上是指Linux核心中加上GNU环境(亦称框架)。

                                                                     图6.    网格操作系统的基本结构

 

不论是学术界还是工业界(包括微软),都强烈希望只有一套开放的网格(包括Web Service)技术标准。要注意的一点是OGSAIan Foster等人的“Physiology”论文并不是OGSA体系结构的完整的规范说明(Specification)。用他的话说,此文主要的目的是号召同行。今后两年将是OGSA具体化和完善的时间,这些工作将具体在OGSIOGSA Architecture 等小组里实现。中国同行还有机会影响网格的总体结构标准。一定不能以为OGSA已经定型了。OGSA将先在J2EE和开放平台上实现,然后在.Net上实现。

微软近几年大力增加研究开发经费,试图在2005年推出网格操作系统与网格用户界面。2001年投入43亿美元,2002年投入52亿美元,年增幅达20%。另外微软最近公布要新招收5000名技术人员。(有关微软近几年创新的更详细的信息参见徐志伟所著《电脑启示录》中篇《硅谷的秘密》一书,清华大学出版社20027月出版)。

比尔盖茨认为,现在的桌面操作系统、服务器操作系统、Internet/web有很多缺点,是效率很低、很笨拙的东西。它们将会被.Net超越。而.Net就是微软的Internet操作系统,或者叫分布式操作系统。当然,微软也要开发相应的Office.Net产品。

比尔-盖茨认为微软的产品开发在今后几年里会经历三波浪潮,目前的.Net产品只是第一波。因此,我们不要盲目跟踪.Net,否则我们可能会跟踪将很快被淘汰的东西。

国内研究界甚至国际研究界有一种观点,认为网格这样的技术一定是“中间件”技术,即使把网格看成分布式操作系统,也必须运行在各个服务器或客户机的“本地”操作系统之上。这种观点不能说错误的,但可能是阻碍创新的观点。这就好像是说Windows操作系统是一种中间件,因为它必须运行在DOS之上一样。现在看来,这种观点很明显是荒谬的。

当微机操作系统从DOS向视窗过渡的时候,世界当时采用了两种技术路线:一种是微软的Windows 1.0-3.0,另一种是IBMOS/2。前者需要先在微机上安装DOS,后者则不需要(见图7)。到了1995年,Windows 3.0那种落后的方法就完全被淘汰了。

今天,微软和IBM似乎刚好交换了角色。IBM(以及众多其它厂商和科研界)似乎是把网格操作系统(如WebSphere)构造在本地操作系统(如AIXLinux)之上,而微软则似乎在走OS/2的路,构造一个无缝的操作系统,既是网格操作系统,也是本地操作系统。


                                                            图7.    DOSWindows进化的两种技术路线

 

综上所述,微软有今后几年里的动向非常值得关注。而且,它在思路上似乎已经领先于其它厂商。如果它运气好的话,2005~2010年微软将会保持并扩大它在操作系统领域的垄断地位。

 

在用户界面方面,网格带来的主要洗牌可能是从面向过程、面向对象的模式向着面向服务用户(所谓utility computing)的模式转移,从而改变人们开发应用和使用网格的方式。这方面的例子包括:

  • 微软LongHorn将用任务模式取代桌面模式。
  • 网格“编程”语言可能变成更简单的标记语言(markup language),而不只是通常的C++、Java、数据库等面向过程或面向对象的语言。这些传统语言可能变成了网格计算机的汇编语言,由它们编写的程序则是网格计算机的库函数。
  •  网格应用的开发时间可大大缩短,从1个月到1周变成1天甚至1小时。
  •  网格编程人员的知识要求降低,从必须懂程序设计的技术人员,变成一般秘书经过短期训练或自学也可以胜任。

上述改变之所以可能,是因为网格服务库、网格操作系统、网格服务器软件和网格编程工具(如Visual Studio.Net,我们在开发的GSML软件)将能够提供强有力的基础设施支持。

应用软件的开发模式也会改变。一个软件系统不再是由一个统一的团队开发,而可以是由多个互不知道的个人开发。用比尔盖茨的话说,开发一个部件的人不知道另一个部件的功能和接口,甚至根本不知道该部件的存在。

6. 网格计算机


目前国际上网格的研究集中在软件,尤其在网格操作系统和中间件层面。但是,从本质上讲,网格是计算机体系结构的创新机会,自然也就包括硬件创新的机会。我们可以从网格计算机的观点来看这个问题(见图8)。

 

                                                                     图8.    网格计算机观点(IBM

 

一些专家认为,计算机领域的突破性创新只能来自器件层甚至更底层(如量子计算)。其实并不然。与器件技术正交的计算机系统技术,也可能产生突破性创新。IBM S/360系统的推出,产生了通用计算机家族、计算机体系结构、操作系统等根本技术,淘汰了绝大部分的专用计算机市场,仅为IBM一家公司就带来了数千亿美元的市场收入,改变了整个计算机产业的面貌。

现在世界上的分布式计算系统或网格计算系统领域,很像计算机工业在IBM S/360推出前的状况。它们大都是定制开发的专用系统,也有小部分是基于未能流行开来的准通用技术(如CORBA),它们甚至没有公共编码(这就像ASCII标准出来之前计算机系统使用FIELDATAITA2Murray’s codeMorse’s code的混乱状况一样)。这些系统无论是开发、部署、应用、管理、升级、集成的成本都很大。

就像IBM S/360对计算机系统领域所起到的突破性创新作用一样,网格也将是分布式系统的突破性创新。它正在产生通用分布式系统家族、标准的分布式系统体系结构、以及网格操作系统等等技术。与强调“分布”的传统分布式系统不一样,网格更强调将局域或广域的分布式系统看成一台虚拟的网格计算机平台。

 

如果我们将网格看成一台计算机,我们就不得不回答下述的科学和技术问题了:

  • 什么是这个网格计算机的公共编码?
  • 什么是它的体系结构?
  • 什么是它的存储器与地址空间?
  • 什么是它的处理器与指令系统?
  • 什么是它的外部设备?
  • 什么是它的编程语言?
  • 如何定义、设计与分析网格计算机的算法?
  • 什么是它的操作系统?
  • 什么是它的数据库?
  • 什么是它的应用软件?

对于这些问题的研究,将推动计算机科学与技术的发展,在体系结构、操作系统、用户界面领域造成洗牌效应。

对于网格计算机的公共编码问题,业界已经有了回答,那就是XMLW3CHenry ThompsonXML为分布式系统的ASCII码)。

对于网格计算机的体系结构问题,业界尚无明确的回答,但在操作系统层面已有一定共识,那就是OGSA/Globus2003年推出的Globus Toolkit 3.0GT 3.0)可能会是被广泛认可的网格操作系统的内核,而在2003年出的OGSA Specification则是其框架。另外一组则是Web service的体系结构,如.Net。这两组结构可能会最终合成一体。要注意的是,上述结构的研究者在开发它们的时候,主要是站在网格操作系统的层面考虑,对网格计算机的“硬件”体系结构则考虑不是甚多。这方面的工作还几乎是一片处女地,有很多创新的机会。这方面的工作例子有:

  • Intel已开始研究它的芯片如何支持网格和Web service
  • 中科院计算所的曙光4000、蓝鲸网络存储系统、网格路由器等工作

当然,这方面最重要的问题还是网格计算机的整体体系结构。如果我们看一看传统CPU芯片的体系结构,我们可以把它分解成三个内容:(1)地址空间;(2)寄存器(包括状态寄存器);(3)指令系统。地址空间是计算机体系结构的核心内容。它的一大进展发生在60年代,产生了物理地址、有效地址、逻辑地址、虚拟地址、动态寻址技术,从而使得分时系统、交互式系统、现代操作系统、有效的高级语言编程变得可能。

下面举两个例子,说明国际上对网格体系结构的研究已有一定深度。

什么是网格计算机的主板?一个相关的领域就是CDNMITAkamai已有多年的研究。Akamai的基于edge server的体系结构不仅能够加速内容分发(contents delivery),而且已经能够加速应用分发(applications delivery),加速比高达5倍。

什么是网格计算机的CPU?我们认为是面向网格的超级服务器。网格上的一个应用特征就是spike,越需要的服务请求越多、spike越大,使得超级服务器提供的吞吐率大幅降低、延迟指数增加,让用户感觉到服务器崩溃。国际上已有很多研究,其目标是使得在服务请求增多、服务器饱和时,吞吐率能够保持在(最大的)饱和值,延迟只有线性增加。而要达到这个目标,我们可能需要系统层面的创新,改变目前服务器普遍使用的进程和线程模型。

 

7.国外网格研究有什么不足?

我们不仅要看国际技术发展趋势,还要分析国外研究有什么弱点和问题,这能提示出我们的机会。我们认为,国外网格研究有五个方面的不足。

1)信息网格和知识网格还几乎是空白

目前国外的研究集中在计算网格、数据网格、商业网格(web service)三个方面,在P2PAccess Grid方面也有很多工作,但在信息网格/知识网格方面工作很少。尽管GGF已有了Semantic Grid的一些工作,但还缺乏内容。

2)网格应用开发界面与使用界面还很差

GGF的界面领域还没有工作组,只有几个研究组,都在做偏计算和数据的研究。OGSA/Globus主要提供API界面。IBMHPSUNBEA、微软等都推出了类似Visual Studio.Net这样的工具。但它们属于网格计算机的库函数开发工具的层次。

3)支持网格的超级服务器的需示尚不清楚

高性能计算机如何支持网格?它的体系结构和操作系统该如何改变?这些问题目前还没有答案。这方面的一个进展是GGF关于使用CIM的共识。这样至少对Sun公司的服务器而言,网格与网格结点可以采用相容的资源信息服务标准,有助于网格与网格结点的无缝衔接。

4)网格操作系统还不完善

网格系统软件是网格研究界投入最多的领域。但目前它仍有很多不完善的地方。比如:

  • 网格文件系统还几乎是空白(除微软Yukon计划之外)。
  • 网格资源定位(亦称命名)还是个难题。网格用户身分(ID)还没有定论。
  • 网格授权与访问控制的工作还很初步。

5)网格的基础研究还很薄弱

这方面国际上还很少成果发表。

 

8.中科院计算所在网格研究方面已开展的工作

863计划和科学院知识创新工程的支持下,从90年代末开始,中科院计算所就已开展关于网格技术的研究。九五计划期间主要进行国家高性能计算机环境建设,实质上是建立一个初步的网格实验环境,已在北京、上海等8个城市设立了高性能计算节点。2001年以后计算所在网格系统软件、网格浏览器、网格服务器、信息网格、知识网格、网格应用等多方面开展了网格基础研究和关键技术研究,这些研究统称为织女星网格研究。200110月在IEEE International Conference on Cluster Computing上向国际第一次公布织女星网格。织女星网格已被确定为计算所科研工作的“伞把”。织女星网格研究已取得以下一些重要进展。

1)网格基础研究

在网格地址空间,即网格资源定位(寻址)方面,我们提出了“网格社区”技术,将网格资源分成物理资源、逻辑资源和虚拟资源三个层次,对网格计算机的虚拟化工作做了有益的探讨,有助于大大减化网格编程的难度。

另一个进展是更基础层面的研究。在自图灵机以来的各种计算模型(如RAMPRAMBSP)中,地址空间的每个地址只能有读/写操作。我们提出了“主动存贮计算机”(CAM)模型,增加了对地址的执行等主动操作,有助于更好地研究网格计算机指令系统(即WSDLGSDL等网格协议),以及网格算法的设计与分析问题。

2)织女星知识网格(Vega-KG

Vega-KG小组在知识网格方面的研究工作在国际同行中处于领先行列,在一年时间里进展迅速,完成了(含已发表或已被接受)十余篇论文,包括7SCI国外杂志论文,其中包括第一篇有关知识网格的国际杂志学术论文。Vega-KG小组(国外称中国知识网格小组)在国际上已有初步影响。Vega-KG的一项成果是提出了一种比较通用的多维资源空间模型及三个范式,并证明了一些操作算子的保范性,在“数据库上网”方向迈出了重要的第一步。它的潜力是发展成为类似关系数据库中关系代数这样重要的网格资源规范组织理论。它还对VEGA原理中的VG给出了初步但具体的解答,对CPU上网、存贮上网、语言上网、OS上网等研究也有参考作用。

3)织女星信息网格(Vega-IG

Vega-IG研究初步的成果包括:

对铁路、奥运等实际需求的调研产生的典型信息网格应用场景;在此基础上开发的初步的探索式原型;一个初步的信息网格时空模型,可用作指导信息网格体系结构设计与优化;一个初步的多策略访问控制机理。

4)织女星服务网格(Vega-SG

Vega-SG研究最大的成果是已基本明确了研究路线和体系结构,比较有意义的包括GSML软件包、网格社区,还包括网格文件系统、面向用户行为的信息网格时空模型、基于I/O自动机的网格安全模型。

5GSMLGrid Service Markup Language

GSML是织女星网格的高级编程语言和用户界面语言。如果把GSML看成是网格计算机的C语言的话,我们现在使用的高级语言(如Java, C#, SQL, Fortran, CGI和其它脚本语言等)就是网格计算机的汇编语言或库函数。GSML在三个方面进行了抽象,使得用户可以更为简便地开发网格应用和使用网格。

GSML软件包包括GSML语言和GSRP协议这两个标准文档(打算在2003-2004年提交GGF)以及GSML浏览器(又称为网格浏览器)、GSML服务器(又称为网格服务器)、资源映射器、GSML Composer这四个软件工具。随着GSML这样的语言的出现,语言翻译(如编译)也面临新的课题。网格翻译器如何设计可能是一个崭新的课题。

6)织女星个人网格(Vega-PG

Vega-PG是织女星网格实现自主控制和以用户为中心的重要措施之一。它的意义可以从计算机发展史来类比。从计算机体系结构角度来看,单台式计算机的发展有三个里程碑:ENIACIBM S/360PC。将这些发展类比到分布式系统,则现在的网格工作相当于构造分布式系统的IBM S/360Vega-PG则是在构造分布式系统的PC。我们在200211月的PDCS国际会议上报告了Vega-PG的概念和初步工作。

7)面向网格的服务器 

曙光服务器如何面向网格设计已在思路和总体概念上有大的突破,曙光的机群操作系统已经有了基于服务的一个全新版本。计算所研制的蓝鲸网络存储系统初步实现了“动态功能部署”和“硬盘上网”,且在“硬盘上网”的热插拔方面做到了能“插”。

 

 

2003