With the growing emphasis on distributed applications, sophisticated progra
mming models for handling replication become important. Control replication
as an issue has so far been considered in the larger context of distribute
d systems such as ISIS and Arjuna. We present a programming model called Sh
adowObjects for programming replicated services to cater to the needs of co
ntrol replication in distributed object oriented systems. The ShadowObjects
model provides primitives for building highly available and redundant serv
ices. Replication in ShadowObjects is encapsulated and a replica access con
trol mechanism is provided. Messages accessing the services exported by a s
erver object can be captured on-the-fly, and can be appropriately scheduled
on the replicas. The ShadowObjects model can be used to develop applicatio
ns for distributed systems. (C) 1999 Academic Press.