OBEX (abreviatura de OBject EXchange, intercambio de datos; también denominado IrOBEX) es un protocolo de comunicaciones que facilita el intercambio de objetos binarios entre dispositivos. Es mantenido por la Infrared Data Association (IrDA) pero ha sido adoptada también por el Bluetooth Special Interest Group y por la sección SyncML de la Open Mobile Alliance (OMA). Una de las primeras aplicaciones populares de OBEX tuvo lugar en la Personal Digital Assistant Palm III. Esta PDA y sus múltiples sucesoras utilizaron OBEX para intercambiar tarjetas de negocio, datos e incluso aplicaciones.
OBEX es similar en diseño y funcionalidad a HTTP, protocolo en el que el cliente utiliza un transporte fiable para conectarse a un servidor y así recibir o proporcionar objetos. No obstante, OBEX difiere en algunos puntos importantes:
- Transporte: HTTP funciona normalmente sobre un puerto TCP/IP. OBEX, en cambio, es comúnmente implementado sobre una pila IrLAP/IrLMP/Tiny TP de un dispositivo IrDA; mientras que funcionando con Bluetooth, OBEX se suele implementar sobre una pila en Banda Base/Link Manager/L2CAP/RFCOMM. En cualquier caso, ofrece otras posibilidades.
- Transmisiones binarias: HTTP utiliza texto legible por el ser humano, mientras que OBEX utiliza tripletes binarios llamadas cabeceras (del inglés, headers) para intercambiar información sobre una petición o un objeto. Éstos, resultan más simples de elaborar para dispositivos con características limitadas.
- Soporte para realizar sesiones: Las transacciones HTTP carecen inherentemente de estado. Generalmente, un cliente HTTP establece una conexión, efectúa una sola petición, recibe respuesta y cierra la conexión. En OBEX, una sola conexión de transporte podría utilizarse para efectuar varias operaciones relacionadas entre sí. De hecho, las últimas novedades de la especificación OBEX permiten almacenar la información del estado de una conexión intacta incluso si la conexión finalizó inesperadamente.
- Procesamiento de datos: Mientras que las transacciones de HTTP están diseñadas principalmente para recuperar datos, OBEX ofrece un enfoque más equilibrado, facilitando tanto el envío como la recepción de datos.
OBEX es el conjunto de varios perfiles de alto nivel:
- En IrDA:
- Perfil Point and Shoot
- Perfil Infrared Financial Messaging (IrFM)
- En Bluetooth SIG:
- Perfil Generic Object Exchange
- Perfil Object Push (transferencias de teléfono a teléfono)
- Perfil File Transfer (transferencias de teléfono a PC)
- Perfil de sincronización
- Perfil de Imagen básica
- Perfil de Impresión básica
- En OMA:
La última versión de la especificación pública de OBEX está disponible en http://www.irda.org/.
- OpenOBEX, una implementación open source del protocolo OBEX.