Newer
Older
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.
This release (October 2007) is a technology preview version of the
next generation of ARC. It is based on a service container - the
Hosting Environment Daemon (HED) - and different grid capabilities are
implemented as Web Services residing in HED. Currently, an OGSA BES
compliant execution service - ARC Resource-coupled EXecution service
(A-REX) - and an echo service (for testing purposes) are included, but
the set of services is rapidly growing.
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:
Markus Norden
committed
Mandatory (on client as well as server side):
o gnu make, autotools (autoconf>=2.56)
o C++ compiler and library
o libtool
o pkg-config
o gthread-2.0 version 2.4.7 or later
o glibmm-2.4 version 2.4.7 or later
o libxml-2.0 version 2.6.0 or later
o openssl version 0.9.7a or later
o gsoap++ version 2.7 or later
(http://www.cs.fsu.edu/~engelen/soap.html)
o e2fsprogs-devel
o doxygen
Markus Norden
committed
Optional (mainly aplicable on server side):
o swig version 1.3.28 or later
o java sdk 1.4 or later for Java bindings
o python-devel for Python bindings
o Grid Packaging Tools (GPT) (http://www.gridpackagingtools.org/)
o Globus Toolkit 4 (http://www.globus.org/) which contains
- Globus RLS client
- Globus FTP client
- Globus RSL
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.
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.
Building & Installation
=======================
The ARC middleware can be built from the openly available source code
provided as a tarball. The build is using the GNU autotools. This
Markus Norden
committed
means that a standard installation into /usr/local can be made with:
./configure
make
make install
Markus Norden
committed
If you wish to install into <directory>, use the following instead:
./configure --prefix=<directory>
make
make install
Grid Certificates
=================
Markus Norden
committed
In order to use ARC, a grid certificate is necessary. More information
about grid certificates and how to get them can be found on
http://www.nordugrid.org/documents/certificate_howto.html
So far, only the certificates without password can be used for MCCTLS (both
the client side and server side).
Certificate with password (for client side) will be supported when certificate
delegation is available.
ARC Server Setup & Configuration
================================
The configuration of the ARC server is specified in an XML file, the
location of which is specified as a command line argument with the -c
option. An example of a configuration file that sets up an A-REX
execution service is shown below:
<?xml version="1.0"?>
<ArcConfig
xmlns="http://www.nordugrid.org/schemas/ArcConfig/2007"
xmlns:tcp="http://www.nordugrid.org/schemas/ArcMCCTCP/2007"
xmlns:arex="http://www.nordugrid.org/schemas/a-rex/Config"
>
<Server>
<Foreground/>
<Pidfile>./arcserver.pid</Pidfile>
<Logger level="WARNING">./logfile</Logger>
</Server>
<ModuleManager>
Markus Norden
committed
<Path>/usr/local/lib/arc/</Path>
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
</ModuleManager>
<Plugins><Name>mcctcp</Name></Plugins>
<Plugins><Name>mcctls</Name></Plugins>
<Plugins><Name>mcchttp</Name></Plugins>
<Plugins><Name>mccsoap</Name></Plugins>
<Plugins><Name>arex</Name></Plugins>
<Chain>
<Component name="tcp.service" id="tcp">
<next id="tls"/>
<tcp:Listen><tcp:Port>60000</tcp:Port></tcp:Listen>
</Component>
<Component name="tls.service" id="tls">
<next id="http"/>
<KeyPath>/etc/grid-security/key.pem</KeyPath>
<CertificatePath>/etc/grid-security/cert.pem</CertificatePath>
<CACertificatePath>/etc/grid-security/ca.pem</CACertificatePath>
</Component>
<Component name="http.service" id="http">
<next id="soap">POST</next>
</Component>
<Component name="soap.service" id="soap">
<next id="plexer"/>
</Component>
<Plexer name="plexer.service" id="plexer">
<next id="a-rex">/arex</next>
</Plexer>
<Service name="a-rex" id="a-rex">
<arex:endpoint>https://localhost:60000/arex</arex:endpoint>
<arex:username>nobody</arex:username>
<arex:gmconfig>/etc/arc.conf</arex:gmconfig>
</Service>
</Chain>
</ArcConfig>
Markus Norden
committed
Markus Norden
committed
Grid Manager
============
Markus Norden
committed
Markus Norden
committed
In order to use the A-REX service, you need to run a Grid-Manager as
well. There is not yet a Grid-Manager available in the new generation
of version of ARC, but the Grid-Manager from ARC 0.6.x can be used
meanwhile. How to install and set up that Grid-Manager is described in
detail on http://www.nordugrid.org/documents/ng-server-install.html
and in NORDUGRID-TECH-14 "The ARC Computational Job Management Module
- A-REX: Description and Administrator's Manual".
Markus Norden
committed
Starting the Server
===================
To start the ARC server, type the following on the command line:
/usr/local/sbin/arcserver -c /etc/arcserv.xml &
The A-REX Client
================
The configuration of the ARC client is specified in an XML file. The
location of the configuration file is specified by the environment
variable ARC_AREX_CONFIG. If there is no such environment variable,
the configuration file is assumed to be arex_client.xml in the current
working directory. An example configuration file is shown below:
<ArcConfig
xmlns="http://www.nordugrid.org/schemas/ArcConfig/2007"
xmlns:tcp="http://www.nordugrid.org/schemas/ArcMCCTCP/2007">
<ModuleManager>
Markus Norden
committed
<Path>/usr/local/lib/arc/</Path>
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
</ModuleManager>
<Plugins><Name>mcctcp</Name></Plugins>
<Plugins><Name>mcctls</Name></Plugins>
<Plugins><Name>mcchttp</Name></Plugins>
<Plugins><Name>mccsoap</Name></Plugins>
<Chain>
<Component name='tcp.client' id='tcp'>
<tcp:Connect>
<tcp:Host>127.0.0.1</tcp:Host>
<tcp:Port>60000</tcp:Port>
</tcp:Connect>
</Component>
<Component name='tls.client' id='tls'>
<next id='tcp'/>
<KeyPath>/etc/grid-security/key.pem</KeyPath>
<CertificatePath>/etc/grid-security/cert.pem</CertificatePath>
<CACertificatePath>/etc/grid-security/ca.pem</CACertificatePath>
</Component>
<Component name='http.client' id='http'>
<next id='tls'/>
<Method>POST</Method>
<Endpoint>/arex</Endpoint>
</Component>
<Component name='soap.client' id='soap' entry='soap'>
<next id='http'/>
</Component>
</Chain>
</ArcConfig>
Using the Client
================
To submit a job, type
/usr/local/bin/apsub <JSDL-file> <JobID-file>
where <JSDL-file> is the location of a file that contains the job
specification in JSDL format and <JobID-file> the location of a file
in which the Job ID will be stored.
To query the status of a job, type
/usr/local/bin/apstat <JobID-file>
where <JobID-file> the location of the file in which the Job ID is
stored (the file created when the job was submitted).
To terminate a job, type
/usr/local/bin/apkill <JobID-file>
where <JobID-file> the location of the file in which the Job ID is
stored (the file created when the job was submitted).
More detailed about how to use the client tools are explained in
Markus Norden
committed
NORDUGRID-TECH-15 "WS-Based ARC Clients".
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
Contributing
============
The open source development of the ARC middleware is coordinated by
the NorduGrid Collaboration. Currently, the main contributor is the
KnowARC project (www.knowarc.eu), but 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 Subversion.
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 Subversion 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 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.