Distributed Systems Architectures

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

How does choosing a suitable architecture for a distributed system impact its design and functionality?

A good architecture allows for splitting the functionality of the system, structuring the application, and reducing complexity.

Explain the primary difference between vertical and horizontal distribution in a distributed system.

Vertical distribution splits server functionality across multiple servers. Horizontal distribution replicates a server's functionality across multiple computers.

How does peer-to-peer architecture differ from client-server architecture in terms of process roles?

In P2P architecture, all processes play the same role, acting as both client and server, whereas in client-server, one process is the server and others are clients.

What advantages does a superpeer network offer over a pure peer-to-peer system?

<p>It maintains some benefits of P2P but simplifies the system by having superpeers manage the index of regular peers, simplifying the network.</p> Signup and view all the answers

Outline how collaborative distributed systems, like BitTorrent, use both P2P and client-server architectures.

<p>They use a client-server architecture for initial setup (contacting a tracker) and a P2P architecture for content delivery (sharing file chunks between nodes).</p> Signup and view all the answers

What role does virtualization play in modern clustered server systems?

<p>Virtualization allows consolidating many servers on a single machine while providing isolation and a basis for code mobility and load balancing.</p> Signup and view all the answers

Why is it important for a server process in a distributed system to provide quick responses to clients?

<p>To avoid blocking one client while serving another, which can occur if the server is implemented as a single-threaded process.</p> Signup and view all the answers

What is the key difference between the stateful and stateless models in server design?

<p>A stateful server stores persistent information about clients, while a stateless server does not retain client information between requests.</p> Signup and view all the answers

Explain the distinction between weak and strong mobility in the context of code mobility, and what is transferred in each case?

<p>Weak mobility transfers only code, restarting the process from an initial state at the destination. Strong mobility transfers both code and execution context, resuming execution from where it left off.</p> Signup and view all the answers

What are the two primary reasons for communication between processes in a distributed system?

<p>Synchronization to coordinate activities and Data sharing to work cooperatively on tasks.</p> Signup and view all the answers

Describe the difference between data-oriented and control-oriented communication modes.

<p>Data-oriented communication exchanges data only; control-oriented communication also includes a transfer of control with every data transfer.</p> Signup and view all the answers

Explain the difference between synchronous and asynchronous communication, mentioning the key behavior of the sender in each mode.

<p>In synchronous communication, the sender blocks until the message is received (and possibly processed). In asynchronous communication, the sender continues execution immediately after sending the message.</p> Signup and view all the answers

What distinguishes transient communication from persistent communication in distributed systems?

<p>Transient communication requires an active receiver for message delivery, while persistent communication stores messages until they can be delivered.</p> Signup and view all the answers

Outline the purpose of message-oriented middleware (MOM) and two key facilities it provides beyond basic message passing.

<p>MOM aims to ease flexible message passing, providing infrastructure for persistent communication and abstracting from underlying OS/hardware primitives.</p> Signup and view all the answers

In the context of message queuing systems, what is the role of queues in message delivery?

<p>Queues hold messages until an intended receiver extracts and processes them, providing asynchronous communication.</p> Signup and view all the answers

Explain how RPC abstracts the underlying communication process for programmers.

<p>RPC replaces the explicit message passing model with the model of executing a procedure call on a remote node, theoretically hiding all communication details from the programmer.</p> Signup and view all the answers

What is the purpose of an Interface Definition Language (IDL) in RPC, and what is generated from it?

<p>IDL defines service interfaces, and is used to generate client and server stub code, simplifying the process of creating programs that use RPC.</p> Signup and view all the answers

Describe the marshalling and unmarshalling processes in RPC, and why they are necessary.

<p>Marshalling packs data into messages, and unmarshalling unpacks data from messages for sending data across heterogeneous architectures.</p> Signup and view all the answers

What is the purpose of a binding service in RPC, and what type of information does it provide?

<p>A binding service allows clients to look up and connect to services, providing handle/physical address and UID for specific service versions.</p> Signup and view all the answers

How does RMI build upon RPC to improve location transparency and state management?

