OBEX
OBEX (OBject EXchange) — протокол обміну об'єктами, що дозволяє не тільки передавати й приймати текстову інформацію, але і пересилати інтернет-сторінки, графіку, музику, мультимедіа-дані й просто виконавчі файли.
Одним з перших телефонів, які підтримують протокол OBEX для передачі не тільки візитівок і календарних нотаток, а й тони дзвінка та екранних логотипів, був Siemens S25. Після появи протоколу OBEX вийшла специфікація Ir-MC (Infrared Mobile Communication), що стала найбільш популярним стандартом з'єднання за допомогою ІЧ-зв'язку. Була прийнята технологія BlueTooth, яка також використовує протокол OBEX.
Дизайн і функціональні можливості 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 specification at IrDA.org [Архівовано 22 травня 2008 у Wayback Machine.]
- Bluetooth profiles [Архівовано 31 грудня 2013 у Wayback Machine.], including specifications for OBEX and OBEX-based protocols (GOEP, FTP, OBEX push, SYNC)
- OpenOBEX an open source implementation of the OBEX protocol