Fura

Fura is a self-contained middleware that allows the grid enablement and distributed processing of applications on heterogeneous computational resources. GridSystems commercializes Fura as either a cloud computing or a stand-alone grid solution. With Fura in the Cloud and Fura Enterprise Edition, you enjoy the benefits of a proven, resilient and secure grid product running on a public cloud infrastructure or on your own private cloud: higher utilization rates, resource abstraction and consolidation, lower operating costs, more resilient and fault tolerant infrastructure, better disaster recovery, and maximized business continuity.

Fura in the Cloud lays down a middleware layer that detaches the services from the infrastructure, and the final users from the IT resources. Fura in the Cloud works on top of the offerings of the basic infrastructure of Amazon EC2 (Elastic Cloud Computing), delivering its high performance, scalability, and elasticity. Applications that run on Fura in the Cloud benefit from a middleware layer that hides the details of resource selection, resource monitoring, automatic provisioning of files, distributed file systems, facilities for parametric sweeps, role-based user system with Access Control Lists, etc. For new Fura users, we recommend Fura in the Cloud; it is ideal for experimenting, proof-of-concept developing and testing at a low cost. For more information about Fura in the Cloud, please visit our website.

The stand-alone Fura product follows a dual licensing model. Fura Enterprise Edition (FEE) is a commercial proprietary product and is for companies whose politics regarding data/service quality, security and liability prevent them from moving their production environment onto the cloud. Deploying Fura EE behind a firewall as a private/hybrid cloud brings the same benefits that the public cloud provides but retains full control of the infrastructure. Fura EE features a web-based GUI, wizard-guided installation and configuration, and Web Services compliance; its plug-in architecture allows grid services to be extended or replaced, and new services developed by reusing existing components. You can find more information about Fura EE on our website.

The Fura project is open source and is for developers who seek bleeding-edge technology and want to try it in non-critical computing environments; this version is available from SourceForge.

Maintained By

All Fura versions are maintained by GridSystems.

To test Fura in the Cloud, create an Amazon Web Services account and register your Amazon Web Services user to use Fura in Amazon EC2. Read Getting Started with Fura in the Cloud for additional details.

For further information on Fura Enterprise Edition, contact GridSystems.

The latest version of Fura can be found on SourceForge.

License

Fura in the Cloud and Fura EE are released under a commercial EULA and are complemented with value-added services of User and Developer Support, Maintenance, and Training.

Fura project is licensed under GPL2 or GPL3 depending on the version and, as such, the source code and the freedom to modify it are provided. Notice that because of the nature of GPL, any plug-in or connector developed to work with Fura must be also distributed under the GPL license.

Status

The Fura grid middleware product is the result of years of intense participation in extensive research activities (internal and in collaborative projects) on various fields and sectors.

Fura has more than 250K lines of code and its open source version has received more than 12000 downloads since the code was released.  More or less, an updated version is released every three months. Fura 1.8 is planned for the last quarter of 2009. Fura is a stable product, and it is constantly incorporating the results of the research projects GridSystems participates in that focus on the critical aspects of the next-generation grid and cloud computing technology, including utility computing, SLA management, QoS, semantic based application virtualization, services orchestration, and data grids.

Core Functionalities

Fura is focused on distributed computing and can have many-fold uses: job dispatching and management, Grid data access, resource monitoring, and job parallelization. Its architecture follows the Service-Oriented paradigm.

A deployment of Fura is typically composed of one or more Fura Servers, a Fura Portal acting as a GUI, and a number of computing resources (numbering from a handful to hundreds or thousands). The three components have a modular structure. The Server and computing resources are extensible through a plug-in system, and the Portal through new webapps. WSDL interfaces provide external access to the Grid and also permit the internal communication among the components. Fura supports WS-Security.

A Fura platform can be extended over heterogeneous resources: desktops, servers, and clusters running different operating systems. Fura can distribute computations over them, on both dedicated and scavenging (CPU cycle stealing) modes.

Fura works with the concept of "module" or abstract grid-enabled application. The modules describe the command line application interface and provisioning details (binaries), and they provide built-in facilities for parametric sweeps. Data staging and caching policies are also defined at the module level. Jobs (and modules) can be exported and imported between Fura Grids. Module design and job management can be achieved through both a programmatic SDK or interactively through the Portal. Fura includes a web-service based file system as central data store.

The administrative tools in Fura include an installation and configuration wizard, a built-in role-based user system, authorization via access control lists, resource usage policies, and error detection and recovery facilities.

From a functional point of view, Fura capabilities can be classified as providing delivery, virtualization, and management.

The delivery components are those related to the optimal execution of applications. For this purpose, the Fura extends the Grid to a collection of different types of computing resources. Agents are lightweight Grid resources with low hardware requirements whose native solution can be installed in virtually any machine of an intranet. A Batch resource is a grid component that installed in an existing batch system that working as mediator (proxy) between both systems is responsible for managing batch queues used by Fura. A Subordinate Server allows you to set up hierarchically dependant grid platforms, where one main Server can send grid work to a secondary (Subordinate) grid Server, which then sends and manages the work to the grid platform it controls. A Shell resource is for low latency on-line operations or command line executions on machines dedicated to the grid. A JVM resource allows the execution of Java applications in the Java virtual machine that a Grid Server has running internally, avoiding having to start and stop a java virtual machine every time that a java application needs to be executed . Both Shell and JVM resources differ from the rest in the way they communicate with a Fura Server, instead of only requesting work –pull mode—they can operate in both push and pull modes.  On top of that, resource grouping is a component that permits the reservation and clustering of these computing resources.

Virtualization encompasses the abstraction of IT resources/data from the people and applications using them, as well as the consolidation of them into a pool that can later be reallocated on-demand. The virtualization in Fura exists at all levels: the virtual file system provides a fully WS-based access to data resources from any component in the Grid, the virtualization of Grid-enabled applications abstracts them from the resource layers, and additionally provides autonomic splitting and scheduling of tasks, and seamless legacy code integration. Finally, the resource layer is virtualized and treated as a pool processing power, but the individual characteristics of each discrete system can be detected and grouped dynamically.

On the management side, Fura streamlines management with low-level services related to authentication, user policies, resource policies, temporary data storing and caching, and basic agent management (resource description, benchmarking, provisioning). Other services provide logging, messaging, and provisioning and caching of applications. Finally, higher level services provide real time and historical data on the usage of the Grid, including user activity, application activity, or economical costs.

The Fura Server and computing resources are complemented with a complete SDK for programming and a collection of graphical tools for Grid administrators and users.

 

Additional Functionality

OGSA-DAI

Fura can deploy a standard “out-of-the-box” OGSA-DAI server. It is an added service is a low-level integration of the functionalities and capabilities of both products. Fura 1.7 and later includes an OGSA-DAI plug-in. During the standard Fura Server installation, the installation of this plug-in will give you full OGSA-DAI support in the Server.

OGSA-DAI is an extensible framework accessed via web services that executes data-centric workflows, involving heterogeneous data resources for the purposes of data access, integration, transformation, and delivery within a grid. It is intended as a toolkit for building higher-level application-specific data services and sharing data resources in a grid.

MPI

Fura software is compatible with any of the MPI implementations, so you can create queues in Fura to execute MPI work.

LDAP

Instead of using the User management System from Fura, you can use, if you want to, the user system of an LDAP server. If you have to have an LDAP server installed and configured, Fura just needs to know the login information to connect and support the users defined in LDAP, plus the correspondence between the fields that define the LDAP users and those needed to define users in Fura.

Back to middleware list