Descargar

Publicación-suscripción en tiempo real

Enviado por Pablo Turmero


    edu.red

    NDDS: beneficios claves Es un middleware que permite la publicación-suscripción en tiempo real. Evita la necesidad de ser un experto en la programación de redes. Mensajería rápida y eficiente para aplicaciones en tiempo real. Simplifica el diseño de aplicaciones.

    edu.red

    Sistemas distribuidos en tiempo real Diferentes clases de nodos Diferentes tipos de iteraciones Mensajes cíclicos Comandos y eventos acíclicos Patrones complejos de comunicación. Reconfiguración dinámica. Tolerancia a fallos. Integración con sistemas comerciales sobre redes estándar.

    edu.red

    Sistemas distribuidos en tiempo real Diferentes tipos de datos tienen diferentes requisitos de comunicación Datos cíclicos El tiempo es crítico A menudo es Muchos-a-Muchos Lo último es lo mejor Datos acíclicos Comandos, eventos y solicitudes 1-a-1 o 1-a-Muchos En ocasiones el tiempo es crítico Fiable y en orden, exactamente una sola vez Información de estado 1-a-1 o 1-a-Muchos Subconjuntos dinámicos de toda la estructura de datos

    edu.red

    Uso de protocolos de Internet en aplicaciones en Tiempo Real TCP/IP se usa en comunicación fiable TCP reintenta el envío de los paquetes perdidos y no enviará nuevos paquetes mientras tanto. La aplicaciones esperan en TCP a obtener los paquetes perdidos o un timeout. Por todo ello, TCP se usa en comunicaciones que no requieran tiempo real.

    Standard IP network (Ethernet, Wireless, 1394, etc.)

    IP Protocol Stack

    TCP

    No RT

    edu.red

    Uso de protocolos de Internet en aplicaciones en Tiempo Real UDP/IP soporta mensajería determinista Sólo envía datagramas Introduce mínima sobrecarga y puede ser muy rápido Sin conexiones ni reintentos Se pueden construir aplicaciones en tiempo real sobre UDP

    Standard IP network (Ethernet, Wireless, 1394, etc.)

    IP Protocol Stack

    TCP

    No RT

    UDP Tiempo Real

    edu.red

    Uso de protocolos de Internet en aplicaciones en Tiempo Real UDP es un protocolo sencillo, a bajo nivel. Esto implica aplicaciones complejas. El uso de un middleware simplifica el desarrollo, ya que actúa como una capa de software entre la pila de protocolos y la aplicación, que: Aísla la aplicación de las funciones propias de red. Proporciona una capa de servicios que simplifican la programación de la aplicación.

    Standard IP network (Ethernet, Wireless, 1394, etc.)

    IP Protocol Stack

    TCP

    No RT

    UDP

    Aplicación Tiempo Real

    Middleware tiempo real

    edu.red

    Modelos de Distribución de datos Punto a Punto

    Modelo telefónico, diseñado en los 70 Para empleo con TCP Sencillo, gran ancho de banda Sólo funciona con unos pocos nodos

    edu.red

    Modelos de Distribución de datos Cliente/Servidor

    Modelo de Mainframe diseñado en los 80 Práctico cuando los datos están centralizados Cuellos de botella en el servidor, único punto de fallo, poco adecuado para la comunicación cliente-cliente

    edu.red

    Modelos de Distribución de datos Publicación / Suscripción Campo probado Simplifica la programación de 1-a-Muchos Mínima carga de red Adecuado sobre cualquier red estándar

    edu.red

    Paradigma Publicación/Suscripción El productor de datos no necesita saber donde se encuentran los suscriptores Los consumidores tampoco necesitan saber donde están los publicadores. Middleware

    edu.red

    PS es lo mejor para Tiempo Real El más eficiente uso del ancho de banda No necesita tráfico alguno Directo, transferencia conducida por evento Distribución de Muchos-a-Muchos No son necesarios servidores intermedios Programación muy sencilla Comunicaciones anónimas Apropiado para todos los tipos de datos: Cíclico Acíclico Propagación de variables

    edu.red

    PS no es suficiente para TR Los requisitos de una aplicación en TR: Uso eficiente del ancho de banda Baja latencia Plazos de entrega de tiempo real Reposición en caliente de manera transparente Mensajería fiable

    edu.red

    Características NDDS Comunicaciones anónimas Las aplicaciones usan nombres para identificar tópicos, no direcciones de red. Conversión de datos automática No es necesario el Marshalling Configuración de red dinámica Arranca, añade y borra los nodos en cualquier secuencia, en cualquier momento

    edu.red

    Características NDDS NDDS es rápido Mensajes de 256byte a 4 nodos Unicast: inferior a 0.4ms Multicast: inferior a 0.25 ms Mensajes de 1024byte a 4 nodos Unicast: inferior a 0.75ms Multicast: inferior a 0.50ms

    Para NDDS 2.3 sobre VxWorks con PIII(450MHz) sobre Ethernet de 100Mb

    edu.red

    Características NDDS API muy simple Con sólo 4 llamadas se pueden publicar mensajes

    Suscripción en sólo 3 Disponible para C, C++ y Java Reemplaza cientos de llamadas a sockets

    NddsInit(0,NULL); HelloMsgNddsRegister(); publication = NddsPublicationCreate(“Mensaje”,”Hola”, &temp, persistence, strength); NddsPublicationSend(publication);

    edu.red

    Suscripciones NDDS Suscripciones Control de threads en tiempo real Determinismo Flujo de control Propiedades de la suscripción Plazo entrega Separación mínima

    (Gp:) sin notificación (Gp:) Nuevas notificaciones (Gp:) tiempo (Gp:) Separación mínima (Gp:) Plazo entrega (Gp:) timeout notificación

    edu.red

    Publicaciones NDDS Publicaciones Reemplazo rápido y transparente… Actualización fácil Propiedades de la publicación Fuerza Persistencia Los suscriptores toman los envíos más fuertes dentro del marco de tiempo persistente

    Toma el más fuerte Toma cualquiera tiempo persistencia

    edu.red

    Publicación-Suscripción fiable Modo best-effort minimiza la latencia. NDDS no reenvía los paquetes perdidos (streaming data) Modo fiable permite recibir los envíos en orden. NDDS reenvía automáticamente los paquetes perdidos (Comandos y eventos) (Gp:) X

    (Gp:) X

    (Gp:) X

    (Gp:) X

    Modo Best-effort Modo Fiable

    edu.red

    NDDS Cliente-Servidor Los servicios tienen nombre y fuerza El cliente define el periodo de espera y el plazo de entrega (deadline) NDDS Envía las solicitudes a los proveedores seleccionados Devuelve el más fuerte como primera respuesta Devuelve fallo si el deadline expira. Server1 Strength = 1 F(X) = 2.9 Cliente Cálculo “F(X)”? F(X) = 3 Server2 Strength = 4 F(X) = 3 Server3 Strength = 2 F(X) =3.1 (Gp:) Toma el mejor (Gp:) Toma el primero (Gp:) fallo (Gp:) tiempo (Gp:) espera (Gp:) deadline

    edu.red

    RTPS Reliability Model Control total para el programador Usa un caché de históricos para conseguir el envío en orden Esta basado en NACK, con ACKs opcional En el publicador, la aplicación manda el envío una sola vez El programador establece el tamaño de la caché NDDS guarda en caché todos los envíos hasta que todos los suscriptores lo obtienen Usa marcas de agua para el control de flujo

    edu.red

    Suscriptores: envíos en orden Cada suscriptor establece Caché de históricos para almacenar los envíos fuera de orden Deadline NDDS guarda en caché los envíos fuera de orden y solicita su reenvío Usa ACK y NACK

    (Gp:) Sin separación mínima (Gp:) Deadline (Gp:) Notificación por timeout (Gp:) Tiempo (Gp:) Deadline es mayor que la frecuencia de envío para dar tiempo para reenvíos

    edu.red

    NDDS Speculative Caching Method (Gp:) Especula con el 6 en caché. (Gp:) Pone el 5 antes del 6 en la caché. Llama a la función de callback con 5 y después 6. (Gp:) Publica 4 Pone 4 en caché (Gp:) 4 (Gp:) 5 (Gp:) 6 (Gp:) 5 (Gp:) 6 (Gp:) 6 (Gp:) 5 (Gp:) Borra 4 de caché (Gp:) Publica 5 Pone 5 en caché (Gp:) Publica 6 Pone 6 en caché (Gp:) Borra 5 y 6 de caché (Gp:) Llama a la función de callback con el 4 (Gp:) Envía 4 (Gp:) Envía 5 (Gp:) Envía 6 (Gp:) Reenvía 5 (Gp:) Ack 4 (Gp:) Solicita 5 (Gp:) Ack 5 y 6 (Gp:) Borra 5 y 6 de la caché (Gp:) Publicador (Gp:) Suscriptor

    edu.red

    Ajuste de fiabilidad Control de flujo Al publicador se le avisa cuando la cola está a punto de llenarse El publicador ralentiza la frecuencia para permitir a los suscriptores la captura Control de buffer Los publicadores y suscriptores controlan el tamaño de sus buffers Ajustan su tamaño para afinar rendimiento y memoria Modelo basado en NACK que disminuye la carga de la red

    edu.red

    Beneficios de NDDS Sin punto único de fallo Marshalling/Demarshalling Transparente Arranque aleatorio y descubrimiento dinámico Patrones de suscripción Grupos de publicación Múltiples dominios