OBEX
OBEX (OBject EXchange) — протокол обмена объектами, позволяющий не только передавать и принимать текстовую информацию, но и пересылать Интернет-страницы, графику, музыку, мультимедиа-данные и просто двоичные файлы.
Одним из первых телефонов, поддерживающих протокол OBEX для передачи не только визитных карточек и календарных заметок, но и мелодий сигнала вызова и экранных логотипов, был Siemens S25. После появления протокола OBEX вышла спецификация Ir-MC (Infrared Mobile Communication), ставшая наиболее популярным стандартом соединения посредством ИК-связи. Была принята технология BlueTooth, также использующая протокол OBEX.
Различия между OBEX и HTTP
Дизайн и функциональные возможности OBEX похожи на протокол HTTP, в котором клиент использует надёжный транспорт для соединения с сервером и может запрашивать и предоставлять информацию. Несмотря на это сходство, OBEX имеет множество важных отличий:
- Транспорт. HTTP обычно базируется на стеке TCP/IP, а OBEX на стеке IrLAP/IrLMP/Tiny TP. В Bluetooth-устройствах OBEX реализуется на стеке Baseband/Link Manager/L2CAP/RFCOMM. Также возможны и другие реализации.
- Двоичные данные. HTTP использует понятный для человека текст, а OBEX использует двоичный формат в виде триад тип-длина-значение, которые называются «Заголовки» («Headers»). Для устройств с ограниченными ресурсами информация в таком виде значительно легче для разбора.
- Поддержка сессий. Исторически HTTP не поддерживает состояние сессии (stateless): клиент открывает соединение, делает единичный запрос, получает ответ на него, закрывает соединение. В случае с OBEX, одно соединение может обслуживать множество операций. Более поздние спецификации OBEX позволяют сохранять целостность внезапно оборванных транзакций.
Программы, использующие OBEX
- Blueman