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