10-11-2012, 10:38 AM
Computer and Network Evolution
Computer and Network.ppt (Size: 908.5 KB / Downloads: 60)
Computer Systems
10 million dollars and 1 instruction/sec
1000 dollars and 1 billion instructions/sec
=> a price/performance gain of 1013
Computer Networks
Local-area networks (LANs)
Small amount of information, a few microseconds
Large amount of information, at rate of 100 million to 10 billion bits/sec
Wide-area networks (WANs)
64 Kbps to gigabits per second
Characters of Distributed System
Differences between the various computers and the ways in which they communicate are mostly hidden from users
Users and applications can interact with a distributed system in a consistent and uniform way, regardless of where and when interaction takes place.
Make Resources Accessible
Access resources and share them in a controlled and efficient way.
Printers, computers, storage facilities, data, files, Web pages, and networks, …
Connecting users and resources also makes it easier to collaborate and exchange information.
Internet for exchanging files, mail, documents, audio, and video
Security is becoming increasingly important
Little protection against eavesdropping or intrusion on communication
Tracking communication to build up a preference profile of a specific user
Degree of Transparency
Observation: Aiming at full distribution transparency may be too much:
Users may be located in different continents; distribution is apparent and not something you want to hide
Completely hiding failures of networks and nodes is (theoretically and practically) impossible
You cannot distinguish a slow computer from a failing one
You can never be sure that a server actually performed an operation before a crash
Full transparency will cost performance, exposing distribution of the system
Keeping Web caches exactly up-to-date with the master copy
Immediately flushing write operations to disk for fault tolerance
Separating policy and mechanism
To achieve flexibility: split the systems in smaller components. Components requires support for different policies specified by applications and users:
Implementing openness requires support for different polices:
What level of consistency do we require for client-cached data?
Which operations do we allow downloaded code to perform?
Which QoS requirements do we adjust in the face of varying bandwidth?
What level of secrecy do we require for communication?
Implementing openness, ideally, a distributed system provide only mechanisms:
Allow (dynamic) setting of caching policies
Support different levels of trust for mobile code
Provide adjustable QoS parameters per data stream
Offer different encryption algorithms
Techniques for Scaling
Hide communication latencies: Avoid waiting for responses; do something else:
Make use of asynchronous communication
Have separate handler for incoming response
Problem: not every application fits this model