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) |