APP下载

AstroGrid CEA架构的应用研究*

2012-01-25汪晶晶季凯帆

天文研究与技术 2012年3期
关键词:天文台调用天文

汪晶晶,季凯帆,王 锋,2,邓 辉

(1.昆明理工大学云南省计算机技术应用重点实验室,云南 昆明 650051;2.中国科学院国家天文台/云南天文台,云南 昆明 650011)

近十年来,世界科技界将其在未来研究领域中的重大突破寄希望于以“下一代互联网”为基础的全球信息化科研环境的建立和科研项目的协同合作上。伴随这种趋势,天文学界兴起了虚拟天文台这一新概念[1]。2001年9月,英国科学家为构建一个完整的虚拟天文台基础架构提出了耗资一千万英镑的项目AstroGrid。该架构充分利用已定义的公共接口,结合分析和可视化工具推进不同天文数据中心间的相互作用,同时也有助于不同天文数据中心向数据网格基础架构发布服务和数据[2]。可以说AstroGrid是进入虚拟天文台的门户平台[3]。

作为AstroGrid的核心CEA是为适应将应用程序封装为Web服务的需求而兴起的新概念。CEA的主要设计目标是:工作于Web服务框架;具有参数传递机制和Web接口;应用网络服务描述语言(Web Services Description Language,WSDL)片段描述应用程序以及运用注册表区别应用程序[4]。

一方面,天文观测数据近几年来雪崩式的产生推动自动化工具在天文研究中的运用。跨平台、开放、松耦合的Web服务很好地符合了天文数据发布的需求。将各种天文工具及资源发布成Web服务,更有利于实现数据密集型的网络化天文研究环境。依据与AstroGrid整合的应用程序类型的不同,AstroGrid CEA支持对3种类型应用程序的封装,即:命令行应用程序,基于超文本传送协议(Hypertext Transport Protocol,HTTP)的Web应用程序以及Java编写的应用程序[5],从而以服务的方式向用户提供科学级的应用。另一方面,国内外目前主流的天文数据发布方式有Web页面、客户端和Web服务,而在Web服务中大多数是表述性状态转移(Representational State Transfer,REST)风格的Web服务[6]。但是REST风格的Web服务相比简单对象访问协议(Simple Object Access Protocol,SOAP)风格的Web服务缺少了传输协议和服务的定义,因此不利于在自动化工具中实现机器自动识别并调用。AstroGrid CEA提供双接口远程调用已定义应用程序,即SOAP接口(又称公共执行接口Common Execution Connector,CEA)和Universal Worker Service(UWS)REST接口。而UWS REST接口比SOAP更容易驱动和使用。因此,AstroGrid CEA同时支持两种风格Web服务的搭建,可使Web服务既符合国际虚拟天文台联盟IVOA的规范又可获得在SOAP客户端调用的便利。

因此,对AstroGrid CEA进行深入的分析和理解,对推动未来天文应用软件开发中标准的遵循或兼容以及对天文数据和应用的集成与无缝连接将具有明显的价值。

1 AstroGrid和CEA构架

1.1 AstroGrid整体结构

图1显示了AstroGrid的整体结构。从层次结构来看,AstroGrid实现的功能不仅包括提供桌面应用软件的部分,还包括为了方便开发而封装的底层结构,以及用于实现各种交互效果的页面组件。

图1 AstroGrid组件Fig.1 The components of the AstroGrid

Portal是AstroGrid的门户,基于Web用户界面与底层AstroGrid基础架构提供的服务相互作用,实现透明服务及应用。

Community定义了各种用户的识别标准。它的管理功能包括创建账户和组,添加账户到组,删除账户等。

Registry存储大量的元数据资源。例如数据集、Web服务、服务和其他数据库的注册信息。

VOSpace定义了远程存储标准,并为科学家提供数据存储区。存储信息包括文件、数据库表和账户等。用户无需指定物理地址即可进行访问操作。

Workflow通过AstroGrid Python脚本提供简单的自动化任务流程,而AstroGrid服务器端组件工作执行服务(Job Execution Services,JES)作为工作流引擎,处理复杂的工作流。用户可通过Workflow提供的工作执行系统(Job Execution System,JES)接口提交、安排和监测任务,例如异步查询目录、运行应用程序或搜索注册表等。

