Google Identity は、データの保護において Google を信頼してくださっている Google アカウント ユーザーに充実した機能を提供すべく、日々努力を重ねています。同時に、ユーザーにすばらしい体験を提供するアプリを作るデベロッパー コミュニティにも貢献したいと考えています。Google とデベロッパーとの連携により、ユーザーは次の 3 つの重要な方法でデータの共有を管理できるようになっています。
誰が自分のアカウント データにアクセスできるかを決定する際に、ユーザーは対象を細かく制御できます。
ユーザーが Google アカウントのデータをアプリと共有することにした場合、簡単かつ安全な操作で共有できます。
デベロッパーは、既存のスマートホーム プラットフォームをベースに、この SDK を使って Google Home スマート スピーカーや Nest スマート ディスプレイによるローカル実行パスを構築できます。それにより、スマート端末とアシスタントとの密接な統合が実現します。スマート スピーカーやスマート ディスプレイ上で JavaScript を動作させることで、新しいスマート端末や既存のスマート端末を制御するビジネス ロジックを実行できるので、遅延を減らし、高い信頼性を実現して、ユーザーにメリットをもたらすことができます。
動作の仕組み
SDK には、2 つの新しいインテントIDENTIFY と REACHABLE_DEVICES が導入されています。ローカル ホーム プラットフォームは、mDNS、UDP、UPnP を使ってユーザーのホーム ネットワークをスキャンし、アシスタントに接続されているスマート端末を検出します。そして、IDENTIFY を呼び出し、端末 ID がおなじみの Smart Home API の SYNC インテントから返される端末 ID と一致することを検証します。検出した端末がハブまたはブリッジだった場合は、REACHABLE_DEVICES が呼び出され、ハブはローカル通信のプロキシ端末として扱われます。Google Home から端末へのローカル実行パスが確立すると、ホームグラフの端末プロパティが更新されます。
図 2: それぞれの実行パスに使われるインテント
ユーザーがローカル実行パスを持つスマートホームの Action を呼び出すと、アシスタントはデベロッパーのクラウド フルフィルメントではなく、Google Nest 端末に EXECUTE インテントを送ります。デベロッパーの JavaScript アプリが起動し、そのアプリが Local Home SDK を呼び出し、TCP、UDP ソケット、HTTP/HTTPS リクエストのいずれかを使ってスマート端末に制御コマンドを送ります。クラウドではなくローカル実行をデフォルトにすることで、ユーザーのリクエストに迅速に対応できます。ローカル実行が失敗した場合、実行リクエストはクラウドパスに送られます。この冗長性により、リクエストが失敗する可能性を最低限に抑えることができるので、全体的なユーザー エクスペリエンスが向上します。