DCOM - The Distributed Component Object Model

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Microsoft Windows NT Server

This paper provides a business overview of DCOMthe Distributed Component Object Modela technology that enables software components to communicate directly with each other across networks, including the Internet and intranets.

On This Page

Components and Desktop Development
Components and the Network
Components and the Internet
Components and the Enterprise
DCOM Availability


With the advent of the Java programming language and the growth of the Internet, IT (Information Technology) managers are once again excited at the prospect of using component software technologythe idea of breaking large, complex software applications into a series of pre-built and easily developed, understood, and changed software modules called componentsas a means to deliver software solutions much more quickly and at a lower cost.

The goal is to achieve economies of scale for software deployment across the industry. A component architecture for building software applications will enable this by:

  • Speeding developmentenabling programmers to build solutions faster by assembling software from pre-built parts

  • Lowering integration costs providing a common set of interfaces for software programs from different vendors means less custom work is required to integrate components into complete solutions

  • Improving deployment flexibility making it easier to customize a software solution for different areas of a company by simply changing some of the components in the overall application

  • Lowering maintenance costsisolating software function into discreet components provides a low-cost, efficient mechanism to upgrade a component without having to retrofit the entire application

A distributed component architecture applies these benefits across a broader scale of multiuser applications. The Distributed Component Object Model (DCOM) has three unique strengths that make it a key technology for achieving this:

  • DCOM is based on the most widely-used component technology today

    DCOM is simply "COM with a longer wire"a low-level extension of the Component Object Model, the core object technology within Microsoft ActiveX. The ActiveX Web site can be found at http://www.microsoft.com/activex/default.htm. Major development tools vendorsincluding Microsoft, Borland, Powersoft/Sybase, Symantec, ORACLE, IBM, and Micro Focusalready sell software development tools that produce ActiveX components. These tools and the applications they produce automatically support DCOM, providing the broadest possible industry support. Additionally, over 1,000 existing commercial software components that will work with DCOM are already available for use by developers.

  • DCOM is the best networking technology to extend component applications across the Internet

    Because it is an ActiveX technology, DCOM works natively with Internet technologies like TCP/IP, the Java language, and the HTTP network protocol, providing "object glue" that will enable business applications to work across the Web. DCOM enables distributed Java today without requiring any communications-specific code or add-ons such as "remote classes."

  • DCOM is an open technology that runs on multiple platforms

    Microsoft is openly licensing DCOM technology to other software companies to run on all of the major operating systems, including multiple implementations of UNIX-based systems. Software AG, has DCOM running on the Solaris-based operating system today. Additionally, Microsoft is seeking to work with the Internet standards bodies, including the IETF and the W3C, to promote DCOM as a public Internet technology. The Internet Draft technical publication that contains a publicly available description of the DCOM network protocol can be found at http://ds.internic.net/Internet-drafts/draft-brown-dcom-v1-spec-00.txt.

The combination of these three factorsthe largest installed base, native support for Internet protocols, and open support for multiple platformsmeans that businesses can realize the benefits of a modern component application architecture without having to replace investments in existing systems, staff, and infrastructure.

Components and Desktop Development

Component-based development is established today as a mainstream business technology on the desktop.

DCOM has its roots in Microsoft's object technology, which has evolved over the last decade from DDE (Dynamic Data Exchange, a form of messaging between Windows programs), OLE (Object Linking and Embedding, embedding visual links between programs within an application), COM (the Component Object Model, used as the basis for all object binding), and ActiveX (COM enabled for the Internet).

The evolution of this technology shares a common theme: each iteration reduces the complexity of building large applications while enabling the delivery of successively richer functionality to the end user. This can lower application development costs, because developers can leverage pre-built components and their interfaces without having to spend as much time testing and integrating the work of multiple people.

Applications built from components are simply easier to debug and evolve than large, monolithic applications.