<p>RMI uses remote objects, encapsulating state and operations, and allows objects to be passed as arguments.</p> Signup and view all the answers

What is the challenge in assuming transparency with RPC and RMI, and what are some potential failures?

<p>RPCs and RMIs can fail in ways local calls cannot, like service unavailability, lost messages, or server crashes, requiring error handling.</p> Signup and view all the answers

How does group communication differ from point-to-point communication, and what are common applications of it?

<p>Group communication involves sending a single message to multiple processes, used for requests to replicas, service discovery, and event notification.</p> Signup and view all the answers

Describe how gossip-based communication works and what guarantees it can and cannot provide?

<p>Nodes push data to random peers, like a rumor spreading, effective for quick dissemination but without guarantees all nodes get the data.</p> Signup and view all the answers

In event-based communication, what roles do senders and receivers play and how does the middleware facilitate their interaction?

<p>Senders produce events without specifying receivers; receivers listen for event of interest, without specifying senders. The middleware delivers matching events.</p> Signup and view all the answers

What is distributed shared memory (DSM) and what mechanisms are required to facilitate its creation?

<p>DSM emulates shared memory across separate computers via special mechanisms to manage access to a unified virtual address space.</p> Signup and view all the answers

How does the stream abstraction differ from previous communication abstractions in terms of the type of data that it deals with, and give an example of where this abstraction would be put to use?

<p>Stream abstraction deals with continuous communication (continuous media) rather than discrete communication of data chunks. Use in sending and receiving of continuous media.</p> Signup and view all the answers

Explain the concept of isochronous communication and its relation to streams of continuous media.

<p>Isochronous communication is a communication that has minimum and maximum end-to-end time delay requirements and is used with streams of continuous media to minimize that variance.</p> Signup and view all the answers

Explain what Replication is and how it improves system reliability, performance and scalability.

<p>Replication is creating and maintaining copies of services/data. Improves system reliability, performance and scalability by improving availability, scalability and reducing system load.</p> Signup and view all the answers

What are the two types of replication, and what differs between them? Give an example of systems using them

<p>Data and Control replication. The first is data, where the data of services are replicated. An example of this is Web Browser caches. The second is control replication, where only the control part of the service is replicated. There is also a possible combination of both.</p> Signup and view all the answers

What is a Distributed Data-Store, and how does its abstract model operate?

<p>A distributed data-store is a generic term for a service that stores data used when discussing replication.</p> Signup and view all the answers

Flashcards

Software Architecture

Arrangement of software components & their interactions.

Client-Server Architecture

Process provides a service; others request it.

Vertical Distribution (Multi-Tier)

Server's functions distributed across multiple servers.

Horizontal Distribution

Replicating server functionality across multiple computers.

Signup and view all the flashcards

Peer-to-Peer (P2P)

All processes play the same role.

Signup and view all the flashcards

Hybrid Architecture

Combining multiple architectures.

Signup and view all the flashcards

Superpeer network

Superpeers form P2P network; regular peers are clients.

Signup and view all the flashcards

Collaborative Distributed Systems

Peers support each other to deliver content.

Signup and view all the flashcards

Edge-server networks

Servers placed at the "edge" of the Internet.

Signup and view all the flashcards

Process Model

Each thread of control has its own address space.

Signup and view all the flashcards

Thread Model

Multiple threads share a single address space.

Signup and view all the flashcards

Stateful Model

Server stores persistent client information.

Signup and view all the flashcards

Stateless Model

Server keeps no persistent client information.

Signup and view all the flashcards

Code Mobility

Changing the location of a process' execution.

Signup and view all the flashcards

Weak Mobility

Only code is transferred; process restarts.

Signup and view all the flashcards

Strong Mobility

Code and execution context are transfered.

Signup and view all the flashcards

Shared Memory Communication

Processes agree on shared memory regions.

Signup and view all the flashcards

Message Passing Communication

Processes communicate by sending messages.

Signup and view all the flashcards

Connection-Oriented Communication

Requires connection before sending/receiving.

Signup and view all the flashcards

Data-Oriented Communication

Communication serves solely to exchange data .

Signup and view all the flashcards

