Notification Hubs の概要

更新日: 2015年6月

Azure Notification Hubs は、任意のバックエンド (クラウドまたはオンプレミス内) から任意のモバイル プラットフォームにモバイル プッシュ通知を送信できるようにするための、使いやすいインフラストラクチャです。

Notification Hubs を使用すると、異なるプラットフォーム通知システム (PNS: Platform Notification System) の詳細を抽象化して、クロスプラットフォームの個人用プッシュ通知を簡単に送信できます。単一の API 呼び出しを使用して、個々のユーザー、または数百万のユーザーを含む対象ユーザーのセグメント全体の、ユーザーのすべてのデバイスを対象にすることができます。

Notification Hubs はエンタープライズ向けシナリオとコンシューマー向けシナリオの両方に使用できます。例:

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

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

通知ハブによって、プッシュ通知のチャレンジを管理するという非常に複雑な処理の 1 つが不要になります。代わりに、通知ハブ (Notification Hub) を使用できます。Notification Hubs では、完全マルチプラットフォームのスケールアウト型プッシュ通知インフラストラクチャを使用し、アプリ バックエンドで実行されるプッシュ固有のコードを大幅に削減します。Notification Hubs は、プッシュ インフラストラクチャのすべての機能を実装しています。次の図に示すように、デバイスは PNS ハンドルを登録するだけでよく、バックエンドはプラットフォームに依存しないメッセージをユーザーまたは関連グループに送信する役割を担います。

通知ハブ

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

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

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

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

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

  • 任意のバックエンドとの連携。クラウドまたはオンプレミスの、.NET、PHP、Java、Node など。

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

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

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

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

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

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

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

  • 豊富な遠隔測定。ポータルまたはプログラムで使用可能。

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

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

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

表示: