introduction to the component object model l.
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to the Component Object Model PowerPoint Presentation
Download Presentation
Introduction to the Component Object Model

Loading in 2 Seconds...

play fullscreen
1 / 29

Introduction to the Component Object Model - PowerPoint PPT Presentation

  • Uploaded on

Introduction to the Component Object Model. University of Illinois Champaign-Urbana CS491 Fall 1997 prepared by Patrick Flanigan. Overview. History of COM Introduction to the COM Specification DCOM Technical Overview Load balancing Microsoft Transaction Server Monikers DCOM vs CORBA

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Introduction to the Component Object Model' - Antony

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction to the component object model

Introduction to theComponent Object Model

University of Illinois Champaign-Urbana

CS491 Fall 1997

prepared by Patrick Flanigan

  • History of COM
  • Introduction to the COM Specification
  • DCOM Technical Overview
  • Load balancing
  • Microsoft Transaction Server
  • Monikers
  • Problems and the future of COM
the evolution of com

The Evolution of COM

Object Linking and Embedding (OLE1)

Object Model (OLE2) (COM standard)

ActiveX (Internet applications)

Distributed interNet Applications (COM+)

com specification foundations
COM Specification Foundations
  • Reusable component objects
  • Binary standard for interoperability
  • “True” system object model
  • Provides distributed capabilities
object interoperability
Object Interoperability
  • Stable versioning
  • Rapid object interaction
  • Location transparency
  • Language independence
true system object model
“True” System Object Model
  • Globally unique identifiers (GUID)
  • Reusability and inheritance
  • Single programming model
  • Life-cycle encapsulation
  • Object-level security
reusability mechanisms
Reusability Mechanisms
  • Containment/Delegation
  • Aggregation
  • An interface is a named table of function pointers (methods)
  • An interface is not a class
  • An interface is not a COM component
  • COM clients only interact with pointers to interfaces
  • COM components can implement multiple interfaces
  • Interfaces are strongly typed
  • Interfaces are immutable
object creation and access
Object Creation and Access

IUnknown and QueryInterface

object creation api
Object Creation API
  • CoCreateInstanceEx : creates a single uninitialized object associated with the given CLSID on a specified remote machine.
  • CoCreateInstanceEx makes it possible to specify an array of structures, each pointing to an interface identifier (IID) on input, and, on return, containing (if available) a pointer to the requested interface and the return value of the QueryInterface call for that interface. This permits fewer round trips between machines.
  • The CoCreateInstanceEx helper function encapsulates three calls: first, toCoGetClassObject to connect to the class object associated with the specified CLSID, specifying the machine location of the class; second, to IClassFactory::CreateInstance to create an uninitialized instance, and finally, to IClassFactory::Release, to release the class object.
connectable objects and multicasting
Connectable Objects and Multicasting
  • Connection point implementation using Advise()


IUnknown *pUnk, //Pointer to the client’s advise sink

DWORD *pdwCookie //Pointer to the connection point identifier used by Unadvise);

  • Static balancing using a referral component
  • Dynamic load balancing
  • Marshalling (remoting): standard and custom

Use custom marshalling when:

- a remote object itself is a proxy to some

other object

- the object’s state is in shared memory

(e.g. structured storage)

- an object’s state is immutable

(e.g. Monikers)

- batching remote calls into one

to optimize performance

microsoft transaction server
Microsoft Transaction Server
  • MTS shelters developers from complex server issues such as concurrency, resource pooling, security, and context management
  • MTS provides run-time services for components
  • MTS ensures that transactions are atomic, consistent, have proper isolation and are durable
  • MTS components are those that execute in the MTS run-time environment
  • A moniker is a name for a specific object instance, that is, one particular combination of CLSID(GUID) and persistent data
  • Monikers are themselves COM objects which support an interface called Imoniker
  • Each moniker has its own persistent data; which includes all it needs to instantiate and initialize the single object instance which it identifies
dcom vs corba
  • Layer comparisons
  • Conclusions and comments
the future of com
The Future of COM
  • Active Directory Services
  • What is DNA?
  • Implementation problems
  • Summary
com features
COM+ Features
  • Transactions and transaction management
  • Databinding
  • Persistence
  • Load balancing
  • Security
  • In-memory database
  • Event infrastructure
  • Ubiquitous type description
  • Dynamic invocation
  • Garbage collection
  • Interception
  • The Component Object Model Specification(Introduction)

Draft Version 0.9, October 24, 1995

Microsoft Corporation and Digital Equipment Corporation

Copyright © 1992-95 Microsoft Corporation.

  • DCOM Technical Overview

© 1996 Microsoft Corporation. All rights reserved

  • DCOM and CORBA Side by Side, Step by Step, and Layer by Layer

September 3, 1997 P. Emerald Chung Yennun Huang Shalini Yajnik

Bell Laboratories, Lucent Technologies, Murray Hill, New Jersey

Deron Liang Joanne C. Shih Chung-Yih Wang

Institute of Information Science, Academia Sinica, Republic of China, Taiwan

Yi-Min Wang, AT&T Labs, Research, Florham Park, New Jersey

  • Distributed Component Object Model (DCOM) Binary Protocol

Nat Brown and Charlie Kindel, Network Working Group

Microsoft Corporation, May 1996, Updated: November 1996

  • Inside OLE, 2nd Edition

Kraig Brockschmidt

Microsoft Press

Redmond WA 1995

  • The COM Programmer's Cookbook (great implementation guide)

Crispin GoswellMicrosoft Office Product Unit, Spring 1995, Revised: September 13, 1995