DSA组件属于虚拟天文台协议与各种数据格式、数据库之间的转换插件。

作为AstroGrid核心技术架构的CEA力图构建一套合理的接口和架构,对虚拟天文台天文应用执行过程进行建模[7]。CEA提供标准的应用程序及其参数的接口和模型,扩展虚拟天文台资源模式,规范化WSDL并提供更高级别的描述语言,并实现应用程序的异步操作[8]。CEA保管描述系统中每个服务的特殊功能,并保留共同部分,从而Portal和JES系统中的工作流系统不需要针对不同的服务编写特殊代码就能驱动各种数据筛选服务和数据转换服务[9]。CEA与AstroGrid工作流组件的结合实现了虚拟天文台的分布式处理技术。

1.2 CEA 框架

CEA希望实现的功能不仅包括提供应用程序异步操作的部分,还包括为了方便开发而封装的底层结构,包括:

CEA Client是为客户提供CEA服务的客户端,从而简化与SOAP服务的沟通。

CEA server library组件提供了AstroGrid CEA公共库,该公共库包括大量CEA代码,但是并没提供代码运行环境。

CEA common library包括服务器和客户端常见的CEA类,该组件可与其他组件绑定创建服务。用户可以基于CEA common library创建属于自己且符合IVOA规范的Web服务。

CEA CEC(Common Execution Connector)Web服务器属于需要实际部署的服务器组件。它提供了Java类应用程序的公共执行连接器Web服务,使天文应用程序适合于虚拟天文台环境,从而用户能通过AstroGrid门户、桌面应用程序和工作流系统调用应用程序[10]。

CEA服务器和客户端软件把Web服务实现的细节隐藏于AstroGrid底层框架之下,例如Workflow[11]。CEA的重要特性是运用单个Web服务定义和应用模型描述多类型的应用程序。因此对公共执行架构的描述分为两部分:

(1)应用程序及其参数的数据模型的描述。该模型包含对虚拟天文台注册表内应用程序资源和调用应用程序及其参数的描述[12];

(2)支持远程调用符合CEA规范应用程序的特定的Web接口描述。采用XML文档描述应用程序调用过程,运行应用程序,并以异步、安全的方式返回结果[13]。

2 JC-CEC组件

CEA Java-class-application server组件是在Tomcat中运行的CEC Web服务器组件的一部分,针对Java类应用程序提供CEC Web服务,简称JC-CEC。JC-CEC作为服务器组件,可在Servlet容器中或以独立服务器的方式运行,此处采用生产环境中更常用的Servlet容器模式Tomcat。其中JC-CEC WAR文件的WEB-INF/lib目录下包含可执行的jar文件,有助于方便发布和执行Java应用程序,比如Axis.jar作为Web服务引擎及客户端引擎。而jar文件提供了SOAPWrapper类和ExecutionManager类。SOAPWrapper类使得任何接受对象的操作可以用来操作基本类型,ExecutionManager类则用于执行生成的公共入口点。如果虚拟天文台用户想运行选择的Java应用程序,应该先安装JC-CEC组件,并对JC-CEC进行相应的配置,主要包括编辑Registry-template.xml和App-description.xml文件。接着获取并安装应用程序,最后通过门户、桌面应用程序和工作系统进行调用。相关组件如图2。

图2 JC-CEC组件Fig.2 Components of the CEA Java Class Application

3 利用CEA发布中国科学技术大学光谱处理数据

2002年以来,中国科学技术大学天体物理中心一直利用SDSS光谱数据研究星系和活动星系核,并在此过程中发展了一套完善的光谱数据处理与分析方法和程序,它能自动分析海量的星系和活动星系核光谱。主要功能包括两方面:一是将寄主星系恒星光谱贡献与活动星系核贡献从光谱数据中分离(星核光谱分离);二是对各成份的谱线和连续谱做精确的分解和测量,目前计算结构以FITS格式保存。经过邓玉坤等的努力,基于PHP网站采用将FITS图像部分参数插入数据库,同时在需要时对FITS文件实时处理作为数据源的方式实现了FITS格式的光谱数据发布及检索[14]。天文学家可以通过定义圆形天区中心坐标和搜索半径确定天区范围,创建并搜索给定天区中的天体目标。李晓科等则采用面向Web服务的天文数据发布技术实现了同时支持SOAP风格和REST风格的锥型检索服务[15]。在此基础上利用AstroGrid CEA框架实现锥型检索数据的发布,进而将数据融合到AstroGrid虚拟天文台门户中,供全世界天文学家使用。

