Challenges of a Distributed System

  • Heterogeneity – applies to networks computer hardware; operating systems; programming languages; implementations by different developers
  • Openness – interfaces should be publicly available to ease inclusion of new components
    Security – confidentiality(protection against disclosure to unauthorized users), integrity(protection against alteration or corruption), availability(protection against interference with the means to access the resources)
  • Scalability – System should work efficiently with an increasing number of users; System performance should increase with inclusion of additional resources
  • Failure handling – detecting failures, masking failure (hidden or made less severe), recovery from failure, redundancy
  • Concurrency – Several clients will attempt to access a shared resource at the same time, producing inconsistent results
  • Transparency
    • access transparency(enables local and remote information objects to be accessed using identical operations)
    • location transparency(enables information objects to be accessed without knowledge of their physical or network location)
    • name transparency(incorporates a global naming scheme)
    • concurrent transparency (enables several processes to operate concurrently using shared information objects without interference between them)
    • replication transparency(enables multiple instances of information objects to be used to increase reliability and performance without knowledge of the replicas by users or application programmers)
    • migration transparency(allows the movement of resources and clients within a system without affecting the operation of users or programs)
    • failure transparency(enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components)
    • 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)
  • Quality of Service (QoS) – ability to meet service requirements for applications