Comunicación entre instancias de JVM

Mi problema es que quiero comunicar dos aplicaciones que se ejecutan en distintas instancias de la máquina virtual java.
Conozco la estrategia RMI y JMS, pero me gustaría conocer si hay alguna otra forma más eficiente de comunicarlas, partiendo de la premisa de que ambas aplicaciones se ejecutarán dentro del mismo ordenador.
También he barajado la opción de los Sockets, pero su uso requiere demasiada programación, debe ser algo más sencillo ya implementado.
Gracias de antemano,
un saludo

2 respuestas

Respuesta
1
A mí de primeras se me ha ocurrido RMI, que creo que es lo más cómodo.
He estado mirando y he visto esto, donde discuten sobre el tema:
http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_20376974.html
Otra opción que se me ha ocurrido es usar pipes FIFO usando JNI.
Ya me contarás qué has elegido.
Antes de nada, gracias por molestarte en ayudarme.
No entiendo la nueva opción que me planteas. ¿Un pipe no iría conectado a un Socket? ¿Por qué JNI? ¿Esta tecnología no está destinada a integrar librerías C dentro de Java? ¿Puedes concretar un poco más tu solución?
Voy a pegar un vistazo al enlace que me indicas.
Yo he usado tuberías FIFO para comunicar procesos distintos en unix (linux) usando C. Tú escribes algo ahí y otro(s) proceso(s) lo puede leer.
Por eso decía de hacerlo usando JNI porque no creo que desde Java se pueda.
Ahora lo entiendo. También he trabajado con pipes en linux y, aunque no se basan en sockets, el modo de trabajo es muy similar, ya que tienes que controlar a pelo toda la comunicación, y esto es lo que quería evitar.
Creo que tiraré por los RMI e intentaré optimizarlos al máximo.
Si no tienes nada más que añadir, finalizaré la pregunta.
Muchas gracias por tu ayuda.
Yo creo que RMI va a ser lo más fácil. Sale todo bastante sencillito. Suerte.
(Aunque lo otro tiene más de investigación... quizás, no sé :)
Respuesta
1
Las únicas posibilidades para comunicar distintas maquinas virtuales son las que tu me comentas.
Es cierto que la programación por sockets es de un nivel demasiado bajo, para solucionar este problemas se crearon soluciones como rpc o rmi.
Por la experiencia que tengo el mejor método para realizar esto es utilizar RMI.
Tenia sospechas de que era así, pero quería comentarlo con alguien más para asegurarme. No obstante, siguiendo tu consejo, haré algunas pruebas más con RMI.
Gracias de nuevo,
un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas