Skip to main content

Goals and design challenges of DS

Short answer

Major goals are resource sharing, transparency, openness, scalability, and concurrency with fault tolerance. Design challenges include heterogeneity, openness, security, scalability, failure handling, concurrency, transparency, and quality-of-service/time issues such as lack of a global clock.

What are the major goals of a distributed system? What are the challenges during the design of a distributed system?

Goals of a distributed system

A distributed system is a collection of independent computers, connected by a network and running distribution middleware, that appears to its users as a single coherent system. Its components communicate and coordinate their actions only by passing messages (Tanenbaum; Coulouris).

  • Resource sharing: users and programs share printers, files, data, storage and compute power across the network (for example the web, cloud storage).
  • Transparency: hide the fact that processes and resources are physically spread over many machines.
  • Openness: the system offers services through standard, published interfaces so that parts from different vendors can interoperate and be extended.
  • Scalability: the system keeps working well as users, resources and geographic spread grow.
  • Concurrency and fault tolerance: many users work at once, and the system keeps running when some component fails.

Design challenges

  1. Heterogeneity: different networks, hardware, operating systems, programming languages and data formats must work together. Middleware (CORBA, Java RMI) and standards hide the differences.
  2. Openness: interfaces must be published, specified (for example by IDL) and extensible without breaking existing parts.
  3. Security: confidentiality, integrity and availability must be protected over open networks. Encryption, authentication and access control are needed, and denial-of-service attacks are hard to stop.
  4. Scalability: the design must avoid central bottlenecks (single server, central table, central algorithm). Techniques are replication, caching, partitioning and distribution of work.
  5. Failure handling: components and links fail independently and partially. We need failure detection, masking (retransmission, replication), tolerance and recovery.
  6. Concurrency: shared resources are accessed at the same time, so synchronisation and consistency control are needed.
  7. Transparency: hiding distribution completely is costly and sometimes impossible (network latency, partitions).
  8. Quality of service and time: timeliness and reliability must be guaranteed, and the lack of a global clock makes coordination difficult.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Distributed System chapter 1 questions →