All of the nitty gritty facts and definitions for Distrbuted Systems
What are the two definitions for a “Distributed System”?
[1] A collection of autonomous computer elements that appear to their users to function as a single coherent system.
[2] A system in which components located at networked computers communicate only through passing messages.
What is the difference between a “Distributed System” and a “Decentralised System”?
A “Decentralised System” is a networked computer system in which resource are necessarily spread across multiple computers. For example, torrenting uses peer-to-peer networking which is necessarily spread across multiple computers.
A “Distributed System” is a networked computer system in which resources are sufficiently spread across multiple computers. Think for example a content distribution site like Netflix, Netflix only needs to spread its resources on as many servers as is sufficient to serve its userbase within defined tolerances.
What is meant by the term “Transparency” in the context of a distributed system?
Transparency is the phenomenon by which distributed systems attempt to hide the fact that its processes and resources are physically distributed across multiple computers, possibly seperated by large distances.
How is transparency acheived in a distributed system?
Through the middleware
What are the 7 different forms of transparency in a distributed system?
Access Transparency:
Hides differences in data representation and in how an object is accessed
Location Transparency:
Hides where an object is physically and or virtually located
Migration Transparency:
Hides the fact that an object may have been moved to another location
Relocation Transparency:
Hides the fact that an object may actively be relocated to another location while in active use
Replication Transparency:
Hides the fact that an object might be replicated, or that the object being accessed is a replica
Concurrency Transparency:
Hides that an object may be shared by several competitive users (i.e. users that might be trying to access the same object concurrently)
Failure Transparency:
Hides failures and recovery of an object
What is meant by an “Open Distributed System”?
A system that offers components that can easily be used by, or integreted into other systems. An open distributed system itself will often consist of components that orignate from elsewhere.
Open distributed systems should:
Conform to well-defined interfaces
Easily interoperate
Support portability of applications
Be Easily extensible
What is meant by the “Scalability” of a distributed system?
A distributed is scalable (in size) if it remains effective after a significant increase in the number of users/resources.
Scalability is said to be poor if the cost of supporting n users is worse than O(n).
What are the 9 fallacies of distributed systems?
The network is reliable
The network is secure
The network is homogeneous
The topology of the network doesn’t change
Latency is zero (can be ignored)
Bandwidth is considered to be infinite
Transport cost is zero
There is only one administrator
?
What are the three types of distributed systems?
High Performance Distrbuted Computing Systems
Distributed Information Systems
Distributed Systems for Pervasive Computing
What are the 4 main layers of a Cloud Computing Service?
Hardware: Processors, routers, cooling systems etc. (i.e. the baremetal).
Infrastructure: Deploys virtualisation techniques such as virtual machines, virtual storage systems etc.
Platform: Provides higher level services such as software development kits and environments.
Application: Actual applications (for example office suits, word processing, etc.)
What is meant by the ACID acronym?
Atomic:
Processes occur as “all or nothing”, either all stages of the process are successfully applied/executed, or non at all.
Consistent:
The process does not change/violate system invarients.
Isolated:
Concurrent processes/transactions do not interfere with each other.
Durable:
Any changes made by processes will persist even if the system encounters a failure.
What are the 4 main architectural styles of distributed systems?
Layered Architecture
Object-Oriented Architecture
Resource-Centred Architecture
Event-Based Architecture (a.k.a Publish-Subscribe Architecture)
What is meant by the “PAD” model?
The PAD model is a layered application architecture most commonly used by client-server applications. It consists of three layers:
Presentation Layer:
Contains everything required to interface with the user (i.e. user interface)
Application Layer:
Contains all of the business logic
Data Layer:
Concerned with the storage (and retreival) of data
Explain the difference between a “Software Architecture” and a “System Architecture”
Software Architecture:
Describes how the various software components are to be organised (in relation to each other).
System Architecture:
The specifics of how a software architecture is deployed onto hardware is known as the “System Architecture”
Define what a “Web Service” is
A web service is a piece of business logic that is located on the internet or on an intranet, which is accessed using a standard data representation format such as XML or JSON, through standard protocols such as HTTP or SMTP.
A web service implements Service-Oriented Architecture