Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
Component Object Model+ (COM+) is a binary interoperability standard defined by Microsoft that specifies a model for distributed object communication. COM+ defines communication by separating objects into clients and servers. The client is defined as an object that wants to access a particular service, while the server is an object that provides service. The client and server can communicate with each other independently of the programming language in which they are defined and independently of the operating system that lies between them.
COM is a language-neutral way of implementing objects that can be used in environments different from the one in which they were created, even across machine boundaries. For well-authored components, COM allows reuse of objects with no knowledge of their internal implementation, as it forces component implementers to provide well-defined interfaces that are separate from the implementation. The different allocation semantics of languages are accommodated by making objects responsible for their own creation and destruction through reference-counting. Casting between different object interfaces is achieved through the QueryInterface() function. The preferred method of inheritance within COM is the creation of sub-objects to which method calls are delegated.
The basic COM specification only established a distributed communication model between a client and a server without any performance optimizations. COM+ can be considered a successor to COM, with features related to Microsoft Transaction Server (MTS).
COM+ provides the following features:
To ensure reliability, COM+ uses a memory activation mechanism. With this mechanism, the amount of virtual memory is calculated prior to the creation of a server object. If less memory is available, the activation or creation of a COM+ object fails. Thus, COM+ components cannot suffer a software crash due to overload.