OBEX OS Design Development (Windows Embedded CE 6.0)

1/6/2010

The Object Exchange Protocol (OBEX) technology for Windows Embedded CE provides an efficient, compact binary protocol that enables a wide range of devices to exchange data spontaneously in a simple, efficient manner. This technology works over Bluetooth and Infrared Data Association (IrDA) protocols.

OBEX is primarily used as a push or pull application.

It performs a function that is similar to Hypertext Transfer Protocol (HTTP) but it does not require the resources that an HTTP server requires. This makes OBEX perfect for low-end devices with limited resources.

OS Design Information

The following table shows the operating system design information for Object Exchange Protocol.

Concept Description

Dependencies

OBEX requires IrDA or Bluetooth.

Hardware considerations

Hardware is dictated by transport requirements (IrDA/Bluetooth).

Modules and Components

The following table shows the components and modules that implement Object Exchange Protocol.

Item Module Component

Libraries/Client

Obexapi

All OBEX COM-based APIs

Libraries/Server

Obexsrvr

OBEX server DLL

Libraries/Server (Services)

obexfile; obexinbx

OBEX file server and Default inbox

Implementation Considerations

The Object Exchange Protocol implementation is designed to provide a simple to use abstraction from the lower level details in OBEX.

The following table shows the Sysgen variables that control the OBEX technology.

Sysgen variable Functionality

SYSGEN_OBEX_CLIENT

When this variable is set, the Obex Client Catalog item is included in the OS design.

The OBEX client is a device that initiates a connection to an OBEX server.

SYSGEN_OBEX_SERVER

When this variable is set, the Obex Server Catalog item is included in the OS design.

An OBEX server is a device that listens for incoming connections from a client.

To enable this functionality, the Obex Inbox, Obex Server, and the Core Server Support items must also be included in your OS design.

SYSGEN_OBEX_FILEBROWSER

When this variable is set, the Obex File Browser Catalog item is included in the OS design.

To enable this functionality, the Obex Inbox, Obex Server, and the Core Server Support items must also be included in your OS design.

SYSGEN_OBEX_INBOX

When this variable is set, the Obex Inbox Catalog item is included in the OS design.

To enable this functionality, the Obex Server and the Core Server Support items must also be included in your OS design.

Server

The OBEX server runs under Services.exe and forwards OBEX packets to registered handlers. Two sample handlers are included in the public samples, filebrowser (Obexfile.dll) and default inbox (Obexinbx.dll).

Client

The OBEX client API exports an IStream interface to the underlying OBEX protocol. All protocol interaction is abstracted by simple Component Object Model (COM) interfaces.

The following table describes the different OBEX DLLs.

DLL Description

Obexapi.dll

Contains all client OBEX COM objects.

Obexsrvr.dll

OBEX server DLL.

Obexfile.dll

OBEX filebrowser (server module).

Obexinbx.dll

OBEX inbox (server module)

See Also

Other Resources

Object Exchange Protocol
OBEX Application Development