\documentclass[11pt,twoside]{article}  % Leave intact
\usepackage{adassconf}

% If you have the old LaTeX 2.09, and not the current LaTeX2e, comment
% out the \documentclass and \usepackage lines above and uncomment
% the following:

%\documentstyle[11pt,twoside,adassconf]{article}

\begin{document}   % Leave intact

%-----------------------------------------------------------------------
%			    Paper ID Code
%-----------------------------------------------------------------------
% Enter the proper paper identification code.  The ID code for your
% paper is the session number associated with your presentation as
% published in the official conference proceedings.  You can
% find this number locating your abstract in the printed proceedings
% that you received at the meeting or on-line at the conference web
% site; the ID code is the letter/number sequence proceeding the title 
% of your presentation.  
%
% This will not appear in your paper; however, it allows different
% papers in the proceedings to cross-reference each other.  Note that
% you should only have one \paperID, and it should not include a
% trailing period.
%

\paperID{P5-2}
%%%% ID=P5-2

%-----------------------------------------------------------------------
%		            Paper Title 
%-----------------------------------------------------------------------
% Enter the title of the paper.
%
% EXAMPLE: \title{A Breakthrough in Astronomical Software Development}
%
% If your title is so long as to fill the page header when you print it,
% then please supply a short form as a \titlemark.
%
% EXAMPLE:
%  \title{Rapid Development for Distributed Computing, with Implications
%         for the Virtual Observatory}
%  \titlemark{Rapid Development for Distributed Computing}
%

\title{Visualizing Data Cubes on the Grid}
%\titlemark{}

%-----------------------------------------------------------------------
%		          Authors of Paper
%-----------------------------------------------------------------------
% Enter the authors followed by their affiliations.  The \author and
% \affil commands may appear multiple times as necessary.  List each
% author by giving the first name or initials first followed by the
% last name.  Authors with the same affiliations should grouped
% together. 
%
% Try to limit the front matter to no more than three \author
% commands.  Group authors with the same affiliations.  Too many
% \author commands fills the first page of the paper with little
% actual text.

\author{Guy Rixon}
\affil{Institute of Astronomy, University of Cambridge, Madingley Road, Cambridge CB3 0HA, UK}
\author{David Barnes, Brett Beeson, Jia Yu}
\affil{The School of Physics, The University of Melbourne, Victoria, 3010, Australia.}
\author{Patricio Ortiz}
\affil{Department of Physics and Astronomy, University of Leicester, University Road, Leiceter LE1 7RH, UK}


%-----------------------------------------------------------------------
%			 Contact Information
%-----------------------------------------------------------------------
% This information will not appear in the paper but will be used by
% the editors in case you need to be contacted concerning your
% submission.  Enter your name as the contact along with your email
% address.

\contact{Guy Rixon}
\email{gtr@ast.cam.ac.uk}

%-----------------------------------------------------------------------
%		      Author Index Specification
%-----------------------------------------------------------------------
% Specify how each author name should appear in the author index.  The 
% \paindex{ } should be used to indicate the primary author, and the
% \aindex for all other co-authors.  You MUST use the following
% syntax: 
%
% SYNTAX:  \aindex{LASTNAME, F. M.}
% 
% where F is the first initial and M is the second initial (if
% used).  This guarantees that authors that appear in multiple papers
% will appear only once in the author index.  
%
% EXAMPLE: \paindex{Crabtree, D.}
%          \aindex{Manset, N.}
%          \aindex{Veillet, C.}
%
% NOTE: this information is also used to build the author list that
% appears in the table of contents.  Authors will be listed in the order
% of the \paindex and \aindex commmands.
%

\paindex{Rixon, G.}
\aindex{Barnes, D.}     
\aindex{Beeson, B.}
\aindex{Yu, J.}
\aindex{Ortiz, P.}
     

%-----------------------------------------------------------------------
%                     Author list for page header
%-----------------------------------------------------------------------
% Please supply a list of author last names for the page header. in
% one of these formats:
%
% EXAMPLES:
% \authormark{LASTNAME}
% \authormark{LASTNAME1 \& LASTNAME2}
% \authormark{LASTNAME1, LASTNAME2, ... \& LASTNAMEn}
% \authormark{LASTNAME et al.}
%
% Use the "et al." form in the case of seven or more authors, or if
% the preferred form is too long to fit in the header.

\authormark{Rixon, Barnes, Beeson, Yu \& Ortiz}

%-----------------------------------------------------------------------
%			Subject Index keywords
%-----------------------------------------------------------------------
% Enter up to 6 keywords describing your paper.  These will NOT be
% printed as part of your paper; however, they will be used to
% generate the subject index for the proceedings.  There is no
% standard list; however, you can consult the indices for past ADASS
% proceedings (http://adass.org/adass/proceedings/).

\keywords{Grid: computing, web services, visualization, Virtual Observatory, software: architecture}

%-----------------------------------------------------------------------
%			       Abstract
%-----------------------------------------------------------------------
% Type abstract in the space below.  Consult the User Guide and Latex
% Information file for a list of supported macros (e.g. for typesetting 
% special symbols). Do not leave a blank line between \begin{abstract} 
% and the start of your text.

\begin{abstract}          % Leave intact
The Distributed Volume Renderer (DVR) is a tool for visualizing data cubes
by making them selectively transparent.  DVR runs best on clusters of
computers when memory and CPU power is plentiful.  AstroGrid and the
Australian Virtual Observatory have built a grid of services to allow users
of DVR remote access to computer clusters running DVR, and to data
archives. Our system is built using OGSI-compliant grid services, accessed
via a web portal.

We find that the basic concepts of the grid -- services as commodities, 
registries of services, controlled access to remote computers -- enhance the
system; but the specific grid technology used is awkward and makes development 
slow and error-prone.
\end{abstract}

%-----------------------------------------------------------------------
%			      Main Body
%-----------------------------------------------------------------------
% Place the text for the main body of the paper here.  You should use
% the \section command to label the various sections; use of
% \subsection is optional.  Significant words in section titles should
% be capitalized.  Sections and subsections will be numbered
% automatically. 

\section{The Application}

Data cubes in astronomy are traditionally visualized by displaying slices
through a cube parallel to the cube's axes. This method works on 
low-powered computers, but gives a limited view of the data.

A researcher gets a much better view of the data when the cube is rendered
partly transparent. Volume elements ("voxels") are drawn with an opacity 
that varies with voxel
value, giving high opacity to the interesting features of the data and low
opacity to the noise. Most commonly, the sky noise is given low opacity and
voxel values well above the sky level are given high opacity.

Beeson et al. (2003) implemented this technique as the Distributed Volume
Renderer (DVR). Their software gives good visualization
\htmladdnormallinkfoot{(q.v.
examples)}{http://astronomy.swin.edu.au/staff/bbeeson/dvr/}
but requires
more computing power than most users have available. In particular, for
a large cube, DVR needs more memory than most PCs have available; it needs
to run on a cluster.

\section{DVR on the Grid}

\htmladdnormallinkfoot{AstroGrid}{http://www.astrogrid.org/}
and the 
\htmladdnormallinkfoot{Australian Virtual Observatory}{http://www.aus-vo.org/}
have jointly
adapted DVR for the grid as a demonstration of technical potential. This 
demonstration was shown at the IAU General Assembly of 2003.

DVR does not need grid middleware to run parallel computations; it already
exploits clustered computers. Instead, grid technology allow users access
to DVR installations on remote clusters without requiring them to obtain
personal accounts on those clusters.

In our grid adaptation of DVR, we provided DVR as a grid service at several 
grid sites and allowed the user to choose any one of those sites for
visualization. We also set up archives of data cubes at several grid sites and
let the user choose the sources of data.  For the demonstrations we created
a temporary and private grid with these resources:

\begin{tabbing}
Vis\=ualizer services:\\
\> Australian National University, Canberra\\
\> Cambridge e-Science Centre\\
\> CSIRO Division of Mathematical and Information Sciences, Canberra\\
\> Institute of Astronomy, Cambridge\\
\\
Data-archive services:\\
\> Australian National University, Canberra\\
\> CSIRO Division of Mathematical and Information Sciences, Canberra\\
\> Institute of Astronomy, Cambridge\\
\> Jodrell Bank Observatory\\
\end{tabbing}


\section{Software Architecture}

Figure \ref{P5-2:fig:architecture} shows the entities and connections in the
system.

\begin{figure}
\epsscale{0.6}
\plotone{P5-2_1.eps}
\caption{Software architecture.\label{P5-2:fig:architecture}}
\end{figure}

We based the system on the Open Grid Services Infrastructure  (Tuecke et
al. 2003) which defines the extra semantics added to generic web services
to make grid services. We developed two grid services from scratch: a
visualizer service that is a wrapper around DVR and a file-cataloguing
service for the  data-archive sites.  The services are coded in Java using 
\htmladdnormallinkfoot{Globus Toolkit}{http://www.globus.org/} version 3
(GT3) and run as web applications in the servlet engine Jakarta-Tomcat
4.1.

We made the services available to users via a portal on the WWW. The portal
was coded as a web application using Java Server Pages and J2EE filters.
The portal is the sole client of the grid services and hides the
complexities of grid computing from the user agent. The graphics of the
visualization are generated on the server by DVR and displayed in a Java
applet.  

The user's agent is a web browser. The user interface is presented to the
browser using XHTML and CSS, plus one Java applet.  We do not require any
other software to be pre-installed on the user's computer.

Our portal incorporates a registry of known services. This controls the set
of services that are presented to the user when setting up a visualization.

The OGSI services comprise a computational grid. We support this with a
data grid (Chervenak et al. 2001) allowing peer-to-peer transfer of files
between the archive and visualizer services. Our data grid can use HTTP for
public data or the GridFTP protocol (Allcock et al. 2002) to transport
private data that may not appear on a public file-server. Using a data grid
removes the need to copy files to the user's web browser and desktop when
moving them between services.

Our services are application-specific. They have web-service interfaces
that provided exactly the operations needed for DVR and no other access to
the computing resources. In principle, we could have used the generic job-submission services
that are supplied with grid toolkits as part of the Open Grid Services
Architecture. In this case, there would be no custom Java coding and the
portal would be submitting scripts to the services rather than making
RPC-like requests.  We chose to use custom
services to improve security (by not allowing users access to a command line
on the remote computers), to simplify the portal software and to gain
experience in writing such services.


\section{Results}

The DVR grid works! We were able to visualize cubes on laptop computers with
slow internet connections, where DVR itself could not have run effectively.

The grid paradigm (Foster, Kesselman \& Tuecke 2001) of commodity services
published through a registry makes our system usable. Most of our resources
were off-line during one or more demonstrations, but at no time was the
system unusable; the user was always able to continue with the remaining
resources.

The data grid enabled the system to work efficiently between
continents and when the connection to the user's screen was very slow. The
system would not have been usable if all data had been exchanged via the
control connections and the web browser.

The speed of visualization is limited by the delays in getting view-control
commands from the browser to the server and graphics
from the server to the browser. These delays arise more from network latency
than from network bandwidth.  The network delays negate the gains of using
more than about 10 processors in a cluster for visualization.

Coding services with GT3 is slow and error-prone.  Problems with GT3 used
up most of our development time and prevented us from fully exploiting
OGSI.  If we had a better toolkit or more time to work on the problem, then
we might have made better use of the grid, e.g.: \begin{itemize} \item
record service instances in the registry such that the user could
disconnect from the portal and later reconnect to the same session; \item
use better security to protect the resources; \item use OGSI service data
to describe the resources to the portal; \item use broker services to
determine the best service sites for a visualization. \end{itemize}

In summary, we have shown that GT3, an OGSI implementation, can be used to
give access via the grid to a real application in astronomy. The grid
paradigm enhances the system beyond what is normal for the WWW, but the use
of the grid toolkit hinders the development.  Currently, the ideas of the
grid are more valuable than its products.


\acknowledgments

We are grateful for the loan of computing time at: 
CSIRO division of Mathematical and Information Sciences, Canberra;
Jodrell Bank Observatory; 
Cambridge e-Science Centre; ANU; University of Melbourne;
X-ray group, Institute of Astronomy, University of Cambridge. We thank
Anita Richards and Robert Minchin for preparing and sharing HIJASS data.
AstroGrid is funded by the Particle Physics and Astronomy Council of the
United Kingdom.  The Australian Virtual Observatory is funded by the
Commonwealth Scientific and Industrial Research Organization of Australia.

%-----------------------------------------------------------------------
%			      References
%-----------------------------------------------------------------------
% List your references below within the reference environment
% (i.e. between the \begin{references} and \end{references} tags).
% Each new reference should begin with a \reference command which sets
% up the proper indentation.  Observe the following order when listing
% bibliographical information for each reference:  author name(s),
% publication year, journal name, volume, and page number for
% articles.  Note that many journal names are available as macros; see
% the User Guide for a listing "macro-ized" journals.   
%
% Note the following are some of the tricks that can be used:
%
%   o  \& is used to format an ampersand symbol (&).
%   o  \'e puts an accent grave over the letter e.  See the User Guide
%      for details on formatting special characters.  
%   o  "\ " after a period prevents LaTeX from interpreting the period 
%      as an end of a sentence.
%   o  \aj is a macro that expands to "Astron. J."  See the User Guide
%      for a full list of journal macros
%   o  \adassvii is a macro that expands to the full title, editor,
%      and publishing information for the ADASS VII conference
%      proceedings.  Such macros are defined for ADASS conferences I
%      through IX.
%   o  When referencing a paper in the current volume, use the
%      \adassix and \paperref macros.  The argument to \paperref is
%      the paper ID code for the paper you are referencing.  See the 
%      note in the "Paper ID Code" section above for details on how to 
%      determine the paper ID code for the paper you reference.  
%
\begin{references}
\reference Allcock, W., Bester, J.,
Bresnahan, J., Chervenak, A., Liming. L., Meder, S., Tuecke,
S. GGF GridFTP Working Group Document, September 2002.
\reference Beeson, B., Barnes, D.G., Bourke, P.D.\ 2003, Proc.\ Astron.\ Soc.\ 
Aust., 20, 300
\reference Chervenak, A., Foster, I., Kesselman, C., 
Salisbury, C., Tuecke, S. 
Journal of Network and Computer Applications, 23:187-200, 2001
\reference Foster, I.,  Kesselman, C.,  Tuecke, S. 
International J. Supercomputer Applications, 15(3), 2001.
\reference Tuecke, S., Czajkowski, K., Foster, I., Frey, J., Graham, S.,
Kesselman, C., Maguire, T., Sandholm, T., Vanderbilt, P.,
Snelling, D.; Global Grid Forum Draft Recommendation, 6/27/2003.

\end{references}

% Do not place any material after the references section

\end{document}  % Leave intact
