Challenges in Distributed Systems
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
Heterogeneity
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
Transparency
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 google.com, 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 | Description |
---|---|
Access | Hide differences in data representation and how a resource is accessed |
Location | Hide where a resource is located |
Migration | Hide that a resource may move to another location |
Relocation | Hide that a resource may be moved to another location while in use |
Replication | Hide that a resource may be copied in several places |
Concurrency | Hide that a resource may be shared by several competitive users |
Failure | Hide the failure and recovery of a resource |
Persistence | Hide whether a (software) resource is in memory or a disk |
Openness
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.Concurrency
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.Security
Every system must consider strong security measurement. Distributed Systems somehow deals with sensitive information; so secure mechanism must be in place.Scalability
Distributed systems must be scalable as the number of user increases.B. Clifford Neuman
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 complexityScalability 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
Post a Comment