エクスポート (0) 印刷
すべて展開

通知ハブの概要

更新日: 2014年1月

Windows Azure 通知ハブは、任意のバックエンド (クラウドまたは社内) から任意のモバイル プラットフォームにモバイル プッシュ通知を送信するための、使いやすいインフラストラクチャを提供します。

通知ハブを使用すると、個人用に設定されたクロスプラットフォーム対応のプッシュ通知を、さまざまなプラットフォーム通知システム (PNS) の詳細を抽象化して簡単に送信できます。単一の API 呼び出しで、すべてのユーザー デバイスにわたって、個々のユーザーを対象にすることも、数百万人のユーザーを含む対象ユーザー セグメント全体を対象にすることもできます。

通知ハブはエンタープライズ向けシナリオとコンシューマー向けシナリオの両方に使用できます。次に例を示します。

  • 数百万人に対して低遅延のニュース速報通知を送信します (通知ハブにより、すべての Windows および Windows Phone デバイスにプリインストールされた Bing アプリケーションを強化します)。

  • 場所に基づくクーポンをユーザー セグメントに送信します。

  • ユーザーまたはグループにスポーツ/金融/ゲーム アプリケーションに関するイベント通知を送信します。

  • エンタープライズのユーザーに新着メッセージ/電子メールやセールス リードなどのイベントを通知します。

  • 多要素認証に必要なワンタイム パスワードを送信します。

スマートフォンやタブレットでは、イベントが発生したことをユーザーに "通知" できます。Windows ストアおよび Windows Phone アプリケーションでは、通知によりトースト (画面の上部に表示されるモードレス ウィンドウ) が表示されるか、スタート画面にタイルの更新が表示されます。同様に、Android および Apple iOS デバイスでは、通知は通知パネルにまとめて表示されます。通知パネルには画面の上部から簡単にアクセスできます。

プッシュ通知は、モバイル デバイスでアプリがアクティブになっていないときでもアプリのバックエンドでデバイスに新しい情報を表示するのに役立ちます。

プッシュ通知は、プラットフォーム通知システム (PNS) と呼ばれるプラットフォーム固有のインフラストラクチャを通じて配信されます。PNS は、最低限の機能を提供し (ブロードキャストや個人用設定をサポートしません)、プラットフォーム固有の PNS は共通のインターフェイスを備えていません。たとえば、Windows ストア アプリに通知を送信するには、開発者は WNS (Windows Notification Service) にアクセスする必要があります。iOS デバイスに通知を送信するには、同じ開発者が APNS (Apple Push Notification Service) にアクセスし、同じメッセージを改めて送信します。プロセスは Windows Phone 8 および Android アプリの場合と同様です。

大まかな部分では、すべてのプラットフォーム通知システムは同じパターンに従っています。

  1. クライアント アプリケーションは PNS にアクセスして自らのハンドルを取得します。ハンドルの種類は、システムによって異なります。WNS の場合、ハンドルは URI または "通知チャネル" です。APNS の場合、ハンドルはトークンです。

  2. クライアント アプリケーションは、このハンドルを後で使用できるように、アプリのバックエンドに格納します。WNS の場合、バックエンドは通常クラウド サービスです。Apple の場合は、プロバイダーと呼ばれるシステムです。

  3. プッシュ通知を送信するために、アプリ バックエンドはハンドルを使用して PNS にアクセスして、特定のクライアント アプリケーションのインスタンスを対象に設定します。

  4. PNS は、ハンドルによって指定されたデバイスに通知を転送します。

