490dp Prelude I: Group Membership Prelude II: Team Presentations Tuples Robert Grimm.

Slides:



Advertisements
Similar presentations
Sergei Komarov. DNS  Mechanism for IP hostname resolution  Globally distributed database  Hierarchical structure  Comprised of three components.
Advertisements

Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
JavaSpaces and TSpaces Theresa Tamash CDA 5937 November 4, 2002.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The.
1 Internet Networking Spring 2006 Tutorial 8 DNS and DHCP as UDP applications.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Computer Science Lecture 24, page 1 CS677: Distributed OS Today: More Case Studies DCOM Jini.
1 Formal Models for Distributed Negotiations Description Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela de Ciencias Informaticas.
Sinfonia: A New Paradigm for Building Scalable Distributed Systems Marcos K. Aguilera, Arif Merchant, Mehul Shah, Alistair Veitch, Christonos Karamanolis.
Tuple Spaces and JavaSpaces CS 614 Bill McCloskey.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Hermes: A Distributed Event- Based Middleware Architecture Peter Pietzuch and Jean Bacon 1st DEBS Workshop, Vienna,
1 More on Distributed Coordination. 2 Who’s in charge? Let’s have an Election. Many algorithms require a coordinator. What happens when the coordinator.
Data Abstraction and Object- Oriented Programming CS351 – Programming Paradigms.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
CSE 490dp Resource Control Robert Grimm. Problems How to access resources? –Basic usage tracking How to measure resource consumption? –Accounting How.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Virtual LANs. VLAN introduction VLANs logically segment switched networks based on the functions, project teams, or applications of the organization regardless.
Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung Google∗
Presented by: Alvaro Llanos E.  Motivation and Overview  Frangipani Architecture overview  Similar DFS  PETAL: Distributed virtual disks ◦ Overview.
1 Spring Semester 2009, Dept. of Computer Science, Technion Internet Networking recitation #2 DNS and DHCP.
1 Chapter 9 Spaces with LINDA. 2 Linda Linda is an experimental programming concept unlike ADA or Occam which are fully developed production-quality languages.
TupleSpaces Revisited: Linda to TSpaces Ben Y. Zhao 13 July, 1998 UC Berkeley Computer Science Division.
1 The Google File System Reporter: You-Wei Zhang.
Protocols and the TCP/IP Suite
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Chapter 8-3 : Distributed Systems Distributed systems Distributed systems Document-based middleware Document-based middleware Coordination-based middleware.
JavaSpaces TM By Stephan Roorda Source: JavaSpaces specification.
Livespace Architecture. Overview Livespace requirements Discussion of issues Livespace Architecture.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Module 7: Resolving NetBIOS Names by Using Windows Internet Name Service (WINS)
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Distributed Systems Principles and Paradigms Chapter 12 Distributed Coordination-Based Systems 01 Introduction 02 Communication 03 Processes 04 Naming.
Coordination Models and Languages Part I: Coordination Languages and Linda Part II: Technologies based on Tuple space concept beyond Linda Part III: Comparison.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Page 1 Active Directory and DNS Lecture 2 Hassan Shuja 09/14/2004.
Distributed Databases DBMS Textbook, Chapter 22, Part II.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Computer Science Lecture 19, page 1 CS677: Distributed OS Last Class: Fault tolerance Reliable communication –One-one communication –One-many communication.
JINI Coordination-Based System By Anthony Friel * David Kiernan * Jasper Wood.
IBM TSpaces Lab 2 Customizing tuples and fields. Summary Blocking commands Tuple Expiration Extending Tuples (The SubclassableTuple) Reading/writing user.
V1-5Coordination Based Systems1 Distributed Coordination Based Systems.
Introduction to Distributed Databases Yiwei Wu. Introduction A distributed database is a database in which portions of the database are stored on multiple.
Chapter 13.3: Databases Invitation to Computer Science, Java Version, Second Edition.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Inheritance and Class Hierarchies Chapter 3. Chapter Objectives  To understand inheritance and how it facilitates code reuse  To understand how Java.
GPFS: A Shared-Disk File System for Large Computing Clusters Frank Schmuck & Roger Haskin IBM Almaden Research Center.
Basics of the Domain Name System (DNS) By : AMMY- DRISS Mohamed Amine KADDARI Zakaria MAHMOUDI Soufiane Oujda Med I University National College of Applied.
ZOOKEEPER. CONTENTS ZooKeeper Overview ZooKeeper Basics ZooKeeper Architecture Getting Started with ZooKeeper.
Computer Science Lecture 19, page 1 CS677: Distributed OS Last Class: Fault tolerance Reliable communication –One-one communication –One-many communication.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Coordination-Based Systems
Java Distributed Object System
Abstract Data Types and Encapsulation Concepts
Distribution and components
Database management concepts
Abstract Data Types and Encapsulation Concepts
Database management concepts
Message Queuing.
Coordination Models and Languages
Transactions in Distributed Systems
Overview Multimedia: The Role of WINS in the Network Infrastructure
Distributed Databases
Presentation transcript:

