摘要 本文首先介绍了气象应用网格的基本框架,然后介绍了开放网格服务构架-数据访问与集成 (Open Grid Services Architecture - Data Access and Integration,OGSA-DAI)以及Agent技术在网格计算中的应用,最后讨论了气象网格中气象数据的按需获取方法。关键词 气象应用网格,开放网格服务构架-数据访问与集成,代理,按需获取 网格(Grid)计算源于元计算(Metacomputing),其初衷是将分布的多台超级计算机连接成为一个可远程控制和访问的元计算系统,逐步发展为遵循开放标准、聚集网络上广泛分布的计算、存储、数据、软件、仪器设备和传感器等各种资源的分布合作计算平台,以服务的方式支撑大规模计算和数据处理等各种应用,将Internet变为一个功能强大、无处不在的计算设施。开放网格服务构架-数据访问与集成(OGSA-DAI) 是一种中间件,其设计目标是提供一种简便的方法,在网格环境中实现数据的访问和集成。而将Agent技术应用在网格计算中可以有有效地节约网络带宽,提供实时的远程交互,支持离线计算等诸多优点。气象网格则是网格技术的一个具体应用,它的作用是实现网络环境下的按需预报,有效提升科研业务体系、聚合高性能计算资源,提高资源的利用率、建立异地协同攻关的网络环境,加快重点攻关项目的研究进度、实现气象信息的共享、增加信息反馈的渠道。目前的气象数据获取方式主要是各个台站被动的接受来自主站的气象数据进行筛选、分析,预报。这无疑产生处理效率低、实时性较差、网络带宽资源严重浪费等缺点,且人力物力花费大。本文在以下的章节里,介绍气象应用网格框架,引入Agent技术和OGSA-DAI,在此基础上提出一种新型、高效的气象数据获取方法。1 气象应用网格1.1 网格技术概述网格(Grid)的概念诞生于20世纪90年代中期,它借鉴了电力网的思想,希望利用互联网或专用网络,把地理上广泛分布的各种计算资源互连在一起,使得分布在各地的计算资源相互连接,组成充分共享的资源集成(即虚拟组织)。高度的资源共享是网格计算技术追求的目标。目前已出现的解决资源共享的方案和技术,如:因特网,企业计算,对等计算,分布计算等, 均难以满足直接对计算机、软件、数据和其他资源的灵活访问以及可控的高度共享。网格技术致力于达到这个目标,提供建立虚拟组织所需要的资源共享的灵活性和可控性。1.2气象应用网格简介以中国气象应用网格为例,它是由中国气象科学研究院发起,许多相关单位参加的科研应用网格。主要研制基于网格技术的数值天气预报软件及其支持软件,研究观测资料和数值预报气象数据的海量处理技术,实现应用网格对海量气象数据集的远程访问和智能请求管理等。利用中国气象局已有的卫星气象通讯网络和高性能计算资源,在2005年,建立包括国家气象中心、气象科学研究院、广州区域气象中心、北京区域气象中心和上海区域气象中心的中国气象网格平台,为行业内部的研究人员提供一个资源共享、远程高性能科学计算的数值预报技术研究和模拟环境,实现数值预报应用层的互联互通、资源共享和协同工作。提供网格中尺度气象数值天气预报模式系统、海量气象数据处理系统、网格气象可视化系统、气象软件开发协同工作环境。逐步形成气象网格的技术标准,指导中国气象局的业务系统现代化建设,提升我国的气象应用水平,促进全国气象数值预报的整体可持续性发展。它的结构如图1所示:图1 气象应用网格系统框架各系统的作用和特点:代码共享和协同开发系统:1.为不同的用户设置新一代数值 预报系统的使用、源代码浏览和修改等共享权限,实现网上的代码版本控制;2.提供远程应用的协同工作环境,提供远程气象数据的访问与服务能力。网格数值预报系统:1.良好的可移植性:模式时间、空间分辨率可随意调节;2.程序执行时的可定制性:因不同需求而定制程序运行方式、预报区域大小及动力框架主干及物理过程;3.良好的可维护性及可扩充性:模式动力框架及物理过程可任意插拔;4.单一原码程序保正能够在多种机型上有效运行。海量气象数据处理系统:1.数据存储设计:采取online和offline方式,根据用户对数据的访问频率和访问响应时间要求的不同分别在一级磁盘阵列、二级磁带库、三级脱机磁带等设备上进行存储;2.数据迁移;3.数据采集;4.数据检索服务网格气象可视化系统:用户可以在客户端通过菜单方式选择显示的数据源和显示方式。数据源包括数据库系统和网格数值预报的输出,以及一些常用的文件类型;显示方式包括不同类型数据的显示,如向量场和标量场,不同的地图投影方式,时间演变曲线,直方图,剖面图,探空图,时间动画等。 2. 开放网格服务构架-数据访问与集成OGSA-DAI即开放网格服务架构数据访问和集成(Open Grid Services Architecture - Data Access and Integration),它符合基于OGSA的网格标准,并在Globus Toolkit 3.0上进行开发。支持DB2、Oracle、Xindice、MySql等数据库管理系统。网格数据库是对现有数据库的网格化,基于开放网格服务体系结构OGSA提供网格数据库服务,使网格用户或其他网格服务可通过网格数据库服务访问网格中的各种异构数据库,从而达到数据资源的高度共享和协同处理,对数据资源的访问更加透明、高效、可靠,网格数据处理的能力更强,满足虚拟组织的数据处理需求。OGSA-DAI的体系结构如图2所示,可以看出,其体系结构与Web Service很相似,都是Discover、Bind、Publish机制。图2 OGSA-DAI体系结构网格数据服务(Gird Data Service,GDS)::为访问某个数据资源(关系数据库或XML数据库,甚至是存储在普通文件中的数据)提供服务。网格数据服务工厂(Grid Data Service Factory,GDSF):用于创建一个GDS实例,以访问特定的数据资源。服务组注册器(Service Group Registry,DAISGR):用于找到所需要的GDS,也可以通过它找到用于创建所需GDS的工厂。执行文档(Perform Document):一种XML格式的文档,用于定义要在GDS上执行的活动,如一条SQL查询,然后再定义如何将查询的结果传送给第三方。响应文档(Response Document):一种XML格式的文档,是GDS处理执行文档后返回的结果。活动(Activity或Activities):实现程序功能的核心功能模块。它们之间的交互关系如图3所示,整个交互户过程如下:(1) 运行OGSI Container为永久性服务;(2) 此时GDSF代表database:Frogs Database;(3) GDSF在DAISGR上注册;(4) 如果用户想了解数据库,可以直接查询GDSF,也可以通过DAISGR定位合乎需要的GDSF;(5) 用户请求创建一个GDS;(6) 用户发送Perform Document和GDS通信进行交互;(7) GDS返回一个Response Document;(8) 用户销毁GDS或者让其自动消亡。图3 元素间交互关系3 Agent技术在网格计算中的应用agent技术集软件、通信、分布系统的技术于一体,agent具有封装私有特征的能力、灵活的协调能力和更好的网络适应性,具有比对象粒度更粗、抽象级别更高的特征,更符合人的认知过程。代理技术是适应网络平台的一种新型软件技术,为分布开放系统的分析、设计和实现提供了一个崭新的途径,为网格计算思想的实现提供了一种有力的手段。其优点可概括为:(1)节约网络带宽 、(2)提供实时的远程交互、(3)支持离线计算、(4)实现负荷卸载、(5)易于发布服务、(6)增加应用的强壮性、(7)提供平台无关性。3.1 Agent在网格计算中的应用模型Agent的优点使得它有重大的应用价值,在网格计算中可以应用在很广泛的范围。目前网格计算技术中,开放网格服务体系结构OGSA成为研究和讨论的热点。在OGSA下,应用Agent技术可以采用基于BDI的Agent模型,由四元组(M,Ag,S,F)组成,见图4。图4 基于BDI的Agent模型其中:M是Model of Grid Services,表示agent对网格服务和自身状态的认识;Ag是Agenda,即BDI中的Desire,表示agent期望达到的结果状态;S是Strategy即BDI中的Intention,是agent根据M和Ag所采取的策略;F是Finite State Machine,一个State对应一个Strategy,F的当前状态对应于agent正在执行的策略,F中状态的转移反映了策略的执行顺序。 图4所表达的含义是:网格服务(Grid Services)通过一系列事件(Event)反映到agent的Model of Grid Services中,agent根据要达到的目标(Agenda)和当前Model of Grid Services中的信息决定执行状态机(Finite State Machine)中的哪个策略,策略的执行结果可以影响Model of Grid Services,也可以作用于外部世界。3.2 Agent在OGSA结构下的应用方向·网格服务助理:agent的一个重要的特点在于它的可移动及恢复执行的特性。所以它可以代表网格服务在网络中完成一定的任务,成为网格服务的助手。它可以在远程主机上独自运行,不论网络是否连通,而发送者可以关掉自己的计算机,免除线路持续的连接。在agent运行完毕之后用户再建立网络连接进行回收