SlideShare una empresa de Scribd logo
1 de 76
Descargar para leer sin conexión
Tema
04.
Aplicaciones
y
Servicios
Móviles

Aplicaciones
y
Servicios
en
Redes

Alberto
Eloy
García
Gu?érrez

Luis
Sánchez
González

DPTO.
DE
INGENIERÍA
DE
COMUNICACIONES

Este
tema
se
publica
bajo
Licencia:

CreaCve
Commons
BY‐NC‐SA
4.0

Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
2
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Contenido
• Introducción
• Servicios Web ligeros. REST
• Servicios de mensajería
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
3
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Contenido
• Introducción
– Motivación
– Retos de la prestación de servicios en movilidad
– Qué vamos a tratar – Qué no vamos a tratar
• Servicios Web ligeros. REST
• Servicios de mensajería
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
4
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Aplicaciones y servicios móviles. Motivación
• El mundo se hace móvil
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
5
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Retos de la prestación de servicios en movilidad
• Debidos a la movilidad en sí
– Localizar al dispositivo móvil o al servicio
– Soportar las desconexiones
– Hibernar de manera eficiente
– Reconectarse rápidamente
• Debidos a los dispositivos
– Capacidad de cómputo
– Batería
• Debidos a las condiciones de contorno
– Variabilidad en el contexto
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
6
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
• La movilidad ya no sólo está en el nivel de red
Retos de la prestación de servicios en movilidad
• El dispositivo se mueve entre puntos de acceso
• El dispositivo se mueve entre redes de acceso
Movilidad del cliente
• Acceso al servicio desde diferentes dispositivos
• Acceso al servicio a través de diferentes perfiles
Movilidad de la identidad
• Distribución del contenido en función del usuario
• Enrutamiento del contenido para soportar grandes anchos de banda
Movilidad del contenido
• Modelo de Servicios en la nube
• Flexibilidad en la prestación del servicio
Movilidad del servicio
• Computación en la nube
• Modelos Software-as-a-Service
Movilidad de la aplicación
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
7
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Qué vamos a tratar – Qué no vamos a tratar
• Si veremos
– Evolución del paradigma web service
– Servicios de mensajería como habilitadores de las
comunicaciones M2M
• No veremos
– Desarrollo de aplicaciones móviles
– Paradigma del Cloud computing
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
8
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Contenido
• Introducción
• Servicios Web ligeros. REST
– Introducción
– REST
– REST vs SOAP
– JSON vs XML
• Servicios de mensajería
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
9
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Introducción
• SOAP (Simple Object Access Protocol)
– No es orientado a objetos
– No es simple
• Con el pretexto de que es sencillo y está basado en la web
– lleva equívocamente a centrarse en el protocolo y los mensajes
– y no en la abstracción
– (cuestiones ya superadas incluso en RPC)
• WS-*
– Conjunto de protocolos relacionados con los servicios Web
– Decenas de especificaciones
– No implementadas (o parcialmente) muchas de ellas
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
10
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Introducción
• SOAP trata de llevar el concepto de Web
– Realmente es hacer un túnel sobre HTTP en XML
– En realidad usa HTTP como transporte y no sigue los principios de
la Web
• ¿Por qué surge REST?
– WS-* es muy completo pero muy complejo
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
11
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Introducción
• Servicio de agenda:
– Usando WS-*:
– Usando REST:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:body pb="http://www.example.com/agenda">
<pb:GetUserDetails>
<pb:UserID>12345</pb:UserID>
</pb:GetUserDetails>
</soap:Body>
</soap:Envelope>
http://www.example.com/agenda/UserDetails/12345
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
12
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Introducción
• REST (Representational State Transfer) es una técnica de
desarrollo de software web que se sustenta sobre el protocolo
HTTP.
• Es un estilo de arquitectura, no es una especificación ni un
estándar
• Surge de la tesis de doctorado de Roy Fielding
– Define restricciones para que un sistema sea REST
– Se basa en la Web estática
• Cliente – Servidor
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
13
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Fundamentos
• Recursos
– Cualquier cosa que pueda
identificar usando una URI
• URI
– Dirección universal a un
recurso
• Representación
– Lo que se envía al cliente
cuando solicita un recurso
http://weather.example.com/santander
URI
Parte
meteorológico de
Santander
Recurso
Metadata:
Content-type:
application/xhtml+xml
___________________
Data:
<!DOCTYPE html PUBLIC “…
“http://www.w3.org/...
<html xmlns=“http://www...
<head>
<title>5 Day Forecast for
Santander</title>
…
</html>
Representación
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
14
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Fundamentos
• Principios o Restricciones
– Recursos deben ser uniformemente accesibles (URI única)
– Recursos son accedidos y actualizados por operaciones GET,
POST, PUT, DELETE
– Metadatos para describir recursos
– Comunicación entre cliente y servidor debe ser “stateless”
• No depender del estado del recurso, sino de la URI que representan
• El servidor no guarda estado sobre la conversación con el cliente. El cliente
mantiene el estado y provee en la petición la información necesaria
http://www.bing.com/search?q=universidad+cantabria&qs=n&filt=all&first=1
vs
http://www.bing.com/search?q=universidad+cantabria&qs=n&filt=all&first=100
Podemos acceder al resultado 100 sin pasar por los anteriores
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
15
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Fundamentos
• En REST hay estado, pero sólo en los recursos, no en la
aplicación (o sesión).
• Una petición del cliente al servidor debe contener TODA la
información necesaria para entender la misma.
• No puede basarse en información previa asociada a la
comunicación (por ejemplo, información de sesión).
• No puede haber datos de sesiones del cliente en el servidor
– El servidor sólo guarda y maneja el estado de los recursos que aloja.
• Es el cliente el que debe guardar su estado (y enviárselo al
servidor).
• Esto permite escalabilidad (servidores más sencillos).
– Implica mayor ancho de banda, pero facilita las caches
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
16
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Fundamentos
• Servicio “stateful”
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
17
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Fundamentos
• Servicio “stateless”
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
18
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Recursos
• Dos tipos de recursos:
– Colecciones – http://example.com/resources/
– Elementos – http://example.com/resources/142
– Los métodos tienen un significado ligeramente
diferente se trate de una colección o un elemento
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
19
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – URI
• Describen los recursos
– Las URI son únicas y deben ser descriptivas.
– Al construir una URI, ésta debe ser semántica
• Usando las convenciones establecidas:
– “/” : para expresar herencia, por ejemplo:
/europa/españa/cantabria
– ” , ” : para atributos no ordenados, por ejemplo:
/europa/españa/madrid,asturias,murcia
– “;” : para atributos ordenados, por ejemplo:
/europa/españa/barcelona/lat=30.3;lng=4.11
– “?”: para modificadores, por ejemplo:
/europa/españa?search=”Huelva”
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
20
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – URI
• El recurso se identifica en la petición
HTTP
• Paso de parámetros al servicio
http://www.example.com/agenda/UserDetails?firstName=John&lastName=Doe
GET /sqlrest/CUSTOMER/1234 HTTP/1.1
Host: www.thomas-bayer.com
Accept: text/html, text/xml
URI = http://www.thomas-bayer.com/sqlrest/CUSTOMER/1234
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
21
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Operaciones
• Funcionamiento
– Orientado a recursos, no a operaciones
– Una invocación REST es una petición HTTP
– Las operaciones sobre recursos son limitadas
• CRUD
Operación Método HTTP
Create POST
Retrieve GET
Update PUT
Delete DELETE
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
22
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Operaciones
• Operaciones seguras y no seguras
– Sólo GET es una operación segura ya que es la
única que no modifica el recurso
– PUT, POST y DELETE son operaciones no seguras
ya que pueden modificar un recurso
• Operaciones idempotentes y no idempotentes
– GET, PUT y DELETE son operaciones
idempotentes ya que el resultado de la operación
no cambiará independientemente del número de
veces que se realice la operación
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
23
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Representaciones
• Un recurso tiene múltiples representaciones
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
24
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Representaciones
• Las representaciones muestran el estado actual del
recurso en un formato dado
GET /profile/1234
Host: example.com
Accept: text/html
GET /profile/1234
Host: example.com
Accept: text/x-vcard
GET /profile/1234
Host: example.com
Accept: application/mi-vocabulario-propio+xml
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
25
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Representaciones
• Cada representación también puede tener
una funcionalidad diferente
URI GET PUT POST DELETE
http://www.ejemplo.com/usuarios/ Listar Usuarios - Crear usuario -
http://www.ejemplo.com/usuarios/user1 Mostrar user1 Crear user1 Modificar user1 Borrar user1
http://www.ejemplo.com/usuarios/user1/mapa
Mostrar Mapa
user1
Crear Mapa
user1
- Borrar Mapa user1
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
26
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Uso
• Ejemplo de invocación REST
URI de la solicitud
Método
Formatos aceptados para
la representación
Código de respuesta
Formato en que se
envía la respuesta
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
27
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Ejemplos
• http://www.thomas-bayer.com/sqlrest/
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
28
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Ejemplos
• Twitter REST API
– https://dev.twitter.com/docs/api/1.1
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
29
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Ejemplos
• http://chart.apis.google.com/chart?cht=p3&ch
d=t:65,5,20,10&chco=0000FF&chs=900x300
&chl=January|February|March|April
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
30
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Ejemplos
• http://chart.apis.google.com/chart?cht=p3&chd=t:65,5
,20,10&chco=0000FF&chs=900x300&chl=January|Fe
bruary|March|April
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
31
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – Ventajas
• Maximiza la reutilización
– Todos los recursos tienen identificadores = hacen más grande
la Web
– La visibilidad de los recursos que forman una
aplicación/servicio permite usos no previstos
• Minimiza el acoplamiento y permite la evolución
– La interfaz uniforme esconde detalles de implementación
– El uso de hipertexto permite que sólo la primera URL usada
para acceder acople un sistema a otro
• Elimina condiciones de fallo parcial
– Fallo del servidor no afecta al cliente
– El estado siempre puede ser recuperado como un recurso
• Escalado sin límites
– Los servicios pueden ser replicados en cluster, cacheados y
ayudados por sistemas intermediarios
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
32
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST vs WS-*
REST WS-*
Concepto “La Web es el universo de la
información accesible globalmente”
(Tim Berners Lee)
“La Web es el transporte universal de
mensajes”
Características Las operaciones se definen en los
mensajes.
Una dirección única para cada
instancia del proceso.
Cada objeto soporta las operaciones
estándares definidas.
Componentes débilmente
acoplados.
Las operaciones son definidas como
puertos WSDL.
Dirección única para todas las
operaciones.
Múltiple instancias del proceso comparten la
misma operación.
Componentes fuertemente acoplados.
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
33
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST vs WS-*
REST WS-*
Ventajas
declaradas
Bajo consumo de recursos.
Las instancias del proceso son creadas
explícitamente.
El cliente no necesita información de
enrutamiento a partir de la URI inicial.
Los clientes pueden tener una interfaz
“listener” (escuchadora) genérica para las
notificaciones.
Generalmente fácil de construir y adoptar.
Fácil (generalmente) de utilizar.
La depuración es posible.
Las operaciones complejas pueden ser
escondidas detrás de una fachada.
Envolver APIs existentes es sencillo
Incrementa la privacidad.
Herramientas de desarrollo.
Posibles
desventajas
Gran número de objetos.
Manejar el espacio de nombres (URIs)
puede ser engorroso.
La descripción sintáctica/semántica
muy informal (orientada al usuario).
Pocas herramientas de desarrollo.
Los clientes necesitan saber las
operaciones y su semántica antes del
uso.
Los clientes necesitan puertos dedicados
para diferentes tipos de notificaciones.
Las instancias del proceso son creadas
implícitamente.
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
34
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST vs WS-*
REST WS-*
Protocolo
XML autodescriptivo. XML Schema
HTTP Independiente del transporte
HTTP es un protocolo de aplicación HTTP es un protocolo de transporte
XML
HTTP
GET
HTTP
PUT
HTTP
POST
HTTP
DELETE
URI del recurso
Aplicación
SOAP (WS-*)
SMTP
HTTP
POST
MQ..
URI del endpoint
Aplicación
Cliente
HTTP
Cliente
REST
Mensaje HTTP
Operación HTTP
GET | PUT | POST | DELETE
Payload XML
Representación del recurso
Servidor
HTTP
SSL &
HTTP Auth
Aplicación
REST
HTTP/S HTTP/S Cliente
HTTP
Cliente
SOAP
SOAP Envelope XML
SOAP Header
Soap Body
Servidor
HTTP
Aplicación
Servidor
SOAP
HTTP HTTP
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
35
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST vs WS-*
REST WS-*
Descripción
del servicio
Confía en documentos orientados al
usuario que define las direcciones de
petición y las respuestas
WSDL
Interactuar con el servicio supone horas
de testeado y depuración de URIs.
Se pueden construir automáticamente
stubs (clientes) por medio del WSDL
Gestión del
estado
El servidor no tiene estado (stateless). El servidor puede mantener el estado de
la conversación.
Los clientes mantienen el estado
siguiendo los enlaces.
Los clientes mantienen el estado
suponiendo el estado del servicio.
Seguridad HTTPS WS-Security
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
37
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – JSON
• JSON (JavaScript Object Notation)
– Formato de intercambio de información ligero
– Fácil de generar y parsear
– Auto-descriptivo y fácil de entender
– Independiente del lenguaje de programación
– Capaz de reproducir jerarquías en los datos
– Tipo MIME: application/json
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
38
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – JSON
• Un objeto JSON es una colección de duplas
nombre/valor
– Los objetos se definen entre los signos { y }
– Los miembros de un objeto son duplas nombre/valor donde
nombre y valor se separan por el signo :
– Las distintas duplas de un objeto se separan por el signo ,
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
39
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – JSON
• El campo valor dentro de una dupla puede ser:
– Un string
– Un número
– Un objeto
– Un array
– Un boolean (TRUE o FALSE)
– Puede estar vacío
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
40
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – JSON
• Los array son conjuntos de valores
– Se definen entre los signos [ y ]
– Los valores se separan por el signo ,
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
41
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
REST – JSON
• Ejemplo de documento JSON
{
"companyName":"Example.S.A" ,
"address":"Penny Lane 123",
"phoneNumber":“+1555-123-456",
"numberOfEmployees":3 ,
"employees": [
{"firstName":"John" , "lastName":"Doe" },
{"firstName":"Anna" , "lastName":"Smith" },
{"firstName":"Peter" , "lastName":"Jones" }
]
"isActive":true
}
Duplas nombre:valor
Array de objetos
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
42
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
JSON vs XML
• Semejanzas
– Basados en texto plano
– Auto-descriptivos (orientados al humano)
– Soporta jerarquías (valores dentro de valores)
– Fácil de parsear
• Diferencias
– Sin etiquetas de final
– Más corto
– Más rápido de leer y escribir
– Usa arrays
– No hay palabras reservadas
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
43
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Contenido
• Introducción
• Servicios Web ligeros. REST
• Servicios de mensajería
– Introducción
– MQTT
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
44
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Internet de las Cosas
• Billones de cosas conectadas entre sí
• Aplicaciones variadas
– http://www.youtube.com/watch?v=s9nrm8q5eGg
• Necesidades variadas
– Heterogeneidad
– Control
• Gestión
• Capacidades de las cosas
• Estado de los dispositivos
– Modelos de comunicación
– Propiedades de la comunicación
• Seguridad, QoS, Robustez
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
45
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Internet de las Cosas
• ¿Qué hay de malo en los protocolos de la Internet actual?
– HTTP revolucionó la forma en la que las personas consumen
información
– Tiene un único modelo sencillo pero válido: Mando una petición
y Leo una respuesta
– Disponible en múltitud de dispositivos hoy en día
• Los servicios disponibles en la Internet de las Cosas
tienen retos distintos
– Las fuentes de información no son conocidas
– Modelo basado en eventos:
• Uno a muchos
• Escuchar permanentemente
• Volúmenes de información enormes
• A través de redes no fiables
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
46
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Internet de las Cosas
• Otros retos a tener en cuenta:
– Volumen = Coste
– Consumo de batería
– Pseudo tiempo real
– Seguridad
– Fiabilidad
– Escalabilidad
• No hay una solución Extremo a Extremo
– Divide y vencerás
– Clusterizar la Internet de las Cosas
• No muy diferente a las subredes de Internet
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
47
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Internet de las Cosas
• Arquitectura de red jerárquica
Nodo sensor / actuador
Repetidor
Pasarela o Gateway
Comunicación Peer-to-Peer
Internet / Intranet
Nivel 1
Nivel 2
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
48
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
Prestación de servicios orientada a eventos
• Otros protocolos que cubren esta parte del problema
– MQTT
– XMPP
– AMQP
– CoAP
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
49
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT
• Message Queing Telemetry Transport (MQTT)
– Heredero del modelo de comunicación del intercambio de
mensajes
– Resumen de sus autores:
• “A light weight event and message oriented protocol allowing devices to
asynchronously communicate efficiently across constrained networks to
remote systems”
– Basado en un broker que hace de intermediario entre los
productores de mensajes y sus consumidores
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
50
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT
• Criterios de diseño
– Conectar fácilmente el mundo físico (M2M) al mundo IT
– Soportar redes poco fiables (bajo ancho de banda, alta
latencia, no fiable, caras (coste por byte)
– Recursos a nivel computacional limitados (controladores de 8
bits, 256Kb RAM)
– Acoplamiento ligero para soportar entornos dinámicos donde
grandes cantidades de mensajes han de intercambiarse de
formas no previstas de manera anticipada.
– Permitir determinadas calidades en la entrega de mensajes
fruto de los compromisos entre ancho de banda, disponibilidad
y garantía de entrega
– Capaz de soportar grandes cantidades de dispositivos (10K
clientes MQTT)
– Simple para los desarrolladores
– Protocolo abierto
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
51
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT
• Protocolo basado en el modelo Publish – Subscribe
– Permite que un mensaje publicado por un solo productor sea recibido por múltiples consumidores
– El productor envía (publica) un mensaje (publicación) a un asunto (topic).
– Los consumidores reciben todos los mensajes que llegan a los asuntos a los que están subscritos
– Un servidor se encarga de asociar publicaciones con subscripciones
• Si no hay asociaciones el mensaje se descarta
• Si las hay, el mensaje se envía a los consumidores correspondientes
Productor
Consumidor
Consumidor
Consumidor
Topic
Mensaje
A
Mensaje
A
Mensaje
A
Mensaje
A
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
52
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Topics
• Forman el espacio de nombres
– Es jerárquico con cada “sub-topic” separado por una “/”
– Por ejemplo:
• Una casa publica información sobre sí misma
– <país>/<región>/<ciudad>/<código_postal>/<casa>/consumoElectricidad
– <país>/<región>/<ciudad>/<código_postal>/<casa>/estadoAlarma
• Y se subscribe a los comandos de control
– <país>/<región>/<ciudad>/<código_postal>/<casa>/activarCalefaccion
– Se pueden usar wildcards
• Para un nivel se usa “+”
• Para múltiples niveles se usa “#”
• Por ejemplo:
– ES/Cantabria/Santander/+/+/consumoElectricidad
– ES/Cantabria/Santander/39005/#
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
53
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Subscripciones y Publicaciones
• Pueden ser permanentes (durable) o volátiles (non-
durable)
– Permanentes
• Si el consumidor está conectado los mensajes se envían inmediatamente.
• Si el consumidor no está conectado los mensajes se guardan en el servidor
hasta que el consumidor se vuelve a conectar.
– Volátiles
• La subscripción expira si el consumidor se desconecta del servidor.
• Un mensaje puede ser retenido (retained)
– Un productor puede marcar un mensaje como retained
– El broker guarda el último mensaje retained que llega a
cualquier topic
– Los nuevos consumidores subscritos a un topic reciben
inmediatamente el último mensaje retenido
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
54
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Uso eficiente de recursos
• Protocolo mínimo
– El mensaje más pequeño mide 2 bytes
• Basado en el paradigma “push”
– Cliente -> Servidor y Servidor -> Cliente
• Soporta interrupciones en la conexión
– El servidor tiene persistencia
• Soporta el concepto de sesión
– Mediante mensajes de keep-alive se sabe si el consumidor se ha
desconectado
• Testeado sobre múltiples redes (vsat, GPRS, GSM, etc.)
• Ofrece diferentes calidades en la entrega de mensajes
– 0: Entrega de mensajes como mucho una vez
– 1: Entrega asegurada (puede que por duplicado)
– 2: Entrega asegurada una única vez
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
55
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Formato del mensaje
• Cabecera fija de 2 bytes
– MSB seguido de LSB
• Cabecera de longitud variable
– Sólo para algunos mensajes
• Campo de datos
– Sólo para CONNECT, SUBSCRIBE y SUBACK
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
56
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Formato del mensaje
• Tipo de mensaje
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
57
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Formato del mensaje
• Flags
– DUP
• Fijada cuando se reenvia un mensaje de tipo PUBLISH, PUBREL,
SUBSCRIBE or UNSUBSCRIBE.
• El valor del flag QoS es mayor que 0
• Requiere de un reconocimiento
• La cabecera variable contiene un ID de mensaje
– QoS – Para los mensajes de tipo PUBLISH
– RETAIN – Sólo para los mensajes de tipo PUBLISH
• El cliente que lo publica
• El servidor a los nuevos subscriptores
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
58
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Formato del mensaje
• Longitud del mensaje
– Exceptuando la cabecera fija
– 1 a 4 bytes
• 7 bits de cada byte para la longitud
• El bit 8 es un “continuation bit”
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
59
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Formato del mensaje
• Cabecera variable: Sucesión de cabeceras
dependiendo de los mensajes
– Protocol name (UTF-8): 1ª en los mensajes CONNECT
– Protocol version (1 byte): 2ª en los mensajes CONNECT
– Connect flags (1 byte): 3ª en los mensajes CONNECT
• Bit 0 reservado
• Clean session flag (bit 1) – Maneja la persistencia entre sesiones
• Will flag (bit 2) – El cliente deja “testamento”
• Will QoS (bits 3 y 4) – Nivel de QoS para el “testamento”
• Will Retain (bit 5) – Indica si el “testamento” se debe retener
• Password flag (bit 6) – Incluye password al conectar
• User Name flag (bit 7) – Incluye nombre de usuario al conectar
– Keep-alive timer (2 bytes): 4ª en los mensajes CONNECT
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
60
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Formato del mensaje
• Cabecera variable: Sucesión de cabeceras
dependiendo de los mensajes
– Connect return code (1 byte): 2ª en los mensajes
CONNACK
– Topic name: 1ª en los mensajes PUBLISH
• Nombre del Topic en UTF-8
• Payload
– CONNECT
• ID de cliente (UTF-8): Obligatorio
• Will Topic (UTF-8): Opcional
• Will Message (UTF-8): Opcional
• User Name (UTF-8): Opcional
• Password (UTF-8): Opcional
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
61
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Formato del mensaje
• Payload
– SUBSCRIBE
• Topic Name (UTF-8): Obligatorio
• QoS Level (1 byte): Obligatorio
• Es posible subscribirse a varios Topic con el mismo mensaje
– SUBACK
• QoS Level Granted (1 byte): Obligatorio
• Lista en el mismo orden que el SUBSCRIBE correspondiente
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
62
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• CONNECT
– Cliente a Servidor
– Crea la sesión de nivel de aplicación
• CONNACK
– Servidor a Cliente
– Respuesta al mensaje CONNECT
Cabecera
Fija
Cabecera Variable Payload
Protocol
Name
(UTF-8)
Protocol
Version
(1 byte)
Connect
Flags
(1 byte)
Keep-alive
Timer
(2 bytes)
Client ID
(UTF-8)
(3 – 25 bytes)
Will Topic
(UTF-8)
Will
Message
(UTF-8)
User
Name
(UTF-8)
Password
(UTF-8)
Cabecera Fija Cabecera Variable
Reservado
(1 byte)
Connect return code
(1 byte)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
63
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• PUBLISH
– Cliente a Servidor y Servidor a Cliente
– Información que se quiere distribuir
– Asociado a un Topic (a.k.a. Subject o Channel)
Cabecera Fija Cabecera Variable Payload
Topic Name
(UTF-8)
Message ID
(2 bytes)
Data
(max. 256 MB)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
64
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• PUBACK - Publish acknowledgment
– Respuesta al mensaje PUBLISH con QoS = 1
– Servidor a Cliente
• Hacia el productor del mensaje
– Cliente a Servidor
• Desde un subscriptor
Cabecera Fija Cabecera Variable
Message ID
(2 bytes)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
65
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• PUBREC - Assured publish received
– Respuesta al mensaje PUBLISH con QoS = 2
– Servidor a Cliente
• Hacia el productor del mensaje
– Cliente a Servidor
• Desde un subscriptor
Cabecera Fija Cabecera Variable
Message ID
(2 bytes)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
66
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• PUBREL - Assured Publish Release
– Respuesta al mensaje PUBREC
– Servidor a Cliente
• Hacia el consumidor del mensaje PUBLISH con QoS = 2
– Cliente a Servidor
• Desde el productor del mensaje PUBLISH con QoS = 2
Cabecera Fija Cabecera Variable
Message ID
(2 bytes)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
67
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• PUBCOMP - Assured publish complete
– Respuesta al mensaje PUBREL
– Servidor a Cliente
• Hacia el productor del mensaje
– Cliente a Servidor
• Desde un subscriptor
Cabecera Fija Cabecera Variable
Message ID
(2 bytes)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
68
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
Productor Broker Consumidor
Productor Broker Consumidor
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
69
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
Productor Broker Consumidor
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
70
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• SUBSCRIBE
– Cliente a Servidor
– Especifica el nivel de QoS
• SUBACK
– Respuesta al mensaje SUBSCRIBE
– Servidor a Cliente
Cabecera
Fija
Cabecera
Variable
Payload
Message ID
(2 bytes)
Topic
Name1
(UTF-8)
QoS
Level
(1 byte)
Topic
Name2
(UTF-8)
QoS
Level
(1 byte)
… Topic
NameN
(UTF-8)
QoS
Level
(1 byte)
Cabecera
Fija
Cabecera
Variable
Payload
Message ID
(2 bytes)
Granted
QoS
(1 byte)
Granted
QoS
(1 byte)
… Granted
QoS
(1 byte)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
71
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• UNSUBSCRIBE
– Cliente a Servidor
– Especifica los Topic de los que se quiere des-registrar
• UNSUBACK
– Respuesta al mensaje UNSUBSCRIBE
– Servidor a Cliente
Cabecera
Fija
Cabecera
Variable
Payload
Message ID
(2 bytes)
Topic
Name1
(UTF-8)
Topic
Name2
(UTF-8)
… Topic
NameN
(UTF-8)
Cabecera Fija Cabecera Variable
Message ID
(2 bytes)
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
72
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Tipos de mensaje
• PINGREQ
– Cliente a Servidor
– Mensaje de keep-alive
• PINGRESP
– Respuesta al mensaje PINGREQ
– Servidor a Cliente
• DISCONNECT
– Cliente a Servidor
– Antes de cerrar la conexión TCP
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
73
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Flujos
• Nivel de QoS = 0
• Nivel de QoS = 1
Cliente Mensaje y Dirección Broker
QoS = 0
PUBLISH
--------------->
Acción: Publicar el mensaje a
los subscriptores
Cliente Mensaje y Dirección Broker
QoS = 1
DUP = 0
Message ID = X
Acción: Guardar el mensaje
PUBLISH
--------------->
Acciones:
• Guardar el mensaje
• Publicar el mensaje a los
subscriptores
• Borrar el mensaje
Acción: Eliminar el mensaje
PUBACK
<----------------
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
74
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Flujos
• Nivel de QoS = 2
Cliente Mensaje y Dirección Broker
QoS = 1
DUP = 0
Message ID = X
Acción: Guardar el mensaje
PUBLISH
--------------->
Acción: Guardar el mensaje
PUBREC
<----------------
Message ID = X
Message ID = X
PUBREL
--------------->
Acciones:
• Publicar el mensaje a los
subscriptores
• Borrar el mensaje
Acción: Eliminar el mensaje
PUBCOMP
<----------------
Message ID = X
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
75
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Implementaciones
• La especificación es abierta
– http://www.ibm.com/developerworks/webserices/library/ws-
mqtt/index.html
• Multiples implementaciones disponibles
– Desde librerías profesionales hasta proyectos individuales
• Librerías ligeras (30 Kb en C; 64 Kb en Java)
– http://mqtt.org
• API fácil de usar a través de verbos bien definidos
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
76
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Beneficios frente a HTTP
• Entrega de mensajes tipo “push”
– HTTP soporta “push” del cliente hacia el servidor pero del servidor al cliente
es tipo “poll”
• Uso eficiente de la red
– Volumen de tráfico mucho menor
• Soporta las desconexiones
• Paradigma uno a muchos
3G WiFi
HTTPS MQTT HTTPS MQTT
rx msg / hora 1708 160278 3628 263314
% bateria / msg 0.01709 0.0001 0.00095 0.00002
msgs 240 / 1024 1024 / 1024 524 / 1024 1024 / 1024
tx msg / hora 1926 21685 5229 23184
% bateria / msg 0.00975 0.00082 0.00104 0.00016
Aplicaciones y servicios móviles
Aplicaciones y Servicios en Redes
Luis Sánchez
77
Grupo de Ingeniería Telemática (G.I.T)
DICOM / Universidad de Cantabria
MQTT – Referencias
• Especificación abierta
– http://public.dhe.ibm.com/software/dw/webservices/ws-
mqtt/mqtt-v3r1.html
• Comunidad
– http://mqtt.org
• Estandar
– https://www.oasis-
open.org/committees/tc_home.php?wg_abbrev=m
qtt

Más contenido relacionado

Similar a ASR_Tema_4.pdf

Formato_Información general.pptx
Formato_Información general.pptxFormato_Información general.pptx
Formato_Información general.pptxKarla Silva
 
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big DataFuture Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big DataDiego López-de-Ipiña González-de-Artaza
 
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Christian Rodriguez
 
PaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUT
PaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUTPaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUT
PaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUTDomotys
 
Modelado Avanzado - Arquitecturas Orientadas a Servicios
Modelado Avanzado - Arquitecturas Orientadas a ServiciosModelado Avanzado - Arquitecturas Orientadas a Servicios
Modelado Avanzado - Arquitecturas Orientadas a ServiciosGrial - University of Salamanca
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones webRuthReyes71
 
Modelado de servicios en contextos web. Aplicación en ecosistemas de aprendizaje
Modelado de servicios en contextos web. Aplicación en ecosistemas de aprendizajeModelado de servicios en contextos web. Aplicación en ecosistemas de aprendizaje
Modelado de servicios en contextos web. Aplicación en ecosistemas de aprendizajeGrial - University of Salamanca
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidorJonathan
 
Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...
Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...
Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...Nexica
 

Similar a ASR_Tema_4.pdf (20)

Formato_Información general.pptx
Formato_Información general.pptxFormato_Información general.pptx
Formato_Información general.pptx
 
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big DataFuture Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
 
S4-PD2.pptx
S4-PD2.pptxS4-PD2.pptx
S4-PD2.pptx
 
S4-PD2.pptx
S4-PD2.pptxS4-PD2.pptx
S4-PD2.pptx
 
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
 
PaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUT
PaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUTPaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUT
PaaS la plataforma como servicio IoT-M2M, ANTONIO SÁNCHEZ, CARRIOTS/WAIRBUT
 
uso de las tics
uso de las ticsuso de las tics
uso de las tics
 
expo_svr_vpn.pptx
expo_svr_vpn.pptxexpo_svr_vpn.pptx
expo_svr_vpn.pptx
 
Hacia la Internet del Futuro: Web 3.0, Parte 1
Hacia la Internet del Futuro: Web 3.0, Parte 1Hacia la Internet del Futuro: Web 3.0, Parte 1
Hacia la Internet del Futuro: Web 3.0, Parte 1
 
Modelado Avanzado - Arquitecturas Orientadas a Servicios
Modelado Avanzado - Arquitecturas Orientadas a ServiciosModelado Avanzado - Arquitecturas Orientadas a Servicios
Modelado Avanzado - Arquitecturas Orientadas a Servicios
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
Modelado de servicios en contextos web. Aplicación en ecosistemas de aprendizaje
Modelado de servicios en contextos web. Aplicación en ecosistemas de aprendizajeModelado de servicios en contextos web. Aplicación en ecosistemas de aprendizaje
Modelado de servicios en contextos web. Aplicación en ecosistemas de aprendizaje
 
¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
 
Computacion en la nube
Computacion en la nubeComputacion en la nube
Computacion en la nube
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Resumen capitulo 3 y 4
Resumen capitulo 3 y 4Resumen capitulo 3 y 4
Resumen capitulo 3 y 4
 
S4-PD2-REST-REST FULL
S4-PD2-REST-REST FULLS4-PD2-REST-REST FULL
S4-PD2-REST-REST FULL
 
S4-PD2-2.2. REST
S4-PD2-2.2. RESTS4-PD2-2.2. REST
S4-PD2-2.2. REST
 
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF) Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
 
Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...
Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...
Jordi Mas, CEO Nexica - cloud gestionado evolución de los servicios tic empre...
 

