Title: Building a SkyNode Server
1THE US NATIONAL VIRTUAL OBSERVATORY
Building a SkyNode Server
Tom McGlynn NASA/GSFC
2Why 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)
3What do you need for a SkyNode?
- A database to query
- In principle this doesnt 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
4How do SkyNodes Work
5What 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
6Handling 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
7How 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
8FullSkyNode 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
9Additional Prerequisites
- Uses Perl wrapper script
- Table is assumed to have RA and Dec columns in
decimal degrees.
10Status
- 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.
11Configuration vo.settings
TargetNodeTSTHSRC3 TableNamespocs,spocs_ext
note no space. tabledescSPOCS Table, SPOCS
Extension tableSize-1,-1 jdbcURLjdbcmysql//l
ocalhost/SPOCS posituncert10 tableweight1.e9 jd
bcNameskynode jdbcPwdnvo wsdlFileskynode.wsdl
12Whats next
- Further enchancements and robustifications.
- Easily modified to handle tables with only
Galactic coordinates or other formats - Easy to disable functionality if you dont want
to be full sky node. - Should be able to support developing SkyNodes in
student projects.