摘要 本文首先介绍了气象应用网格的基本框架,然后介绍了开放网格服务构架-数据访问与集成 (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运行完毕之后用户再建立网络连接进行回收。这不但避免了由于网络带宽低、费用高、不可靠带来的一系列问题,而且节省了资源。例如为了指定一个需要多个网格服务协同完成的计算操作,发起者(一个网格服务)只要发送一个agent与代表其它网格服务的agent交互,这些agent经过协商后制定一个时间表,最后返回给各个网格服务。
·分布信息查询:在网络中,当信息资源分布于不同的计算机上时,查询信息的一般做法是将各个信息源的信息数据通过网络传递到本地机上,再在本地机上建立应用进行查询。这样网络信息的传递量将是巨大的,而且用户在进行查询时并不能关闭计算机。目前的网格中的信息查询主要是通过查询注册服务中的信息,而如果采用了agent技术,可以创建一个这样的agent任务,把它派遣到远程主机上,这样它就可以自动寻找信息资源进行访问,在用户想要接收信息时,将查询结果返回给用户。这一点体现了agent目标驱动和行为预知的特点。
·监视和通知:当需要对网格中的特定资源进行控制时,获得其当前的状态是十分必要的。作为被控制方,由于状态的多样,是没有义务随时向控制方报告其状态的。作为控制方,可以派遣专门的agent到被监视机上负责这项工作,再也不必采取一些被动的措施,例如隔一段时间进行一次查询,或者被动地等待被监视方返回一些无用的信息。比如agent可以脱离自身的出生地,及时地监视某一信息源,等待该信息源上可用信息的出现。这样的agent也可以以网格服务的形式存在于网格环境中,各个控制方只要调用这一类网格服务就可以轻松地对相关资源进行控制。
当然,agent在OGSA结构下的应用远不止以上三点,比如,还有并行处理、实时控制、信息发布等等,限于篇幅和本文章讨论的内容,在这里就不一一叙述了。
4 气象数据获取方法
目前,基层气象台站的预报方式主要是通过自身被动的接受来自主站的气象数据来进行分析、预报。由于每天有大量的气象数据通过主站发送到各个台站,而每个台站所需要的气象信息可能只是其中的一小部分,这无疑对资源和网络都造成了很大的浪费。预报员还要整理这些数据,从大量数据中筛选出自己所需要的部分来进行分析预报,这也浪费了大量的人力、物力,效率也不高。再次,如果台站的接收机出现断电,死机等问题使得暂时无法接收来自网络的数据,可能就会耽误预报的时间。因此,我们提出了一种基于Agent和OGSA-DAI的全新的气象数据获取方法,来解决这一问题。
4.1 agent结构设计
该气象数据获取方案突出了一个“按需获取”的概念,即主动的通过网络中主站或者其他存有气象数据的节点获取与本台站预报所相关的气象数据。
具体结构如图5所示,主要分为3个部分:
台站:即台站的主机,用来订制Agent并接受Agent返回的最后结果
Agent Home:台站向网络节点发送Agent的中转站,其本身也是一个Agent,属于台站订制的Agent的上层代理,用来协调转发Agent和Agent的处理数据,是台站和Agent之间的接口,一个区域的几个台站共用一个Agent Home。为了节约网络资源,Agent Home还要负责最短路径的查找,以便使存有所需数据的最近的服务器上的Agent工作。
Agent:台站具体订制的代理,用来完成气象数据的按需获取和分析工作,通过Agent Home统一协调工作。
图5 气象数据按需获取方案结构
利用Agent作为气象数据获取的工具,台站负责订制一个Agent,由Agent Home负责分析存在台站所需数据的节点(包括主站和其他一些存有气象数据的服务器)的最短路径,使工作在最短路径上而且可用的Agent工作。这样Agent就作为一个监视者不断的监视节点信息,一旦信息源上的可用数据出现,Agent就立刻做出响应,提取所需数据并进行分析处理,并将所需结果返回给Agent Home。如果台站主机定制完Agent以后就处于离线状态,这些Agent照样自主运行而不受任何限制,然后将计算结果返回给Agent Home,Agent Home检测到台站主机在线时就立即将结果转发给台站,由台站技术人员完成进一步的处理工作。而Agent和节点之间具体的数据访问操作,则是通过OGSA-CAI结构框架来实现的。
4.2 OGSA-DAI组件的应用
在图6的操作中包括一个Agent,一系列的OGSA-DAI组件和网格数据传输服务,这些GDS中均存在Agent所需的数据。图中椭圆OGSA-CAI组件,矩形表示Agent,绿色箭头表示控制信息,红色粗箭头表示GDTS(Grid Data Transfer Services)。现在要做的工作是(1)获得从数据源1和数据源3中合成的数据;(2)将数据源1、2、3中所获得的合成数据传给第三方(Agent Home)。
图6工作流程
Agent使用OGSA-DAI的步骤
(1) 找到DAISGR的位置并发送一个它要请求的服务的描述给那个DAISGR。描述大概是3个可访问的数据源和请求的操作。
(2) DAISGR用一个表明所请求的GDS不存在的指示作为应答,但同时提供了一个的GDSF列表,GDSFs可能产生请求的GDS。
(3)在进行一番对话后,客户选择其中的一个GDSF。3个请求对应选中的GDSF上的CreateService操作,GDSF请求所需的GDS的创建。
(4)选中的GDSF负责3个GDS的创建和初始化,并且为3个请求源逐个创建OGSA-DAI适应性代理,而且为对应客户的每个GDS返回一个GSR(包括一个GSH(Grid Services Handle))。
(5)在每个GDS被查询后,即用FindServiceData 操作确定它的能力的详细细节(不显示)后,客户发信息给每一个GDS表示操作(如,查询、更新、巨量装载)被请求执行。在本例中:
·GDS1应该传送一批数据(从一个查询操作)到GDS2并发送一个数据流到GDS3,这些数据流和批数据被GDSs上操作利用。
·GDS2接受一批GDS1操作的数据和从GDS3来的数据流。GDS2应该建立流向第三方的数据流。
·GDS3应该执行一个操作发送一个数据流(从一个关于来自GDS3的数据的操作和一个数据源3的查询)到GDS2。
对每一个数据传送者都有一个它怎样被执行的描述。
(6)GDS1用一个GDTS传送指定的批数据到GDS2,用另一个GDTS传送一个数据流到GDS3。如果由GDS1执行的操作被说明是并行的,这可以持续并发发生。
(7)GDS2使用进来的数据流、它自己的数据和一个发送一批数据到Agent的GDTS,
(8)并且GDS2初始化针对第三方的数据流。
5 结论
本文根据Agent在网格计算中的应用和OGSA-DAI进行了气象网格中的气象数据获取方法的研究,主要为了解决基层气象台站每天都要接受冗长的气象数据来进行预报的问题,有效地节约了网络带宽,提高了接收和分析气象数据的效率。使用该方法通过对Agent进行相应的设置,减轻台站的负担,有效的节约了带宽,提高了系统的可靠性和实时性。随着网格技术的发展,这一方法一定能够发挥其自身的优点,扩展新的气象数据处理应用和服务。
参考文献:
[1] Foster and C.Kesselman. The Grid: Blueprint for a New Computing Infrastructure, Morgan Kaufmann, San Fransisco, CA,1999
都志辉,陈 渝,刘 鹏.网格计算[M].北京:清华大学出版社,2002
, and . OGSA-DAI: A look under the hood.
,
Foster and C.Kesselman, et. The Physioligy of the Grid.
http://www.globus.org/research/papers/ogsa.pdf,2002
http://www.chinagrid.net/grid/paperppt/bigfile/Conference/ISIT/gyd-SSC_Grid.ppt
高敬瑜,赵岳松.基于OGSA的网格数据访问与服务.计算机工程.2004-5