Software Development for Virtual Observatories



Similar documents
Lecture 5b: Data Mining. Peter Wheatley

The Astronomical Data Warehouse

Constructing the Subaru Advanced Data and Analysis Service on VO

Getting started with OWASP WebGoat 4.0 and SOAPUI.

How To Understand And Understand The Science Of Astronomy

See the Developer s Getting Started Guide for an introduction to My Docs Online Secure File Delivery and how to use it programmatically.

Data Lab System Architecture

Continuous Integration Part 2

A Survey Study on Monitoring Service for Grid

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

4D Deployment Options for Wide Area Networks

Oracle WebLogic Server 11g: Administration Essentials

How To Understand The Architecture Of An Ulteo Virtual Desktop Server Farm

FileMaker Server 9. Custom Web Publishing with PHP

Session 12 Evolving IT Architectures: From Mainframes to Client-Server to Network Computing

An Overview of Java. overview-1

Middleware Lou Somers

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

Networks and Services

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

Budget Event Management Design Document

Monitor Your Key Performance Indicators using WSO2 Business Activity Monitor

VisIVO, an open source, interoperable visualization tool for the Virtual Observatory

Introduction to HP ArcSight ESM Web Services APIs

Organization of VizieR's Catalogs Archival

An IDL for Web Services

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

API documentation - 1 -

AD207: Advances in Data Integration with Lotus Enterprise Integrator for Domino 6.5. Sarah Boucher, Manager Enterprise Integration Development

A Web services solution for Work Management Operations. Venu Kanaparthy Dr. Charles O Hara, Ph. D. Abstract

Astronomical Instruments Software System Design

Introduction Web Portal Main Page Group Management Create group Modify Group Member List... 5

Setting Up ALERE with Client/Server Data

Web Services API Developer Guide

5 HDFS - Hadoop Distributed System

How To Use Ibm Tivoli Composite Application Manager For Response Time Tracking

Monitoring Software Services registered with science.canarie.ca

Create!form Folder Monitor. Technical Note April 1, 2008

Creating Web Services in NetBeans

An Oracle White Paper May Creating Custom PDF Reports with Oracle Application Express and the APEX Listener

e-science Technologies in Synchrotron Radiation Beamline - Remote Access and Automation (A Case Study for High Throughput Protein Crystallography)

A Brief Overview. Delivering Windows Azure Services on Windows Server. Enabling Service Providers

Working With Your FTP Site

THE CCLRC DATA PORTAL

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Web Application Vulnerability Testing with Nessus

Application Note. Cacti monitoring. Document version: v1.0 Last update: 8th November 2013

Automate Your BI Administration to Save Millions with Command Manager and System Manager

BIRT Document Transform

Adobe Systems Incorporated

FAQs. This material is built based on. Lambda Architecture. Scaling with a queue. 8/27/2015 Sangmi Pallickara

Anwendungsintegration und Workflows mit UNICORE 6

WIRIS quizzes web services Getting started with PHP and Java

Handle Tool. User Manual

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

WWW. World Wide Web Aka The Internet. dr. C. P. J. Koymans. Informatics Institute Universiteit van Amsterdam. November 30, 2007

Intruduction to Groovy & Grails programming languages beyond Java

DiskPulse DISK CHANGE MONITOR

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

Moving beyond hardware

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Security System for Patient DB

MIGRATING DESKTOP AND ROAMING ACCESS. Migrating Desktop and Roaming Access Whitepaper

Java Web Services SDK

Multidimensional Data in the Virtual Observatory

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

Service Oriented Architectures

Hadoop Tutorial. General Instructions

MA-WA1920: Enterprise iphone and ipad Programming

U.S. Department of Health and Human Services (HHS) The Office of the National Coordinator for Health Information Technology (ONC)

REST API Development. B. Mason Netapp E-Series

Tivoli Endpoint Manager BigFix Dashboard

VisIVO, a VO-Enabled tool for Scientific Visualization and Data Analysis: Overview and Demo

DATA MINING TOOL FOR INTEGRATED COMPLAINT MANAGEMENT SYSTEM WEKA 3.6.7

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Using a Remote SQL Server Best Practices

Managing Large Imagery Databases via the Web

Visual WebGui for ASP.NET Ajax (and other Ajax) Web Developers Learn what makes Visual WebGui not just another Ajax framework

THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY

WildFire Cloud File Analysis

CHAPTER 10: WEB SERVICES

Japan Communication India Skill Development Center

Alfresco Enterprise on AWS: Reference Architecture

Secrets of YARN Application Development

CA APM Cloud Monitor. Scripting Guide. Release 8.2

Exploiting the Web with Tivoli Storage Manager

Pentaho Reporting Overview

Transcription:

Software Development for Virtual Observatories BRAVO Workshop February 2007 Rafael Santos 1

Warning! This presentation is biased. I'll talk about VO software development, including some under the hood examples. Some ideas we're playing with. Some considerations for developers who would like to play with VO software development. I'll not talk about VO for astronomers/astrophysics! Some infrastructure issues (clusters, grid, databases, networks, operating systems, etc). 2

Introduction What are Virtual Observatories (VOs)? What can we do with Virtual Observatories? Relevant issues for software developers: What should I know before starting software development for the VO? Which tools can we use to access VO data? How can we develop new VO tools? Development: Which are the real VO development needs? Research: Which are the challenges posed by VOs development? 3

What are VOs? From http://www.euro vo.org/: A virtual observatory (VO) is a collection of interoperating data archives and software tools that utilise the Internet to form a scientific research environment in which astronomical research programs can be conducted. In much the same way as a real observatory consists of telescopes, each with a collection of unique astronomical instruments, the VO consists of a collection of data centres each with unique collections of astronomical data, software systems and processing capabilities. 4

Why VOs? Suppose we have a survey with associated data that could be useful for the astrophysics/astronomy community. It is quite simple to put this data on the WWW. Does it really allows others to use the data for further research? In other words, is the data really ready to use? We could use data exchange formats and protocols that allow other software to use them. Other users could then acquire new data, do new experiments, etc., possibly making their results ready for use by others. 5

Simplified VO Architecture Portals Tools Interfaces Registry Services Data Services Compute Services HTTP Services SOAP Services Grid Services Data Centers Grid Middleware Databases, Persistency, Replication Adapted from http://www.ivoa.net/documents/notes/ivoarch/ivoarch-20040615.html 6

Simplified VO Architecture Portals Tools Interfaces Data Services A simple data server Cool data analysis algorithms Shakespeare's Monkeys Our Data 7

In a VO...... as in the Web, the interface must be useful for humans, but also readable by computers (read XML), so we can automate some tasks. Internally the data format, storage methods, algorithms, languages, etc. may or not be standardized...... although CS people must consider building on the top of what is already done and issues like portability, replicability, readability, etc. 8

Why bother with further VO software development? Isn't it already done? Biology easily has 500 years of exciting problems to work on. Donald E. Knuth. More knowledge about biology leads to more questions and then to even more knowledge. And astronomy/astrophysics? My guess: besides the same knowledge questions knowledge cycle, we will face an enormous amount of new raw data (new surveys.) e.g. Large Synoptic Survey Telescope: 30 petabytes of data in five years: a pile of DVDs almost 70km high! 9

Things we're working on DPOSS VO/CFVO (under construction). Some 1760 FITS images. Basic access to FITS headers, thumbnails. Some integration with VO tools. Not really browsable (yet). 10

Things we're working on Soon: VO Compliance 11

Things we're working on GUI (Web) for 2DPHOT User can upload his/her images Parameter/Results Database 12

Things we're working on GUI (Web) for 2DPHOT Parameter/Results Database 13

Things we're working on The Pocket VO a simple tool for educational purposes. Developed with Jordan Raddick (JHU), Iran Fernandes (LNA) at the NVO Summer School 2006. Requirements: Should be portable and easily replicated. Should be easily modifiable. As long as the developers know something about the APIs. We must do our part simple code, no special frameworks, just a JEE container, any graphical WWW client, only lacks comments/documentation. Just for kicks, Pocket Pocket VO. 14

Things we're working on Try it yourself! http://www.lac.inpe.br/pocket/portable.jsp (depends on other servers, e.g. Skyview). 15

Pocket VO: Under the Hood package vo; public class SesameDemo { public static void main(string[] args) { // locator creation SesameService locator = new SesameServiceLocator(); // Sesame object Sesame myv = locator.getsesame(); // Resolves the name for the object using a plain text format String result = myv.sesame("m89", "I"); System.out.println(result); } # NGC 4321 #Q01013 } #=Simbad: 1 %C AGN %J 185.7289583 +15.8220833 (6) = 12 22 54.950 +15 49 19.50 %J.E [1799.00 1700.00 90] D 1999ApJS..125..409C %V z +.005250 D [.000017] 2002LEDA...P... %I Z 99-30 #B 984 #---ServerTime(ms): 45 16

Pocket VO: Under the Hood public class SIAPDemo { public static void main(string[] args) { double ra = 188.9166667; double dec = 12.5563611; double size = 0.5; String imname = "/tmp/image.gif"; // Create a connection with the SIAP service. SiapConnection siap = new SiapConnection("http://casjobs.sdss.org/vo/DR5SIAP/SIAP.asmx/getSiapInfo? + &FORMAT=image/jpeg&BANDPASS=*&"); SiapQuery query = siap.getsiapquery(ra,dec,size); // Form the query. query.addparameter("opt", "G"); // Enable the graphics overlay (SDSS specific parameter). QueryResponse qr = query.execute(); // Execute the query and fetch results. boolean path = false; if (qr.getrecordcount() > 0) // Did we get results? { QueryRecord r = qr.getrecord(0); path = r.getdataset(imname); // Download the image (may be jpeg!). } if (!path) // Maybe Sloan does not have it, should we ask DSS? { siap = new SiapConnection("http://skyview.gsfc.nasa.gov/cgi-bin/vo/sia.pl? + digitized&"); query = siap.getsiapquery(ra,dec,size,"image/gif"); // Form the query. qr = query.execute(); if (qr.getrecordcount() > 0) { QueryRecord r = qr.getrecord(0); path = r.getdataset(imname); // Download the image. } } } } 17

Pocket VO: Under the Hood OK, I lied. The final code could be really simple...... The Sesame demo has just a try/catch block, some imports. There are several layers of software that allows the development of simple applications. Some of those layers are quite complex: One must understand the architecture behind the layers. One must understand the data and services' formats. 18

Another example: wrapping cone searches public class ConeSearchExample // Shamelessly adapted from a NVOSS example { public static void main(string[] args) throws Exception { String coneurl="http://chart.stsci.edu/gscvo/gsc22vo.jsp?"; double ra = 180.7900833; double dec = 44.5313333; double sr = 0.25; URL conesearch = new URL(coneUrl+"RA="+ra+"&DEC="+dec+"&SR="+sr); VOTWrap.VOTable vot = VOTWrap.createVOTable(coneSearch.openStream()); // Assume one resource and one table. VOTWrap.Resource res = vot.getresource(0); VOTWrap.Table tab = res.gettable(0); // Which fields are ID, RA and Dec? int fid = -1; int fra = -1; int fdec = -1; for (int f=0;f<tab.getfieldcount();f++) { VOTWrap.Field field = tab.getfield(f); if (field.getid().equalsignorecase("id")) fid = f; if (field.getid().equalsignorecase("ra")) fra = f; if (field.getid().equalsignorecase("dec")) fdec = f; } // Get the RA and DEC for the objects. for(int r=0;r<tab.gettabledata().gettrcount();r++) { VOTWrap.TR row = tab.gettabledata().gettr(r); VOTWrap.TD td_id = row.gettd(fid); VOTWrap.TD td_ra = row.gettd(fra); VOTWrap.TD td_dec = row.gettd(fdec); System.out.println((r+1)+": ID:"+td_id.getPCDATA()+" RA:"+td_RA.getPCDATA()+ " Dec:"+td_Dec.getPCDATA()); } } } 19

Things we're working on A Technical Portal for education purposes. Aim: be sort of like the http://www.us vo.org/shortcuts/ page for developers. Must be based on free, open CMS/e learning technologies so we can add some nifty tricks. It's a quest! It will serve other purposes at INPE. Right now we're suffering from the NIH syndrome. 20

So you want to be a VO software developer... Bias warning! Which languages and tools? Java. Open, simple, free, runs on all major OSs. Several APIs for different VO related tasks (databases, image processing, concurrent processing, remote computing, AI, data mining, number crunching, etc). Support for both WWW based interfaces and rich client interfaces. Rich client applications run on any OS via WWW (applets). Same language (and some APIs) for desktop and web applications. Other languages offer some of those capabilities. 21

So you want to be a VO software developer... VO APIs are also available in Python, C#. More specific environments/languages: IDL, IRAF, PYRAF. I'm a big fan of UNIX based systems: Several free Linux flavors. Sysadmin scripts in several languages! Free (libre) databases, languages, servers, utilities, etc. SQL, XML knowledge useful. VOTable essential! 22

So you want to be a VO software developer... Careful consideration of platforms and languages, even with separation between interfaces and implementations. In other words, avoid closed software, special requirements, human centric, sysadmin depending systems. Consider system replicability, human readability. Of course, it all depends on the tool being created. The major challenge for CS people is... 23

Final Considerations 24

Thanks! Questions? 25