Saturday, April 21, 2012

COM and DCOM in .Net

COM is a platform-independent, distributed, object-oriented system for creating binary software components that can interact.
COM (Component Object Model) A standard that is used to for communication between OS and the softwares. COM is used to create reusable software components.
COM objects can be created with a variety of programming languages. Object-oriented languages, such as C++, provide programming mechanisms that simplify the implementation of COM objects. These objects can be within a single process, in other processes, even on remote computers.
COM is a Specification defined by microsoft  in order enhance the productibility of one application in to other.COM is a FrameWork which when implemented both the application can talk each other.COM is set of rules and it is language independent.  COM talk about Language interability. and reusablility.

Component Object Model (COM) is a standard introduced by Microsoft.
COM is a language-neutral way of implementing objects.
It can be used in different environments, even other than where it was created
It can be used across the machine boundaries
A good COM component (well written) allow re-usability. The component implementers have to just know about its    interface.                                                                                                         It has been implemented on several platforms, COM is primarily used with Microsoft Windows.


Nothing but Distributed COM
This will use RPC mechanism for communication                                                                                                                          
DCOM had to solve the problems of

- serializing and deserializing the arguments and return values of method calls "over the wire".

- ensuring that references held by clients of interfaces are released when, for example, the client process crashed, or the network connection was lost.

COM component object model – it is a specification from Microsoft which advises never built software as a monolithic unit in spite it tells building of software by dividing it into smaller library and then build it as software.
The advantage of building software using a COM architecture will be like –
1 maintenance of the software easier.
2 reusability – which allows using a library or component under multiple software .


Component Object Model (COM) is a binary programming standard. If you genetically combine a whale and a dinosaur, imagine you get a new super dino-whale species. Combining the two higher level programming models, Object based and Distributed computing, a new super high level COM programming model has evolved.
Object oriented software has solved numerous software industry challenges like reuse and productivity. Distributed computing architectures like parallel processing, master/slave, peer to peer, client/server, etc., has alleviated the problems with monolithic software. By combining some of the finest features of these two techniques, the COM standard enforces and enables the engineers to build reusable binary compatible software.

COM+ : COM+ is an extension of Component Object Model (COM). COM+ is both an OOP architecture and a set of operating system services.

DCOM an extension of the Component Object Model (COM) that allows COM components to communicate across network boundaries. Traditional COM components can only perform interprocess communication across process boundaries on the same machine. DCOM uses the RPC mechanism to transparently send and receive information between COM components (i.e., clients and servers) on the same network.

What COM Is Not?
·         COM is not a computer language. In fact, COM can be implemented through a variety of languages.

·         COM doesn’t replace DLLs. In fact, components are often implemented as DLLs to exploit the ability of a DLL to link dynamically.
  • COM doesn’t stand for OLE controls (that’s ActiveX), compound documents (that’s OLE DB and ADO) or game and graphics programming (that’s DirectX). All these technologies are however based on COM.