フィジカルウェブの紹介
ビーコン 日常のオブジェクトとその環境の間の通信を必要とするあらゆる種類のアプリケーションシナリオに適しています. 物理的なWebは、ユーザーが結果として生じる機会を最適に利用するのに役立ちます. 記事上で, 物理的なWebの仕組みを紹介します, EddystoneのURLがEddystoneの作業中に重要な役割を果たすことは間違いありません。.
に 2014, Googleは、仮想世界と実際の世界をさらに緊密にリンクすることを目的として、オープンソースプロジェクトのPhysicalWebを発表しました。. バス停, 観光名所, 日用品やスーパーマーケットの商品 – 原則として, それらすべてがビーコンを介してスマートフォンにメッセージを個別に送信できるようになりました. このような通信の基礎はBluetoothLowEnergyです (なりました) 無線技術. アイテムにビーコンが装備されている場合, BLEをサポートするスマートフォンにメッセージを送信できます, たとえば、遅延について通知します, 特別オファーまたはキャンペーン日.
この文脈では, 物理的なウェブは, とりわけ, ユーザーがどこにでも新しいアプリをインストールする必要がないこと, しかし、統一されたインターフェースでニュースを見ることができます. これは、ユーザーが自分の環境に関する情報に関心がある場合、またはユーザーとスマートオブジェクト間の相互作用が必要な場合のほとんどすべての場合に使用できます。. そのようなシナリオのより良いアイデアを得るために, 以下に3つの短いアプリケーション例を示します.
インテリジェントバス停: 近くのバス停は、次のバスがいつ来るかをスマートフォンで待っていることを伝えることができます. この場合, 物理的なWebBLEセンサーは、バス停のWebサイトにつながるURLを送信します. それらを他と区別するために, URLには、停車地の識別コードが含まれます.
自動販売機との相互作用: インターネットに接続された自動販売機は、顧客が現金を持っていない場合に自動販売機の支払い機能を使用してWebサイトにアクセスするために使用できるURLを送信します. URLには、購入のたびに動的に変化するトークンが含まれています. スマートフォンで開かれたマシンとWebサイトは、同じトークンを使用してプロバイダーのバックエンドサーバーに接続します. 購入が処理された後, サーバーは、購入した製品を発行するように自動販売機に要求を送信します. 物理的なWebは、URLをスマートフォンに転送するために使用されます. 他のすべての手順は、通常どおりインターネット上で行われます。. 例えば, いわゆるWebソケットは、マシンまたはWebサイトとサーバー間の双方向通信に使用できます。.
監視対象家電: 物理的なウェブは、洗濯機などの家電製品の制御と監視にも使用できます。. 各デバイスは、IPアドレスを参照するURLを送信し、ローカルネットワークに接続されている場合にのみ到達できます. BLEの代わりにmDNSやSSDPなどのネットワーク検出技術が使用されている場合、URLの可視性はネットワーク内のデバイスに制限される可能性があります.
物理的なWebまたは単一のアプリ
他の情報提供とは対照的に (例えば. 時刻表情報や観光協会), ユーザーがプロバイダーごとに独自のアプリをインストールする必要がある場合, 物理的なWebは、ビーコンによって送信されたEddystone URLを、ページ上の検索クエリであるかのように統合します。. そのため、ユーザーは1つのアプリで環境内のスマートオブジェクトを見つけて、それらと直接対話できます。. 別の利点: 事前通知は送信されません. ユーザーは、必要な場合にのみ、自分の領域内のオブジェクトのリストを表示します。.
BLEに加えて, MOKOSmart, 著者が働いている, Simple Service DiscoveryProtocolに基づくローカルネットワークでURLを送受信する方法を提案します (SSDP). SSDPの助けを借りて, ローカルネットワークで送信されたEddystoneURLの可視性を制限して、接続のセキュリティを強化することができます。.
フィジカルウェブは、MOKOSmartのApacheライセンスの下でプロジェクトとして利用可能であり、Androidなどのプラットフォームの実装が含まれています, iOS, およびNode.js. AndroidおよびiOS用の物理Webアプリケーションは、Apple AppStoreおよびGooglePlayストアで入手できます。. すべてのアプリケーションはプロトタイプとして理解されるべきです, これにより、開発者は早い段階で物理的なWebを試すことができます. 将来は, スマートフォンだけでなく、他のモバイルデバイスでも利用できるはずです.
物理的なWebはどのように機能しますか?
物理的なウェブはインターネットの延長であると言われています. すべてのウェブ技術のように, それは誰にでも開かれていて、誰もがそれをさらに発展させることができます. システムはURLの表示に基づいているため, それは分散化されており、誰にも制御されていません. EddystoneのURLは、簡単な情報ページにつながる可能性があります, より複雑に, インタラクティブなWebアプリ、さらにはネイティブアプリケーションへ. 物理的なWebは、Webの検索に相当します:
ユーザーは自分の近くからオブジェクトのリストを呼び出します.
URLのリストが表示されます.
ユーザーが1つ選択します.
URLがブラウザウィンドウに表示されます.
以下の側面は、技術的な観点から考慮に入れる必要があります:
1. フィードバックを送信する
2. 歴史
3. 保存済み
4. コミュニティ
•URLの送受信: URLを送信する方法はたくさんあります. 物理Webは現在、BLEを介した送信をサポートしています, mDNS, およびSSDP (これについては次のセクションで詳しく説明します).
Webサイトから基本情報を取得する: 物理的なWebクライアントは、見つかったURLを収集し、それらをすべての関連情報と一緒に送信します (例えば. シグナル強度) Webサービスへ. この, 順番に, タイトルなどの基本情報を呼び出す, 説明, ウェブサイトのアイコンと検索結果をクライアントに返します. Webサービスのプロトタイプ実装は、プロジェクトのGitHubリポジトリで入手できます。.
•結果の表示: エリアからの多くのURL送信デバイスを表示する場合、ランキングは重要です. 物理的なWebクライアントは、信号強度に従って並べ替えることができます, 個人的な好みやその他の基準. システムは事前にスパムを分類する必要があります. 検索エンジンにも同じ問題があるので, 彼らのアプローチは、物理的なWebに使用できます. 結果表示で, ユーザーがリストオブジェクトをクリックすると、ブラウザが関連するWebサイトを開きます.
• 述べたように, 物理的なWebは現在、URLを送受信する3つの方法を知っています. それらは2つの異なるプロセスに基づいています: Bluetooth LowEnergyおよびネットワークサービスディスカバリ. 理論的には, 将来、さらにメソッドが追加される可能性があります. 例えば, 開発者は、オーディオ透かし技術を使用して、オーディオ信号にURLを埋め込むことができます. この場合, オーディオ信号を受信し、そこに含まれるURLをデコードできるようにするには、物理Webクライアントを拡張する必要があります。.
BleBluetoothとEddystone
物理Webの最初のドラフトはBLEを使用してURLを適切なパッケージに送信します. この技術は非常にエネルギー効率が良いです, 特にそれを使用する製品が送信モードで動作している場合 (接続できないBLEモード), 物理的なウェブの場合のように. 小型のBLEデバイスは、ボタン電池1つでEddystoneURLをほぼ2年間送信できます.
フィジカルウェブの基本的な構成要素の1つは、EddystoneURLです。. プロトコル仕様として, Eddystoneは、Bluetoothコア仕様に基づいて近接ビーコンのBluetooth低電力メッセージ形式を定義します. ビーコンが個別にまたは組み合わせて使用できるさまざまなフレームタイプについて説明します: Eddystone-UID, Eddystone-TLM, および前述のEddystoneURL, 物理的なウェブに関連する唯一のものです.
Eddystoneメッセージは、広告データブロック内の2つの基本的なデータタイプで構成されます (広告): UUIDとデータサービス. どちらのタイプも、16ビットのユニバーサル一意識別子を使用します (UUID) Bluetooth規格に準拠しています. Eddystone用に予約されているUUIDサービスは0xFEAAです. それは効率的なためのメカニズムを提供します, AndroidとiOSの両方で許可されているクロスプラットフォームのバックグラウンドスキャン. ADブロックの後続のバイトには、フレームに固有のデータが含まれています. 最初のバイトはフレームタイプを定義します. 現在、最上位4ビットのみが使用されています. 下の4つは後で使用するために予約されており、値が必要です。 0000.
Eddystone UIDフレームは、10バイトの名前空間IDと6バイトのインスタンスIDで構成される一意の16バイトのビーコンIDを送信します。. 名前空間IDを使用して、特定のビーコンのセットをグループ化できますが, インスタンスIDは、グループ内のデバイスを識別するのに役立ちます.
EddystoneUIDの概念を見ると, これは、Appleによって導入されたiBeaconsと同じように機能します。 2013. iBeaconパケットには 16 UUIDに近いバイト, 2バイトのプライマリドメイン, および2バイトのセカンダリドメイン. iBeaconパケットには16バイトの近接UUIDが含まれています, 2-バイトメジャーフィールドと2バイトマイナーフィールド. 近接UUIDは、企業のような組織またはアプリケーションを識別するために使用できます. メジャーフィールドとマイナーフィールドにより、UUIDによって決定されたIDのより詳細な割り当てが可能になります, ブランチの場合のように. Eddystone-TLMは現在、バッテリーステータスなどのテレメトリ情報を送信しています, デバイスの温度とビーコンによって送信されたパケットの数.
Eddystone URLフレームは、コーディングによって生成されたURLの縮小バージョンを送信します. 圧縮により、限られた広告パッケージでより多くのデータを転送できます. 最初のフォーマット 11 バイト (バイト 0 使って 10) Eddystoneメッセージのはすべてのフレームタイプで同じです. 次のバイトの設定方法 (バイトから開始 11), しかしながら, フレームタイプによって異なります:
•バイト 11 フレームタイプを定義します. EddystoneURLフレームの値は0x10です.
•バイト 12 TXのパワーを定義します. これは、TX電力レベルのBluetooth特性で説明されている符号付き8ビット整数値です。
ネットワークサービスディスカバリ
BLEビーコンとEddystoneURLに加えて, SSDPやmDNSなどのネットワーク検出方法は、URLを送信するオプションを提供します. ローカルネットワーク上のデバイスにURLを送信することもできます. この方法には、BLEに比べて2つの利点があります: 最初, ローカルネットワークにログインしているユーザーのみがURLを表示できます, そして2番目, BLEのようにURLの長さの制限はありません.
物理的なWebにネットワーク検出を使用することは、セキュリティとプライバシーが重要な役割を果たす状況で意味があります. デバイスへのアクセスを同じ世帯の人だけに制限する必要がある場合の例は、スマートホームエリアです。.
シンプルサービスディスカバリプロトコル (SSDP) ローカルネットワーク内のサービスとデバイスのアドバタイズと発見のためのネットワークプロトコルです. ユニバーサルプラグアンドプレイプロトコルの検出レイヤーを形成します (UPnP) コントロールポイントとして定義されている新しく追加されたデバイスを公表するのに役立ちます. また、デバイスや特定のサービスを検索することもできます.
このような機能は、2種類のSSDPメッセージに基づいています。. 最初, デバイスがネットワークに追加されるとすぐに送信するアドバタイズメッセージがあります. 標準のマルチキャストアドレスとポートへのメッセージ 239.255.255.250:1900 ssdpです: 生きている. コントロールポイントはポートをリッスンしてSSDPメッセージを受信し、新しいデバイスやサービスを検出できるようにします. UPnPデバイスがネットワークから消えるか、使用できなくなる前, 彼らはメッセージssdpを送信する必要があります: 同じマルチキャストアドレスと対応するポートにバイバイ.
一方, SSDPにより、コントロールポイントがネットワーク内でも対象のデバイスやサービスを見つけることができる検出機能があります。. この場合, コントロールポイントは、マルチキャストアドレスとポートに検索要求を送信します 239.255.255.250:1900. 要求されたサービスをサポートするUPnPデバイスは、要求を送信したチェックポイントのアドレスにユニキャスト応答を送信します. 応答の形式は、タイプssdpのSSDPメッセージに似ています。: 生きている.
物理Webは、ローカルネットワークでURLを送受信するSSDPをサポートしています. フラウンホーファーFOKUSは、対応するメカニズムの概念と実装を開発しました. 実装には、プロトコルを介してURLを受信するためのAndroidおよびiOS用の物理WebアプリへのSSDPの統合が含まれます. 加えて, Node.jsに基づくクロスプラットフォームツールを使用して、同じ方法でURLを送信できます.
SSDPを使用する場合, ローカルネットワークに接続されている物理Webデバイスは、次のssdpを送信します: ネットワークで利用可能になるとすぐに生きているメッセージ:
通知 * HTTP / 1.1 ホスト: 239.255.255.250:1900
キャッシュ制御: max-age =広告の有効期限が切れるまでの秒数
ロケーション: 宣伝するウェブページのURL
NT: 壷: 物理的なウェブ組織: 端末: 基本: 1
NTS: ssdp: 生きている
サーバ: THE / バージョンUPnP / 1.0 製品 / バージョン
USN: 広告UUID
最初の行のNOTIFYメソッドは、それが広告メッセージであることを示しています. LOCATIONヘッダーは、送信される物理WebURLを定義します。, NTヘッダーはデバイスタイプを定義します, 物理的なウェブの場合は骨壷です: 物理的なウェブ組織: 端末: 基本: 1. ssdp: NTSヘッダーの生きている値は、物理Webデバイスが使用可能であることを示します. 最後に, USNヘッダーは、デバイスを識別するために使用できる一意の名前を提供します. スマートフォンまたはタブレットで実行されている物理Webクライアントは、マルチキャストアドレスとポートをリッスンします 239.255.255.250:1900 NTヘッダーの値をチェックして、物理WebSSDPメッセージをフィルタリングします. 次に、SSDPメッセージを分析し、送信されたURLを運ぶLOCATIONヘッダーの値を読み取ることができます。.
物理的なWebデバイスは、次のssdpを送信する必要があります: ネットワークから消える前のさようならメッセージ:
通知 * HTTP / 1.1 ホスト: 239.255.255.250: 1900
NT: 壷: 物理的なウェブ組織: 端末: 基本: 1
NTS: ssdp: バイバイ
USN: 広告UUID
ssdp: bye-byeは、物理的なWebデバイスが今後利用できなくなることを明確にします. USNヘッダーの値は、ssdpと同じままです。: 生きているメッセージ. このようなメッセージを受信した物理Webクライアントは、USNに関連付けられているURLを探して、リストから削除します。.