Inter-process Communication - Implementations

Implementations

There are several APIs which may be used for IPC. A number of platform independent APIs include the following:

  • Anonymous pipes and named pipes
  • Common Object Request Broker Architecture (CORBA)
  • Freedesktop.org's D-Bus
  • Distributed Computing Environment (DCE)
  • Message Bus (Mbus) (specified in RFC 3259)
  • MCAPI Multicore Communications API
  • Lightweight Communications and Marshalling (LCM)
  • ONC RPC
  • Unix domain sockets
  • XML XML-RPC or SOAP
  • JSON JSON-RPC
  • Thrift
  • TIPC
  • ZeroC's Internet Communications Engine (ICE)

The following are platform or programming language specific APIs:

  • Apple Computer's Apple events (previously known as Interapplication Communications (IAC)).
  • Enea's LINX for Linux (open source) and various DSP and general purpose processors under OSE
  • IPC implementation from CMU.
  • Java's Remote Method Invocation (RMI)
  • KDE's Desktop Communications Protocol (DCOP)
  • Libt2n for C++ under Linux only, handles complex objects and exceptions
  • The Mach kernel's Mach Ports
  • Microsoft's ActiveX, Component Object Model (COM), Microsoft Transaction Server (COM+), Distributed Component Object Model (DCOM), Dynamic Data Exchange (DDE), Object Linking and Embedding (OLE), anonymous pipes, named pipes, Local Procedure Call, MailSlots, Message loop, MSRPC, .NET Remoting, and Windows Communication Foundation (WCF)
  • Novell's SPX
  • PHP's sessions
  • POSIX mmap, message queues, semaphores, and Shared memory
  • RISC OS's messages
  • Solaris Doors
  • System V's message queues, semaphores, and shared memory
  • Distributed Ruby
  • DIPC Distributed Inter-Process Communication
  • OpenBinder Open binder
  • IPC Shared Memory Messaging from Solace Systems
  • QNX's PPS (Persistant Publish/Subscribe) service
  • SIMPL The Synchronous Interprocess Messaging Project for Linux (SIMPL)

Read more about this topic:  Inter-process Communication