# UNICORE

UNICORE (UNiform Interface to COmputing REsources) is a grid computing technology for resources such as supercomputers or cluster systems and information stored in databases. UNICORE was developed in two projects funded by the German ministry for education and research (BMBF). In European-funded projects UNICORE evolved to a middleware system used at several supercomputer centers. UNICORE served as a basis in other research projects. The UNICORE technology is open source under BSD licence and available at SourceForge.

## History

The concept of grid computing was first introduced in the book "The Grid: Blueprint for a New Computing Infrastructure" at the end of 1998. By 1997, the development of UNICORE was initiated for German supercomputer centers as an alternative for the Globus Toolkit. The first prototype was developed in the German UNICORE project, while the foundations for the production version were laid in the follow-up project UNICORE Plus, which ended in 2002.
Follow-up European projects extended the functionality and worked towards providing implementations of Open Grid Forum standards. These resulted in the release of UNICORE 6 on 28 August 2007.

## Architecture

UNICORE consists of three layers: a user, server, and target system tier. The user tier is represented by various clients. The primary clients are the UNICORE Rich Client, a graphical user interface based on the Eclipse framework, and the UNICORE commandline client (UCC). The clients use SOAP Web services to communicate with the server tier. XML documents are used to transmit platform and site independent descriptions of computational and data related tasks, resource information, and workflow specifications between client and server. The servers are accessible only via the Secure Sockets Layer protocol.
As the single secure entry point to a UNICORE site, the Gateway accepts and authenticates all requests, and forwards them to the target service. A further server, UNICORE/X, is used to access a particular set of Grid resources at a site. UNICORE supports many different system architectures and ensures that organization full control over its resources. UNICORE/X servers may be used to access a supercomputer, a Linux cluster or a single PC. The UNICORE/X server creates concrete target system specific actions from the XML job description (Abstract Job Objects, AJO) received from the client. Available UNICORE services include job submission and job management, file access, file transfer (both client-server and server-server), storage operations (mkdir, ls, etc.), and workflow submission and management. The target system tier consists of the Target System Interface (TSI), which directly interfaces with the underlying local operating system and resource management system.

## Security model

The security within UNICORE relies on the usage of permanent X.509 certificates issued by a trusted Certificate Authority (CA). These certificates are used to provide a single sign-on in the UNICORE client, i.e. no further password requests are handed to the user. In addition the certificates are used for authentication and authorization, including the mapping of UNICORE user certificates to local accounts, e.g. Unix uid/gid, and for signing XML requests, which are sent over SSL based communication channels across 'insecure' internet links. Using X.509 certificates is one example for the consideration of well-known standards, e.g. released by the Global Grid Forum (GGF), within the UNICORE architecture. For trust delegation, UNICORE uses signed SAML assertions, while local authorisation is controlled by XACML policies.

## Licensing

All components of the UNICORE technology are open source software under BSD license and can be downloaded from the SourceForge repository.

## UNICORE in research & production

Many European and international research projects base their Grid software implementations on UNICORE, e.g. EUROGRID, GRIP, OpenMolGRID, VIOLA, or the Japanese NaReGI project. These projects extended or are extending the set of core UNICORE functions, including new features specific to their research or project focus. The goals of such projects are not only limited to the computer science community. Other scientific domains such as bioengineering or computational chemistry are also using UNICORE as the basis for their work and research, like in the OpenMolGRID or Chemomentum projects. Within the European DEISA project leading HPC centers in Europe joined to deploy and operate a pervasive, distributed, heterogeneous, multi-tera-scale supercomputing platform. UNICORE was used as the Grid middleware to access the DEISA resources.
UNICORE is deployed in distributed computing infrastructures in Europe (PRACE, the European Grid Infrastructure EGI) and is foreseen to be deployed in the upcoming Extreme Science and Engineering Discovery Environment (XSEDE) infrastructure in the United States.
UNICORE is successfully used in production environments, e.g. within the John von Neumann-Institute for Computing (NIC) to access the 294912 core "JUGENE" IBM BlueGene/P supercomputer and the 26304 core "JUROPA" cluster. The users of these resources come from a broad field of scientific domains including e.g. astrophysics, quantum physics, medicine, biology, computational chemistry, and climatology.