Control-Oriented Communication

Associates control transfer with data transfer.

Signup and view all the flashcards

Synchronous Communication

Sender blocks until message received.

Signup and view all the flashcards

Asynchronous Communication

Sender continues immediately after sending.

Signup and view all the flashcards

Buffered Communication

Message stored if receiver unavailable.

Signup and view all the flashcards

Transient Communication

Message delivered only if receiver is active.

Signup and view all the flashcards

Persistent Communication

Message stored until delivered to recipient.

Signup and view all the flashcards

Reliable Communication

Errors discovered and fixed transparently. That messsage can go to other endpoint.

Signup and view all the flashcards

Unreliable Communication

Errors may occur; messages may get lost.

Signup and view all the flashcards

Explicit Message Passing

All processes explicitly send and receive messages.

Signup and view all the flashcards

Replication

Creating and maintaining copies of services and data

Signup and view all the flashcards

Study Notes

  • A distributed systems comprises of software components, processing nodes, and networks
  • Software are under designer's control
  • System hardware can be specified within the design or taken as-is

System Organization

  • The software can become complex, especially in large systems
  • Distinguishes logical organization of software and physical organization
  • Software architecture deals with software components are organized and how they communicate
  • Typical software architectures include layered, object-oriented, data-centred, service-oriented, and event-based architectures
  • Once instantiated and placed on machines, it becomes a system architecture
  • Architectures are distinguished by the roles of the communicating processes

Good Architecture

  • Allows splitting functionality thus structuring the application
  • There is no single best architecture, this depends application's requirements and the environment

Client-Server Architecture

  • The most common and widely used model for communication between processes
  • One process takes on the role of a server, while all other processes take on the roles of clients
  • Server provides a service while clients consume it
  • Client sends request to a server, the request is processed at the server and a reply is returned
  • Typical application decomposes into three logical parts: the interface part, the application logic part, and the data part
  • Implementations of the architecture vary in parts separated over the roles

Client Implementations

  • A minimal user interface layer includes everything else to the server
  • A fat client implementation includes the user interface and application logic in the client
  • Only rely on the server to store and provide access to data
  • Other implementations split the interface or application logic parts over the clients and server

Vertical Distribution (Multi-Tier)

  • Extension of the client-server architecture that distributes the traditional server functionality over multiple servers
  • Client request is sent to the first server
  • During processing of the request this server will request the services of the next server, who will do the same, until the final server is reached
  • The various servers become clients of each other
  • Each server is responsible for a different step in the fulfillment of the original client request

Splitting Server Functionality

  • Beneficial to a system's scalability and flexibility
  • Improved scalability because the processing load on each individual server is reduced
  • Allows the internal functionality of each server to be modified as long as the interfaces provided remain the same

Horizontal Distribution

  • Splits up a server’s functionality over computers
  • Horizontal involves replicating a server’s functionality over multiple computers
  • Each server machine contains a complete copy of all hosted Web pages
  • Client requests are passed on to the servers in a round robin fashion
  • Architecture is used to improve scalability (reduce the load on server) and reliability (providing redundancy)
  • It is possible to combine the vertical and horizontal distribution models

Peer to Peer

  • Assumes different processes take on different roles in the communication architecture
  • Takes the opposite approach and each plays the same role and are peers
  • Each process acts as both client and server, both sending/receiving requests
  • All processes provide the same logical services

Examples of P2P

  • File-sharing applications
  • Users start a program to search/download files from others and handles search/download requests from users
  • Due to number nodes it becomes impossible to track all nodes & info they offer
  • Reduce the problem nodes form an overlay network
  • Nodes form a virtual network among themselves and have direct knowledge of other nodes
  • Message to an arbitrary other node must first locate by propagating a request along overlay links

Types of overlay networks

  • Distinction based on how they are built/maintained
  • Node in the network maintains list of neighbours (partial view of network)
  • Unstructured overlays the network often resembles a random graph
  • Membership management is random, a node’s partial view consists from a random list of other nodes
  • To keep network connected as nodes join/leave all nodes periodically their partial views with neighbours, creating a new list

