Today CSCI Remote Method Invocation (RMI) Distributed Objects

Similar documents
Last Class: RPCs and RMI. Today: Communication Issues

Last Class: RPCs. Today:

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

Communication. Overview

Communication. Distributed Systems Santa Clara University 2016

Chapter 4 Communication

Chapter 4 Communication

Communication. Outline

Today CSCI Communication. Communication in Distributed Systems. Communication in Distributed Systems. Remote Procedure Calls (RPC)

Distributed Information Processing

Distributed Systems COMP 212. Lecture 15 Othon Michail

DISTRIBUTED COMPUTER SYSTEMS

Verteilte Systeme (Distributed Systems)

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

Communication. Layered Protocols. Topics to be covered. Layered Protocols. Introduction

SAI/ST course Distributed Systems

May Gerd Liefländer System Architecture Group Universität Karlsruhe (TH), System Architecture Group

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

Distributed Systems. Communication (2) Lecture Universität Karlsruhe, System Architecture Group

Distributed Systems. Communication (2) Schedule of Today. Distributed Objects. Distributed Objects and RMI. Corba IDL Example

Chapter 4 Communication

DS 2009: middleware. David Evans

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

IPC. Communication. Layered Protocols. Layered Protocols (1) Data Link Layer. Layered Protocols (2)

Last Class: RPCs. Today:

Parallelism. Master 1 International. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique

Architecture of Software Intensive Systems

Distributed Systems. Chapter 02

Middleware and Interprocess Communication

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication

Lecture 5: Object Interaction: RMI and RPC

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

Distributed Systems Inter-Process Communication (IPC) in distributed systems

JAVA RMI. Remote Method Invocation

Distributed Systems Principles and Paradigms. Chapter 04: Communication

CHAPTER - 4 REMOTE COMMUNICATION

CSci Introduction to Distributed Systems. Communication: RPC

Indirect Communication

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Architecture of Distributed Systems

Process Concept. Chapter 4: Processes. Diagram of Process State. Process State. Process Control Block (PCB) Process Control Block (PCB)

Chapter 4: Processes

Lecture 06: Distributed Object

Chapter 4: Processes. Process Concept

Collaboration of Tasks

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

Diagram of Process State Process Control Block (PCB)

Indirect Communication

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

Object-Oriented Distributed Technology

Communication. Distributed Systems IT332

Chapter 3: Processes. Chapter 3: Processes. Process in Memory. Process Concept. Process State. Diagram of Process State

Communication in Distributed Systems

DISTRIBUTED COMPUTER SYSTEMS

Chapter 4: Processes. Process Concept. Process State

Part Two - Process Management. Chapter 3: Processes

Today: Distributed Objects. Distributed Objects

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

Advanced Distributed Systems

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS. Lecture Contents

Processes. Electrical and Computer Engineering Stephen Kim ECE/IUPUI RTOS & Apps 1

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

Unit 7: RPC and Indirect Communication

The Big Picture So Far. Chapter 4: Processes

02 - Distributed Systems

Processes. Operating System Concepts with Java. 4.1 Sana a University, Dr aimen

Outline. Interprocess Communication. Interprocess Communication. Communication Models: Message Passing and shared Memory.

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

Advanced Topics in Operating Systems

CHAPTER 3 - PROCESS CONCEPT

The Big Picture So Far. Chapter 4: Processes

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

Chapter 5: Processes & Process Concept. Objectives. Process Concept Process Scheduling Operations on Processes. Communication in Client-Server Systems

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

Distributed Middleware. Distributed Objects

Chapter 4: Processes. Process Concept

02 - Distributed Systems

Chapter 4: Processes

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Remote Objects and RMI

Process. Program Vs. process. During execution, the process may be in one of the following states

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

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

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

Distributed Systems. The main method of distributed object communication is with remote method invocation

LECTURE 6: ENTERPRISE APPLICATION INTEGRATION (EAI), SERVICE-ORIENTED ARCHITECTURE (SOA) & MIDDLEWARE IN ENTERPRISE ARCHITECTURE

5 Distributed Objects: The Java Approach

