# 3G Bridge

The Generic Grid-Grid (3G) Bridge is an open-source core job bridging component between different grid infrastructures. Its development started in 2008 within the CancerGrid and EDGeS projects. The aim was to create a generic bridge component that can be used in different grid interoperability scenarios. The 3G Bridge used within the EDGeS project that provides the core component of the Service Grid - Desktop Grid interoperability solution. 3G Bridge helps to connect user communities of different grid systems. For example, communities working on parameter sweep problems (physics, biologists, ...) and using service grid infrastructures can migrate their applications to the more adequate desktop grid platform using the 3G Bridge technology, resulting in an accelerated research.
The project, started in 2008, is technically coordinated by Prof. Peter Kacsuk, head of the Laboratory of Parallel and Distributed Systems and Msc. Zoltan Farkas, research leader of LPDS at MTA-SZTAKI, Hungary.

## Architecture

3G Bridge is currently actively used in the EDGI and DEGSICO projects as the job bridging technology between service and desktop grids. 3G Bridge enables interconnecting different grid technologies by migrating jobs between them. This way it allows to move specific type of applications to an adequate execution platform, and enables load sharing among different grid infrastructures, resulting in increased job capacity and faster execution.
The 3G Bridge has the following main components:
* Job Handler Interface: this is a very simple MySQL interface for handling jobs in the 3G Bridge Job Database. Can be used by local MySQL clients, or a very simple application shipped with the 3G Bridge called 'injector'.
* WSSubmitter: this is a Web Service interface above the 3G Bridge Job Database. Using this interface, remote clients can add jobs to the 3G Bridge for execution, or check the status of already submitted ones.
* 3G Bridge Job Database: this is a MySQL database that contains the set of jobs the 3G Bridge should handle. Important properties of the jobs, like executable name, command-line arguments, list of files used is stored within the database.
* Download Manager: this component is responsible for fetching the input files belonging to jobs submitted in a remote manner.
* Queue Manager: this component arranges the execution and management of 3G Bridge jobs, periodically calls the different grid plugins in order to manage jobs assigned to them.
* Grid Handler Interface: this is a generic interface above the grid plugins. By using this generic layer, no 3G Bridge components other than the grid plugins must contain grid-specific code. The methods a grid plugin should implement is: submission and status update.
* Grid Plugin: grid plugins are responsible for managing jobs in destination grids. For each plugin, there can be a number of instances, for example for submitting jobs to different EGEE VOs. The 3G Bridge supports the following grids: EGEE, BOINC, XtremWeb-HEP, and OurGrid.
* HTTPD: is a web server so remote clients can fetch output files of finished jobs from the 3G Bridge server. The main programming language is C++, however 3G Bridge supports implementing grid plugins in Java. Web service interfaces are implemented using gSOAP.

## Destination plugins

* Null: the simplest plugin which first sets incoming job's status to running, and finished afterwards.
* DC-API-Single: this plugin can be used to submit individual jobs to a BOINC-based desktop grid. This plugin is mainly used in the EDGI project.
* DC-API: this plugin is an enhanced version of the DC-API-Single plugin, capable of submitting job batches to the BOINC server. The batch feature enables packing many short-running jobs into one BOINC workunit, resulting in increased computation-to-
communication ratio.
* EGEE: the EGEE plugin can be used to submit jobs to gLite-based service grids. This plugin is extensively used within the DEGISCO project, solving bridging BOINC workunits to gLite.
* XtremWeb: this plugin can be used to submit jobs to XtremWeb-based desktop grids. The plugin is actively used within the EDGI project.
* BES: the BES plugin can be used to submit jobs to OGSA BES resources, like ARC or UNICORE.
* EC2: this plugin can be used to execute jobs on different Cloud systems.