Post on 27-Mar-2015
transcript
September 7, 2005NVO Summer School 1
Building a SkyNode Server
Tom McGlynnNASA/GSFC
THE US NATIONAL VIRTUAL OBSERVATORY
September 7, 2005NVO Summer School 2
Why are SkyNodes hard?
• Inherently distributed:– SkyPortal-SkyNode-SkyRegistry
• Need to handle complex XML input– XML version of ADQL– Execution Plans
• Setting in Servlet container environment– Big learning curve in getting started
• Lack of defining documentation– IVOA document is primarily requirements– WSDL does not encode semantics
• If you use SQLServer take a long look at using the JHU implementation (also needs Mono or .Net)
September 7, 2005NVO Summer School 3
What do you need for a SkyNode?
• A database to query– In principle this doesn’t need to be
relational but in practice it will be!
• A Web site to place the SkyNode– But not behind firewall or NAT server
• Makes demoing in SS hard• NOAO accounts available for people who need
accounts
September 7, 2005NVO Summer School 4
How do SkyNodes Work
September 7, 2005NVO Summer School 5
What does a SkyNode need to do?
• Metadata:– WSDL request– Various configuration paramters
• Tables, columns, supported formats
• Simple Query• Cost estimate for Query
– Number of rows query would return
• Execution plan
September 7, 2005NVO Summer School 6
Handling an Execution plan
• Find the appropriate node• Are there further nodes?
– Relay the plan to that node– Ingest the results into a temporary table
• Run the query on the local node• Format the results in a VOTable
September 7, 2005NVO Summer School 7
How do we do the query?
• Translate ADQL/x to ADQL/s• Transform REGION (see HTML)• Transform XMATCH (see HTML)• Handle local database peculiarities
– TOP– Creating temporary tables– Handling of Dec columns
September 7, 2005NVO Summer School 8
FullSkyNode Library
• Replaces earlier summer school libraries– Not yet rock solid but working on it...
• Runs as CGI– Do not need AXIS or TOMCAT
• Uses Java JDBC library to communicate with database.
• Uses extremely simplified VOTable parsing and generation.
• Uses built-in XSLT capabilities in Java 1.5 to generate ADQL string
September 7, 2005NVO Summer School 9
Additional Prerequisites
• Uses Perl wrapper script• Table is assumed to have RA and Dec
columns in decimal degrees.
September 7, 2005NVO Summer School 10
Status
• Supports all SkyNode functionality except getAvailability metafunction.
• Tested on Sybase and MySQL databases.• Supports REGION and XMATCH• Easily configured.• Fails poorly – errors not well propogated
to SkyNode.• Not all database dependencies are likely
uncovered.
September 7, 2005NVO Summer School 11
Configuration: vo.settings
TargetNode=TSTHSRC3TableName=spocs,spocs_ext note no space.
tabledesc=SPOCS Table, SPOCS Extension tableSize=-1,-1 jdbcURL=jdbc:mysql://localhost/SPOCSposituncert=10 tableweight=1.e9jdbcName=skynodejdbcPwd=nvo wsdlFile=skynode.wsdl
September 7, 2005NVO Summer School 12
What’s next
• Further enchancements and robustifications.
• Easily modified to handle tables with only Galactic coordinates or other formats
• Easy to disable functionality if you don’t want to be full sky node.
• Should be able to support developing SkyNodes in student projects.