2015-06-28 23 views
7

mio caso d'uso:Comunicazione inter-processo Java nell'anno 2015 (senza piastra della caldaia)?

  • processo-1 "database" che i carichi> 1 GB di dati in memoria dal file di dati (solo il carico prende 30-60 secondi)
  • processo-2 "cliente" vuole accedere rapidamente a questi dati senza doverli caricare tutto

Sono processi separati eseguiti sulla stessa macchina. I dati che vorrei trasferire tra i processi sono Collections (liste, mappe) contenenti tipi primitivi (interi, stringhe, booleani).

So che questo può essere fatto aprendo socket-connect (creando un protocollo specifico nella serializzazione dei dati) o da RMI (più o meno la stessa cosa). Abbiamo fatto entrambi questi 15 anni fa. Qualcuno non l'ha automatizzato in questo modo in modo che, usando una libreria, si potesse semplicemente impostare @InterProcessMethod("some", "details") ed essere in grado di invocare metodi su JVM diversi senza dover implementare le serializzazioni ecc. Ogni volta? (a causa dei tipi principali questo non dovrebbe essere troppo complesso).

Una società chiamata Caucho aveva un prodotto per risolvere questo problema ma non riesco più a trovarlo dalla sua pagina web. Poi di nuovo, era una sorta di servizio web, invece RPC.

+0

OK, mi piace questa domanda. – Mordechai

+3

No, non hanno ... perché il problema è più complicato di quanto immagini. –

+0

Una bella domanda. Eppure fuori tema. – CKing

risposta

0

Non che io ora di. Più "2015" sarebbe di stare con RMI, o, refactoring il tuo back-end in una API REST e collegarlo tramite JSON, e poi, se vuoi, serializzarlo/deserializzarlo con Jackson o anche a mano (in alcuni molto orientati alla performance scenari).