1. Chapter 1: A Review : Distributed System
1.8. Challenges
Heterogeneity
- Networks
- Ethernet, token ring, etc
- Computer
hardware
- big endian / little endian
- Operating
systems
- different API of Unix and Windows
- Programming
languages
- different representations for data
structures
- Implementations
from different developers
- Middleware
- applies to a software layer that provides
a programming abstraction as well as masking the heterogeneity of the
underlying networks, hardware, OSs and programming languages
- Mobile
code
- is used to refer to code that can be sent
from one computer to another and run at the destination
Openness- Openness
of a computer system
- is the characteristic that determines whether the system can be extended and re-implemented in various way. e.g. Unix
- Openness of distributed systems
- is determined by the degree to witch new resource sharing services can be added and be made available for use by A variety of client programs. e.g. Web
- How to deal with openness?
- key interfaces are published, e.g. RFC
Security- Confidentiality
- protection against disclosure to unauthorized individuals, e.g. ACL in Unix File System
- Integrity
- protection against alteration or corruption, e.g. checksum
- Availability
- protection against interference with the means to access the resources, e.g. Denial of service
Scalability - A system is described as scalable
- if will remain effective when there is a significant increase in the number of resources and the number of users
- A scalable example system: the Internet
- design challenges
- The cost of physical resources, e.g., servers support users at most O(n)
- The performance loss, e.g., DNS no worse than O(logn)
- Prevent software resources running out, e.g., IP address
- Avoid performance bottlenecks, e.g., partitioning name table of DNS, cache and replication
Example| Date | Computers | Web servers | Percentage |
|---|
1993, July | 1,776,000 | 130 | 0.008 |
1995, July | 6,642,000 | 23,500 | 0.4 |
1997, July | 19,540,000 | 1,203,096 | 6 |
1999, July | 56,218,000 | 6,598,697 | 12 |
Failure Handling
- Detecting
- e.g.
checksum for corrupted data
- Sometimes impossible so suspect, e.g. a
remote crashed server in the Internet
- Masking
- e.g.
Retransmit message, standby server
- Tolerating
- e.g. a
web browser cannot contact a web server
- Recovery
- Redundancy
- e.g. IP
route, replicated name table of DNS
Concurrency
- Correctness
- ensure the operations on shared resource correct in a concurrent environment
e.g. records bids for an auction
- Performance
- Ensure the high performance of concurrent operations
Transparency
- Access transparency
- using identical operations to access local and remote resources, e.g. a graphical user interface with folders
- Location transparency
- resources to be accessed without knowledge of their location, e.g. URL
- Concurrency transparency
- several processed operate concurrently using shared resources without interference with between them
- Replication transparency
- multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers,
e.g. realcourse(http://vod.yf.pku.edu.cn/)
- Failure transparency
- users and applications to complete their tasks despite the failure of hardware and software components, e.g., email
- Mobility transparency
- movement of resources and clients within a system without affecting the operation of users and programs, e.g., mobile phone
- Performance transparency
- allows the system to be reconfigured to improve performance as loads vary
- Scaling transparency
- allows the system and applications to expand in scale without change to the system structure or the application algorithms