Más de AnonymousNdBOr4

Software Corporativo UM - Tema-2-CMS.pdf
Software Corporativo UM - Tema-2-CMS.pdfSoftware Corporativo UM - Tema-2-CMS.pdf
Software Corporativo UM - Tema-2-CMS.pdfAnonymousNdBOr4
 
Software Corporativo UM - Tema-1-Introduccion.pdf
Software Corporativo UM - Tema-1-Introduccion.pdfSoftware Corporativo UM - Tema-1-Introduccion.pdf
Software Corporativo UM - Tema-1-Introduccion.pdfAnonymousNdBOr4
 
Redes Multiservicio UGR - Tema4.pdf
Redes Multiservicio UGR - Tema4.pdfRedes Multiservicio UGR - Tema4.pdf
Redes Multiservicio UGR - Tema4.pdfAnonymousNdBOr4
 
Redes Multiservicio UGR - Tema3.pdf
Redes Multiservicio UGR - Tema3.pdfRedes Multiservicio UGR - Tema3.pdf
Redes Multiservicio UGR - Tema3.pdfAnonymousNdBOr4
 
Redes Multiservicio UGR - Tema2.pdf
Redes Multiservicio UGR - Tema2.pdfRedes Multiservicio UGR - Tema2.pdf
Redes Multiservicio UGR - Tema2.pdfAnonymousNdBOr4
 
