Workbench & ACR
- A VO Client Implementation
Noel Winstanley
AstroGrid, Jodrell Bank
nw@jb.man.ac.uk

A PPARC funded project

What is it?

ACR (Astro Client Runtime) is a desktop service that makes it simple for other programs to access VO services.

Workbench is a suite of GUI applications built upon the ACR

http://software.astrogrid.org/userdocs/workbench.html

Single-click launch using Java WebStart

choose 'Launch Workbench (Stable Version)'

try it now :)

Background: Java WebStart

Available for Windows, Linux, Solaris, Mac

The application is downloaded the first time the webstart link is clicked

May take a little time over wireless.

Cached so that is starts instantly the next time.

When new features / bug fixes are released, the cached version of the application is updated

Users always get the most up-to-date version, with no maintenance worries.

Webstart handles native libs, different OS, desktop integration.

Different parts of the application are signed by different organizations – users need to accept the trust dialogs

Workbench

Main Menu Window

Launch GUI applications

Exposes primitive operations of the ACR

Workflow Editor

Application Launcher

Myspace Browser

ACR – Purpose

A uniform way to access VO components..

remote: web services – SOAP, REST, etc

client side: GUI components; dialogues; helper libraries

... from any programming, scripting or shell language

... on any platform

Aside: Ways to Consume VO Services

Use published WSDL to generate own SOAP client, call services directly

need to understand how VO services interrelate

security – needs advanced SOAP handling.

Use existing (AG) delegate libraries

Java-only

Maybe not the cleanest / most reusable

Use ACR

Clean Facade Interface to AstroGrid (and soon all VO)

Provides extra benefits

more info: http://software.astrogrid.org/developerdocs/

Astro Client Runtime

Application that runs on the user's desktop

accepts requests from other desktop applications

processes requests by calling VO Services using existing client libraries.

Advantages

Shared state

Single sign-on, configuration, preferences

Common cache

optimizes registry resolving, myspace filestructures

Part of the Workbench – painless deployment & upgrade

uniform API accessible to all programming languages

easily extensible with new interfaces - PLASTIC

ACR Schematic

Registry

VOSpace

Community

CEA

CDS

JES

VOStore

IVOA..

<- Desktop

Network ->

ACR

HTML

GUI

XMLRPC

JavaRMI

Browser

Scripts

Apps

Users

UI

Dialogs

System

AstroGrid

IVOA

CDS

Access Methods

JavaRMI

Java-only inter-process communication

strongly typed

requires a minimal set of libs.

XMLRPC

Forerunner of SOAP: http://www.xmlrpc.com/

simpler types than SOAP

implementations for a wide range of languages

HTTP-Get

rough-n-ready procedure call

supported by every (useful) language

Functionality

ACR provides a large suite of components; each has procedures that can be called via any of the access methods

related components organized into modules.

api documentation with examples and recipies

follow link from http://software.astrogrid.org/developerdocs/

astrogrid

interface to AstroGrid system

handles authentication, service resolution, etc.

registry – query, xquery, resolve service

myspace – list, move, copy, create, upload, download

applications – (CEA) list, build, execute, query, monitor, control

workflows – (JES) build, execute, monitor, control

Background: Making Work Remote..

CEA - Common Execution Architecture

Uniform method of registering and deploying remote applications and dataset access.

Application parameters can be given inline or as references to external resources (http / ftp / myspace)

CEA applications can be executed directly, but are also the building blocks of Workflows

distributed execution of a series of CEA applications.

JES – Job Execution System

service that schedules & executes Workflow Documents

decides on which CEA servers to place application executions.

records log & results of application execution

evaluates workflow control structures

executes workflow scripts.

more modules...

dialogs - user interface components that prompt user for input

myspace / file / url chooser – 'file save dialogue'

registry resource chooser – 'registry google'

CEA application parameter editor

ADQL query editor

ui – programming interface to workbench GUI

and more modules...

cds

simple interface to existing CDS web services:

UCD resolver/ information

Simbad name resolver

Vizier search

system

configuration – persistent store for settings

browser – control system web browser

help viewer

ivoa

an interface to ivoa standard services.

work in progress

translators from ADQL/s <-> ADQL/x

components that simplify calling SIAP, SSAP, Cone, etc will be added in next month

afterwards will add a NVO module providing access to NVO-specific services.

SkyNode?

Datascope?

Uses of the ACR

VO Commandline

unix-ey small composable commandline programs.

vols, voget, voput, reg-query, ls-jobs ...

implemented as Python scripts calling the ACR

Python workflows

script contains control flow

performs work by querying DSA servers and running CEA applications via ACR

more interactive / iterative development than batch JES workflows

same could be done in Perl / IDL / ...

Other projects using ACR

Aladin – Thomas Boch

MySpace, query registry, CEA X-match app

Java/RMI

Topcat – Mark Taylor

MySpace

Java/XMLRPC

VOTech – Richard Holbrey & John Taylor

connecting xmdv_light to MySpace

Java/RMI, C++/XMLRPC

AstroNeural – Giuseppe Longo et al

upcoming

Testimonial from Thomas :)

Future Plans

Collaborate! (preferably somewhere warm)

Add missing service types

SIAP, SSAP, SkyNode

Track developing standards (VOStore, SSO)

Get ACR interfaces standardized / approved by IVOA

mechanism?

Help tool authors / scripty users get started.

Refine Workbench applications

References

Homepage & WebStart link: http://software.astrogrid.org/userdocs/workbench.html

Developer Documentation: http://software.astrogrid.org/developerdocs/

API documentation

Getting started instructions for various access methods

Code examples in Java, C++, Python, Perl

Experience of using ACR (Thomas Boch):

http://wiki.eurovotech.org/pub/VOTech/DS3PlanningStage02/ACR_in_action.pdf

http://wiki.eurovotech.org/bin/view/VOTech/UsageOfAcrApiInAladin

ACR - a VOClient Implementation

Programmatic access to VO Services

acr astrogrid workbench voclient

2004-11-10T15:41:41