A distributed system is a collection of components that are interconnected through a network. Heterogeneity and autonomy in the nature of a system’s entities is another key characteristic of a distributed architecture. Users are allowed to access services by the internet over a heterogeneous set of networks and computers. Heterogeneity applies to computer hardware, programming languages, networks and operating systems. It has a middleware for example, COBRA that masks underlying layers’ heterogeneity and gives programming abstraction. It has a mobile code for example java applets that refers to code that is shared between two computers and run at destination (Kshemkalyani& Singhal, 2011).
The other Characteristic of distributed architecture systems is concurrency. Different components in the system are loosely coupled. The components may run concurrently providing different service due to their loosely coupled nature. The processors in distributed system run different operating systems at different speeds. They offer different services but solve a problem jointly
Distributed systems have no shared memory. This feature therefore needs message passing during communication. This feature denotes an absence of a common clock. However, a distributed system provides an abstraction of a common space through a distributed shared memory abstraction (Kshemkalyani& Singhal, 2011).
Another distributed system desirable characteristic is openness of underlying resources, architecture, infrastructure and resources. This implies that their replacement can be done without effects on the system behavior. For example, the internet handles this through open standards usage. One can view the interplay of standards, architectures, protocols and infrastructures without having an effect on the internet.
An example of a complex problem that can be solved using a distributed architecture solution is a self-driving car problem. This problem requires a collection of agents to make the artifact’s design. The entire requirement must be satisfied. In this case, a car has an engine that should be strong enough and still fit in its compartment, four wheels and a steering wheel. It must also exist in a particular form and intelligently drive itself. It should be able to sense people and cars and not cause accidents. These agents take the sub problems and synthesize them to a solution. This must use a distributed architecture solution.
In conclusion, distributed architecture solutions have characteristics such as heterogeneity, autonomy, openness, and independent memories. These characteristics make them desirable and good choices when building systems.
- Belapurkar, A., Chakrabarti, A., Ponnapalli, H., Varadarajan, N., Padmanabhuni, S., &Sundarrajan, S. (2009). Distributed systems security: issues, processes and solutions. John Wiley & Sons.
- Kshemkalyani, A. D., & Singhal, M. (2011). Distributed computing: principles, algorithms, and systems. Cambridge University Press.