Sunteți pe pagina 1din 28

COM/DCOM

Partof
Project
Presentation
(Concept Outline)

1
Component Object
Model (COM) and
DCOM

2
Overview

History of COM
Introduction to the COM Specification
DCOM Technical Overview
Load balancing
Microsoft Transaction Server
Monikers
DCOM vs CORBA
Problems and the future of COM

3
The Evolution of COM

Object Linking and


Embedding (OLE1)
Object Model (OLE2) (COM
standard)
ActiveX (Internet applications)

Distributed interNet
4
Applications (COM+)
5
COM Specification
Foundations

Reusable component
objects
Binary standard for
interoperability
True system object model

Provides distributed
capabilities

6
Object Interoperability

Stable versioning
Rapid object interaction

Location transparency

Language independence

7
True System Object
Model

Globally unique identifiers


(GUID)
Reusability and inheritance

Single programming model

Life-cycle encapsulation

Object-level security

8
Reusability Mechanisms

Containment/Delegation

Aggregation

9
10
11
Objects and Interfaces

12
13
Interfaces

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

14
Object Creation and
Access

IUnknown and QueryInterface

15
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, to
CoGetClassObject 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.
16
Connectable Objects and
Multicasting
Connection point implementation
using Advise()
HRESULT Advise(
IUnknown *pUnk , //Pointer to the clients advise sink
DWORD *pdwCookie //Pointer to the connection point
identifier used by Unadvise );

17
18
DCOM Architecture

COM COM
Client Component
run-time run-time

Security Security
DCE RPC DCE RPC
Provider Provider

LPC LPC

COM COM
Client Component
run-time run-time

Security Security
DCE RPC DCE RPC
Provider Provider

Protocol Stack Protocol Stack

DCOM netw ork-


protocol

19
Marshalling
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 objects state is in shared memory
(e.g. structured storage)
- an objects state is immutable
(e.g. Monikers)
- batching remote calls into one
to optimize performance

20
Batching
Custom Proxy

Client DCOM Database


Comp
Component

Snapshot
/ Cache

Database

Referral
Component

Component
Client 3. Return connection to client
Component

Component
1. Requests connection 2. Creates connection to "best"
component
Component

Component
Referral
Component
Component

21
Custom Marshalling

22
Scalability and
Performance
Client Duplicated Servers Dedicated Server
Business Rule
Client
Component
"Bottleneck"
Client Component

Client
Business Rule
Client Component
Dedicated Server
Client
Database
Client Component
Business Rule
Client Component

Client

Parameter Size 4 bytes 50 bytes


calls / sec ms / call calls / sec ms / call
"Pentium,, in-process 3,224,816 0.00031 3,277,973 0.00031
"Alpha," in-process 2,801,630 0.00036 2,834,269 0.00035
"Pentium," cross-process 2,377 0.42 2,023 0.49
"Alpha," cross-process 1,925 0.52 1634 0.61
"Alpha," to Pentium remote 376 2.7 306 3.27
23
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

24
Monikers

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

25
The Future of COM

ActiveDirectory Services
What is DNA?

Implementation problems

Summary

28
COM+ Features

Transactions and transaction management


Databinding
Persistence
Load balancing
Security
In-memory database
Event infrastructure
Ubiquitous type description
Dynamic invocation
Garbage collection
Interception

29
References
The Component Object Model Specification(Introduction)
Draft Version 0.9, October 24, 1995
Microsoft Corporation and Digital Equipment Corporation
Copyright 1992-95 Microsoft Corporation.
http://www.microsoft.com/oledev/olecom/title.htm

DCOM Technical Overview


1996 Microsoft Corporation. All rights reserved
http://www.microsoft.com/activex/complus-f.htm

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
http://premium.microsoft.com/msdn/library/techart/f365/f36c/f380/d390/s1305c.htm

Inside OLE, 2nd Edition


Kraig Brockschmidt
Microsoft Press
Redmond WA 1995

The COM Programmer's Cookbook (great implementation guide)


Crispin Goswell
Microsoft Office Product Unit, Spring 1995, Revised: September 13, 1995
http://premium.microsoft.com/msdn/library/techart/f365/f36c/f380/d390/s8b24.htm

30

S-ar putea să vă placă și