OBEX

OBEX (OBject EXchange) は、IrOBEXとも呼ばれ、デバイス間のバイナリオブジェクトの交換を容易にする通信プロトコルである。

概要 
OBEXはIrDAの規格の一つであるが、Bluetooth Special Interest Group（以下Bluetooth SIGと表記する）やOpen Mobile Alliance（以下OMAと表記する）のSyncML派にも支持されている。OBEXの最初のアプリケーションはPDAのPalm III。名刺、データ、アプリケーションを交換するために、このPDAや多くの後継機ではOBEXが利用されている。

クライアントがサーバに接続するときに信頼性の高い転送を行う点と、接続した後にオブジェクトの要求・提供を行う点において、OBEXはHTTPに似ている。しかし、いくつかの重要な点が異なっている。

 転送 - HTTPは通常、TCP/IPポートの上でレイヤが作られる。OBEXは通常、IrDAデバイス上のIrLAP/IrLMP/Tiny TPスタック上に実装される。Bluetoothの場合、Baseband/Link Manager/L2CAP/RFCOMMスタック上に実装される。また、他にもこのようなOBEXのバインディングが可能である。

 バイナリデータの伝送 - HTTPは可読なテキストデータを利用する。しかし、OBEXは、要求やオブジェクトについての情報を交換するために、ヘッダ(Header)と呼ばれる「型(Type)」「データ長(Length)」「値(Value)」の三つ組のバイナリフォーマットを利用する。限られたリソースの中でデバイスがデータを解析することが容易である。

 セッションのサポート - HTTPのトランザクションは、もともと状態を保持しない。通常HTTPのクライアントが要求を行うときは、接続を開始し、単一の要求を行い、応答を受け取り、接続を終了する。OBEXの場合、1つのオブジェクトを転送する接続において、複数の関連するオペレーションを送受信することができる。実は、最近のOBEXの仕様追加によって、どのような状態であっても、突然トランザクションを中断し、その後再開することができるようになった。

Profile 
OBEXは多くの上位レイヤにおける「Profile」の元となった。

IrDA 
 Point and Shoot profile
 Infrared Financial Messaging (IrFM) profile

Bluetooth SIG 
 Generic Object Exchange Profile
 Object Push Profile (phone to phone transfers)
 File Transfer Profile (phone to PC transfers)
 Synchronization Profile
 Basic Imaging Profile
 Basic Printing Profile

OMA 
 SyncML binding

サポートされたデバイス 
 ほとんどの携帯電話
 Palm III以降のすべてのPalm
 2003年以降に発売されたほとんどのPDA

関連項目 
 IrDA
 TransferJet

外部リンク 
 Infrared Data Association OBEXの最新の仕様書が有料で配布されている。
 OpenOBEX OBEXのオープンソースの実装。

通信
インタフェース規格
モバイルネットワーク