What is a distributed system?
A collection of autonomous computing elements what appear to its users as a single coherent system
What is a middleware?
A layer of software that separates applications from the underlying platforms
What are 5 goals of distributed systems?
What a does “distribution transparent” mean
Give an example
The system hides the fact that processes and resources are physically distributed
Examples:
What does a “open distributed system” mean
A system that offers components that can be easily used or integrated into other systems
Properties of an open system:
What does a “scalable distributed system” mean
Scalability is a system’s ability to expand along three axes:
Being able to add resources and improve the performance of the system
What are 3 anti-patterns for scalable distributed systems?
What are primitive common rules to improve scalability in a distributed system?
Batch processing
Replication of microservices
Partitioning of requests
Load balancing
The idea is to avoid the anti-patterns
What are the 8 fallacies (false beliefs) of distributed systems? (given the network)
As in, what are NOT features of a distributed system?
What does it mean for a network in a distributed system to be homogeneous
For the connections between microservices to all be the same bandwidth and latency
In high performance computing, there are multiprocessor systems and multicomputer systems. Describe the difference between a multiprocessor and a multicomputer system.
A multiprocessor shares memory across the computing units, whereas a multicomputer passes messages between computing units (each computing unit has its own memory block)
Multiprocessor Systems = parallel computing
Multicomputer Systems = distributed computing
What are characteristics of a shared memory system? (a system in which computing units share memory)
What are characteristics of Message passing systems (a system in which each computing unit has its own memory block)
What are “cluster computing systems”?
Cluster computing frameworks distribute CPU or I/O-intensive
jobs across multiple servers
Just like Hadoop
What are the 4 computing layers that a cloud system is divided into? (think SaaS, IaaS, PaaS, HaaS)
Application - Web services
Platform - Software framework, Databases
Infrastructure - VMs, Blob Storage
Hardware - CPU, Memory, Disk
Example of PaaS (Platform as a service)
AWS, Azure, GCP, Digial Ocean
Example of IaaS (Infrastructure as a service)
AWS S3, AWS EC2, etc
Describe how middleware can be used as a communication facilitator between client applications and server applications
The middleware layer sits in between the clients and the servers, interfaces with the client applications, and the server-side apps