Podcast
Questions and Answers
How does choosing a suitable architecture for a distributed system impact its design and functionality?
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.
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?
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?
What advantages does a superpeer network offer over a pure peer-to-peer system?
Outline how collaborative distributed systems, like BitTorrent, use both P2P and client-server architectures.
Outline how collaborative distributed systems, like BitTorrent, use both P2P and client-server architectures.
What role does virtualization play in modern clustered server systems?
What role does virtualization play in modern clustered server systems?
Why is it important for a server process in a distributed system to provide quick responses to clients?
Why is it important for a server process in a distributed system to provide quick responses to clients?
What is the key difference between the stateful and stateless models in server design?
What is the key difference between the stateful and stateless models in server design?
Explain the distinction between weak and strong mobility in the context of code mobility, and what is transferred in each case?
Explain the distinction between weak and strong mobility in the context of code mobility, and what is transferred in each case?
What are the two primary reasons for communication between processes in a distributed system?
What are the two primary reasons for communication between processes in a distributed system?
Describe the difference between data-oriented and control-oriented communication modes.
Describe the difference between data-oriented and control-oriented communication modes.
Explain the difference between synchronous and asynchronous communication, mentioning the key behavior of the sender in each mode.
Explain the difference between synchronous and asynchronous communication, mentioning the key behavior of the sender in each mode.
What distinguishes transient communication from persistent communication in distributed systems?
What distinguishes transient communication from persistent communication in distributed systems?
Outline the purpose of message-oriented middleware (MOM) and two key facilities it provides beyond basic message passing.
Outline the purpose of message-oriented middleware (MOM) and two key facilities it provides beyond basic message passing.
In the context of message queuing systems, what is the role of queues in message delivery?
In the context of message queuing systems, what is the role of queues in message delivery?
Explain how RPC abstracts the underlying communication process for programmers.
Explain how RPC abstracts the underlying communication process for programmers.
What is the purpose of an Interface Definition Language (IDL) in RPC, and what is generated from it?
What is the purpose of an Interface Definition Language (IDL) in RPC, and what is generated from it?
Describe the marshalling and unmarshalling processes in RPC, and why they are necessary.
Describe the marshalling and unmarshalling processes in RPC, and why they are necessary.
What is the purpose of a binding service in RPC, and what type of information does it provide?
What is the purpose of a binding service in RPC, and what type of information does it provide?
How does RMI build upon RPC to improve location transparency and state management?
How does RMI build upon RPC to improve location transparency and state management?
What is the challenge in assuming transparency with RPC and RMI, and what are some potential failures?
What is the challenge in assuming transparency with RPC and RMI, and what are some potential failures?
How does group communication differ from point-to-point communication, and what are common applications of it?
How does group communication differ from point-to-point communication, and what are common applications of it?
Describe how gossip-based communication works and what guarantees it can and cannot provide?
Describe how gossip-based communication works and what guarantees it can and cannot provide?
In event-based communication, what roles do senders and receivers play and how does the middleware facilitate their interaction?
In event-based communication, what roles do senders and receivers play and how does the middleware facilitate their interaction?
What is distributed shared memory (DSM) and what mechanisms are required to facilitate its creation?
What is distributed shared memory (DSM) and what mechanisms are required to facilitate its creation?
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?
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?
Explain the concept of isochronous communication and its relation to streams of continuous media.
Explain the concept of isochronous communication and its relation to streams of continuous media.
Explain what Replication is and how it improves system reliability, performance and scalability.
Explain what Replication is and how it improves system reliability, performance and scalability.
What are the two types of replication, and what differs between them? Give an example of systems using them
What are the two types of replication, and what differs between them? Give an example of systems using them
What is a Distributed Data-Store, and how does its abstract model operate?
What is a Distributed Data-Store, and how does its abstract model operate?
Flashcards
Software Architecture
Software Architecture
Arrangement of software components & their interactions.
Client-Server Architecture
Client-Server Architecture
Process provides a service; others request it.
Vertical Distribution (Multi-Tier)
Vertical Distribution (Multi-Tier)
Server's functions distributed across multiple servers.
Horizontal Distribution
Horizontal Distribution
Signup and view all the flashcards
Peer-to-Peer (P2P)
Peer-to-Peer (P2P)
Signup and view all the flashcards
Hybrid Architecture
Hybrid Architecture
Signup and view all the flashcards
Superpeer network
Superpeer network
Signup and view all the flashcards
Collaborative Distributed Systems
Collaborative Distributed Systems
Signup and view all the flashcards
Edge-server networks
Edge-server networks
Signup and view all the flashcards
Process Model
Process Model
Signup and view all the flashcards
Thread Model
Thread Model
Signup and view all the flashcards
Stateful Model
Stateful Model
Signup and view all the flashcards
Stateless Model
Stateless Model
Signup and view all the flashcards
Code Mobility
Code Mobility
Signup and view all the flashcards
Weak Mobility
Weak Mobility
Signup and view all the flashcards
Strong Mobility
Strong Mobility
Signup and view all the flashcards
Shared Memory Communication
Shared Memory Communication
Signup and view all the flashcards
Message Passing Communication
Message Passing Communication
Signup and view all the flashcards
Connection-Oriented Communication
Connection-Oriented Communication
Signup and view all the flashcards
Data-Oriented Communication
Data-Oriented Communication
Signup and view all the flashcards
Control-Oriented Communication
Control-Oriented Communication
Signup and view all the flashcards
Synchronous Communication
Synchronous Communication
Signup and view all the flashcards
Asynchronous Communication
Asynchronous Communication
Signup and view all the flashcards
Buffered Communication
Buffered Communication
Signup and view all the flashcards
Transient Communication
Transient Communication
Signup and view all the flashcards
Persistent Communication
Persistent Communication
Signup and view all the flashcards
Reliable Communication
Reliable Communication
Signup and view all the flashcards
Unreliable Communication
Unreliable Communication
Signup and view all the flashcards
Explicit Message Passing
Explicit Message Passing
Signup and view all the flashcards
Replication
Replication
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
- Alternatives:
- 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
- Coordination
- Processes Shared Data
- Cooperative Working
- Sending data as tasks
- Returning Cal
- Cooperative Working
- Processes Synchronization:
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
- Threads: share memory file and resource
- Processes must have Shared Memory
- 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
- Connectionless
- 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
- Communication Properties
- 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
- (Data That receive some new will cont act Nodes in push Data ) , then
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.