UNICORE (UNiform Interface to COmputing REsources) es una tecnología de computación en red para recursos como supercomputadoras o sistemas de clúster e información almacenada en bases de datos. UNICORE se desarrolló en dos proyectos financiados por el Ministerio de Educación e Investigación de Alemania (BMBF). En proyectos financiados por Europa, UNICORE evolucionó hasta convertirse en un sistema de middleware utilizado en varios centros de supercomputación. UNICORE sirvió como base en otros proyectos de investigación. La tecnología UNICORE es de código abierto bajo licencia BSD y está disponible en SourceForge .
El concepto de computación en red se introdujo por primera vez en el libro "The Grid: Blueprint for a New Computing Infrastructure" a finales de 1998. En 1997 se inició el desarrollo de UNICORE para los centros de supercomputación alemanes como alternativa al Globus Toolkit. El primer prototipo se desarrolló en el proyecto alemán UNICORE, mientras que las bases para la versión de producción se sentaron en el proyecto posterior UNICORE Plus, que finalizó en 2002.
Los proyectos europeos posteriores ampliaron la funcionalidad y trabajaron para proporcionar implementaciones de los estándares del Open Grid Forum . Esto dio como resultado el lanzamiento de UNICORE 6 el 28 de agosto de 2007.
UNICORE consta de tres capas: una capa de usuario, una capa de servidor y una capa de sistema de destino. La capa de usuario está representada por varios clientes. Los clientes principales son el cliente enriquecido de UNICORE, una interfaz gráfica de usuario basada en el marco Eclipse, y el cliente de línea de comandos de UNICORE (UCC). Los clientes utilizan servicios web SOAP para comunicarse con la capa de servidor. Los documentos XML se utilizan para transmitir descripciones independientes de la plataforma y del sitio de tareas relacionadas con los datos y los cálculos, información de recursos y especificaciones de flujo de trabajo entre el cliente y el servidor. Los servidores son accesibles únicamente a través del protocolo Secure Sockets Layer .
Como único punto de entrada seguro a un sitio UNICORE, el Gateway acepta y autentica todas las solicitudes y las reenvía al servicio de destino. Se utiliza un servidor adicional, UNICORE/X, para acceder a un conjunto particular de recursos de Grid en un sitio. UNICORE admite muchas arquitecturas de sistema diferentes y garantiza que la organización tenga control total sobre sus recursos. Los servidores UNICORE/X se pueden utilizar para acceder a una supercomputadora, un clúster Linux o una sola PC. El servidor UNICORE/X crea acciones específicas del sistema de destino concretas a partir de la descripción de trabajo XML (Objetos de trabajo abstractos, AJO [1] ) recibida del cliente. Los servicios UNICORE disponibles incluyen el envío y la gestión de trabajos, el acceso a archivos, la transferencia de archivos (tanto cliente-servidor como servidor-servidor), las operaciones de almacenamiento (mkdir, ls, etc.) y el envío y la gestión de flujos de trabajo. El nivel del sistema de destino consta de la Interfaz del sistema de destino (TSI), que interactúa directamente con el sistema operativo local subyacente y el sistema de gestión de recursos.
La seguridad dentro de UNICORE se basa en el uso de certificados X.509 permanentes emitidos por una autoridad de certificación (CA) de confianza. Estos certificados se utilizan para proporcionar un inicio de sesión único en el cliente UNICORE, es decir, no se envían más solicitudes de contraseña al usuario. Además, los certificados se utilizan para la autenticación y la autorización, incluida la asignación de certificados de usuario de UNICORE a cuentas locales, por ejemplo, uid/gid de Unix , y para firmar solicitudes XML, que se envían a través de canales de comunicación basados en SSL a través de enlaces de Internet "inseguros". El uso de certificados X.509 es un ejemplo de la consideración de estándares bien conocidos, por ejemplo, publicados por el Global Grid Forum (GGF), dentro de la arquitectura UNICORE. Para la delegación de confianza, UNICORE utiliza aserciones SAML firmadas, mientras que la autorización local está controlada por políticas XACML.
Todos los componentes de la tecnología UNICORE son software de código abierto bajo licencia BSD y se pueden descargar desde el repositorio SourceForge.
Muchos proyectos de investigación europeos e internacionales basan sus implementaciones de software Grid en UNICORE, por ejemplo, EUROGRID, GRIP, OpenMolGRID, VIOLA o el proyecto japonés NaReGI. Estos proyectos ampliaron o están ampliando el conjunto de funciones básicas de UNICORE, incluidas nuevas características específicas para su investigación o enfoque del proyecto. Los objetivos de dichos proyectos no se limitan únicamente a la comunidad informática. Otros dominios científicos, como la bioingeniería o la química computacional , también utilizan UNICORE como base para su trabajo e investigación, como en los proyectos OpenMolGRID o Chemomentum. En el marco del proyecto europeo DEISA, los principales centros de HPC de Europa se unieron para implementar y operar una plataforma de supercomputación generalizada, distribuida, heterogénea y de múltiples teraescalas. UNICORE se utilizó como middleware Grid para acceder a los recursos de DEISA.
UNICORE se está implementando en infraestructuras de computación distribuida en Europa ( PRACE , European Grid Infrastructure EGI) y se prevé que se implemente en la próxima infraestructura Extreme Science and Engineering Discovery Environment (XSEDE) en los Estados Unidos.
UNICORE se utiliza con éxito en entornos de producción, por ejemplo, en el Instituto John von Neumann de Computación (NIC) para acceder a la supercomputadora IBM BlueGene/P de 294912 núcleos "JUGENE" y al clúster "JUROPA" de 26304 núcleos. Los usuarios de estos recursos proceden de un amplio campo de dominios científicos, entre los que se incluyen, por ejemplo , la astrofísica , la física cuántica, la medicina , la biología , la química computacional y la climatología .