Structured Overlays

  • Choice of a node's neighbor is determined according to a specific structure
  • Distributed hash table nodes work to implement
  • Each node responsible for storing data associated with identifiers
  • Joining a network, a node is assigned an identifier/locates node in the range and part of the space is taken

Hybrid

  • Architectures can be designed by combining the previously described architectures
  • Examples described are called hybrid architectures

Supepeer Networks

  • Few superpeers form P2P network
  • Regular peers are clients to a superpeer
  • Architecture maintains a system with some of P2P system
  • System simplifies by superpeers an indexes regular peers/brokers

Collaborative Distribution Systems

  • Peers typically support to deliver content In a P2P and use client, server setup network
  • For example BitTorren, nodes requesting to download a file from a server and contact the location of the tracker
  • Tracker then tells the nodes the locations of the other nodes
  • Nodes then must offer chunk to other nodes/ register to the tracker so other nodes can find them

Edge-Server Networks

  • Servers at the "edge" such as ISP close to enterprise networks
  • Client/home users then access the nearby edge servers
  • Suited for large-scale distribution networks such as Akamai

Processes and Server Architecture

  • Key property is distributed systems consist of Processes
  • Communication is between processes on a single computer

Thread of Control

  • Two Models
    • Process Model: Thread of Control with address space
    • Thread Model: Threads of control share a single address space
  • Memory Access
    • Threads share all their memory, processes are prevented
    • Some systems provide only a process model and some a thread model
  • Systems provide to be a Process while contain threads
  • We can refer it as a Process

Server Process

Typically receives requests for work from various clients for responses

  • A server should not refuse work for one client (E.G: Invoke Blocking) a Server as Single-Threaded
    • Alternatives:
      • Using many Threads
      • Design and Build a State Machine - Non Blocking Call
  • Server Issue design Is whether they store the clients or NOT

The Stateful Model

  • Stores a Persistent Information about a client
  • Leads to good performance since clients need tell states
    • Flipside the need to keep track of client and ensure recovering after a crash
  • The Stateless Model
    • Keep NO Information about Clients
    • Does not worries about state after a crash

Client - Server

  • Separate virtual machines are hosted on single machine
  • Consolidation on single Machine and Isolation
    • The Machines in Cluser assigned roles that included a Switch(To Receive and Route to Servers)
    • Typically The Server will store address and cycle

Code Mobility

  • Mobility : In cases it can change the Location where Processes are being executed
    • This can be to Unloaded Servers within Clusters
    • Two types
      • Weak- Only Code is transferred and restarted at destination
      • Strong- Execution Code and Context are transferred at Execution from left off before moving

Communication Protocol

  • Synchronization and sharing Data
    • Processes Synchronization:
      • Coordination
        • Finding if a Process lives
        • Determining Task a Process
        • Acquire Resources
        • Request tasks
    • Processes Shared Data
      • Cooperative Working
        • Sending data as tasks
        • Returning Cal

Ways to Communicate

  • Shared Memory or by Message Passing
    • Processes must have Shared Memory
      • Threads: share memory file and resource
        • Communicate by sending each other Messages
  • Message Passing has
    • (IPC) Inter Processes Communication available in Underlying Operating System
    • Examples : Pipes and Sockets

Communication In Distributed Systems

  • Main Difference run computers are not access Direct Message Passing
    • Similar using message Passing Non-Distributed System
    • Message Passing Main operations involved SEND() and RECEIVE()
      • Connectionless
        • Very Simple
        • Many variations
      • Connection-Oriented
        • Sender/Receiver
        • Create before Send() and Receive()
        • Many consider dealing processes communication using Send(), Issues include Representation Communication Models
    • A number of Alternative can take place

First Distinction Model

  • Data-Oriented Communication and Control Communication - Data Serves exa-Data - Although trigger and action no transfer
  • Control-Orient Communication
    • Every data explicit
    • Type Communication:
      • Space and shared Memory
  • Communication Operation
    • Syn or Asyn
    • SYN send messages blocked: Send/Recv Replies.
      • (Ex: Blocking)
    • ASYN: Execution after message without waiting, and possibly no answer

