Microsoft’s Distributed Component Object Model (DCOM) Jim Ries Updated 10/5/1999 A semi-technical overview.

Slides:



Advertisements
Similar presentations
Qisheng Hong Yani Mulyani Paul Visokey
Advertisements

COM, DCOM and Software Components
COM: A Brief Introduction Dan Berger
Fundamentals of COM Mary Kirtland Program Manager COM Team Microsoft Corporation.
COM vs. CORBA.
Intro to COM What is it and how do I use it?. Objectives Teach the fundamentals of COM. Understand the reason for using it. Learn to make a simple in-process.
Ken Birman. A long term trend… In cs4410 we’ve seen that the modern O/S (and more and more applications) are networked Up to now we focused on a TCP based.
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
OPC - OLE For Process Control Paul C. Shafer Bently Nevada Corp.
Components David Talby. This Lecture What Components Are With Demonstrations in Delphi Common Object Model (COM) Creating and calling objects Distributed.
AP 12/00 From Object-Oriented Programming to Component Software OO Languages: –Ada, Smalltalk, Java, C++ Class versus Object: –Express existence of objects.
University of Genoa Course of Software Engineering II 01-02
1 COM/DCOM n Part of Project Presentation (Concept Outline)
Introduction to CORBA Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
COM: Microsoft's Component Object Model Andrew C. Hopkins CSCI 397C-16 Object Oriented Database Design and Management Professor Renee Renner.
Visual Basic 6.0 Derived from BASIC Developed by Microsoft in 1998 An event driven programming language Associated with a development environment.
Intro to COM What is it and what can it do for me?
DCOM Technology. What is DCOM? DCOM is just COM with a longer wire DCOM is just COM with a longer wire DCOM extends COM to support communication among.
DCOM Technology Şevket Duran Haşim Sak.
1 Modular Software/ Component Software 2 Modular Software Code developed in modules. Modules can then be linked together to produce finished product/program.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
CSIS0402 System Architecture Distributed Computing - Middleware Technology (2) K.P. Chow University of Hong Kong.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
CSC Proprietary 9/11/2015 2:16:16 AM 008_P2_CSC_white 1.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
COM/DCOM Implementation Basics of: Object creation and access Object Reuse Interface referencing.
OLE / COM Helia / Martti Laiho Sources: MSDN Kraig Brockschmidt: Inside OLE Orfali-Harkey-Erwards: Client/Server Survival Guide.
COM and DCOM CS 562 February 27, Motivation Data Analyzer Resource Monitor int compute (…) { } int compute (…) { } Data Analyzer int compute (…)
Introduction to COM and DCOM Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie.
COMCOM omponent bject odel After this presentation, you will: Be Able To: Conceptual understanding of COM How it works, What it’s used for Decode Acronyms.
Component Object Model
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
Information Management NTU Interprocess Communication and Middleware.
A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh CST
OOMI From COM to DCOM.
Ni.com Understanding COM/ActiveX Jeff Paulter Staff Software Engineer Thurs Aug 17 10:15-11:30 a.m., 1:45-3:00 p.m. Ash (10A) Jeff Paulter Staff Software.
Introduction to COM and ActiveX Controls. What is an object? In the Fayad sense of the word.
SE-02 COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require.
Distributed Object Frameworks DCE and CORBA. Distributed Computing Environment (DCE) Architecture proposed by OSF Goal: to standardize an open UNIX envt.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
GAM666 – Introduction To Game Programming ● DirectX is implemented as a collection of COM objects ● To use a DirectX program, the user must have the correct.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
COM / DCOM Xiaolan Lu Mingzhen Wang Dong Xie. Why COM / DCOM?  Challenges facing the software industry  Component software provides a solution  General.
Seminarium on Component-based Software Engineering Feraaz Imami LIACS – Leiden University Fall 2005 Component Object Model (COM)
Components David Talby. 9/27/2016 Object Oriented Design Course 2 This Lecture What Components Are With Demonstrations in Visual Basic Common Object Model.
Jim Fawcett CSE775 - Distributed Objects Spring 2014
Component Object Model(COM)
CSE791 - Distributed Objects, Spring 2002
CSE775 - Distributed Objects, Spring 2006
Microsoft’s Distributed Component Object Model (DCOM)
Out-of-Process Components
COM: A Brief Introduction
COM: A Brief Introduction
Inventory of Distributed Computing Concepts and Web services
Interpreter Style Examples
Inventory of Distributed Computing Concepts
COM, DCOM and Software Components
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
Out-of-Process Components
Presented By Justas Raslanas
Lecture 7 ATL and Out-of-Process Components
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

Microsoft’s Distributed Component Object Model (DCOM) Jim Ries Updated 10/5/1999 A semi-technical overview

Genealogy n DCOM comes from COM and OSF (now Open Group) DCEOpen GroupDCE u DCE F Remote Procedure Calls (RPC) F Interface Definition Language (IDL) u Component Object Model (COM) u ORPC n OMG CORBA - a parallel standard OMG CORBA u Different RPC u Different IDL u COM proxy == CORBA stub u COM stub == CORBA skeleton

