Lesson 1: Introduction Flashcards
Give an informal definition of a distributed system
A distributed system is a collection of independent computers that appears to its user as a single coherent system.
-> build a powerful system out of many simpler systems
What is a remote invocation?
A remote invocation is the complete interaction between client and server to process a single request
What is a server?
It is a running process on a networked computer.
It accepts requests to perform a service and will respond appropriately.
What is a service?
= part of a computer system managing a collection of related resources, presenting their functionality to users and applications.
Define a “client”
It is a running process on a networked computer sending service requests to servers.
Give 6 reasons to choose for distributed systems (keywords)
- Cost
- Capability
- Concurrency
- Reliability
- Integration
- Distribution
Explain why “cost” is a reason to choose for distributed systems
Networked commodity systems can render the best performance/$
Explain why “capability” is a reason to choose for distributed systems
Many computational problems are too large for any single system because of memory, data storage and computational requirements
Explain why “concurrency” is a reason to choose for distributed systems
Many ‘large’ problems have inherent options for parallelism
Explain why “reliability” is a reason to choose for distributed systems
Distributing redundant components minimizes the probability faults impact the user.
Explain why “integration” is a reason to choose for distributed systems
- For organizations to interact, their systems need to interact
- Highly specialized infrastructures need to be integrated and shared
Explain why “distribution” is a reason to choose for distributed systems
e-mail, WWW,… are inherently distributed as users are geographically spread
What are todays problems and challenges with distributed systems?
1) No limit on spatial extent, difficult to manage
2) No global time notion
3) Almost always concurrent execution
4) (partial) failures likely to happen
What are the the two main differences between coupled and de-coupled architectures?
In coupled architectures components are tightly linked with each other and removing/adding a component is non-trivial.
In de-coupled architectures components are loosely linked with each other and removing/adding a component is easier and can happen frequently
Give the two coupled architectures seen in class.
We have seen the layered and object-based architecture.
What is the layered architecture?
It is a coupled architecture.
-> layer only interacts with neighbor
Give the ups and downs of the layered architecture.
+ reduced number of interfaces, dependencies
+ easy replacement of a layer
[-] possible duplication of functionality
What is the object-based architecture?
It is a coupled architecture.
Interacting objects, no predefined interaction patterns
Give the ups and downs of the object-based architecture.
+ highly flexible
- complex to manage and maintain
What is the event-based architecture?
It is a decoupled architecture.
“publish-subscribe” style
Often used to integrate legacy systems
Give the ups and downs of the event-based architecture
+ loosely coupling of components
What is the data-centric architecture?
It is a de-coupled architecture. The only interaction is through a shared database
Give the ups and down of a data-centric architecture.
+ loosely coupling of components
- possibly slow (central bottleneck, locking,…)
What are peer-to-peer architectures?
Architectures to deliver a service that is fully decentralized and self-organizing.
Processes (nodes) are organized in an overlay network (virtual network)
Give 6 characteristics of the peer-to-peer architecture
- Each node fulfills both a client and a server role
- Nodes and data item keys are assigned Globally Unique Identifiers
- Nodes have no or limited direct knowledge on other nodes
- Application-level message routing
- Nodes are volatile
- Structured or unstructured
what is the service interface?
The service interface restricts access to the underlying resources of the service through a well-defined set of operations.