Distributed systems EXAM Questions and Answers 2024/2025 | verified
Benefits of distributed systems - ✔️✔️- resource sharing (one server many clients)
- economical
- reliablity
- availability
- scalability
Consequences of distributed systems - ✔️✔️- concurrency
-> (distributed computers perform their tasks autonomously, system accessed by multiple users
simultaneously)
- no global clock
-> (clocks on individual computers operate independently
-> communicate via message passing, but this limits accuracy)
- independent failures
-> some components of system may fail while others still run
-> failures of come computers may not be known to others immediately
Computer networks - ✔️✔️- The internet
- Intranets
- Wireless networks
Intranets - ✔️✔️- portion of the Internet that is separately administered by organisations
- features include:
-> a boundary that can be configured to enforce local security policies
-> several local area connections (LAN's) linked by backbone connections
-> A connection to the Internet via a route allowing users within the intranet to access services on the
Internet
-> firewalls to protect an intranet by preventing unauthorised messages leaving or entering by filtering
incoming/outgoing messages
Distributed System definition - ✔️✔️A system in which hardware or software components located at
networked computers communicate and coordinate their actions only by passing messages
Difference between computer networks and distributed systems - ✔️✔️- a computer network is a
collection of spatially separated , interconnected computers that exchange messages based on specific
protocols
- a distributed system is multiple computers on the network working together as a system
Wireless networking - ✔️✔️- allows the integration of small portable computing devices
Two popular mediums:
- mobile computing (nomadic computing)
- ubiquitous computing
WWW 3 components - ✔️✔️- HyperText Markup Language (HTML) - specifies content and layout
- Uniform Resource Locators (URLs) - identify resources stored on the web
,- HyperText Transfer Protocol (HTTP) - used for transferring resources between web servers and clients
(browsers)
Dynamic Pages - ✔️✔️- allow users to interact with resources by taking user input, executing programs
and returning results
- Programs executed can take different forms:
-> Common Gateway Program (CGI)
-> Servlet
-> Downloaded code - Javascript
Distributed System Challenges - ✔️✔️- Heterogeneity
- Openness
- Security
- Scalability
- Failure Handling
- Concurrency
- Transparency
Heterogeneity - ✔️✔️- DS use hardware and software resources of varying characteristics
-> networks
-> computer hardware
-> operating systems
-> programming languages
-> implementation by different developers
Approaches to solve:
- using standard protocols
- using agreed message formats and data types
- adhering to an agreed upon application program interface (APIs)
- using middleware
- portable code (can use VM's to run on any OS)
Middleware - ✔️✔️= a software layer between the distributed application and the operating systems that
provides a programming abstraction and masks the heterogeneity of the underlying networks, hardware,
OS and programming languages
Services:
- Communication service: provide access transparent
- Naming service: allows remote resources to be looked up by name similar to directories
- Facilities for storage: Facilities for data persistence
- Distributed Transactions: If an operation fails all referenced data remains unchanged
- Security: Protection against various kinds of security threats
Openness - ✔️✔️- refers to the ability to extend the system in difference ways by adding hardware or
software resources
Approaches:
- publishing key interfaces
- allowing a uniform communication mechanism to communicate over published interfaces
- ensuring all implementations adhere to the published standardds
, Security - ✔️✔️- 3 Aspects:
-> Confidentiality (protection against disclosure to unauthorised individuals)
-> Integrity (protection against alteration and corruption)
-> Availability (protection against interference with means of access)
Security Mechanisms
- Encryption
- Authentication
- Authorisation
Security challenges:
- Denial of service attacks
- Security against mobile code
Scalability - ✔️✔️Challenges:
- cost of physical resources, dobuling resources should double capability
- controlling the performance loss, complexity of algorithms should be scalable
- Resources should not run out (ie. IP addresses)
- Avoiding performance bottlenecks - decentralised algorithms should be used to avoid performance
bottlenecks
Failure Handling - ✔️✔️Approaches:
- detecting
- masking
- tolerating
- recovery
- redundancy
Concurrency - ✔️✔️- multiple clients can access same resources at same time
- one approach is to make access sequential but this slows down the system
- semaphores can be used
Transparency - ✔️✔️- access transparency
- location transparency
- concurrency transparency
- replication transparency
- failure transparency
- mobility transparency
- performance transparency
- scaling transparency
Interfaces - ✔️✔️- programmers are only concerned with the abstraction offered by the interface, they
are not aware of the implementation details
- programmers also don't need to know underlying programming language or platform used to implement
the service
Communication paradigms - ✔️✔️- interprocess communication are the underlying primitives
-> shared memory, sockets
Benefits of distributed systems - ✔️✔️- resource sharing (one server many clients)
- economical
- reliablity
- availability
- scalability
Consequences of distributed systems - ✔️✔️- concurrency
-> (distributed computers perform their tasks autonomously, system accessed by multiple users
simultaneously)
- no global clock
-> (clocks on individual computers operate independently
-> communicate via message passing, but this limits accuracy)
- independent failures
-> some components of system may fail while others still run
-> failures of come computers may not be known to others immediately
Computer networks - ✔️✔️- The internet
- Intranets
- Wireless networks
Intranets - ✔️✔️- portion of the Internet that is separately administered by organisations
- features include:
-> a boundary that can be configured to enforce local security policies
-> several local area connections (LAN's) linked by backbone connections
-> A connection to the Internet via a route allowing users within the intranet to access services on the
Internet
-> firewalls to protect an intranet by preventing unauthorised messages leaving or entering by filtering
incoming/outgoing messages
Distributed System definition - ✔️✔️A system in which hardware or software components located at
networked computers communicate and coordinate their actions only by passing messages
Difference between computer networks and distributed systems - ✔️✔️- a computer network is a
collection of spatially separated , interconnected computers that exchange messages based on specific
protocols
- a distributed system is multiple computers on the network working together as a system
Wireless networking - ✔️✔️- allows the integration of small portable computing devices
Two popular mediums:
- mobile computing (nomadic computing)
- ubiquitous computing
WWW 3 components - ✔️✔️- HyperText Markup Language (HTML) - specifies content and layout
- Uniform Resource Locators (URLs) - identify resources stored on the web
,- HyperText Transfer Protocol (HTTP) - used for transferring resources between web servers and clients
(browsers)
Dynamic Pages - ✔️✔️- allow users to interact with resources by taking user input, executing programs
and returning results
- Programs executed can take different forms:
-> Common Gateway Program (CGI)
-> Servlet
-> Downloaded code - Javascript
Distributed System Challenges - ✔️✔️- Heterogeneity
- Openness
- Security
- Scalability
- Failure Handling
- Concurrency
- Transparency
Heterogeneity - ✔️✔️- DS use hardware and software resources of varying characteristics
-> networks
-> computer hardware
-> operating systems
-> programming languages
-> implementation by different developers
Approaches to solve:
- using standard protocols
- using agreed message formats and data types
- adhering to an agreed upon application program interface (APIs)
- using middleware
- portable code (can use VM's to run on any OS)
Middleware - ✔️✔️= a software layer between the distributed application and the operating systems that
provides a programming abstraction and masks the heterogeneity of the underlying networks, hardware,
OS and programming languages
Services:
- Communication service: provide access transparent
- Naming service: allows remote resources to be looked up by name similar to directories
- Facilities for storage: Facilities for data persistence
- Distributed Transactions: If an operation fails all referenced data remains unchanged
- Security: Protection against various kinds of security threats
Openness - ✔️✔️- refers to the ability to extend the system in difference ways by adding hardware or
software resources
Approaches:
- publishing key interfaces
- allowing a uniform communication mechanism to communicate over published interfaces
- ensuring all implementations adhere to the published standardds
, Security - ✔️✔️- 3 Aspects:
-> Confidentiality (protection against disclosure to unauthorised individuals)
-> Integrity (protection against alteration and corruption)
-> Availability (protection against interference with means of access)
Security Mechanisms
- Encryption
- Authentication
- Authorisation
Security challenges:
- Denial of service attacks
- Security against mobile code
Scalability - ✔️✔️Challenges:
- cost of physical resources, dobuling resources should double capability
- controlling the performance loss, complexity of algorithms should be scalable
- Resources should not run out (ie. IP addresses)
- Avoiding performance bottlenecks - decentralised algorithms should be used to avoid performance
bottlenecks
Failure Handling - ✔️✔️Approaches:
- detecting
- masking
- tolerating
- recovery
- redundancy
Concurrency - ✔️✔️- multiple clients can access same resources at same time
- one approach is to make access sequential but this slows down the system
- semaphores can be used
Transparency - ✔️✔️- access transparency
- location transparency
- concurrency transparency
- replication transparency
- failure transparency
- mobility transparency
- performance transparency
- scaling transparency
Interfaces - ✔️✔️- programmers are only concerned with the abstraction offered by the interface, they
are not aware of the implementation details
- programmers also don't need to know underlying programming language or platform used to implement
the service
Communication paradigms - ✔️✔️- interprocess communication are the underlying primitives
-> shared memory, sockets