COM+ is an extension of Component Object Model (COM), Microsoft's strategic building block approach for developing application programs. COM+ is both an object-oriented programming architecture and a set of operating system services. It adds to COM a new set of system services for application components while they are running, such as notifying them of significant events or ensuring they are authorized to run. COM+ is intended to provide a model that makes it relatively easy to create business applications that work well with the Microsoft Microsoft Transaction Server (MTS) in a Windows NT or subsequent system. It is viewed as Microsoft's answer to the Sun Microsystems-IBM-Oracle approach known as Enterprise JavaBeans (EJB).
Among the services provided by COM+ are:
- An event registry that allows components to publish the possibility of an event and other components to subscribe to be notified when the event takes place. For example, when a sales transaction is completed, it could trigger an event that would allow other programs to be notified for subsequent processing.
- The interception of designated system requests for the purpose of ensuring security
- The queues of asynchronously received requests for a service
How COM+ Works Briefly
A "component" is a building block program that is self-describing. This means that it can be run with a mix of other components and each will be able to understand the capabilities and characteristics of the other components. Practically, this means that a new application can be built by reusing components already known to exist and without having to compile the application. It also makes it relatively easy to distribute different components of an application among different computers in a network. Microsoft's Distributed Component Object Model (DCOM) adds interfaces to do this.
In addition to its self-description, a component consists of one or more classes that describe objects and the methods or actions that can be performed on an object. A class (or coclass in COM+ terminology) has properties described in an interface (or cointerface). The class and its interface are language-neutral.
Associated with the class are one or more methods and fields that are implemented in a specific language such as C++ or Java or a visual programming environment. When you instantiate a class, you create an object (something real that can be executed in the computer). Sometimes the term "class" is also used for the instantiated object (which can be confusing).
Using COM, objects (or classes) and their methods and associated data are compiled into binary executable modules, that are, in fact, files with a dynamic link library (DLL) or EXE file name suffix. A module can contain more than one class.