490dp Prelude I: Group Membership Prelude II: Team Presentations Tuples Robert Grimm

Group Membership c490dp-a –awong –boriss –dancheah –ishafe –sfanous c490dp-b –bret –cyhung –davidjc –kphilbri –muliawan Try to edit /projects/instr/01wi/cse490dp/[group name]/foo

Team Presentations Problem(s) –The problem(s) your application is addressing Features –The functionality of the application Assumptions –Premises about the application domain

Team Presentations Components –The structure of the application Unknowns –Things you aren’t sure about –The plan for resolving them Evaluation –The plan for showing that the application Solves the problem(s) Works as advertised

Tuples

Parallel Computing How to coordinate processes? –Use message passing Point-to-point or group communication Synchronization –Problem Relatively tight coupling –Can we do better?

Gelernter Did Better Linda [Carriero & Gelernter 86] –Tuple Ordered collection of typed fields –Tuple space Globally shared collection of tuples

Operations Three basic operations –out: Write a tuple –in: Consume a tuple –read: Read a tuple Unblocking and blocking versions –Blocking: Wait for result

Template Matching in and read use templates –Ordered collection of formals and values –A template matches a tuple if They have the same size Corresponding values are equal Corresponding formals and values agree –Multiple matches: pick any of them

A Simple Application Example Main program –Write out job descriptions –Start helper programs –Collect results Helper programs –Take job description –Perform computation –Write out result

Advantages of Tuple Spaces Destination uncoupling –Fully anonymous communications Space uncoupling –Associative access independent of local process Time uncoupling –Tuples stored independent of creating process

Distributed Computing Coordination –Similar problems as for parallel computing –Considerably more dynamic environment More generally: Data management –How to represent data? –How to store data? –How to exchange data?

Advantages of Tuple Spaces Destination uncoupling Space uncoupling Time uncoupling Idea: Adopt tuple spaces for distributed computing

Systems Three systems –JavaSpaces –T Spaces –Structured I/O in one.world In common –Data represented as tuples

JavaSpaces Tuple space in / for Java –Typing –Leases –Transactions –Architecture –Potpourri

Typed Tuples Convention in Linda –First field is a string denoting the type Strongly typed language: Java –Type provided by class –Unordered collection of named and typed fields Public instance fields –References, but not primitive types

Template Matching Template is a tuple –Fields may be null A template matches a tuple if –The tuple has a subtype of the template –Corresponding values are equal Fields are serialized separately –Possible to compare serialized form

Leases Problem –How to reclaim obsolete tuples? Solution –Limit their lifetime through leases Acquire Renew Cancel

Transactions Problem –How to group operations into one unit? Solution: Transactions –Either all operations complete (commit) –Or no operation complete (abort) –Operations become visible only at commit –Affected tuples are locked down Serializability

Architecture Tuple space server –Provides storage –Performs operations Client –Linked in with application –Communicates with server

Potpourri notify operation –Triggered when matching tuple is written Unblocking versions –readIfExists, takeIfExists Blocking versions –read, take Implementation may be persistent

T Spaces How does T Spaces differ from JavaSpaces?

T Spaces Hierarchy of tuple spaces –More flexible structuring Support for queries –Data management Support for access control –Security Extensible implementation –Application-specific functionality

Issues What’s wrong with JavaSpaces or T Spaces?

Issues Single point of failure –Tuples stored on centralized server Relatively heavy-weight –Client to server to client –Real-time communications Multimedia

How to Address These Issues? Localize storage –Add support for replication Offer light-weight communications

Structured I/O Tuple-based Storage –Local within environment hierarchy Communication channels –Unreliable On top of UDP –Reliable On top of TCP

Detour: Environments Containers for –Stored tuples –Application components –Other environments Combination of file system directories and nested processes Local root functions as the kernel

Tuples in one.world Statically typed tuples: Subclasses of Tuple –All instance fields must be public –Fields may be of any type –Default fields: id, metaData Dynamically typed tuples: DynamicTuple –Field declared and typed dynamically Tuples may be nested

Operations Basic operations –Communications and storage –put, read, listen Extended operations –Storage only –May be transactional (not implemented) –put, read, listen, query, delete

Queries Used by read, listen, and query operations Empty query: always true Unary query: Negation Binary query: Conjunction, disjunction Comparisons –Including ==,, beginsWith, … –hasType, hasSubType, hasDeclaredType, hasField

Support for Replication Replication 101 –Log modifying operations –Propagate operations to other nodes How to name data? How to layer replication on top of storage?

The Use of IDs Modifying operations use ID as primary key –put operation ID differentiates between –Adding a tuple »No tuple with same ID in store –Overwriting a tuple »Tuple with same ID in store –delete operation: By ID only

Why No take Operation? Result only known at end of operation –Harder to log Can still be expressed –Transactional read & delete

Discussion Questions?