1 / 25

NDDS: Publicación-Suscripción en Tiempo Real

NDDS: Publicación-Suscripción en Tiempo Real. Javier García Carreño. 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.

veata
Download Presentation

NDDS: Publicación-Suscripción en Tiempo Real

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NDDS: Publicación-Suscripción en Tiempo Real Javier García Carreño

  2. 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.

  3. 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.

  4. 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

  5. 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. No RT TCP IP Protocol Stack Standard IP network (Ethernet, Wireless, 1394, etc.)

  6. 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 Uso de protocolos de Internet en aplicaciones en Tiempo Real Tiempo Real No RT UDP TCP IP Protocol Stack Standard IP network (Ethernet, Wireless, 1394, etc.)

  7. 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. Aplicación Tiempo Real Middleware tiempo real No RT TCP UDP IP Protocol Stack Standard IP network (Ethernet, Wireless, 1394, etc.)

  8. 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 Modelos de Distribución de datos

  9. 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 Modelos de Distribución de datos

  10. 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 Modelos de Distribución de datos

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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);

  17. Plazo entrega timeout notificación Separación mínima Nuevas notificaciones sin notificación tiempo Suscripciones NDDS • Suscripciones • Control de threads en tiempo real • Determinismo • Flujo de control • Propiedades de la suscripción • Plazo entrega • Separación mínima

  18. 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 persistencia tiempo Toma el más fuerte Toma cualquiera

  19. X X X X 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) Modo Best-effort Modo Fiable

  20. deadline fallo espera Toma el primero tiempo Toma el mejor 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. Server2 Strength = 4 F(X) = 3 Server1 Strength = 1 F(X) = 2.9 Server3 Strength = 2 F(X) =3.1 Cliente Cálculo “F(X)”? F(X) = 3

  21. 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

  22. Sin separación mínima Notificación por timeout Deadline Tiempo Deadline es mayor que la frecuencia de envío para dar tiempo para reenvíos 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

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

  24. 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

  25. 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

More Related