I’ve just finished posting some more reprints from back in 2001 when I was working on CORBA systems with C++ and Java.
The articles mostly compare CORBA to COM and show why providing a reference counted server object lifetime management system is harder than it appears.
1 - CORBA - Reference Counting. Adding reference counting to CORBA objects isn’t as easy as it first seems.
2 - CORBA - More Reference Counting. Although we managed to develop a working solution in the first CORBA reference counting article the results were ugly and fragile. In this article we attempt to clean things up a little and, in doing so, get intimate with the Portable Object Adapter and its Servant Managers.
3 - CORBA - Reference Counting Issues. At the end of the second article we have developed a self contained reference counting implementation that appears to work. Unfortunately, it’s still far from reliable as CORBA doesn’t provide the level of support for reference counting that’s built into COM. In this article we discuss the problem and the various CORBA methods for controlling server object lifetime.
4 - CORBA - Enumeration. CORBA provides sequences as a way of returning collections of items from an method call. The problem with just using unbounded sequences is that the client has no control over how many items it receives as a result of the call. COM gets around this problem using the IEnum style interfaces that allow a client to control how it accesses the items in a collection.
5 - CORBA - Iteration. A CORBA style method of enumeration can be seen in the iteration interfaces on the CORBA Naming Service. Given the code we’ve already written for the enumeration interface we can easily implement an iteration interface as well as (or, more likely, instead of).
6 - CORBA - The Evictor Pattern. Since CORBA doesn’t really support reliable reference counting implementations we’ll compare one of the recommended methods of servant life-time management with our reference counted iteration interface.
7 - CORBA - Keep Alive. One way of making a reference counted implementation more robust is to run the keep-alive protocol yourself. We demonstrate this option here.
8 - The CORBA Evictor Pattern in Java. In part 6 we solved the problem for C++ servers, here we do the same for Java servers.