COMMUNICATION IN DISTRIBUTED SYSTEMS

CAS 703 Software Design

IBM Lotus Expeditor 6.2 Server MQ Everyplace Overview

Distributed Systems Recitation 3. Tamim Jabban

Interprocess Communication

Distributed Computing

Distributed Objects. Object-Oriented Application Development

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Information Processing

RPC IMPLEMENTATION: BASIC STEPS. Instructor: Prasun Dewan Department of Computer Science University of North Carolina at Chapel Hill

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

Transcription:

Today CSCI 5105 Remote Method Invocation (RMI) Message-oriented communication Stream-oriented communication Instructor: Abhishek Chandra 2 Remote Method Invocation (RMI) RPCs applied to distributed objects Class: object-oriented abstraction Object: instance of class Encapsulates data Exports methods: operations on data Separation between interface and implementation Distributed Objects Interface resides on one machine, object on another RMIs allow invoking methods of remote objects Use proxies, skeletons, binding Allow passing of object references as parameters 3 4 1

Basic RMI Operation RMI Client Client Object Proxy RMI Server Server Object Skeleton Proxies and Skeletons Proxy: client stub Maintains server ID, endpoint, object ID Does parameter marshalling In practice, can be downloaded/constructed on the fly Skeleton: server stub Does demarshalling and passes parameters to server Sends result to proxy 5 6 Binding a Client to an Object Loading a proxy in client address space Implicit binding: Bound automatically on object reference resolution Explicit binding: Client has to first bind object Call method after binding Parameter Passing Less restrictive than RPCs Supports system-wide object references Copy local objects, pass references of remote objects 7 8 2

Java RMI java.rmi package 3 components: Remote object interface Client code: Invokes remote object methods Server code: Implements remote object RMI compiler: Generates stub and skeleton code Can pass local objects as well as remote references Serialization Used to pass objects Default serialization: Flatten all fields of object User-defined serialization: Provide methods for reading and writing object Can choose what fields or data to write and read Allows passing objects over streams Files, sockets, etc. RMI uses serialization for parameter marshalling 9 10 Message-oriented Communication Allows various combinations of persistence and synchronization Different protocols implement different combinations MPI: Transient Communication Message-queuing: Persistent communication Message-Passing Interface (MPI) Sockets designed for network communication (e.g., TCP/IP) Support simple send/receive primitives General-purpose MPPs and COWs require Advanced primitives Other forms of buffering, synchronization Large number of incompatible proprietary libraries and protocols Need for a standard interface 11 12 3

Message-Passing Interface (MPI) Message-passing interface (MPI) Hardware independent Designed for parallel applications Communication between groups of processes Each endpoint is a (groupid, processid) pair Messaging primitives support different forms of transient communication MPI_bsend: transient asynchronous MPI_ssend: delivery-based transient synchronous Message-Queuing Model Support asynchronous persistent communication Intermediate storage for message while sender/receiver are inactive Communicate by inserting messages in queues Loosely coupled communication Sender is only guaranteed that message will be eventually inserted in recipient s queue No guarantees on when or if the message will be read Examples: IBM Websphere MQ, MS Message Queuing, Amazon Simple Queue Service 13 14 Message-Queuing Entities Queue managers: Handle message sending/receiving from queues Storage, communication, notification Relays: Message routers Message brokers: App-level gateways Can transform messages between formats Publish/Subscribe systems Brokers match applications to messages Stream-oriented Communication So far: Communication in terms of independent units (RPC calls, messages, etc.) No strict timing relation between these units What if we want to transmit: Videos Sensor data 15 16 4

Stream-oriented Communication Stream: Sequence of data units E.g.: files, pipes, videos Discrete data streams Need to transmit in order, no other constraints. E.g.: Temperature sensor readings Continuous media streams Fundamental temporal relations between different data items. E.g.: Video frames Continuous Media Streams QoS requirements: Timing/rate constraints: e.g.: frame rate Jitter constraints Synchronization constraints: audio+video streams Techniques: Client-side: Buffering Server-side: Stream shaping Multi-stream synchronization 17 18 5