汪晶晶,季凱帆,王 鋒,2,鄧 輝
(1.昆明理工大學(xué)云南省計算機技術(shù)應(yīng)用重點實驗室,云南 昆明 650051;2.中國科學(xué)院國家天文臺/云南天文臺,云南 昆明 650011)
近十年來,世界科技界將其在未來研究領(lǐng)域中的重大突破寄希望于以“下一代互聯(lián)網(wǎng)”為基礎(chǔ)的全球信息化科研環(huán)境的建立和科研項目的協(xié)同合作上。伴隨這種趨勢,天文學(xué)界興起了虛擬天文臺這一新概念[1]。2001年9月,英國科學(xué)家為構(gòu)建一個完整的虛擬天文臺基礎(chǔ)架構(gòu)提出了耗資一千萬英鎊的項目AstroGrid。該架構(gòu)充分利用已定義的公共接口,結(jié)合分析和可視化工具推進不同天文數(shù)據(jù)中心間的相互作用,同時也有助于不同天文數(shù)據(jù)中心向數(shù)據(jù)網(wǎng)格基礎(chǔ)架構(gòu)發(fā)布服務(wù)和數(shù)據(jù)[2]。可以說AstroGrid是進入虛擬天文臺的門戶平臺[3]。
作為AstroGrid的核心CEA是為適應(yīng)將應(yīng)用程序封裝為Web服務(wù)的需求而興起的新概念。CEA的主要設(shè)計目標(biāo)是:工作于Web服務(wù)框架;具有參數(shù)傳遞機制和Web接口;應(yīng)用網(wǎng)絡(luò)服務(wù)描述語言(Web Services Description Language,WSDL)片段描述應(yīng)用程序以及運用注冊表區(qū)別應(yīng)用程序[4]。
一方面,天文觀測數(shù)據(jù)近幾年來雪崩式的產(chǎn)生推動自動化工具在天文研究中的運用??缙脚_、開放、松耦合的Web服務(wù)很好地符合了天文數(shù)據(jù)發(fā)布的需求。將各種天文工具及資源發(fā)布成Web服務(wù),更有利于實現(xiàn)數(shù)據(jù)密集型的網(wǎng)絡(luò)化天文研究環(huán)境。依據(jù)與AstroGrid整合的應(yīng)用程序類型的不同,AstroGrid CEA支持對3種類型應(yīng)用程序的封裝,即:命令行應(yīng)用程序,基于超文本傳送協(xié)議(Hypertext Transport Protocol,HTTP)的Web應(yīng)用程序以及Java編寫的應(yīng)用程序[5],從而以服務(wù)的方式向用戶提供科學(xué)級的應(yīng)用。另一方面,國內(nèi)外目前主流的天文數(shù)據(jù)發(fā)布方式有Web頁面、客戶端和Web服務(wù),而在Web服務(wù)中大多數(shù)是表述性狀態(tài)轉(zhuǎn)移(Representational State Transfer,REST)風(fēng)格的Web服務(wù)[6]。但是REST風(fēng)格的Web服務(wù)相比簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)風(fēng)格的Web服務(wù)缺少了傳輸協(xié)議和服務(wù)的定義,因此不利于在自動化工具中實現(xiàn)機器自動識別并調(diào)用。AstroGrid CEA提供雙接口遠程調(diào)用已定義應(yīng)用程序,即SOAP接口(又稱公共執(zhí)行接口Common Execution Connector,CEA)和Universal Worker Service(UWS)REST接口。而UWS REST接口比SOAP更容易驅(qū)動和使用。因此,AstroGrid CEA同時支持兩種風(fēng)格Web服務(wù)的搭建,可使Web服務(wù)既符合國際虛擬天文臺聯(lián)盟IVOA的規(guī)范又可獲得在SOAP客戶端調(diào)用的便利。
因此,對AstroGrid CEA進行深入的分析和理解,對推動未來天文應(yīng)用軟件開發(fā)中標(biāo)準的遵循或兼容以及對天文數(shù)據(jù)和應(yīng)用的集成與無縫連接將具有明顯的價值。
圖1顯示了AstroGrid的整體結(jié)構(gòu)。從層次結(jié)構(gòu)來看,AstroGrid實現(xiàn)的功能不僅包括提供桌面應(yīng)用軟件的部分,還包括為了方便開發(fā)而封裝的底層結(jié)構(gòu),以及用于實現(xiàn)各種交互效果的頁面組件。
圖1 AstroGrid組件Fig.1 The components of the AstroGrid
Portal是AstroGrid的門戶,基于Web用戶界面與底層AstroGrid基礎(chǔ)架構(gòu)提供的服務(wù)相互作用,實現(xiàn)透明服務(wù)及應(yīng)用。
Community定義了各種用戶的識別標(biāo)準。它的管理功能包括創(chuàng)建賬戶和組,添加賬戶到組,刪除賬戶等。
Registry存儲大量的元數(shù)據(jù)資源。例如數(shù)據(jù)集、Web服務(wù)、服務(wù)和其他數(shù)據(jù)庫的注冊信息。
VOSpace定義了遠程存儲標(biāo)準,并為科學(xué)家提供數(shù)據(jù)存儲區(qū)。存儲信息包括文件、數(shù)據(jù)庫表和賬戶等。用戶無需指定物理地址即可進行訪問操作。
Workflow通過AstroGrid Python腳本提供簡單的自動化任務(wù)流程,而AstroGrid服務(wù)器端組件工作執(zhí)行服務(wù)(Job Execution Services,JES)作為工作流引擎,處理復(fù)雜的工作流。用戶可通過Workflow提供的工作執(zhí)行系統(tǒng)(Job Execution System,JES)接口提交、安排和監(jiān)測任務(wù),例如異步查詢目錄、運行應(yīng)用程序或搜索注冊表等。
DSA組件屬于虛擬天文臺協(xié)議與各種數(shù)據(jù)格式、數(shù)據(jù)庫之間的轉(zhuǎn)換插件。
作為AstroGrid核心技術(shù)架構(gòu)的CEA力圖構(gòu)建一套合理的接口和架構(gòu),對虛擬天文臺天文應(yīng)用執(zhí)行過程進行建模[7]。CEA提供標(biāo)準的應(yīng)用程序及其參數(shù)的接口和模型,擴展虛擬天文臺資源模式,規(guī)范化WSDL并提供更高級別的描述語言,并實現(xiàn)應(yīng)用程序的異步操作[8]。CEA保管描述系統(tǒng)中每個服務(wù)的特殊功能,并保留共同部分,從而Portal和JES系統(tǒng)中的工作流系統(tǒng)不需要針對不同的服務(wù)編寫特殊代碼就能驅(qū)動各種數(shù)據(jù)篩選服務(wù)和數(shù)據(jù)轉(zhuǎn)換服務(wù)[9]。CEA與AstroGrid工作流組件的結(jié)合實現(xiàn)了虛擬天文臺的分布式處理技術(shù)。
CEA希望實現(xiàn)的功能不僅包括提供應(yīng)用程序異步操作的部分,還包括為了方便開發(fā)而封裝的底層結(jié)構(gòu),包括:
CEA Client是為客戶提供CEA服務(wù)的客戶端,從而簡化與SOAP服務(wù)的溝通。
CEA server library組件提供了AstroGrid CEA公共庫,該公共庫包括大量CEA代碼,但是并沒提供代碼運行環(huán)境。
CEA common library包括服務(wù)器和客戶端常見的CEA類,該組件可與其他組件綁定創(chuàng)建服務(wù)。用戶可以基于CEA common library創(chuàng)建屬于自己且符合IVOA規(guī)范的Web服務(wù)。
CEA CEC(Common Execution Connector)Web服務(wù)器屬于需要實際部署的服務(wù)器組件。它提供了Java類應(yīng)用程序的公共執(zhí)行連接器Web服務(wù),使天文應(yīng)用程序適合于虛擬天文臺環(huán)境,從而用戶能通過AstroGrid門戶、桌面應(yīng)用程序和工作流系統(tǒng)調(diào)用應(yīng)用程序[10]。
CEA服務(wù)器和客戶端軟件把Web服務(wù)實現(xiàn)的細節(jié)隱藏于AstroGrid底層框架之下,例如Workflow[11]。CEA的重要特性是運用單個Web服務(wù)定義和應(yīng)用模型描述多類型的應(yīng)用程序。因此對公共執(zhí)行架構(gòu)的描述分為兩部分:
(1)應(yīng)用程序及其參數(shù)的數(shù)據(jù)模型的描述。該模型包含對虛擬天文臺注冊表內(nèi)應(yīng)用程序資源和調(diào)用應(yīng)用程序及其參數(shù)的描述[12];
(2)支持遠程調(diào)用符合CEA規(guī)范應(yīng)用程序的特定的Web接口描述。采用XML文檔描述應(yīng)用程序調(diào)用過程,運行應(yīng)用程序,并以異步、安全的方式返回結(jié)果[13]。
CEA Java-class-application server組件是在Tomcat中運行的CEC Web服務(wù)器組件的一部分,針對Java類應(yīng)用程序提供CEC Web服務(wù),簡稱JC-CEC。JC-CEC作為服務(wù)器組件,可在Servlet容器中或以獨立服務(wù)器的方式運行,此處采用生產(chǎn)環(huán)境中更常用的Servlet容器模式Tomcat。其中JC-CEC WAR文件的WEB-INF/lib目錄下包含可執(zhí)行的jar文件,有助于方便發(fā)布和執(zhí)行Java應(yīng)用程序,比如Axis.jar作為Web服務(wù)引擎及客戶端引擎。而jar文件提供了SOAPWrapper類和ExecutionManager類。SOAPWrapper類使得任何接受對象的操作可以用來操作基本類型,ExecutionManager類則用于執(zhí)行生成的公共入口點。如果虛擬天文臺用戶想運行選擇的Java應(yīng)用程序,應(yīng)該先安裝JC-CEC組件,并對JC-CEC進行相應(yīng)的配置,主要包括編輯Registry-template.xml和App-description.xml文件。接著獲取并安裝應(yīng)用程序,最后通過門戶、桌面應(yīng)用程序和工作系統(tǒng)進行調(diào)用。相關(guān)組件如圖2。
圖2 JC-CEC組件Fig.2 Components of the CEA Java Class Application
2002年以來,中國科學(xué)技術(shù)大學(xué)天體物理中心一直利用SDSS光譜數(shù)據(jù)研究星系和活動星系核,并在此過程中發(fā)展了一套完善的光譜數(shù)據(jù)處理與分析方法和程序,它能自動分析海量的星系和活動星系核光譜。主要功能包括兩方面:一是將寄主星系恒星光譜貢獻與活動星系核貢獻從光譜數(shù)據(jù)中分離(星核光譜分離);二是對各成份的譜線和連續(xù)譜做精確的分解和測量,目前計算結(jié)構(gòu)以FITS格式保存。經(jīng)過鄧玉坤等的努力,基于PHP網(wǎng)站采用將FITS圖像部分參數(shù)插入數(shù)據(jù)庫,同時在需要時對FITS文件實時處理作為數(shù)據(jù)源的方式實現(xiàn)了FITS格式的光譜數(shù)據(jù)發(fā)布及檢索[14]。天文學(xué)家可以通過定義圓形天區(qū)中心坐標(biāo)和搜索半徑確定天區(qū)范圍,創(chuàng)建并搜索給定天區(qū)中的天體目標(biāo)。李曉科等則采用面向Web服務(wù)的天文數(shù)據(jù)發(fā)布技術(shù)實現(xiàn)了同時支持SOAP風(fēng)格和REST風(fēng)格的錐型檢索服務(wù)[15]。在此基礎(chǔ)上利用AstroGrid CEA框架實現(xiàn)錐型檢索數(shù)據(jù)的發(fā)布,進而將數(shù)據(jù)融合到AstroGrid虛擬天文臺門戶中,供全世界天文學(xué)家使用。
整個搭建及調(diào)用過程包含以下步驟:(1)將JC-CEC部署到Tomcat容器中;(2)在Eclipse中編寫服務(wù)代碼及服務(wù)配置文件;(3)將應(yīng)用程序打包并部署到JC-CEC中;(4)在瀏覽器或客戶端調(diào)用服務(wù)。以下詳細介紹各步驟。
(1)安裝JC-CEC
安裝JC-CEC包括3個步驟:下載Tomcat安裝包及CEA Java-class-application server WAR文件;重命名WAR文件,保持與Web應(yīng)用程序上下文的名字相匹配,例如,astrogrid-cea-javaclass.war;將WAR文件放入Tomcat的webapps目錄下,即可自動解壓并啟動Web應(yīng)用程序。這樣就可以通過瀏覽器訪問JC-CEC的Web頁面。
(2)編寫服務(wù)代碼及服務(wù)配置文件
首先要根據(jù)光譜數(shù)據(jù)錐型檢索功能的流程編寫服務(wù)代碼。其流程包括服務(wù)端接收到OMElement類型參數(shù)后,分析XML文檔對象獲得傳入的赤經(jīng)/赤緯/半徑3個參數(shù);判斷參數(shù)是否有效。如果參數(shù)無效則按照IVOA規(guī)范返回包含錯誤消息的VOTable,如果有效則查詢數(shù)據(jù)庫并生成包含檢索結(jié)果的VOTable,最后將VOTable轉(zhuǎn)換為OMElement并返回。
完成服務(wù)代碼的編寫后,需要編寫服務(wù)的配置文件。服務(wù)配置文件可以描述服務(wù)的名稱、開放接口、接口使用的傳輸方式等。針對錐型檢索接口需把消息接收器配置為RawXMLINOutMessageReceiver,以便返回自定義格式的XML。
(3)打包并部署應(yīng)用程序
為了讓W(xué)eb應(yīng)用程序與JC-CEC協(xié)同工作,還需對JC-CEC進行相應(yīng)的配置。包括:
編輯JC-CEC環(huán)境,即應(yīng)用程序服務(wù)器的“環(huán)境項”,告知JC-CEC查找路徑。對于Tomcat 5.0容器而言,這就意味著需要編輯${CATALINA_HOME/conf/Catalina/localhost/astrogrid-cea-javaclass.xml文件。
編輯“registration-template”XML文檔。該文件中CeaApplicationType和CeaServiceType兩個資源文件提供CEC服務(wù)及其應(yīng)用程序的注冊信息。CEC讀取這個文件,并與本地配置信息結(jié)合產(chǎn)生注冊文件?!皉egistration-template”XML文檔包含<ApplicationDefinition>元數(shù)據(jù)和<VOResource>元數(shù)據(jù),例如<ApplicationDefinition>描述機器如何運行應(yīng)用程序,JC-CEC會根據(jù)本地配置文件向<ApplicationDefinition>添加相應(yīng)的信息,然后運用<VOResource>封裝應(yīng)用程序,發(fā)布<VOResource>。
重啟JC-CEC Web服務(wù)獲得修改的配置。也可重啟Tomcat,或使用Tomcat Manager Application重啟整個Web應(yīng)用程序。
通過Eclipse中菜單File-Export-JAR file將設(shè)計并實現(xiàn)的錐型檢索服務(wù)進行打包,然后選擇輸出到JC-CEC的WEB-INFlib目錄下即可由JC-CEC引擎自動完成部署服務(wù)。
為了讓載入的Java應(yīng)用程序適應(yīng)虛擬天文臺環(huán)境,還需要對JC-CEC配置文件WEB-INFweb.xml進行相應(yīng)修改,具體編輯內(nèi)容如下:
(4)調(diào)用服務(wù)
當(dāng)用戶執(zhí)行應(yīng)用程序調(diào)用操作,JC-CEC首先查找資源注冊表,通過分析<VOResource>元數(shù)據(jù)獲得<ApplicaitionDefinition>,依據(jù)<ApplicaitionDefinition>從用戶界面添加參數(shù),激活門戶 Portal的workflow executor,啟動SOAP引擎執(zhí)行調(diào)用操作,服務(wù)成功接收參數(shù)并查詢返回符合IVOA規(guī)范的錐型檢索規(guī)范的結(jié)果。JC-CEC服務(wù)器支持Universal Worker Service REST接口,即CEC頁面的側(cè)菜單項Test run of application[16]。該接口通過Web運行載入的應(yīng)用程序。所以在瀏覽器中直接輸入網(wǎng)址即可調(diào)用剛才搭建的錐型檢索服務(wù)。通過以上步驟即實現(xiàn)了運用CEA發(fā)布中國科學(xué)技術(shù)大學(xué)光譜處理數(shù)據(jù)。
本文對AstroGrid CEA的實現(xiàn)原理、基本架構(gòu)、接口分析和應(yīng)用模型進行了系統(tǒng)的調(diào)研,對如何運用CEA進行了分析,并在此基礎(chǔ)上,通過CEA實現(xiàn)了中國科學(xué)技術(shù)大學(xué)光譜處理數(shù)據(jù)的發(fā)布,完成了基于FITS格式的錐型檢索服務(wù),為未來天文應(yīng)用軟件開發(fā)中標(biāo)準的遵循或兼容以及對天文數(shù)據(jù)和應(yīng)用的集成與無縫連接打下了基礎(chǔ)。AstroGrid CEA架構(gòu)提供完整的Web服務(wù)異步環(huán)境中定義和執(zhí)行應(yīng)用程序方法,實現(xiàn)了AstroGrid工作流系統(tǒng),就這點而論,CEA擁有完善的框架及功能。然而,隨著AstroGrid演變,以及更科學(xué)的應(yīng)用移植到虛擬天文臺,需要對CEA組件進行評估、升級,對整體模型進行擴展,支持新的應(yīng)用程序直接使用CEA Web接口,從而滿足用戶需求,也為國內(nèi)天文應(yīng)用向AstroGrid的移植和應(yīng)用提供更為有力的支持。
[1]崔辰州,趙永恒.作為網(wǎng)絡(luò)時代天文研究的基礎(chǔ)平臺—虛擬天文臺方興未艾 [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]鄧玉坤,王鋒,鄧輝,等.天文輕量級科學(xué)工作流系統(tǒng)的實現(xiàn) [J].天文研究與技術(shù)——國家天文臺臺刊,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服務(wù)的天文數(shù)據(jù)發(fā)布技術(shù) [J].天文研究與技術(shù)——國家天文臺臺刊,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.