DCOM The Distributed Component Object Model

Windows NT® Server

Server Operating System

A Business Overview

White Paper

Abstract

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

© 1997 Microsoft Corporation. All rights reserved.

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.

ActiveX, BackOffice logo, Microsoft, Visual Basic, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Other product or company names mentioned herein may be the trademarks of their respective owners.

Microsoft Corporation · One Microsoft Way · Redmond, WA 98052-6399 · USA

0497Part no. 098-XXXXX

Introduction

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

A component architecture for building software applications will enable the software provider to achieve economies of scale for software deployment by:

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, putting 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 has a consistent theme: each iteration reduces the complexity of building large applications while enabling the delivery of successively richer functionality to the user. This can lower application development costs because developers can use pre-built components and programming interfaces—greatly reducing the integration and test overhead required when integrating the work of multiple developers.

Applications built from components are easier to debug and add to than large, monolithic applications. As an example, consider the "Year 2,000 Problem" which has many large organizations scrambling to fix their production systems to avoid failure when the date changes to the new millennium. In reality, this is an application design problem, not a date problem. If applications were written with a common date component, the fix would be easy to isolate and inexpensive to repair.

Most Windows developers understand these benefits and use the ActiveX component architecture. There are over three million professional programmers trained on ActiveX and its technologies—OLE, COM, and DCOM—and hundreds of independent software companies shipping pre-built software components. These 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:

COMPONENTS AND THE NETWORK

The logical boundary for component applications is no longer on a single computer.

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 computers. 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 user, these applications appear as a seamless extension of their existing desktop environment. For the IT manager, they are an 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 that uses components. The application includes different order entry components, each one designed for a separate sales channel. These components all use a common tax calculation component that runs on a server. As tax laws change, the company has to change only 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 computer boundaries. Developers add components together without having to worry about network programming, system compatibility, or 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:

COMPONENTS AND THE INTERNET

Businesses can use component-based applications to project a business presence onto the Web.

The simplicity, ubiquity, and industry momentum of standard Internet protocols such as the HyperText Transfer Protocol (HTTP) make the Internet an ideal technology for linking application components that span computer boundaries. HTTP is easy to program, is inherently cross-platform, and supports an accessible, universal naming service. And much of the excitement around the Java language derives from its potential as a tool to build distributed component applications for the Internet.

DCOM enables these component applications to operate across the Internet. DCOM is ideally positioned to become a mainstream, Internet technology for business applications:

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—how a tax component calculates tax rates—from execution logic—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 computer or between computers over the Internet.

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 functionality: tax calculation, customer credit verification, inventory management, warranty update, and order entry. The application will be built from five separate components and will operate on a Web server. How does the developer handle exceptions? System failures? Network outages? Peaks in performance load? Must these be hand-coded into the application?

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 the mission critical services that are required for online production systems.

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

DCOM AVAILABILITY

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).

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