Design Issue in DS

Posted By on March 22, 2016

Download PDF
Software Concepts in DS
Client-Server Model

Challenges in making ideal distributed system:

Design issue in ds

Designing the distributed systems does not come for free. Some challenges need to be overcome in order to get the ideal systems. The challenges in distributed systems are:

  • Heterogeneity
  • Transparency
  • Openness
  • Concurrency
  • Security
  • Scalability
  • Resilience to failure


This term means the diversity of the distributed systems in terms of hardware, software, platform, etc. Modern distributed systems will likely span different:

  • Hardware devices: computers, tablets, mobile phones, embedded devices, etc.
  • Operating System: Ms Windows, Linux, Mac, Unix, etc.
  • Network: Local network, the Internet, wireless network, satellite links, etc.
  • Programming languages: Java, C/C++, Python, PHP, etc.
  • Different roles of software developers, designers, system managers


Distributed systems designers must hide the complexity of the systems as much as they can. Adding abstraction layer is particularly useful in distributed systems. While users hit search in, they never notice that their query goes through a complex process before google shows them a result. Some terms of transparency in distributed systems are:

transparency in design issue


If the well-defined interfaces for a system are published, it is easier for developers to add new features or replace sub-systems in the future. Example: Twitter and Facebook have API that allows developers to develop theirs own software interactively.


Distributed Systems usually is multi-users environment. In order to maximize concurrency, resource handling components should be anticipate as they will be accessed by competing users. Concurrency is a tricky challenges, then we must avoid the system’s state from becoming unstable when users compete to view or update data.


Every system must consider strong security measurement. Distributed Systems somehow deals with sensitive information; so secure mechanism must be in place.


Distributed systems must be scalable as the number of user increases.

“A system is said to be scalable if it can handle the addition of users and resources without suffering a noticeable loss of performance or increase in administrative complexity.” – B. Clifford Neuman

Scalability has 3 dimensions:

  • Size
    • Number of users and resources to be processed. Problem associated is overloading
  • Geography
    • Distance between users and resources. Problem associated is communication reliability
  • Administration
    • As the size of distributed systems increases, many of the system needs to be controlled. Problem associated is administrative mess

Note: Scalability often conflicts with small system performance. Claim of scalability in such system is often abused.

Resilience to Failure

Distributed Systems involves a lot of collaborating components (hardware, software, communication). So there is a huge possibility of partial or total failure.

Software Concepts in DS
Client-Server Model

Download PDF