SlideShare a Scribd company logo
1 of 25
Download to read offline
Distributed Systems : Chapter 13



            Distributed
        Coordination-Based
             Systems


    Reference: Distributed Systems Principles and Paradigms 2nd Edition
                          Prepared by: Ahmed Magdy Ezzeldin
Outline
➔Introduction to Coordination Models
➔Taxonomy of coordination models

➔Architecture

 ➔ Traditional Architectures

     ➔ JavaSpaces

     ➔ TIB/Rendezvous

 ➔ Peer-to-Peer Architectures

     ➔ Gossip-Based Publish/Subscribe System

     ➔ Discussion

     ➔ Mobility and Coordination

        ➔ Lime

➔Processes

➔Communication

 ➔ Content-Based Routing

 ➔ Supporting Composite Subscriptions
Introduction to Coordination Models
●Instead of concentrating on the transparent
distribution of components, emphasis lies on the
coordination of activities between those components.

●Clean separation between computation and
coordination

●The coordination part of a distributed system
handles the communication and cooperation between
processes.

●The focus is on how coordination between the
processes takes place.
Taxonomy of coordination models

Taxonomy of coordination models in
2 dimensions (temporal and referential)
Taxonomy of coordination models [continued]


●Referential coupled, Temporal coupled: Direct
coordination
  - Know addresses and/or names of processes
  - Know the form of the messages
  - Must be up at the same time

●Referential coupled, Temporal Decoupled: Mailbox
coordination
  - Like persistent message-oriented communication
  - Know form of messages in advance
  - Does not have to be up at the same time
Taxonomy of coordination models [continued]

●Referential Decoupled, Temporal coupled: Meeting
oriented coordination
   - Often implemented by events
   - Publish/subscribe with no persistence on dataspace
   - Meet at a certain time to coordinate

●Referential Decoupled, Temporal Decoupled: generative
communication
   - Independent processes make use of a shared persistent
dataspace of tuples
   - Don't agree on structure of tuples in advance
   - Tuple tag distinguish between tuples of different info
   - Publish/subscribe with persistence on dataspace
Architecture
● Data items are described by a series of attributes
● Subscription is passed to the middleware with a

description of the data items that the subscriber is
interested in.
● Subscription description as (attribute, value) pairs with

range of each attribute and predicates like SQL.
● When data items are found the middleware sends a

notification to the subscribers to read or just send the
data items directly (no storage if sent directly)
● Publishing processes publish events which are data

items with 1 attribute
● Matching data items against subscriptions should be

efficient and scalable.
Architecture [continued]
Traditional Architectures


●   Centralized client-server architecture

● Adopted by many publish/subscribe systems like
IBM WebSphere and Sun JMS

●Generative communication models Like Sun Jini
and JavaSpaces are based on central servers
JavaSpaces
● To read a tuple instance, a process provides a typed
template tuple for matching.
● A field in the template tuple either contains a reference

to an actual object or contains the value NULL.
● Two fields match if they have a copy of the same

reference or if the template tuple field is NULL.
● A tuple instance matches a template tuple if they have

the same fields.
● Read and Take (remove tuple after reading) block the

caller.
● Some implementations return immediately if there is not

matching tuple or a timeout can be set.
● Centralized implementations makes complex matching

rules easier and also can be used for synchronization.
TIB/Rendezvous
● Instead of central servers we can immediately send
published tuples to subscribers using multicasting
● Data item is a message tagged with a compound

keyword describing its content (subject)
●Uses broadcast or uni cast if the subscribers addresses

are known
● Each host has a rendezvous daemon, which takes care

that messages are sent and delivered according to their
subject
● The daemon has a table of (process, subject), entries

and whenever a message on subject S arrives, the
daemon checks in its table for local subscribers, and
forwards the message to each one.
● Can allow complex matching of published data items

against subscriptions
TIB/Rendezvous [continued]
Peer-to-Peer Architectures

●For scalability, restrictions on describing
subscriptions and data items may be necessary.

● Keywords or (attribute, value) pairs are hashed
to unique identifiers for published data, which can
be efficiently implemented in a DHT-based
system.

