Nordugrid middleware
====================

The NorduGrid middleware (or the Advanced Resource Connector, ARC) is an open
source software solution enabling production quality computational and data
grids.

Since the first release (May 2002) the middleware is deployed and being used
in production environments. Emphasis is put on scalability, stability,
reliability and performance of the middleware. A growing number of grid
projects, like Swegrid, DCGC, NDGF chose ARC as their middleware. The largest
production grid of the world is running on ARC too.

ARC provides a reliable implementation of the fundamental grid services, such
as information services, resource discovery and monitoring, job submission
and management, brokering, data management and resource management. Most of
these services are provided through the security layer of the GSI. The
middleware builds upon standard open source solutions like the OpenLDAP,
OpenSSL, SASL and Globus Toolkit 2 (GT2) libraries.  All the external
software is provided in the download area on www.nordugrid.org, a detailed
description of the external software dependencies can be found in the INSTALL
file.  NorduGrid provides innovative solutions essential for a production
quality middleware: the Grid Manager, ARC GridFTP
server, the information model and providers (NorduGrid schema), the User
Interface and broker (a "personal" broker integrated into the user
interface), extended Resource Specification Language (xRSL), and the
monitoring system.

The listed solutions are used as replacements and extensions of the original
GT2 services.  ARC does NOT use most of GT2 services, such as GRAM, job
submission commands, the WUftp-based gridftp server, the gatekeeper, GRAM
job-manager scripts, MDS information providers and schemas. Moreover, ARC
extended the RSL, and made the Globus MDS functional. ARC is much more than a
GT2, it offers its own services built upon the GT2 libraries.

The ARC NorduGrid middleware integrates computing resources (commodity
computing clusters managed by a batch system or standalone workstations) and
Storage Elements, making them available via a secure common grid layer.




Dependencies
============

The middleware is written in C/C++ and some smaller part in Perl. ARC builds
upon standard Open Source libraries and solutions. Building the software from
source or installing a precompiled binary requires different external
packages, furthermore the client and server packages have different
dependencies too. The detailed compile and runtime external dependencies are
given in the INSTALL file, below a merged list of the requirements (build,
install, server, client) is shown:

    o gnu make, autotools
    o C++ compiler and library
    o Standard Perl environment
    o Grid Packaging Tools (GPT) (http://www.gridpackagingtools.org/)
    o Globus Toolkit 2.4.x (http://www.globus.org/) which contains
    	- OpenSSl
	- OpenLDAP
	- Cyrus SASL
	- Globus Replica Catalog
	- Globus RLS    
    o gSOAP (http://www.cs.fsu.edu/~engelen/soap.html)
      (gsoap version 2.7.2 is required, ARC builds on 2.5.x too, 
      but does not build against 2.6.x series due to acknowledged bugs)     
    o VOMS (http://datagrid.in2p3.fr/cgi-bin/cvsweb.cgi/)
      (from ARC 0.5.12 tag and later VOMS is optional)
    o MySQL client libraries
    o libxml2 version 2.4.x or later

Note that NorduGrid provides packaged versions of GPT, Globus, gSOAP and
VOMS. The rest of the dependencies are available in any standard Linux 
distributions.




Getting the software
====================

The middleware is free to deploy anywhere by anybody. Pre-built binary
releases for a dozen of Linux platforms can be downloaded from
ftp.nordugrid.org, and installation instructions are available at the
"Documentation" area on www.nordugrid.org.

The software is released under the GNU General Public License (GPL) (see the
LICENSE file).

The NorduGrid repository hosts the source code, and provides all the required
external software which are not part of a standard Linux distribution.




Packaging, Distribution
=======================

The middleware is available in tarballs and in relocatable RPMS. The source
comes in a single tarball or a Source RPM while the built binaries are
divided into the following modules:


   o nordugrid-client         - Client programs
   o nordugrid-server         - Server-side programs   
   o nordugrid-gridmap-utils  - Utilities for managing gridmap-files
   o nordugrid-ca-utils       - Utilities for maintaining CA files 
   o nordugrid-devel          - Development files (headers, static libs)
   o nordugrid-monitor        - Grid monitor web interface (should be installed on a Web server)
   o nordugrid-doc            - Documentation


Furthermore, a nordugrid-standalone client binary tarball is provided which
comes with all the required external software and configuration, thus
provides a complete, out-of-the-box client package.




Building & Installation
=======================

The ARC middleware can be built from the openly available source code
provided as a tarball and as a source RPM, please refer to the INSTALL file
for build and installation instructions. There is also a 
relocation_instructions.txt shipped with the documentation which describes 
the relocatability of the middleware.




Setup & Configuration
=====================

For server or client setup and configuration please refer to the server or
client installation instructions available from the www.nordugrid.org. The
middleware comes with documented server-side configuration templates
(nordugrid.conf.template).  Client installation is also discussed in the
"NorduGrid User Guide".




Contributing
============

The open source development of the middleware is coordinated by the NorduGrid
Collaboration.  The Collaboration is open to new members, contributions from
the community to the software and the documentation is welcomed. Sources can
be downloaded from the Web site or CVS.

The developers maintain a Task List which describes outstanding issues that
have to be addressed in the framework of the NorduGrid development. Bugs
marked as 'feature requests' in the NorduGrid bugzilla also contain open
development areas.  For a more detailed description, write access to CVS and
further questions, write to the nordugrid-discuss mailing list.  Ongoing and
completed Grid Research projects and student assignments related to the
middleware are listed on the Web site as well.




Support, documentation, mailing lists, contact
==============================================

User support and site installation assistance is provided via the request
tracking system available at nordugrid-support@nordugrid.org. In addition,
NorduGrid runs a couple of mailing lists, among which the nordugrid-discuss
mailing list is a general forum for all kind of issues related to the
ARC/NorduGrid middleware.

NorduGrid deploys the Bugzilla problem tracking system. Feature and
enhancement requests, as well as discovered problems, should be reported
there.

Research papers, overview talks, reference manuals, user guides, installation
instructions, conference presentations, FAQ and even tutorial materials can
be fetched from the documentation section of www.nordugrid.org

Contact information is kept updated on the www.nordugrid.org web site.