整个搭建及调用过程包含以下步骤:(1)将JC-CEC部署到Tomcat容器中;(2)在Eclipse中编写服务代码及服务配置文件;(3)将应用程序打包并部署到JC-CEC中;(4)在浏览器或客户端调用服务。以下详细介绍各步骤。

(1)安装JC-CEC

安装JC-CEC包括3个步骤:下载Tomcat安装包及CEA Java-class-application server WAR文件;重命名WAR文件,保持与Web应用程序上下文的名字相匹配,例如,astrogrid-cea-javaclass.war;将WAR文件放入Tomcat的webapps目录下,即可自动解压并启动Web应用程序。这样就可以通过浏览器访问JC-CEC的Web页面。

(2)编写服务代码及服务配置文件

首先要根据光谱数据锥型检索功能的流程编写服务代码。其流程包括服务端接收到OMElement类型参数后,分析XML文档对象获得传入的赤经/赤纬/半径3个参数;判断参数是否有效。如果参数无效则按照IVOA规范返回包含错误消息的VOTable,如果有效则查询数据库并生成包含检索结果的VOTable,最后将VOTable转换为OMElement并返回。

完成服务代码的编写后,需要编写服务的配置文件。服务配置文件可以描述服务的名称、开放接口、接口使用的传输方式等。针对锥型检索接口需把消息接收器配置为RawXMLINOutMessageReceiver,以便返回自定义格式的XML。

(3)打包并部署应用程序

为了让Web应用程序与JC-CEC协同工作,还需对JC-CEC进行相应的配置。包括:

编辑JC-CEC环境,即应用程序服务器的“环境项”,告知JC-CEC查找路径。对于Tomcat 5.0容器而言,这就意味着需要编辑${CATALINA_HOME/conf/Catalina/localhost/astrogrid-cea-javaclass.xml文件。

编辑“registration-template”XML文档。该文件中CeaApplicationType和CeaServiceType两个资源文件提供CEC服务及其应用程序的注册信息。CEC读取这个文件,并与本地配置信息结合产生注册文件。“registration-template”XML文档包含<ApplicationDefinition>元数据和<VOResource>元数据,例如<ApplicationDefinition>描述机器如何运行应用程序,JC-CEC会根据本地配置文件向<ApplicationDefinition>添加相应的信息,然后运用<VOResource>封装应用程序,发布<VOResource>。

重启JC-CEC Web服务获得修改的配置。也可重启Tomcat,或使用Tomcat Manager Application重启整个Web应用程序。

通过Eclipse中菜单File-Export-JAR file将设计并实现的锥型检索服务进行打包,然后选择输出到JC-CEC的WEB-INFlib目录下即可由JC-CEC引擎自动完成部署服务。

为了让载入的Java应用程序适应虚拟天文台环境,还需要对JC-CEC配置文件WEB-INFweb.xml进行相应修改,具体编辑内容如下:

(4)调用服务

当用户执行应用程序调用操作,JC-CEC首先查找资源注册表,通过分析<VOResource>元数据获得<ApplicaitionDefinition>,依据<ApplicaitionDefinition>从用户界面添加参数,激活门户 Portal的workflow executor,启动SOAP引擎执行调用操作,服务成功接收参数并查询返回符合IVOA规范的锥型检索规范的结果。JC-CEC服务器支持Universal Worker Service REST接口,即CEC页面的侧菜单项Test run of application[16]。该接口通过Web运行载入的应用程序。所以在浏览器中直接输入网址即可调用刚才搭建的锥型检索服务。通过以上步骤即实现了运用CEA发布中国科学技术大学光谱处理数据。

4 结束语

本文对AstroGrid CEA的实现原理、基本架构、接口分析和应用模型进行了系统的调研,对如何运用CEA进行了分析,并在此基础上,通过CEA实现了中国科学技术大学光谱处理数据的发布,完成了基于FITS格式的锥型检索服务,为未来天文应用软件开发中标准的遵循或兼容以及对天文数据和应用的集成与无缝连接打下了基础。AstroGrid CEA架构提供完整的Web服务异步环境中定义和执行应用程序方法,实现了AstroGrid工作流系统,就这点而论,CEA拥有完善的框架及功能。然而,随着AstroGrid演变,以及更科学的应用移植到虚拟天文台,需要对CEA组件进行评估、升级,对整体模型进行扩展,支持新的应用程序直接使用CEA Web接口,从而满足用户需求,也为国内天文应用向AstroGrid的移植和应用提供更为有力的支持。

[1]崔辰州,赵永恒.作为网络时代天文研究的基础平台—虚拟天文台方兴未艾 [EB/OL].(2003-10-31) [2011-06-24].http://www.bast.net.cn/kjxx/gjxx/2003/10/31/11548.shtml.

[2]Lawrence Andy.AstroGrid:powering the virtual observatory [C]//Szalay,Alexander S.Virtual Observatories.Proceedings of the SPIE,2002,4846:6-12.

[3]Welcome to AstroGrid [EB/OL].[2011-06-24].http://www.astrogrid.org/.

[4]Harrison P N,Winstanley J Taylor.The AstroGrid common execution architecture(CEA) [J].Astronomical Data Analysis Software and Systems XIV ASP Conference Series,2005,347:291-295.

[5]CEA CEC web server 2009.1 [EB/OL].[2011-06-24].http://software.astrogrid.org/doc//p/cea/2009.1/cec/.

[6]SkyServer:application programmer’s interface [EB/OL].[2011-06-24].http://cas.sdss.org/dr7/en/help/docs/api.asp.

[7]The AstroGrid engine room [EB/OL].[2011-06-24].http://www.astrogrid.org/wiki/Home/AGEngineRoom.

[8]Common execution architecture(CEA) [EB/OL].[2011-06-24].http://astrogrid.ast.cam.ac.uk/architecture-itn6/document/cea.html.

[9]AstroGrid for deployers 2009 [EB/OL].[2011-06-24].http://deployer.astrogrid.org/RELEASE/architecture.html.

[10]Common execution architecture(CEA) [EB/OL].[2011-06-24].http://software.astrogrid.org/doc/p/cea/2009.1/.

[11]Common execution architecture design [EB/OL].[2011-06-24].http://www.astrogrid.org/maven/docs/HEAD/applications/design/CEADesign.html.

[12]Harrison P.A proposal for a common execution architecture version 1.2 [EB/OL].[2011-06-24].http://www.ivoa.net/Documents/Notes/CEA/CEADesignIVOANote-20050513.html.

[13]Paul Harrison.E.a.t.I.G.a.W.S.W.G.CEA application model:a model of an application in the common application architecture version 1.02007 [EB/OL].[2011-06-24].http://www.jb.man.ac.uk/~ pah/ivoa/CEAApplicationDM.html.

[14]邓玉坤,王锋,邓辉,等.天文轻量级科学工作流系统的实现 [J].天文研究与技术——国家天文台台刊,2010,7(4):338-343.Deng Yukun,Wang Feng,Deng Hui,et al.A lightweight scientific workflow system for astronomical data processing [J].Astronomical Research & Technology——Publications of National Astronomical Observatories of China,2010,7(4):338-343.

[15]李晓科,季凯帆,邓辉,等.面向Web服务的天文数据发布技术 [J].天文研究与技术——国家天文台台刊,2011,9(1):70-78.Li Xiaoke,Ji Kaifan,Deng Hui,et al.Astronomical data publishing techniques oriented toward the WEB SERVICE [J].Astronomical Research & Technology——Publications of National Astronomical Observatories of China,2011,9(1):70-78.

[16]CEA CEC web server[EB/OL].[2011-06-24].http://software.astrogrid.org/doc/p/cea/2009.1/cec/Application Configuration.html.

猜你喜欢

天文台调用天文
天文篇
天文台就该这么看
海尔与望远镜和天文台的故事
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
天文与地理
欧米茄超霸系列月相至臻天文台表
执守寂寞 静待花开——记中国科学院新疆天文台副台长加尔肯·叶生别克
利用RFC技术实现SAP系统接口通信
天文知识普及