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
サポートされたデバイス
編集関連項目
編集外部リンク
編集- Infrared Data Association OBEXの最新の仕様書が有料で配布されている。
- OpenOBEX OBEXのオープンソースの実装。