Advanced Resource Connector
===========================

The Advanced Resource Connector, ARC (also known as the NorduGrid Middleware)
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.

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 5 libraries.  All the external software is provided in the
NorduGrid repositories at http://download.nordugrid.org/repos and in
the download area on www.nordugrid.org, a detailed description of the
external software dependencies can be found in the INSTALL file.  ARC
provides innovative solutions essential for a production quality
middleware: the Grid Manager, ARC GridFTP server, the information
model and providers (NorduGrid schema), the command line client and
broker (a "personal" broker integrated into the client), extended
Resource Specification Language (xRSL), and the monitoring system.

The ARC 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.

Despite relying on some Globus Toolkit libraries and API, ARC does not use
any of the Globus Toolkit services.



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

The middleware is written mostly in C/C++, with some parts in Perl and
PHP. Python and Java wrappers are available through SWIG. ARC builds
upon standard Open Source libraries and solutions. Building the
software from source or installing a precompiled binary requires
different external packages; furthermore binary packages have
different dependencies too. The detailed compile and runtime external
dependencies are described in the INSTALL file, below a merged list of
the requirements is shown:


    o GNU make, GNU autotools
    o C++ compiler and library
    o Globus Toolkit 4.x or 5.x (http://www.globus.org/) which contains
	- GridFTP client libraries
	- RSL libraries
	- Globus RLS client libraries (optional)
    o BDII 4 or 5 (https://twiki.cern.ch/twiki/bin/view/EGEE/BDII)
    o LFC (LCG File Catalog) client libraries (http://glite.web.cern.ch/glite/)
       (ARC can be built without LFC)
    o gSOAP (http://www.cs.fsu.edu/~engelen/soap.html)
       (gsoap version above 2.7.2 is required)
    o VOMS client libraries (http://glite.web.cern.ch/glite/) 
       (ARC can be built without VOMS)
    o OpenLDAP client and server libraries (http://www.openldap.org/)
    o MySQL client libraries
    o libxml2 (version 2.4.x or later)
    o Python development libraries (optional - for the Python interface 
       for ARCLIB)
    o libuuid library
    o Standard Perl environment with some extra modules 
     (Net::LDAP, XML::DOM, LWP::UserAgent, URI)


More specifically, the contents available in these packages (Names may
vary depending on distribution):

    o gsoap-devel >= 2.7.2
    o libxml2-devel >= 2.4.0
    o globus-common-devel
    o globus-ftp-client-devel
    o globus-ftp-control-devel
    o globus-gass-transfer-devel
    o globus-gsi-credential-devel
    o globus-gsi-sysconfig-devel
    o globus-gss-assist-devel
    o globus-io-devel
    o openldap-devel
    o globus-rls-client-devel
    o globus-rsl-devel
    o gettext
    o python-devel
    o voms-devel
    o mysql-devel
    o bdii
    o libuuid-devel or e2fsprogs-devel (depending on distribution)

Note that although NorduGrid provides packaged versions of most of the
non-standard dependencies, they gradually are being added to the
standard Linux distributions, which is the recommended source of such
packages.




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

The middleware is free to deploy anywhere by anybody. Pre-built binary
releases for a dozen number of Linux platforms can be downloaded from
download.nordugrid.org. Generic installation instructions are packaged
with the software and also are available via the "Documentation" area
on www.nordugrid.org.

The software is released under the Apache License (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 binary packaes (RPM,
DEB). The source comes in a bundle of tarball or Source RPMs, while
the built binaries come as the following modules:

   o nordugrid-arc-client         - Client programs
   o nordugrid-arc-server         - Metapackage with all Server-side programs
   o nordugrid-arc-gridftpd       - Gridftpd package
   o nordugrid-arc-grid-manager   - Grid-Manager package
   o nordugrid-arc-infosys-ldap   - Information service and Index service
   o nordugrid-arc-gridmap-utils  - Utilities for managing gridmap-files
   o nordugrid-arc-ca-utils       - Utilities for maintaining CA files    
   o nordugrid-arc-monitor        - Grid monitor web interface (should be installed on a Web server)
   o nordugrid-arc-doc            - Documentation
   o nordugrid-arc-libs           - Runtime libraries
   o nordugrid-arc-libs-devel     - Development files
   o nordugrid-arc-python         - Python bindings of ARClib

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




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

The ARC middleware can be built from the openly available source code
provided as tarballs and source RPMs; please refer to the INSTALL file
for build and installation instructions. 




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

For server or client setup and configuration please refer to the
server or client installation instructions available from the
www.nordugrid.org and in the distribution. The middleware comes with
documented server-side configuration templates (arc.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 code repository.

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 bug
tracking system also contain open development areas.  For a more
detailed description, write access to the code repository and further
questions, write to the nordugrid-support@nordugrid.org 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@nordugrid.org
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

Wiki site wiki.nordugrid.org is used to host information on latest
developments submitted by the developers community; when getting
reliable, this information is published at the NorduGrid Web site.

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