Distributed Systems: Chapter 1 - Introduction
Distributed Systems: Chapter 1 - Introduction
Chapter 1 - Introduction
Course Outline
Architectures
• Processes
• Communication
• Naming
• Synchronization
Consistency and replication
Fault tolerance, security
• Security
• Distributed File Systems.
Outline
• Definitions of a Distributed System
• Goals of a Distributed System
• Types of Distributed Systems
What Is A Distributed System?
Some Definitions
Transparency Description
• Resource accessibility
– For sharing and enhanced performance
• Distribution transparency
– For easier use
• Openness
– To support interoperability, portability, extensibility
• Scalability
– With respect to size (number of users), geographic
distribution, administrative domains
Issues/Pitfalls of Distribution
• Requirement for advanced software to realize the
potential benefits.
• Security and privacy concerns regarding network
communication
• Replication of data and services provides fault
tolerance and availability, but at a cost.
• Network reliability, security, heterogeneity,
topology
• Latency and bandwidth
• Administrative domains
Distributed Systems
• Early distributed systems emphasized the
single system image – often tried to make a
networked set of computers look like an
ordinary general purpose computer
• Examples: Amoeba, Sprite, NOW, Condor
(distributed batch system), …
Types of Distributed Systems
• Distributed Computing Systems
– Clusters
– Grids
– Clouds
• Distributed Information Systems
– Transaction Processing Systems
– Enterprise Application Integration
• Distributed Embedded Systems
– Home systems
– Health care systems
– Sensor networks
Cluster Computing
• A collection of similar processors (PCs,
workstations) running the same operating
system, connected by a high-speed LAN.
• Parallel computing capabilities using
inexpensive PC hardware
• Replace big parallel computers (MPPs)
Cluster Types & Uses
• High Performance Clusters (HPC)
– run large parallel programs
– Scientific, military, engineering apps; e.g., weather
modeling
• Load Balancing Clusters
– Front end processor distributes incoming requests
– server farms (e.g., at banks or popular web site)
• High Availability Clusters (HA)
– Provide redundancy – back up systems
– May be more fault tolerant than large mainframes
Clusters – Beowulf model
• Linux-based
• Master-slave paradigm
– One processor is the master; allocates tasks to
other processors, maintains batch queue of
submitted jobs, handles interface to users
– Master has libraries to handle message-based
communication or other features (the
middleware).
Cluster Computing Systems
• Figure 1-6. An example of a cluster
computing system.