このフローを実装するために必要なインフラストラクチャは比較的複雑であり、アプリの主要なビジネス ロジックとほとんど関係がありません。オンデマンドのプッシュ インフラストラクチャを構築する際の課題として、次のようなものがあります。

  • プラットフォームへの依存性。さまざまなプラットフォームのデバイスに通知を送信するには、複数のインターフェイスをバックエンドでコーディングする必要があります。下位の詳細が異なるだけでなく、通知のプレゼンテーション (タイル、トースト、またはバッジ) もプラットフォームに依存しています。こうした違いにより、バックエンドのコードが複雑で保守しづらくなります。

  • スケーリング。このインフラストラクチャのスケーリングには 2 つの側面があります。

    • PNS のガイドラインに従い、アプリを起動するたびにデバイス トークンを更新する必要があります。そのため、デバイス トークンを最新の状態に保つだけの目的で、大量のトラフィック (および必然的に生じるデータベース アクセス) が発生します。デバイスの数が増えると (場合によっては数百万台)、このインフラストラクチャを作成して管理するためのコストが重要になります。

    • ほとんどの PNS では、複数のデバイスへのブロードキャストをサポートしていません。そのため、数百万台のデバイスにブロードキャストを行うと、PNS への呼び出しが数百万回行われます。これらの要求をスケーリングできることは重要です。通常、アプリ開発者は、全体的な遅延を抑えたいと考えるからです (たとえば、通知を送信してから最後のデバイスが通知を受信するまでに 30 分以上かかっていたのでは、プッシュ通知を導入する目的が台なしになってしまうため、好ましくありません)。

  • ルーティング。PNS は、デバイスにメッセージを送信する方法を提供します。しかし、ほとんどのアプリでは、通知の対象となるのはユーザーや関連グループ (たとえば、特定の顧客アカウントに割り当てられているすべての従業員) です。したがって、通知を適切なデバイスにルーティングするために、アプリ バックエンドで関連グループとデバイス トークンを関連付けるレジストリを維持する必要があります。このオーバーヘッドにより、アプリケーションの製品化に要する時間と保守費用が増大します。

  • 監視とテレメトリ。数百万件の通知の結果を追跡して集計することは重要であり、通常、プッシュ通知を使用するソリューションの重要な構成要素です。

通知ハブによって、プッシュ通知の課題に対処する、というやっかいな問題を解消することができます。代わりに、通知ハブを使用できます。通知ハブでは、完全マルチプラットフォームのスケールアウト型プッシュ通知インフラストラクチャを使用し、アプリ バックエンドで実行されるプッシュ固有のコードを大幅に削減します。通知ハブは、プッシュ インフラストラクチャのすべての機能を実装しています。次の図に示すように、デバイスは PNS ハンドルを登録するだけでよく、バックエンドはプラットフォームに依存しないメッセージをユーザーまたは関連グループに送信する役割を担います。

通知ハブは、以下の利点を持つプッシュ インフラストラクチャを提供します。

  • マルチプラットフォーム:

    • すべての主要なモバイル プラットフォーム (Windows/Windows Phone、iOS、Android) のサポート。

    • プラットフォーム固有のプロトコルはありません。アプリケーションは通知ハブのみと通信します。

    • デバイス ハンドル管理。通知ハブはハンドル レジストリと PNS からのフィードバックを維持します。

  • 任意のバックエンドとの連携。クラウドまたは社内の、.NET、PHP、Java、Node など。

  • スケーリング。通知ハブは、再構築やシャーディングを行わずに、数百万台のデバイスに対応してスケーリングできます。すべてのリージョンで使用可能です。

  • 豊富な一連の配信パターン。論理ユーザーまたは関連グループを表すタグにデバイスを関連付けます。

    • ブロードキャスト: 単一の API 呼び出しによる数百万台のデバイスへのほぼ同時のブロードキャストを可能にします。

    • ユニキャスト/マルチキャスト: 個別のユーザーと各ユーザーのデバイスを表すタグへのプッシュ。または、より広範囲なグループ、たとえば別々のフォーム ファクター (タブレットと携帯電話) を表すタグへのプッシュ。

    • セグメント化: タグ式によって定義された複雑なセグメント (たとえば、ヤンキースをフォローしているニューヨークのデバイス) へのプッシュ。

  • 個人用設定。各デバイスに 1 つ以上のテンプレートを設定し、バックエンド コードに影響を与えることなく、デバイスごとのローカライゼーションや個人用設定を適用できます。

  • セキュリティ。共有アクセス シークレット (SAS) またはフェデレーション認証。

  • 豊富なテレメトリ。ポータルまたはプログラムで使用可能。

  • プッシュ通知は、コンシューマー アプリのユーザー エンゲージメントを向上させ、エンタープライズ アプリの有用性を高めるため、最新のアプリケーションに欠かせない要素になりました。

  • 通知ハブは、アプリ バックエンド コードの記述と保守を大幅に軽減する、使いやすくてマルチプラットフォームに対応したスケールアウト型のプッシュ インフラストラクチャを提供します。

  • 通知ハブは、すべての主要なモバイル プラットフォーム (Windows/Windows Phone、iOS、Android) にプッシュ通知を送信するために任意のバックエンド (クラウドまたは社内) から使用できます。

表示:
© 2014 Microsoft