Network Objects Presenter: Dan Williams. Trends Network centric view of world Jini, Web Services Based on Object Oriented models Both papers contributed.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

DISTRIBUTED COMPUTING PARADIGMS
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Distributed Processing, Client/Server, and Clusters
Chapter 16 Client/Server Computing Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
Introduction to Remote Method Invocation (RMI)
Tuple Spaces and JavaSpaces CS 614 Bill McCloskey.
Linda: A Data-space Approach to Parallel Programming CSE60771 – Distributed Systems David Moore.
Multiple Processor Systems 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.
Communication in Distributed Systems –Part 2
490dp Prelude I: Group Membership Prelude II: Team Presentations Tuples Robert Grimm.
CS603 Communication Mechanisms 14 January Types of Communication Shared Memory Message Passing Stream-oriented Communications Remote Procedure Call.
.NET Mobile Application Development Remote Procedure Call.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Implementing Remote Procedure Calls Authored by Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presented by Lars Larsson.
Lab 2 Group Communication Farnaz Moradi Based on slides by Andreas Larsson 2012.
Presenters: Rezan Amiri Sahar Delroshan
Farnaz Moradi Based on slides by Andreas Larsson 2013.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
By Alexander H. Emmet Network Objects (the Joys of Distributed Objects)
Coordination Models and Languages Part I: Coordination Languages and Linda Part II: Technologies based on Tuple space concept beyond Linda Part III: Comparison.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Distributed Objects & Remote Invocation
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
Presentation 3: Designing Distributed Objects. Ingeniørhøjskolen i Århus Slide 2 af 14 Outline Assumed students are knowledgeable about OOP principles.
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
09/14/05 1 Implementing Remote Procedure Calls* Birrell, A. D. and Nelson, B. J. Presented by Emil Constantinescu *ACM Trans. Comput. Syst. 2, 1 (Feb.
Manish Kumar,MSRITSoftware Architecture1 Remote procedure call Client/server architecture.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
CS294, YelickNetwork Objects, p1 CS Communication in Distributed Systems
Implementing Remote Procedure Calls Andrew D. Birrell and Bruce Jay Nelson 1894 Xerox Palo Alto Research Center EECS 582 – W16.
Network Objects Marco F. Duarte COMP 520: Distributed Systems September 14, 2004.
Implementing Remote Procedure Calls Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Published: ACM Transactions on Computer Systems,
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
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.
Last Class: Introduction
Java Distributed Object System
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Multiple Processor Systems
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Distribution Infrastructures
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Last Class: Communication in Distributed Systems
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Network Objects Presenter: Dan Williams

Trends Network centric view of world Jini, Web Services Based on Object Oriented models Both papers contributed some ideas Seems to be future even if we’re not quite there yet!

Communication RPC Doesn’t always fit our intuition Would like to access named objects Look like local objects to programmer May not care who receiver/worker is

Communication RPC Doesn’t always fit our intuition Would like to access named objects Look like local objects to programmer May not care who receiver/worker is We want a simple model!

Linda New model for parallel programming Simple, Elegant Linda in Context. Carriero and Gelernter.

Motivation: Linda Message-passing Not simple, not flexible! Concurrent OO programming Instance of message passing! Concurrent logic languages Not simple! Functional programming languages Not always suited to problem!

Basic Idea: Linda Tuple Space (“a string”, 15.01, 17, “another string”) (0, 1) Process 1Process 2 in / rd out / eval

Linda Operations in = take a tuple (block until match) in(“a string”, ? F, ? I, “another string”) rd = same as in but leave tuple out = output a tuple out(“a string”, 15.01, 17, “another string”) eval = output a live tuple eval(“M”, i, j, compute(i, j)) New process to compute something Becomes data tuple upon completion

Linda vs. Concurrent Obj Concurrent objects use monitors Simplicity Monitors need process forking, shared state variables, condition queue/signal Synchronous communication not norm Flexibility All elements of distributed data structure must reside inside monitor (restrict access)

Linda vs. Concurrent Logic Parallel conjunction Guarded clauses Shared logical variables Merge Problem Multiple clients – explicit merge Dining philosophers Much simpler in Linda

Linda vs. Functional Prog Specification for parallel compiler Parallelism: compiler or programmer? “Interpretive abstraction” Don’t have every process send individual result Fill some distributed data structure (freedom) Recursion equations not always helpful in understanding distributed problems Search may lend to recursion equations Comparing searches does not

Conclusion Linda is wonderful Or is it?

Tuple Spaces: Location Where is it located: 3 rd party? Node with tuple space AB

Tuple Spaces: Location Where is it located: 3 rd party? Node with tuple space AB Large tuples?

Tuple Spaces: Location Can be lots of communication overhead Single point of failure What if machine with tuple space crashes? Large amounts of clients/buggy clients What if tuple space fills up? Solution Distributed tuple space? Linda doesn’t look so simple/elegant anymore

Tuple Spaces: Implementation How is the tuple space organized Efficiently locate tuples Large number of tuples in space? How is the tuple space managed? Send request to tuple space for tuple space manager to search? Will tuple space need to spawn tons of threads?

Other Tuple Space Issues Tuple space memory leaks Program outputs a tuple, forgets about it If intended receiver crashed, tuple could remain a long time How can tuple space manager know how to get rid of these old tuples? Leases?

Security/Debugging Sender does not need to know receiver Responsibility offloaded to receiver Malicious/Buggy receiver can take tuples not intended for it How do you debug a system if tuples are “disappearing” in this manner? Malicious/Buggy sender can introduce bogus tuples How do you debug a system if tuples are “unexpected”?

Conclusions Linda looks really simple and elegant Thinking about how to actually implement a system using Linda Hidden complexities Correct model of computation? Linda not in widespread use

Linda Today Jini/Javaspaces Figure 1. Processes use spaces and simple operations to coordinate activities Copyright Sun Microsystems, Inc.

Motivation: Network Objects Object Oriented model Clients access state through methods Intuitively fits with distributed computing Method calls = Communication Details addressed How to implement Network Objects. Birrell et al.

Which features do we want? Focus on features believed to be of value to all distributed applications Powerful marshaling Strong type-checking Garbage collection Streams

Local Obj vs. Remote Obj Client Server call Client Server call Transparent! method invocation on local object method invocation on remote object

Basic Idea: Network Objects Stub Marshals using Pickles General purpose (efficient and compact) Network objects passed by reference Other objects passed by copying Surrogate object Methods perform RPC to owner

Object Types T TSrgTImpl Pure object type (only declares methods) Subtype of T with overridden methods to perform RPC Subtype of T corresponding to the owner object (including data fields)

Overview Obj Ref Obj ClientOwner

Overview Stub Obj Ref Unmarshal Ref Select Transport Select Srg Type Obj ClientOwner

Overview Stub Surrogate Object call Obj Ref Unmarshal Ref Select Transport Select Srg Type Obj ClientOwner

Overview Stub Surrogate Object call Obj Ref Unmarshal Ref Select Transport Select Srg Type Obj Dispatcher ClientOwner

Overview Stub Surrogate Object call Obj Ref Unmarshal Ref Select Transport Select Srg Type Obj Dispatcher ClientOwner

Garbage Collection Exported Objects cannot be collected if surrogates exist somewhere Synchronously make dirty call upon creation Make clean calls when local garbage collector picks up surrogate If dirty set is empty, exported object can be collected What if dirty client disappears?

Transports Many protocols for communication TCP, UDP, shared mem, etc. Transports generate and manage connections Returns Location Creates new connections to an address space c.rd, c.wr

Marshaling / Unmarshaling Marshaling Object marked as exported Unmarshaling New Surrogate Locate owner Select transport that both share (RPC) Determine surrogate type Narrowest surrogate rule Get owner’s stub types during Dirty call

Efficiency

Reliability Issues Similar to RPC issues Failure semantics not well-defined Operation occur “exactly once” How can you make this guarantee How can you add reliability Inside network object abstraction Lose simplicity and similarity to local objects

Transparency/Scalability More exceptions to deal with Local calls don’t fail like remote calls Latency Issues Object granularity Should objects be large/small Large number of objects Lots of copying throughout network for surrogates Large number of clients Will owner get overloaded – replicate object? What about consistent state among replicas?

Other Issues Semantics still not powerful enough Multicast not primitive

Network Objects Today Web services Take solution from middleware and deploy on internet Are Web services really distributed objects? More centered on documents than objects CORBA Heavyweight to deal with all the issues Address fault-tolerance, scalability

Conclusions Some models are very pretty Linda Simple – few primitives Hidden details in Tuple Spaces Network Objects Convenient OO model for communication Semantic (Reliability) issues in RPC carry over Need to think about all the intricacies that arise in distributed programs