NVOSS 2006 Course Abstracts

Introduction (Wednesday, McGlynn)

The overall purpose of the Virtual Observatory and the Summer School will be discussed. Students and faculty will be introduced along with the Summer School Twiki site. The organization of the Summer School and general logistics will be reviewed.

Software library installation and overview (Wednesday, Graham)

This presents an overview of the summer school software package and affords an opportunity for students to ensure that all the software they require for the summer school is correctly installed. Faculty will be on hand to provide support.

Introduction to SQL (Wednesday, McGlynn)

This presentation starts with a brief description of relational databases. It continues with an overview of the basic Structured Query Language (SQL) commands for creating, populating and querying databases. Users will be shown how to use SQL using a local MySQL? database, and then will see how OpenSkyQuery uses SQL to query large astronomical databases.

Introduction to XML (Wednesday, Greene)

This is an introduction to the EXtensible Markup Language (XML) as a common tool for data manipulation and transmission. We will go over the basic description formats of XML documents, explain how to describe your own data types, and provide high level examples of XML used throughout the VO framework.

Development Languages: Java, C, C# (Wednesday, Part 1, Plante)

The purpose of this session is to give you an idea of what VO development is like in compiled languages, focusing on three languages for which VO libraries are commonly available. Beginning with Java, we will provide you with just enough familiarity to allow you to hack and use Java Summer School tools. We'll highlight some of the important standard Java libraries and commonly-used utility classes. We will show you how tweak, compile, package, and run Java programs. We'll also take a brief look at C and C++ to illustrate how to make use of VO libraries.

Development Languages: Java, C, C# (Wednesday, Part 2, Greene)

This tutorial will introduce the C# programming language. The two primary development environments will be presented, Microsoft .NET and Mono open source project, and I will explain some of the fundamental differences and trends. Using Mono, NVOSS examples will be provided which demonstrate how to write and execute the classic "Hello World" program, a query program to a local database connection, and a web service consumer.

Advanced XML Technologies: Schema, XPath, XQuery, and XSL (Thursday, Plante)

In this session, we will give an overview of four important XML technologies used in the VO: XML Schema, XPath, XQuery, and the XML Stylesheet Language. We will show examples of each technology in action, describe how it is used in the VO, highlight the major components, provide you with tips on how interpret samples using these techonologies. The aim is not to make you proficient enough to compose your own uses from scratch, but rather to recognize what existing samples are doing. In some cases, you may be able to tweak an existing use to your own purposes; in others, it may help you debug an application that uses the XML technology.

VOTables (Thursday, Fitzpatrick)

This session will provide an overview of the VOTable document structure, the relationship between VOTable and other VO standards such as UCD and community standards such as FITS, use of VOTable in data access protocols (e.g. SIA, Cone, SSA), software libraries for reading/writing/transforming files and proposed extensions to the protocol. Students will learn how VOTables may be generated by data providers or consumed by client applications and services, and what tools currently exist to enable either.

Accessing Web Services (Thursday, Graham)

This is an introduction to web services focusing on the client side. We will define what a web service is and consider the two different styles that are used today: RESTful and SOAP. We will review the different approaches used to access these including the use of client middleware technologies such as AJAX and mashups.

Building Web Services (Thursday, Graham)

This is an introduction to web services focusing on the server side. We will consider how to formally describe a web service using the Web Services Description Language (WSDL). We will discuss how advanced features such as security, state, and asynchrony can be provided.

Python Mini-Tutorial (Thursday, Kwok)

This mini-tutorial presents the basic language syntax of Python and its programming style compared with C and Java. Examples from a simple loop to a web service client will be presented.

IDL Mini-Tutorial (Thursday, Miller)

In this mini-tutorial session, we briefly describe how an astronomer can use IDL in a variety research environments, from image analysis to theoretical modelling, to phenomenological studies.

IRAF Mini-Tutorial (Thursday, Fitzpatrick)

This mini-tutorial will introduce the IRAF scripting language and the many applications available in the core system and external packages. Along with an overview of the science capabilities of the system, we will briefly cover how tasks may be used on both the client and server side of VO services and in the student projects.

Grid Computing (Thursday, Williams)

This talk will define various senses of the word "Grid", and introduce the Teragrid, which is a NSF-funded cyberinfrastructure linking many powerful computers, storage, and networking resources. Those wishing to utilize Teragrid can get an account here.

Overview of NVO Protocols and Standards (Friday, McGlynn)

