IrOBEX (or just
OBEX) is a communications 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 SIG and the
SyncML[?] wing of the
OMA[?]. One of OBEX's earliest popular applications was in the Palm III
personal digital assistant. This PDA and its many successors use OBEX to exchange business cards, data, even applications.
OBEX is similar in design and function to HTTP in that a client uses a reliable transport to connect to a server and may then request or provide objects. But OBEX differs in many important respects:
- Binary transmissions. HTTP uses human-readable text, but OBEX uses binary-formatted type-length-value triplets called "Headers" to exchange information about a request or an object. These are much easier to parse by devices with limited resources.
- Session support. HTTP transactions are inherently stateless; generally an HTTP client opens a connection, makes a single request, receives its response, and closes the connection. 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.
OBEX is the foundation for many higher-layer "profiles":
- In the IrDA:
- In the Bluetooth SIG:
- Generic Object Exchange Profile
- Object Push Profile
- File Transfer Profile
- Synchronization Profile
- Basic Imaging Profile
- Basic Printing Profile
- In the OMA:
The latest version of OBEX's public specification is available at http://www.irda.org/.
All Wikipedia text
is available under the
terms of the GNU Free Documentation License