Client-Server Systems And Distributed Applications Flashcards

1
Q

What is the current relevance of distributed systems in society?

A

Distributed systems have evolved from being an IT topic to a ubiquitous aspect of today’s society;significantly impacted by the internet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are two examples of concepts related to distributed systems?

A

Examples include the “Internet of Things (IoT)” and “mobile computing.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What does this unit focus on regarding distributed systems?

A

The unit focuses on traditional forms of distributed systems;building foundational knowledge before exploring modern topics.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How are traditional desktop programs being affected by current trends in distributed systems?

A

Current trends are paving the way for common desktop programs to be displaced by browser-based distributed applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why is understanding traditional distributed systems important?

A

Understanding traditional distributed systems is important as it provides a foundation for comprehending more advanced concepts like cloud computing and web services.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How were programs developed at the beginning of the computer age?

A

Programs were primarily developed as monolithic applications;combining all functions and aspects into a single component.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What prompted the shift from monolithic programs to a multi-layered approach?

A

The growth of applications;increasing complexity;and greater availability of resources led to the emergence of a modular and multi-layered architecture.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the main advantage of using a multi-layered architecture?

A

It reduces complexity;increases maintainability and expandability;and structures dependencies among various functional aspects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the restriction on function calls across layer boundaries in a multi-layered architecture?

A

Function calls can only be made from top to bottom across layer boundaries to avoid dependency cycles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a two-tier architecture?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Can the client and server in a two-tier architecture be on the same computer?

A

Yes the client and server can be represented by two software modules located on the same computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the three-tier architecture and what are its layers?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the thin client approach in the context of three-tier architecture?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the fat client approach?

A

The fat client approach involves client computers processing data themselves;with the server primarily providing persistent storage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the two types of distribution in distributed applications?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What does the term “load balancing” refer to in distributed architectures?

A

Load balancing refers to distributing client accesses across multiple application servers to optimize resource use and avoid overloading any single server.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

How does horizontal scaling differ from vertical scaling?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What does the term “load balancing” refer to in distributed architectures?

A

Load balancing refers to distributing client accesses across multiple application servers to optimize resource use and avoid overloading any single server.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What protocols are commonly used for communication in distributed systems?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is a Remote Procedure Call (RPC)?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

How does an RPC differ from a local function call?

A

While both involve calling procedures, RPCs operate over a network and require additional communication handling, whereas local function calls do not.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What role do client stub procedures play in RPCs?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What are the two main communication modes in RPCs?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What are the advantages of using non-blocking RPCs?

A

Non-blocking RPCs allow for concurrency and parallelism;enabling the client to perform other computations while waiting for the server’s response.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What is the concept of mutual exclusion in synchronization?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What are atomic counting variables and how do they relate to synchronization?

A

Atomic counting variables, or semaphores, allow up to n processes to use a resource simultaneously. They help manage access to shared resources in synchronization.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What is the purpose of a barrier in synchronization?

A

A barrier ensures that a set of processes cannot proceed until all participating processes have reached the barrier;coordinating their execution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

How is distributed synchronization achieved?

A

Distributed synchronization requires message passing between processes on different computers;often using token passing to manage mutual exclusion and barriers.

29
Q

What problems can arise in distributed synchronization particularly regarding process failures?

A

If a process fails other processes may wait indefinitely for messages that will never arrive leading to a situation known as deadlock which can typically only be resolved with a timeout.

30
Q

What are transactions and why are they important in distributed systems?

A

Transactions ensure reliable access and modification of persistent data;preventing uncertain intermediate states;especially in scenarios involving multiple servers.

31
Q

What are the ACID properties of transactions?

A

The ACID properties ensure:

    Atomicity: Transactions are either completed in full or not at all.
    Consistency: Transactions bring the database from one valid state to another.
    Isolation: Concurrent transactions do not interfere with each other.
    Durability: Changes made by a transaction persist even in case of failure.
32
Q

What happens if a transaction fails during execution?

A

If a transaction fails;the system performs a rollback to restore the data to its state before the transaction began;ensuring no partial changes are made.

33
Q

How are distributed transactions coordinated across multiple servers?

A

Distributed transactions require global coordination to ensure either all interdependent transactions succeed or a global rollback is performed. This can be managed by a client or an intermediate coordinator server.

34
Q

What is the risk in a distributed transaction when multiple servers are involved?

A

If one server fails during a distributed transaction;it can lead to inconsistencies and incomplete operations across the participating servers;necessitating robust coordination protocols.

35
Q

What is the primary architectural focus of service-oriented architectures (SOAs)?

A

The primary focus of SOAs is on server interaction, also known as server orchestration, where loosely coupled services communicate over messages.

36
Q

How do components in a service-oriented architecture (SOA) communicate with each other?

A

Components in an SOA communicate with each other using messages and services are announced and described via global directories.

37
Q

What is the purpose of global directories in SOAs?

A

Global directories provide descriptions of each application programming interface (API) function allowing services to be easily found and consumed by users.

38
Q

How does the microservices paradigm extend the concept of SOA?

A

The microservices paradigm extends SOA by building distributed applications from small loosely coupled services, focusing on fine-grained modularity and lightweight protocols.

39
Q

What are the benefits of using microservices in application development?

A

Microservices simplify development, testing, and maintenance through clearly defined interfaces and can enhance parallelism and fault tolerance through redundant instantiation.

40
Q

What role does middleware play in service-oriented architectures?

A

Middleware provides a service-oriented layer that allows users to access shared services ensuring high portability with flexible standards.

41
Q

What are web services, and how do they relate to SOAs?

A

Web services are uniform access points to remote and distributed services, often realized through SOAs and using protocols like RPC, XML, and SOAP.

42
Q

Describe the stateless nature of most web services.

A

Most web services are stateless, meaning they do not maintain any inner state, and return the same result for the same call with identical parameters.

43
Q

What standard is used for describing web services in a portable manner?

A

The Web Service Description Language (WSDL) is the standard used to describe web services specifying their functions and input/output message.

44
Q

Differentiate between web applications and web services.

A

Web applications focus on the human user with a presentation layer while web services facilitate computer-to-computer interaction without direct user engagement.

45
Q

What is cloud computing, and how does it relate to web applications?

A

Cloud computing refers to the processing that occurs on remote servers (the cloud), typically transparent to users, while web applications interact directly with users.

46
Q

Name and describe the three primary forms of cloud computing.,


A

A)Software as a Service (SaaS): Applications that serve human users directly, like Microsoft Office 365 and eBay, shifting data processing to the cloud.
B)Platform as a Service (PaaS): Services aimed at developers, supporting the entire software lifecycle, such as Google App Engine and Microsoft Azure.
C)Infrastructure as a Service (IaaS): Offers abstracted cloud infrastructure resources like virtual servers and storage, with examples including Amazon EC2 and DigitalOcean.

47
Q

What is elastic scaling in cloud computing?

A

Elastic scaling refers to the dynamic horizontal scaling of services in the cloud allowing resources to be adjusted based on demand efficiently.

48
Q

How do virtualization and server farms contribute to efficient resource use in cloud computing?

A

Virtualization allows multiple virtual instances to run on the same physical server, enhancing resource efficiency, while server farms consist of many similar computers working closely together to provide cloud services.

49
Q

What are the implications of the transparency of data center locations in cloud computing?

A

While users may not know the exact locations of data centers, services are typically hosted in dedicated facilities, ensuring reliability and performance while maintaining user anonymity.

50
Q

What are server farms in cloud computing?

A

Server farms are groups of servers located in the cloud that host virtual servers offering services to various clients;with communication primarily directed outward toward those clients.

51
Q

How do high-performance computing (HPC) data centers differ from typical cloud computing environments?

A

HPC data centers consist of high-performance servers that work together in an inwardly oriented manner to solve complex computing tasks;breaking them down into subtasks that require regular exchange of intermediate results.

52
Q

What is a computer cluster and what is its purpose?

A

A computer cluster is a hardware architecture and network topology that connects multiple computers to work together on parallel computing tasks, typically involving similar subtasks that require fast communication.

53
Q

How does parallel processing work in the context of weather forecasting using a computer cluster?

A

In weather forecasting;the atmosphere is divided into volume elements;and each computer in the cluster simulates the flow in its assigned element

54
Q

What are the trade-offs involved in using more computers for parallel processing?

A

Using more computers can increase accuracy and speed but also introduces more communication overhead;which may negate the benefits if the network cannot handle the increased activity efficiently.

55
Q

What is the difference between weak scaling and strong scaling in parallel processing?

A

Weak scaling focuses on using more computers to increase result accuracy while maintaining constant calculation time;whereas strong scaling uses more computers to reduce calculation time while maintaining constant accuracy.

56
Q

How is speedup calculated in parallel processing?

A

Speedup is calculated by comparing the time.
Speedup=T(n)T(1) .

57
Q

Why might actual speedup in real-world applications be less than optimal?

A

Actual speedup may be less than optimal due to overhead from additional communication required to exchange intermediate results among computers;which can slow down overall performance.

58
Q

What programming standard is commonly used for parallel programming in computer clusters?

A

The Message-Passing Interface (MPI) is the dominant programming standard used for facilitating communication between computers in a cluster during parallel processing.

59
Q

What does the MPI standard encompass besides message communication?

A

The MPI standard covers session management;data representation;and input/output functions;enabling efficient communication and synchronization in distributed systems.

60
Q

What is the single-program-multiple-data paradigm in MPI?

A

In the single-program-multiple-data paradigm;the programmer writes one program that runs on all computers in the cluster;allowing processes to communicate and exchange data via messages.

61
Q

How are processes addressed in an MPI session?

A

Each process in an MPI session is assigned a unique rank number;starting from zero;which is used to address and communicate with the processes without needing IP addresses and port numbers.

62
Q

What functionalities does MPI provide for communication and synchronization?

A

MPI provides over 400 functions;including blocking and non-blocking communication;collective communication patterns (like broadcasting);and synchronization functions (such as barriers).

63
Q

Name some well-known open-source libraries developed based on the MPI standard.

A

Well-known open-source MPI libraries include Open MPI;MPICH;MVAPICH;and ParaStation MPI.

64
Q

What is the role of high-performance networks in computer clusters?

A

High-performance networks facilitate extremely fast communication between neighboring computers in a cluster;essential for efficiently exchanging intermediate results during parallel processing tasks.

65
Q

What is the current state of the term “distributed systems”?

A

The term is in a constant state of change and is expanding due to the pervasiveness of the internet;evolving into a meta-subject covering various aspects of distributed applications and system architectures.

66
Q

What role does the internet play in the evolution of distributed systems?

A

The internet’s pervasiveness drives the expansion and evolution of the term “distributed systems” leading to new applications and architectures.

67
Q

How has the use of computers in networks changed over time?

A

In the past;computers in networks were mostly stationary;but now there is an increasing number of mobile computers in use.

68
Q

What role do radio networks play in mobile computing?

A

Radio networks are crucial for mobility;as they provide connectivity almost everywhere through modern mobile networks and Wi-Fi standards.