Cisco网络技术论 坛-> 用户名 密码
搜索
Net130.com

开发网格计算应用程序


http://www.net130.com  发布日期:2004-5-10
浏览次数:
作者:Liang-Jie Zhang;Jen-Yao Chung;Qun Zhou  

  根据 Gartner 的说法,在下一个十年里,许多业务将通过使用使用支持网格计算架构的Web服务在因特网上进行集成(从而不仅可以共享应用程序,还可以共享计算机的计算能力以及其他资源)实现彻底的转变。在本文中,IBM 的 Liang-Jie Zhang、Jen-Yao Chung 和 Qun Zhou 向开发者介绍了网格计算和开放网格服务体系结构(Open Grid Services Architecture,OGSA)的基本思想。他们描述了开发者可以怎样用最新的 Globus Toolkit(开放网格服务基础架构(Open Grid Services Infrastructure)技术预览)来发现网格服务、创建网格服务接口以及调用网格服务实例。本文还描述了一些有助于开发者集成 Web 服务和网格计算的思想。

  引言

  大多数开发者在想到网格时,可能都会想起高压电缆和发电站组成的网络。实际上,网格本来的意思是一个互相连接的系统,这个系统被用来在一个广泛的区域内配送电流或电磁信号。因此,所有的电气和电子设备都可以通过插入到网络中来访问某些资源,这样就成了“启用网格”的设备。

  大约在 1995 年,这个概念被应用到了计算领域。随着计算环境 — 特别是因特网和宽带技术 — 的发展,商业界出现了一种运动,就是应用这些新的、互相协作的技术与思想来解决金融业、国防研究、医药发明、决策制定和协作设计等领域的问题。网格计算计划曾经是把重点放在计算和高性能计算机上,现在它已经利用 Web 服务进入到了业务服务,比如业务流程外购这种更高级别的电子商务按需外购模型。

  有许多开发者认为网格可以重新定义计算的性质,就象因特网改造了人们的交流方式那样。网格还可以改变来自不同组织和位置的人共同协作以解决某个具体的问题(如设计协作)的方式。这是典型的动态资源共享和信息交换。网格计算平台允许在一个分布式环境中发现资源、管理数据、调度在线资源并提供安全性。

  网格技术标准化是由全球网格论坛(Global Grid Forum)(GGF,请参阅参考资料)推动的。网格与 Web 服务的集成在技术上很复杂,不过又是很自然的事情。GGF 是一个由社区发起的论坛,论坛的参与者是从事分布式计算(或称“网格”技术)的个体研究人员和从业人员。GGF 是网格论坛(Grid Forum)、eGrid 欧洲网格论坛(eGrid European Grid Forum)和亚太地区的网格社区合并的产物。GGF 工作的另一个目标是开发有广泛基础的集成网格体系结构(Integrated Grid Architecture),这个体系结构可以帮助指导新兴网格社区的研究、开发和部署活动。GGF 的开放网格服务接口工作组(Open Grid Service Interface Working Group)正在定义“开放网格服务体系结构(OGSA)”。

  这个系列的第 2 篇的内容是什么?

  这个系列的第二部分将重点讨论网格解决方案创建流程,该流程包括网格体系结构设计、网格服务开发及网格服务部署。

  OGSA 是一种基于网格服务的分布式交互和计算体系结构,用来确保异构系统间的互操作性,这样不同类型的系统就可以进行通信、共享信息。它利用新兴的 Web 服务定义了 Web 服务定义语言(Web Services Definition Language(WSDL),请参阅参考资料)接口。所有的服务都遵循指定的网格服务接口和行为。可以用三种级别来定义网格:

  1、企业(企业网格(Enterprise Grid))

  2、伙伴(伙伴网格(Partner Grid))

  3、服务(服务网格(Service Grid))

  然而,OGSA 规范中的下列组件仍处于早期开发阶段:工厂(Factory)、注册中心(Registry)、发现(Discovery)、生命周期(Lifecycle)、查询服务数据(Query service data)、通知(Notification)和可靠的调用(Reliable invocation)。另一方面,OGSA 是一个系统合成模型,它用网络上的分布式资源执行特定的任务或解决富有挑战性的问题。

  使用 OGSA 分发资源

  OGSA 描述并定义了基于 Web 服务的体系结构,这个体系结构由一组接口及其关联的行为组成,用来方便在异构动态环境中共享分布式资源(请参阅参考资料)。OGSA 依赖 WSDL 中对服务的定义,WSDL 定义服务访问的参数及其类型。OGSA 体系结构如图 1 所示。

  图 1. OGSA 体系结构



  OGSA 背后的基本概念是,它是一个面向服务的网格体系结构 — 一种特殊的 Web 服务,它提供一组遵守特定约定的定义明确的接口。这些接口解决发现、动态服务创建、生命周期管理、通知和可管理性等方面的问题。约定解决命名和升级问题。网格服务的标准接口包含多个绑定和实现(比如 Java 和 C# 语言)。这种网格服务可以部署在不同的托管环境 — 甚至不同的操作系统中。OGSA 还提供了一种网格安全机制来确保服务间所有的通信都是安全的。所有的服务(持久的或瞬时的)都是用 Globus Toolkit 构建的。所以,OGSA 的基本思想等于网格结构加 Web 服务再加工具箱(Toolkit)。OGSA 中解决了两个重要的问题,即标准服务接口的定义和协议的识别。

  网格服务接口的语义

  OGSA 定义了网格服务实例的语义:它是如何被创建的、它是如何被命名的、它的生命周期是如何被确定的以及如何与它进行通信等等。目前的网格应用程序通常依赖本机操作系统作为它们的托管环境。创建新的服务实例要涉及到创建新的流程。在 OGSA 上下文中,托管环境(容器)主要负责确保它支持的服务遵守网格服务语义。这样,OGSA 就可以促进对容器/组件接口的修改或添加了。

  OGSA 允许应用程序和用户创建瞬时服务、发现和确定可用服务的属性。OGSA Factory、Registry、GridService 和 HandleMap 接口支持创建瞬时服务实例,并支持发现与实际的组织相关联的服务实例以及确定这些服务实例的特征。

  服务能力

  服务能力(Service capability)(也就是某个公司或组织提供的服务)被当前的 Web 服务解决方案广泛使用。例如,送货服务可能具有在两天内将一个包裹送达目的地的能力,且收费不到 10 美元。同样,网格服务能力也可能是计算资源、存储资源、网络、程序、数据库等等。网格服务的特征由它们提供的能力来确定。网格服务实现一个或多个接口,其中每个接口定义一组通过交换定义好的消息序列(比如方法调用的输入参数)进行调用的操作。网格服务接口对应于 WSDL 中的 portTypes。

  服务的版本确定与升级

  网格服务支持的 portTypes 集以及一些与版本确定相关的额外信息在网格服务的 serviceType 中被指定,后者是 OGSA 定义的一个 WSDL 可扩展性元素。复杂的分布式系统内的服务可以独立升级。因此,我们可以管理和表达服务间的版本确定和兼容性,这样客户机就不仅可以发现特定的服务版本,还可以发现与之兼容的服务。而且,不必打断客户机对服务的操作就可以对服务(和运行它们的托管环境)进行升级。目前的 Web 服务规范中没有提供这种增强了的功能。

  软状态(Soft-state)管理

  网格服务可以维护服务生命周期的内部状态(以便把一个服务实例与另一个提供相同接口的服务实例区分开)。网格服务实例(Grid service instance)这个术语指的是网格服务的某个特定的实例化。服务通过交换消息进行交互。内部状态的存在使得保证服务已经一次性收到一条完整的消息或根本没收到消息这种能力变得很重要。在这个基础上,我们可以构建广泛的更高级别的每操作语义,比如事务。OGSA 模型定义了一个标准接口(Factory)和任何服务创建服务都必须提供的语义。在一个结合了瞬时的、有状态的服务实例的系统中,必须提供一些机制来使与失败的操作有关的服务和状态恢复原状。

  假设用户应用程序因为某种原因失败了。网格服务计算暂时还在继续,但如果没有其他方对计算结果感兴趣,就不再生成 keepalive 消息。由于应用程序出了故障,keepalive 消息停止了,网格服务实例最终超时,并通过释放它们使用的存储和计算资源终止。

  网格服务部署与服务注册

  图 2 展示了一个网格服务部署和发布示例的示意图。使用简单对象访问协议(Simple Object Access Protocol,SOAP)的远程过程调用(Remote Procedure Call,RPC)servlet 和网格服务的实际实现可以被部署到应用程序服务器(比如 WebSphere 或 Apache Tomcat)上。所有的调用消息都将被 SOAPRPC servlet 捕获,它把这些消息路由到相应的网格服务。

  图 2. 网格服务部署与发布示例的示意图



  同时,可以把网格服务发布到统一描述、发现和集成(Universal Description, Discovery, and Integration)(UDDI)注册中心(请参阅参考资料)或 Web 服务检查语言(Web Services Inspection Language)(WSIL)文档(请参阅参考资料)。UDDI 的设计使得我们可以在其中发布和搜索商业伙伴的业务及他们的网格服务。UDDI 注册中心是一个存储这种信息以及网格服务位置的中心。有两种类型的 UDDI 注册中心:公共的和私有的。您可以以应用程序开发者或服务提供者的身份把您的网格服务发布到 IBM、Microsoft、HP 或 SAP 掌管的公共 UDDI 注册中心。如果您想发布自己的私有网格服务或机密网格服务,就应该使用私有 UDDI 注册中心。但用于测试目的或小规模集成时,将您的网格服务发布到 WSIL 文档却是最容易的,因为 WSIL 不需要 UDDI 注册中心就能够进行网格服务发现、部署和调用。这是因为 WSIL 提供了对已存在的服务描述文档的引用进行聚集的方法(这些文档已经被用许多种格式编辑过了)。然后这些检查文档在服务提供点处被提供,或者通过可以放置在内容媒体(比如 HTML)中的引用使其可用。例如,定位 WSIL 的 URL 的格式可能如下所示:


http://www.myorg-wsd.com/inspection.wsil



  而且,UDDI 注册中心和 WSIL 将被 WSIL wsiluddi 数据标记紧密地关联在一起。在 WSIL 中,引用指针被用来连接到发布在 UDDI 注册中心的业务或服务。

1 2 3