inflacion histórica historico españa chile java c++ ipc

histórica - ¿Cuál es el mejor enfoque para IPC entre Java y C++?



ipc españa (5)

¿Has considerado el marco de ahorro de Facebook ?

Thrift es un marco de software para el desarrollo de servicios escalables de idiomas cruzados. Combina una pila de software con un motor de generación de código para crear servicios que funcionen de manera eficiente y sin problemas entre C ++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C #, Cocoa, Smalltalk y OCaml.

Thrift le permite definir tipos de datos e interfaces de servicio en un archivo de definición simple. Tomando ese archivo como entrada, el compilador genera código para ser utilizado fácilmente para construir clientes RPC y servidores que se comunican sin problemas a través de los lenguajes de programación.

Puede funcionar sobre sockets TCP y la serialización / deserialización ya está incorporada.

Lea el documento técnico para más detalles.

Me gustaría implementar una solución robusta de IPC entre una única aplicación JVM (un proceso, potencialmente múltiples subprocesos) y una aplicación nativa de C ++ que está vinculada a un dll de C ++. El dll puede o no estar en la misma máquina física. ¿Cuál es el mejor enfoque para hacerlo?

¡Cualquier sugerencia será muy apreciada! ¡Gracias!


Usaría un socket TCP / IP estándar, donde la aplicación escucha en algún puerto y la biblioteca se conecta a él para informar qué debe informar y esperar las respuestas.

La abstracción es robusta, está bien soportada y no tendrá problemas de interoperabilidad.


mmm - Las DLL no son procesos, así que supongo que quiere decir IPC entre su aplicación Java y alguna otra aplicación nativa que esté vinculada a la DLL. Los zócalos, por cierto, son el camino a seguir aquí. Hará todo más fácil para ti.

Otra opción sería usar JNI para hablar con una implementación de DCOM, pero no creo que ganes mucho (aparte de tener que lidiar con los dolores de cabeza de COM y JNI :-)).


El búfer de protocolo de Google puede ayudarlo a serializar los datos en una plataforma neutra de idioma y plataforma. También generará código en Java y C ++ para manejar la lectura y escritura de datos serializados. A continuación, puede utilizar cualquier mecanismo de comunicación que desee enviar los datos. Por ejemplo, puede enviarlo a través de un socket TCP o mediante memoria compartida IPC.


Estoy mirando Remote Call Framework , para mis aplicaciones puramente C ++. Las especificaciones se ven bonitas y prometedoras. Voy a intentarlo.