Object replication is a way to improve the availability and scalability of applications based on distributed object architecture. As replication is independent of application logic, various platforms come with this feature integrated right into the middleware architecture. This paper claims that replication should not be a part of the distributed object middleware core, because, first, it does not fit there, and, second, it has a negative impact on the quality of the middleware code. The authors also present their own common object request broker architecture (CORBA) middleware implementation supporting replication, and describe the approach taken to separate the replication component into a separate library, which they have then integrated with a non-CORBA middleware architecture.
The paper starts with an introduction to distributed object middleware architectures, and a comprehensive summary of existing approaches to object replication. The authors focus on CORBA, although Java Remote Method Invocation (RMI) is also briefly discussed, and .NET remoting is also mentioned. This is followed by a discussion of the issues around providing generic replication support that is not tied to a specific middleware product. This part mentions language independency, replica consistency, replication stubs and skeletons, and the pull and push approaches. The last part is a description of the authors’ own work on separating the replication component (FTflex) from their middleware platform (Aspectix), and using it with Java RMI.
Personally, I found the first two parts more interesting. And, although the discussion of the work done on FTflex is good, I would like to have seen a comparison of the difficulty and amount of effort required to integrate FTflex with a few more middleware products.