Based on last years lecture notes, used by Juha Takkinen Definition of a Distributed System (1) A distributed system is: A collection of.

Download Report

Transcript Based on last years lecture notes, used by Juha Takkinen Definition of a Distributed System (1) A distributed system is: A collection of.

Based on last years lecture
notes, used by Juha Takkinen
Definition of a Distributed System (1)
A distributed system is:
A collection of independent
computers that appears to its users
as a single coherent system.
Definition of a Distributed System (2)
Figure 1-1. A distributed system organized as middleware. The
middleware layer extends over multiple machines, and offers
each application the same interface.
Examples of Distributed Systems
• Network of workstations at a university
• Workflow information system supporting
automatic order processing
• World Wide Web
Goals of Distributed Systems
What makes it worth the effort?
•
•
•
•
Connecting Users and Resources
Transparency
Openness
Scalability
Transparency in a Distributed System
Transparency
Description
Access
Hide differences in data representation and how a
resource is accessed
Location
Hide where a resource is located
Migration
Hide that a resource may move to another location
Relocation
Hide that a resource may be moved to another
location while in use
Replication
Hide that a ,ultiple copies of a resource exist
Concurrency
Hide that a resource may be shared by several
competitive users
Failure
Hide the failure and recovery of a resource
Persistence
Hide whether a (software) resource is in memory or
on disk
Different forms of transparency in a distributed system.
Openness
• Services are offered according to standard
rules that describe syntax and semantics
• E.g., Interface Definition Language
• Interoperability and portability
• Separating Policy from Mechanism!
Scalability (Problems)
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
Examples of scalability limitations.
Scaling Techniques
• Scalability problems appear as
performance problems
• Three basic techniques:
– hiding communication latency
– distribution
– replication
• Asynchronous communication
• Divide and conquer
• Caching (consistency!)
Scaling Techniques (1)
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.
More Scaling
•
•
•
•
CDN (e.g., akamai)
Youtube, Facebook
VoD
Google
Common Pitfalls
•
•
•
•
•
•
•
•
The network is reliable
The network is secure
The network is homogenous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
Example types of systems
• Distributed computing
• Cluster vs grid computing
• Distributed information systems
• Transactions (incl. nested)
• Distributed pervasive systems
• Home: plug and play
• eHealth (BAN)
• Sensor networks
Networked software:
Architectural Styles (1)
•
•
•
•
Layered architectures
Object-based architectures
Data-centered architectures
Event-based architectures
Architectural Styles (2)
Figure 2-1. The (a)
layered
architectural style
and …
Architectural Styles (3)
Figure 2-1. (b) The
object-based
architectural style.
Architectural styles (4)
data-centric: e.g. web-based distributed systems
• shared distributed file system
• communication through files
Architectural Styles (5)
Figure 2-2. (a) The event-based architectural style
and …
Architectural Styles (6)
Figure 2-2. (b) The shared data-space architectural
style.
Event-based and
data-centric!
Centralized Architectures
Figure 2-3. General interaction between a client and
a server.
Application Layering
• The user-interface level
• The processing level
• The data level
Processing Level
1-28
The general organization of an Internet search engine into
three different layers
Multitiered Architectures (1)
The simplest organization is to have only
two types of machines:
• A client machine containing only the
programs implementing (part of) the
user-interface level
• A server machine containing the rest,
– the programs implementing the
processing and data level
Physical two-tired Architectures
1-29
Alternative client-server organizations (a) – (e).
Multitiered Architectures (2)
1-30
An example of a server acting as a client.
Modern Architectures
1-31
An example of horizontal distribution of a Web service.
Decentralized Architectures
• Vertical distribution
• Horizontal distribution
• Peer-to-peer distribution
Overlays and p2p
• Distributed Hash tables (DHT)
• Chord
• CAN
• Unstructured
• Gnutella
• Super peers
• Hybrid
Hybrid of client-server and p2p
• Edge-server system
• CDN
• Collaborative
• BitTorrent
•