02-11-2012, 12:28 PM
Distributed System: the Internet
the Internet.pdf (Size: 87.2 KB / Downloads: 23)
Reasons for Distributing Systems
The need to share data across remote geographies
Online Encyclopedia Britannica is accessed by users all over the world
Computer users in different geographies send messages to each other
Replication of processing power
Independent processors working on the same task
Distributed systems consisting of collections of microcomputers may have
processing power of a large supercomputer
Use of heterogeneous components
Compute-intensive sub-tasks of a problem are run on powerful computers
Less resource-demanding sub-tasks run on less powerful computers
More efficient use of resources
Cost of hardware and management
A collection of cheap computers may be less expensive than one large
supercomputer
Small simple computers may be easier to manage than one large one
Administrative/functional issues
Payroll database is separate from registrar’s database
Each is managed according to the needs of the organization
Each is equipped with hardware that answers the needs of an organization
Resilience to failures
If one component fails, others can proceed with work on the task
Scalability
The system can be extended by adding more components (i.e., WWW)
Properties of Distributed Systems
Heterogeneity
Systems consist of heterogeneous hardware and software
components
Concurrency
Multiple programs run together
Shared data
Data is accessed simultaneously by multiple entities
No global clock
Each component has a local notion of time
Interdependencies
Independent components depend on each other
Challenges of DS: Heterogeneity
Different network infrastructures (Ethernet, 802.11 –
wireless)
Hardware and software (e.g., operating systems,
processors): how can an Intel/Windows system understand
messages sent by an Macintosh OS X system?
Programming languages – how can a Java program and a
C program communicate?
Challenges of DS: Synchronization
Concurrent cooperating tasks need to synchronize
When accessing shared data
When performing a common task
Synchronization must be done correctly to prevent data
corruption:
Example: two account owners; one deposits the money, the other
one withdraws; they act concurrently
How to ensure that the bank account is in “correct” state after these
actions?
Synchronization implies communication
Communication can take a long time
Excessive synchronization can limit effectiveness and scalability
of a distributed system
Challenges of DS: Partial Failures
Detection of failures – may be impossible
Has a component crashed? Or is it just slow?
Is the network down? Or is it just slow?
If it’s slow – how long should we wait?
Handling of failures
Retransmission
Tolerance for failures
Roll back partially completed task
Redundancy against failures
Duplicate network routes
Replicated databases