IceCube is a gCube application bundle offering core facilities for the deployment, operation and management of an Hybrid Data Infrastructure (HDI). It included the following applications.
Policy-oriented Security Framework This application offers facilities for authorisation, authentication and accounting as-a-Service. It is based on standard protocols and technologies providing: (a) an open and extensible architecture; (b) interoperability with external infrastructures and domains, obtaining, if required, also so-called Identity Federation; and (c) total isolation from gCore: zero dependencies in both the directions.
Resources Management This application offers facilities for the management (discovery, deployment, monitoring) of resources including hosting nodes, services, software and datasets. It includes (a) an Information System acting as a registry of the infrastructure by offering global and partial views of its resources and their current status and notification instruments; (b) a Resource Management Service which builds on the Information Service to realise resource allocation and deployment strategies. For resource allocation, it enables the dynamic assignment of a number of selected resources to a given community (e.g., the creation of a VRE requires that a number of hosting nodes, service instances and data collections are allocated to a given application). For deployment, it enables the allocation and activation of both gCube software and external software on hosting nodes, i.e., servers able to host running instances of services; (c) an hosting node, a software component that once installed on a server transforms it into a gCube hosting node. A gCube hosting node can be dynamically endowed with a number of services including a local worker to execute computing tasks on that server.
File-oriented Storage Facilities This is a scalable high-performance storage service. In particular, it relies on a network of distributed storage nodes managed via specialized open-source software for document-oriented databases. This facility is offered by the gCube Storage Manager, a Java based software that presents a unique set of methods for services and applications running on the e-Infrastructure. In its current implementation, three possible document store systems are used, MongoDB, Terrastore and USTO.RE. The Storage Manager was designed to reduce the time required to add a new storage system to the e-Infrastructure. This promotes openness versus other document stores, e.g., CouchDB, while hiding the heterogeneous protocols of those systems from the services and applications exploiting the infrastructure storage facility.
Virtual Research Environments Management This application offers facilities for dynamically creating and managing virtual research environments, i.e., internet-based working environments tailored to serve the needs of diverse and evolving user communities. The application supports the specification and deployment of complete VREs in terms of the data and services they should offer by automatically acquiring and aggregating the needed resources including it user interfaces constituents from the infrastructure.
Workflow Management Facilities This application offers facilities for executing complex processes, i.e., a workflow of tasks. It includes a process execution engine (PE2ng) which manage the execution of software elements in a distributed infrastructure under the coordination of a composite plan that defines the data dependencies among its actors. It provides a powerful, flow-oriented processing model that supports several computational middleware without performance compromises. Thus, a process can be designed as a workflow of invocation of code components (services, binary executables, scripts, map-reduce jobs, etc.) by ensuring that prerequisite data are prepared and delivered to their consumers through the control of the flow of data. PE2ng aims to bring together and integrate at the level of execution computing paradigms, execution patterns and Infrastructures by bridging but not hiding Infrastructures, enabling targeting Infrastructures that best fits the current needs turning an Infrastructure into a utility. Overall, an unrestrictive meta-Infrastructure is comprised with a single submission, monitoring and access execution point offering a single language for "Programming in the Large" and "Small".