Redes Multiservicio UGR - Tema1.pdf
Redes Multiservicio UGR - Tema1.pdfRedes Multiservicio UGR - Tema1.pdf
Redes Multiservicio UGR - Tema1.pdfAnonymousNdBOr4
 
ParadigmaCloudComputing.pdf
ParadigmaCloudComputing.pdfParadigmaCloudComputing.pdf
ParadigmaCloudComputing.pdfAnonymousNdBOr4
 
Programacion Web UGR - Tema 4.pdf
Programacion Web UGR - Tema 4.pdfProgramacion Web UGR - Tema 4.pdf
Programacion Web UGR - Tema 4.pdfAnonymousNdBOr4
 
Programacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdfProgramacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdfAnonymousNdBOr4
 
Programacion Web UGR - Tema 6.pdf
Programacion Web UGR - Tema 6.pdfProgramacion Web UGR - Tema 6.pdf
Programacion Web UGR - Tema 6.pdfAnonymousNdBOr4
 
Programacion Web UGR - Tema 5.pdf
Programacion Web UGR - Tema 5.pdfProgramacion Web UGR - Tema 5.pdf
Programacion Web UGR - Tema 5.pdfAnonymousNdBOr4
 
Programacion Web UGR - Tema 3.pdf
Programacion Web UGR - Tema 3.pdfProgramacion Web UGR - Tema 3.pdf
Programacion Web UGR - Tema 3.pdfAnonymousNdBOr4
 
