Design issues of distributed computing
by Noraliena Asfarinah
1. Performance & scalability
1.1. overall performance should be better than or at least equal to that of running the same application on a single-processor system
1.2. design principle should be considered batch, cache, minimize copying of data, minimize network traffic, take advantage of fine-grain parallelism for multiprocessing
2. Heterogeneity
2.1. heterogeneous distributed system consists of interconnected sets of dissimilar hardware or software systems
2.2. diversity causing heterogenous distributed system far more difficult form homogenous
2.3. heterogenous preferred as it provide flexibility
3. Openness
3.1. Determines whether the system can be extended in various ways without disrupting existing system and services
3.2. should be flexible due: Ease of modification & Ease of enhancement
4. Security
4.1. various resources of a computer system must be protected against destruction and unauthorized access.
4.2. Enforcing security in a distributed system is more difficult because of the lack of a single point of control and the use of insecure networks for data communication
5. Transparency
5.1. no common clock among the multiple processors
5.2. difficult task and requires that several different aspects of transparency
5.3. messages could even be lost
5.4. delivery of messages is delayed
6. Communication
6.1. essential part of distributed systems - e.g., clients and servers must communicate for request and response
6.2. Synchronous or blocking - sender waits for receiver to execute a receive operation
6.3. Asynchronous or non-blocking
7. Reliability and fault tolerance
7.1. manages multiple resources, must be designed properly to increase the system's reliability
7.2. higher reliability needed to avoid faults, tolerate faults and to detect and recover from faults
7.3. Commonly used methods are fault avoidance and fault tolerance.