●For more advanced matching rules we can use
Gossip-Based Publish/Subscribe Systems
Gossip-Based Publish/Subscribe Systems

●A subscription S is a tuple of (attribute, value/range)
pairs

● Like CAN (Content Addressable network) make float
from attributes and organize subscriber nodes into 2
dimentional array of floats to form groups

●Cluster nodes into M different groups, such that nodes i
and j belong to the same group if and only if their
subscriptions Si and Sj intersect.

●Each node maintains a list of references to other
neighbors (partial view) to know the intersecting
subscriptions
Discussion

Similar to gossip-based systems
●




each attribute a, is handled by a separate process Pi,
●

which in turn partitions the range of its attribute across
multiple processes.

●When a data item d is published, it is forwarded to each
Pi, where it is stored at the process responsible for the
d's value of a.
Mobility and Coordination

●To know if a mobile peer received a message is
problematic.

●   Two solutions are suggested:

1- That the receiving mobile process saves older
messages to make sure it does not receive duplicates

 2- We devise routers to keep track of the mobile peers
and know which messages they received (harder to
implement).
Lime
●   In Lime, each mobile process has its own dataspace

●When processes are connected, their dataspaces
become shared.

●Formally, the processes should be member of the same
group and use the same group communication protocol.

● The local dataspaces of connected processes form a
transiently shared dataspace to allow exchange of tuples.

● To control how tuples are distributed, dataspaces can do
"reactions". A reaction specifies an action to be executed
when a tuple matching a given template is found in the
local dataspace.
Lime [continued]
Processes

●Nothing special we just need efficient
mechanisms to be used to search in a large
collection of data.

●The main problem is devising schemes that work
well in distributed environments.
Communication
●In Java remote method invocations is used for
communication.

● In wide-area networks the system should be
self-organization or content-based routing to
ensure that the message reaches only to its
intended subscribers.
Content-Based Routing
● Routers can take routing decisions based on the
message content so it it cuts of routes that do not lead to
receivers of this message.

● Clients can tell the servers which messages they are
interested in so that the servers notify them when they
receive a relevant message. This is done in 2 layers
where layer 1 consists of a shared broadcast tree
connecting the servers using routers

● In simple subject-based publish/subscribe using a
unique (non-compound) keyword.
● We can send each published message to every server

like in TIB/Rendezvous.
Content-Based Routing [continued]
Or let every server broadcast its subscriptions to
 all other servers to be able to compile a list of
           (subject, destination) pairs.
Content-Based Routing [continued]

●  Each server broadcasts its subscription across
the network so that routers can compose routing
filters.

● When a node leaves the system, it should
cancel its subscriptions and essentially broadcast
this information to all routers.

●Comparison of subscriptions and data items to
be routed can be computationally expensive.
Supporting Composite Subscriptions
● When we use more sophisticated expressions of
subscriptions then we need another way not the
simple content routing we have just used.

● Express compositions of subscriptions in which
a process specifies in a single subscription that it
is interested in very different types of data items.

●Design routers analogous to rule databases
where subscriptions are transformed into rules
stating the conditions under which published data
should be forwarded.
Thank you

More Related Content

What's hot

Introduction to Distributed System
Introduction to Distributed SystemIntroduction to Distributed System
Introduction to Distributed SystemSunita Sahu
 
Routing in Mobile Ad hoc Networks
Routing in Mobile Ad hoc NetworksRouting in Mobile Ad hoc Networks
Routing in Mobile Ad hoc NetworksSayed Chhattan Shah
 
Optimistic concurrency control in Distributed Systems
Optimistic concurrency control in Distributed SystemsOptimistic concurrency control in Distributed Systems
Optimistic concurrency control in Distributed Systemsmridul mishra
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed systemSunita Sahu
 
Message and Stream Oriented Communication
Message and Stream Oriented CommunicationMessage and Stream Oriented Communication
Message and Stream Oriented CommunicationDilum Bandara
 
Distributed Query Processing
Distributed Query ProcessingDistributed Query Processing
Distributed Query ProcessingMythili Kannan
 
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts – ...
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts –  ...WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts –  ...
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts – ...ArunChokkalingam
 
Distributed file system
Distributed file systemDistributed file system
Distributed file systemAnamika Singh
 