Programacion Web UGR - Tema 2.pdf
Programacion Web UGR - Tema 2.pdfProgramacion Web UGR - Tema 2.pdf
Programacion Web UGR - Tema 2.pdfAnonymousNdBOr4
 
Programacion Web UGR - Tema 1.pdf
Programacion Web UGR - Tema 1.pdfProgramacion Web UGR - Tema 1.pdf
Programacion Web UGR - Tema 1.pdfAnonymousNdBOr4
 

Más de AnonymousNdBOr4 (20)

Software Corporativo UM - Tema-2-CMS.pdf
Software Corporativo UM - Tema-2-CMS.pdfSoftware Corporativo UM - Tema-2-CMS.pdf
Software Corporativo UM - Tema-2-CMS.pdf
 
Software Corporativo UM - Tema-1-Introduccion.pdf
Software Corporativo UM - Tema-1-Introduccion.pdfSoftware Corporativo UM - Tema-1-Introduccion.pdf
Software Corporativo UM - Tema-1-Introduccion.pdf
 
Redes Multiservicio UGR - Tema4.pdf
Redes Multiservicio UGR - Tema4.pdfRedes Multiservicio UGR - Tema4.pdf
Redes Multiservicio UGR - Tema4.pdf
 
Redes Multiservicio UGR - Tema3.pdf
Redes Multiservicio UGR - Tema3.pdfRedes Multiservicio UGR - Tema3.pdf
Redes Multiservicio UGR - Tema3.pdf
 
