Distributed applications without interprocess communication does not exist. On the other hand, a variety of interprocess communication (IPC) mechanisms for operating systems exists to support multiprocessor environments. But most tend to require significant amounts of programming effort unless communication across processors is relatively transparent.
Transparent message-based IPC systems are found in QNX Software Systems' (www.qnx.com) QNX RTOS, OSE Systems' (www.ose.com) OSE RTOS, and Kadak Products' (www.kadak.com) AMX RTOS. Other RTOSs support messaging systems, but they use them as a primary interprocess communication meth-od. QNX and OSE use task direct messaging, while AMX uses mailboxes that can be accessed by tasks. Communication across processors is handled via proxy tasks as shown in the figure.
A communications manager typically handles distribution of messages between proxy tasks on each processor. This allows messages to flow between the creator and consumer tasks without these tasks knowing about how the messages are passed or even how many hops the messages must make before they get to their destination.
Logical connections between tasks tend to be done on a logical basis using task or service names. The manager performs the mapping between names and actual task locations. Some implementations even allow tasks to be placed in between to filter or monitor messages passing between two tasks. This is very handy for debugging and providing message preprocessing services.
Messages can be forwarded over any kind of link, including TCP/IP. Still, transparent messaging differs significantly from sockets or other TCP/IP-related communication services. Domain name servers (DNS) provide location-independent address resolution, but a name must resolve to an IP address that's accessible to a message creator. A transparent messaging infrastructure has no such restriction. For example, a message may initially pass through a public TCP/IP network across a gateway and over a proprietary internal network.