Lecture 16. What is COM? Principles of COM. COM Design Principles. Example (UML Diagram) Microsoft IDL (MIDL) COM/DCOM February 23, 2005

Similar documents
CS551 Object Oriented Middleware (II) Outline. Who is the OMG?

Outline. COM overview. DCOM overview. Comparison DCOM and Corba

(D)COM Microsoft s response to CORBA. Alessandro RISSO - PS/CO

Distributed Objects. Object-Oriented Application Development

Distributed Technologies - overview & GIPSY Communication Procedure

CHAPTER 7 COM and.net

Lecture 5: Object Interaction: RMI and RPC

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

CORBA (Common Object Request Broker Architecture)

COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES DCOM - COM+ Peter R. Egli peteregli.net. peteregli.net. 1/20 Rev. 1.

Distributed Systems Middleware

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

CS551 Object Oriented Middleware (IV) Dynamic Requests (Chap. 6 of EDO) Outline. Why Dynamic Request?

Lecture 06: Distributed Object

1.264 Lecture 16. Legacy Middleware

UNIT 4 CORBA 4/2/2013 Middleware 59

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A

Performance comparison of DCOM, CORBA and Web service

Object Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2)

CHAPTER - 4 REMOTE COMMUNICATION

Communication. Distributed Systems Santa Clara University 2016

RMI: Design & Implementation

Distributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects

Distributed Environments. CORBA, JavaRMI and DCOM

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration

Object-Oriented Distributed Technology

Mohsin Qasim Syed Abbas Ali

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope

Last Class: RPCs. Today:

CORBA and COM TIP. Two practical techniques for object composition. X LIU, School of Computing, Napier University

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Distributed Systems Principles and Paradigms

OrbixCOMet Desktop Getting Started

Bringing COM Technology to Alignment Software * Abstract

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

C 1. Recap: Finger Table. CSE 486/586 Distributed Systems Remote Procedure Call. Chord: Node Joins and Leaves. Recall? Socket API

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Today: Distributed Objects. Distributed Objects

CO-LaN Annual meeting Sept 2014, Frankfurt, Germany

Apartments and COM Threading Models. Jim Fawcett CSE775 - Distributed Objects Spring 2008

Object-based distributed systems. INF 5040/9040 autumn Lecturer: Frank Eliassen

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

5 Distributed Objects: The Java Approach

Advanced Lectures on knowledge Engineering

presentation DAD Distributed Applications Development Cristian Toma

Object-Oriented Systems Design RMI

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

Lecture 15: Network File Systems

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Chapter 4 Communication

RPC and RMI. 2501ICT Nathan

Chapter 5: Distributed objects and remote invocation

Distributed Systems. 5. Remote Method Invocation

Distributed systems Lecture 11: Object-Oriented Middleware (OOM), clocks and distributed time. Dr. Robert N. M. Watson.

Networks and Operating Systems Chapter 3: Remote Procedure Call (RPC)

Verteilte Systeme (Distributed Systems)

Verteilte Systeme (Distributed Systems)

Distributed Middleware. Distributed Objects

Chapter 3 Introduction to Distributed Objects

COM & COM+ (Component Object Model) Bazsó-Dombi András, Group 251.

Chapter 16. Layering a computing infrastructure

[MC-CCFG]: Server Cluster: Configuration (ClusCfg) Protocol

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Distributed Object-Based. Systems. Chapter 9

EECS 482 Introduction to Operating Systems

DCOM (Distributed Component Object Model) What is DCOM?

ANSAwise - CORBA Interoperability

REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS

Evolution of Service Oriented Architectures

Web Services: A Bridge between CORBA and DCOM

Distributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

Communication. Communication. Distributed Systems. Networks and protocols Sockets Remote Invocation Messages Streams. Fall /10/2001 DoCS

Remote Procedure Call

Chapter 4 Remote Procedure Calls and Distributed Transactions

Chapter 5: Remote Invocation. Copyright 2015 Prof. Amr El-Kadi

JAVA RMI. Remote Method Invocation

Communication and Distributed Processing

JAYARAM. COLLEGE OF ENGINEERING AND TECHNOLOGY Pagalavadi, Tiruchirappalli (An approved by AICTE and Affiliated to Anna University)

Programming with RMI Reminder

CAS 703 Software Design

Distributed systems Lecture 3: Further RPC and OOM systems; Clocks

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski

PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI

Distributed Systems. Distributed Object Systems 2 Java RMI. Java RMI. Example. Applet continued. Applet. slides2.pdf Sep 9,

Chapter 3: Client-Server Paradigm and Middleware

Remote Invocation Vladimir Vlassov and Johan Montelius

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

IBD Intergiciels et Bases de Données

Communication and Distributed Processing

Towards a Web-centric Legacy System Migration Framework

Transcription:

What is? Lecture 16 /D February 23, 2005 = Common Model. Platform-independent, distributed OO system for client-server implementations. objects can be created in a variety of languages (like CORBA). Not an object-oriented language but a standard (like CORBA). specifies an object model and programming requirements that enable objects (also called components) to interact with other objects. Principles of Provide a component object model that facilitates binary encapsulation and binary compatibility: binary encapsulation: s do not have to be re-compiled if server objects change binary compatibility: and server objects can be developed with different development environments and in different languages Design Principles Encapsulation: black box - no leakage of implementation details all object manipulation through strict interfaces Polymorphism: via multiple interfaces per class discoverable : QueryInterface IDispatch IRobot IUnknown Microsoft IDL (MIDL) Language for expressing all concepts. MIDL is: programming-language independent evolved from OSF/RPC IDL not computationally complete Different programming language bindings are available. Example (UML Diagram) Club -noofmembers:int -location:address +transfer(p:player) 1 Organization #name:string has * 1 1..* Trainer works for +train() Team coaches +bookgoalies() 1..* 1..* plays in 1 11..16 Player -Number:int +book() uses 1

Interfaces Interfaces IUnknown AddRef Release QueryInterface IDispatch GetIDsOfNames GetTypeInfo GetTypeInfoCount Invoke Custom Interfaces UUID Interfaces [object, uuid(1cf2b120-547d-101b-8e65-08002b2bd118)] interface IOrganization : IUnknown {... [object, Root Interface uuid(1cf2b120-547d-101b-8e65-08002b2bd116)] interface IClub : IOrganization {... Interface Inheritance Interface Impl. in C++ #include "Soccer.h" class TrainerPlayer : public Itrainer, public IPlayer { private: char* name; // name is the same in Itrainer & IPlayer short Number; //for IPlayer protected: virtual TrainerPlayer(void); public: TrainerPlayer(void); IMPLEMENT_UNKNOWN(TrainerPlayer) BEGIN_INTERFACE_TABLE(TrainerPlayer) IMPLEMENTS_INTERFACE(ITrainer) IMPLEMENTS_INTERFACE(IPlayer) END_INTERFACE_TABLE(TrainerPlayer) void train(); // Itrainer method void book(); // IPlayer method s Instances of implementations. References to objects are called interface pointers. Interface pointers refer to main memory locations. References support location transparency. The references are persistent. Attributes does not support direct attribute specification. Attributes must be represented as set and get operations by the designer. has a keyword to designate this. Example: interface IOrganization : IUnknown { [propget] HRESULT Name([out] BSTR val); Operations Parameter kind Parameter list interface IClub : IOrganization { [propget] HRESULT NoOfMembers([out] short *val); [propget] HRESULT Address([out] ADDRESS *val); [propget] HRESULT Teams([in] long cmax, [out] long *pcact, [out,size_is(cmax),length_is(*pcact)] ITeam *val); [propput] HRESULT Teams([in] long celems, [in,size_is(celems)] ITeam *val); [propget] HRESULT Trainers([out] ITrainer *val[3]); [propput] HRESULT Trainers([in] ITrainer *val[3]); HRESULT transfer([in] IPlayer *p); Return value indicating success/failure Operation name Parameter, e.g. Interface pointer 2

Hresults HRESULTS are 32-bit integers Structured into four fields Severity Reserved Facility 31 30-29 28-16 15-0 Information Operation Invocations Invocation provides: interface pointer of server object name of invoked operation actual parameters Invocation is executed synchronously Invocation can be defined statically dynamically s have to interpret HRESULTS! Three Implementations of Requests D Architecture Server Method call Inter-process call with light-weight RPC Remote call with real RPC Local in EXE Server Interface Library proxy stub Class Implementation Interface Library stub Application Presentation Local in In-Process DLL on Remote Host SCM Registry Microsoft RPCs SCM Registry Session Resolver Resolver Architecture D Architecture Communication details handled by runtime. 3

& Stub D Wire Protocol Machine Server Machine TCP, UDP SPX,IPX Net BEUI HTTP Component D Security Security Architecture Secure - security is designed and built in, not an option. D uses the extensible security framework provided by Windows NT. Security configurable D stores Access Control Lists for components ACLs can be configured using the D configuration tool (DCNFG) or programmatically using the Windows NT registry and Win32 security functions. Machine NTLM SSL, Certs. NT Kerberos DCE Server Machine Component Components & Reuse Use existing tools and components. Reduce development time and cost. components easily configured as D components. can use many other components. components are usable by many technologies. Location Transparency object locations are stored in registry. Applications make calls using the interface proxy. Path to server or remote computer to run D server is not needed by the application. 4

Connection Management Low bandwidth: header is 28 bytes over DCE-RPC keep-alive Messages bundled for all connections between machines. employs an efficient pinging protocol to detect if clients are active. uses reference counting mechanism to do garbage collection. Efficient & Scalable Multiplexing - single port per-protocol, per server process, regardless of # of objects Scalable - connection-less protocols like UDP preferred Established connection-oriented (TCP) sessions reused by same client Server Platform Neutrality Basic Principles D run-time is available for various platforms: Win32 platforms, Solaris, DEC UNIX, HPUX, Linux, MVS, VMS, Mac cross-platform interoperability standard Per-platform binary standard: unlike Java, D can utilize powerful platformspecific services and optimizations less abstraction layers prevents additional overheads Language Remote reference IDL interface Marshalling CORBA many reference OMG IDL IDL stub IDL skeleton IIOP, CDR RMI Java object ID JAVA stub, skeleton Serialization /D C++, Java, VB,... Handles to remote interface (interface pointer) MIDL proxy, stub Network data representation (RPC) 5