SlideShare a Scribd company logo
1 of 17
Download to read offline
GENERATIVE COMMUNICATION
IN LINDA AND OBJECT/TUPLE
SPACE
- Sheng Tian, shengt@gmail.com
LINDA: COORDINATION AMONG
PARALLEL PROCESSES THROUGH TUPLE
SPACE.
2
COMMUNICATE VIA TUPLE SPACE
To send to B, A generates a tuple
out(N, P2, …, Pj)
… and B withdraws it
in(N, P2, …, Pj) 3
BASIC OPERATIONS ON THE
TUPLES AND TUPLE SPACES
  Tuple: N, P2, …, Pj
  N is an actual parameter of type name
  P2, …, Pj is a list of parameters each of which may be either an actual or a
formal.
  Insert: out(N, P2, …, Pj)
  Execution of the out() statement results in insertion of the tuple N, P2,
…, Pj into TS
  Blocking read and delete: in(N, P2, …, Pj)
  If some type-consonant tuple whose first component is “N” exists in TS, the
tuple withdraw from TS
  If no matching tuple is available in TS, in() suspends until one is
available
  Blocking read: read(N, P2, …, Pj)
  Same as in() statement but the tuple remains in TS.
  Both in() and read() are logically nondeterminism
  Tuple names are global to a given program’s TS.
  Update tuple: delete and reinsert
  Predicate operations: inp and rdp 4
TUPLE SPACES BASICS
OPERATIONS
5
AGENDA
  Background
  Basic Concepts in Generative Communication
  Distinguishing Properties of Linda
  Case Study
  Discussion
6
BACKGROUND
  Three basic models of concurrent programming:
  Monitors (shared variables)
  Message passing
  Remote Operations
  Cons
  Partially distributed in space
  Nondistributed in time
  New Model: Generative communication
  Fully distributed in space and time
7
BASIC CONCEPTS
  Tuple
  A tuple is a fixed-length list containing elements that do not need to
have the same type.
  Tuple/Object Space
  A virtual repository of tuple, shared amongst providers and accessors
of network services, that can be accessed concurrently
  All the participants of the distributed application share an Object
Space.
  Processes communicate among each other using these shared objects –
by updating the state of the objects as and when needed
  Linda
  A model of coordination and communication among several parallel
processes operating upon objects stored in and retrieved from Tuple
Space.
  Generative Communication Model
  Why it is said to be generative? Because, until it is explicitly
withdrawn, the tuple generated by A has an independent existence in
TS.
8
DISTINGUISHING PROPERTIES (1/2)
  Communication orthogonality
  p1: Space-uncoupling
  A tuple in TS tagged “P” may be input by any number of
address-space-disjoint processes
  p2: Time-uncoupling
  Tuples added to TS by out() remains in TS until it is
removed by in()
  p3: Distributed sharing
  Linda allows j address-space-disjoint processes to share
some variable v by depositing it in TS.
9
SPACE AND TIME UNCOUPLING
Space-disjoint processes A and B
communicate via TS
Time-disjoint processes C and D. C
terminates before D starts –
Likewise communicate via TS 10
DISTINGUISHING PROPERTIES (2/2)
  Free naming
  p4: Support for continuation passing
  Linda allows name-type values to be tuple components and to
be stored in arbitrary data structures in the same way as
values of any other type.
  p5: Structured naming
  Structured naming make TS content-addressable
  e.g.
  The statement
  in(P, i: integer, j:boolean)
  Requests a tuple with name “P”, but it is also possible to
write
  in(P, i:integer, FALSE) and in(P, 2, FALSE)
  It allows in() and read() statements to restrict, and out()
statements to widen, their focus.
11
CASE STUDY (1/2)
  Database Search Problem
  We are given a file containing a set of search data, a target,
and a routine that computes a numeric score for single datum/
target pair.
  A manager makes a series of out requests to place the
search data in the tuple space, then performs in operations
to retrieve the results generated by workers
12
CASE STUDY (2/2)
13
begin
count = 0
until EOF do
read datum from file
OUT("datum", datum)
count = count + 1
enddo
best = 0.0
for i = 1 to count
IN("score", value)
if value > best then
best = value
endfor
for i = 1 to numworkers
OUT("datum", "stop")
endfor
end
begin
IN("datum", datum)
until datum = "stop"
do
value = compare
(datum, target)
OUT("score",
value)
IN("datum",
datum)
enddo
end
procedure manager procedure worker
SPACE BASED ARCHITECTURE
  Object Spaces is a paradigm for development of
distributed computing applications.
  Spaces can be used to achieve scalability through
parallel procesing.
  Objects, when deposited in an Object Space are
passive, i.e., their methods cannot be invoked while
the objects are in the Object Space.
  This paradigm inherently provides mutual exclusion.
  Linda coordination language was developed at Yale.
  Object Spaces is usually called Tuple Spaces since it
contains of tuples unrelated to each others.
14
IMPLEMENTATIONS OF TUPLE
SPACES
  Java
  Sun’s JavaSpaces
  GigaSpaces
  OpenSpaces
  IBM’s Tspaces
  ActiveSpace
  Jada
  LighTS
  Jxtaspaces for P2P
  GLOBE
  Blitz
  C
  Scientific Computing
Associates’ TCP-Linda
  W.F. Wong’s Simple C-
Linda with Posix Threads
  HTML Page Spaces
  Masatoshi Seki’s Rinda,
part of DistributedRuby
dRuby
  Ruple for Ruby
  p4-Linda
  Python
  PyBrenda in Python
  PyLinda. Linda
implementation in Python
  Matlab: NetWorkSpaces
  Note:
  Ruple use XML documents
instead of tuples
15
DISCUSSION (1/2)
  Message queue vs. Tuple space
  Messages go from one person to another. Only the intended
recipient of a message gets to see it.
  Tuple Space is a bag with tuple in it. The tuples in TS can
be read and processed by anyone.
  It is possible to force sequencing of messages by including a
time, matching on all messages, then selecting the message
with the earliest time.
  Message passing must has a destination. No matter it's a
single dest or a group. However Tuple space is distributed.
Workers don't know each other.
  Broadcast messages are not like Tuple Space.
  A broadcast message is received by everyone whether they
want it or not
  Tuples are extracted or copied under the control of the reader/
receiver
16
DISCUSSION (2/2)
  Tuple Space Scalability
  Tuple Space won’t work on the Internet, because of
its underlying “distributed shared memory” idea
17

More Related Content

What's hot

RoFormer: Enhanced Transformer with Rotary Position Embedding
RoFormer: Enhanced Transformer with Rotary Position EmbeddingRoFormer: Enhanced Transformer with Rotary Position Embedding
RoFormer: Enhanced Transformer with Rotary Position Embeddingtaeseon ryu
 
Learn a language : LISP
Learn a language : LISPLearn a language : LISP
Learn a language : LISPDevnology
 
Chapter 4 algorithmic efficiency handouts (with notes)
Chapter 4   algorithmic efficiency handouts (with notes)Chapter 4   algorithmic efficiency handouts (with notes)
Chapter 4 algorithmic efficiency handouts (with notes)mailund
 
Modification of some solution techniques of combinatorial
Modification of some solution techniques of combinatorialModification of some solution techniques of combinatorial
Modification of some solution techniques of combinatorialAlexander Decker
 
C interview question answer 1
C interview question answer 1C interview question answer 1
C interview question answer 1Amit Kapoor
 
COMPUTER COMMUNICATION NETWORKS -IPv4
COMPUTER COMMUNICATION NETWORKS -IPv4COMPUTER COMMUNICATION NETWORKS -IPv4
COMPUTER COMMUNICATION NETWORKS -IPv4Krishna Nanda
 
Recursion and looping
Recursion and loopingRecursion and looping
Recursion and loopingxcoolanurag
 
Suffix Tree and Suffix Array
Suffix Tree and Suffix ArraySuffix Tree and Suffix Array
Suffix Tree and Suffix ArrayHarshit Agarwal
 
Botnet detection using cluster ensemble with cart
Botnet detection using cluster ensemble with cartBotnet detection using cluster ensemble with cart
Botnet detection using cluster ensemble with cartTrinh Phuc
 
COMP2710: Software Construction - Linked list exercises
COMP2710: Software Construction - Linked list exercisesCOMP2710: Software Construction - Linked list exercises
COMP2710: Software Construction - Linked list exercisesXiao Qin
 
Case study how pointer plays very important role in data structure
Case study how pointer plays very important role in data structureCase study how pointer plays very important role in data structure
Case study how pointer plays very important role in data structureHoneyChintal
 
Fourier transforms of discrete signals (DSP) 5
Fourier transforms of discrete signals (DSP) 5Fourier transforms of discrete signals (DSP) 5
Fourier transforms of discrete signals (DSP) 5HIMANSHU DIWAKAR
 
Pattern matching programs
Pattern matching programsPattern matching programs
Pattern matching programsakruthi k
 
Python Libraries and Modules
Python Libraries and ModulesPython Libraries and Modules
Python Libraries and ModulesRaginiJain21
 
Python For Scientists
Python For ScientistsPython For Scientists
Python For Scientistsaeberspaecher
 
Bliss: A New Read Overlap Detection Algorithm
Bliss: A New Read Overlap Detection AlgorithmBliss: A New Read Overlap Detection Algorithm
Bliss: A New Read Overlap Detection AlgorithmCSCJournals
 

What's hot (20)

RoFormer: Enhanced Transformer with Rotary Position Embedding
RoFormer: Enhanced Transformer with Rotary Position EmbeddingRoFormer: Enhanced Transformer with Rotary Position Embedding
RoFormer: Enhanced Transformer with Rotary Position Embedding
 
Learn a language : LISP
Learn a language : LISPLearn a language : LISP
Learn a language : LISP
 
Chapter 4 algorithmic efficiency handouts (with notes)
Chapter 4   algorithmic efficiency handouts (with notes)Chapter 4   algorithmic efficiency handouts (with notes)
Chapter 4 algorithmic efficiency handouts (with notes)
 
Modification of some solution techniques of combinatorial
Modification of some solution techniques of combinatorialModification of some solution techniques of combinatorial
Modification of some solution techniques of combinatorial
 
3 recursion
3 recursion3 recursion
3 recursion
 
Ch10 Recursion
Ch10 RecursionCh10 Recursion
Ch10 Recursion
 
C interview question answer 1
C interview question answer 1C interview question answer 1
C interview question answer 1
 
Beginning Python
Beginning PythonBeginning Python
Beginning Python
 
COMPUTER COMMUNICATION NETWORKS -IPv4
COMPUTER COMMUNICATION NETWORKS -IPv4COMPUTER COMMUNICATION NETWORKS -IPv4
COMPUTER COMMUNICATION NETWORKS -IPv4
 
Recursion and looping
Recursion and loopingRecursion and looping
Recursion and looping
 
Suffix Tree and Suffix Array
Suffix Tree and Suffix ArraySuffix Tree and Suffix Array
Suffix Tree and Suffix Array
 
Botnet detection using cluster ensemble with cart
Botnet detection using cluster ensemble with cartBotnet detection using cluster ensemble with cart
Botnet detection using cluster ensemble with cart
 
COMP2710: Software Construction - Linked list exercises
COMP2710: Software Construction - Linked list exercisesCOMP2710: Software Construction - Linked list exercises
COMP2710: Software Construction - Linked list exercises
 
Case study how pointer plays very important role in data structure
Case study how pointer plays very important role in data structureCase study how pointer plays very important role in data structure
Case study how pointer plays very important role in data structure
 
Fourier transforms of discrete signals (DSP) 5
Fourier transforms of discrete signals (DSP) 5Fourier transforms of discrete signals (DSP) 5
Fourier transforms of discrete signals (DSP) 5
 
CPP Homework Help
CPP Homework HelpCPP Homework Help
CPP Homework Help
 
Pattern matching programs
Pattern matching programsPattern matching programs
Pattern matching programs
 
Python Libraries and Modules
Python Libraries and ModulesPython Libraries and Modules
Python Libraries and Modules
 
Python For Scientists
Python For ScientistsPython For Scientists
Python For Scientists
 
Bliss: A New Read Overlap Detection Algorithm
Bliss: A New Read Overlap Detection AlgorithmBliss: A New Read Overlap Detection Algorithm
Bliss: A New Read Overlap Detection Algorithm
 

Similar to generative communication in Linda and tuplespace

Phyton Learning extracts
Phyton Learning extracts Phyton Learning extracts
Phyton Learning extracts Pavan Babu .G
 
summer training report on python
summer training report on pythonsummer training report on python
summer training report on pythonShubham Yadav
 
Language Technology Enhanced Learning
Language Technology Enhanced LearningLanguage Technology Enhanced Learning
Language Technology Enhanced Learningtelss09
 
Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010
Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010
Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010Paolo Missier
 
SIT221 Data Structures and Algorithms     Trimester 2, 2019 .docx
SIT221 Data Structures and Algorithms     Trimester 2, 2019 .docxSIT221 Data Structures and Algorithms     Trimester 2, 2019 .docx
SIT221 Data Structures and Algorithms     Trimester 2, 2019 .docxedgar6wallace88877
 
Top Most Python Interview Questions.pdf
Top Most Python Interview Questions.pdfTop Most Python Interview Questions.pdf
Top Most Python Interview Questions.pdfDatacademy.ai
 
1. python programming
1. python programming1. python programming
1. python programmingsreeLekha51
 
Os Reindersfinal
Os ReindersfinalOs Reindersfinal
Os Reindersfinaloscon2007
 
Os Reindersfinal
Os ReindersfinalOs Reindersfinal
Os Reindersfinaloscon2007
 
Basic of Python- Hands on Session
Basic of Python- Hands on SessionBasic of Python- Hands on Session
Basic of Python- Hands on SessionDharmesh Tank
 
Csit77406
Csit77406Csit77406
Csit77406csandit
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answerskavinilavuG
 
Bt0067 c programming and data structures2
Bt0067 c programming and data structures2Bt0067 c programming and data structures2
Bt0067 c programming and data structures2Techglyphs
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answersRojaPriya
 

Similar to generative communication in Linda and tuplespace (20)

Phyton Learning extracts
Phyton Learning extracts Phyton Learning extracts
Phyton Learning extracts
 
summer training report on python
summer training report on pythonsummer training report on python
summer training report on python
 
Language Technology Enhanced Learning
Language Technology Enhanced LearningLanguage Technology Enhanced Learning
Language Technology Enhanced Learning
 
Democratizing Big Semantic Data management
Democratizing Big Semantic Data managementDemocratizing Big Semantic Data management
Democratizing Big Semantic Data management
 
Python 3.x quick syntax guide
Python 3.x quick syntax guidePython 3.x quick syntax guide
Python 3.x quick syntax guide
 
Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010
Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010
Paper talk (presented by Prof. Ludaescher), WORKS workshop, 2010
 
SIT221 Data Structures and Algorithms     Trimester 2, 2019 .docx
SIT221 Data Structures and Algorithms     Trimester 2, 2019 .docxSIT221 Data Structures and Algorithms     Trimester 2, 2019 .docx
SIT221 Data Structures and Algorithms     Trimester 2, 2019 .docx
 
The Bund language
The Bund languageThe Bund language
The Bund language
 
Top Most Python Interview Questions.pdf
Top Most Python Interview Questions.pdfTop Most Python Interview Questions.pdf
Top Most Python Interview Questions.pdf
 
1. python programming
1. python programming1. python programming
1. python programming
 
CPPDS Slide.pdf
CPPDS Slide.pdfCPPDS Slide.pdf
CPPDS Slide.pdf
 
Cpp lernaufgabe linked_list
Cpp lernaufgabe linked_listCpp lernaufgabe linked_list
Cpp lernaufgabe linked_list
 
Os Reindersfinal
Os ReindersfinalOs Reindersfinal
Os Reindersfinal
 
Os Reindersfinal
Os ReindersfinalOs Reindersfinal
Os Reindersfinal
 
Basic of Python- Hands on Session
Basic of Python- Hands on SessionBasic of Python- Hands on Session
Basic of Python- Hands on Session
 
Csit77406
Csit77406Csit77406
Csit77406
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answers
 
Bt0067 c programming and data structures2
Bt0067 c programming and data structures2Bt0067 c programming and data structures2
Bt0067 c programming and data structures2
 
Introduction to Apache Storm
Introduction to Apache StormIntroduction to Apache Storm
Introduction to Apache Storm
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answers
 

Recently uploaded

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

generative communication in Linda and tuplespace

  • 1. GENERATIVE COMMUNICATION IN LINDA AND OBJECT/TUPLE SPACE - Sheng Tian, shengt@gmail.com
  • 2. LINDA: COORDINATION AMONG PARALLEL PROCESSES THROUGH TUPLE SPACE. 2
  • 3. COMMUNICATE VIA TUPLE SPACE To send to B, A generates a tuple out(N, P2, …, Pj) … and B withdraws it in(N, P2, …, Pj) 3
  • 4. BASIC OPERATIONS ON THE TUPLES AND TUPLE SPACES   Tuple: N, P2, …, Pj   N is an actual parameter of type name   P2, …, Pj is a list of parameters each of which may be either an actual or a formal.   Insert: out(N, P2, …, Pj)   Execution of the out() statement results in insertion of the tuple N, P2, …, Pj into TS   Blocking read and delete: in(N, P2, …, Pj)   If some type-consonant tuple whose first component is “N” exists in TS, the tuple withdraw from TS   If no matching tuple is available in TS, in() suspends until one is available   Blocking read: read(N, P2, …, Pj)   Same as in() statement but the tuple remains in TS.   Both in() and read() are logically nondeterminism   Tuple names are global to a given program’s TS.   Update tuple: delete and reinsert   Predicate operations: inp and rdp 4
  • 6. AGENDA   Background   Basic Concepts in Generative Communication   Distinguishing Properties of Linda   Case Study   Discussion 6
  • 7. BACKGROUND   Three basic models of concurrent programming:   Monitors (shared variables)   Message passing   Remote Operations   Cons   Partially distributed in space   Nondistributed in time   New Model: Generative communication   Fully distributed in space and time 7
  • 8. BASIC CONCEPTS   Tuple   A tuple is a fixed-length list containing elements that do not need to have the same type.   Tuple/Object Space   A virtual repository of tuple, shared amongst providers and accessors of network services, that can be accessed concurrently   All the participants of the distributed application share an Object Space.   Processes communicate among each other using these shared objects – by updating the state of the objects as and when needed   Linda   A model of coordination and communication among several parallel processes operating upon objects stored in and retrieved from Tuple Space.   Generative Communication Model   Why it is said to be generative? Because, until it is explicitly withdrawn, the tuple generated by A has an independent existence in TS. 8
  • 9. DISTINGUISHING PROPERTIES (1/2)   Communication orthogonality   p1: Space-uncoupling   A tuple in TS tagged “P” may be input by any number of address-space-disjoint processes   p2: Time-uncoupling   Tuples added to TS by out() remains in TS until it is removed by in()   p3: Distributed sharing   Linda allows j address-space-disjoint processes to share some variable v by depositing it in TS. 9
  • 10. SPACE AND TIME UNCOUPLING Space-disjoint processes A and B communicate via TS Time-disjoint processes C and D. C terminates before D starts – Likewise communicate via TS 10
  • 11. DISTINGUISHING PROPERTIES (2/2)   Free naming   p4: Support for continuation passing   Linda allows name-type values to be tuple components and to be stored in arbitrary data structures in the same way as values of any other type.   p5: Structured naming   Structured naming make TS content-addressable   e.g.   The statement   in(P, i: integer, j:boolean)   Requests a tuple with name “P”, but it is also possible to write   in(P, i:integer, FALSE) and in(P, 2, FALSE)   It allows in() and read() statements to restrict, and out() statements to widen, their focus. 11
  • 12. CASE STUDY (1/2)   Database Search Problem   We are given a file containing a set of search data, a target, and a routine that computes a numeric score for single datum/ target pair.   A manager makes a series of out requests to place the search data in the tuple space, then performs in operations to retrieve the results generated by workers 12
  • 13. CASE STUDY (2/2) 13 begin count = 0 until EOF do read datum from file OUT("datum", datum) count = count + 1 enddo best = 0.0 for i = 1 to count IN("score", value) if value > best then best = value endfor for i = 1 to numworkers OUT("datum", "stop") endfor end begin IN("datum", datum) until datum = "stop" do value = compare (datum, target) OUT("score", value) IN("datum", datum) enddo end procedure manager procedure worker
  • 14. SPACE BASED ARCHITECTURE   Object Spaces is a paradigm for development of distributed computing applications.   Spaces can be used to achieve scalability through parallel procesing.   Objects, when deposited in an Object Space are passive, i.e., their methods cannot be invoked while the objects are in the Object Space.   This paradigm inherently provides mutual exclusion.   Linda coordination language was developed at Yale.   Object Spaces is usually called Tuple Spaces since it contains of tuples unrelated to each others. 14
  • 15. IMPLEMENTATIONS OF TUPLE SPACES   Java   Sun’s JavaSpaces   GigaSpaces   OpenSpaces   IBM’s Tspaces   ActiveSpace   Jada   LighTS   Jxtaspaces for P2P   GLOBE   Blitz   C   Scientific Computing Associates’ TCP-Linda   W.F. Wong’s Simple C- Linda with Posix Threads   HTML Page Spaces   Masatoshi Seki’s Rinda, part of DistributedRuby dRuby   Ruple for Ruby   p4-Linda   Python   PyBrenda in Python   PyLinda. Linda implementation in Python   Matlab: NetWorkSpaces   Note:   Ruple use XML documents instead of tuples 15
  • 16. DISCUSSION (1/2)   Message queue vs. Tuple space   Messages go from one person to another. Only the intended recipient of a message gets to see it.   Tuple Space is a bag with tuple in it. The tuples in TS can be read and processed by anyone.   It is possible to force sequencing of messages by including a time, matching on all messages, then selecting the message with the earliest time.   Message passing must has a destination. No matter it's a single dest or a group. However Tuple space is distributed. Workers don't know each other.   Broadcast messages are not like Tuple Space.   A broadcast message is received by everyone whether they want it or not   Tuples are extracted or copied under the control of the reader/ receiver 16
  • 17. DISCUSSION (2/2)   Tuple Space Scalability   Tuple Space won’t work on the Internet, because of its underlying “distributed shared memory” idea 17