me encuentro ante un dilema siguiente:El diseño de un protocolo de red para dispositivos de datos en tiempo real/móvil
Diseño de un nuevo protocolo de red que se utiliza entre un servidor (software de Java) y clientes de escritorio y móviles. Los clientes móviles incluyen J2ME, Android y tal vez en el futuro, incluso iPhone.
La secuencia de datos es una transmisión constante en tiempo real con también partes más infrecuentes. Los clientes muestran formas de onda de estos datos y también datos que no necesitan actualizarse instantáneamente. Los clientes también deben ser autenticados.
Me gustaría evitar la creación de una implementación totalmente personalizada del protocolo TCP desde cero si es posible.
En estos días, la gente generalmente recomienda hacer todo en el estilo REST, que también me gusta mucho. Sin embargo, en este caso estoy un poco indeciso: ¿cómo implementarías un flujo de datos constante además de REST? ¿Una respuesta HTTP fragmentada?
También estoy considerando protocolos que no sean de texto plano (los actuales que estoy reemplazando son protocolos binarios). Esos protocolos actuales tienen sus problemas más serios, por lo que deberían ser reemplazados.
Buffers de protocolo de Google se ve como un candidato bastante fuerte para manejar los detalles de bajo nivel, pero no estoy seguro si se puede usar desde Android. Y estoy bastante seguro de que la implementación del iPhone también tendría problemas.
También hay BEEP, pero creo que está prácticamente muerto y me pregunto si alguna vez fue ampliamente utilizado.
¿Alguna idea?
¡Gracias! No sabía que existían marcos NIO alternativos ampliamente utilizados para Java. Solía programar contra la API de Java NIO y todavía a veces me despierto por la noche gritando (tiene que ser la peor API que Sun ha producido) :-) ¡Esta nueva información hace que NIO sea relevante para mí otra vez! – auramo
Estoy de acuerdo con usted por completo. Tuve las mismas pesadillas cuando desarrollé basado en Java NIO API :-) Apache MINA cambió mi vida para siempre. –