Descargar

NDDS: Publicación-suscripción en tiempo real (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
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 ClienteServidor 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

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente