COM is a successful and mature technology, but it has been criticized for lacking large-scale distributed computing support and for being too difficult to use. To remedy these problems, Microsoft has enhanced COM to provide a rich runtime layer that simplifies COM programming and supports a powerful mechanism called interception, which allows for runtime extensibility. The former hides grungy stuff like class registration, dynamic invocation, versioning, reference counting, threading, etc., but the latter allows anyone to extend the runtime layer. These enhancements are important enough give COM a new name, COM+. COM is by no means obsolete; it is simply being enhanced. In fact, even with the existence of COM+, developers may still want to use COM to obtain full control in developing and using components.
Figure C-3 shows the architecture of COM+, which, as you can see, is composed of the runtime and services layers. The services layer can have one or more services that can be plugged directly into the runtime via interception. The boxes marked
Object Management, and
Metadata are built-in, runtime-level services that simplify COM usage and development. The boxes marked as
COM+ Services and
Third-Party Services are flexible extensions to the COM+ runtime and thus layer on top of the runtime. COM+ 1.0 will not support third-party services because it doesn’t expose activation and interception mechanisms, but future COM+ releases will likely add this support. In COM+ ...