For example, the "Year 2,000 Problem"where many large organizations are scrambling to fix their production systems to avoid failure when the date changes to the new millenniumis an application design problem, not a date problem. If legacy applications were written with a common date component, the fix would be easy to isolate and inexpensive to repair.

Most developers for the Microsoft Windows operating system understand these benefits and use the ActiveX component architecture. There are over three million professional programmers trained on ActiveX and its technologiesOLE, COM, and DCOMand hundreds of independent software companies ship thousands of prebuilt software components. These commercial software components can be used by developers working with Microsoft Visual Basic, PowerBuilder, Micro Focus Visual Object COBOL and other popular tools.

The key business benefits of ActiveX on the desktop automatically extend to DCOM across the network:

  • Language neutralDevelopers can build ActiveX components from any language; for example, ActiveX components built in COBOL can work with components built in Java

  • Broad tools supportMost major software development tools vendors support ActiveX

  • Broad industry supportThousands of pre-built components are available on the market

  • Accessible technologyA large pool of professional developers currently work with ActiveX

Components and the Network

The logical boundary for component applications is no longer on a single machine. Businesses want to leverage the benefits of component development across a broader set of multiuser applications.

Companies want to apply the benefits of component software, rapid reuse, broad industry support, and availability of thousands of components, across shared applications that operate on multiple machines. These types of applications are referred to as "three-tier" or "n-tier" applications, where "tiers" of application logic, presentation services, business services, and information retrieval and management services, are broken into different components that can communicate directly with each other across a network. To the end user, these applications appear as a seamless extension of their existing desktop environment. For the IT manager, they represent the opportunity to apply the economics and flexibility of desktop development across a broader set of application problems.

For example, a business may deploy a new sales management system based on a multitier application design using components. The application includes different order entry components, each one designed for a separate sales channel. These components all use a common, single tax calculation component that runs on a server. As tax laws change, the company only has to change the tax component located on the server, without having to retrofit the order entry components for each of the different sales channels.

DCOM is an ideal technology for multitier applications because it enables ActiveX components to work across networks, enabling developers to easily build systems that span machine boundaries. In the scenario described above, developers integrate components together without having to worry about network programming, system compatibility, and integration of components built from different languages.

This can lower the cost and complexity of building distributed applications from components. DCOM leverages the investments companies have already made in ActiveX by providing the following benefits:

  • Growth path for desktop developersDCOM enables the millions of existing ActiveX programmers to build server components that natively interoperate with the desktop counterparts, thereby broadening the target audience of these developers

  • Common component model for clients and serversCompanies can deploy the same set of developers for clients and servers, thus helping to lower training, tools, and support costs

  • Multiplatform supportDCOM is designed to run on Windows 95, Windows NT, Macintosh, UNIX, and legacy operating systems, providing companies with the basis for a common application infrastructure across their entire IT environment, which can lower integration costs and reduce integration complexity

  • Based on public, open standardsDCOM is layered on the Open Group Distributed Computing Environment RPC mechanism, a network communications protocol developed and endorsed by IBM, Sun Microsystems, Hewlett-Packard, and Digital Equipment Corporation, a source code implementation of which is available for free from the Open Group. The additional object-related extensions to the DCE RPC required by DCOM are publicly available at ftp://ftp.microsoft.com/developr/drg/OLE-info/COMSpecification/ and http://ds.internic.net/Internet-drafts/draft-brown-dcom-v1-spec-00.txt

Components and the Internet

Businesses want to use Internet protocols to link component-based applications across public and private networks, projecting a presence of their business systems out onto the Web.

The simplicity, ubiquity, and industry momentum of standard Internet protocols like HTTP make it an ideal technology for linking components together for applications that span machine boundaries. HTTP is easy to program, is inherently cross-platform, and supports an accessible, universal naming service. Much of the excitement around the Java language derives from its potential as a mechanism to build distributed component applications on the Internet.

For example, many companies have built investment portfolio management systems that rely upon an Internet-based data streams, such as Pointcast for stock information. This enables a low cost way to leverage and integrate existing services and applications into an in-house solution based on browser and Web technology. Developers can simply "plug-in" the services of a remote component communicating over the Internet as a low-cost means to enhance the functionality of an in-house solution.

