CS 603 DCOM April 5, 2002. DCOM – What is it? Start with COM – Component Object Model –Language-independent object interface Add interprocess communication.

Slides:



Advertisements
Similar presentations
Qisheng Hong Yani Mulyani Paul Visokey
Advertisements

What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
COM vs. CORBA.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
Remote Object Invocation
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
Distributed Object Computing Weilie Yi Dec 4, 2001.
Computer Science Lecture 24, page 1 CS677: Distributed OS Today: More Case Studies DCOM Jini.
Sockets  Defined as an “endpoint for communication.”  Concatenation of IP address + port.  Used for server-client communication.  Server waits for.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 COM/DCOM n Part of Project Presentation (Concept Outline)
Practical Issues of RPCCS-4513, D-Term Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from.
Communication in Distributed Systems –Part 2
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.
Lesson 3 Remote Method Invocation (RMI) Mixing RMI and sockets Rethinking out tic-tac-toe game.
Java RMI Essentials Based on Mastering RMI Rickard Oberg.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Advanced Java Session 7 New York University School of Continuing and Professional Studies.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
DISTRIBUTED COMPONENT OBJECT MODEL - A STUDY OF ITS ARCHITECTURE AND WHY IT IS CONSIDERED A FAILURE BY EXPERTS.
COM/DCOM Implementation Basics of: Object creation and access Object Reuse Interface referencing.
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.
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
Information Management NTU Interprocess Communication and Middleware.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
OOMI From COM to DCOM.
1 Java RMI G53ACC Chris Greenhalgh. 2 Contents l Java RMI overview l A Java RMI example –Overview –Walk-through l Implementation notes –Argument passing.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Silberschatz, Galvin, and Gagne  1999 Applied Operating System Concepts Chapter 15: Distributed Communication Sockets Remote Procedure Calls (RPCs) Remote.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
 Remote Method Invocation  A true distributed computing application interface for Java, written to provide easy access to objects existing on remote.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 43 Remote Method Invocation.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
OOMI A short introduction to Microsoft's COM From COM to DCOM.
COM / DCOM Xiaolan Lu Mingzhen Wang Dong Xie. Why COM / DCOM?  Challenges facing the software industry  Component software provides a solution  General.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
1 RMI Russell Johnston Communications II. 2 What is RMI? Remote Method Invocation.
Advanced Java Session 7 New York University School of Continuing and Professional Studies.
Java Distributed Object Model A remote object is one whose methods can be invoked from another JVM on a different host. It implements one or more remote.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Java Distributed Computing
Java Distributed Object System
Apartments and COM Threading Models
Java Distributed Computing
What is RMI? Remote Method Invocation
Out-of-Process Components
Lesson 3 Remote Method Invocation (RMI) Mixing RMI and sockets
Knowledge Byte In this section, you will learn about:
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Interpreter Style Examples
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 40 Remote Method Invocation
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
Out-of-Process Components
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

CS 603 DCOM April 5, 2002

DCOM – What is it? Start with COM – Component Object Model –Language-independent object interface Add interprocess communication

DCOM: Distributed COM Looks like COM to the client Built on DCE RPC –Extends to support full COM functionality

DCOM Architecture

Locating Objects: Activation CoCreateInstance(Ex)( ) –Interface pointer to uninitialized instance –Same as COM CoiGetInstanceFromFile, FromStorage –Create new instance CoGetClassObject( ) –Factory object that creates objects of –CoGetClassObjectFromURL Downloads necessary code from URL and instantiates Can take server name as parameter –Or default to server specified in DCOM configuration on client machine [HKEY_CLASSES_ROOT\APPID\{ }] "RemoteServerName"=" “ Also store information in ActiveDirectory

Example: Auction System Registry on Client: REGEDIT4 [HKEY_CLASSES_ROOT\CLSID\{ }] "AppID"="{ }" [HKEY_CLASSES_ROOT \APPID\{ }] "RemoteServerName"="auctions.r.us.com" ; Note: APPID_AuctionServer can have the same value as CLSID_AuctionServer. Client Code: IAuction Auction = new AuctionService; // Uses generated AuctionService.class file. Auction.PlaceBid(1324, ); // Auction object gets garbage collected.

Naming: Monikers Above examples name classes –What if you want a specific instance? One option: Each instance at a separate machine Better: Monikers –Naming object with standard IMoniker interface –Object creates Moniker and registers it with libraries –Monikers have URL as human-readable version

Moniker Example HRESULT hr=S_OK; IBindCtx* pBC=NULL; hr=CreateBindCtx(NULL, &pBC); if (SUCCEEDED(hr)) { DWORD dwEaten; IMoniker* pMoniker=NULL; // Create the moniker object. hr=MkParseDisplayName(pBC, L"file:\\\\dtwmkt\\mkt\\productx1\\salesQ496.xyz!Summary", &dwEaten, &pMoniker); if (SUCCEEDED(hr)) { // Connect, create and initialize if necessary. hr=pMoniker->BindToObject(pBC, NULL, IID_ISalesInfo, &pSales); if (SUCCEEDED(hr)) { // Perform the operation. pSales->Add( 1.1, " pSales->Release(); } pMoniker->Release(); } pBC->Release(); }

Invocation Marshaling and unmarshaling –Built on top of DCE RPC standard –All parameters defined with IDL –Uses Interface ID to look up stubs / code for class in Registry DCE extension: Interface Pointers –Pointer to proxy object –Allows callee to invoke parameter –Call returns to source

Additional Issues Garbage Collection –Reference count on distributed objects –Addref and Release called explicitly –Ping / timeout to handle client failure Referrals –Interface pointer refers to handling machine –Passing interface pointer “removes” intermediate machine from call

DCOM Security Access security –Who can call an object? Launch security –Who can create a new object? Identity –Who is responsible for an object? Connection Policy –Integrity –Privacy –Authentication

DCOM Security Servers/clients can customize security –CoInitializeSecurity API –Starts with default Access security –COM-provided checks –User-specified checks using COM authentication/etc. –IServerSecurity, IClientSecurity interfaces Kerberos for delegation –Proxy tickets allow delegation of specific authorities –Also full delegation IServerSecurity::ImpersonateClient()

Delegation

Threads (Apartments) Single Threaded –Call blocks Single Thread apartment –One thread per instance Multi-Threaded Apartment –Multiple threads in an instance Combine both –Allows call from single and multi-threaded

DCOM vs. CORBA CORBA Single interface name Multiple inheritance Dynamic Invocation Interface C++-style Exception Handling Explicit and Implicit reference counts Implemented by ORB with replaceable services DCOM Distinction between Class and Instance Identifier Implement multiple interfaces Type libraries for on- demand marshaling 32 Bit Error Code Explicit reference count only Implemented by many independent services