Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Протокол связи, протокол обмена данными
Communication protocol
the communications protocol
OBEX (сокращение от OBject EXchange, также известный как IrOBEX) — это протокол связи, обеспечивающий обмен двоичными объектами между устройствами. Он поддерживается Ассоциацией инфракрасных данных, но также был принят специальной группой Bluetooth и подразделением SyncML в Open Mobile Alliance (OMA). Одним из первых популярных применений OBEX был Palm III. Этот КПК и его многочисленные последователи использовали OBEX для обмена визитными карточками, данными и даже приложениями. Изначально разработанный для инфракрасной связи, OBEX теперь также используется в Bluetooth, а также через RS 232, USB, WAP и в таких устройствах, как смарт-ручки Livescribe.
OBEX (abbreviation of OBject EXchange, also termed IrOBEX) is a communication protocol that facilitates the exchange of binary objects between devices. It is maintained by the Infrared Data Association but has also been adopted by the Bluetooth Special Interest Group and the SyncML wing of the Open Mobile Alliance (OMA). One of OBEX's earliest popular applications was in the Palm III. This PDA and its many successors use OBEX to exchange business cards, data, even applications. Although OBEX was initially designed for infrared, it has now been adopted by Bluetooth, and is also used over RS 232, USB, WAP and in devices such as Livescribe smartpens.
Сравнение с HTTP
OBEX похож по конструкции и функциональности на HTTP, обеспечивая клиенту надежный транспорт для подключения к серверу и последующего запроса или предоставления объектов. Однако OBEX отличается во многих важных аспектах:
OBEX is similar in design and function to HTTP in providing the client with a reliable transport for connecting to a server and may then request or provide objects. But OBEX differs in many important respects:
HTTP обычно работает поверх соединения TCP/IP. OBEX также может работать таким образом, но чаще всего реализуется на стеке IrLAP/IrLMP/Tiny TP на устройствах IrDA. В Bluetooth OBEX реализован на стеке Baseband/ACL/L2CAP (и, для обратной совместимости, RFCOMM). Возможны и другие подобные "привязки" OBEX, например, через USB. HTTP использует текст, понятный человеку, а OBEX использует двоичный формат, состоящий из троек "тип-длина-значение", называемых "Заголовками", для обмена информацией о запросе или объекте. Эти тройки гораздо проще обрабатывать устройствам с ограниченными ресурсами. Транзакции HTTP по своей природе не имеют состояния; как правило, клиент HTTP устанавливает соединение, отправляет один запрос, получает ответ и либо закрывает соединение, либо отправляет другие не связанные запросы. В OBEX одно транспортное соединение может поддерживать множество связанных операций. Более того, недавние дополнения к спецификации OBEX позволяют возобновить прерванную транзакцию, сохранив всю информацию о состоянии.
HTTP is normally layered above a TCP/IP link. OBEX can also be, but is commonly implemented on an IrLAP/IrLMP/Tiny TP stack on an IrDA device. In Bluetooth, OBEX is implemented on a Baseband/ACL/L2CAP (and, for legacy uses, RFCOMM) stack. Other such "bindings" of OBEX are possible, such as over USB. HTTP uses human readable text, but OBEX uses binary formatted type–length–value triplets named "Headers" to exchange information about a request or an object. These are much easier to parse by resource limited devices. HTTP transactions are inherently stateless; generally an HTTP client opens a connection, makes a single request, receives its response, and either closes the connection or makes other unrelated requests. In OBEX, a single transport connection may bear many related operations. In fact, recent additions to the OBEX specification allow an abruptly closed transaction to be resumed with all state information intact.
javax.obex
Необязательный пакет javax.obex в Java API для Bluetooth обеспечивает реализацию протокола OBEX на Java.
Optional package javax. obex in Java APIs for Bluetooth provides an implementation of OBEX in Java.
PyOBEX и nOBEX
PyOBEX обеспечивает частичную поддержку OBEX в Python. nOBEX — это ответвление PyOBEX с более полной поддержкой OBEX и поддержкой профиля Bluetooth Hands-Free для упрощения тестирования OBEX на автомобильных информационно-развлекательных системах.
PyOBEX provides partial support for OBEX in Python. nOBEX is a fork of PyOBEX with more complete OBEX support, and support for the Bluetooth Hands Free Profile to facilitate OBEX testing on automotive infotainment systems.