Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DPWStrabajo
DPWStrabajo
Web Services
DPWS en la automatización industrial
5/2/2011
Asier Aranbarri Beldarrain
1. Introducción
Las siglas DPWS hacen referencia al término Devices Profile for Web Services,
una tecnología que permite que determinados dispositivos con recursos de
procesamiento limitados sean capaces de implementar y trabajar con servicios
web.
Devices Profile for Web Services fue introducido por Microsoft en el año 2004,
siendo desarrollado a partir de ahí por diferentes profesionales de la industria.
Uno de los grandes avances para la tecnología fue la estandarización de la
misma por OASIS, en 2009. Actualmente, la versión DPWS 1.1 es la más
extendida y estable [1].
El toolkit DPWS utiliza los siguientes estándares de Servicios Web: WSDL 1.1,
XML Schema, SOAP 1.2, WS-Adressing, WS-MetaDataExchange, WS-Transfer,
WS-Policy, WS-Security,WS-Discovery y WS-Eventing.(SOA middl+automation).
1
Para conseguir comprender mejor lo que se va a exponer en este documento, es
recomendable conocer los términos más importantes:
2
2. Funcionamiento
Estos mensajes se envían vía multicast por la red, de manera que todos los
Dispositivos conocen las llegadas y salidas de otros Dispositivos.
Por otro lado, un Dispositivo es capaz de hacer una búsqueda por la red para
encontrar otros Dispositivos disponibles [2]. Existen dos técnicas para ello, el
Probing y el Resolving:
Para evitar una saturación de la red, solamente los Dispositivos toman parte de
este proceso de Discovery, dejando fuera a los Servicios presentados.
3
Cuando el solicitante conozca esta información, también tiene la posibilidad de
conseguir más datos sobre los Servicios presentados de cada Dispositivo. Esto se
hace mediante el envío de un mensaje parecido al anterior, esta vez, un
GetMetadata Message.
Los Servicios presentados pueden generar eventos a los que los clientes se
pueden suscribir. Aunque el cliente se suscriba a todos los eventos, puede
especificar qué clase de información desea recibir, mediante el uso de una
especie de filtros.
4
Se trata de una oficina, con decenas de computadoras conectadas a la misma
red. Un trabajador quiere imprimir una fotografía, por lo cual debe buscar una
impresora en su red que tenga capacidad de imprimir fotografías a color.
Por ello, el trabajador necesita encontrar una impresora que disponga del
servicio que permite imprimir una fotografía.
Imprimir fotos
Trabajador Impresora
“Probe”
“Probe Match”
“Get”
Metadata
“GetMetadata”
Metadata
Comenzar operación
Operación inicializada
Suscribirse
Respuesta a suscripción
Imprimir fotografía
Impresión finalizada
5
Pasos:
6
10. Respuesta a suscripción: El servicio de impresión comunica al cliente que
la suscripción se ha realizado.
Como se puede observar, una operación tan sencilla como imprimir una
fotografía requiere una gran cantidad de mensajes entre una y otra parte; En
total, se necesitan 13 mensajes que, a su vez, representan 5 fases:
I. Descubrimiento
Los pasos 1 y 2 corresponden a la fase de “descubrimiento” (discovery)
por parte del cliente de los Dispositivos que pueden serle útiles.
II. Descripción
Los mensajes del 3 al 6 corresponden a la fase de descripción del
Dispositivo y los Servicios presentados de éste. No es una fase
obligatoria, sino opcional.
III. Control
Los mensajes 7 y 8 forman parte de la fase de control, donde el cliente y
el servicio se comunican entre ellos para asegurarse que el trabajo se
lleve a cabo.
V. Envío de eventos
En los mensajes 9 y 10 se realiza la suscripción por parte del cliente. El
servicio, en este caso, solamente envía un evento o notificación al
7
cliente, el último mensaje. El módulo encargado de gestionar los eventos
dentro de DPWS es el WS-Eventing.
Los suscriptores, por su parte, pueden decidir qué tipo de notificaciones desean
recibir y qué tipo de notificaciones prefieren pasar por alto.
8
3. Estado del arte
Motivación
Devices Profile for Web Services es, por naturaleza, una arquitectura SOA. Estas
siglas corresponden a Service Oriented Architecture, un concepto de
arquitectura software que define la utilización de servicios para dar soporte a
los requisitos de negocio [3].
La especificación OSGi propone una arquitectura montada sobre una JVM (Java
Virtual Machine) que permita la instalación, actualización y eliminación de
módulos. OSGi es en esencia un SOA montado en una JVM, y supone la
respuesta en plataforma Java a la programación modular [4].
9
La gran ventaja de DPWS comparada con estas otras tecnologías también
basadas en SOA es la estrecha relación con los servicios web; Esto implica una
gran aceptación por parte los desarrolladores, además de independencia del
lenguaje de programación [6].
Hasta la fecha, las principales demostraciones del uso de DPWS se han dado en
el ámbito de los aparatos electrónicos utilizados en el hogar.
[msnbc.msn.com…] La iniciativa Windows Rally está enfocada en conectar los
electrodomésticos con el ordenador personal, por ejemplo [7].
10
DPWS en la empresa
• Menores costes.
• Posibilidad de trabajar conjuntamente.
• Mayor confiabilidad, al estar distribuida la carga.
• Capacidad de crecimiento incremental.
11
forman parte del proceso de ingeniería: proveedores de herramientas
automatizadas, proveedores de herramientas de control, fabricantes de
herramientas mecánicas, ingenieros de control, y un largo etcétera.
Para todo esto debe existir una manera de compartir la información de una
manera sencilla, no sólo entre los miembros de diferentes lugares del mundo,
sino también entre los propios dispositivos embebidos.
Hasta el momento, los sistemas de control de una empresa han sido siempre
fragmentados, complicados de manejar y muy difíciles de cambiar o
simplemente actualizar.
13
La jerarquía presentada en este ejemplo, con un gestor encargado de gestionar
los servicios, es un ejemplo valido de arquitectura SOA para la automatización
industrial. Una de sus mayores ventajas es que toda la gestión de los servicios se
encuentra encapsulada en una sola máquina, por lo que cualquier cambio o
actualización no requerirá mucho esfuerzo. Además, las máquinas no se
comunican directamente entre sí, por lo que fuera de tiempo de ejecución
todos los trabajos relacionados con una máquina serían invisibles a las demás;
El cambio de una máquina, por ejemplo, requeriría menor tiempo y esfuerzo en
operaciones software.
• Tiempo de configuración
• Tiempo de ejecución
• Tiempo de evaluación
14
Figura 4. Fases de la coreografía
15
Proyectos
Entre los proyectos de investigación que se están desarrollando sobre DPWS, los
proyectos SOCRADES, SODA y SIRENA son los más relevantes.
El proyecto SODA (Service Oriented Device & Delivery Architecture) tiene como
objetivo crear una infraestructura construida como un ecosistema completo,
escalable para comunicaciones de alto nivel entre dispositivos. Esta
infraestructura se basa en la arquitectura SOA.
SODA mantiene una línea similar al proyecto SOCRADES, pero en su caso abarca
unos ámbitos más extensos que el de simplemente la automatización industrial,
como la domótica, telecomunicaciones, etcétera.
16
Figura 6. Arquitectura SODA [12]
Este proyecto fue el pionero en estudiar el empleo del paradigma SOA para las
comunicaciones entre dispositivos de recursos reducidos, o de bajo nivel.
17
Aplicaciones e Implementaciones
• DPWS
• Function Discovery: API cuya función es servir como una capa abstracta
entre las aplicaciones y los dispositivos, permitiendo que las primeras
puedan encontrar dispositivos utilizando como parámetro de búsqueda
la función del dispositivo.
18
Figura 7.Arquitectura Windows Rally
DPWS es una tecnología cada vez más extendida y por ello se comienza a utilizar
en un mayor número de implementaciones.
19
Conclusiones
Por ello, una vez se consigan limar sus defectos y demuestre ser una tecnología
práctica, eficiente y rentable, DPWS tendrá muchas posibilidades de
convertirse en un estándar para el ámbito de la automatización industrial.
20
4. Anexos
Figura 8 .Tamaño de mensajes DPWS para los formatos XML, EXI, FI y HTML
[17]
21
b. Ejemplo de simulación y validación: Milagaia
La simulación es uno de los campos en los que DPWS ha sido utilizado con el fin
de validar nuevos sistemas de producción.
23
c. Aplicación JAVA para control de un tanque de agua
• Cliente.java
La clase Cliente es la encargada de buscar el servicio que le devuelve la
temperatura del agua. Esta clase simboliza al operador/máquina que desea
conocer el estado del tanque.
Cuando encuentra el servicio, se suscribe a él y recibe las notificaciones.
• Reloj.java
Una clase sencilla que devuelve el tiempo actual en milisegundos.
• Servidor.java
La clase servidora es la encargada de publicar el evento (temperatura del
agua) cada 5 segundos, haya suscriptores o no. La clase servidor simboliza al
controlador del tanque de agua, que recoge los datos de un sensor
introducido en el agua y lo envía.
24
• Ventana.java
Código SWING y AWT para mostrar una ventana. No relacionado con DPWS.
• DPWS.properties
Este documento define las propiedades de todos los elementos que toman
parte en la operación: dispositivos, servicios, direccionamiento, metadata,…
Figura 11. Vista de la aplicación y la consola; Ejecución del código fuente desde Eclipse
25
5. Referencias
[3] Artículo de Jeffrey Schlimmer, “A Technical Introduction to the Devices Profile for Web
Services”, mayo de 2004.
[4]Wikipedia
es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios#Dise.C3.B1o_y_desarrollo_de_SOA
[5] Blog de Justo Aguilar, “Qué es DPWS y para qué sirve”, agosto de 2009
[7] Conferencia , Elmar Zeeb, Andreas Bobek, Hendrik Bohn, Frank Golatowski, “Lessons
learned from implementing Devices Profile for Web Services”, Cairns, febrero de 2007.
[9] Artículo, Thomas Kirkham, Robert Harrison, “SOA MIDDLEWARE AND AUTOMATION:
Services, Applications and Architectures”.
[11] Congreso, Navjot Kaur, Robert Harrison, “Web Services-Based Control Devices for Future
Generation Distributed Automation Systems”, World Congress of Engineering, 30 Junio-2 Julio
2010, Londres.
[17]Artículo, Guido Moritz, Dirk Timmermann, “Encoding and Compression for the Devices
Profile for Web Services”, 2010.
[19] Artículo, Gonçalo Candido, José Barata, “SOA in reconfigurable supply chains: A research
roadmap”, Octubre de 2008.
26