Client-Server Systems And Distributed Applications Flashcards
What is the current relevance of distributed systems in society?
Distributed systems have evolved from being an IT topic to a ubiquitous aspect of today’s society;significantly impacted by the internet.
What are two examples of concepts related to distributed systems?
Examples include the “Internet of Things (IoT)” and “mobile computing.”
What does this unit focus on regarding distributed systems?
The unit focuses on traditional forms of distributed systems;building foundational knowledge before exploring modern topics.
How are traditional desktop programs being affected by current trends in distributed systems?
Current trends are paving the way for common desktop programs to be displaced by browser-based distributed applications.
Why is understanding traditional distributed systems important?
Understanding traditional distributed systems is important as it provides a foundation for comprehending more advanced concepts like cloud computing and web services.
How were programs developed at the beginning of the computer age?
Programs were primarily developed as monolithic applications;combining all functions and aspects into a single component.
What prompted the shift from monolithic programs to a multi-layered approach?
The growth of applications;increasing complexity;and greater availability of resources led to the emergence of a modular and multi-layered architecture.
What is the main advantage of using a multi-layered architecture?
It reduces complexity;increases maintainability and expandability;and structures dependencies among various functional aspects.
What is the restriction on function calls across layer boundaries in a multi-layered architecture?
Function calls can only be made from top to bottom across layer boundaries to avoid dependency cycles.
What is a two-tier architecture?
A two-tier architecture consists of two layers: a lower layer that acts as a pure service provider (server) and an upper layer that acts as a pure service user (client).
Can the client and server in a two-tier architecture be on the same computer?
Yes the client and server can be represented by two software modules located on the same computer.
What is the three-tier architecture and what are its layers?
The three-tier architecture consists of:
* Presentation Tier: Interfaces with the user, presenting data visually and receiving input.
* Logic Tier: Contains the data processing mechanisms, also known as the application or business logic tier.
* Data Tier: Responsible for maintaining and managing data records, such as in a database.
What is the thin client approach in the context of three-tier architecture?
The thin client approach has the logic and data tiers on a server while the presentation tier runs on many client computers;which primarily handle display and minimal processing.
What is the fat client approach?
The fat client approach involves client computers processing data themselves;with the server primarily providing persistent storage.
What are the two types of distribution in distributed applications?
Horizontal Distribution: Client requests can be directed to any of several redundant servers, with each server capable of responding independently.
Vertical Distribution: Different functions, tasks, or data are distributed across different servers, meaning a client can only address a specific server for certain requests.
What does the term “load balancing” refer to in distributed architectures?
Load balancing refers to distributing client accesses across multiple application servers to optimize resource use and avoid overloading any single server.
How does horizontal scaling differ from vertical scaling?
Horizontal scaling involves adding more servers of the same type to handle increased client requests;while vertical scaling requires more powerful servers to handle an increase in specific client requests.
What does the term “load balancing” refer to in distributed architectures?
Load balancing refers to distributing client accesses across multiple application servers to optimize resource use and avoid overloading any single server.
What protocols are commonly used for communication in distributed systems?
Communication in distributed systems typically uses protocols and services known from the internet;such as HTTP;but also includes other protocols for complex communication relationships.
What is a Remote Procedure Call (RPC)?
An RPC allows a process on one computer to call a function or service as if it were a local procedure;and receive a result or return value from a procedure running on another computer.
How does an RPC differ from a local function call?
While both involve calling procedures, RPCs operate over a network and require additional communication handling, whereas local function calls do not.
What role do client stub procedures play in RPCs?
Client stub procedures mirror the actual service procedures on the server;managing communication and returning results to the client;thus making remote calls transparent to the client.
What are the two main communication modes in RPCs?
The two main modes are:
A)Blocking communication: The client waits for the server’s response and cannot perform other activities in the meantime.
B)Non-blocking communication: The client returns immediately after issuing the RPC, allowing it to continue other tasks while the result is processed in the background.
What are the advantages of using non-blocking RPCs?
Non-blocking RPCs allow for concurrency and parallelism;enabling the client to perform other computations while waiting for the server’s response.
What is the concept of mutual exclusion in synchronization?
Mutual exclusion ensures that only one process can perform a special operation or access an exclusive resource at a time;preventing concurrent access that could lead to inconsistencies.
What are atomic counting variables and how do they relate to synchronization?
Atomic counting variables, or semaphores, allow up to n processes to use a resource simultaneously. They help manage access to shared resources in synchronization.
What is the purpose of a barrier in synchronization?
A barrier ensures that a set of processes cannot proceed until all participating processes have reached the barrier;coordinating their execution.