Distributed Objects. Object-Oriented Application Development

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

CORBA (Common Object Request Broker Architecture)

Distributed Systems Middleware

Today: Distributed Objects. Distributed Objects

Advanced Lectures on knowledge Engineering

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

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

Distributed Environments. CORBA, JavaRMI and DCOM

UNIT 4 CORBA 4/2/2013 Middleware 59

1.264 Lecture 16. Legacy Middleware

Distributed Middleware. Distributed Objects

Distributed Technologies - overview & GIPSY Communication Procedure

Today: Distributed Middleware. Middleware

Lecture 5: Object Interaction: RMI and RPC

Appendix A - Glossary(of OO software term s)

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

Mohsin Qasim Syed Abbas Ali

Distributed Object-based Systems CORBA

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

Client/Server-Architecture

AQUILA. Project Defense. Sandeep Misra. (IST ) Development of C++ Client for a Java QoS API based on CORBA

Lecture 06: Distributed Object

Network Computing (EE906) Part 4: Distributed Object Technology

CORBA vs. DCOM. Master s Thesis in Computer Science

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

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

RIKA: Component Architectures

Electronic Payment Systems (1) E-cash

Distributed Systems Principles and Paradigms

Object Management Group. minimumcorba. Presented By Shahzad Aslam-Mir Vertel Corporation Copyright 2001 Object Management Group

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

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

RMI: Design & Implementation

OO-Middleware. Computer Networking 2 DVGC02 Stefan Alfredsson. (slides inspired by Annika Wennström, Sören Torstensson)

CORBA. CORBA Background. (Common Object Request Broker Architecture)

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

presentation DAD Distributed Applications Development Cristian Toma

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

ANSAwise - CORBA Interoperability

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

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

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

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

Chapter 5: Distributed objects and remote invocation

Cloud Computing Chapter 2

A Systematic Approach to Composing Heterogeneous Components

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

CHAPTER 2. Introduction to Middleware Technologies

Distributed Object-based Systems CORBA

Application Servers in E-Commerce Applications

DS 2009: middleware. David Evans

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

Chapter 3 Introduction to Distributed Objects

DISTRIBUTED SYSTEMS [COMP9243] Lecture 7: Middleware MIDDLEWARE. Distributed Object based: Slide 1. Slide 3. Message-oriented: Slide 4

Communication. Distributed Systems Santa Clara University 2016

Software Components and Distributed Systems

PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI

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

Part 6: Distributed Objects and EJB. 2003, Karl Aberer, EPFL-SSC, Laboratoire de systèmes d'informations rèpartis Part 5-1

Integrating Fragmented Objects into a CORBA Environment

Lecture 6. Architectural Patterns: Broker

Unit 7: RPC and Indirect Communication

GEM Security Adaption Karin Almstedt The Royal Institute of Technology Kungliga Tekniska Högskolan

Introduction to Web Services & SOA

(9A05803) WEB SERVICES (ELECTIVE - III)

Distributed Simulation Modeling: A Comparison Of HLA, CORBA, and RMI

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

Introduction to Web Services & SOA

Lecture 15: Network File Systems

Verteilte Systeme (Distributed Systems)

CORBA COMMON OBJECT REQUEST BROKER ARCHITECTURE OVERVIEW OF CORBA, OMG'S OBJECT TECHNOLOGY FOR DISTRIBUTED APPLICATIONS CORBA

Outline. Chapter 5 Application Server Middleware. Types of application server middleware. TP monitors CORBA Server-side components and EJB Summary

Interworking Methodologies for DCOM and CORBA.

DCOM CORBA EJB DCOM CORBA CORBA EJB DCOM EJB

Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 29-31, Middleware in Context: 2016 David E. Bakken

Performance comparison of DCOM, CORBA and Web service

OO-Middleware. Computer Networking 2 DVGC02 Stefan Alfredsson. (slides inspired by Annika Wennström, Sören Torstensson)

RPC and RMI. 2501ICT Nathan

Chapter 16. Layering a computing infrastructure

Distribution and web services

Computer Science Program, The University of Texas, Dallas. Distributed Objects and Components

CHAPTER - 4 REMOTE COMMUNICATION

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

Tools for Distributed Software. Tommi Lukkarinen

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

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

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC)

Object-Oriented Middleware for Distributed Systems

Middleware in Context: 2016 David E. Bakken. Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 30, 2019

Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD

Towards a Web-centric Legacy System Migration Framework

CHAPTER 7 COM and.net

The Umbilical Cord And Alphabet Soup

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Distributed Computing

Distributed Objects. Chapter Distributing Objects Overview

Session plan. sessionx. Desarrollo de Aplicaciones en Red. What s Corba? RPC vs. Corba. Middleware. Middleware task

Computer and Automation Research Institute Hungarian Academy of Sciences. Jini and the Grid. P. Kacsuk

Transcription:

Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming to avoid spaghetti code 1

-Oriented Application Development Programming with objects An object represents both data and behavior Data = attributes, behavior = methods A collection of logically related data and behavior -Oriented Application Development More than simply repackaging of procedural concepts Encapsulation: inner workings of an object are not exposed (or encapsulated ) Inheritance: an object automatically inherits attributes and behavior of its parent object; may redefine some attributes and behavior Polymorphism: when invoked in the same way, different objects behave differently 2

Classes, Instances, Interfaces Class vs. Instance Class is a blueprint, template for creating an object (program code on disk); e.g. Employee Instance is a live object, with specific data (in memory); e.g. John Smith Classes, Instances, Interfaces The concept of an Interface promotes encapsulation Separates the implementation (inner workings) from its definition as seen by the outside world The contract between the object and its users Pure abstract base class in C++; directly supported by Java Key concept for distributed objects 3

Non-Distributed - Oriented Development OO languages assume that all objects that make up an application exist in a single process space and are directly addressable Monolithic applications living in a single process Word processor, graphics application, spreadsheet Language-based objects are completely unprepared for distribution Across OS processes Across machines on the network Captive Language s Machine 1 Machine 2 Application A Application B Application C 4

Why Distributed s? Real world requires that applications be distributed Performance and scalability reasons Partitioning of application functionality Reuse of application functionality Why Distributed s? Application developers want to use OO concepts in developing distributed applications Reuse through encapsulation and inheritance Peer-to-peer messaging interfaces are too low-level Distributed object environments make objects first-class citizens Not bound to single OS process by the language environment 5

s in Distributed Environments OO language environments rely on a concept of an object reference attributes (data) and methods (behavior) are accessed with the help of the reference Somewhere underneath it is a memory pointer Memory pointer makes no sense in distributed environments Different processes have their own memory address space s in Distributed Environments Communications across networks is based on messages Distributed environments provide the glue to extend the concept of an object reference across process spaces and networks 6

Freeing the s Before A B After A Proxy Stub B Network Message Distributed Bus CPU Memory Hardware Bus I/O Request Bus Request Broker 7

Distributed Bus: A Pipe The Request Broker bus is just a connectivity pipe It will allow objects to communicate A lot more is needed for building distributed applications: distributed object services Distributed Bus: A Pipe Typical distributed services needed by objects: Naming - How to locate objects and connect to them Transactions Security Lifecycle - When to create and delete objects Persistence - How to store object attributes Etc. 8

Distributed s and Services Transactions Security Naming Other Bus Distributed s and Runtime Infrastructure A distributed object exists in a runtime environment Runtime infrastructure concerns include: Who starts and stops the program that contains objects? Who manages connections between objects? Who manages concurrent access by multiple clients? Who provides scalability and availability? Many others 9

Distributed s and Runtime Infrastructure Application Runtime Application Runtime Naming Transactions Security Other Bus Naming Transactions Security Other Distributed s: CORBA-Style Common Request Broker Architecture Developed by OMG ( Management Group) Consortium of 800+ companies (not Microsoft) Committee creates specs Microsoft has its own distributed object infrastructure: DCOM (COM+) Sun (JavaSoft) is both a CORBA supporter and detractor Java defined many competing standards to CORBA Love-hate relationship 10

CORBA IDL IDL: Interface Definition Language Language-neutral specification of an object s interface Only declares the interface ( contract ), CORBA IDL takes roots in DCE RPC IDL RPC IDL is used to describe the functional interface of a procedure being accessed remotely via RPC All services and objects that are part of CORBA standard are described in IDL IDL is the first step to allow objects written in different languages to interoperate CORBA IDL Example interface Simple { string to_lower(in string val); void to_upper(inout string val); }; 11

CORBA IDL Language Bindings OMG Management Architecture 12

CORBA 2.0 ORB CORBA ORB: Client Side Client IDL stubs Representation of the server object on the client Marshals (packs into messages) invocations and calls ORB runtime Dynamic Invocation Interface (DII) For discovering and invoking objects at runtime Interface Repository API Obtain descriptions of registered interfaces ORB Interface Utility methods 13

CORBA ORB: Server Side Server IDL Stubs (skeletons) Unmarshals the invocations and calls the object Dynamic Skeleton Interface (DSI) Server counterpart of DII Adapter Basic runtime environment Assigns object references and registers objects with implementation repository BOA and POA Implementation Repository Information about object classes supported by the server, instantiated objects and their IDs. CORBA IIOP Internet Inter-ORB Protocol General Inter-ORB Protocol over TCP/IP Before CORBA 2.0 and IIOP, ORBs from different vendors couldn t talk to each other IIOP defines the standard protocol for communication between ORBs Some implementations also use IIOP internally 14

Evolution of CORBA RMI (from java.sun.com) Tutorial on java.sun.com 15