Redes Multiservicio UGR - Tema2.pdf
Redes Multiservicio UGR - Tema2.pdfRedes Multiservicio UGR - Tema2.pdf
Redes Multiservicio UGR - Tema2.pdf
 
Redes Multiservicio UGR - Tema1.pdf
Redes Multiservicio UGR - Tema1.pdfRedes Multiservicio UGR - Tema1.pdf
Redes Multiservicio UGR - Tema1.pdf
 
ParadigmaCloudComputing.pdf
ParadigmaCloudComputing.pdfParadigmaCloudComputing.pdf
ParadigmaCloudComputing.pdf
 
Programacion Web UGR - Tema 4.pdf
Programacion Web UGR - Tema 4.pdfProgramacion Web UGR - Tema 4.pdf
Programacion Web UGR - Tema 4.pdf
 
Programacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdfProgramacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdf
 
Programacion Web UGR - Tema 6.pdf
Programacion Web UGR - Tema 6.pdfProgramacion Web UGR - Tema 6.pdf
Programacion Web UGR - Tema 6.pdf
 
Programacion Web UGR - Tema 5.pdf
Programacion Web UGR - Tema 5.pdfProgramacion Web UGR - Tema 5.pdf
Programacion Web UGR - Tema 5.pdf
 
Programacion Web UGR - Tema 3.pdf
Programacion Web UGR - Tema 3.pdfProgramacion Web UGR - Tema 3.pdf
Programacion Web UGR - Tema 3.pdf
 
Programacion Web UGR - Tema 2.pdf
Programacion Web UGR - Tema 2.pdfProgramacion Web UGR - Tema 2.pdf
Programacion Web UGR - Tema 2.pdf
 
Programacion Web UGR - Tema 1.pdf
Programacion Web UGR - Tema 1.pdfProgramacion Web UGR - Tema 1.pdf
Programacion Web UGR - Tema 1.pdf
 
Tema7.pdf
Tema7.pdfTema7.pdf
Tema7.pdf
 
Tema6.pdf
Tema6.pdfTema6.pdf
Tema6.pdf
 
Tema5.pdf
Tema5.pdfTema5.pdf
Tema5.pdf
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Tema3.pdf
Tema3.pdfTema3.pdf
Tema3.pdf
 
Tema2.pdf
Tema2.pdfTema2.pdf
Tema2.pdf
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 

Último (19)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 

