COM, or Component Object Model, is a platform developed by Microsoft that deals with software components. It was first released in 1993, and it allows a procedure to occur known as interprocess communication. In addition to this, it also allows objects to be dynamically created in any programming language that is compatible with COM. Many people use the word COM when talking about things such as Active X or DCOM. While it was created in 1993, Microsoft did not place an emphasis on the word COM until the end of the 1990s. In a nutshell, COM allows objects to be used in a lot of different environments instead of just the one they were created in.
When it comes to programming languages, COM is neutral. In addition to environments, COM allows objects to be used on different machine platforms as well. Once an object is created, it can be reused, and the previous implementations of the objects are not taken into consideration. Those who wish to implement the objects must showcase high quality interfaces which are different from the implementation itself. The objects that are created in multiple languages will be given responsibility for both their destruction and creation. This is done through a process that is called reference counting. A special function is used to denote differences between the various interfaces of an object. In most cases, the best way to achieve inheritance within COM is through the use of sub-objects.
While COM can be used with a variety of different platforms, it is still used mostly on Windows based systems. It has fallen out of use to a certain extent by the use of Microsoft .NET. In addition to this, the use of Web Services and the WCF has slightly reduced the need for COM to be utilized. However, COM was designed to be a competitor of systems such as CORBA. The road to creating COM was first achieved through the procedure of interprocess communication, which was basically the use of receiving or sending messages within DDE. Visual Basic also laid the foundation for COM by allowing created objects to be manipulated via their properties.
One of the primary developers responsible for the creation of COM is Anthony Williams. He wrote a number of papers that defined the concepts that would be used for COM. The ideas that were presented by Williams were used in the creation of OLE, or Object Linking and Embedding. It was built for handling compound documents. It was first showcased with the 1991 version of Microsoft Word and MS Excel. A spreadsheet that has been placed within a Word document is a basic example of a compound document. Any changes that are made to the document within Excel will automatically be present in the document that is embedded in the Word document. When OLE 2 was introduced, it placed an emphasis on the use of the object model, and dealt heavily with software structures. By 1994, OCX was showcased by Microsoft.