OBEX(OBject EXchange)とは
OBEX(OBject EXchange)は、IrOBEXとも呼ばれる
通信プロトコルで、デバイス間でバイナリオブジェクトを交換する際に利用されます。主に
IrDA規格の一部として知られていますが、
Bluetooth SIGやOMAの
SyncMLといった他の規格にも採用されています。このプロトコルの最初の応用例は、PDAのPalm IIIで、名刺やデータ、アプリケーションの交換に利用されていました。
OBEXの概要
OBEXは、クライアントがサーバーに接続する際に、信頼性の高いデータ転送を行うという点でHTTPに類似しています。接続後、オブジェクトの要求と提供を行うという点も共通しています。しかし、両者にはいくつかの重要な相違点があります。
1.
転送メカニズム:
HTTPは通常、TCP/IPポート上で動作しますが、OBEXはIrDAデバイス上ではIrLAP/IrLMP/Tiny TPスタックを利用します。Bluetooth環境では、Baseband/Link Manager/L2CAP/RFCOMMスタックを使用します。このように、OBEXは様々な環境に適応可能です。
2. バイナリデータ伝送:
HTTPが可読なテキストデータを使用するのに対し、OBEXはヘッダーと呼ばれるバイナリフォーマットを使用します。このヘッダーは、Type(型)、Length(データ長)、Value(値)の3つ組で構成されており、リソースの限られたデバイスでも効率的にデータを解析できます。
3.
セッション管理:
HTTPトランザクションは基本的にステートレスですが、OBEXでは接続中に複数の関連操作を送受信できます。また、OBEXの最新仕様では、トランザクションを中断し、後で再開することも可能です。
OBEXのプロファイル
OBEXは、多くの上位レイヤーにおける「プロファイル」の基盤となっています。
IrDA関連
Point and Shoot profile
Infrared Financial Messaging (IrFM) profile
Bluetooth SIG関連
Generic Object Exchange Profile
Object Push Profile(携帯電話間のデータ転送用)
File Transfer Profile(
携帯電話とPC間のデータ転送用)
Synchronization Profile
Basic Imaging Profile
Basic Printing Profile
OMA関連
SyncML binding
サポートされているデバイス
OBEXは、以下のような様々なデバイスでサポートされています。
ほとんどの携帯電話
Palm III以降のすべてのPalmシリーズ
2003年以降に発売されたほとんどのPDA
関連項目
IrDA
TransferJet
外部リンク
Infrared Data Association: OBEXの最新仕様書(有料)
* OpenOBEX: OBEXのオープンソース実装
OBEXは、デバイス間のデータ交換を効率的に行うための重要なプロトコルであり、その応用範囲は多岐にわたります。特に、リソースが限られた環境でのデータ交換において、その重要性が際立っています。