%------------------------------------
% The XtremWeb-CH environment
%------------------------------------
-XtremWeb-CH (XWCH) is a volunteer computing inspired, large-scale
-computing platform for distributed applications. It consists of three
-components: one coordinator, a set of workers and at least one
+
+High performance computing environments like MPI (Message Passing
+Interface) \cite{Gro94} are widely used and have proved their efficiency. This
+class of systems are very tightly coupled and powerful but not very error
+tolerant. Cluster computing environments like Condor
+\cite{condor-practice} and volunteer computing systems like BOINC \cite{boinc} are loosely coupled and
+have a scheduler that distributes tasks to computing nodes. Cluster
+computing environments assume that nodes are most often accessible
+which is not applies to volunteer computing systems.
+
+XtremWeb-CH (XWCH) is a volunteer computing inspired large-scale
+computing platform for distributed applications. In fact, it tends to
+be a good compromise between cluster computing and volunteer
+computing. It is originaly based on another platform called XtremWeb
+ \cite{xtremweb}. It is easy to install and maintain and it is supported by a Grid
+middleware (ARC \cite{arc}) and a workflow engine (JOpera \cite{JOpera}). It consists in
+three components: one coordinator, a set of workers and at least one
warehouse. Client programs use these components.
The coordinator is the main component of the XWCH platform. It
controls user access and schedules jobs to workers. It provides a web
interface for managing jobs and users, and a set of web
-services. These are user service and worker/warehouse services
-implemented using WSDL (Web Service Description Language) \cite{WebServ2002}, that simplifies
-client development for languages that support it (and most popular programming languages do).
+services. These are user services and worker/warehouse services
+implemented using WSDL (Web Service Description Language)
+\cite{WebServ2002}, that simplifies client development for languages
+that support it (and most popular programming languages do).
A worker is a Java daemon that runs on the user machine. Assumed to be
-volatile, the workers report periodically themselves to the
+volatile, the workers periodically report themselves to the
coordinator, accept jobs, retrieve input, compute jobs, and store the
results of the computation on warehouses. If the coordinator does not
receive a signal from a worker, it will simply remove it from the
flexible API, available for Java and C/C++ programs. The client
program runs on a “client node” and calls the user services to submit
jobs (Figure \ref{xwch}, (1)). The main flexibility provided by the use of this
-architecture is to control and generate dynamically jobs especially
+architecture is to control and dynamically generate jobs especially
when their number cannot be known in advance. Communications between
the coordinator and the workers are always initiated by the workers
following a pull model (Figure \ref{xwch}, (2)):
Experiments presented in \cite{ccgridpaper} show that the
performance of XWCH is comparable with Condor \cite{Condor1988},
-another non-intrusive computing system that has similar functionality
+another non-intrusive computing system that has similar functionalities
but is somewhat more difficult to install.
The main characteristics of the new version of XWCH, compared to