Cringe Flashcards
What is the definition of Distributed Systems
A distributed system is a collection of autonomous computing
elements that appears to its users as a single coherent system.
What are some characteristic Features of Distributed Systems
- Autonomous computing elements, also referred to as nodes, be
they hardware devices or software processes. - Single coherent system: users or applications perceive a single
system ⇒ nodes need to collaborate. - Its easily expandable, Adding new computers is hidden from users
- It has continuous availability, Failures in one component can be covered by other components
- It is supported by middleware
What are some features of Distributed Systems
- No shared memory – message-based communication
- Each runs its own local OS
- Heterogeneity
What does a distributed system look like?
- The distributed system “looks like” a single computer rather than a
collection of separate computers. It Hide internal organization, communication details and Provides a uniform interface
What Goals does Distributed Systems want to accomplish
- Availability (support sharing of resources)
- Distribution transparency
- Openness
- Scalability
What is Goal 1 of Distributed Systems (Resource Availability) Entail?
- Support user access to remote resources (printers, data files, web pages, CPU cycles) and the fair sharing of the resources
- Economics of sharing expensive resources
- Performance enhancement – due to multiple processors; also due to ease of collaboration and info exchange – access to remote services
- Resource sharing introduces security problems.
What is Goal 2 of Distributed Systems (Distribution Transparency) Entail?
- Software hides some of the details of the distribution of system resources. This makes the system more user friendly
- A distributed system that appears to its users & applications to be a single computer system is said to be transparent. This means that Users & apps should be able to access remote resources in the same way they access local resources.
- Transparency has several dimensions.
What are the different types of distribution transparency?
- Access: Hide differences in data representation and how an object is accessed
- Location: Hide where an object is located
- Relocation: Hide that an object may be moved to another location while in use
- Migration: Hide that an object may move to another location
- Replication: Hide that an object is replicated
- Concurrency: Hide that an object may be shared by several independent users
- Failure: Hide the failure and recovery of an object
What is Goal 3 of Distributed Systems (Openness) Entail?
- Be able to interact with services from other open systems, irrespective of the underlying environment:
- Interface Definition/Description Languages (IDL): used to describe the interfaces between software components, usually in a distributed system
- Interoperability: the ability of two different systems or applications to work together
- Portability: an application designed to run on one distributed system can run on another system that implements the same interface.
- Extensibility: Easy to add new components, features
What is Goal 4 of Distributed Systems (Scalability) Entail?
- Dimensions that may scale with respect to size
- Dimensions that may scale With respect to geographical distribution
- Dimensions that may scale With respect to the number of administrative organizations spanned
- A scalable system still performs well as it scales up along any of the three dimensions.
- Scale-up vs Scale-out
What are pitfalls in relation to the development of distributed systems?
- Many distributed systems are needlessly complex caused by mistakes that required patching later on. Many false assumptions are often made.
What are the many false assumptions made when developing distributed Systems
- The network is reliable
- The network is secure
- The network is homogeneous
- The topology does not change
- Latency is zero
- Bandwidth is infinite
- Transport cost is zero
- There is one administrator
What are the three types of distributed Systems?
- High performance distributed computing systems (HPDC)
- Distributed information systems (DIS)
- Distributed systems for pervasive computing (Pervasive)
What is HDPC in relation to Parallel Computing
- High-performance distributed computing started with parallel computing.
What is HDPC in relation to Cluster computing
- Essentially a group of high-end systems connected through a LAN
- Homogeneous: same OS, near-identical hardware
- Single managing node
What is HDPC in relation to Grid computing
The next step: lots of nodes from everywhere. These are Heterogeneous, Dispersed across several organizations, Can easily span a wide-area network. Remember, To allow for collaborations, grids generally use virtual organizations. In essence, this is a grouping of users (or better: their IDs) that will allow for authorization on resource allocation.
What is HDPC in relation to cloud computing?
Its resource utilisation is: Elasticity, with dynamic resource provisioning. Furthermore its cost efficient as you pay for the servers using PAYG (pay as you go). These servers would be things like AWS or Microsoft Azure.
What is the situation, basic approach and next step of Distributed Information Systems when integrating applications
- Situation: Organizations confronted with many networked applications, but achieving interoperability was painful.
- Basic approach:
- A networked application is one that runs on a server making its services available to remote clients. Simple integration: clients combine requests for (different) applications; send that off; collect responses, and present a coherent result to the user.
- RPC (functions)
- RMI (Objects)
- MOM (Publish/Subscribe)
- Next Step: Allow direct application-to-application communication, leading to Enterprise Application Integration.
What could an example be of a Distributed Information System: Enterprise Application Integration of Nested Transactions
How would you integrate applications in a Distributed Information System?
What is a Distributed Pervasive System?
A Distributed Pervasive System is a network of interconnected devices or nodes, often mobile or embedded in the environment, that seamlessly provide services and exchange information without requiring explicit user commands, thereby integrating computing into the user’s everyday activities and environment. They naturally blend into the user’s environment.
They also have three overlapping subtypes. These are:
- Ubiquitous computing systems: pervasive and continuously present, i.e., there is a continuous interaction between system and user.
- Mobile computing systems: pervasive, but emphasis is on the fact that devices are inherently mobile
- Sensor (and actuator) networks: pervasive, with emphasis on the actual (collaborative)sensing and actuation of the environment.
What are the core elements of a ubiquitous computing system?
- (Distribution) Devices are networked, distributed, and accessible in a transparent manner
- (Interaction) Interaction between users and devices is highly unobtrusive
- (Context awareness) The system is aware of a user’s context in order to optimize interaction
- (Autonomy) Devices operate autonomously without human intervention, and are thus highly self-managed
- (Intelligence) The system as a whole can handle a wide range of dynamic actions and interactions
What are the distinctive features of a mobile computing system?
- A myriad of different mobile devices (smartphones, tablets, GPS devices, remote controls, active badges.
- Mobile implies that a device’s location is expected to change over time ⇒change of local services, reachability, etc. Keyword: discovery.
- Communication may become more difficult: no stable route, but also perhaps no guaranteed connectivity ⇒ disruption-tolerant
networking.
What are the characeristics of a sensor network?
- The nodes to which sensors are attached are: Many (10s - 1000s) and they are Simple (small memory/compute/communication capacity) Often battery-powered (or even battery-less).
What are the three types of System models?
- Physical models: consider the types of computers and devices that constitute a system and their interconnectivity, without details of specific technologies.
- Architectural models: describe a system in terms of the computational and communication tasks performed by its computational elements; the computational elements being individual computers or aggregates of them supported by appropriate network interconnections. Client-server and peer-to-peer are two of the most commonly used forms of architectural model for distributed systems.
- Fundamental models take an abstract perspective in order to describe solutions to individual issues faced by most distributed systems.
How do physical models work?
How do Architectural Models work?
They work under the framework WWHP. This stands for:
- Who: who is communicating?
- How: How to communicate?
- What: What are the roles and responsibilities?
- Placement: How the processes are mapped to physical infrastructure?
What is Architectural Models - who?
What is Architectural Models - how?
What is Architectural Models - What?
What is Architectural Models - Placement?
What is architectural styles?
A style is formulated in terms of (replaceable) components with well-defined interfaces the way that components are connected to each other the data exchanged between components. It is also formulated in terms of how these components and connectors are jointly configured into a system.
What is a connector?
A mechanism that mediates communication, coordination, or cooperation among components. For Example: facilities for (remote) procedure call, messaging, or streaming.
What does layered Architecture look like?
What does Software and hardware service layers in distributed systems look like?
What do Two-tier and three-tier architectures look like?
What is two-party communication?
This is communication between two parties, usually between a server and a client.
What is application layering?
What is an example of application layering
What is the problem and Solution for using legacy to build middleware?
- Problem: - The interfaces offered by a legacy component are most likely not
suitable for all applications - Solution: A wrapper or adapter offers an interface acceptable to a client application. Its functions are transformed into those available at the component.
What is the problem and Solution for using legacy to build middleware?
- Problem: - The interfaces offered by a legacy component are most likely not
suitable for all applications - Solution: A wrapper or adapter offers an interface acceptable to a client application. Its functions are transformed into those available at the component.
How do you organise wrappers?
What is the problem with Developing adaptable middleware
Middleware contains solutions that are good for most applications ⇒ you may Developing adaptable middleware want to adapt its behaviour for specific applications.
What are the Centralized system architectures
What are some Multi-tiered centralized system
What are the Alternative organizations
What is Structured P2P?
What is Unstructured P2P?
What is Flooding versus random walk
What is Super-peer networks? These are also called Organzied P2P
What is Edge-server architecture?
What is Collaboration In terms of The BitTorrent case
What are the 3 fundamental models?
What does the basic networking model look like?
What are the Low- Level Layers?
What is the transport layer?
What is the Middleware Protocols