Target AudienceThe paper says that, "If you are a CIO, solution architect, or application developer who wants to create state-of-the-art applications that scale equally well on an intranet, the Internet, and beyond, DCOM can help." I would say that this paper is appropriate for software developers looking to expand a COM based application to multiple systems. It is also good for those early in the design phase that are looking for a technology to help their application scale. Type of DocumentThis document is an overview and does not go into deep detail of how DCOM works. SummaryDCOM stands for Distributed Common Object Model. It takes the original COM (Common Object Model) inter-process communication and transparently allows it to run over a network to a remote system. By using a standard network structure, multiple languages and systems can use DCOM. DCOM includes support for thread pooling to improve performance on multiprocessor systems. It allows the user to change how they deploy components without recompiling components. It includes support for versioning that notes the specific capabilities of each version so that old and new versions can interoperate. Performance is shown to be good, with little overhead for communication within one process and 35% overhead for communication over TCP/IP. DCOM reduces network overhead by combining component to component pings into sever to server pings. Pings can also be part of normal messages. DCOM supports batching multiple methods into a single call to reduce round trips. References can be passed such that the new client can communicate directly with the destination of the reference and avoid communicating through the sender of the reference. DCOM supports various security methods including NT's standard method. While not supported directly by DCOM, it is possible to implement load balancing. ConclusionIf an application is already using COM, DCOM provides a clean solution to distributing the components over multiple systems. DCOM can be used within a single process during the early phases of development and then expanded to multiple processes and multiple systems as required. There is overhead over TCP/IP, so a user must take into account the network performance between different components and group them appropriately. By David Acker Back to Distributed Systems Page |