Indirect Communication Distributed Systems
Indirect Communication Distributed Systems
Introduction
In distributed systems, communication between processes or nodes can be categorized as
direct or indirect. Indirect communication refers to methods where communicating entities
do not interact with each other directly but rather through intermediaries such as message
queues, publish-subscribe systems, or shared data spaces. This approach decouples senders
and receivers in terms of space, time, and synchronization, enhancing scalability and
flexibility.
1. Message Queues
Message queues act as intermediaries that temporarily store messages sent by producers
until they are retrieved by consumers. This allows for asynchronous communication, where
senders and receivers do not need to be active simultaneously.
2. Publish-Subscribe Model
In the publish-subscribe model, publishers send messages to a central broker without
knowing who the subscribers are. Subscribers express interest in certain topics and receive
relevant messages when published. This model enables event-driven architectures and high
scalability.
4. Tuple Spaces
Tuple spaces are a form of shared memory where structured data (tuples) can be deposited
and later retrieved by interested processes. Linda is a well-known example of a tuple space
implementation that supports coordination between distributed components.
Conclusion
Indirect communication in distributed systems plays a crucial role in enabling loosely
coupled, scalable, and robust architectures. Various models such as message queues,
publish-subscribe, and tuple spaces provide mechanisms to facilitate interaction between
distributed components. Despite some trade-offs, these approaches are widely used in
modern distributed applications.
References
1. Coulouris, G., Dollimore, J., Kindberg, T., & Blair, G. (2011). Distributed Systems:
Concepts and Design (5th ed.). Pearson.
2. Tanenbaum, A. S., & Van Steen, M. (2017). Distributed Systems: Principles and
Paradigms (3rd ed.). Pearson.
3. Eugster, P. T., Felber, P. A., Guerraoui, R., & Kermarrec, A.-M. (2003). The Many Faces
of Publish/Subscribe. ACM Computing Surveys, 35(2), 114–131.
5. Li, K., & Hudak, P. (1989). Memory Coherence in Shared Virtual Memory Systems. ACM
Transactions on Computer Systems, 7(4), 321–359.
o Explains the concept of Distributed Shared Memory (DSM) and its role in
indirect communication.
6. Gelernter, D. (1985). Generative Communication in Linda. ACM Transactions on
Programming Languages and Systems, 7(1), 80–112.