Another advantage of the POA is its extreme scalability. Using servant managers and default servants, it's possible to design servers that can handle thousand or even millions of objects. The Implementation Repository Production environments commonly need the ability to start servers on demand, and the flexibility to migrate servers to different hosts without adversely affecting clients. Valuetypes are similar to structs, but support operations, inheritance and arbitrary sharing semantics. The latter is especially important for defining complex data structures, such as lists, trees, or graphs.
Abstract interfaces provide an even higher degree of flexibility.
An instance of an abstract interface can either be a regular object reference or a valuetype, as determined at runtime. This allows a mixture of local and remote objects having the same interface, and whose location is transparent to the client. Portable Interceptors ORBacus 4 is the first ORB to implement the new Portable Interceptor specification. For example, it's easy to write an interceptor that logs all operation invocations, including exceptions, return values, and parameters.