CMI: a method to configure Corba remote calls in support of FT- Corba fault-detection mechanisms



Collocated CORBA objects that reside in the same address space can benefit from special local calls which can be performed without ORB intervention. This type of invocation can be particularly beneficial to fault detection mechanisms defined in FT-CORBA specifications. According to FT-CORBA, a group of objects, namely fault detectors, periodically monitor the status of replicated objects in the system to make sure that they are alive. In cases where a fault detector object is collocated with some of the objects that are monitored by this detector, direct invocations can improve the performance of fault detection mechanisms. All the known available methods for direct calls to collocated CORBA objects are flawed either with unnecessary pre-checks that are performed before each invocation, or with violation of the remote call semantics (like bypassing ORB and POA). In addition, as this paper shows, in some cases the default pre-checks that are performed before a call are not sufficient, and none of the available methods allow the applications to perform domain-dependent pre-checks or to only override the default ones. CMI (Configurable Method Invocation)is a new method that allows the pre-checks to be selected before each direct call in order to avoid investigating unnecessary conditions. Furthermore, it allows the developers to make application-dependent pre-checks or override the existing ones before each call. To achieve these two properties, we have changed the CORBA IDL compiler in such a way to generate a special code in addition to the code for collocation-safe stubs. This extra code permits the developer to manipulate the execution of pre-checks which must be performed before each call. Implementation results of our method show a 41% reduction of communication overheads in a fault detection mechanism compared to the standard approach. The possibility of checking a user-defined pre-check before each direct call is also shown.