Una metodología basada en XML
para la configuración y despliegue
de aplicaciones DDS
Javier Sánchez Monedero
Dirigido por Juan M. López Soler
Departamento de Teoría de la Señal, Telemática Y Comunicaciones
E.T.S. Ingenierías Informáticas y de Telecomunicación
ÍNDICE
1.Motivación del problema y objetivos
2.
Solución propuesta
3.
Módulos
●El Modelo Estático
●El Modelo Dinámico
●El Coordinador
●Implementación
4.
Ejemplo de despliegue de un escenario
5.
Resultados y conclusiones
1. Motivación del problema y objetivos
¿Qué es el servicio de distribución de datos (DDS)?
Middleware
de comunicación para sistemas distribuidos
1. Motivación del problema y objetivos
DDS sobre
redes de área amplia
(WAN):
Cientos o miles de entidades DDS repartidas en decenas o
cientos de nodos
No hay experimentación previa
Experimentación =>
describir
y
coordinar
(muchas veces) un
escenario WAN
¡Se necesitan mecanismos de prototipado rápido
y despliegue de sistemas DDS!
1. Motivación del problema y objetivos
Objetivos
Proporcionar una manera flexible de
describir
escenarios DDS
Aplicaciones y entidades
Comportamiento del sistema
Metodología de desarrollo rápido
Proporcionar mecanismos de
control
:
Distribución de la descripción del escenario
Ciclo de vida de entidades
ÍNDICE
1.
Motivación del problema y objetivos
2.Solución propuesta
3.
Módulos
●El Modelo Estático
●El Modelo Dinámico
●El Coordinador
●Implementación
4.
Ejemplo de despliegue de un escenario
5.
Resultados y conclusiones
2. Solución propuesta
¿Cómo
describir
el
escenario de prueba?
Modelo Estático
Descripción XML de las
entidades DDS
Modelo Dinámico
Descripción del
comportamiento
(ej. leer y escribir)
Espacio global de datos
DDS
Aplicación DDS
Modelo Estático
Modelo Dinámico
Aplicación DDS
Modelo Estático
Modelo Dinámico
Aplicación DDS
Modelo Estático
Modelo Dinámico
Nodo de red
que ejecuta
una aplicación
DDS
2. Solución propuesta
¿Cómo
sincronizar
los
nodos?
Nodo Command Master
Nodos Command Slave
¿Cómo
interaccionar
con
el escenario?
Lenguaje semi-natural
Espacio global de datos
DDS
Command Master
Publica instrucciones
bajo un
tema
DDS
create
stop
start
Command Slaves
ÍNDICE
1.
Motivación del problema y objetivos
2.
Solución propuesta
3.Módulos
●El Modelo Estático
●El Modelo Dinámico
●El Coordinador
●Implementación
4.
Ejemplo de despliegue de un escenario
5.
Resultados y conclusiones
3.1 Módulos: el Modelo Estático
Partes del
Modelo Estático
:
Un analizador sintáctico o
parser
XML
desarrollado sobre la
biblioteca
Expat
Fichero de definición del tipo de documento (
DTD
,
Document
Type Definition
) y modelo de objetos (
DOM
,
Document Object
Model
)
El objeto DOM lo componen varios objetos llamados
DDS XML
Entities
:
Gestionan información para crear entidades y controlar su
comportamiento
Parámetros de configuración DDS: id del dominio, nombre del
tema, número de entidades DDS...
DOM e interfaz de navegación
3.1 Módulos: el Modelo Estático
Partes del
Modelo Estático
:
El DOM está compuesto de objetos
DDS XML Entity
DDS XML DomainParticipant
dds
DDS XML Publisher
DDS XML Subscriber
DDS XML DataWriter
DDS XML DataReader
DDS XML Topic
DDS XML Application
get_xml_subcriber()
get_xml_topic()
get_first_publisher()
DDS XML DataReader
3.1 Módulos: el Modelo Estático
Las entidades DDS XML:
En conjunto, proporcionan un
API
flexible
para manejar el
escenario
Envuelven a la interfaz de
navegación
por el árbol DOM
xmlDataReader.get_xml_publisher()
acceso
a la información XML
xmlDataReader.get_topicname()
creación
y
destrucción
de instancias de entidades DDS
xmlEntity.create_dds_entity(index, recursive)
inicio
&
parada
de la actividad de las entidades
xmlEntity.start_behavior(index, recursive)
3.2 Módulos: el Modelo Dinámico
El
Modelo Dinámico
describe el
comportamiento
de las
entidades DDS definidas en el Modelo Estático
La descripción se hace programando:
Un
método
de actividad y
Configurando
oyentes
o
listeners
de las entidades
El diseño minimiza el conocimiento del API de DDS necesario
Externamente, se ve como un
conjunto de tablas
de las que
buscar y extraer métodos y listeners desde el Modelo
Estático
Conexión entre modelos:
<entidad-dds>
---3.3 Módulos: Coordinador
Espacio global de datos
DDS
CommandPublisher
cmdmaster
Nodo1
App_radar
writer_a:1
Nodo2
App_radar
writer_a:1
Nodo3
App_traffic_ctr
reader_a:1
test topic data
control topic data
> load “scenario.xml
> ...
>create “writer_a” 1
>start “writer_a” 1
Todo junto:
La
coordinación
(difusión del fichero XML y órdenes) se delega en
DDS
La
interacción
con el usuario:
lenguaje semi-natural
El
despliegue
: ejecutar una aplicación en cada nodo
El
desarrollo
: traducir órdenes a llamadas al API de los Modelos
ÍNDICE
1.
Motivación del problema y objetivos
2.
Solución propuesta
3.
Módulos
●El Modelo Estático
●El Modelo Dinámico
●El Coordinador
●Implementación
4.Ejemplo de despliegue de un
escenario
5.
Resultados y conclusiones
6.
Trabajo futuro
4. Ejemplo de despliegue de un escenario
DDS
CommandPublisher
cmdmaster
Nodo
Aplicación
DataWriter
“saluda”
DataWriter
“sensores”
Nodo
Visualización
de datos
DataReader
control topic data
Demostración
datos DDS
ÍNDICE
1.
Motivación del problema y objetivos
2.
Solución propuesta
3.
Módulos
●
El Modelo Estático
●El Modelo Dinámico
●El Coordinador
4.
Ejemplo de despliegue de un escenario
5.Resultados y conclusiones
5. Resultados y conclusiones
Resultados de este proyecto:
Arquitectura para el desarrollo y despliegue de escenarios
DDS
Interfaz de programación (API) flexible
Herramientas de sincronización de aplicaciones
distribuidas
Lenguaje de órdenes flexible y extensible que permite:
Medir los tiempos de creación de entidades DDS y de
descubrimiento entre ellas
Realizar pruebas de incremento gradual de la carga de red y
actividad en los nodos
Metodología de desarrollo de aplicaciones DDS
5. Resultados y conclusiones
La
descripción mediante XML
facilita:
Rediseño de pruebas modificando unas líneas de un fichero
Introducir puntos de control en cualquier nodo
La implementación sobre DDS de la coordinación y
distribución del escenario:
Libera al desarrollador de distribuir y sincronizar ficheros
XML
Evitan dependencias de mecanismos externos de
sincronización, como NFS o SSH
Se facilita el desarrollo en redes WAN
Facilita la integración en sistemas de tiempo-real
Los resultados del desarrollo de este proyecto han sido
ÍNDICE
1.
Motivación del problema y objetivos
2.
Solución propuesta
3.
Módulos
●