This talk is a short review giving the big picture of the of the protocols and standards that will be discussed later in the Summer School. Each standard and protocol will be described briefly along with how they interact.

Science Applications (1): Discovery and Exploration Tools and Libraries (Friday, Kwok)

This presentation introduces three VO applications: NVO-Registry, DataScope and Coverage Maps (Sky Stats). The Registry is a repository of resources describing VO services and their providers. It is the starting point for searching for VO services. DataScope is a web application that submits parallel queries for a given object to a multitude of VO-services and summarizes the results in a concise way. Similarly, Coverage Maps is another web application that manages simultaneous queries to various VO-Services.

Exercise 1: Finding Resources in the VO (Friday, Greene)

This exercise will be a tour of how to use the VO registries to find what you are looking for. We will explore IVOA registry space and look at some basic differences in the interface capabilities for the discovery and selection of astronomical resources.

Publishing Data to VO via Registries (Friday, Plante)

In this session we'll explore what it means to publish data to the VO. Central to the publishing process is the VO Registry that contains descriptions of useful things in the VO. We'll look at VO Registries, the descriptions they hold, how to create new descriptions and how to get them out again.

Exercise 2: Publish a service in the VO (Friday, Plante)

We'll visit a VO Registry and register our first resource and watch its description propogate through the VO.

Data Access Layer Clients Part 1 (Friday, Tody)

This session provides a brief review of the issues involved with client-side data analysis with the VO, the different approaches one can take to client-side software, and then introduces the VOClient software. VOClient is a new package for client-side data analysis with the VO, which provides equivalent functionality in various popular languages and application environments. Provided are a Java daemon implementing the client side of the major VO services, plus client APIs for the major development languages and environments (currently, C/C++, Java, IRAF, and FORTRAN, with partial support for Python, Perl, PHP, Tcl, and Ruby). Interfaces to the Registry, the DAL services, and the Sesame name resolver are included.

Data Access Layer Clients Part 2 (Friday, Kwok)

This presentation introduces the Python Client VO-library, which contains Python classes for accessing VO-Registry, Sesame name resolver, Cone Search, SIAP, and SkyNode/SkyPortal. Sample code showing how to use these classes is also presented. The PHP Client VO-library is also briefly presented. The PHP version is more suitable for web applications, while the Python version is more appropriate for stand-alone applications.

Data Access Layer Servers (Friday, Tody)

This session will take a more careful look at the different DAL (data access layer) services, and the range of capabilities which a given service instance may choose to implement. The various approaches to implementing DAL services will then be reviewed, with a focus on the LAMP approach (Linux, Apache/Java, MySQL? , Python/Perl/PHP).

Exercise 3: Build a Cone Search Client (Friday, Tody)

This sesssion will illustrate use of the VOClient package to build a simple cone search client application in several popular languages. All the data access layer APIs are similar, so building an application which uses SIAP or any other DAL interface is similar to what one does for a simple cone search.

Exercise 4: Build a cone search service using local database (Friday, Kent)

In this exercise, a simple ConeSearch service (spec) will be setup and configured locally. Participants will understand the basics of the VO ConeSearch protocol and how to use it to query a database on their local laptops and return a XML/VOTable file based on an input of RA/DEC coordinates and a search radius. The resulting service will be tested with a verification service.

Understanding VO metadata: Registry and UCDs (Friday, Kent)

Summer school participants will gain an understanding of how the registry is organized, and how Unified Content Descriptors (UCDs) can be effectively utilized to maximize both data organization and access. Available tools will be shown that browse the UCD tree and interpret available observations. Understanding the registry structure will allow participants to build their own registry clients in later exercises and publish their own datasets and services.

Science Applications 2: Web-based Analysis (Saturday, Williams)

Using the applications and tools from the NVO front page, we will find data using the registry, investigate interesting objects through panchromatic images (Datascope), convert image to catalog (Wesix), and investigate interesting object classes through federated databases (Openskyquery) and scatter plots (Topcat).

Exercise 6: Running a Grid application (Saturday, Williams)

This talk will be an introduction to the Nesssi system, that allows services to run on massive supercomputers, and includes authentication through the NVO Certificate Authority, and ways to submit and monitor asynchronous services (i.e. batch jobs).

Exercise 7: Correlating Catalogs on the Web (Saturday, Miller)

In this exercise, we will show how a user supplied list of positions can be correlated against existing and registered SkyNodes using the SkyPortal? .

