Inter-Process Communication (IPC) for Java allows for an interaction between an application running in a Java virtual machine and its native environment. Although the term IPC is also known to denote communication across system boundaries, this particular implementation is limited to a well-known set of system-local mechanisms. Although the I/O primitives supported by the Java platform already allow for inter-process communication, their non-functional features related to performance or security, are inferior to some of the unsupported IPC mechanisms available on today's operating systems.
The following mechanisms are under consideration in the context of Java IPC:
- FIFO a.k.a. (Named Pipes)
- Shared Memory
- Domain Socket
As this is not about distributed systems, the following mechanisms are not under consideration:
- RPC (remoting)
- Socket (UDP or TCP)
Of course, these mechanisms are already supported by the Java platform.
Some interesting reads on related subjects, available on the web: