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
    • no application standards
  • 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
DateComputers Web serversPercentage

1993, July

1,776,000

 130

0.008

1995, July

6,642,000

 23,500

0.4

1997, July

19,540,000

 1,203,0966

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
    • e.g. Roll back
  • 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