'

Automatic generation of fault-tolerant CORBA services

Andreas Polze, Janek Schwarz, and Miroslaw Malek, Humboldt-University of Berlin, Germany

The Common Object Request Broker Architecture (CORBA) is the most successful representative for an object-based distributed computing architecture. Although CORBA simplifies the implementation of complex, distributed systems significantly, support of techniques for reliable, fault-tolerant software, such as group communication protocols or replication is very limited in today´s CORBA or fault-tolerant CORBA.

Any fault-tolerant extension for CORBA components needs to trade off data abstraction and encapsulation against implementation specific knowledge about a component´s internal timing behavior, resource usage and interaction patterns. These non-functional aspects of a component are crucial for the predictable behavior of fault-tolerance mechanisms. However, in contrast to CORBA´s interface definition language (IDL), which describes a component´s functional interface, there is no general means to describe a component´s non-functional properties.

Within this paper, we present a generic framework, which extends existing CORBA components with fault-tolerant behavior. In adherence with a given, programmer-specified fault model, our framework uses design-time and configuration-time information for automatic distributed, replicated instantiation of components. A graphical user interface allows the component programmer to choose fault-tolerance techniques supported by a particular service implementation from a list of options. At configuration time, the system administrator may use a similar graphical tool to specify properties of the execution environment (number of nodes, etc.) and start the instantiation process for a number of replicated core service objects (based on a previously chosen fault model).

We describe the automatic generation of replicated CORBA services based on aspect information and demonstrate service configuration through a graphical user-interface. Furthermore, we propose usage of aspect-oriented programming (AOP) techniques to describe fault-tolerance as a non-functional component property.'