Reliability and availability are very important trends
in the development process of distributed systems. In order
to improve these features, object replication mechanisms
have been introduced. Programming replication policies
for a given application is not an easy task, and this is the
reason why transparency for the programmer has been one
of the most important properties offered by all replication
models. However, this transparency for the programmer is
not always desirable. In this paper we present a replication
model, JReplica, based on Aspect Oriented Programming
(AOP). JReplica allows the separated specification of the
replication code from the functional behaviour of objects,
providing not only a high degree of transparency, as done
by previous models, but also the possibility for
programmers to introduce new behaviour to specify
different fault tolerance requirements. Moreover, the
replication aspect has been introduced at design time, and
in this way, UML has been extended in order to consider
replication issues separately when designing fault tolerance
systems.Comisión Interministerial de Ciencia y Tecnología TIC99-1083-C02-0