DCOM (Distributed Component Object Model) Overview Overview - - PDF document

dcom
SMART_READER_LITE
LIVE PREVIEW

DCOM (Distributed Component Object Model) Overview Overview - - PDF document

Distributed Computing Spring 1998 Introduction to DCOM DCOM (Distributed Component Object Model) Overview Overview Objectives Objectives What is DCOM? This introduction is about: DCOM Changing a local scheme (COM) into a


slide-1
SLIDE 1

Distributed Computing Spring 1998 Introduction to DCOM

1

Objectives Overview

DCOM

(Distributed Component Object Model)

  • What is DCOM?
  • Where does it come from?
  • What makes it interesting?
  • This introduction is about:

– DCOM – Changing a local scheme (COM) into a distributed one (DCOM) – Pitfalls in doing that

  • This introduction is not

about:

– Programming using DCOM – COM/OLE/ActiveX/… – Comparison to other schemes (CORBA, Java RMI,…)

Overview Objectives

What is DCOM?

“Application-level protocol for object-oriented remote procedure calls.”

IETF Internet Draft 5/96

“Object RPC” Distributed Component Object Model “Microsoft RPC Version 2.0” “COM with a longer wire”

Microsoft Press Release 9/96

slide-2
SLIDE 2

Distributed Computing Spring 1998 Introduction to DCOM

2

The Clipboard

Clipboard DDE OLE OLE2 7KH TXLFN EURZQ IR[ MXPSHG RYHU WKH 7KH TXLFN EURZQ IR[ MXPSHG RYHU WKH 7KH TXLFN EURZQ IR[ MXPSHG RYHU WKH

Clipboard

CF Text

App2 App1 App2 App1

DDE (Dynamic Data Interchange)

The Clipboard DDE OLE OLE2 7KH TXLFN EURZQ EOXH IR[ MXPSHG RYHU WKH

App2 App1

7KH TXLFN EURZQ EOXH IR[ MXPSHG RYHU WKH

slide-3
SLIDE 3

Distributed Computing Spring 1998 Introduction to DCOM

3

OLE (Object Linking and Embedding)

The Clipboard DDE OLE OLE2 7KH TXLFN EURZQ IR[ MXPSHG RYHU WKH 7KH TXLFN EURZQ IR[ MXPSHG RYHU WKH

Clipboard

Class info

App1

The quick brown fox jumped over the ...

presentation data presentation data class information

OLE2

The Clipboard DDE OLE OLE2

  • visible

– inter-application drag-and-drop – in-place editing – …

  • invisible

– DDE gone – message-based model gone – COM

slide-4
SLIDE 4

Distributed Computing Spring 1998 Introduction to DCOM

4

COM

(Component Object Model)

  • Specification describing

– what an object is – interface advertising – object lifetime QueryInterface() – inquire about interfaces used by particular object AddRef() Release() – Manage reference counters for object.

pQueryInterface ObjectQI() pIUnknown pAddRef pRelease pQueryInterface pAddRef pRelease pGetName pSetName pQueryInterface pAddRef pRelease pGetTime ObjectAddRef() ObjectRelease() NameQI() NameAddRef() NameRelease() GetName() SetName() TimeQI() TimeAddRef() TimeRelease() GetTime() pIName pITime

  • bject

COM/DCOM Architecture

channel client application server implementation stub proxy

client server

  • COM Servers

– In-process – local – remote

  • COM Clients

– Proxies map object method invocations into calls to COM/DCOM objects

slide-5
SLIDE 5

Distributed Computing Spring 1998 Introduction to DCOM

5

Inproc (in-process) Servers

  • Object executes in same process space as client.
  • Server code implemented as DLL (dynamic linked library).
  • Object has complete access to client’s memory (and vice

versa)

client application 1 proxy

client A

server implementation stub

server.dll

server implementation stub client application 2 proxy

client B

server implementation stub

Local Servers

  • COM object is implemented in another process.
  • Memories are protected.

client server

pTimeServer Proxy DLL ...

  • bject

pGetTime Stub DLL ...

  • bject

GetTime()

  • bject

GetTime() GetTime()

slide-6
SLIDE 6

Distributed Computing Spring 1998 Introduction to DCOM

6

Remote Servers

  • Generally, remote servers are not different from local servers.
  • DCOM as “COM with a longer wire”.

client server

pTimeServer Proxy DLL ...

  • bject

pGetTime Stub DLL ...

  • bject

GetTime()

  • bject

GetTime() GetTime() IPC across machine boundaries (DCE RPC)

DCOM Support for Distribution

  • Security
  • Object References (binding)

– representation & communication marshaled interface references – maintenance reference counting, pinging, delta pinging

  • Optimized interfaces

– e.g. batched QueryInterfaces() calls

  • Management of causally related chains of calls
  • Non-coordinated versioning of interfaces
slide-7
SLIDE 7

Distributed Computing Spring 1998 Introduction to DCOM

7

Issues in Supporting Distribution Example: Reference Counting

  • Used for resource management:

manage objects’ lifetimes

  • Local case: reference counting

AddRef() Release()

  • Reference counting is fragile:

– Abnormal termination of programs – Distributed case: effects of communication over network

Issues in Supporting Distribution Example: Reference Counting (cont)

  • Backup mechanism: Pinging

– Periodically exchange “keepalive” messages

  • Scalability?
  • Large number of objects: Delta Pinging

– Pinging of sets of objects

ping(set_id, additions, deletions)

  • Large number of clients?
slide-8
SLIDE 8

Distributed Computing Spring 1998 Introduction to DCOM

8

Want to know more?

  • Specification

– N. Brown, C. Kindel, “Distributed Component Object Model Protocol -- DCOM/1.0,” IETF Networking Group Internet-Draft, Microsoft Corporation, May 2, 1996

  • Programming

– R. Grimes, “Professional DCOM Programming,” Wrox Press Ltd, 1997.

  • A dissenting voice

– “Comparing ActiveX and CORBA/IIOP,” OMG CORBA NEWS, 4Q96, http://www.omg.org/… .