ndds: publicación-suscripción en tiempo real javier garcía carreño

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

Upload: maximo-yepes

Post on 14-Apr-2015

2 views

Category:

Documents


0 download

TRANSCRIPT

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

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

Javier García Carreño

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

Mensajería rápida y eficiente para aplicaciones en tiempo real.

Simplifica el diseño de aplicaciones.

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PS no es suficiente para TR

Los requisitos de una aplicación en TR:Uso eficiente del ancho de bandaBaja latenciaPlazos de entrega de tiempo realReposición en caliente de manera

transparenteMensajería fiable

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

Características NDDS

Comunicaciones anónimasLas aplicaciones usan nombres para

identificar tópicos, no direcciones de red.Conversión de datos automática

No es necesario el MarshallingConfiguración de red dinámica

Arranca, añade y borra los nodos en cualquier secuencia, en cualquier momento

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

Características NDDS

NDDS es rápidoMensajes de 256byte a 4 nodos

Unicast: inferior a 0.4msMulticast: inferior a 0.25 ms

Mensajes de 1024byte a 4 nodosUnicast: inferior a 0.75msMulticast: inferior a 0.50ms

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

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

Características NDDS

API muy simpleCon sólo 4 llamadas se pueden publicar

mensajes

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

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

persistence, strength);NddsPublicationSend(publication);

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

Suscripciones NDDS

Suscripciones Control de threads en tiempo real Determinismo Flujo de control

Propiedades de la suscripción Plazo entrega Separación mínima

sin notificación Nuevas notificaciones tiempo

Separación mínima

Plazo entrega timeout notificación

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

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

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

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)

XX

XX

Modo Best-effort Modo Fiable

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

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.

Server1Strength = 1

F(X) = 2.9

ClienteCálculo “F(X)”? F(X) = 3

Server2Strength = 4

F(X) = 3 Server3Strength = 2

F(X) =3.1

Toma el mejorToma el primero

fallo

tiempo

espera

deadline

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

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

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

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

Sin separación mínima

DeadlineNotificación por timeout

Tiempo

Deadline es mayor que la frecuencia de envío para dar tiempo para reenvíos

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

NDDS Speculative Caching Method

Especula con el 6 en caché.

Pone el 5 antes del 6 en la caché.Llama a la función de callback con 5 y después 6.

Publica 4Pone 4 en caché 4

5

6

56

6

5

Borra 4 de caché

Publica 5Pone 5 en caché

Publica 6Pone 6 en caché

Borra 5 y 6 de caché

Llama a la función de callback con el 4

Envía 4

Envía 5

Envía 6

Reenvía 5

Ack 4

Solicita 5

Ack 5 y 6

Borra 5 y 6 de la caché

Publicador Suscriptor

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

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

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

Beneficios de NDDS

Sin punto único de falloMarshalling/Demarshalling TransparenteArranque aleatorio y descubrimiento

dinámicoPatrones de suscripciónGrupos de publicaciónMúltiples dominios