Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OBject EXchange
Carmelo Cascone
1
OBEX - OBject EXchange
Índice
‣ Introducción a OBEX
‣ Modelo de objetos
‣ Protocolo
‣ OBEX sobre RFCOMM
‣ OBEX sobre TCP/IP
‣ Conclusión
2
OBEX - OBject EXchange
Introducción a OBEX
3
OBEX - OBject EXchange
Introducción a OBEX
‣ Protocolo de sesión que facilita el
intercambio de objetos binarios entre
dispositivos
‣ Introducido y mantenido por la
Infrared Data Association (IrDA)
por esto se conoce también como IrOBEX
Introducción a OBEX 4
OBEX - OBject EXchange
Introducción a OBEX 5
OBEX - OBject EXchange
Introducción a OBEX 6
OBEX - OBject EXchange
Especificación OBEX
‣ La especificación OBEX proporciona:
๏ Modelo para la representación de los objetos
๏ Protocolo de sesión, que estructura el diálogo
entre dos dispositivos
‣ Sigue el paradigma cliente/servidor de
petición-respuesta para el formato de la
conversación
Introducción a OBEX 7
OBEX - OBject EXchange
Arquitectura
Introducción a OBEX 8
OBEX - OBject EXchange
Modelo de objetos
9
OBEX - OBject EXchange
Objetos en OBEX
‣ El modelo de objeto en OBEX maneja
información sobre el objeto (ej. el tipo) y el
objeto en sí
‣ Los objetos son representados mediante una
secuencia de headers
Modelo de objetos 10
OBEX - OBject EXchange
Header
‣ Header ID
Describe lo que el header contiene y cómo se
formatea
‣ Value
Se compone de uno o más byte en el formato y el
sentido especificado por el Header ID
Modelo de objetos 11
OBEX - OBject EXchange
Headers
Modelo de objetos 12
OBEX - OBject EXchange
Ejemplo de objeto
Name Type Dimension
ejemplo.txt text 14
Body
Modelo de objetos 13
OBEX - OBject EXchange
Protocolo
14
OBEX - OBject EXchange
Protocolo de sesión
‣ Las operaciones OBEX están formadas por
pares de petición-respuesta
Después de enviar una petición, el cliente espera una
respuesta del servidor antes de emitir una nueva petición
Formato de OPERATION
petición LENGHT Otros datos requeridos u opcionales
CODE
Formato de RESPONSE
LENGHT Otros datos requeridos u opcionales
respuesta CODE
Protocolo 15
OBEX - OBject EXchange
Operaciones OBEX
Connect
Disconnect
Put
Get
SetPath
Abort
Protocolo 16
OBEX - OBject EXchange
Connect
‣ Ante de transmitir un objeto es necesario
establecer una conexión
‣ La sesión se inicia mediante el envío de una
petición de conexión Connect
Protocolo 17
OBEX - OBject EXchange
Connect
‣ El servidor acepta la conexión mediante el
envío de una respuesta afirmativa al cliente
‣ El envío de cualquier otra respuesta indica
que la conexión no se realice
Protocolo 18
OBEX - OBject EXchange
Ejemplo de Connect
Valor Descripción Valor Descripción
0x80 CONNECT 0xA0 SUCCESS
0x0011 Paquete de longitud = 17 byte 0x0007 Paquete de longitud = 7 byte
0x10 Versión 1.0 de OBEX 0x10 Versión 1.0 de OBEX
0x00 Flags: todos 0 para esta versión de OBEX 0x00 Flags
0x2000 8KBytees el máximo tamaño de paquete que 0x0400 1KBytees el máximo tamaño de paquete que
el cliente OBEX puede aceptar el servidor OBEX puede aceptar
Ejemplo de petición
Protocolo 19
OBEX - OBject EXchange
Disconnect
‣ La desconexión de una sesión OBEX se
produce cuando:
๏ Se cierra la aplicación
๏ La aplicación quiere cambiar el equipo al que se
envían las peticiones
byte 0 byte 1 y 2 byte de 3 a N
OPCODE LENGHT Headers opcionales
Protocolo 20
OBEX - OBject EXchange
Disconnect
‣ Una petición de desconexión no puede ser
rechazada por el servidor
‣ El servidor siempre tiene que enviar una
respuesta
Protocolo 21
OBEX - OBject EXchange
Put
‣ Se utiliza para enviar un objeto OBEX
‣ Consiste de uno o más paquetes,
dependiendo del tamaño del objeto
transferido, y de cuánto es el tamaño del
paquete
byte 0 byte 1 y 2 byte de 3 a N
OPCODE LENGHT Secuencia de headers de el objeto
0x81
Protocolo 22
OBEX - OBject EXchange
Put
‣ Un paquete de respuesta del servidor es
necesario para cada petición
‣ No está permitida una sola respuesta para
varios paquetes de petición, aunque
representan un solo objeto
byte 0 byte 1 y 2 byte de 3 a N
RESPONSE CODE LENGHT Headers opcionales
Protocolo 23
OBEX - OBject EXchange
Ejemplo de petición
Protocolo 24
OBEX - OBject EXchange
Ejemplo de petición
Protocolo 25
OBEX - OBject EXchange
Ejemplo de petición
Protocolo 26
OBEX - OBject EXchange
Get
‣ Se utiliza para obtener un objeto OBEX
‣ El objeto a obtener es identificado por el
header Name, que puede omitirse si el
servidor ya sabe qué enviar
Protocolo 27
OBEX - OBject EXchange
Get
‣ El objeto se devuelve como una secuencia de
headers, de la misma manera que en una Put
‣ El cliente tiene que enviar un paquete de
petición por cada paquete de respuesta
Protocolo 28
OBEX - OBject EXchange
Abort
Protocolo 29
OBEX - OBject EXchange
SetPath
‣ Se utiliza para establecer la "carpeta actual"
en el lado receptor en el caso que la
trasferencia requiere informaciones
adicionales sobre las carpetas
‣ Ejemplo: cuando se envía un conjunto de
carpetas anidadas, SetPath se utiliza para
crear la estructura de carpetas en el lado
receptor
Protocolo 30
OBEX - OBject EXchange
31
OBEX - OBject EXchange
Requisitos
1. El dispositivo que soporte OBEX debe ser capaz de
funcionar como cliente, servidor, o ambos
2. Todos los servidores OBEX que se ejecutan
simultáneamente en un dispositivo deben utilizar
diferentes canales RFCOMM
3. Las aplicaciones que usan OBEX deben ser capaz de
registrar las informaciónes adecuada sobre el Service
Discovery Database
Conexión
1. Utilizando el protocolo SD (Service Discovery) el
cliente obtiene las informaciones sobre el
servidor necesarias para establecer la conexión
(ej. el canal RFCOMM)
2. El cliente usa el canal RFCOMM descubierto
para establecer la conexión RFCOMM
3. El cliente puede ahora enviar la petición de
conexión al servidor, para establecer una sesión
OBEX
35
OBEX - OBject EXchange
Requisitos
1. El dispositivo que soporte OBEX debe ser capaz de
funcionar como cliente, servidor, o ambos
2. Se recomienda el utilizo del puerto TCP 650 elegido
por el IANA para el protocolo OBEX
3. El cliente tiene que elegir un puerto entre 1023 y
65356
4. Las aplicaciones que usan OBEX deben ser capaz de
registrar las informaciones adecuada sobre el Service
Discovery DB
Conexión
1. Utilizando el protocolo SD (Service Discovery) el
cliente obtiene las informaciones sobre el
servidor necesarias para establecer la conexión
(ej. el puerto TCP)
2. El cliente elige un numero de puerto y crea un
socket de comunicación con el servidor a través
del puerto TCP descubierto
3. El cliente puede ahora enviar la petición de
conexión al servidor
Conclusión
39
OBEX - OBject EXchange
Conclusion
Introducción a OBEX 40
OBEX - OBject EXchange