Microsoft proprietary, but... n Open Group’s COMSource: n Software AG’s EntireX: n The Active Group:

COM Goals n Encapsulation (separate implementation from interface) n Versioning n Execution context independence n Language independence n Object Creation / Lifetime Control n Standard error code (HRESULT) n Solve object discovery problem n Scripting n The Holy Grail of Reuse

Alphabet soup: COM/OLE/ActiveX n COM is a binary standard and a style for creating objects. n OLE is (was) a set of COM interfaces for embedding documents (originally “Object Linking and Embedding”). n ActiveX is a marketing buzz-word meaning COM and/or OLE, but usually applied to Internet-oriented components.

Later and later binding n “Editor inheritance” binds at compile time. n Link libraries (.LIB) bind to “components” at link time. n Dynamic link libraries (.DLL) bind at run time, but need a header at compile time, and path at runtime. n COM components bind at runtime and may need neither a header, nor a path! (though typelib contains header-like “meta-data”)

Interfaces n COM enforces the concept of interfaces being separate from implementation. n Interface == Abstract Base Class n Objects support multiple interfaces through multiple inheritance. n Interfaces NEVER change! n A “control” is just a COM component with the right interfaces.

GUID’s (or UUID’s) n Globally Unique Identifiers (Universally Unique Identifiers) n Needed to avoid name collisions n A class is associated with a GUID (CLSID). n An interface is associated with a GUID (IID). n The Windows Registry: a hierarchical database.

Execution Context n In proc - DLL’s (no marshalling) n Out of proc - EXE’s (LRPC) n Remote - EXE’s using DCOM u RPC u DCE “compatible” (see “Interconnecting Personal Computers with the Distributed Computing Environment” by Jim Ries, UMC Thesis, 1998.)

Coding Tools n C - Raw n C++ - Raw n C++ - ATL n C++ - MFC n Visual Basic n J++ (pseudo Java) n Binary standard ==> any language COULD produce COM components.

Platforms n Win32 u Windows 95 (DCOM as separate download; included in OSR2) u Windows NT 4.0 u Windows 98 u Windows 2000 n Unix platforms (with some help)

Nuts and Bolts n CoInitialize() n CoCreateInstance() n IUnknown u QueryInterface() u AddRef() u Release() n CoUninitialize()

Demonstration - IDL [ object, uuid(75D873CD-7B63-11D3-9D43-00C0F031CDDE), helpstring("IServer Interface"), pointer_default(unique) ] interface IServer : IUnknown { HRESULT Hello([in, string] char * pszMessage); };

Demonstration - Server Code // Prototype class CServer : public IServer, public CComObjectRoot,public CComCoClass { //... Some code omitted for brevity // IServer public: HRESULT STDMETHODCALLTYPE Hello(unsigned char * pszMessage); }; // Code HRESULT STDMETHODCALLTYPE CServer::Hello(unsigned char * pszMessage) { char szBuf[256]; wsprintf(szBuf,"%s",pszMessage); ::MessageBox(0,szBuf,"Server",MB_OK); return(S_OK); }

Demonstration - Client Code if (SUCCEEDED( hr=CoCreateInstance(CLSID_Server,NULL, CLSCTX_LOCAL_SERVER, IID_IServer,(void **)&pServer))) { if (SUCCEEDED(hr=pServer->Hello((unsigned char *)"Hello from the client"))) MessageBox("Client: Server printed the message"); else { wsprintf(szBuffer,"Hello() method failed: 0x%lX.\n",hr); MessageBox(szBuffer); } pServer->Release(); } else { wsprintf(szBuffer,"Unable to create a server: 0x%lX.\n",hr); MessageBox(szBuffer); }

Distributed Scenario n From “DCOM Architecture” a Microsoft white paper. From “DCOM Architecture” a Microsoft white paper.

Demonstration n Run DCOM “Hello world” demo here.

Additional Technologies n COM+ u MTS - Microsoft Transaction Server u MSMQ - Microsoft Message Queue u Compiler supported IUnknown, etc. n ADS - Active Directory Service u As “distributed registry” u As namespace abstraction n All Microsoft products are COM based: u IIS - Internet Information Server u Exchange u Internet Explorer u Word, Excel, etc.

References n Microsoft DCOM page Microsoft DCOM page n IETF DCOM Standard Proposal IETF DCOM Standard Proposal n Inside OLE by Kraig Brockschmidt, Microsoft Press, n Essential COM by Don Box, Addison Wesley, n Inside COM by Dale Rogerson, Microsoft Press, n Don Box homepage Don Box homepage n ActiveX COM Control Programming by Sing Li and Panos Economopoulos, Wrox Press, n COM-CORBA Interoperability by Geraghty, et. al., Prentice Hall, n Microsoft Developer Network Microsoft Developer Network