JavaSpaces and TSpaces Theresa Tamash CDA 5937 November 4, 2002.

Slides:



Advertisements
Similar presentations
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
Advertisements

MPI Message Passing Interface
Chap 2 System Structures.
Linda Coordination Language Presented by Tae Ki Kim
2.1 Installing the DNS Server Role Overview of the Domain Name System Role Overview of the DNS Namespace DNS Improvements for Windows Server 2008 Considerations.
Introduction to Jini & JavaSpaces
Distributed Processing, Client/Server, and Clusters
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.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
1 CS 194: Distributed Systems Distributed Coordination-based Systems Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering.
Programming Language Semantics Java Threads and Locks Informal Introduction The Java Specification Language Chapter 17.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Informationsteknologi Friday, November 16, 2007Computer Architecture I - Class 121 Today’s class Operating System Machine Level.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
3.5 Interprocess Communication
Middleware Technologies compiled by: Thomas M. Cosley.
Tuple Spaces and JavaSpaces CS 614 Bill McCloskey.
Chapter 11: Distributed Processing Parallel programming Principles of parallel programming languages Concurrent execution –Programming constructs –Guarded.
1 I/O Management in Representative Operating Systems.
490dp Prelude I: Group Membership Prelude II: Team Presentations Tuples Robert Grimm.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
XML-Tuples & XML-Spaces V0.7 By David “Uncle Dave” Moffat Presented by: Shurug Al-Khalifa.
Advanced Database CS-426 Week 2 – Logic Query Languages, Object Model.
TupleSpaces Revisited: Linda to TSpaces Ben Y. Zhao 13 July, 1998 UC Berkeley Computer Science Division.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Chapter 9 Message Passing Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere2 Introduction.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Ioana BurceaWon-Ho Park Electrical and Computer Engineering Department University of Toronto Algorithms for Implementation of Tuple Space Expert Topic.
DNA REASSEMBLY Using Javaspace Sung-Ho Maeung Laura Neureuter.
DBSQL 14-1 Copyright © Genetic Computer School 2009 Chapter 14 Microsoft SQL Server.
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.
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Computer Emergency Notification System (CENS)
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
New features for CORBA 3.0 by Steve Vinoski Presented by Ajay Tandon.
Objectives Functionalities and services Architecture and software technologies Potential Applications –Link to research problems.
IBM TSpaces Lab 1 Introduction. Summary TSpaces Overview Basic Definitions Basic primitive operations Reading/writing tuples in tuplespace HelloWorld.
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.
ABSTRACT The JDBC (Java Database Connectivity) API is the industry standard for database- independent connectivity between the Java programming language.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
JavaSpaces ™ Nati Shalom CTO GigaSpaces Technologies.
Jini Architecture Introduction System Overview An Example.
IBM TSpaces Lab 2 Customizing tuples and fields. Summary Blocking commands Tuple Expiration Extending Tuples (The SubclassableTuple) Reading/writing user.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
Chapter 7: Consistency & Replication IV - REPLICATION MANAGEMENT By Jyothsna Natarajan Instructor: Prof. Yanqing Zhang Course: Advanced Operating Systems.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
David Evans CS655: Programming Languages University of Virginia Computer Science Lecture 22: Abstractions for Concurrency.
Threaded Programming Lecture 1: Concepts. 2 Overview Shared memory systems Basic Concepts in Threaded Programming.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
January 26, Ken Arnold Copyright 1999 Sun Microsystems, Inc., all rights reserved.
Coping with Link Failures in Centralized Control Plane Architecture Maulik Desai, Thyagarajan Nandagopal.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
Powerpoint Templates Data Communication Muhammad Waseem Iqbal Lecture # 07 Spring-2016.
Pervasive Computing MIT SMA 5508 Spring 2006 Larry Rudolph 1 Publish & Subscribe Larry Rudolph May 3, 2006 SMA 5508 & MIT
Java Distributed Object System
SQL and SQL*Plus Interaction
EEC 688/788 Secure and Dependable Computing
Object Spaces 9/22/2018.
Java Messaging Service (JMS)
Java Messaging Service (JMS)
Configuring Internet-related services
Operating Systems Chapter 5: Input/Output Management
EEC 688/788 Secure and Dependable Computing
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
EEC 688/788 Secure and Dependable Computing
Presentation transcript:

JavaSpaces and TSpaces Theresa Tamash CDA 5937 November 4, 2002

Outline Challenges of Distributed Computing Solutions for Distributed Systems Linda Tuplespaces JavaSpaces TSpaces

Challenges of Distributed Computing Latency – data takes time to get across a network. Synchronization – asynchronous processes must have a certain degree of synchronization in order to work together. Partial failures – a distributed system must be able to recognize a failure and be able to adapt. Communication – processes running different operating systems may need to communicate. Persistent data – a distributed system may need somewhere to store data, besides on one of the connected computers.

Example (communication challenge) AIX LINUX Windows Printer Network How can the Windows or LINUX machines print documents? There is a physical connection between all computers and the printer, but no logical connection.

Example (auction service) Seller Bidder Server Bids may take different amounts of time to reach the server. Which bid came in first? (latency) Item must be stored on the server. (persistent data) What if the Seller or winning bidder are not connected to the network when bidding ends? (synchronization / partial failures)

Solution - Middleware Process A Process C Process B Middleware The middleware facilitates communication between the different processes. The middleware should be responsible for providing solutions to the problems listed earlier.

Middleware Solutions JavaSpaces and TSpaces Designed to overcome the challenges of distributed systems. Based on the Linda tuplespace system. Implemented in Java to be platform independent.

Linda Developed to be a communication buffer for parallel processing systems. Anonymous communication Associative addressing / pattern matching Persistent data Simple syntax Portable (supports heterogeneous networks) Uses tuplespaces

Tuplespace Stores groups of tuples. Globally accessible memory space (probably on a network). Space Tuple – A group of fields with associated values. Basically an object. {temperature=75; windspeed=10; windunits=knots} Process Put tuple Take tuple

JavaSpaces A shared, network accessible repository for objects (tuplespace). Based on the tuplespace model of Linda. Objects are exchanged only through interaction with the space. Provides simple operations: read, write, take, notify.

JavaSpaces Key Features Shared – spaces provide concurrent access for many processes. Persistent data – spaces store objects until they expire or are removed. Associative lookup – spaces lookup objects based on their content rather than a name or memory address. Continued 

JavaSpaces Key Features cont. Transactionally Secure – spaces ensure that operations are atomic (either applied or not). Executable Content Sharing – spaces store objects, which have methods that can be executed once an object is read or taken from a space. Anonymous communication – spaces don’t care who the sender or receiver is.

JavaSpace “Hello World” public class Message implements Entry { public String content; public Message() { } Message msg = new Message(); Msg.content = “Hello World”; JavaSpace space = SpaceAccessor.getSpace(); Space.write(msg, null, Lease.FOREVER); Write entry JavaSpac e Entry

JavaSpace “Hello World” cont. Use pattern matching to get desired objects from the space. null values represent wildcards. A Message object with the content field set to null will return any message object. A Message object with the content field set to “Go Team!” will only return a message object with the content set to that value.

JavaSpace “Hello World” cont. Message template = new Message(); //Content is null Message result = (Message)space.read( template, null, Long.MAX_VALUE); System.out.println(result.content); “Hello World” JavaSpac e Read entry Entry If we had used space.take instead, the Entry object would no longer be in the space.

JavaSpaces Solution Printer spac e 1. Windows machine writes a printerDocument object to the space. 2. AIX machine is notified when any printerDocument object is written to the space. He takes them upon notification. 3. AIX machine sends the document to the printer to print. The Java Virtual Machines (JVM) enable communication between the two different operating systems through the JavaSpace. AIX JVM Windows JVM

TSpaces Similar to JavaSpaces Based on Linda Implemented in Java for platform independence. Tuples are exchanged through the space. Provides simple operations; read, write, take: as well as more complex operations and database functionality.

TSpaces Key Features Standard set of tuplespace operators – read and in (both in blocking and non-blocking), out, scan. Dynamically defined datatypes and operators – New datatypes and operators can be defined and downloaded to the TSpaces server and used immediately. Persistent data – relational database features. Continued 

TSpaces Key Features cont. Database indexing and querying – Provides capability for efficient and powerful data retrieval. Access Control – Configurable security settings. Event Notification – Processes can register to be notified of events.

TSpace Tuple This is a tuple with 3 fields: 1.Float with value String with value “Hello World” 3.Integer with value 345

TSpace Tuple Matching Template 1: Template 2: Both templates use formal fields. By putting the datatype in the template and not specifying a value, the template will match tuples with that datatype in that field.

TSpaces Solution Seller Bidder TSpace Item Seller writes Item tuple to space. Bidders can register to receive notification when certain types of Items (pink?) are written to the space. Bidders can take an Item from a space, update the bid, then write it back. Bidders can query the group of Item tuples to find ones that interest them. Seller registers to be notified when bidding ends on their Item.

JavaSpaces vs. TSpaces Serializable objects Multiple spaces Simple operators Simple types and objects Single space Simple operators and database functionality

References Freeman, E., Hupfer, S., Arnold, K. (1999). JavaSpaces Principles, Patterns, and Practice: Chapter 1. aces/introduction.html aces/introduction.html Hupfer, Susanne (2000). The Nuts and Bolts of Compiling and Running JavaSpaces Programs. es/jini/javaspaces Continued 

References (2000) JavaSpaces Service Specification v TSpaces Intelligent Connectionware. Wyckoff (1998). T Spaces ml ml