Science Talk: Using the VO to Study Galaxies in Clusters (Saturday, Miller)

In this talk, I will summarize our current knowledge of the properties of galaxies within clusters. This research topic is ideally suited to VO-style research, as it incorporates multi-archive (and multi-wavelength) catalog and imaging data. I will utilize a sample of brightest cluster galaxies from the Sloan Digital Sky Survey C4 Cluster Catalog, as well as VO tools and services, to access and analyze these data. Besides the science summary, I will present and discuss a code outline (based in IDL) to conduct this research.

ADQL (Saturday, Plante, 45 minutes)

In this session, we will focus on what ADQL is and how it is used in the VO. We will first look at ADQL from the user's perspective in the form of ADQL/s. We will compose a few new queries using the SkyPortal interface. We will also look at it from the developer's perspective in the form of ADQL/x. We will show examples of existing software that can be used to process ADQL, and we will highlight the various ways ADQL is used in the VO.

Registry Clients (Saturday, Plante and Greene)

In this session, we'll how to query the Registry from inside a program. We will focus on a few libraries, including a Java library that takes advantage of the standard search interface that supports both simple keyword searching as well as advanced queries that constrain specific resource metadata. We'll also demonstrate how to pull information out of the returned descriptions.

Building SkyNode Servers (Saturday, McGlynn? )

The goals and prerequisites for building a SkyNode will be discussed. The SkyNode server software provided in the Summer School package will be discussed including how this software can be customized to particular user needs. Efficiency issues in building SkyNodes, and how SkyNodes are made visible to the outside world will also be covered.

Exercies 8: Setting Up a Skynode (Saturday, Greene)

Users will get to set up a SkyNode to talk to the SPOCS database set up in the Introduction to SQL. This database will be cross-correlated with external databases to find erroneous data in the catalog.

Using an Existing Environment within the VO: IDL (Monday, Miller)

In this lesson, we discuss how astronomers can integrate VO services into their day-to-day research activities using IDL. We will include libraries which contain VOTable Readers, importing cone search and SIAP querie results directly into IDL structures, as well as SOAP-based calls using the IDL Java-bridge to access the Registry, SkyPortal? , WESIX, etc.

VOEvent (Monday, Williams)

This will be an introduction to the VOEvent infrastructure, for communicating observations of immediate astronomical events, with the intention of stimulating rapid followup from robotic telescopes. The information packet itself will be described, as well as the emerging network that allows authoring, publication, subscription, and global identifiers for VOEvents.

Science Applications 3: Local Analysis (Monday, Kent)

Students will use results from resources such as the Registry and ConeSearch to access astronomcal data on galaxies including magnitudes and HI widths and analyze it using local tools. Participants will be able to download relevant data and construct a Tully-Fisher relation from data queries.

Combining VO elements to build integrated services (Monday, Kent)

During this talk, different VO services will be combined to gather data from multiple sources. Given a target list with coordinates and/or object names, users will utilize the registry, ConeSearch, SIAP, and other relevant services for data discovery. Data from different catalogs will be collected for local analysis.

Using an Existing Environment in the VO: IRAF (Monday, Fitzpatrick)

Incorporating VO capabilities into legacy software systems, and similarly making those systems available as VO services, is a igh-priority science capability in the current stage of NVO development. This class will touch on both the client-side integration issues (e.g. data/service access, use of the Registry, VOTable handling) as well as the server-side deployment of legacy software in the VO (e.g. as Web and Grid services). A brief overview of the many libraries and toolkits available for a variety of programming environments which can be used as part of an integration plan will also be presented.

Exercise 10: Making a Tool VO-Aware (Monday, Fitzpatrick)

In this exercise students will be introduced to the VOClient application library which provides client-side access to VO data services and the Registry using a uniform interface across a wide variety of languages, most importantly for languages commonly used by legacy software. A demonstration task will be developed during the exercise, students may choose to implement their exercise in a more familiar language.

Managing data in the VO (Monday, Graham)

This is an introduction to VOSpace, the new VO interface to distributed storage. We will examine the key features of the current specification and discuss future functionality such as data federation.

Project team selection (Monday)

Leaders of potential project teams will get a chance to describe their project and recruit team members. We strongly recommend that all students participate in a project. Teams will have two days to work on their projects before presenting them to the school.
Topic revision: r17 - 06 Sep 2006 - 21:50:02 - DougTody
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback