Microsoft’s Distributed Component Object Model (DCOM)

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 آزمايشگاه سيستم هاي هوشمند (
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
AP 12/00 From Object-Oriented Programming to Component Software OO Languages: –Ada, Smalltalk, Java, C++ Class versus Object: –Express existence of objects.
1 COM/DCOM n Part of Project Presentation (Concept Outline)
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.
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.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
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.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
Microsoft’s Distributed Component Object Model (DCOM) Jim Ries Updated 10/5/1999 A semi-technical overview.
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.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
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.
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
Information Management NTU Interprocess Communication and Middleware.
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 Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
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.
Seminarium on Component-based Software Engineering Feraaz Imami LIACS – Leiden University Fall 2005 Component Object Model (COM)
1 Distributed Processing Framework Behind the scenes.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
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 2006
Jim Fawcett CSE775 - Distributed Objects Spring 2014
Component Object Model(COM)
CSE791 - Distributed Objects, Spring 2002
Jim Fawcett CSE775 – Distributed Objects Spring 2017
CSE775 - Distributed Objects, Spring 2006
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
DCOM-CORBA Comparison
COM, DCOM and Software Components
Quality Assurance for Component-Based Software Development
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
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Presented By Justas Raslanas
Lecture 7 ATL and Out-of-Process Components
Jim Fawcett CSE775 – Distributed Objects Spring 2007
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

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

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

Microsoft proprietary, but . . . Open Group’s COMSource: http://www.opengroup.org/comsource/ Software AG’s EntireX: http://www.softwareag.com/entirex/default.htm The Active Group: http://www.activex.org/

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

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

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

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

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

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

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

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

Nuts and Bolts CoInitialize() CoCreateInstance() IUnknown QueryInterface() AddRef() Release() 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<CServer,&CLSID_Server> { // . . . 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(); wsprintf(szBuffer,"Unable to create a server: 0x%lX.\n",hr);

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

Demonstration Run DCOM “Hello world” demo here.

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

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