© Chinese University, CSE Dept. Distributed Systems / 6 - 1 Distributed Systems Topic 6: Resolving Heterogeneity Dr. Michael R. Lyu Computer Science &

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 2: Distributed Software Engineering Using CORBA Dr. Michael R. Lyu.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Distributed Systems Architectures
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CORBA Framework Eelements 1 CORBA Framework Elements  Object Request Broker (ORB)  This is the object manager in CORBA  Mechanisms for specifying interfaces.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 11: CORBA.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Distributed Service Architectures Yitao Duan 03/19/2002.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
II. Middleware for Distributed Systems
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 4: RPCs vs. CORBA Dr. Michael R. Lyu Computer Science & Engineering.
CORBA Chapter 17 Coulouris text. Today’s Topics CORBA History and goals CORBA RMI CORBA services The Distributed Whiteboard Revisited.
Common Object Request Broker Architecture (CORBA) CS-328.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
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.
H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Research Issues in CORBA What keeps CORBA people awake at Night! Peter de Jong.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Slide 1 © Ingeniørhøjskolen i Århus ITONK1 CORBA & ICE Introduction.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
CORBA Distributed Technology CASE STUDY Juan C. Navarro.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
Information Management NTU Interprocess Communication and Middleware.
Abhishek Bachchan Vishal Patangia
CORBA IS 8030 – Integrated Computing Environments Dr. Hoganson CORBA Common Object Request Broker Architecture Published by Object Management Group (OMG)
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Distributed Object Frameworks DCE and CORBA. Distributed Computing Environment (DCE) Architecture proposed by OSF Goal: to standardize an open UNIX envt.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #23.
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.
The World Leader in Making Software Work Together ™ Copyright IONA Technologies 1999 Building CORBA Applications (On OS/390 ?) Dusty Rivers Enterprise.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
CS551 - Lecture 11 1 CS551 Object Oriented Middleware (III) (Chap. 5 of EDO) Yugi Lee STB #555 (816)
Objektorienteret Middleware (OOMI)
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 3: Communication Dr. Michael R. Lyu Computer Science & Engineering.
CORBA (Common Object Request Broker Architechture) Aniket Prabhune Varun Saini Balaprasuna Chennupati Lally Singh.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Objektorienteret Netværkskommunikation (ITONK1) CORBA Introduction.
January 25, 2016 First experiences with CORBA Niko Neufeld.
1 Distributed Programming low level: sending data among distributed computations higher level: supporting invocations among distributed computations network.
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke.
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
CORBA: Object Adapter, Services, Inter-ORB Protocols - Balaprasuna Chennupati.
Topic 5: CORBA RMI Dr. Ayman Srour
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
CORBA: An Overview Mojtaba Hosseini.
Common Object Request Broker Architecture (CORBA)
CORBA Alegria Baquero.
CORBA Within the OS & Its Implementation
The OMG Approach CORBA, CCM, OMA, and MDA.
Inventory of Distributed Computing Concepts and Web services
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Component--based development
Wireless CORBA Richard Verhoeven.
Quality Assurance for Component-Based Software Development
1999년 10월 29일 김 정 선 한양대학교 공학대학 전자컴퓨터공학부
Copyright 1999 B.Ramamurthy
Presentation transcript:

© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 6: Resolving Heterogeneity Dr. Michael R. Lyu Computer Science & Engineering Department The Chinese University of Hong Kong

© Chinese University, CSE Dept. Distributed Systems / Outline  Heterogeneous Programming Languages –Common Object Model –Common Interface Definition Language –Programming Language Bindings  Heterogeneous Middleware –Interoperability –Interworking  Heterogeneous Data Representation –Standardized Data Representation –Application-Level Transport Protocol –Virtual Machines

© Chinese University, CSE Dept. Distributed Systems / Heterogeneous Languages: Motivation  Components of distributed systems are written in different programming languages  Programming languages may or may not have their own object model  Object models largely vary  Differences need to be overcome in order to facilitate integration and portability

© Chinese University, CSE Dept. Distributed Systems / Heterogeneous Programming Languages 1 Polylingual applications. 2 Standardization of bindings. 3 Available bindings. 4 What bindings need to address. 5 An example: IDL/C++.

© Chinese University, CSE Dept. Distributed Systems / Polylingual Applications  Polylingual applications have components in different programming languages.  Language bindings address language interoperability.  Problem: with n different languages, n(n-1) different language bindings needed.  Solution: One language (such as IDL) as a mediator. Requires only n bindings.

© Chinese University, CSE Dept. Distributed Systems / PL IDL 1.1 Why do we use an IDL?

© Chinese University, CSE Dept. Distributed Systems / Interface Definition Language  Language for expressing all concepts of the middleware’s object model  Should be –programming-language independent –not computationally complete  Bindings to different programming languages are needed  As an example: OMG object model and OMG/IDL

© Chinese University, CSE Dept. Distributed Systems / Polylingual Applications with IDL Infra- structure Client side Object Implementation Side IDL Java Client C++ Object Implementation IDL

© Chinese University, CSE Dept. Distributed Systems / IDL Common Object Model Common Object Model Smalltalk Cobol Java Ada C++ C C 1.3 CORBA Programming Language Bindings Python Lisp IDLscript

© Chinese University, CSE Dept. Distributed Systems / What Bindings Need to Address  Atomic data types and type constructors  Constants  Interfaces and multiple inheritance  Object references  Attribute accesses  Operation execution requests  Exceptions  Invocation of ORB operations

© Chinese University, CSE Dept. Distributed Systems / An Example: IDL/C++ 1 Modules 2 Atomic Types 3 Records 4 Interfaces 5 Attributes 6 Operations 7 Inheritance 8 Exceptions 9 Operation Execution Requests

© Chinese University, CSE Dept. Distributed Systems / Modules IDL: C++: module BankApplication {... }; namespace BankApplication {... };

© Chinese University, CSE Dept. Distributed Systems / Atomic Types IDL C++ shortCORBA::Short longCORBA::Long unsigned shortCORBA::UShort unsigned longCORBA::ULong floatCORBA::Float doubleCORBA::Double charCORBA::Char booleanCORBA::Boolean octetCORBA::Octet enum

© Chinese University, CSE Dept. Distributed Systems / Records struct info { CORBA::Long height; CORBA::Short weight; }; struct info { long height; short weight; }; IDL C++

© Chinese University, CSE Dept. Distributed Systems / Interfaces interface person {... }; class person {... }; IDL C++

© Chinese University, CSE Dept. Distributed Systems / Attributes IDL C++ interface person { attribute readonly string name; attribute address lives_at; }; class person { public: string name(); void lives_at(address &); address lives_at(); };

© Chinese University, CSE Dept. Distributed Systems / Operations IDL C++ interface person { void move(in address new); }; class person { public: void move(const address & new); };

© Chinese University, CSE Dept. Distributed Systems / Inheritance interface employee : person {... person boss(); }; class employee : public virtual person { public: person boss(); }; IDL C++

© Chinese University, CSE Dept. Distributed Systems / Exceptions interface employee : person { exception too_young{...}; void retire() raises (too_young); }; class employee : public virtual person { public: class too_young:public UserException { too_young (const char *id); ~too_young (); }; void retire() throw (too_young); }; IDL C++

© Chinese University, CSE Dept. Distributed Systems / Operation Execution Requests employee * emp;... try { emp->retire(); } catch (const too_young &IsTooYoung){ // Handle the Specific Exception } catch (const SystemException &SysEx){ switch (SysEx->minor() ) { case BAD_PARAM :... ; break; case NO_MEMORY :... ; break; }; C++

© Chinese University, CSE Dept. Distributed Systems / Need for Heterogeneous Middleware  Middleware implementations differ: –Available programming language bindings –Available services & facilities –Supported hardware platforms –Supported operating system platforms  Separation of security domains.  Large scale distributed systems.

© Chinese University, CSE Dept. Distributed Systems / Component Middleware Vendor A Component Middleware Vendor B Component Middleware Vendor C 2.1 Heterogeneous Middleware

© Chinese University, CSE Dept. Distributed Systems / Middleware Integration ORB OLE RPC Bridge ORB Component

© Chinese University, CSE Dept. Distributed Systems / Bridging Client ORB Core Obj. Imp. Client ORB Core Obj. Imp. DSI DII  in-line  request-level

© Chinese University, CSE Dept. Distributed Systems / Interoperability vs. Interworking  Interoperability denotes the ability of different implementations of the same middleware standard to work together. Requires –Definition of interaction protocols  Interworking defines how different middleware standards are integrated. Requires –Mapping of object models –Definition of interaction protocols

© Chinese University, CSE Dept. Distributed Systems / Interoperability vs. Interworking  Interoperability between different implementations of the same standard (CORBA)  Interworking between different standards –CORBA  DCE –CORBA  COM/DCOM/OLE  First CORBA interoperability  Then COM/CORBA interworking

© Chinese University, CSE Dept. Distributed Systems / CORBA 2.0 Applications GIOP ESIOP IIOP DOETalk DCE-CIOP Mandatory: provides "out of the box" interoperability 2.4 Interoperability Protocols

© Chinese University, CSE Dept. Distributed Systems / General Inter-ORB Protocol (GIOP)  Define eight messages: –Request –Reply –Fragment –Locate Request –Locate Reply –Cancel request –Close Connection –Message Error

© Chinese University, CSE Dept. Distributed Systems / Common Data Representation  Defined as part of GIOP.  Presentation layer implementation to support heterogeneity.  Mapping of IDL data types to transport byte stream.  Encodings of –primitive types –constructed types –interoperable object references

© Chinese University, CSE Dept. Distributed Systems / Internet Inter-ORB Protocol (IIOP)  Maps GIOP to TCP/IP.  Provides operations to open and close TCP/IP connections.  Is required from ORBs for CORBA compliance.  Supported by Netscape Communicator and others.

© Chinese University, CSE Dept. Distributed Systems / Motivation for Interworking  COM and OLE/Automation are widely used for desktop integration of PC applications –Compound documents –Visual Basic / Visual C++ User Interfaces.  OMG has no support for compound documents and user interfaces yet.  COM and OLE do not support distribution.  CORBA was designed to support distribution.

© Chinese University, CSE Dept. Distributed Systems / COM-CORBA Interworking  Goal: provide transparent bi-directional mapping between COM/OLE and CORBA.  Adopted specification was submitted by consortium of 11 ORB vendors. Most of them have COM/OLE Interworking implemented in their ORB products.  Microsoft decided not to be involved in this effort but rather pursue its own distributed object environment (DCOM).  CORBA2.2 specification defines interworking between CORBA and DCOM.

© Chinese University, CSE Dept. Distributed Systems / Object System A Object System B objref in A objref in A Bridge objref in B objref in B View in A of target in B View in A of target in B target object implementa- tion in B target object implementa- tion in B Interworking Architecture

© Chinese University, CSE Dept. Distributed Systems / CORBA clientCOM server CORBA objref Bridge CORBA view of COM object Target COM object CORBA client Automation server CORBA objref Bridge CORBA view of Autom. object Automation object CORBA serverCOM client Bridge COM view of CORBA object Target CORBA object CORBA serverAutomation client Bridge Autom. view of CORBA object Target CORBA object Architecture Instantiations

© Chinese University, CSE Dept. Distributed Systems / CORBA  COM  Enables COM Clients to access CORBA objects  Fairly straight-forward mapping: –IDL atomic types map closely to COM primitives –Constructed types also map closely –CORBA object references map to COM interface pointers –Inherited CORBA interfaces may be represented as multiple COM interfaces –CORBA attributes mapped to ´set´ and ´get´ operations in COM.

© Chinese University, CSE Dept. Distributed Systems / Heterogeneous Data Representation  Examples of Heterogeneity –Big-endian versus little-endian data representation –Different encoding schemes for character set –Different ways complex data types are implemented by run-time environment of programming languages  Resolution: Standardized Data Representation  Resolution: Application-Level Transport Protocol  Resolution: Virtual Machines

© Chinese University, CSE Dept. Distributed Systems / Summary  Polylingual applications.  IDL programming language bindings.  Heterogeneous Middleware  Heterogeneous Data Representation.