London e-Science Centre homepage London e-Science Centre homepage UK Research Council - e-Science homepage
 
Home Page
Projects
Supported Activities
Resources
Services
News and Events
Publications
ICENI- Grid Middleware
  Background
  Architecture
  Papers
  Presentations
  Demos
  Tutorials
  Mailing List
  Downloads
  Documentation
  Dashboard
  Licence
Articles and Links
Current Vacancies
Contacts

   Development     Bugzilla     Access the CVS Archive     Contributing to ICENI
[ICENILogo.gif] ICENI - Imperial College e-Science Networked Infrastructure - Architecture

The Imperial College e-Science Networked Infrastructure - ICENI - is a service oriented/integrated Grid middleware that provides an augmented component programming model to aid the application developer in constructing Grid applications, and an execution infrastructure that exposes compute, storage and software resources as services with defined conditions of when and by whom these resources may be used. It utilises open and extensible XML schemas to encapsulate meta-data relating to resource capability, service availability and application behaviour. These elements include:

  • A component framework that separates the concerns of component interface, behaviour and implementation into well defined XML schemas while enabling visualisation and computational steering.
  • A federating Grid middleware built from Java and Jini that enables an organisations resources to be exposed as services with well-defined usage and access control polices.'
  • e-Science portals that utilise the component meta-data and services within ICENI to simplify access to Grid resources and applications.
  • Interoperability of the services and meta-data within ICENI to other service oriented architectures - such as the Open Grid Services Architecture (OGSA).
  • The development of higher-level services, such as application mappers and resource brokers.


Augmented Component Programming Model

The ICENI component framework is based upon two key principles: separation of concerns, and the utilisation of information at all stages of a computation. By capturing meta-data regarding the component from its definition, its assembly into an application, through to its deployment onto distributed resources, we can influence the placement of a component network so as to maximise user and resource provider criteria.

[ICENI-3_level.jpg]

A single component interface may have many behaviours



During component construction we isolate distinct aspects of the component meta-data. While the software interface is defined in a similar fashion to commodity component systems, we also record additional information concerning component meaning, behaviour and implementation. Components and ports are typed with a separate system from that of the software interface, allowing meaning to be attached to each component. Behavioural information, in terms of control flow and data flow into and out of a component's ports, together with thread data, is stored separately. The component's implementation possesses meta-data regarding its performance characteristics and platform specific requirements and settings.

By separating this information, we can maintain multiple implementations for given abstractions. For example, a given meaning and behaviour may be satisfied by more than one component implementation, each with its own performance characteristics and requirements. Similarly, a single component meaning may be compatible with multiple behaviours.

[ICENI-Multiple-Implementation.jpg]

Each component may have several implementations using different algorithms and languages on many platforms.



We maintain this separation of abstraction and implementation until run-time. This allows the ICENI system to make use of run-time information regarding available resources and their capabilities, while at the same time recalling the component meta-data containing high-level information concerning the component. ICENI passes this information to a scheduler (that can be plugged into the framework), which not only selects the target resources, but the optimal implementation for the user's chosen abstractions.

[ICENI-SIAM.jpg]

The user assembles an application from components stored in a repository. The framework uses the component meta-data to build a run-time representation. This is used to find an optimal mapping of the application onto the available Grid resources.



The component, when deployed, is provided with an automatically generated Context Object which acts as a run-time representation for the component. This object connects the component's interface to other components', and filters external connections to the component. The Context Object and the component rest within a dynamically created Grid Container, which exposes the running components as Jini services. The method of communication between components deployed upon remote platforms is chosen automatically at run-time, and loaded into the Context Object. The inter-component communication mechanism is therefore transparent to the Component developer.


Service Oriented Architecture

The ICENI architecture consists of two clearly defined areas: a private administrative domain which is used to manage the resources within an organisation, and a public computational community that exposes these resources as services so that they may be invoked by other approved entities.

[ICENI-Architecture.jpg]

Overview of the ICENI architecture.



The Domain Manger links these two areas by adding an access and usage policy to resources within the private administrative domain and exposing these resources as services in a number of public computational communities. This allows the same resource to be exposed to different user communities with different usage and access control policies. Incoming requests to use the resource are validated by the Domain Manager through an accompanying Globus compatible X.509 public key certificate.

<?xml version="1.0" encoding="UTF-8"?>
<contract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="http://www.iceni.ac.uk/xmlSchema/contract"
          xsi:schemaLocation="http://www.iceni.ac.uk
                             /xmlSchema/contract
                             /vol/iceni/icpc-ore/data/xml
                             /grid/contract/CONTRACT.xsd"
          duration="1200">
  <allow>
    <entity type="person"
            name="CN="JohnDoe,OU=doc.ic.ac.uk,
                  O=LeSGrid,C=UK"/>
  </allow>
  <deny startDay="friday" startHour="13" stopDay="sunday">
    <entity type="group" name="ICPC"/>
  </deny>
  <allow stopDay="saturday" stopHour="20">
    <entity type="organisation" name="EUDataGrid"/>
  </allow>
</contract>

A typical ICENI contract stating when specific individuals, groups and organisations may or may not use a service.


The access and usage conditions attached to a service within ICENI are becoming increasingly sophisticated. The availability of all ICENI services is defined through a contract (or Service Level Agreement) stating who may access the service, when they may access the service, the resources available to them and how long the service (and therefore the resources) will be available to them. These abstractions are now being extended to support a computational marketplace, allowing users to 'buy' the cheapest services that meet their specific requirements.

The core ICENI infrastructure uses Java and Jini to build the service oriented architecture. The services within ICENI may be exposed as Open Grid Service Architecture (OGSA) services through a specialised deployment service in the computational community. These OGSA compatible services enable interoperability between ICENI and other Grid infrastructures. The additional meta-data relating to access and usage policy within ICENI is exposed through the OGSA service data element. The services within the computational community may also be accessed through other mechanisms, such as the EPIC (E-Science Portal at Imperial College) project.

[WWHL-ICENI-OGSA-Architecture-diagram.jpg]

Automatic deployment of ICENI services as OGSA compatible services.



[netbeans.jpg]

The ICENI component browser and application builder within the Netbeans environment.




Further information can be obtained from iceni@imperial.ac.uk.


Back to top

Comments to lesc@imperial.ac.uk. © The London e-Science Centre.
This page was last modified on Thu Oct 13 15:09:49 BST 2005