The Common Object Request Broker Architecture (CORBA) is the most successful representative of an object-based distributed computing architecture. Although CORBA simplifies the implementation of complex, distributed systems significantly, the support of techniques for reliable, fault-tolerant software, such as group communication protocols or replication is very limited in the state-of-the-art CORBA or even fault-tolerant CORBA. Any fault tolerance 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. We present a genetic framework, which makes existing CORBA components fault tolerant. 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. Furthermore, we propose usage of aspect-oriented programming (AOP) techniques to describe fault-tolerance as a non-functional component property. We describe the automatic generation of replicated CORBA services based on aspect information and demonstrate service configuration through a graphical user-interface.
[1]
Cristina V. Lopes,et al.
Aspect-oriented programming
,
1999,
ECOOP Workshops.
[2]
Gregor Kiczales,et al.
Aspect-oriented programming
,
2001,
ESEC/FSE-9.
[3]
Flaviu Cristian,et al.
Atomic Broadcast: From Simple Message Diffusion to Byzantine Agreement
,
1995,
Inf. Comput..
[4]
Kenneth P. Birman,et al.
The process group approach to reliable distributed computing
,
1992,
CACM.
[5]
Lui Sha,et al.
Evolving dependable real-time systems
,
1996,
1996 IEEE Aerospace Applications Conference. Proceedings.
[6]
Lui Sha,et al.
Composite objects: real-time programming with CORBA
,
1998,
Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).
[7]
Deron Liang,et al.
A fault-tolerant object service on CORBA
,
1997,
Proceedings of 17th International Conference on Distributed Computing Systems.
[8]
Silvano Maffeis.
A Flexible System Design to Support Object-Groups and Object-Oriented Distributed Programming
,
1993,
ECOOP Workshop.
[9]
Ibrahim Al-Shyoukh.
ORBacus for C++ and Java
,
1998
.
[10]
Miroslaw Malek,et al.
Nest: A Nested-Predicate Scheme for Fault Tolerance
,
1993,
IEEE Trans. Computers.
[11]
Algirdas Avizienis,et al.
The N-Version Approach to Fault-Tolerant Software
,
1985,
IEEE Transactions on Software Engineering.