Pregunta

Actualmente estamos desarrollando un servidor mediante el cual un cliente solicita interés en cambios en elementos de datos específicos y cuando esos datos cambian, el servidor los devuelve al cliente.Existe un intenso debate sobre si sería mejor o no que el cliente realice una encuesta para obtener estos datos.

¿Cuál se considera el método ideal, en términos de rendimiento, escalabilidad y carga de red, de transferencia de datos en un entorno casi en tiempo real?

Actualizar:Aquí está un Enlace eso da algo de qué pensar con respecto a las actualizaciones de la interfaz de usuario.

¿Fue útil?

Solución

Probablemente no exista un método ideal para cada situación, pero empujar suele ser mejor y se usa con más frecuencia.Permite optimizar el almacenamiento en caché del servidor y las transferencias de datos, lo que ayuda al rendimiento y la escalabilidad, y reduce un poco el tráfico de la red al evitar solicitudes de clientes y respuestas vacías.Puede ser una ventaja importante para un servidor operar a su propio ritmo y suministrar datos a los clientes cuando esté listo.

Los estándares industriales, como OPC y GID, son compatibles con ambos.El servidor envía actualizaciones a los clientes suscritos, pero el cliente puede extraer algunos datos que rara vez se utilizan sin preocuparse por la suscripción.

Otros consejos

Siempre que el cliente inicie la conexión (para superar los problemas de firewall y NAT), cualquier forma está bien.

Si hay varios tipos diferentes de datos que necesita enviar, es posible que desee que el cliente especifique qué tipo desea, pero esto solo es necesario una vez por conexión.Luego puede hacer que el servidor continúe enviando actualizaciones tal como las tiene.

Sería menos tráfico de red si el servidor enviara actualizaciones sin que el cliente las pidiera continuamente.

¿Qué tienes del lado del cliente?Muchos firewalls permiten solicitudes salientes pero bloquean las solicitudes entrantes.En otras palabras, pull puede ser su única opción si navega por Internet, a menos que esté enviando correos electrónicos.

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