33
(D)COM (D)COM Microsoft’s response Microsoft’s response to CORBA to CORBA Alessandro RISSO - PS/CO

(D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

(D)COM(D)COMMicrosoft’s responseMicrosoft’s response

to CORBAto CORBA

Alessandro RISSO - PS/CO

Page 2: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Talk OutlineTalk Outline◆ DCOM

◆ What is DCOM ?

◆ COM Components

◆ COM Library

◆ Transport Protocols, Security & Platforms Availability

◆ Services Based on DCOM

◆ DCOM - Pros & Cons

◆ DCOM & CORBA - A Comparison

Page 3: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

The FoundationThe Foundation◆ COM is Microsoft’s Component Model

◆ COM defines a Binary Standard for ComponentsInteroperability

◆ COM Component is a piece of compiled code thatprovides some service to the rest of the system

◆ DCOM provides Distributed Services to COM◆ allows COM Components to transparently communicate

across the network

Page 4: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

Evolution of COMEvolution of COM◆ 1993 - OLE2 introduced COM

◆ 1994 - COM in Windows NT 3.5

◆ 1996 - DCOM in Windows NT 4

◆ 1996 - ActiveX, COM enabled for the Internet

◆ 1996 - Microsoft Transaction Server (MTS)

◆ 1998 - DCOM for W95, Sun Solaris, HP-UX, IBM AIX , …

◆ 200x - COM+

Page 5: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

COM ArchitectureCOM Architecture

Page 6: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

COM ComponentsCOM Components

◆ are language-neutral encapsulated objects

◆ expose a set of structured interfaces

◆ enable other applications or components

to communicate in a standard way

Page 7: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

COM ClassCOM Class

◆ named, concrete implementation ofone or more interfaces

◆ identified by a class identifier - CLSID

“Slide” class

InterfacesIColorManager

IShow

CLSID = {55ca6522-e33e-22cf-55da-0091e2a3a124}

void SetForegrdColor (Obj o, Color c)Color GetForegrdColor (Obj o)…….

{{

Page 8: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

InterfaceInterface

◆ a group of related functions that specifies a

contract - name, interface signature and semantics

◆ denotes behavior only, not state

◆ are immutable - never versioned

◆ are strongly typed - unique identifier IID

◆ interfaces are described in MS-IDL - derived from

the IDL of OSF/DCE

Page 9: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

IUnknownIUnknown Interface Interface

◆ IUnknown defines a standard for communication

with components

◆ All COM components are required to implement it

◆ IUnknown has three methods:

◆ QueryInterface

◆ AddRef

◆ Release}Reference Counting Methods

} Returns the Interface Pointer

Page 10: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

Virtual Function TablesVirtual Function Tables

Page 11: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

IDL & COMIDL & COMInterfacesInterfaceswritten inwritten inMS-IDLMS-IDL

Small BinariesSmall Binariesloaded in loaded in Client & Server Client & Server process spacesprocess spaces

MIDLMIDLCompilerCompiler

Proxy & StubProxy & StubUUIDsUUIDsfor thefor the

Registry Registry DBDB. . . . .. . . . . Type Type LybraryLybrary

UniversallyUniversallyUnique IDs file,Unique IDs file,with all Class IDwith all Class ID& Interface IDs& Interface IDs

Binary Object with Binary Object with class & interfaces class & interfaces metadata metadata for Tools,for Tools,like like VBasicVBasic & Java & Java

Page 12: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

COM LibraryCOM LibraryA system component that providesA system component that providesthe mechanism of COMthe mechanism of COM

◆ Provides the ability to make IUnknown call

across processes

◆ Encapsulate all work associated with the

launching of components

◆ Establish connections between components

◆ In Win9x/WinNT is called OLE2.DLL

Page 13: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

PublisherPublisher ServerServer

ObjectObjectClientClientProgramProgram

Lo

cal Mach

ine

Lo

cal Mach

ine

The COM LibraryThe COM LibraryA System Component that provides theA System Component that provides themechanism of COMmechanism of COM

ServiceServiceControl MangerControl Manger

COM RuntimeCOM Runtime REGISTRY DatabaseREGISTRY Database

{CLSID}{CLSID} Server.DLLServer.DLL

Client ProcessClient Process

1

2

34

5

Page 14: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

PublisherPublisherCOMCOM

RemoteRemoteObjectObjectProxyProxy

ClientClientProgramProgram

Local MachineLocal Machine

Accessing COM ServicesAccessing COM Services

ClientClient ProcessProcess

COMCOM Local ServerLocal Server

StubStub LocalLocalObjectObject

Remote ServerRemote Server ProcessProcess

RPC

Remote MachineRemote Machine

COMCOM Local ServerLocal Server

Local ServerLocal Server ProcessProcess

LPC

In-Process In-Process ServerServer COMCOM

RemoteRemoteObjectObjectProxyProxy

StubStub LocalLocalObjectObject

In-ProcessIn-ProcessObjectObject

Page 15: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

Protocols & SecurityProtocols & Security

◆ DCOM is based on MS-RPC◆ MS implementation of OSF/DCE-RPC specification

◆ Tightly-Coupled & Synchronous

◆ DCOM can use all major Transport Protocols◆ default ones are TCP & UDP

◆ DCOM provides a Security Framework◆ It’s based on WinNT Access Control Lists for components

◆ ACLs indicate which users or groups of users have the rightto access a component of a certain class

Page 16: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

DCOM AdministrationDCOM Administration

◆ For distributed applications, it’s critical◆ To be able to centralize administration

◆ To make client installation as straightforward as possible

◆ COM components administration is not easy:◆ COM components only increase in size (no versioning)

◆ The biggest problem for maintaining “fat” clients is

updating those clients to newer versions, by modifying the

Registry file of each computer using them

Page 17: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

DCOM Availability onDCOM Availability onnon-Microsoft Platformsnon-Microsoft Platforms

◆ Sun Solaris 2.5 (Sparc)◆ HP-UX◆ Linux 2.0 Intel◆ SCO UnixWare◆ Siemens Nixdorf SINIX

◆ Digital Unix 4.0 (Alpha)◆ IBM AIX◆ Digital Open VMS◆ IBM MVS 5.2.2 (OS390)◆ IBM OS/400

EntireX - www.softwareag.comCOMsource - www.opengroup.org/comsource

Page 18: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

Services Based on DCOMServices Based on DCOM

◆ Microsoft Transaction Server◆ MTS manages Transactions, System Resources &

Components’ Life Cycle

◆ MTS is a Standard for Server-Side COM Components

◆ Microsoft Message Queue◆ MSMQ implements asynchronous communication

◆ MSMQ will be seen from DCOM as a new pluggableTransport Protocol (WinNT 5)

Page 19: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

Domain Specific ServicesDomain Specific Servicesbased on Windows DNA, the Windowsbased on Windows DNA, the WindowsDistributed Distributed interNetinterNet Applications Architecture Applications Architecture

◆ Windows DNA is a framework for business

solutions based on COM technologies

◆ DCOM, MTS, MSMQ, IIS - MS Web Server, ...

◆ Available Industry Specifications & Products◆ OLE for Process Control (OPC)

◆ Financial Services

◆ Transportation & Distribution, ….

Page 20: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

Microsoft Transaction ServerMicrosoft Transaction Server◆ DCOM only offers basic services for

distributed computing◆ Building powerful COM servers can be daunting

◆ MTS integrates DCOM with◆ System Resources management◆ Server Component creation, execution & deletion

management◆ Transactions Control & Security

◆ MTS is a standard for server-side components

Page 21: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

MTS at workMTS at work

ClientClient

MTS ExecutiveMTS Executive MTS ApplicationMTS Application

StubStub

ClassClassFactoryFactory

ClassClassFactoryFactoryWrapperWrapper

ContextContextWrapperWrapper

ContextContextObjectObject

MTSMTSObjectObject

ProxyProxy

MTS Surrogate ServerMTS Surrogate Server

Page 22: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

◆ Constraints on COM Component◆ Be an in-process server (DLL)

◆ Implement a Class Factory to create objects

◆ Describe all of the component’s interfaces in a Type Library

◆ State-less objects only

◆ Available on NT platforms only

MTS ConstraintsMTS Constraints

Page 23: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

Microsoft MessageMicrosoft MessageQueue ServerQueue Server

◆ DCOM is based on MS-RPC◆ Tightly-Coupled & Synchronous

◆ MSMQ Communication Scenarios◆ Store-and-forward communication

◆ Concurrent execution

◆ Journaled communication

◆ Connectionless communication

◆ MSMQ will be seen from DCOM as a newpluggable Transport Protocol

Page 24: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

MS-Message Queue ServerMS-Message Queue Server

◆ MSMQ is fully integrated with otherWindows NT features such as

◆ Microsoft Transaction Server (MTS)

◆ Microsoft Internet Information Server (IIS)

◆ Windows NT Security Environment

◆ MSMQ is available on Windows 9x & NT

◆ MSMQ is seen from DCOM as a newpluggable Transport Protocol

Page 25: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

DCOM - DCOM - ProsPros & Cons & Cons

◆ DCOM is a Mature Technology◆ Defines a Binary Standard for Components Interoperability

◆ Broad Tools Support - VisualBasic, VC++, VJ++ & ActiveX◆ Is Programming-Language-Independent

◆ Provides a transparent Remote Procedure Calls to both

Local or Remote Servers

◆ Can use all major Transport Protocols

◆ MTS & MSMQ well integrate the basic DCOM functionality

◆ Domain Specific Services are available on the market

Page 26: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

DCOM - Pros & DCOM - Pros & ConsCons

◆ COM components administration is not easy:◆ COM components update requires to modify the Registry file

of each computer using them

◆ COM components only increase in size (no versioning)

◆ DCOM Services are Windows-centric

◆ Only a few vendors are porting DCOM on

other platforms◆ OpenGroup

◆ Software AG Systems

Page 27: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

CORBA ArchitectureCORBA Architecture

Page 28: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

DCOM - CORBADCOM - CORBAWhat’s similar ?What’s similar ?

● They provide:

◆ local and remote servers for distributedcomputing

◆ a framework with◆ ORB

◆ Object Services

◆ Common Facilities - horizontal services

◆ Domain Specific Facilities - vertical services

Page 29: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

DCOM - CORBADCOM - CORBAWhat’s different?What’s different?

● DCOM◆ Microsoft & Open Group

~130 members

◆ first implementation,

then specification

● CORBA◆ OMG consortium

~ 800 members

◆ first specification,

then implementation

Page 30: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

DCOM - CORBADCOM - CORBAWhat’s different?What’s different?

● DCOM◆ Communication based on

RPC protocol◆ synchronous communication

◆ COM library with

more built-in functions &

less services

◆ Built in OS

● CORBA◆ Communication based on

IIOP or proprietary protocol◆ synch + asynchronous commun.

◆ ORB with

more services &

less built-in functions

◆ Built above OS

Page 31: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

DCOM - CORBADCOM - CORBAWhat’s different?What’s different?

● DCOM◆ Object consist of one or

more categories ofinterfaces

◆ each interface is named &has its own derivationhierarchy

◆ Class identified by CLSID

◆ Error reporting◆ methods return an integer

value that indicate thesuccess or failure of the call

● CORBA◆ Objects follow a standard

object model

◆ an interface is defined by itsclass & all the ancestors ofthat class

◆ Class identified by Name

◆ Error reporting◆ Exception mechanism, where

errors are returned as astructure embedded withinanother object

Page 32: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

ConclusionsConclusions

The selection process between DCOM &others Middleware solutions revolvesaround the choice of server environmentson which these systems will operate

Page 33: (D)COM - proj-cmw.web.cern.ch · Middleware Workshop - 26 March 1999 Evolution of COM 1993 - OLE2 introduced COM 1994 - COM in Windows NT 3.5 1996 - DCOM in Windows NT 4 1996 - ActiveX,

Middleware Workshop - 26 March 1999

ReferencesReferences

◆ COM-DCOM-MTS & MSMQ Documentation◆ www.microsoft.com/com

◆ www.microsoft.com/msmq

◆ EntireX◆ www.softwareag.com

◆ COMsource◆ www.opengroup.org/comsource