DCOM enables component applications to operate across the Internet. Microsoft is working with Internet standards bodies, including the IETF and the W3C, to offer DCOM to the Internet community as an open technology.

DCOM is ideally positioned to become a mainstream, Internet technology for business applications because it is:

  • Transport neutralDCOM enables components to communicate with each other over any network transport, both connection-oriented and connectionless, including TCP/IP, UDP/IP, IPX/SPX, AppleTalk, and HTTP.

  • Provides distributed Java todaySince DCOM is language neutral, Java applets can communicate directly with each other (and any other ActiveX component, regardless of authoring language) via DCOM over the Internet.

  • Evolutionary technologyIn addition to Java support, DCOM enables components written in other languages, including C, COBOL, Basic, and Pascal, to communicate over the Internet, providing a growth path for existing applications to support Web technology.

  • Common components for the browser and Web serverSince ActiveX components can be embedded into browser-based applications, DCOM enables a rich application infrastructure for distributed Internet applications that leverage the latest browser technology.

  • SecurityDCOM integrates Internet certificate-based security with an even richer level of Windows NT-based security, combining the best of both worlds.

  • Standards-basedDCOM is based on the Open Group DCE RPC, an open and widely-deployed communications technology. The DCOM wire protocol extensions have been submitted as an Internet draft and can be downloaded at <http://ds.internic.net/Internet-drafts/draft-brown-dcom-v1-spec-00.txt>.

Components and the Enterprise

As distributed applications built from simple components and Internet protocols emerge, a new set of "Enterprise" platform services for component applications will be required.

A key goal of any component software architecture is to separate business logic, for example, how a tax component calculates tax rates, from execution logic, for example, whether the tax component runs in a browser or on a multiprocessor server. DCOM extends this separation even further, because the same components can communicate with each other across processes in a single machine or across the Internet via HTTP.

However, components by themselves do not solve all of the issues of enterprise application complexity.

For example, a business wants to rapidly build and deploy a customer order entry application that involves five different areas of functionalitytax calculation, customer credit verification, inventory management, warranty update, and order entry. The application is built from five separate components and operates on a Web server with access via a browser. How does the developer handle exceptions? System failures? Network outages? Peaks in performance load?

It defeats the two main goals of component-based development, fast time-to-market and lower development costs, if companies are forced to "hand-code" into their component applications the mission critical services that are required for online production systems.

To address the enterprise requirements for a distributed component architecture, without sacrificing rapid development and cost effectiveness, Microsoft is integrating DCOM into the ActiveX Server, a series of technology services that speed deployment of component-based applications across the Internet and corporate intranets. Some of the ActiveX Server Framework services include:

  • TransactionsTraditional rollback and recovery for component-based applications in the event of system failure

  • QueuingThe integration of component communication with reliable store-and-forward queues, which enables component applications to operate on networks that are occasionally unavailable

  • Server scriptingThe easy integration of component applications on the server with HTML-based Internet applications

  • Legacy accessThe integration of component applications with legacy production systems, including mainframe systems running CICS and IMS

The ActiveX Server technologies will be built using publicly available Internet protocols and will begin to appear in 1996.

DCOM Availability

  • DCOM will first ship with Windows NT Server 4.0 and Windows NT Workstation 4.0 in the summer of 1996.

  • DCOM for Windows 95 will be available for download on the Internet in Q3 1996.

  • DCOM for the Macintosh will be available for download on the Internet in Q1 1997.

  • DCOM for Solaris will be available for download on the Internet in Q4 1996.

Additional implementations of DCOM on other Internet and Enterprise platforms will be available in Q1 1997.

For more information

For the latest information on Windows NT Server, check out our World Wide Web site at http://www.microsoft.com/backoffice or the Windows NT Server Forum at the Microsoft Network (GO WORD: MSNTS).