Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5
Architectures
Quiz
1. Describe the fundamental components of a distributed system and
explain how architecture relates to their organization.
2. What is the primary distinction between software architecture and
system architecture in the context of distributed systems? Provide one example of each.
3. Explain the layered software architecture. What is the general flow of
requests and responses within this architectural style?
4. How does communication typically occur in an event-based
architecture? What role does an intermediary service play in this model?
5. Contrast a centralized architecture with a decentralized architecture.
Provide a brief example of a system that might utilize each.
6. Describe the concept of vertical distribution in decentralized
architectures. How does it contribute to scalability and flexibility?
7. Explain the key characteristic of a peer-to-peer architecture. How do
nodes in this model function differently compared to a client-server model?
8. What is the purpose of an overlay network in the context of large-scale
peer-to-peer systems? Briefly describe the difference between structured and unstructured overlays.
9. Give an example of a hybrid architecture discussed in the text and
explain how it combines features of different architectural styles.
10. What is the core idea behind self-management in distributed
systems, and what is the underlying principle that enables it?
Quiz Answer Key
1. A distributed system is composed of software components, processing
nodes, and networks. Architecture deals with how these elements are organized and how the software components are distributed over the hardware components, defining their structure and interrelationships.
2. Software architecture focuses on how the software components of a
system are organized and interact (e.g., layered architecture). System architecture focuses on how these software components are implemented on the underlying hardware infrastructure (e.g., centralized client-server architecture).
3. In a layered software architecture, the system is divided into
hierarchical layers of functions. Upper layers request services from the layer directly below them, and lower layers provide responses. Control flows downwards for requests and upwards for responses.
4. Communication in an event-based architecture happens through the
sending (publishing) and receiving (subscribing) of events. An intermediary service (like a message broker) is often required to route events from publishers to interested subscribers, without the processes needing direct knowledge of each other.
5. A centralized architecture has one or more server processes providing
services to multiple client processes (e.g., a web server). A decentralized architecture distributes processing across multiple nodes without a central server (e.g., a peer-to-peer file-sharing system).
6. Vertical distribution in decentralized architectures extends the client-
server model by distributing the traditional server functionality across multiple servers arranged in tiers. This improves scalability by reducing the load on each server and enhances flexibility by allowing independent modification of each tier's functionality.
7. In a peer-to-peer architecture, all processes (peers) have the same
role, acting as both clients and servers. Each peer can both send requests to and process requests from other peers, and they typically provide the same logical services.
8. An overlay network in P2P systems is a virtual network formed by
nodes to manage the complexity of a large number of participants and the information they offer. In unstructured overlays, neighbors are often chosen randomly, while in structured overlays, neighbor selection follows a specific structure based on identifiers.
9. A superpeer network is a hybrid architecture where a few powerful
nodes (superpeers) form a P2P network, and regular peers act as clients to these superpeers. This combines the benefits of P2P systems with a simplified indexing mechanism managed by the superpeers.
10. The core idea of self-management in distributed systems is to
enable automatic adaptation to changes through high-level feedback- control systems. The underlying principle is to monitor the system, analyze its state, plan necessary adjustments, and execute these changes autonomously.
Essay Format Questions
1. Compare and contrast two different software architectural styles (e.g.,
layered and event-based), discussing their organizational principles, communication mechanisms, and suitability for different types of distributed applications.
2. Analyze the benefits and drawbacks of centralized and decentralized
system architectures. Under what circumstances might one be preferred over the other? Provide specific examples to support your arguments.
3. Discuss the evolution from traditional client-server architectures to
more complex decentralized architectures like peer-to-peer systems and overlay networks. What were the key driving forces behind these changes, and what challenges did they aim to address?
4. Explain the concept of hybrid architectures in distributed systems. Why
are they becoming increasingly common? Illustrate your answer with at least two examples of hybrid architectures and discuss the advantages they offer.
5. Critically evaluate the importance of self-management in modern
distributed systems. What are the key aspects of self-management, and what challenges need to be addressed to build truly autonomic and self-star distributed systems?
Glossary of Key Terms
Distributed System: A collection of independent computing entities
that cooperate to accomplish a shared goal.
Software Architecture: The high-level structure of the software
components of a system and their interactions.
System Architecture: How the software components of a distributed
system are implemented on the underlying hardware infrastructure (processing nodes and networks). Centralized Architecture: A system architecture where one or more server processes provide services to multiple client processes from a central location.
Decentralized Architecture: A system architecture where processing
and data are distributed across multiple nodes in a network, without reliance on a central server.
Hybrid Architecture: A system architecture that combines
characteristics of different architectural styles (e.g., centralized and decentralized).
Layered Architecture: A software architecture where the system is
organized into hierarchical layers, with each layer providing services to the layer above it and using services from the layer below.
Object-Oriented Architecture: A software architecture where
modules (objects) interact through remote calling mechanisms via well-defined interfaces.
Data-Centred Architecture: A software architecture where
communication between components primarily occurs through a shared data repository, such as a database or a distributed file system.
Event-based Architecture: A software architecture where
components communicate asynchronously by publishing and subscribing to events.
Client-Server Model: A fundamental centralized architecture where
clients request services from a dedicated server.
Peer-to-Peer (P2P) Architecture: A decentralized architecture
where all processes (peers) have equal roles and can act as both clients and servers.
Overlay Network: A virtual network built on top of a physical
network, used in P2P systems to organize nodes and facilitate resource discovery.
Vertical Distribution: A form of decentralized architecture that
extends the client-server model by splitting server functionality across multiple servers in a tiered fashion. Horizontal Distribution: A form of decentralized architecture that replicates the functionality of a server across multiple computers to improve scalability and reliability.
Self-Management (Autonomic Computing): The ability of a
distributed system to automatically adapt to changes in its environment and workload, often involving self-configuring, self- healing, self-optimizing, and self-protecting capabilities.
Feedback Control Model: A system that uses monitoring, analysis,
planning, and execution loops to achieve and maintain a desired state, often applied to self-management in distributed systems.