2015-06-28 3 views
7

Meine Use-Case:Java Interprozesskommunikation im Jahr 2015 (ohne Boiler-Platte)?

  • Prozess-1 "Datenbank", dass Lasten> 1 GB Daten in den Speicher von Daten-Dateien (nur das Laden dauert 30-60 Sekunden)
  • Prozess-2 "Client" will schnell auf diese Daten zugreifen, ohne alles laden zu müssen

Sie sind separate Prozesse auf derselben Maschine ausgeführt. Daten, die ich zwischen den Prozessen übertragen möchte, sind Collections (Listen, Maps), die primitive Typen enthalten (Integer, Strings, Booleans).

Ich weiß, dass dies durch Öffnen von Socket-Connect (Erstellen eines bestimmten Protokolls bei der Serialisierung der Daten) oder durch RMI (mehr oder weniger das Gleiche) getan werden kann. Wir haben beides schon vor 15 Jahren gemacht. Hat das bisher niemand automatisiert, so dass Sie mit einer Bibliothek einfach @InterProcessMethod("some", "details") einrichten und Methoden auf verschiedenen JVM aufrufen können, ohne jedes Mal Serialisierungen etc. implementieren zu müssen? (wegen der Primärtypen sollte dies nicht zu komplex sein).

Eine Firma namens Caucho hatte ein Produkt, um dieses Problem anzugehen, aber ich kann es nicht mehr von ihrer Webseite finden. Andererseits war es eine Art Web-Service statt RPC.

+0

OK, ich mag diese Frage. – Mordechai

+3

Nein, haben sie nicht ... weil das Problem komplizierter ist, als Sie sich vorstellen. –

+0

Eine gute Frage. Noch nicht zum Thema. – CKing

Antwort

0

Nicht dass ich jetzt von. Umso mehr "2015" wäre es, bei RMI zu bleiben, oder dein Backend in eine REST API umzuwandeln und über JSON zu verbinden, und dann, wenn du es willst, mit Jackson oder sogar von Hand zu serialisieren/deserialisieren (In einigen sehr leistungsorientiert Szenarien).