Distributed Computing Systems
Distributed System
A distributed system is:
A collection of independent
computers that appears to its
users as a single coherent
system.
Why Distributed Systems?
• Distributed (and mobile) users
– Desire to access data/resources
• Distributed data/information
– World Wide Web
• Distributed organizations
– Multi-location & multinational corporations
• Distributed resources
– Distributed file systems, grids, web farms
• Enabling technology:
– Advances in communications and networks
Characteristics of Distributed Systems
• Hides heterogeneity and internal workings
• Easy to expand or scale
• Continuous availability
• Layered design
• Examples
– Networked workstations
– Distributed databases
– WWW
– Cloud and edge systems
– Internet of Things, Sensor networks, etc.
Distributed System Organization
1.1
A distributed system organized as middleware.
Note that the middleware layer extends over multiple machines.
Design Goals
• Make resources available to users
– Enable resource sharing in a controlled manner
• Transparency
– Hide distributed nature
• Openness
– Complies to standards with regard to syntax and
semantics
– Interoperability
• Security & privacy
• Scalability & performance
Transparency in a Distributed System
Transparency Description
Hide differences in data representation and how a
Access
resource is accessed
Location Hide where a resource is located
Migration Hide that a resource may move to another location
Hide that a resource may be moved to another
Relocation
location while in use
Replication Hide that a resource may have multiple copies
Hide that a resource may be shared by several
Concurrency
competitive users
Failure Hide the failure and recovery of a resource
Hide whether a (software) resource is in memory or
Persistence
on disk
• How much transparency is needed?
• How much can we achieve?
Openness Security & Privacy
• Openness – Follows rules that describe syntax and
semantics
– Interface definition language
– Interoperability, portability
– Mechanism-policy separation
• Security
– Access control
– Data integrity
– Data/service availability
– Copyright protection
Scalability
• Scalability with respect to size
• Scalability with respect to geographical location
• Scalability with respect to management
Concept Example
Centralized services A single server for all users
Centralized data A single on-line telephone book
Centralized algorithms Doing routing based on complete information
Scalability Problems
Characteristics of Distributed Algorithms
• Single machine does not have complete
information
• Decisions are made based on local information
• Failure of a node does not cause the algorithm to
fail
• No global clock
• Distributed algorithms are much harder than
centralized algorithms
Geographical Scalability Challenges
• Synchronous communication
– Waiting for a reply does not scale well!!
• Unreliable networks
– Broadcasting does not work
• Centralized components
– Will eventually become bottlenecks
• Multiple administrative domains
– Security mechanisms do not come for free
Scalability Techniques
• Hiding communication latencies
– Asynchronous communication
– Reduce amount of data transmitted
• Distribution
– Spreading work across system
• Caching and replication
– Make copies of data and services
• Balance load
– Avoid hot spots
Scaling Techniques
1.4
The difference between letting:
a) a server or
b) a client check forms as they are being filled
Scaling Techniques (2)
1.5
An example of dividing the DNS name space into zones.
Types of Distributed Systems
• High-Performance Computing Systems
• Cluster computing
• Grid computing
• Distributed Information Systems
• Transaction processing systems
• Enterprise application integration
• P2P systems
• Distributed Pervasive Systems
• Mobile networks
• Sensor networks
Cluster Computing
• Super computing using PCs/workstations
• Used for parallel programming
• Homogeneity among nodes
• Master allocates nodes to tasks
• Compute nodes run standard operating systems
(and may be a very thin middleware)
• Middleware consists of parallel programming
libraries
Cluster Computing Systems
An example of a cluster computing system.
Grid Computing
• Formed from heterogeneous set of machines
• May belong to different organizations
• Virtual organization
• Resource access and management
• 4-layered organization
• Fabric layer – Interfacing to local resources
• Connectivity layer – Connection handling and security
• Resource layer – Managing a single resource
• Collective layer – Simultaneous management of multiple
resources
• Application layer – Hosts applications
Grid Computing Systems
A layered architecture for grid computing systems.
Distributed Information Systems
• Lots of networked applications
• Sometimes belonging to different organizations
• Little interoperability
• Simplest integration
• Bundling operations together at client end
• Enterprise application integration
• Applications talking to each other
Transaction Processing Systems
Properties of Transactions
• Atomic: To the outside world, the transaction
happens indivisibly.
• Consistent: The transaction does not violate system
invariants.
• Isolated: Concurrent transactions do not interfere
with each other.
• Durable: Once a transaction commits, the changes
are permanent.
Examples
• Banking example
• Airline ticket booking example
Nested Transactions
• Transactions constructed from multiple sub-
transactions
• Example: Travel Agent
• Problem with nested transactions
• What if one of the sub-transactions fail?
• TP monitor architecture
Nested Transactions
Transaction Processing Architecture
The role of a TP monitor in distributed systems.
Enterprise Application Integration
Middleware as a communication facilitator in
enterprise application integration.
Distributed Pervasive Systems
• Ad hoc composition
• Extreme heterogeneity
• Wired network/wireless network
• High churn rate
• Resource constraints
• Contextual changes
• Possible mobility