プロファイル
Wi-Fiの上ではメールやWebやファイル交換プロトコルが動作しますが、これらのプロトコル仕様は決してWi-Fi特有のものではなく、EthernetやADSLでも同じように使うことのできる「インターネット(TCP/IP)」の標準仕様です。一方Bluetoothの場合、ヘッドセットやキーボードやプリンターをつなぐプロトコルに至るまで、Bluetooth SIGの定めた標準仕様に従って動作します。これを「プロファイル」と呼んでいます。プロファイルはメーカーや機種の違いにかかわらず、同じ機能であれば同じように使えることを目的として定められた仕組みです。これはある面では大成功しており、例えば携帯電話機とBluetoothヘッドセットの組み合わせが「相性」で動作しない問題はほとんど起きません。しかし何十種類か定義されているプロファイルのなかで、ヘッドセットのように多用されているのは十指に満たないほどです。1機能=1プロファイルに対応させようとしたのは良かったのですが、携帯ヘッドセットのように機能と製品が綺麗に1対1に対応する例はむしろ少なく、例えばプリンターに至っては使用想定の違いによりSPP(仮想シリアル・ポート)、HCRP(仮想パラレル・ポート)、BIP(静止画転送)、BPP(標準プリンター)と4種類もの「印刷系」プロファイルが乱立することになってしまいました。
またプロファイルの制定には長い時間と労力(そして金額)がかかるため、例えば「Bluetooth腕時計」とか「Bluetooth万歩計」のような製品を思い付いたとしても、そのためだけに「腕時計プロファイル」や「万歩計プロファイル」を制定するわけにはなかなかゆきません。従来こういった用途への応用は「シリアル・ポート(SPP)」という扱いにしていましたが、当然ながらシリアル・ポートは「データ通信」以上の仕様を何も規定しないため、本来の目的である相互運用性としてはあまり役に立ってはいませんでした。
最新仕様のBluetooth 4.0では、新たにアトリビュート(GATT;General Attribute Profile)という概念が導入されました。これはTCP/IP上のSNMPに似たもので、「型」と「名前」を持つ「アトリビュート」に対して「読み」「書き」を行うことで通信を実現するものです。例えば万歩計なら「歩数」を数える「整数型」のアトリビュートを実装すればよいし、腕時計なら「現在時刻」を示す「時刻型」のアトリビュートを実装すればよい、という具合です。アトリビュートの「名前」は128ビットのUUIDで定義され、どのUUIDが何を意味するかについてはBluetooth SIGの「Assgined Numbers」で管理されます。
この仕組みによって、同じ「GATTプロファイル」の枠内でさまざまなデバイスに相互運用性を持たせて定義することが可能になり、特に医療系機器へのBluetooth普及の鍵として期待されています。しかし従来のBluetooth仕様とはかなり異なる概念だけに、特にホスト側の実装はなかなか進んでいないようです。