Object Exchange Protocol

Object Exchange Protocol (OBEX) is an efficient, compact binary protocol that enables a wide range of devices to exchange data spontaneously in a simple, efficient manner. This feature supports two different transports in the Microsoft® Windows® CE .NET operating system (OS), namely, Bluetooth and Infrared Data Association (IrDA) protocols.

OBEX is primarily used as a push or pull data objects. It performs functions that are similar to Hypertext Transfer Protocol (HTTP), only OBEX does not require the resources that an HTTP server requires. This makes OBEX perfect for low-end devices with limited resources.

When two devices are about to exchange information over OBEX, the requester, commonly known as the client, will send out commands to the server, which will carry out the commands as requested.

An OBEX client is a device that initiates a connection to an OBEX server. An OBEX server is a device that listens for incoming connections from a client.

The following scenarios are typical uses of OBEX:

  • A portable computer pushing a file to another portable computer, or personal digital assistant (PDA).
  • An industrial computer pulling status and diagnostic information from a factory machine.
  • A digital camera pushing images to a film-development kiosk.
  • A digital cellular phone being queried for the electronic business card of its owner. This process involves pulling the information.

An OBEX object is a simple binary large object (BLOB) that has a set of headers that describe it. Pushing is accomplished with a Put method. Pulling is accomplished with a Get method. Windows CE supports pushing and pulling of objects by Multipurpose Internet Mail Extenstions(MIME) type. Commands are executed in the context of a connection between an OBEX server and a client.

Because OBEX runs on several transports, it uses an extensible module design. Transports are registered so that on startup, the OBEX layer can initialize all known transports. The OBEX layer formats packets to the OBEX specification then sends them to the appropriate transport for delivery.

Device discovery takes place across all available transports. Each transport object exposes a method that enables the OBEX layer to build a list of all available devices. Device discovery is not part of the OBEX specification, however, it is essential to establishing a connection between devices.

Authentication

Authentication at the OBEX protocol level is optional for both Bluetooth and IrDA. Authentication can be done in one of two ways:

  • The client requests authorization from the server.
  • The server forces authorization.

Authentication can be required for each connection, or request.

See Also

Server Support | Client Support | OBEX Samples

 Last updated on Friday, April 09, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.