dcom1

download dcom1

of 33

Transcript of dcom1

  • 7/27/2019 dcom1

    1/33

    (D)COM(D)COMMicrosofts responseMicrosofts response

    to CORBAto CORBA

    Alessandro RISSO - PS/CO

  • 7/27/2019 dcom1

    2/33

    Talk OutlineTalk Outlinex DCOM

    x What is DCOM ?

    x COM Components

    x COM Library

    x Transport Protocols, Security & Platforms Availability

    x Services Based on DCOM

    x DCOM - Pros & Cons

    x DCOM & CORBA - A Comparison

  • 7/27/2019 dcom1

    3/33

    Middleware Workshop - 26 March 1999

    The FoundationThe Foundation

    x COM is Microsofts Component Model

    x COM defines a Binary Standard for Components

    Interoperability

    x COM Component is a piece of compiled code that

    provides some service to the rest of the system

    x DCOMprovides Distributed Services to COM

    x allows COM Components to transparently communicate

    across the network

  • 7/27/2019 dcom1

    4/33

    Middleware Workshop - 26 March 1999

    Evolution of COMEvolution of COM

    x 1993 - OLE2 introduced COM

    x 1994 - COM in Windows NT 3.5

    x 1996 - DCOM in Windows NT 4

    x 1996 - ActiveX, COM enabled for the Internet

    x 1996 - Microsoft Transaction Server (MTS)

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

    x 200x - COM+

  • 7/27/2019 dcom1

    5/33

    Middleware Workshop - 26 March 1999

    COM ArchitectureCOM Architecture

  • 7/27/2019 dcom1

    6/33

    Middleware Workshop - 26 March 1999

    COM ComponentsCOM Components

    x

    are language-neutralencapsulated objects

    x expose a set of structured interfaces

    x enable other applications or components

    to communicate in astandard way

  • 7/27/2019 dcom1

    7/33

    Middleware Workshop - 26 March 1999

    COM ClassCOM Class

    x named, concrete implementation ofone or more interfaces

    x identified by a class identifier - CLSID

    Slide classInterfaces

    IColorManager

    IShow

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

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

    .

    {{

  • 7/27/2019 dcom1

    8/33

    Middleware Workshop - 26 March 1999

    InterfaceInterface

    x a group of related functions that specifies a

    contract - name, interface signature and semantics

    x denotes behavior only, not state

    x are immutable - never versioned

    x are strongly typed - unique identifier IID

    x interfaces are described in MS-IDL - derived from

    the IDL of OSF/DCE

  • 7/27/2019 dcom1

    9/33

    Middleware Workshop - 26 March 1999

    IUnknownIUnknown InterfaceInterface

    x IUnknown defines a standard for communicationwith components

    x All COM components are required to implement it

    x IUnknown has three methods:

    x QueryInterface

    x AddRef

    x Release }Reference Counting Methods} Returns the Interface Pointer

  • 7/27/2019 dcom1

    10/33

    Middleware Workshop - 26 March 1999

    Virtual Function TablesVirtual Function Tables

  • 7/27/2019 dcom1

    11/33

    IDL & COMIDL & COM

    InterfacesInterfaces

    written inwritten in

    MS-IDLMS-IDL

    Small BinariesSmall Binaries

    loaded inloaded in

    Client & ServerClient & Server

    process spacesprocess spaces

    MIDLMIDL

    CompilerCompiler

    Proxy & StubProxy & StubUUIDsUUIDs

    for thefor the

    RegistryRegistry DBDB. . . . .. . . . . TypeType LybraryLybrary

    UniversallyUniversally

    Unique IDs file,Unique IDs file,

    with all Class IDwith all Class ID

    & Interface IDs& Interface IDs

    Binary Object withBinary Object with

    class & interfacesclass & interfaces

    metadatametadata for Tools,for Tools,

    likelike VBasicVBasic & Java& Java

  • 7/27/2019 dcom1

    12/33

    Middleware Workshop - 26 March 1999

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

    x Provides the ability to make IUnknown call

    across processes

    x Encapsulate all work associated with the

    launching of components

    x Establish connections between componentsx In Win9x/WinNT is called OLE2.DLL

  • 7/27/2019 dcom1

    13/33

    PublisherPublisherServerServer

    ObjectObjectClientClientProgramProgram

    Local

    Machine

    Local

    Machine

    The COM LibraryThe COM Library

    A System Component that provides theA System Component that provides themechanism of COMmechanism of COM

    ServiceService

    Control MangerControl Manger

    COM RuntimeCOM Runtime REGISTRY DatabaseREGISTRY Database

    {CLSID}{CLSID} Server.DLLServer.DLL

    Client ProcessClient Process

    1

    2

    34

    5

  • 7/27/2019 dcom1

    14/33

    PublisherPublisherCOMCOM

    RemoteRemote

    ObjectObject

    ProxyProxy

    ClientClient

    ProgramProgram

    Local MachineLocal Machine

    Accessing COM ServicesAccessing COM Services

    ClientClient ProcessProcess

    COMCOM Local ServerLocal Server

    StubStubLocalLocal

    ObjectObject

    Remote ServerRemote Server ProcessProcess

    RPC

    Remote MachineRemote Machine

    COMCOM Local ServerLocal Server

    Local ServerLocal Server ProcessProcess

    LPC

    In-ProcessIn-Process

    ServerServer COMCOM

    RemoteRemoteObjectObject

    ProxyProxyStubStub LocalLocal

    ObjectObject

    In-ProcessIn-Process

    ObjectObject

  • 7/27/2019 dcom1

    15/33

    Middleware Workshop - 26 March 1999

    Protocols & SecurityProtocols & Security

    x DCOM is based on MS-RPC

    x MS implementation of OSF/DCE-RPC specification

    x Tightly-Coupled & Synchronous

    x DCOM can use all major Transport Protocols

    x default ones are TCP & UDP

    x DCOM provides a Security Framework

    x Its based on WinNT Access Control Lists for componentsx ACLs indicate which users or groups of users have the right

    to access a component of a certain class

  • 7/27/2019 dcom1

    16/33

    Middleware Workshop - 26 March 1999

    DCOM AdministrationDCOM Administration

    x For distributed applications, its criticalx To be able to centralize administration

    x To make client installation as straightforward as possible

    x COM components administration is not easy:

    x COM components only increase in size (no versioning)

    x

    The biggest problem for maintaining fat clients isupdating those clients to newer versions, by modifying the

    Registry file of each computer using them

  • 7/27/2019 dcom1

    17/33

    Middleware Workshop - 26 March 1999

    DCOM Availability onDCOM Availability onnon-Microsoft Platformsnon-Microsoft Platforms

    x Sun Solaris 2.5 (Sparc)

    x HP-UX

    x

    Linux 2.0 Intelx SCO UnixWare

    x Siemens Nixdorf SINIX

    x Digital Unix 4.0 (Alpha)

    x IBM AIX

    x

    Digital Open VMSx IBM MVS 5.2.2 (OS390)

    x IBM OS/400

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

  • 7/27/2019 dcom1

    18/33

    Middleware Workshop - 26 March 1999

    Services Based on DCOMServices Based on DCOMx Microsoft Transaction Server

    x MTS manages Transactions, System Resources &Components Life Cycle

    x MTS is a Standard for Server-Side COM Components

    x Microsoft Message Queue

    x

    MSMQ implements asynchronous communicationx MSMQ will be seen from DCOM as a new pluggable

    Transport Protocol (WinNT 5)

  • 7/27/2019 dcom1

    19/33

    Middleware Workshop - 26 March 1999

    Domain Specific ServicesDomain Specific Servicesbased on Windows DNA, the Windowsbased on Windows DNA, the Windows

    DistributedDistributed interNetinterNet Applications ArchitectureApplications Architecture

    x Windows DNA is a framework for business

    solutions based on COM technologies

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

    x Available Industry Specifications & Products

    x OLE for Process Control (OPC)

    x Financial Services

    x Transportation & Distribution, .

  • 7/27/2019 dcom1

    20/33

    Middleware Workshop - 26 March 1999

    Microsoft Transaction ServerMicrosoft Transaction Serverx DCOM only offers basic services for

    distributed computingx Building powerful COM servers can be daunting

    x MTS integrates DCOM with

    x System Resources management

    x Server Component creation, execution & deletionmanagement

    x Transactions Control & Security

    x MTS is a standard for server-side components

  • 7/27/2019 dcom1

    21/33

    Middleware Workshop - 26 March 1999

    MTS at workMTS at work

    ClientClient

    MTS ExecutiveMTS Executive MTS ApplicationMTS Application

    StubStub

    ClassClass

    FactoryFactory

    ClassClass

    FactoryFactory

    WrapperWrapper

    ContextContext

    WrapperWrapper

    ContextContext

    ObjectObject

    MTSMTS

    ObjectObject

    ProxyProxy

    MTS Surrogate ServerMTS Surrogate Server

  • 7/27/2019 dcom1

    22/33

    Middleware Workshop - 26 March 1999

    x Constraints on COM Componentx Be an in-process server (DLL)

    x Implement a Class Factory to create objects

    x Describe all of the components interfaces in a Type Library

    x State-less objects only

    x Available on NT platforms only

    MTS ConstraintsMTS Constraints

  • 7/27/2019 dcom1

    23/33

    Middleware Workshop - 26 March 1999

    Microsoft MessageMicrosoft Message

    Queue ServerQueue Serverx DCOM is based on MS-RPC

    x Tightly-Coupled & Synchronous

    x MSMQ Communication Scenarios

    x Store-and-forward communication

    x Concurrent execution

    x Journaled communication

    x

    Connectionless communicationx MSMQ will be seen from DCOM as a new

    pluggable Transport Protocol

  • 7/27/2019 dcom1

    24/33

    Middleware Workshop - 26 March 1999

    MS-Message Queue ServerMS-Message Queue Server

    x MSMQ is fully integrated with otherWindows NT features such asx Microsoft Transaction Server (MTS)

    x

    Microsoft Internet Information Server (IIS)x Windows NT Security Environment

    x MSMQ is available on Windows 9x & NT

    x MSMQ is seen from DCOM as a newpluggable Transport Protocol

  • 7/27/2019 dcom1

    25/33

    Middleware Workshop - 26 March 1999

    DCOM -DCOM - ProsPros & Cons& Cons

    x DCOM is a Mature Technology

    x Defines a Binary Standard for Components Interoperability

    x Broad Tools Support - VisualBasic, VC++, VJ++ & ActiveX

    x Is Programming-Language-Independent

    x Provides a transparent Remote Procedure Calls to both

    Local or Remote Servers

    x Can use all major Transport Protocols

    x MTS & MSMQ well integrate the basic DCOM functionality

    x Domain Specific Services are available on the market

  • 7/27/2019 dcom1

    26/33

    Middleware Workshop - 26 March 1999

    DCOM - Pros &DCOM - Pros & ConsConsx COM components administration is not easy:

    x COM components update requires to modify the Registry file

    of each computer using them

    x COM components only increase in size (no versioning)

    x DCOM Services are Windows-centric

    x Only a few vendors are porting DCOM on

    other platformsx OpenGroup

    x Software AG Systems

  • 7/27/2019 dcom1

    27/33

    Middleware Workshop - 26 March 1999

    CORBA ArchitectureCORBA Architecture

  • 7/27/2019 dcom1

    28/33

    Middleware Workshop - 26 March 1999

    DCOM - CORBADCOM - CORBAWhats similar ?Whats similar ?

    q

    They provide:x local and remote servers for distributed

    computing

    x a framework with

    x ORB

    x Object Servicesx Common Facilities - horizontal services

    x Domain Specific Facilities - vertical services

  • 7/27/2019 dcom1

    29/33

    DCOM - CORBADCOM - CORBAWhats different?Whats different?

    q DCOM

    x Microsoft & Open Group

    ~130 members

    x first implementation,

    then specification

    q CORBA

    x OMG consortium

    ~ 800 members

    x first specification,

    then implementation

  • 7/27/2019 dcom1

    30/33

    DCOM - CORBADCOM - CORBAWhats different?Whats different?

    q DCOMx Communication based on

    RPC protocol

    x synchronous communication

    x COM library with

    more built-in functions &less services

    x Built in OS

    q CORBAx Communication based on

    IIOP or proprietary protocol

    x synch + asynchronous commun.

    x ORB with

    more services &less built-in functions

    x Built above OS

  • 7/27/2019 dcom1

    31/33

    DCOM - CORBADCOM - CORBA

    Whats different?Whats different?

    q

    DCOMx Object consist of one or

    more categories ofinterfaces

    x each interface is named &has its own derivationhierarchy

    x Class identified by CLSID

    x Error reporting

    x methods return an integervalue that indicate thesuccess or failure of the call

    q

    CORBAx Objects follow a standard

    object model

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

    x Class identified by Name

    x Error reporting

    x Exception mechanism, whereerrors are returned as astructure embedded withinanother object

  • 7/27/2019 dcom1

    32/33

    Middleware Workshop - 26 March 1999

    ConclusionsConclusions

    The selection process between DCOM &others Middleware solutions revolvesaround the choice of server environments

    on which these systems will operate

  • 7/27/2019 dcom1

    33/33

    Middleware Workshop - 26 March 1999

    ReferencesReferences

    x COM-DCOM-MTS & MSMQ Documentationx www.microsoft.com/com

    x www.microsoft.com/msmq

    x EntireXx www.softwareag.com

    x COMsource

    x www.opengroup.org/comsource