Lecture 3 From process-oriented to agent-oriented programming.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

DISTRIBUTED COMPUTING PARADIGMS
Remote Method Invocation (RMI) Mixing RMI and sockets
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.
Advanced Programming Rabie A. Ramadan Lecture 4. A Simple Use of Java Remote Method Invocation (RMI) 2.
Remote Method Invocation
Remote Object Invocation Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Introduction to Jini & JavaSpaces
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
EEC-681/781 Distributed Computing Systems Lecture 5 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
02/02/2004CSCI 315 Operating Systems Design1 Interprocesses Communication Notice: The slides for this lecture have been largely based on those accompanying.
Communication in Distributed Systems –Part 2
Client-Server Communication Sockets Remote Procedure Calls Remote Method Invocation (Java)
02/01/2010CSCI 315 Operating Systems Design1 Interprocess Communication Notice: The slides for this lecture have been largely based on those accompanying.
Lesson 3 Remote Method Invocation (RMI) Mixing RMI and sockets Rethinking out tic-tac-toe game.
Java Agent Development Environment (JADE) Jade is a platform for running agents; it supports: –An asynchronous agent programming model –Communication between.
Chapter Intranet Agents. Chapter Background Intranet: an internal corporate network based on Internet technology. Typically, an intranet can.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 4 Communication.
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
Java Remote Method Invocation RMI. Idea If objects communicate with each other on one JVM why not do the same on several JVM’s? If objects communicate.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Jini Technology Basics Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University
ProActive components and legacy code Matthieu MOREL.
Remote Method Invocation by James Hunt, Joel Dominic, and Adam Mcculloch.
Distributed Computing Paradigms1. 2 Paradigms for Distributed Applications Paradigm means “a pattern, example, or model.” In the study of any subject.
1 Lecture 21 – April 4, 2002 Dynamic Loading Communication in Bond Message delivery Internal and external message format KQML Synchronous and asynchrounous.
Data Sharing Service Kiran Devaram Samatha Gangapuram Harish Maringanti Prashant Shanti Kumar Pradeep Tallogu.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Distributed Objects. Contents I. The Roles of Client and Server II. Remote Method Calls III. The RMI Programming Model IV. Parameters and Return Values.
RMI (Java RMI) P 460 in text UUIDs / system wide references Transparent: all objects either by ref. or by value. Not efficient, especially int, bool, etc.
Remote Method Invocation Internet Computing Workshop Lecture 17.
Java Distributed Computing
Last Class: Introduction
“Request /Reply Communication”
Self Healing and Dynamic Construction Framework:
Lecture 22 – April 9, 2002 Subprotocols – static and dynamic.
Java Distributed Computing
MCA – 405 Elective –I (A) Java Programming & Technology
Remote Method Invocation
Introduction to Middleware I
O2S Components Framework
Lecture 20 – April 2, 2002 Bond Objects.
#01 Client/Server Computing
Ch > 28.4.
Knowledge Byte In this section, you will learn about:
Programming Models for Distributed Application
DISTRIBUTED COMPUTING
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
IDSS Lab – research directions Sept 6, 2002
Event Pipeline Pattern
Architectures of distributed systems Fundamental Models
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Architectures of distributed systems Fundamental Models
Bond-Jini Interoperability
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
AGENT FRAMEWORK By- Arpan Biswas Rahul Gupta.
An Introduction to Internetworking
Architectures of distributed systems Fundamental Models
Parallel programming in Java
15. Proxy SE2811 Software Component Design
#01 Client/Server Computing
Presentation transcript:

Lecture 3 From process-oriented to agent-oriented programming. Distributed object systems. Bond objects. Communication. Asynchronous communication. Event handling. Semantic understanding of messages. Probes.

Bond basics Distributed-object system. Message passing distributed object system. Why? Other systems, e.g. Jini are based upon Java RMI.

Bond objects A Bond object extends the standard Java object with: Unique identifier. Communication support. Serialization and cloning. Dynamic properties. Multiple inheritance. Visual Editor. Light-weight objects (e.g. messages, shadows)

Bond resident Container Object. Directory. Each object is registered at the time of creation. Aliases. Communication Engine – runs at a known port on a system with a given BondIPAddress

Communication engine

Local shadow of a remote object We wish to communicate with a remote object as if it were local. To do so we need a local representative of the remote object. Proxy in Voyager Stub in RMI Stubs are used to create VONs Shadows are used to crfeate a local copy of a remote object.

Communication with remote objects -bond shadows

Virtual Object Networks, VONs

Object mobility

Message composition The system supports messages in KQML and XML format. Message composition – putting all pieces together: The contents of the message. The source. The destination. The sub-protocol – we’ll talk about them later. For now think of a subprotocol as a dialect that two objects understand…..

KQML performatives Categories of performatives: Queries: ask; Responses: tell; Informational: Generative: Capability: Networking:

Asynchronous communication using reply-waiting slots

Event handling Java objects use listeners abstractions to capture events. Corba uses an event service. Bond uses event waiting slots.

The subscribe-notify model. Event waiting slots.

Subprotocols Dialects. Closed sets of messages required for a “conversation”. Each message is stamped with the subprotocol it belongs to. Each bond object: has a property called subprotocols implemented that lists all the subprotocols it understands. Implements the bondAccessSubprotocol

Subprotocol inheritance Static inheritance Dynamic inheritance. Probes extend an object and allow it to speak a new protocol. Probes are dynamic properties.