2009-05-06 28 views

Antwort

3

Ja; D-BUS und Pipes sind einfach zu bedienen und plattformübergreifend. D-BUS ist nützlich für allgemeine Nachrichtenübergabe-IPC und Pipes zum Senden von Massendaten.

Sie können auch einen TCP- oder UDP-Socket auf localhost öffnen, wenn Sie mehrere Clients unterstützen müssen, die eine Verbindung zu einem zentralen Server herstellen.

Ich fand auch eine implementation of UNIX sockets in Java, obwohl es die JNI erfordert.

2

http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp

Java Remote Method Invocation (Java RMI) der Programmierer verteilte Java-Technologie basierenden, können die Methoden der Fern Java-Objekte, in denen Java Technologie-basierte Anwendungen erstellen können von anderen JVMs aufgerufen werden *, möglicherweise auf verschiedenen Hosts. RMI verwendet Objekt-Serialisierung, um Parameter zu marshalieren und zu entpacken, und schneidet Typen nicht ab, was echten objektorientierten Polymorphismus unterstützt.

0

Verwenden Sie MemoryMappedByteBuffer in Java NIO, um Arbeitsspeicher zwischen Prozessen zu teilen.

0

Es gibt eine ziemlich neue Initiative für Sprach-agnostic IPC von säulenartigen (d. H Array-basierten) Daten von Apache Plasma.

Bis jetzt (September '17) gibt es keine JVM-Bindungen, aber da das Projekt von Sparks unterstützt wird, denke ich, wird es nicht lange dauern, bis wir eine Implementierung sehen.

Mein Verständnis ist jedoch, dass es kein allgemeines IPC-System gibt, da es darauf ausgerichtet ist, Arrays von Primitiven wie double, long, für wissenschaftliche Datenverarbeitung statt Klassen/Objekte zu teilen; obwohl ich hier falsch liegen könnte. Auf der positiven Seite, es ist auch sprachunabhängig, so dass Sie es verwenden können, um mit einer anderen (Nicht-JVM) Laufzeit zu kommunizieren. Das OP hat jedoch nach Java IPC gefragt, so dass dies irrelevant sein könnte.

Verwandte Themen