Features



Availability

IRL masks CORBA object faults and guarantees to users (i) liveness of the service and (ii) data consistency. The behaviour of a system in which IRL runs is not altered by faults.
The tecnique adopted to guarantee these properties is software replication: replicas of a CORBA object are deployed on different hosts and IRL can (i) maintain consistent their states (if any) and (ii) spawn new replicas upon necessity.

The abstraction of object group is used to manage replicated objects: an object group is made up of a set fo replicas of the object (the members) and it is created, managed and accessed by clients as single entity. This object group abstraction provides clients with another IRL main feature, i.e. transparency.

Transparency

IRL provides different level of transparency:

  • client replication transparency: clients are not aware of object replication and access replicated, highly-available objects as they do with singleton - i.e. non-replicated - objects;
  • client failure transparency: clients are masked from group member faults;
  • developer transparency: developers have only to provide factories of their CORBA objects to IRL. An object has only to implement operations allowing for object monitoring and state inspection and modification. IRL transparently manages object creation and removal, as well as object failure detection, notification and state synchronization among replicas.

Interoperability

IRL is interoperable in the sense that interacting client and replicas can reside on top of distinct CORBA compliant ORBs, implemented by different vendors. The same IRL infrastructure is not ORB dependant and can therefore be installed on top of different ORBs (it actually is a portable infrastructure). The current prototype is written in Java, and is therefore portable among platforms, other than among ORBs.

Fault Tolerant CORBA Compliance

IRL is an open system and adopts standard interfaces for the management and the monitoring of object groups and object group members. This simplifies application porting and saves the cost of training developers on proprietary interfaces.

Three-Tier Replication

IRL is a testbed platform for three-tier replication protocols (see Architecture). Three-tier replication is a novel software replication technique aiming at decoupling replication-related issues from the replicated object design and deployment. IRL interposes a thin, highly available mid-tier between clients and stateful object group. The mid-tier receives client requests and forwards them to the object group members maintaining their state consistency. Once the object group members have generated the replies, one of them is returned to the client.

Three-tier replication allows to simplify replication of object not designed for being highly available. Moreover, it decouples the replication logic from the replicated objects and allows to modify consistecy criteria as well as the object replication protocol without having to modify or to recompile the replicated object.

In its current implementation, IRL only supports deterministic objects.