Alter Buffering Communication Model

- Message will be stored if message not able to pick

-UnBuffered: will be lost

Communication can be Tranisent or Persistent

 - Communication that's a Messaged will be delievered if the Reciever active
      - No intertested Message will be dropped
  • Persistent Communication A message will be stored - Message Will Delievered

Degree of Reliability

  • Reliable communication errors are Transparency
    • Communication, a message that's a sent at Destination
    • Destination exists Receive (With UNRELIABLE that's messages get Lost)
  • Ordering messages
    • Ensure messages received
    • System guaranteed messages

Communication Abstractions

  • Assumed messages can't easily write and send and Recv messages Abstraction to make it easier
  • Way to make Programming Language easier
  • Providing level programming assembly
  • Level Do Higher provide to Do Communication
  • attempt to completely the fact that communication is taking place

Used for Core Foundation in Middleware

  • By Using Abstractions
  • Communication not to know communicate Operating Primitives

Messaged -Orientes Communication

  • Message Not Attempt fact to Hide place make Passing easier
  • Message Oriented based Model on Process sending Messages
    • Communication Properties
      • Synchronization or Asyn
  • Message Oriented provides By Message- Oriented Middleware
  • MOM also provides abstractions as they are on Hardware Platforms, Abstract
  • MOMS allows programmers use Message- Orientated
    • The Tasks RPC frameworks are PackingData
  • XML-RPC- The Tasks RPC frameworks are PackingData
  • Conversion different format of By The Recv

RMI Abstraction

  • Must Specify to Server on the CALL on (Binding) The Server
  • It's Server Keep Account The states belonging in different Clients and Invocation
  • Server Metaphor for object metaphor
  • Remote Object : once a client is in the network it longer to worry where object IS
  • Also Can be object model Passed and Results IN RMI
  • To relieve Problems associated
  • Remote objects form a distributed paradigm lecture
  • THE DANGER TRANSPARENCY
  • The Allusion The Proc is bad FOR PCS can FAIL

Group Communication

  • Departure the point of Style
  • A Process Can Send a Group to other processes
  • Broadcast (when a single is sent for every one) and mulicast (To tell Everyone the Printer is on FIRE)
  • Implementation and using in Group , this includes reability
  • Implementation Can Lead to Complication
  • A single of reciepients Not Recv, Again OR the process not rec
  • Different recipients
    • IP multi-cast Long Existed
    • Implementation routers

Increase Impairment Communicate is Gossip-Based Communication

  • Ruined The Spread
    • (Data That receive some new will cont act Nodes in push Data ) , then
      • B Continues, and Push with Data Them

Event-Based Communication

  • Decouple Sender/Recv to Comm SEND(Produce) and RECV (Listener) - A common Communication: Publish Subscribe sender recevie of - Subscription Based Topic or combo

Distributes Shared Memory

  • The direct acc each is memory needs special machine the presence

Tuples Spaces

  • Shared meme into generalized
  • In the Model data Tuple other
  • Underlying Middleware
  • Tuples Ordering

Replication

  • Involes create AND Maintian copys of a Service and Distributed Systems
  • Unlik Comm WITHOUT Build the Fundamental Prinicrple
    • Bulid possible No Replication

##Replication Does

  • Important WHEN key scale -- cases of Reliability Multiple server
  • If a Server Become COrrupt replicas can use to restore state

Perfomance

  • Replicating Helps Redue The Indivial

##Types of replication possbile

  • Data replication

##control replication.

  • In second cases

    • The Web With Caches Data Replication in Data Control: The web browsers are ex: replication data.
  • improve & maintain performent of multiple servers: used over come or over computional

  • During implement number adderssed Keep Replica

  • the is keep the replicated data to addes

  • The data consisten replica propogage how many replicas to create add and removed replicas etc

##Distributed-Datastore

  • Generic Data data stored to data stores to include sharded,files web server objects etc.
  • data is like a item
  • clients connect and perform access
  • From Clints view DATA Central Host Service Internally HOWEVER consisited Replica(servers)

Data Store Model Replicas Each

Data store performs for clients with client connecting

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser