http://www.ppcn.net/n2441c39.aspx 30多年来,计算机网络技术,特别是Internet技术已经深入到人类社会的政治、经济、文化各个领域,成为人类活动不可缺少的生产和生活工具;计算机网络技术与网络应用正在并将继续改变人类活动的模式。1989年出现的3W服务和1993年出现的图形界面浏览器MOSAIC,使浏览器/服务器(B/S)模式成为目前计算机网络应用的主体模式。由于浏览器界面直观、使用方便,计算机网络逐渐从政府、学界和工业界少数人使用的工具变为全人类公用的工具和服务手段,网络应用也由此获得一次飞跃。 Internet技术的推广与普及进一步促进了计算机网络应用技术的发展,电子科学(EScience)、电子业务(EBusiness)、电子政务(EGovernance)等应用近年来获得社会越来越多的重视。当单机系统难以满足复杂的大型的科学计算(高能物理学、地球观测、天文物理、生物信息学等)求解的需要时,人们开始转向研究如何在网络环境中利用多台地理位置上分散的大、中型计算机协同工作,共同完成复杂的计算,这就是最早促进网格技术研究的动力。后来,电子业务也提出类似的需求。于是,人们开始设想网络应用资源服务能否像电力网格(Electricity Grid)为用户提供的即插即用的输电服务一样方便。这就是计算机网络计算环境中“计算网格”(简称网格:Grid)概念出现的背景。 应当指出:网格计算仅在使用方便这一点上借用了电力网格的概念;由于信息资源的存储与服务系统、资源的描述与表达、提供服务的方式上的千差万别,信息服务和计算网格与电力网格技术在复杂度上有很大的差别。 国际知名网格专家Ian Forster2002年在WWW 2000会议上的特邀发言中把网格计算描述为在多个虚拟社团机构间实现动态资源共享和协同解决问题的过程。也有人形象地把网格描述为“把整个因特网整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享的应用系统”。无论用什么方式去描述网格系统,我们都必须清醒地意识到:网格是计算机网络环境中实现用户访问地理位置分布、异构的计算机系统资源的一种通用应用服务平台。因此,它本身研究的重点是如何在计算机网络提供的已有服务平台之上,通过增强实现方便的协同工作与资源共享,而不是研究计算机网络技术本身。 网格系统及其应用的目的在于对位置分布、异构(使用不同硬软件支撑、不同网络通信技术)和动态变化的虚拟机构的资源和服务可视化和进行集成与管理,使一旦需要就能够对这些计算机、应用服务、数据和其他资源能够进行访问。要实现这一目标的关键是实现标准化,从而将地理位置分散、属于不同机构的资源和服务当作单个虚拟系统进行管理,去发现、访问、调度和监控。全球网格论坛(GGF)是进行有关网格技术的标准化工作主要机构。GGF的主要工作是制订与开放式网格服务体系结构( Open Grid Service Architecture,OGSA )相关的标准。OGSA的体系结构充分利用了W3C制订的Web服务,本文将从开放式系统互联的角度来探讨Web服务和网格问题。 1 计算机网络与网格体系结构的关系 Foster在文献[3]中把网格定性为“下一代Internet”。这一观点在网格界有一定的代表性。首先,这一说法把网格技术与Internet技术等同起来,把网格服务体系结构与Internet体系结构相混淆。尽管在同一篇文献中作者进一步解释说:网格不是Internet的替代物,而是在Internet之上为支持创新和利用计算与丰富的数据环境的附加协议和服务,但把只属于应用平台的网格等同于整个Internet,特别是等同于下一代的Internet的观点值得商榷。 从另一个角度看,目前的热门网络计算技术研究中还有对等计算(P2P)和普适计算(Pervasive/Ubiquitous Computing)等。这些网络计算技术无论从研究的出发点还是所关注的问题和体系结构上看,与网格计算都有所不同,至少在目前还难以做出网格服务作为可以包括上述技术在内的唯一网络计算技术的结论。因此,可以应用平台来表征Internet,既然它不是唯一的平台,用它来界定下一代Internet也不妥当。 另一个容易在网格与网络之间引起混淆的原因是:在过去大量的讨论网格体系结构的文献中,常常构建了一个从物理层设备、逻辑功能到应用层的多个层次结构;在某些文献中,甚至直接将网格体系中的层次结构与OSI/RM中的层次结构相联系和对照。这类对比往往使熟悉OSI/RM或Internet体系结构的读者感到困惑。首先,网格体系结构中包括大量的与实际系统资源(如内部硬件资源,计算机系统软件平台、文件与数据库等)的管理,这些功能是属于OSI/RM概念范围内的资源,它们对网络环境中的网格服务用户而言是不可见的。另一方面,将原本不具备上、下层次关系和OSI/RM中的协议与服务关系的上述资源,并与OSI/RM的层次关系对应,只能使网格结构更难理解。图1是文献[3]对五层网格“协议”体系结构与网络协议体系结构的对比关系图。 图1中的构造层(Fabric)代表具体的网格系统的物理或逻辑资源(计算资源、存储系统、目录、网络资源等;逻辑资源包括分布式文件系统、分布计算池、计算机群等)。应当指出:构造层除了“网络资源”以外,其余部分都是计算机系统中与对OSI/RM无关的硬软件系统的抽象,它与OSI/RM中解决系统间二进制位流/帧的传输的物理层/数据链路层无论从概念到功能都毫无相似之处,在二者间建立如图1所示的对应关系只能造成概念的混淆。 连接层(Connectivity)的功能被定位于支持方便安全的通信,包括网格中的安全通信与认证授权控制的核心协议,实现资源间的数据交换和授权认证、安全控制等。尽管这部分功能与网络协议相关,但在OSI/RM中应隶属于表示层(Presentation Layer),而在Internet体系结构中属于广义的应用层范畴。因此,图1将它与网络层和传送层相对应不符合网络体系结构中的层次功能的划分。 资源层(Resource)利用连接层的通信和认证服务,解决安全会话、资源初始化、资源运行状况监测、资源使用状况统计等问题并通过调用构造层函数来访问和控制局部资源。 汇集层(Collective)的功能是协调各种资源。该层将资源层提交的受控资源汇集在一起,供虚拟组织的应用程序共享和调用。该层组件可以实现各种共享行为,包括目录服务、资源协同、资源监测诊断、数据复制、负荷控制、账户管理等功能。 应用层(Application)为网格服务虚拟组织环境中的最上层,它通过各层的应用程序编程接口(API)调用相应的服务并调动网格上的资源来完成任务。为便于网格应用程序的开发,需要构建支持网格计算的大型函数库。 图1中的上述三层的功能部分可归入Internet中应用层内的网格的通用应用服务范畴,大部可以归入网格应用层服务与实际系统间的映射机制。从图1中应用层直接访问汇集层、资源层和连接层来看,后三层都是应用层的邻子层,三者间不具备邻层关系。而三子层与所谓结构层的关系则完全属于网格服务与计算机系统的资源和资源管理之间的映射机制,属于网格之外对网络用户不可见的部分。 2 开放式网格体系结构(OGSA) 2.1 全球网格论坛和其他与网格相关的国际机构 2000年底,美国网格论坛、欧洲网格论坛和亚洲网格论坛合并组成了全球网格论坛(Global Grid Forum,GGF)。GGF是由用户、研发人员和产品生产厂家组成的致力于网格技术标准化的社团。其使命是定义能够导致标准化和软件间的互操作的网格技术文本并形成国际性社团交换相关的思想、经验、需求和实践。GGF成立以来已经先后制订了若干网格工作文件(Grid Work Document, GWD)和45个“网格最终文件”(Grid Final Document,GFD),其中包括本文将重点讨论的开放式网格服务体系结构(Open Grid Services Architecture,Version 1.0, OGSA)和开放式网格基本结构(Open Grid Service Infrastructure,OGSI)。 为了使网格技术能够实现远程资源调用和复杂数据的交换,OGSA和OGSI借用了3W组织制订的Web服务的相关标准,如: Web服务描述语言(WSDL)和简单对象访问控制协议(SOAP),并积极参与和推动Web服务资源框架(WSRF)标准的制订,准备作为OGSI的替代层。 2.2 开放式网格服务体系结构(OGSA) 所谓网格体系结构或网格服务体系结构是确定网格服务系统中的基本系统组件,界定和描述设置系统基本组件的目的和组件的功能,并说明组件之间如何进行交互式的操作的概念模型。2002 年 6 月,GGF制订了OGSA及其基本服务结构OGSI。与其他开放系统类似,OGSA通过定义标准的服务和接口实现虚拟组织之间相互开放。 OGSA是面向服务的体系结构, 所谓“服务”在OGSA中被定义为:“在网络支持下通过信息交换能够给客户提供某种能力的实体”。在分布式环境中,从信息交换的角度来看,服务可以看作是导致服务实体执行某些操作的特定信息交换序列,因此,在OGSA中可见的操作都是信息交换的结果。OGSA将服务操作封装在一个面向消息的公共接口之中,从而实现服务的虚拟化,即将服务的定位与服务实现细节相分离。在OGSA中,计算资源、存储资源、网络、程序、数据库等都被表示为服务。 早期的OGSA文本也将其体系结构表达为类似于计算机网络分层结构那样的层间关系;新版本的OGSA中已经不再采用这种描述方式,而代之以如图2所示的网格服务基本结构为中心的关联视图。 图2中的粗线表示OGSA服务界面,其上为利用OGSA服务的用户域。粗线以下所画的两层为与OGSA相关的功能。中心的方框表示OGSA的网格基础结构提供的核心服务,框外的各种功能利用基础结构提供开放式网格服务。基础结构所提供的服务是OGSA的核心服务,它解决描述和发现服务属性、创建服务实例、管理服务生命期、管理服务组、发布标准接口和通知接口预订等方面的问题。分布在细线之上粗线之下的功能如资源管理、执行管理、检测与分析、框架优化等功能(图中未穷举)都是利用基础结构服务来实现的。图中穿过网格基础结构的细线将属于OGSA自身的功能与本地系统原有的资源分开,而OGSA关注的部分除了中心为网格基础结构,其他活动以它为中心之外,并未明确地划分层次结构。 3 OGSA的基础服务结构 在网格应用的资源分布的环境中,要实现分布式网络计算必须解决好如何在OGSA服务间实现交互的问题。为此,必须具备用机器可理解的方式描述服务需求和接口的能力,动态地发现、定位和组合网格服务的能力。 GGF选择了W3C制订的Web服务相关标准作为实现其目标的基础,并根据OGSA的需要对Web服务进行扩充与增强,构建其基础服务结构。 3.1 Web服务 Web服务与其支撑平台一道在以计算机网络为支撑的分布、异构计算机环境中提供一种通用的互操作手段,它具有动态资源发现和组合能力。由于在Web服务之上构建应用系统十分方便,它已经成为构建互联网分布式应用系统(EScience,EBusiness和EGovernance等)的基本手段。Web服务涉及四个要素: Web服务说明(WSD)、用于封装WSD的消息封(envelope)、对下层传输协议的绑定、运载消息的传输协议以及Web服务的发布机制。 1) Web服务描述语言(WSDL) WSDL(Web Service Description Language)是Web咨询机构W3C所定义的Web服务描述语言。它为描述Web服务提供模型和XML格式。WSDL对Web服务的描述分为抽象描述和具体描述,描述采用结构化方式进行,以提高服务描述的可重用性。 在抽象描述阶段,Web服务用收发的消息来描述,采用XML Schema格式。“操作”是对服务中能够收发的消息种类和消息交换格局的描述,一个操作可与一个或多个消息交换规则(消息收发序列和顺序及逻辑收发方)相联系。最后在抽象描述中, Web服务接口是成组的操作,但未与传送或具体格式挂钩。 在具体描述阶段,“绑定”关系的描述将定义抽象的服务接口所使用的传送协议和具体格式;通过“可用服务端点”(Endpoint)将绑定部件与网络地址联系起来;最后将实现共同服务接口的可用服务端点合并定义为Web服务。 2) 简单对象访问协议(SOAP) Web服务可用于在互联网上发布可用的应用程序模块(服务),完成请求服务以及WSD和语义的协商。WSDL的描述采用符合扩展标记语言结构与约束(XML Schema)规定的文本格式,不适合直接作为应用消息传输,需要封装在固定格式的消息内再进行传输。W3C的简单对象访问协议定义一种封装格式和结构,定义了用于识别(强制性或选择性)处理部分或全部消息的对象的机制,以及如何将SOAP消息与下层传输协议绑定的方法。例如,当下层采用超文本传输协议(HTTP)时,SOAP消息可能作为HTTP POST请求与应答中的净荷(Payload)部分传输,或作为SOAP消息对HTTP GET的应答,从而实现与HTTP的绑定。为了适应远程程序调用的需要,SOAP还定义了SOAP数据模型,即用于运载RPC的数据编码结构。 3) SOAP消息的传输协议 SOAP定义了可用于装载WSDL描述的消息格式,它需要与端系统之间运载SOAP消息的传输协议相结合才能完成Web服务既定的功能。前面已经提到,应用层的超文本传输协议(HTTP)是一种可能的选择,但SOAP并不排除使用其他应用层协议,如简单邮件传输协议SMTP、微软公司的消息对列协议(Microsoft Message Queue,MSMQ)或者直接利用传送层协议(TCP)。 4) 注册或服务发现 为了便于用户查询和使用已有的服务,需要将Web Service在管理服务器上注册。相关技术和标准由“促进结构化信息标准机构”(OASIS)的通用描述、发现与集成(Universal Description Discovery and Integration,UDDI)成员组制订。 Web服务的使用过程可以用图3来简单描述,即服务请求与提供服务双方通过代理交换Web服务描述(WSD)和语义达到服务协商一致来完成的。 如图3所示,参与服务的双方在已经了解可用的Web服务的前提下进行服务协商时,首先将WSDL描述的文本(WSD和语义定义)封装在SOAP消息之中(净荷字段),然后利用传输协议(如HTTP)通过交换SOAP消息完成协商过程。 3.2 开放式网格服务基础结构(OGSI) 在GGF进行OGSA相关文本的制订过程中,一方面认定Web服务时提供网格服务的最佳选择,另一方面又感到1.0版的Web服务还存在一些问题,不能满足OGSA的需要,需要对之进行扩展,由此提出开放式网格服务基础结构( Open Grid Service Infrastructure,OGSI)对Web服务进行扩展。 首先,OGSA定义网格服务具有动态变化的特性,即服务实例会随着工作的分派、资源配置与供给以及系统状态的变化而不断产生与消亡。因此,网格服务需要对服务实例的创建、撤销和生命期进行管理。第二,网格服务可以拥有与自身相关的属性和数据。这在概念上类似于面向对象编程中对象的传统结构。对象有其行为和数据。同样地,Web 服务需要得到扩展,从而支持与网格服务相关的状态数据。 OGSI规范通过扩展Web服务定义语言WSDL和XML Schema的功能来解决具有状态属性的Web服务的问题。它针对网格服务的需要定义了一套标准化的接口,包括:服务实例的创建、命名和生命期管理,服务状态数据的声明和查看,服务数据的异步通知,服务实例集合的表达和管理,以及一般的服务调用错误的处理等。 3.3 网络服务资源框架(WSRF)与OGSI OGSI是GGF根据OGSA的需要,通过对无状态的Web服务的增强,重新定义支持有状态的OGSI服务。2004年3月,Globus联盟和IBM发布了Web服务资源框架(Web Service Resource Framework v 1.0,WSRF)。GGF采取将Web服务扩展为支持有状态服务的策略来构建OGSI。WSRF与GGF不同,在保留无状态的Web服务的前提下,将资源定义为是有状态的。如果设计了一组在分布式环境中能够表示、识别和访问有状态的资源标准化的Web服务定义方法,无状态的Web服务就能够用来描述有状态的资源。对OGSA来说,这一思路实质上意味着如果使用WSRF, GGF的OGSA中不再需要OGSI针对网格的专用服务。 由于WSRF不像GGF那样针对特定应用而定义,而是作为对Web服务通用性的增强与扩展,在服务功能上更有普遍性。 4 用OSI/RM分析OGSA层次结构 在分析OGSA结构时,笔者曾经指出:2005年发布的文本对OGSA体系结构的描述不再采用原来的层次关系,而改用图2所示的以OGSI为中心的半层次化关系的描述方法。但笔者认为,该图仍然没有从概念上将网格体系结构中与网格服务相关的具有网络层次结构的网格服务功能与计算机系统原有的资源与功能相区别。为了便于读者理解OGSA体系结构,以OSI/RM的框架为背景将它描述为图5所示。 图5将支持OGSA的计算机系统概念上分为两部分:右边为从OSI/RM的观点属于计算机网络范畴的部分,左边为不属于计算机网络范畴的部分。两部分之间由OGSA在计算机上的内部应用接口相联。图中的服务映射方框代表计算机原有机制、资源和能力之间的映射或实现。本机用户将通过左部利用OGSA服务;远程用户将通过右部的正常网络渠道请求、协商与获得服务。笔者认为,用图5所示的结构来描述OGSA更容易理解其服务过程。 5 结语 本文从网络的角度对开放式网格服务进行了简要的探讨。与OGSA相关的机构除了文中多次提到的全球网格论坛(GGF)之外,还有Globus论坛、促进结构化信息标准机构(OASIS)和W3C等机构。对网格技术感兴趣的读者,可从上述机构的官方网站及时获得最新信息。鉴于OGSA是一个仍处于研究过程中的复杂的体系结构,涉及大量的标准和文献,笔者对OGSA的理解难免有不妥之处,欢迎广大读者批评指正。

评论