Design issues of dos
Design issues of dosDesign issues of dos
Design issues of dosvanamali_vanu
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure callSunita Sahu
 
Concurrency Control in Distributed Database.
Concurrency Control in Distributed Database.Concurrency Control in Distributed Database.
Concurrency Control in Distributed Database.Meghaj Mallick
 
8. mutual exclusion in Distributed Operating Systems
8. mutual exclusion in Distributed Operating Systems8. mutual exclusion in Distributed Operating Systems
8. mutual exclusion in Distributed Operating SystemsDr Sandeep Kumar Poonia
 
Mobile Network Layer
Mobile Network LayerMobile Network Layer
Mobile Network LayerRahul Hada
 
Distributed System-Multicast & Indirect communication
Distributed System-Multicast & Indirect communicationDistributed System-Multicast & Indirect communication
Distributed System-Multicast & Indirect communicationMNM Jain Engineering College
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecturenupurmakhija1211
 
proactive and reactive routing comparisons
proactive and reactive routing comparisonsproactive and reactive routing comparisons
proactive and reactive routing comparisonsITM Universe - Vadodara
 
Chapter 4 data link layer
Chapter 4 data link layerChapter 4 data link layer
Chapter 4 data link layerNaiyan Noor
 

What's hot (20)

Introduction to Distributed System
Introduction to Distributed SystemIntroduction to Distributed System
Introduction to Distributed System
 
Routing in Mobile Ad hoc Networks
Routing in Mobile Ad hoc NetworksRouting in Mobile Ad hoc Networks
Routing in Mobile Ad hoc Networks
 
Optimistic concurrency control in Distributed Systems
Optimistic concurrency control in Distributed SystemsOptimistic concurrency control in Distributed Systems
Optimistic concurrency control in Distributed Systems
 
Congestion control in TCP
Congestion control in TCPCongestion control in TCP
Congestion control in TCP
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed system
 
Message and Stream Oriented Communication
Message and Stream Oriented CommunicationMessage and Stream Oriented Communication
Message and Stream Oriented Communication
 
Distributed Query Processing
Distributed Query ProcessingDistributed Query Processing
Distributed Query Processing
 
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts – ...
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts –  ...WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts –  ...
WSN NETWORK -MAC PROTOCOLS - Low Duty Cycle Protocols And Wakeup Concepts – ...
 
Trends in distributed systems
Trends in distributed systemsTrends in distributed systems
Trends in distributed systems
 
Distributed file system
Distributed file systemDistributed file system
Distributed file system
 
Design issues of dos
Design issues of dosDesign issues of dos
Design issues of dos
 
Sliding window protocol
Sliding window protocolSliding window protocol
Sliding window protocol
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
 
Concurrency Control in Distributed Database.
Concurrency Control in Distributed Database.Concurrency Control in Distributed Database.
Concurrency Control in Distributed Database.
 
8. mutual exclusion in Distributed Operating Systems
8. mutual exclusion in Distributed Operating Systems8. mutual exclusion in Distributed Operating Systems
8. mutual exclusion in Distributed Operating Systems
 
Mobile Network Layer
Mobile Network LayerMobile Network Layer
Mobile Network Layer
 
Distributed System-Multicast & Indirect communication
Distributed System-Multicast & Indirect communicationDistributed System-Multicast & Indirect communication
Distributed System-Multicast & Indirect communication
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
proactive and reactive routing comparisons
proactive and reactive routing comparisonsproactive and reactive routing comparisons
proactive and reactive routing comparisons
 
Chapter 4 data link layer
Chapter 4 data link layerChapter 4 data link layer
Chapter 4 data link layer
 

Similar to Distributed Coordination-Based Systems

Architectural patterns part 1
Architectural patterns part 1Architectural patterns part 1
Architectural patterns part 1assinha
 
Cluster computing ppt
Cluster computing pptCluster computing ppt
Cluster computing pptDC Graphics
 
Chapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptxChapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptxTekle12
 
01-MessagePassingFundamentals.ppt
01-MessagePassingFundamentals.ppt01-MessagePassingFundamentals.ppt
01-MessagePassingFundamentals.pptHarshitPal37
 
tibco online training
tibco online trainingtibco online training
tibco online trainingsapbest
 
1. Overview of Distributed Systems
1. Overview of Distributed Systems1. Overview of Distributed Systems
1. Overview of Distributed SystemsDaminda Herath
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsAya Mahmoud
 
Towards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe SystemsTowards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe SystemsSrinath Perera
 
MC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DE
MC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DEMC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DE
MC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DEAravind NC
 
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptxChapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptxmeharikiros2
 
Link aware nice application level multicast protocol
Link aware nice application level multicast protocolLink aware nice application level multicast protocol
Link aware nice application level multicast protocolIJCNCJournal
 
chapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.pptchapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.pptAschalewAyele2
 
paradigms cloud.pptx
paradigms cloud.pptxparadigms cloud.pptx
paradigms cloud.pptxgunvinit931
 
Lect 1 Distributed System.pptx
Lect 1 Distributed System.pptxLect 1 Distributed System.pptx
Lect 1 Distributed System.pptxPardonSamson
 
Lec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdfLec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdfsamaghorab
 
5. the grid implementing production grid
5. the grid implementing production grid5. the grid implementing production grid
5. the grid implementing production gridDr Sandeep Kumar Poonia
 
Design Patterns - Distributed Publisher-Subscriber Network
Design Patterns - Distributed Publisher-Subscriber NetworkDesign Patterns - Distributed Publisher-Subscriber Network
Design Patterns - Distributed Publisher-Subscriber NetworkRishabh Karajgi
 

Similar to Distributed Coordination-Based Systems (20)

Architectural patterns part 1
Architectural patterns part 1Architectural patterns part 1
Architectural patterns part 1
 
Cluster computing ppt
Cluster computing pptCluster computing ppt
Cluster computing ppt
 
Chapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptxChapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptx
 
01-MessagePassingFundamentals.ppt
01-MessagePassingFundamentals.ppt01-MessagePassingFundamentals.ppt
01-MessagePassingFundamentals.ppt
 
tibco online training
tibco online trainingtibco online training
tibco online training
 
1. Overview of Distributed Systems
1. Overview of Distributed Systems1. Overview of Distributed Systems
1. Overview of Distributed Systems
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systems
 
Towards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe SystemsTowards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe Systems
 
MC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DE
MC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DEMC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DE
MC0085 – Advanced Operating Systems - Master of Computer Science - MCA - SMU DE
 
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptxChapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Link aware nice application level multicast protocol
Link aware nice application level multicast protocolLink aware nice application level multicast protocol
Link aware nice application level multicast protocol
 
chapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.pptchapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.ppt
 
Distributed Systems.pptx
Distributed Systems.pptxDistributed Systems.pptx
Distributed Systems.pptx
 
paradigms cloud.pptx
paradigms cloud.pptxparadigms cloud.pptx
paradigms cloud.pptx
 
Lect 1 Distributed System.pptx
Lect 1 Distributed System.pptxLect 1 Distributed System.pptx
Lect 1 Distributed System.pptx
 
Megastore by Google
Megastore by GoogleMegastore by Google
Megastore by Google
 
Lec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdfLec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdf
 
5. the grid implementing production grid
5. the grid implementing production grid5. the grid implementing production grid
5. the grid implementing production grid
 
Design Patterns - Distributed Publisher-Subscriber Network
Design Patterns - Distributed Publisher-Subscriber NetworkDesign Patterns - Distributed Publisher-Subscriber Network
Design Patterns - Distributed Publisher-Subscriber Network
 

More from Ahmed Magdy Ezzeldin, MSc.

More from Ahmed Magdy Ezzeldin, MSc. (11)

Distributed RDBMS: Challenges, Solutions & Trade-offs
Distributed RDBMS: Challenges, Solutions & Trade-offsDistributed RDBMS: Challenges, Solutions & Trade-offs
Distributed RDBMS: Challenges, Solutions & Trade-offs
 
Win any Interview like a Boss
Win any Interview like a BossWin any Interview like a Boss
Win any Interview like a Boss
 
Answer Selection and Validation for Arabic Questions
Answer Selection and Validation for Arabic QuestionsAnswer Selection and Validation for Arabic Questions
Answer Selection and Validation for Arabic Questions
 
Arabic Question Answering: Challenges, Tasks, Approaches, Test-sets, Tools, A...
Arabic Question Answering: Challenges, Tasks, Approaches, Test-sets, Tools, A...Arabic Question Answering: Challenges, Tasks, Approaches, Test-sets, Tools, A...
Arabic Question Answering: Challenges, Tasks, Approaches, Test-sets, Tools, A...
 
A survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithmsA survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithms
 
GATE : General Architecture for Text Engineering
GATE : General Architecture for Text EngineeringGATE : General Architecture for Text Engineering
GATE : General Architecture for Text Engineering
 
Networks and Natural Language Processing
Networks and Natural Language ProcessingNetworks and Natural Language Processing
Networks and Natural Language Processing
 
Cyclcone a safe dialect of C
Cyclcone a safe dialect of CCyclcone a safe dialect of C
Cyclcone a safe dialect of C
 
Objective C Memory Management
Objective C Memory ManagementObjective C Memory Management
Objective C Memory Management
 
Bash Scripting Workshop
Bash Scripting WorkshopBash Scripting Workshop
Bash Scripting Workshop
 
Object Role Modeling
Object Role ModelingObject Role Modeling
Object Role Modeling
 

Recently uploaded

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 

Recently uploaded (20)

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 

Distributed Coordination-Based Systems

  • 1. Distributed Systems : Chapter 13 Distributed Coordination-Based Systems Reference: Distributed Systems Principles and Paradigms 2nd Edition Prepared by: Ahmed Magdy Ezzeldin
  • 2. Outline ➔Introduction to Coordination Models ➔Taxonomy of coordination models ➔Architecture ➔ Traditional Architectures ➔ JavaSpaces ➔ TIB/Rendezvous ➔ Peer-to-Peer Architectures ➔ Gossip-Based Publish/Subscribe System ➔ Discussion ➔ Mobility and Coordination ➔ Lime ➔Processes ➔Communication ➔ Content-Based Routing ➔ Supporting Composite Subscriptions
  • 3. Introduction to Coordination Models ●Instead of concentrating on the transparent distribution of components, emphasis lies on the coordination of activities between those components. ●Clean separation between computation and coordination ●The coordination part of a distributed system handles the communication and cooperation between processes. ●The focus is on how coordination between the processes takes place.
  • 4. Taxonomy of coordination models Taxonomy of coordination models in 2 dimensions (temporal and referential)
  • 5. Taxonomy of coordination models [continued] ●Referential coupled, Temporal coupled: Direct coordination - Know addresses and/or names of processes - Know the form of the messages - Must be up at the same time ●Referential coupled, Temporal Decoupled: Mailbox coordination - Like persistent message-oriented communication - Know form of messages in advance - Does not have to be up at the same time
  • 6. Taxonomy of coordination models [continued] ●Referential Decoupled, Temporal coupled: Meeting oriented coordination - Often implemented by events - Publish/subscribe with no persistence on dataspace - Meet at a certain time to coordinate ●Referential Decoupled, Temporal Decoupled: generative communication - Independent processes make use of a shared persistent dataspace of tuples - Don't agree on structure of tuples in advance - Tuple tag distinguish between tuples of different info - Publish/subscribe with persistence on dataspace
  • 7. Architecture ● Data items are described by a series of attributes ● Subscription is passed to the middleware with a description of the data items that the subscriber is interested in. ● Subscription description as (attribute, value) pairs with range of each attribute and predicates like SQL. ● When data items are found the middleware sends a notification to the subscribers to read or just send the data items directly (no storage if sent directly) ● Publishing processes publish events which are data items with 1 attribute ● Matching data items against subscriptions should be efficient and scalable.
  • 9. Traditional Architectures ● Centralized client-server architecture ● Adopted by many publish/subscribe systems like IBM WebSphere and Sun JMS ●Generative communication models Like Sun Jini and JavaSpaces are based on central servers
  • 10. JavaSpaces ● To read a tuple instance, a process provides a typed template tuple for matching. ● A field in the template tuple either contains a reference to an actual object or contains the value NULL. ● Two fields match if they have a copy of the same reference or if the template tuple field is NULL. ● A tuple instance matches a template tuple if they have the same fields. ● Read and Take (remove tuple after reading) block the caller. ● Some implementations return immediately if there is not matching tuple or a timeout can be set. ● Centralized implementations makes complex matching rules easier and also can be used for synchronization.
  • 11. TIB/Rendezvous ● Instead of central servers we can immediately send published tuples to subscribers using multicasting ● Data item is a message tagged with a compound keyword describing its content (subject) ●Uses broadcast or uni cast if the subscribers addresses are known ● Each host has a rendezvous daemon, which takes care that messages are sent and delivered according to their subject ● The daemon has a table of (process, subject), entries and whenever a message on subject S arrives, the daemon checks in its table for local subscribers, and forwards the message to each one. ● Can allow complex matching of published data items against subscriptions
  • 13. Peer-to-Peer Architectures ●For scalability, restrictions on describing subscriptions and data items may be necessary. ● Keywords or (attribute, value) pairs are hashed to unique identifiers for published data, which can be efficiently implemented in a DHT-based system. ●For more advanced matching rules we can use Gossip-Based Publish/Subscribe Systems
  • 14. Gossip-Based Publish/Subscribe Systems ●A subscription S is a tuple of (attribute, value/range) pairs ● Like CAN (Content Addressable network) make float from attributes and organize subscriber nodes into 2 dimentional array of floats to form groups ●Cluster nodes into M different groups, such that nodes i and j belong to the same group if and only if their subscriptions Si and Sj intersect. ●Each node maintains a list of references to other neighbors (partial view) to know the intersecting subscriptions
  • 15. Discussion Similar to gossip-based systems ● each attribute a, is handled by a separate process Pi, ● which in turn partitions the range of its attribute across multiple processes. ●When a data item d is published, it is forwarded to each Pi, where it is stored at the process responsible for the d's value of a.
  • 16. Mobility and Coordination ●To know if a mobile peer received a message is problematic. ● Two solutions are suggested: 1- That the receiving mobile process saves older messages to make sure it does not receive duplicates 2- We devise routers to keep track of the mobile peers and know which messages they received (harder to implement).
  • 17. Lime ● In Lime, each mobile process has its own dataspace ●When processes are connected, their dataspaces become shared. ●Formally, the processes should be member of the same group and use the same group communication protocol. ● The local dataspaces of connected processes form a transiently shared dataspace to allow exchange of tuples. ● To control how tuples are distributed, dataspaces can do "reactions". A reaction specifies an action to be executed when a tuple matching a given template is found in the local dataspace.
  • 19. Processes ●Nothing special we just need efficient mechanisms to be used to search in a large collection of data. ●The main problem is devising schemes that work well in distributed environments.
  • 20. Communication ●In Java remote method invocations is used for communication. ● In wide-area networks the system should be self-organization or content-based routing to ensure that the message reaches only to its intended subscribers.
  • 21. Content-Based Routing ● Routers can take routing decisions based on the message content so it it cuts of routes that do not lead to receivers of this message. ● Clients can tell the servers which messages they are interested in so that the servers notify them when they receive a relevant message. This is done in 2 layers where layer 1 consists of a shared broadcast tree connecting the servers using routers ● In simple subject-based publish/subscribe using a unique (non-compound) keyword. ● We can send each published message to every server like in TIB/Rendezvous.
  • 22. Content-Based Routing [continued] Or let every server broadcast its subscriptions to all other servers to be able to compile a list of (subject, destination) pairs.
  • 23. Content-Based Routing [continued] ● Each server broadcasts its subscription across the network so that routers can compose routing filters. ● When a node leaves the system, it should cancel its subscriptions and essentially broadcast this information to all routers. ●Comparison of subscriptions and data items to be routed can be computationally expensive.
  • 24. Supporting Composite Subscriptions ● When we use more sophisticated expressions of subscriptions then we need another way not the simple content routing we have just used. ● Express compositions of subscriptions in which a process specifies in a single subscription that it is interested in very different types of data items. ●Design routers analogous to rule databases where subscriptions are transformed into rules stating the conditions under which published data should be forwarded.