Pregunta

Estoy pensando en escribir un servidor RPC en Java.El servidor debe aceptar entrante Rpc - probablemente a través de HTTP y responder a ellos.Bastante cosas básicas.El apoyo a la "long polling' o 'colgar' Rpc no es necesario, de modo que un hilo de un por-modelo de solicitud debe ser perfectamente adecuado.

Si yo estuviera escribiendo esto en Python, probablemente voy a utilizar un framework como retorcido.En C, algo así como glibc.En cada caso, el marco proporciona una implementación de la general 'select loop' núcleo de manejo de e / s y la invocación de nivel superior de las construcciones que tratar con él, llevando eventualmente a mi solicitud de ser llamado para eventos tales como la recepción de una llamada RPC.

Es un largo tiempo desde que escribí algo sustancial en Java, aunque, así que no sé cuál es el estado del arte o la propuesta de soluciones para este tipo de cosas.Posiblemente incluso hay partes de la biblioteca estándar que puede utilizar para hacer esto.De ahí mi pregunta de StackOverflow:Lo que marcos están ahí fuera, que sería adecuado para una tarea como esta?

Tenga en cuenta que a pesar de que se puede usar HTTP para la Rpc, este no es enfáticamente una aplicación web y, como tal, un framework web no es apropiado.

¿Fue útil?

Solución

Apache MINA es un marco de trabajo asíncrono muy bien diseñado sin bloqueo de red. Proporciona un acceso orientado a byte a leer y escribir datos en paquetes. La construcción de la cima de que tiene un sistema de filtro en el que se pueden añadir capas adicionales, proporcionando cosas como análisis orientado a líneas de texto, el cifrado (a través de TLS), compresión, etc.

PS:. La serie de la versión 2.0 es muy recomendable, a pesar de que todavía está en forma de "hito", ha demostrado ser muy estable y se acerca a una versión final

Otros consejos

Usted tiene opciones múltiples:

  • Rollo de su propia solución con el SDK existente para la programación del zócalo.
  • Java RMI, el marco de invocación de método remoto.
  • enlaces Java CORBA, es actual ya no es considerado.
  • marcos de servicios Web Java, son bastante complejos. Mira Apache CXF y los diferentes productos J2EE.

A continuación, tienen diferentes sistemas que se ejecutan por encima de transporte HTTP como JSON / XML-RPC, donde se necesita un servidor Web. A pesar de que los descarta.

Se podría considerar el uso de algo tan simple como embarcadero la parte interna de amarre son muy estables y puede manejar bastante tonta número de conexiones. Si implementa la interfaz de controlador específico embarcadero también se puede ver con toda del servlet y JSP bibliotecas de soporte por lo que es bastante un pequeño servidor de aplicaciones embedable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top