ASR_Tema_4.pdf

  • 2. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 2 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Contenido • Introducción • Servicios Web ligeros. REST • Servicios de mensajería
  • 3. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 3 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Contenido • Introducción – Motivación – Retos de la prestación de servicios en movilidad – Qué vamos a tratar – Qué no vamos a tratar • Servicios Web ligeros. REST • Servicios de mensajería
  • 4. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 4 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Aplicaciones y servicios móviles. Motivación • El mundo se hace móvil
  • 5. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 5 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Retos de la prestación de servicios en movilidad • Debidos a la movilidad en sí – Localizar al dispositivo móvil o al servicio – Soportar las desconexiones – Hibernar de manera eficiente – Reconectarse rápidamente • Debidos a los dispositivos – Capacidad de cómputo – Batería • Debidos a las condiciones de contorno – Variabilidad en el contexto
  • 6. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 6 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria • La movilidad ya no sólo está en el nivel de red Retos de la prestación de servicios en movilidad • El dispositivo se mueve entre puntos de acceso • El dispositivo se mueve entre redes de acceso Movilidad del cliente • Acceso al servicio desde diferentes dispositivos • Acceso al servicio a través de diferentes perfiles Movilidad de la identidad • Distribución del contenido en función del usuario • Enrutamiento del contenido para soportar grandes anchos de banda Movilidad del contenido • Modelo de Servicios en la nube • Flexibilidad en la prestación del servicio Movilidad del servicio • Computación en la nube • Modelos Software-as-a-Service Movilidad de la aplicación
  • 7. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 7 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Qué vamos a tratar – Qué no vamos a tratar • Si veremos – Evolución del paradigma web service – Servicios de mensajería como habilitadores de las comunicaciones M2M • No veremos – Desarrollo de aplicaciones móviles – Paradigma del Cloud computing
  • 8. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 8 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Contenido • Introducción • Servicios Web ligeros. REST – Introducción – REST – REST vs SOAP – JSON vs XML • Servicios de mensajería
  • 9. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 9 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Introducción • SOAP (Simple Object Access Protocol) – No es orientado a objetos – No es simple • Con el pretexto de que es sencillo y está basado en la web – lleva equívocamente a centrarse en el protocolo y los mensajes – y no en la abstracción – (cuestiones ya superadas incluso en RPC) • WS-* – Conjunto de protocolos relacionados con los servicios Web – Decenas de especificaciones – No implementadas (o parcialmente) muchas de ellas
  • 10. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 10 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Introducción • SOAP trata de llevar el concepto de Web – Realmente es hacer un túnel sobre HTTP en XML – En realidad usa HTTP como transporte y no sigue los principios de la Web • ¿Por qué surge REST? – WS-* es muy completo pero muy complejo
  • 11. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 11 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Introducción • Servicio de agenda: – Usando WS-*: – Usando REST: <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body pb="http://www.example.com/agenda"> <pb:GetUserDetails> <pb:UserID>12345</pb:UserID> </pb:GetUserDetails> </soap:Body> </soap:Envelope> http://www.example.com/agenda/UserDetails/12345
  • 12. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 12 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Introducción • REST (Representational State Transfer) es una técnica de desarrollo de software web que se sustenta sobre el protocolo HTTP. • Es un estilo de arquitectura, no es una especificación ni un estándar • Surge de la tesis de doctorado de Roy Fielding – Define restricciones para que un sistema sea REST – Se basa en la Web estática • Cliente – Servidor
  • 13. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 13 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Fundamentos • Recursos – Cualquier cosa que pueda identificar usando una URI • URI – Dirección universal a un recurso • Representación – Lo que se envía al cliente cuando solicita un recurso http://weather.example.com/santander URI Parte meteorológico de Santander Recurso Metadata: Content-type: application/xhtml+xml ___________________ Data: <!DOCTYPE html PUBLIC “… “http://www.w3.org/... <html xmlns=“http://www... <head> <title>5 Day Forecast for Santander</title> … </html> Representación
  • 14. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 14 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Fundamentos • Principios o Restricciones – Recursos deben ser uniformemente accesibles (URI única) – Recursos son accedidos y actualizados por operaciones GET, POST, PUT, DELETE – Metadatos para describir recursos – Comunicación entre cliente y servidor debe ser “stateless” • No depender del estado del recurso, sino de la URI que representan • El servidor no guarda estado sobre la conversación con el cliente. El cliente mantiene el estado y provee en la petición la información necesaria http://www.bing.com/search?q=universidad+cantabria&qs=n&filt=all&first=1 vs http://www.bing.com/search?q=universidad+cantabria&qs=n&filt=all&first=100 Podemos acceder al resultado 100 sin pasar por los anteriores
  • 15. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 15 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Fundamentos • En REST hay estado, pero sólo en los recursos, no en la aplicación (o sesión). • Una petición del cliente al servidor debe contener TODA la información necesaria para entender la misma. • No puede basarse en información previa asociada a la comunicación (por ejemplo, información de sesión). • No puede haber datos de sesiones del cliente en el servidor – El servidor sólo guarda y maneja el estado de los recursos que aloja. • Es el cliente el que debe guardar su estado (y enviárselo al servidor). • Esto permite escalabilidad (servidores más sencillos). – Implica mayor ancho de banda, pero facilita las caches
  • 16. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 16 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Fundamentos • Servicio “stateful”
  • 17. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 17 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Fundamentos • Servicio “stateless”
  • 18. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 18 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Recursos • Dos tipos de recursos: – Colecciones – http://example.com/resources/ – Elementos – http://example.com/resources/142 – Los métodos tienen un significado ligeramente diferente se trate de una colección o un elemento
  • 19. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 19 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – URI • Describen los recursos – Las URI son únicas y deben ser descriptivas. – Al construir una URI, ésta debe ser semántica • Usando las convenciones establecidas: – “/” : para expresar herencia, por ejemplo: /europa/españa/cantabria – ” , ” : para atributos no ordenados, por ejemplo: /europa/españa/madrid,asturias,murcia – “;” : para atributos ordenados, por ejemplo: /europa/españa/barcelona/lat=30.3;lng=4.11 – “?”: para modificadores, por ejemplo: /europa/españa?search=”Huelva”
  • 20. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 20 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – URI • El recurso se identifica en la petición HTTP • Paso de parámetros al servicio http://www.example.com/agenda/UserDetails?firstName=John&lastName=Doe GET /sqlrest/CUSTOMER/1234 HTTP/1.1 Host: www.thomas-bayer.com Accept: text/html, text/xml URI = http://www.thomas-bayer.com/sqlrest/CUSTOMER/1234
  • 21. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 21 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Operaciones • Funcionamiento – Orientado a recursos, no a operaciones – Una invocación REST es una petición HTTP – Las operaciones sobre recursos son limitadas • CRUD Operación Método HTTP Create POST Retrieve GET Update PUT Delete DELETE
  • 22. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 22 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Operaciones • Operaciones seguras y no seguras – Sólo GET es una operación segura ya que es la única que no modifica el recurso – PUT, POST y DELETE son operaciones no seguras ya que pueden modificar un recurso • Operaciones idempotentes y no idempotentes – GET, PUT y DELETE son operaciones idempotentes ya que el resultado de la operación no cambiará independientemente del número de veces que se realice la operación
  • 23. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 23 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Representaciones • Un recurso tiene múltiples representaciones
  • 24. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 24 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Representaciones • Las representaciones muestran el estado actual del recurso en un formato dado GET /profile/1234 Host: example.com Accept: text/html GET /profile/1234 Host: example.com Accept: text/x-vcard GET /profile/1234 Host: example.com Accept: application/mi-vocabulario-propio+xml
  • 25. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 25 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Representaciones • Cada representación también puede tener una funcionalidad diferente URI GET PUT POST DELETE http://www.ejemplo.com/usuarios/ Listar Usuarios - Crear usuario - http://www.ejemplo.com/usuarios/user1 Mostrar user1 Crear user1 Modificar user1 Borrar user1 http://www.ejemplo.com/usuarios/user1/mapa Mostrar Mapa user1 Crear Mapa user1 - Borrar Mapa user1
  • 26. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 26 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Uso • Ejemplo de invocación REST URI de la solicitud Método Formatos aceptados para la representación Código de respuesta Formato en que se envía la respuesta
  • 27. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 27 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Ejemplos • http://www.thomas-bayer.com/sqlrest/
  • 28. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 28 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Ejemplos • Twitter REST API – https://dev.twitter.com/docs/api/1.1
  • 29. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 29 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Ejemplos • http://chart.apis.google.com/chart?cht=p3&ch d=t:65,5,20,10&chco=0000FF&chs=900x300 &chl=January|February|March|April
  • 30. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 30 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Ejemplos • http://chart.apis.google.com/chart?cht=p3&chd=t:65,5 ,20,10&chco=0000FF&chs=900x300&chl=January|Fe bruary|March|April
  • 31. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 31 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – Ventajas • Maximiza la reutilización – Todos los recursos tienen identificadores = hacen más grande la Web – La visibilidad de los recursos que forman una aplicación/servicio permite usos no previstos • Minimiza el acoplamiento y permite la evolución – La interfaz uniforme esconde detalles de implementación – El uso de hipertexto permite que sólo la primera URL usada para acceder acople un sistema a otro • Elimina condiciones de fallo parcial – Fallo del servidor no afecta al cliente – El estado siempre puede ser recuperado como un recurso • Escalado sin límites – Los servicios pueden ser replicados en cluster, cacheados y ayudados por sistemas intermediarios
  • 32. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 32 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST vs WS-* REST WS-* Concepto “La Web es el universo de la información accesible globalmente” (Tim Berners Lee) “La Web es el transporte universal de mensajes” Características Las operaciones se definen en los mensajes. Una dirección única para cada instancia del proceso. Cada objeto soporta las operaciones estándares definidas. Componentes débilmente acoplados. Las operaciones son definidas como puertos WSDL. Dirección única para todas las operaciones. Múltiple instancias del proceso comparten la misma operación. Componentes fuertemente acoplados.
  • 33. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 33 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST vs WS-* REST WS-* Ventajas declaradas Bajo consumo de recursos. Las instancias del proceso son creadas explícitamente. El cliente no necesita información de enrutamiento a partir de la URI inicial. Los clientes pueden tener una interfaz “listener” (escuchadora) genérica para las notificaciones. Generalmente fácil de construir y adoptar. Fácil (generalmente) de utilizar. La depuración es posible. Las operaciones complejas pueden ser escondidas detrás de una fachada. Envolver APIs existentes es sencillo Incrementa la privacidad. Herramientas de desarrollo. Posibles desventajas Gran número de objetos. Manejar el espacio de nombres (URIs) puede ser engorroso. La descripción sintáctica/semántica muy informal (orientada al usuario). Pocas herramientas de desarrollo. Los clientes necesitan saber las operaciones y su semántica antes del uso. Los clientes necesitan puertos dedicados para diferentes tipos de notificaciones. Las instancias del proceso son creadas implícitamente.
  • 34. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 34 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST vs WS-* REST WS-* Protocolo XML autodescriptivo. XML Schema HTTP Independiente del transporte HTTP es un protocolo de aplicación HTTP es un protocolo de transporte XML HTTP GET HTTP PUT HTTP POST HTTP DELETE URI del recurso Aplicación SOAP (WS-*) SMTP HTTP POST MQ.. URI del endpoint Aplicación Cliente HTTP Cliente REST Mensaje HTTP Operación HTTP GET | PUT | POST | DELETE Payload XML Representación del recurso Servidor HTTP SSL & HTTP Auth Aplicación REST HTTP/S HTTP/S Cliente HTTP Cliente SOAP SOAP Envelope XML SOAP Header Soap Body Servidor HTTP Aplicación Servidor SOAP HTTP HTTP
  • 35. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 35 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST vs WS-* REST WS-* Descripción del servicio Confía en documentos orientados al usuario que define las direcciones de petición y las respuestas WSDL Interactuar con el servicio supone horas de testeado y depuración de URIs. Se pueden construir automáticamente stubs (clientes) por medio del WSDL Gestión del estado El servidor no tiene estado (stateless). El servidor puede mantener el estado de la conversación. Los clientes mantienen el estado siguiendo los enlaces. Los clientes mantienen el estado suponiendo el estado del servicio. Seguridad HTTPS WS-Security
  • 36. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 37 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – JSON • JSON (JavaScript Object Notation) – Formato de intercambio de información ligero – Fácil de generar y parsear – Auto-descriptivo y fácil de entender – Independiente del lenguaje de programación – Capaz de reproducir jerarquías en los datos – Tipo MIME: application/json
  • 37. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 38 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – JSON • Un objeto JSON es una colección de duplas nombre/valor – Los objetos se definen entre los signos { y } – Los miembros de un objeto son duplas nombre/valor donde nombre y valor se separan por el signo : – Las distintas duplas de un objeto se separan por el signo ,
  • 38. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 39 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – JSON • El campo valor dentro de una dupla puede ser: – Un string – Un número – Un objeto – Un array – Un boolean (TRUE o FALSE) – Puede estar vacío
  • 39. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 40 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – JSON • Los array son conjuntos de valores – Se definen entre los signos [ y ] – Los valores se separan por el signo ,
  • 40. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 41 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria REST – JSON • Ejemplo de documento JSON { "companyName":"Example.S.A" , "address":"Penny Lane 123", "phoneNumber":“+1555-123-456", "numberOfEmployees":3 , "employees": [ {"firstName":"John" , "lastName":"Doe" }, {"firstName":"Anna" , "lastName":"Smith" }, {"firstName":"Peter" , "lastName":"Jones" } ] "isActive":true } Duplas nombre:valor Array de objetos
  • 41. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 42 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria JSON vs XML • Semejanzas – Basados en texto plano – Auto-descriptivos (orientados al humano) – Soporta jerarquías (valores dentro de valores) – Fácil de parsear • Diferencias – Sin etiquetas de final – Más corto – Más rápido de leer y escribir – Usa arrays – No hay palabras reservadas
  • 42. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 43 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Contenido • Introducción • Servicios Web ligeros. REST • Servicios de mensajería – Introducción – MQTT
  • 43. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 44 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Internet de las Cosas • Billones de cosas conectadas entre sí • Aplicaciones variadas – http://www.youtube.com/watch?v=s9nrm8q5eGg • Necesidades variadas – Heterogeneidad – Control • Gestión • Capacidades de las cosas • Estado de los dispositivos – Modelos de comunicación – Propiedades de la comunicación • Seguridad, QoS, Robustez
  • 44. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 45 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Internet de las Cosas • ¿Qué hay de malo en los protocolos de la Internet actual? – HTTP revolucionó la forma en la que las personas consumen información – Tiene un único modelo sencillo pero válido: Mando una petición y Leo una respuesta – Disponible en múltitud de dispositivos hoy en día • Los servicios disponibles en la Internet de las Cosas tienen retos distintos – Las fuentes de información no son conocidas – Modelo basado en eventos: • Uno a muchos • Escuchar permanentemente • Volúmenes de información enormes • A través de redes no fiables
  • 45. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 46 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Internet de las Cosas • Otros retos a tener en cuenta: – Volumen = Coste – Consumo de batería – Pseudo tiempo real – Seguridad – Fiabilidad – Escalabilidad • No hay una solución Extremo a Extremo – Divide y vencerás – Clusterizar la Internet de las Cosas • No muy diferente a las subredes de Internet
  • 46. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 47 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Internet de las Cosas • Arquitectura de red jerárquica Nodo sensor / actuador Repetidor Pasarela o Gateway Comunicación Peer-to-Peer Internet / Intranet Nivel 1 Nivel 2
  • 47. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 48 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria Prestación de servicios orientada a eventos • Otros protocolos que cubren esta parte del problema – MQTT – XMPP – AMQP – CoAP
  • 48. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 49 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT • Message Queing Telemetry Transport (MQTT) – Heredero del modelo de comunicación del intercambio de mensajes – Resumen de sus autores: • “A light weight event and message oriented protocol allowing devices to asynchronously communicate efficiently across constrained networks to remote systems” – Basado en un broker que hace de intermediario entre los productores de mensajes y sus consumidores
  • 49. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 50 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT • Criterios de diseño – Conectar fácilmente el mundo físico (M2M) al mundo IT – Soportar redes poco fiables (bajo ancho de banda, alta latencia, no fiable, caras (coste por byte) – Recursos a nivel computacional limitados (controladores de 8 bits, 256Kb RAM) – Acoplamiento ligero para soportar entornos dinámicos donde grandes cantidades de mensajes han de intercambiarse de formas no previstas de manera anticipada. – Permitir determinadas calidades en la entrega de mensajes fruto de los compromisos entre ancho de banda, disponibilidad y garantía de entrega – Capaz de soportar grandes cantidades de dispositivos (10K clientes MQTT) – Simple para los desarrolladores – Protocolo abierto
  • 50. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 51 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT • Protocolo basado en el modelo Publish – Subscribe – Permite que un mensaje publicado por un solo productor sea recibido por múltiples consumidores – El productor envía (publica) un mensaje (publicación) a un asunto (topic). – Los consumidores reciben todos los mensajes que llegan a los asuntos a los que están subscritos – Un servidor se encarga de asociar publicaciones con subscripciones • Si no hay asociaciones el mensaje se descarta • Si las hay, el mensaje se envía a los consumidores correspondientes Productor Consumidor Consumidor Consumidor Topic Mensaje A Mensaje A Mensaje A Mensaje A
  • 51. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 52 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Topics • Forman el espacio de nombres – Es jerárquico con cada “sub-topic” separado por una “/” – Por ejemplo: • Una casa publica información sobre sí misma – <país>/<región>/<ciudad>/<código_postal>/<casa>/consumoElectricidad – <país>/<región>/<ciudad>/<código_postal>/<casa>/estadoAlarma • Y se subscribe a los comandos de control – <país>/<región>/<ciudad>/<código_postal>/<casa>/activarCalefaccion – Se pueden usar wildcards • Para un nivel se usa “+” • Para múltiples niveles se usa “#” • Por ejemplo: – ES/Cantabria/Santander/+/+/consumoElectricidad – ES/Cantabria/Santander/39005/#
  • 52. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 53 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Subscripciones y Publicaciones • Pueden ser permanentes (durable) o volátiles (non- durable) – Permanentes • Si el consumidor está conectado los mensajes se envían inmediatamente. • Si el consumidor no está conectado los mensajes se guardan en el servidor hasta que el consumidor se vuelve a conectar. – Volátiles • La subscripción expira si el consumidor se desconecta del servidor. • Un mensaje puede ser retenido (retained) – Un productor puede marcar un mensaje como retained – El broker guarda el último mensaje retained que llega a cualquier topic – Los nuevos consumidores subscritos a un topic reciben inmediatamente el último mensaje retenido
  • 53. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 54 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Uso eficiente de recursos • Protocolo mínimo – El mensaje más pequeño mide 2 bytes • Basado en el paradigma “push” – Cliente -> Servidor y Servidor -> Cliente • Soporta interrupciones en la conexión – El servidor tiene persistencia • Soporta el concepto de sesión – Mediante mensajes de keep-alive se sabe si el consumidor se ha desconectado • Testeado sobre múltiples redes (vsat, GPRS, GSM, etc.) • Ofrece diferentes calidades en la entrega de mensajes – 0: Entrega de mensajes como mucho una vez – 1: Entrega asegurada (puede que por duplicado) – 2: Entrega asegurada una única vez
  • 54. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 55 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Formato del mensaje • Cabecera fija de 2 bytes – MSB seguido de LSB • Cabecera de longitud variable – Sólo para algunos mensajes • Campo de datos – Sólo para CONNECT, SUBSCRIBE y SUBACK
  • 55. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 56 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Formato del mensaje • Tipo de mensaje
  • 56. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 57 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Formato del mensaje • Flags – DUP • Fijada cuando se reenvia un mensaje de tipo PUBLISH, PUBREL, SUBSCRIBE or UNSUBSCRIBE. • El valor del flag QoS es mayor que 0 • Requiere de un reconocimiento • La cabecera variable contiene un ID de mensaje – QoS – Para los mensajes de tipo PUBLISH – RETAIN – Sólo para los mensajes de tipo PUBLISH • El cliente que lo publica • El servidor a los nuevos subscriptores
  • 57. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 58 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Formato del mensaje • Longitud del mensaje – Exceptuando la cabecera fija – 1 a 4 bytes • 7 bits de cada byte para la longitud • El bit 8 es un “continuation bit”
  • 58. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 59 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Formato del mensaje • Cabecera variable: Sucesión de cabeceras dependiendo de los mensajes – Protocol name (UTF-8): 1ª en los mensajes CONNECT – Protocol version (1 byte): 2ª en los mensajes CONNECT – Connect flags (1 byte): 3ª en los mensajes CONNECT • Bit 0 reservado • Clean session flag (bit 1) – Maneja la persistencia entre sesiones • Will flag (bit 2) – El cliente deja “testamento” • Will QoS (bits 3 y 4) – Nivel de QoS para el “testamento” • Will Retain (bit 5) – Indica si el “testamento” se debe retener • Password flag (bit 6) – Incluye password al conectar • User Name flag (bit 7) – Incluye nombre de usuario al conectar – Keep-alive timer (2 bytes): 4ª en los mensajes CONNECT
  • 59. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 60 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Formato del mensaje • Cabecera variable: Sucesión de cabeceras dependiendo de los mensajes – Connect return code (1 byte): 2ª en los mensajes CONNACK – Topic name: 1ª en los mensajes PUBLISH • Nombre del Topic en UTF-8 • Payload – CONNECT • ID de cliente (UTF-8): Obligatorio • Will Topic (UTF-8): Opcional • Will Message (UTF-8): Opcional • User Name (UTF-8): Opcional • Password (UTF-8): Opcional
  • 60. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 61 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Formato del mensaje • Payload – SUBSCRIBE • Topic Name (UTF-8): Obligatorio • QoS Level (1 byte): Obligatorio • Es posible subscribirse a varios Topic con el mismo mensaje – SUBACK • QoS Level Granted (1 byte): Obligatorio • Lista en el mismo orden que el SUBSCRIBE correspondiente
  • 61. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 62 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • CONNECT – Cliente a Servidor – Crea la sesión de nivel de aplicación • CONNACK – Servidor a Cliente – Respuesta al mensaje CONNECT Cabecera Fija Cabecera Variable Payload Protocol Name (UTF-8) Protocol Version (1 byte) Connect Flags (1 byte) Keep-alive Timer (2 bytes) Client ID (UTF-8) (3 – 25 bytes) Will Topic (UTF-8) Will Message (UTF-8) User Name (UTF-8) Password (UTF-8) Cabecera Fija Cabecera Variable Reservado (1 byte) Connect return code (1 byte)
  • 62. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 63 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • PUBLISH – Cliente a Servidor y Servidor a Cliente – Información que se quiere distribuir – Asociado a un Topic (a.k.a. Subject o Channel) Cabecera Fija Cabecera Variable Payload Topic Name (UTF-8) Message ID (2 bytes) Data (max. 256 MB)
  • 63. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 64 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • PUBACK - Publish acknowledgment – Respuesta al mensaje PUBLISH con QoS = 1 – Servidor a Cliente • Hacia el productor del mensaje – Cliente a Servidor • Desde un subscriptor Cabecera Fija Cabecera Variable Message ID (2 bytes)
  • 64. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 65 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • PUBREC - Assured publish received – Respuesta al mensaje PUBLISH con QoS = 2 – Servidor a Cliente • Hacia el productor del mensaje – Cliente a Servidor • Desde un subscriptor Cabecera Fija Cabecera Variable Message ID (2 bytes)
  • 65. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 66 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • PUBREL - Assured Publish Release – Respuesta al mensaje PUBREC – Servidor a Cliente • Hacia el consumidor del mensaje PUBLISH con QoS = 2 – Cliente a Servidor • Desde el productor del mensaje PUBLISH con QoS = 2 Cabecera Fija Cabecera Variable Message ID (2 bytes)
  • 66. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 67 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • PUBCOMP - Assured publish complete – Respuesta al mensaje PUBREL – Servidor a Cliente • Hacia el productor del mensaje – Cliente a Servidor • Desde un subscriptor Cabecera Fija Cabecera Variable Message ID (2 bytes)
  • 67. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 68 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje Productor Broker Consumidor Productor Broker Consumidor
  • 68. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 69 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje Productor Broker Consumidor
  • 69. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 70 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • SUBSCRIBE – Cliente a Servidor – Especifica el nivel de QoS • SUBACK – Respuesta al mensaje SUBSCRIBE – Servidor a Cliente Cabecera Fija Cabecera Variable Payload Message ID (2 bytes) Topic Name1 (UTF-8) QoS Level (1 byte) Topic Name2 (UTF-8) QoS Level (1 byte) … Topic NameN (UTF-8) QoS Level (1 byte) Cabecera Fija Cabecera Variable Payload Message ID (2 bytes) Granted QoS (1 byte) Granted QoS (1 byte) … Granted QoS (1 byte)
  • 70. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 71 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • UNSUBSCRIBE – Cliente a Servidor – Especifica los Topic de los que se quiere des-registrar • UNSUBACK – Respuesta al mensaje UNSUBSCRIBE – Servidor a Cliente Cabecera Fija Cabecera Variable Payload Message ID (2 bytes) Topic Name1 (UTF-8) Topic Name2 (UTF-8) … Topic NameN (UTF-8) Cabecera Fija Cabecera Variable Message ID (2 bytes)
  • 71. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 72 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Tipos de mensaje • PINGREQ – Cliente a Servidor – Mensaje de keep-alive • PINGRESP – Respuesta al mensaje PINGREQ – Servidor a Cliente • DISCONNECT – Cliente a Servidor – Antes de cerrar la conexión TCP
  • 72. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 73 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Flujos • Nivel de QoS = 0 • Nivel de QoS = 1 Cliente Mensaje y Dirección Broker QoS = 0 PUBLISH ---------------> Acción: Publicar el mensaje a los subscriptores Cliente Mensaje y Dirección Broker QoS = 1 DUP = 0 Message ID = X Acción: Guardar el mensaje PUBLISH ---------------> Acciones: • Guardar el mensaje • Publicar el mensaje a los subscriptores • Borrar el mensaje Acción: Eliminar el mensaje PUBACK <----------------
  • 73. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 74 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Flujos • Nivel de QoS = 2 Cliente Mensaje y Dirección Broker QoS = 1 DUP = 0 Message ID = X Acción: Guardar el mensaje PUBLISH ---------------> Acción: Guardar el mensaje PUBREC <---------------- Message ID = X Message ID = X PUBREL ---------------> Acciones: • Publicar el mensaje a los subscriptores • Borrar el mensaje Acción: Eliminar el mensaje PUBCOMP <---------------- Message ID = X
  • 74. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 75 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Implementaciones • La especificación es abierta – http://www.ibm.com/developerworks/webserices/library/ws- mqtt/index.html • Multiples implementaciones disponibles – Desde librerías profesionales hasta proyectos individuales • Librerías ligeras (30 Kb en C; 64 Kb en Java) – http://mqtt.org • API fácil de usar a través de verbos bien definidos
  • 75. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 76 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Beneficios frente a HTTP • Entrega de mensajes tipo “push” – HTTP soporta “push” del cliente hacia el servidor pero del servidor al cliente es tipo “poll” • Uso eficiente de la red – Volumen de tráfico mucho menor • Soporta las desconexiones • Paradigma uno a muchos 3G WiFi HTTPS MQTT HTTPS MQTT rx msg / hora 1708 160278 3628 263314 % bateria / msg 0.01709 0.0001 0.00095 0.00002 msgs 240 / 1024 1024 / 1024 524 / 1024 1024 / 1024 tx msg / hora 1926 21685 5229 23184 % bateria / msg 0.00975 0.00082 0.00104 0.00016
  • 76. Aplicaciones y servicios móviles Aplicaciones y Servicios en Redes Luis Sánchez 77 Grupo de Ingeniería Telemática (G.I.T) DICOM / Universidad de Cantabria MQTT – Referencias • Especificación abierta – http://public.dhe.ibm.com/software/dw/webservices/ws- mqtt/mqtt-v3r1.html • Comunidad – http://mqtt.org • Estandar – https://www.oasis- open.org/committees/tc_home.php?wg_abbrev=m qtt