(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを含むコンピュータ装置により実施される通知発送方法であって、
複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、前記少なくとも１つのプロセッサが、チャンネル別の購読者に関する情報を含む発送対象データベースに、前記コンテンツと連結する前記複数のチャンネルの購読者を照会する段階、
照会された購読者が前記複数のチャンネルのうちの１番目のチャンネルの購読者である場合、前記少なくとも１つのプロセッサが、発送対象を記録する第１格納場所および重複除去のための第２格納場所に前記照会された購読者の識別値をそれぞれ格納し、前記照会された購読者への通知の発送を処理する段階、および
前記照会された購読者が前記１番目のチャンネルの購読者でない場合、前記少なくとも１つのプロセッサが、前記照会された購読者の識別値を前記第２格納場所で照会し、前記照会された購読者の識別値が前記第２格納場所に格納されているか否かに応じて前記照会された購読者への通知の発送を決定する段階
を含む、通知発送方法。
【請求項２】
前記通知の発送を決定する段階は、
前記照会された購読者の識別値が前記第２格納場所に格納されている場合には前記照会された購読者への通知の発送はスキップすると決定し、前記照会された購読者の識別値が前記第２格納場所に格納されていない場合には前記照会された購読者に対する通知を発送すると決定する、
請求項１に記載の通知発送方法。
【請求項３】
前記発送対象データベースは、チャンネル別の購読者が昇順に整列されているチャンネル別の購読者テーブルを含む、
請求項１または２に記載の通知発送方法。
【請求項４】
前記購読者を照会する段階は、
前記購読者に対するインデックスを分割する段階、および
前記分割されたインデックスのグループに対して前記購読者を並列照会する段階
を含む、請求項１〜３のうちのいずれか一項に記載の通知発送方法。
【請求項５】
前記購読者を照会する段階は、
前記購読者に対するインデックスを第１単位で分割する段階、
前記第１単位で分割されたインデックスそれぞれを第２単位で分割する段階、および
前記第２単位で分割されたインデックスのグループに対して前記購読者を並列照会する段階
を含む、請求項１〜３のうちのいずれか一項に記載の通知発送方法。
【請求項６】
前記第１単位は前記第２単位よりも大きい、
請求項５に記載の通知発送方法。
【請求項７】
前記少なくとも１つのプロセッサが、前記第１格納場所に基づいて発送対象数をトラッキングする段階
をさらに含み、
前記購読者を並列照会する段階は、
予め設定された時間ごとに前記発送対象数の変化を確認する段階、および
前記発送対象数に変化がない場合には１つのチャンネルの購読者に対して通知の発送が完了したと見なし、次のチャンネルの購読者に対して通知を発送するために前記次のチャンネルの購読者を並列照会する段階
を含む、請求項４または５に記載の通知発送方法。
【請求項８】
前記第１格納場所および前記第２格納場所のうちの少なくとも１つは、揮発性かつ永続性を有するキー−値型の格納場所を含む、
請求項１〜７のうちのいずれか一項に記載の通知発送方法。
【請求項９】
前記第１格納場所および前記第２格納場所のうちの少なくとも１つは、前記購読者の数ａ（ａ＝ｂｃ、ａ、ｂ、およびｃは自然数）に対して１つのキーにｂ個の値を有するｃ個のキーでパーティショニングされる、
請求項１〜８のうちのいずれか一項に記載の通知発送方法。
【請求項１０】
前記少なくとも１つのプロセッサが、コンテンツ別に遅延時間を設定する段階、および
前記少なくとも１つのプロセッサが、前記通知の要求を前記コンテンツ別に設定された遅延時間だけ遅延させてプッシュ発送プラットフォームに伝達する段階
をさらに含む、請求項１〜９のうちのいずれか一項に記載の通知発送方法。
【請求項１１】
前記少なくとも１つのプロセッサが、前記通知の要求を非同期呼び出し方式によってプッシュ発送プラットフォームに伝達する段階
をさらに含む、請求項１〜９のうちのいずれか一項に記載の通知発送方法。
【請求項１２】
少なくとも１つのプロセッサを含むコンピュータ装置により実施される通知発送方法であって、
前記少なくとも１つのプロセッサが、複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、チャンネル別の購読者に関する情報を含む発送対象データベースから前記コンテンツと連結する前記少なくとも１つのチャンネルの購読者を照会する段階、
前記少なくとも１つのプロセッサが、前記複数のチャンネルのうちの１番目のチャンネルの購読者への通知の発送を処理する段階、および
前記少なくとも１つのプロセッサが、前記複数のチャンネルのうちの次のチャンネルの購読者への通知の発送を処理するが、前記通知の発送が重複する購読者対する通知の発送はスキップする段階
を含む、通知発送方法。
【請求項１３】
前記通知の発送を処理する段階は、
前記通知が発送された購読者の識別値を格納場所に格納する段階、
前記次のチャンネルの購読者のうちで識別値が前記格納場所に格納された購読者を識別する段階、および
前記識別された購読者への通知の発送をスキップする段階
を含む、請求項１２に記載の通知発送方法。
【請求項１４】
請求項１〜１３のうちのいずれか一項に記載の通知発送方法の各段階をコンピュータ装置に実行させるコンピュータプログラム。
【請求項１５】
請求項１〜１３のうちのいずれか一項に記載の通知発送方法の各段階をコンピュータ装置に実行させるコンピュータプログラムを記録している、コンピュータ読み取り可能な記録媒体。
【請求項１６】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサが、
複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、チャンネル別の購読者に関する情報を含む発送対象データベースから前記コンテンツと連結する前記複数のチャンネルの購読者を照会し、
照会された購読者が前記複数のチャンネルのうちの１番目のチャンネルの購読者である場合、発送対象を記録する第１格納場所および重複除去のための第２格納場所に前記照会された購読者の識別値をそれぞれ格納し、前記照会された購読者への通知の発送を処理し、
前記照会された購読者が前記１番目のチャンネルの購読者でない場合、前記照会された購読者の識別値を前記第２格納場所で照会し、前記照会された購読者の識別値が前記第２格納場所に格納されているか否かに応じて前記照会された購読者への通知の発送を決定する、
コンピュータ装置。
【請求項１７】
前記少なくとも１つのプロセッサが、
前記照会された購読者の識別値が前記第２格納場所に格納されている場合には前記照会された購読者への通知の発送はスキップすると決定し、前記照会された購読者の識別値が前記第２格納場所に格納されていない場合には前記照会された購読者に対する通知を発送すると決定する、
請求項１６に記載のコンピュータ装置。
【請求項１８】
前記少なくとも１つのプロセッサが、
前記購読者に対するインデックスを分割し、
前記分割されたインデックスのグループに対して前記購読者を並列照会する、
請求項１６または１７に記載のコンピュータ装置。
【請求項１９】
前記少なくとも１つのプロセッサが、
前記購読者に対するインデックスを第１単位で分割し、
前記第１単位で分割されたインデックスそれぞれを第２単位で分割し、
前記第２単位で分割されたインデックスのグループに対して前記購読者を並列照会する、
請求項１６または１７に記載のコンピュータ装置。
【請求項２０】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサが、
複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、チャンネル別の購読者に関する情報を含む発送対象データベースから前記コンテンツと連結する前記少なくとも１つのチャンネルの購読者を照会し、
前記複数のチャンネルのうちの１番目のチャンネルの購読者への通知の発送を処理し、
前記複数のチャンネルのうちの次のチャンネルの購読者への通知の発送を処理するが、前記通知の発送が重複する購読者への通知の発送はスキップする、
コンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、通知発送方法およびシステムに関する。
【背景技術】
【０００２】
複数のユーザに通知を送信するための技術が存在する。例えば、特許文献１は、プッシュ通知送信方法およびこれを実行するプッシュ通知サーバに関するものであって、プッシュ通知サーバがプッシュ通知サーバのオペレーティングからプッシュ通知メッセージを受信すると、プッシュ通知サーバのオペレーティングと連係し、登録されているプッシュ通知クライアントにプッシュ通知メッセージを送信する構成を開示している。
【０００３】
このような通知送信方式により、特定されたユーザに通知メッセージを順に送信する方式を考慮できるようになった。しかし、このような方式は、特定されたユーザの数が多くなるほど、全ユーザに通知を伝達するためにかかる時間は線形的に増加することは容易に理解することができる。
【０００４】
また、１つの通知が複数のチャンネルと関連しており、少なくとも一部のユーザそれぞれが複数のチャンネルを利用することが考えられる。この場合、同じ内容の通知が同じユーザに複数のチャンネルを介して重複送信されるという問題が発生する。例えば、特定のスター（一例として、歌手）ごとにチャンネルが存在し、ユーザａが、歌手１に対するチャンネルＡ、歌手２に対するチャンネルＢ、および歌手３に対するチャンネルＣを購読していると仮定する。このとき、年末授賞式に歌手１、歌手２、および歌手３がすべて参加した場合、年末授賞式のコンテンツに対する同じ通知が、チャンネルＡ、チャンネルＢ、およびチャンネルＣを介してユーザａに３度も重複送信されるという問題が発生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】韓国公開特許第１０−２０１５−００３１１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
通知の発送速度を向上させ、大量通知の全体発送時間を減らすことができる、通知発送方法およびシステムを提供する。
【０００７】
通知発送に対する性能の改善は、サーバの台数を増やしたりサーバの性能を上げたりすることが一般的である反面、本発明の実施形態では、サーバの構成を変えるだけで大量通知の全体発送時間を減らすことができる、通知発送方法およびシステムを提供する。
【課題を解決するための手段】
【０００８】
少なくとも１つのプロセッサを含むコンピュータ装置により実施される通知発送方法であって、複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、前記少なくとも１つのプロセッサが、チャンネル別の購読者に関する情報を含む発送対象データベースから前記コンテンツと連結する前記複数のチャンネルの購読者を照会する段階、照会された購読者が前記複数のチャンネルのうちの１番目のチャンネルの購読者である場合、前記少なくとも１つのプロセッサが、発送対象を格納する第１格納場所および重複除去のための第２格納場所に前記照会された購読者の識別値をそれぞれ格納し、前記照会された購読者への通知の発送を処理する段階、および前記照会された購読者が前記１番目のチャンネルの購読者でない場合、前記少なくとも１つのプロセッサが、前記照会された購読者の識別値を前記第２格納場所で照会し、前記照会された購読者の識別値が前記第２格納場所に格納されているか否かに応じて前記照会された購読者への通知の発送を決定する段階を含む、通知発送方法を提供する。
【０００９】
一側によると、前記通知の発送状態を決定する段階は、前記照会された購読者の識別値が前記第２格納場所に格納されている場合には前記照会された購読者への通知の発送をスキップすると決定し、前記照会された購読者の識別値が前記第２格納場所に格納されていない場合には前記照会された購読者に対する通知を発送すると決定することを特徴としてよい。
【００１０】
他の側面によると、前記発送対象データベースは、チャンネル別の購読者が昇順に整列されているチャンネル別の購読者テーブルを含むことを特徴としてよい。
【００１１】
また他の側面によると、前記購読者を照会する段階は、前記購読者に対するインデックスを分割する段階、および前記分割されたインデックスのグループに対して前記購読者を並列照会する段階を含むことを特徴としてよい。
【００１２】
また他の側面によると、前記購読者を照会する段階は、前記購読者に対するインデックスを第１単位で分割する段階、前記第１単位で分割されたインデックスそれぞれを第２単位で分割する段階、および前記第２単位で分割されたインデックスのグループに対して前記購読者を並列照会する段階を含むことを特徴としてよい。
【００１３】
また他の側面によると、前記第１単位は、前記第２単位よりも大きいことを特徴としてよい。
【００１４】
また他の側面によると、前記通知発送方法は、前記少なくとも１つのプロセッサが、前記第１格納場所に基づいて発送対象数をトラッキングする段階をさらに含み、前記前記購読者を並列照会する段階は、予め設定された時間ごとに前記発送対象数の変化を確認する段階、および前記発送対象数に変化がない場合は１つのチャンネルの購読者に対して通知の発送が完了したと見なし、次のチャンネルの購読者に対して通知を発送するために前記次のチャンネルの購読者を並列照会する段階を含むことを特徴としてよい。
【００１５】
また他の側面によると、前記第１格納場所および前記第２格納場所のうちの少なくとも１つは、揮発性かつ永続性を有するキー−値型の格納場所を含むことを特徴としてよい。
【００１６】
また他の側面によると、前記第１格納場所および前記第２格納場所のうちの少なくとも１つは、前記購読者の数ａ（ａ＝ｂｃ、ａ、ｂ、およびｃは自然数）に対して１つのキーにｂ個の値を有するｃ個のキーでパーティショニングされることを特徴としてよい。
【００１７】
また他の側面によると、前記通知送信方法は、前記少なくとも１つのプロセッサが、コンテンツ別に遅延時間を設定する段階、および前記少なくとも１つのプロセッサが、前記通知の要求を前記コンテンツ別に設定された遅延時間だけ遅延させてプッシュ発送プラットフォームに伝達する段階をさらに含んでよい。
【００１８】
さらに他の側面によると、前記通知の送信方法は、前記少なくとも１つのプロセッサが、前記通知の要求を非同期呼び出し方式によってプッシュ発送プラットフォームに伝達する段階をさらに含んでよい。
【００１９】
少なくとも１つのプロセッサを含むコンピュータ装置の通知発送方法であって、複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、前記少なくとも１つのプロセッサが、チャンネル別の購読者に関する情報を含む発送対象データベースから前記コンテンツと連結する前記少なくとも１つのチャンネルの購読者を照会する段階、前記少なくとも１つのプロセッサが、前記複数のチャンネルのうちの１番目のチャンネルの購読者への通知の発送を処理する段階、および前記少なくとも１つのプロセッサにより、前記複数のチャンネルのうちの次のチャンネルの購読者への通知の発送を処理するが、前記通知の発送が重複する購読者への通知の発送はスキップする段階を含む、通知発送方法を提供する。
【００２０】
コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためのコンピュータプログラムを提供する。
【００２１】
前記方法をコンピュータ装置に実行させるためのプログラムが記録されているコンピュータ読み取り可能な記録媒体を提供する。
【００２２】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、複数のチャンネルを介してコンテンツを提供するに対する通知を送信しようとする場合、前記少なくとも１つのプロセッサが、チャンネル別の購読者に関する情報を含む発送対象データベースから前記コンテンツと連結する前記複数のチャンネルの購読者を照会し、照会された購読者が前記複数のチャンネルのうちの１番目のチャンネルの購読者である場合、発送対象を記録する第１格納場所および重複除去のための第２格納場所に前記照会された購読者の識別値をそれぞれ格納し、前記照会された購読者への通知の発送を処理し、前記照会された購読者が前記１番目のチャンネルの購読者でない場合は前記照会された購読者の識別値を前記第２格納場所で照会し、前記照会された購読者の識別値が前記第２格納場所に格納されているか否かに応じて前記照会された購読者への通知の発送を決定することを特徴とする、コンピュータ装置を提供する。
【００２３】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサが、複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、チャンネル別の購読者に関する情報を含む発送対象データベースから前記コンテンツと連結する前記少なくとも１つのチャンネルの購読者を照会し、前記複数のチャンネルのうちの１番目のチャンネルの購読者への通知の発送を処理し、前記複数のチャンネルのうちの次のチャンネルの購読者への通知の発送を処理するが、前記通知の発送が重複する購読者への通知の発送はスキップすることを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【００２４】
通知の発送速度を向上させ、大量通知の全体発送時間を減らすことができる。
【００２５】
通知発送に対する性能の改善は、サーバの台数を増やしたりサーバの性能を上げたりするのが一般的である反面、本発明の実施形態では、サーバの構成を変えるだけで大量通知の全体発送時間を減らすことができる。
【００２６】
一実施形態として、サービスサーバでプッシュ発送プラットフォームに多数の通知を集めて非同期方式によって伝達することにより、通知発送時の無駄なネットワーク費用を減らし、不必要な待機時間を減らすことができる。
【００２７】
他の実施形態として、発送対象の確認（重複確認）と発送を並列して行うことにより、通知の発送を即時に開始することができ、重複発送を無くすために発送対象を確認する時間を減らすことができる。
【００２８】
また他の実施形態として、小さい単位の並列作業のためのＤＰＰ（Ｄｏｕｂｌｅ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ）を導入することで作業処理速度を向上させ、通知の発送速度を向上させることができる。
【００２９】
さらに、コンテンツ別に指定された遅延時間（一例として、ｎミリ秒）単位で通知を遅延発送することにより、速まった発送速度のせいで連動するプッシュ発送プラットフォームで発生し得る負荷を減らすことができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。
【図３】本発明の一実施形態における、通知がユーザに伝達されるまでの流れを示した例示図である。
【図４】本発明の一実施形態における、サービスサーバがプッシュ発送プラットフォームに通知の発送を要求する過程を示した例示図である。
【図５】本発明の一実施形態における、サービスサーバがプッシュ発送プラットフォームに通知の発送を要求する過程を示した他の例示図である。
【図６】本発明の一実施形態における、ＤＰＰを示した例示図である。
【図７】本発明の一実施形態における、サービスサーバがプッシュ発送プラットフォームに通知の発送を要求する過程を示したさらに他の例示図である。
【図８】本発明の一実施形態における、通知発送方法の例を示したフローチャートである。
【発明を実施するための形態】
【００３１】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００３２】
本発明の実施形態に係る大量通知発送システムは、少なくとも１つのコンピュータ装置によって実現されてよく、本発明の実施形態に係る大量通知発送方法は、通知発送システムに含まれる少なくとも１つのコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールおよび実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の実施形態に係る方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合して前記方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
【００３３】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。また、図１のネットワーク環境は、本実施形態に適用可能な環境のうちの１つの例を説明したものに過ぎず、本実施形態に適用可能な環境が図１のネットワーク環境に限定されることはない。
【００３４】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン、携帯電話、ナビゲーション、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、ノート型ＰＣ、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットなどがある。一例として、図１では、電子機器１１０の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器１１０は、実質的に無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信することのできる多様な物理的なコンピュータシステムのうちの１つを意味してよい。
【００３５】
通信方式が限定されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網）を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００３６】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する１つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ１５０は、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０にサービス（一例として、グループ通話サービス（または、音声カンファレンスサービス）、メッセージングサービス、メールサービス、ソーシャルネットワークサービス、地図サービス、翻訳サービス、金融サービス、決済サービス、検索サービス、コンテンツ提供サービスなど）を提供するシステムであってよい。
【００３７】
図２は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器１１０、１２０、１３０、１４０それぞれやサーバ１５０、１６０それぞれは、図２に示されたコンピュータ装置２００によって実現されてよい。
【００３８】
このようなコンピュータ装置２００は、図２に示すように、メモリ２１０、プロセッサ２２０、通信インタフェース２３０、および入力／出力インタフェース２４０を含んでよい。メモリ２１０は、コンピュータ読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブなどのような永続的大容量記録装置を含んでよい。ここで、ＲＯＭやディスクドライブのような永続的大容量記録装置は、メモリ２１０とは区分される別の永続的記録装置としてコンピュータ装置２００に含まれてもよい。また、メモリ２１０には、オペレーティングシステムと、少なくとも１つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ２１０とは別のコンピュータ読み取り可能な記録媒体からメモリ２１０にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー（登録商標）ドライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース２３０を通じてメモリ２１０にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク１７０を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置２００にロードされてよい。
【００３９】
プロセッサ２２０は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１０または通信インタフェース２３０によって、プロセッサ２２０に提供されてよい。例えば、プロセッサ２２０は、メモリ２１０のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【００４０】
通信インタフェース２３０は、ネットワーク１７０を介してコンピュータ装置２００が他の電子機器（一例として、上述した記録装置）と互いに通信するための機能を提供してよい。一例として、コンピュータ装置２００のプロセッサ２２０がメモリ２１０のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース２３０の制御にしたがってネットワーク１７０を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク１７０を経てコンピュータ装置２００の通信モジュール２３０を通じてコンピュータ装置２００に受信されてよい。通信インタフェース２３０を通じて受信された信号や命令、データなどは、プロセッサ２２０やメモリ２１０に伝達されてよく、ファイルなどは、コンピュータ装置２００がさらに含むことのできる記録媒体（上述した永続的記録装置）に記録されてよい。
【００４１】
入力／出力インタフェース２４０は、入力／出力装置２５０とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイやスピーカのような装置を含んでよい。他の例として、入力／出力インタフェース２４０は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。入力／出力装置２５０は、コンピュータ装置２００と１つの装置で構成されてもよい。
【００４２】
また、他の実施形態において、コンピュータ装置２００は、図２の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置２００は、上述した入力／出力装置２５０のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
【００４３】
図３は、本発明の一実施形態における、通知がユーザに伝達されるまでの流れを示した例示図である。図３の実施形態に係る大量通知発送システム３００は、サービスサーバ３１０およびプッシュ発送プラットフォーム３２０を含んでよい。実施形態によって、大量通知発送システム３００は、プッシュ発送プラットフォーム３２０を含まずに、別の外部プッシュ発送プラットフォームを活用してもよい。
【００４４】
サービスサーバ３１０は、コンテンツに対する通知を伝達する発送対象と通知によって送信する情報とを組み合わせてプッシュ発送プラットフォーム３２０に伝達してよく、プッシュ発送プラットフォーム３２０は、ネットワーク１７０を介してユーザ端末３４０に通知を送信してよい。
【００４５】
このとき、本明細書における「発送対象」とは、コンテンツが提供されることに対する通知を発送するための対象として、コンテンツが提供されるチャンネルの購読者を含んでよい。以下、「購読者」とは、チャンネルのユーザとして表現されてよい。また、１つの通知に対する「発送時間」とは、サービスサーバ３１０が発送作業を始めた時点から最後の発送対象に対してプッシュ発送プラットフォーム３２０に発送を要求した時点までの時間を意味してよい。サービスサーバ３１０が発送対象ごとに通知の発送をプッシュ発送プラットフォーム３２０に要求するようになれば、発送対象の数に比例して発送時間が増加するようになる。
【００４６】
したがって、本実施形態において、サービスサーバ３１０は、通知の発送をプッシュ発送プラットフォーム３２０に並列して要求することにより、発送時間を減らすことができる。
【００４７】
図４は、本発明の一実施形態における、サービスサーバがプッシュ発送プラットフォームに通知の発送を要求する過程の例を示した図である。図４は、コンテンツ（一例として、映像コンテンツ）に対する通知の発送要求をサービスサーバ３１０がプッシュ発送プラットフォーム３２０に伝達する過程の例を示している。図４において、配置サーバ４１０、受信者照会キュー４２０、受信者照会モジュール４３０、発送対象データベース４４０、レディス４５０、発送キュー４６０、発送モジュール４７０、および機器データベース４８０は、サービスサーバ３１０に含まれる構成要素であってよい。
【００４８】
映像に対するライブ放送が始まったり、映像のＶＯＤ（Ｖｉｄｅｏ  Ｏｎ  Ｄｅｍａｎｄ）がオープンしたりする場合、ａｐｉが呼び出しされることによって配置サーバ４１０に映像の固有番号が伝達されてよい。このとき、配置サーバ４１０は、伝達された映像の固有番号を受信者照会キュー４２０にプロデュース（ｐｒｏｄｕｃｅ）してよい。配置サーバ４１０は、一例として、ジェンキンス（Ｊｅｎｋｉｎｓ）サーバによって実現されてよい。一方、本明細書で説明するキュー（ｑｕｅｕｅ）とは、「ＲａｂｂｉｔＭＱ」のようなオープンソースのメッセージブローカであるソフトウェア形態で実現されてよい。このような「ＲａｂｂｉｔＭＱ」は、メッセージを生産する生産者（Ｐｒｏｄｕｃｅｒ）がメッセージをキューに格納（プロデュース）しておくと、メッセージを受信する消費者（Ｃｏｎｓｕｍｅｒ）がメッセージを呼び込んで処理するパブリッシュ（Ｐｕｂｌｉｓｈ）／購読（Ｓｕｂｓｃｒｉｂｅ）方式のメッセージ伝達ブローカであってよい。例えば、配置サーバ４１０が生成者として映像の固有番号を受信者照会キュー４２０に格納すると、以後からは、受信者照会キュー４２０の消費者である受信者照会モジュール４３０は、受信者照会キュー４２０に格納された映像の固有番号を消費（固有番号を呼び込んで処理）した後、以下の（１−１）〜（１−３）の過程を行ってよい。
【００４９】
（１−１）映像とチャンネルは１：Ｎ構造であり、映像に対する複数のチャンネルの発送対象に通知が発送されることがある。この場合、受信者照会モジュール４３０は、映像と連結するチャンネルのユーザを発送対象データベース４４０から照会してよい。発送対象データベース４４０は、チャンネル（一例として、チャンネルの識別子）と該当のチャンネルを介してコンテンツの提供を受けるユーザに関する情報（一例として、ユーザ識別子）とを互いに関連付けて格納してよい。このとき、受信者照会モジュール４３０は、映像と連結するチャンネルを確認し、発送対象データベース４４０から確認されたチャンネルと関連付けて格納されたユーザを発送対象として確認してよい。
【００５０】
（１−２）受信者照会モジュール４３０は、照会されたユーザに対して通知が重複発送されないようにするために、照会されたユーザに関する情報をジャバセット（ｊａｖａ  ｓｅｔ）のような資料構造に格納することにより、重複ユーザを除去してよい。この場合、受信者照会モジュール４３０は、映像と連結するすべてのチャンネルに対し、照会されたユーザに関する情報（重複が除去された情報）をレディス（ｒｅｄｉｓ）４５０に整列されたセットとして格納してよい。ここで、レディス４５０とは、揮発性かつ永続性を有するキー−値型の格納場所であって、照会されたユーザに関する情報（重複が除去された情報）を格納する格納場所の例として使用された。このとき、レディス４５０には、ユーザに対する発送対象キーが整列されたセットとして格納されてよい。
【００５１】
（１−３）受信者照会モジュール４３０は、照会されたユーザに関する情報を予め設定された大きさに分割し、分割された情報を発送キュー４６０に格納してよい。
【００５２】
一方、発送モジュール４７０は、発送キュー４６０の消費者として以下の（２−１）および（２−２）の過程を行ってよい。このとき、発送モジュール４７０は、複数のモジュールで構成されてよく、複数のモジュールが分割情報の単位で（２−１）および（２−２）の過程を並列処理することにより、発送時間を減らすことができるようになる。
【００５３】
（２−１）発送モジュール４７０は、レディス４５０でユーザに関する情報（重複が除去された情報）を照会してよい。
【００５４】
（２−２）発送モジュール４７０は、照会されたユーザに対応する機器識別子（ｄｅｖｉｃｅ  ＩＤ）を機器データベース４８０から照会してよい。
【００５５】
この後、発送モジュール４７０は、機器識別子とコンテンツ情報（通知の内容）を活用して適切なペイロード（ｐａｙｌｏａｄ）を構成した後、構成されたペイロードをプッシュ発送プラットフォーム３２０に伝達してよい。
【００５６】
このとき、サービスサーバ３１０の発送モジュール４７０がプッシュ発送プラットフォーム３２０に通知の発送を要求した後に応答の種類（成功または失敗）に応じて発送時間に対するロギングを処理するだけで、応答を待つ必要がないため、本実施形態では、サービス発送モジュール４７０が非同期呼び出し方式によってプッシュ発送プラットフォーム３２０に通知の発送を要求するようにしてよい。プッシュ発送プラットフォーム３２０の要求による応答は約１〜２秒足らずではあるが、発送モジュール４７０が応答を待つ時間は発送対象の数に比例して増加するため、このような非同期呼び出し方式によって発送時間を減らすことが可能となる。一例として、非同期呼び出し方式のためにジャバクラス「ＡｓｙｎｃＲｅｓｔＴｅｍｐｌａｔｅ」が活用されてよい。
【００５７】
以下の表１は、非同期呼び出し方式の使用状態によって通知の最初の発送までにかかる時間と通知の最後の発送までにかかる時間の例を示している。
【００５８】
【表１】
0006864125.tif 000002
【００５９】
表１は、非同期呼び出し方式を用いた１次改善案が、既存の案よりも最後の発送までにかかる時間、言い換えれば、発送時間を４分ほど減らすことができることを示している。なお、図４の実施形態では、発送対象をすべて入手してから通知の発送を開始した。これは、１つの映像と連結する複数のチャンネルが存在し、１人のユーザが複数のチャンネルを購読していることを考慮すると、重複ユーザを除去しなければならないためである。例えば、１つの映像にチャンネルＡ、チャンネルＢ、およびチャンネルＣが連結されており、ユーザがチャンネルＡとチャンネルＢを購読している状況で重複除去をせずに通知を送信すると、該当のユーザは同じ内容の通知を２度も受け取るようになる。映像に連結されたチャンネルが１つである場合は問題ないが、２つ以上の場合には重複通知の問題が発生するため、重複除去を完了することによって１番目の通知だけが発送される構造を有するようになる。表１では、このような重複通知の除去過程によって通知の最初の発送が６分ほど遅延したことを示している。これにより、映像が急きょ放送される場合を考慮するとき、放送の中間、または短い放送の場合には放送が終わってから通知がユーザに発送されることが起こり得るという問題が浮上する。
【００６０】
このような問題を解決するために、本発明の他の実施形態では、購読者数が最も多いチャンネルに対しては、重複チェックをする必要なく、発送対象データベース４４０から該当のチャンネルに対するユーザが照会されれば直ぐに通知を発送し、該当のユーザに対して通知が発送されたという情報を格納場所（一例として、レディス）に格納することにより、以後からは、他のチャンネルに対するユーザに通知を発送するときには、格納場所に格納された情報に基づき、既に通知が発送されたユーザに対しては通知の発送をスキップすることができ、通知の最初の発送までにかかる時間と通知の最後の発送までにかかる時間の両方を減らすことができるようになる。
【００６１】
図５は、本発明の一実施形態における、サービスサーバがプッシュ発送プラットフォームに通知の発送を要求する過程の他の例を示した図である。図５に示した受信者照会分割キュー５１０、受信者照会分割モジュール５２０、受信者照会キュー５３０、受信者照会モジュール５４０、発送対象データベース４４０、第１レディス５５０、第２レディス５６０、発送キュー５７０、発送モジュール５８０、および機器データベース４８０は、サービスサーバ３１０に含まれる構成要素であってよい。
【００６２】
上述した図４の実施形態では、通知発送のトリガーリングを配置サーバ４１０で行っている。このとき、配置サーバ４１０がジェンキンス（Ｊｅｎｋｉｎｓ）サーバで実現された場合、ａｐｉから「Ｊｅｎｋｉｎｓ  ｒｅｍｏｔｅ  ａｐｉ」に呼び出しがかかると基本的に２０〜３０秒ほどのインスタンス実行時間が生じるようになるが、この時間も不必要に発送時間を増加させるため、図５の実施形態では、ａｐｉが受信者照会分割キュー５１０に直ぐに映像の固有番号を格納してよい。
【００６３】
受信者照会分割モジュール５２０は、固有番号を呼び込み、ユーザのためのインデックスを適切な大きさに区分してよい。例えば、受信者照会分割モジュール５２０は、インデックスのグループ別に開始インデックス（ｓｔａｒｔ  ｉｎｄｅｘ）および終了インデックス（ｅｎｄ  ｉｎｄｅｘ）を区分してよく、区分されたインデックスを受信者照会キュー５３０としてプロデュースしてよい。ここで、受信者照会キュー５３０は、複数のキューで構成されてよい。一方、受信者照会キュー５３０の消費者である受信者照会モジュール５４０も、複数のモジュールで構成されてよい。この場合、受信者照会モジュール５４０が含む複数のモジュールにより、以下の（３−１）〜（３−３）の過程が並列処理されてよい。
【００６４】
（３−１）受信者照会モジュール５４０が含む複数のモジュールそれぞれは、発送対象ユーザに関する情報を発送対象データベース４４０から照会してよい。
【００６５】
（３−２）受信者照会モジュール５４０が含む複数のモジュールそれぞれは、１番目のチャンネル（購読者数が最も多いチャンネル）のユーザが照会された場合、該当のユーザに対する値（一例として、該当のユーザの識別子）を第１レディス５５０の発送対象キーおよび第２レディス５６０の重複除去キーに格納してよい。この後、受信者照会モジュール５４０は、該当のユーザに関する情報を発送キュー５７０に格納してよい。
【００６６】
（３−３）受信者照会モジュール５４０は、照会されたユーザが１番目のチャンネルのユーザでない場合には重複除去をしなければならないため、第２レディス５６０のゼットスコア（ｚｓｃｏｒｅ）演算（時間複雑度０（１））を活用して通知が発送されないユーザを１つにまとめ、まとめられたユーザに対する値を第１レディス５５０の発送対象キーに格納した後、該当のユーザに関する情報を発送キュー５７０に格納してよい。例えば、通知が発送されたユーザは、該当のユーザの値が第２レディス５６０重複除去キーに格納されているため、照会されたユーザの値が第２レディス５６０の重複除去に格納されているか否かに応じて該当の照会されたユーザへの通知をスキップまたは発送することで通知重複を除去してよい。
【００６７】
一方、発送モジュール５８０は、発送キュー５７０の消費者として以下の（２−１）および（２−２）の過程を行ってよい。このとき、発送モジュール５８０は、複数のモジュールで構成されてよく、複数のモジュールが分割情報の単位で（４−１）および（４−２）の過程を並列処理することにより、発送時間を減らすことができるようになる。
【００６８】
（４−１）発送モジュール５８０は、第１レディス５５０でユーザに関する情報（重複が除去された情報）を照会してよい。
【００６９】
（４−２）発送モジュール５８０は、照会されたユーザに対応する機器識別子（ｄｅｖｉｃｅ  ＩＤ）を機器データベース４８０から照会してよい。
【００７０】
この後、発送モジュール５８０は、機器識別子とコンテンツ情報（通知の内容）を活用して適切なペイロード（ｐａｙｌｏａｄ）を構成した後、構成されたペイロードをプッシュ発送プラットフォーム３２０に伝達してよい。
【００７１】
この場合、サービスサーバ３１０は、発送対象を照会すると直ぐに通知の発送をプッシュ発送プラットフォーム３２０に要求するため発送時間を減らすことができ、ユーザは、発送が始まると直ぐに通知を受信し始めることができるようになる。以下の表２は、既存の案と１次改善案、そして図５の実施形態に係る２次改善案に基づいて通知の最初の発送までにかかる時間と通知の最後の発送までにかかる時間の例を示している。
【００７２】
【表２】
0006864125.tif 000003
【００７３】
通知の発送時間を追加で減少するために、ＤＰＰ（Ｄｏｕｂｌｅ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ）が活用されてよい。ＤＰＰは、ユーザを大きい単位で分割した後、分割された大きい単位を小さい単位で再分割することにより、一度に並列処理される通知の量を増加させ、発送時間を減らすことができる。図６は、本発明の一実施形態における、ＤＰＰの例を示した図である。図６は、１段階では、１番目のユーザは１であり、最後のユーザは３００万であると仮定するとき、大きい単位（一例として、１０万）でユーザを分割した後、２段階では１段階で分けた単位を小さい単位（一例として、１，０００）で再分割する例を示している。この場合、相対的に小さい単位のさらに多くのグループに対して発送対象データベース４４０からユーザを並列照会できるため、発送時間を減らすことができるようになる。
【００７４】
一方、発送時間が減少（発送速度が増加）することによってレディスに負荷が発生するようになり、他のモジュールでレディスを使用するにあたり遅延が発生することがある。これは、レディスが単一スレッド方式により、キー１つに演算が終わるまで該当のキーが属するレディスは他の演算を処理することができないことによって発生する。これを解決するために、レディスパーティショニングが活用されてよい。例えば、ユーザが１，０００万であると仮定するとき、従来は１つのレディスに１，０００万個のキーが格納された構造でユーザを１０，０００に分け、結果的に１つのレディスに１，０００個ずつ、合計１０，０００個にキーがパーティショニングされて格納されるようにすることによって発送速度を増加させることができ、レディス使用に対する遅延問題を処理することができる。
【００７５】
また、多くのチャンネルを介して同時に通知を送ることにより、間歇的に重複通知が発生するようになった。これは、多くの段階の並列プロセスが存在し、各プロセス別に順序が保障されない状態でそれぞれが進行されるため、第１プロセスで重複チェックキーを確認する前に第２プロセスで先に重複チェックをして通知を発送すれば、第１プロセスが通知を重複して発送するようになる。これを解決するために、レディスを活用して発送対象数をトラッキングしてよく、予め設定された時間（一例として、１秒）ごとに発送対象数の変化を確認し、発送対象数に変化がない場合は１つのチャンネルに対する通知発送が完了したと見なし、次のチャンネルに対する通知を発送してよい。
【００７６】
図７は、本発明の一実施形態における、サービスサーバがプッシュ発送プラットフォームに通知の発送を要求する過程のさらに他の例を示した図である。図７に示した受信者照会大きな分割キュー７１０、受信者照会大きな分割モジュール７２０、受信者照会小さい分割キュー７３０、受信者照会小さい分割モジュール７４０、発送対象データベース４４０、第１レディス５５０、第２レディス５６０、重複除去キュー７５０、重複除去モジュール７６０、発送キュー７７０、発送モジュール７８０、および機器データベース４８０は、サービスサーバ３１０に含まれる構成要素であってよい。
【００７７】
このとき、図７の実施形態では、ａｐｉが受信者照会大きい分割キュー７１０に直ぐに映像の固有番号を生成すると、受信者照会大きい分割モジュール７２０は、並列照会が可能なように、チャンネル別に大きい単位でユーザのためのインデックスをパーティショニングしてよい。パーティショニングされたインデックスは、受信者照会小さい分割キュー７３０に格納されてよい。また、受信者照会大きい分割モジュール７２０は、チャンネル間の通知発送の進行を担当してよく、第１レディス５５０で発送対象数に変化がない場合は次のチャンネルを発送するように処理してよい。
【００７８】
受信者照会小さい分割モジュール７４０は、受信者照会小さい分割キュー７３０に基づいてより小さな単位でインデックスをパーティショニングし、以下の（５−１）〜（５−３）の過程を処理してよい。
【００７９】
（５−１）受信者照会小さい分割モジュール７４０は、発送対象データベース４４０からユーザを照会してよい。
【００８０】
（５−２）受信者照会小さい分割モジュール７４０は、第２レディス５６０にキーを１０万単位でパーティショニングしてユーザを格納してよい。例えば、照会されたユーザのインデックスが１０５８７２である場合は「ｐｕｓｈ：ｏｖｅｒｌａｐＣｈｅｃｋ：１０００００」に、照会されたユーザのインデックスが３４０９５７２の場合は「ｐｕｓｈ：ｏｖｅｒｌａｐＣｈｅｃｋ：３４０００００」に、それぞれ格納されてよい。
【００８１】
（５−３）受信者照会小さい分割モジュール７４０は、照会されたユーザを第１レディス５５０に格納してよい。
【００８２】
照会されたユーザは重複除去キュー７５０に格納され、重複除去モジュール７６０に伝達されてよい。重複除去モジュール７６０は、１番目のチャンネルに対しては重複チェックをせず、発送キュー７７０と発送モジュール７８０を介して直ぐに通知を発送してよく、１番目のチャンネルでない場合には第１レディス５５０で値を照会し、第２レディス５６０の重複除去キーに該当の値があるかを確認してから発送を決定してよい。第２レディス５６０の重複除去キーに該当の値が格納されていれば、該当のユーザに対する通知の発送はスキップされてよく、重複除去キーに該当の値が格納されていなければ、該当のユーザに対する通知の発送が発送キュー７７０と発送モジュール７８０を介して処理されてよい。このとき、該当のユーザの値が第２レディス５６０の重複除去キーに格納され、該当のユーザに対する通知が発送されたことを指示してよい。
【００８３】
以下の表３は、既存の案と１次改善案、２次改善案、そして図７の実施形態に係る３次改善案に基づいて通知の最初の発送までにかかる時間と通知の最後の発送までにかかる時間の例を示している。
【００８４】
【表３】
0006864125.tif 000004
【００８５】
図８は、本発明の一実施形態における、大量通知発送方法の例を示したフローチャートである。本実施形態に係る大量通知発送方法は、サーバ（一例として、サービスサーバ３１０）を実現するコンピュータ装置２００によって実行されてよい。この場合、コンピュータ装置２００のプロセッサ２２０は、メモリ２１０が含むオペレーティングシステムのコードと、少なくとも１つのコンピュータプログラムのコードとによる制御命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ２２０は、コンピュータ装置２００に記録されたコードが提供する制御命令にしたがってコンピュータ装置２００が図８の方法に含まれる段階８１０〜８３０を実行するようにコンピュータ装置２００を制御してよい。ここで、少なくとも１つのコンピュータプログラムは、サーバからコンテンツの提供を受けて再生するためのアプリケーション（一例として、メディアプレーヤ）を含んでよい。段階８１０で、コンピュータ装置２００は、複数のチャンネルを介してコンテンツを提供することに対する通知を送信しようとする場合、チャンネル別の購読者に関する情報を含む発送対象データベースからコンテンツと連結する複数のチャンネルの購読者を照会してよい。発送対象データベースは、上述した発送対象データベース４４０に対応してよく、チャンネル別の購読者に関する情報を含んでよい。例えば、チャンネルの識別子と購読者の識別子とが互いに関連付けられて発送対象データベースに格納されていてよい。このとき、コンピュータ装置２００は、特定のコンテンツが指定されると該当のコンテンツと連結する複数のチャンネルを識別してよく、識別された複数のチャンネルを介して発送対象データベースから対応する購読者を通知の発送対象として照会してよい。
【００８６】
段階８２０で、コンピュータ装置２００は、照会された購読者が複数のチャンネルのうちの１番目のチャンネルの購読者である場合、発送対象を記録する第１格納場所および重複除去のための第２格納場所に照会された購読者の識別値をそれぞれ格納し、照会された購読者への通知の発送を処理してよい。上述した識別値は、一例として該当の購読者の識別子であってよく、第１格納場所と第２格納場所は、図５または図７を参照しながら説明した第１レディス５５０と第２レディス５６０にそれぞれ対応してよい。一例として、第１格納場所および第２格納場所のうちの少なくとも１つは、揮発性かつ永続性を有するキー−値型の格納場所を含んでよい。ここで、１番目のチャンネルとは、上述したように、購読者数が最も多いチャンネル、言い換えれば、発送対象データベースにおいて購読者が最も多いチャンネルを意味してよい。照会された購読者が１番目のチャンネルの購読者であるということは、通知が未発送であることを意味してよく、したがって、コンピュータ装置２００は、照会された購読者への通知の発送を処理してよい。ここで、コンピュータ装置２００が通知の発送を処理するということは、通知の発送要求をプッシュ発送プラットフォーム３２０に伝達することに対応してよい。このとき、コンピュータ装置２００は、購読者に対する通知の要求を非同期呼び出し方式によってプッシュ発送プラットフォーム３２０に伝達することにより、プッシュ発送プラットフォーム３２０からの応答を待機する時間を節約することができる。
【００８７】
段階８３０で、コンピュータ装置２００は、照会された購読者が１番目のチャンネルの購読者でない場合、照会された購読者の識別値を第２格納場所で照会し、照会された購読者の識別値が第２格納場所に格納されているか否かに応じて照会された購読者への通知の発送を決定してよい。例えば、コンピュータ装置２００は、照会された購読者の識別値が第２格納場所に格納されている場合には、照会された購読者への通知の発送はスキップすると決め、照会された購読者の識別値が第２格納場所に格納されていない場合には、照会された購読者に対する通知を発送すると決定してよい。照会された購読者に対する通知を発送すると決定する場合、コンピュータ装置２００は、通知の発送要求をプッシュ発送プラットフォーム３２０に伝達して通知の発送を処理してよい。この場合にも、コンピュータ装置２００は、購読者に対する通知の要求を非同期呼び出し方式によってプッシュ発送プラットフォーム３２０に伝達することにより、プッシュ発送プラットフォーム３２０からの応答を待機する時間を節約することができる。
【００８８】
言い換えれば、コンピュータ装置２００は、複数のチャンネルのうちの１番目のチャンネルの購読者への通知の発送を先に処理してから、複数のチャンネルのうちの次のチャンネルの購読者への通知の発送を処理するが、通知の発送が重複する購読者への通知の発送はスキップしてよい。このとき、コンピュータ装置２００は、通知が発送された購読者の識別値を格納場所に格納し、次のチャンネルの購読者のうちで識別値が格納場所に格納された購読者を識別し、識別された購読者に対する通知の発送をスキップしてよい。ここで、格納場所は、上述した第２格納場所に対応してよく、２つ以上のチャンネルに対しても格納場所で通知の発送が重複する購読者を持続的に識別し、識別された購読者への通知の発送をスキップすることにより、通知の発送速度を向上させ、大量通知の全体発送時間を減らすことができる。
【００８９】
一方、実施形態によって、コンピュータ装置２００は、段階８１０で購読者に対するインデックスを分割し、分割されたインデックスのグループに対して購読者を並列照会してよい。例えば、図５の実施形態では、受信者照会分割モジュール５２０が購読者に対するインデックスを分割し、受信者照会モジュール５４０が購読者に対する照会を並列で行う例について説明した。
【００９０】
また、実施形態によって、コンピュータ装置２００は、段階８１０で購読者に対するインデックスを第１単位で分割し、第１単位で分割されたインデックスそれぞれを第２単位で分割し、第２単位で分割されたインデックスのグループに対して購読者を並列照会してよい。ここで、第１単位は、第２単位よりも大きくてよい。一例として、図７の実施形態では、受信者照会大きい分割モジュール７２０が購読者に対するインデックスを分割すると、受信者照会小さい分割モジュール７４０が分割されたインデックスを再分割する例について説明した。このために、発送対象データベースは、チャンネル別の購読者が昇順に整列されているチャンネル別の購読者テーブルを含んでよい。
【００９１】
また、実施形態によって、コンピュータ装置２００は、第１格納場所に基づいて発送対象数をトラッキングしてよい。このような発送対象数のトラッキングは、チャンネル間の発送タイミングによって通知が重複発送されることを防ぐために活用されてよい。例えば、コンピュータ装置２００は、購読者を並列照会するにあたり、予め設定された時間ごとに発送対象数の変化を確認し、発送対象数に変化がない場合には１つのチャンネルの購読者に対して通知の発送が完了したと見なし、次のチャンネルの購読者に対して通知を発送するために次のチャンネルの購読者を並列照会してよい。
【００９２】
実施形態によって、第１格納場所および第２格納場所のうちの少なくとも１つは、購読者の数ａ（ａ＝ｂｃ、ａ、ｂ、およびｃは自然数）に対して１つのキーにｂ個の値を有するｃ個のキーでパーティショニングされてよい。例えば、ａが１，０００万である場合、第１格納場所および第２格納場所のうちの少なくとも１つは、それぞれ１，０００個の値を１０，０００のキーでパーティショニングされてよい。このような格納場所のパーティショニングは、１つのキーに対して単一スレッド方式によって演算を処理する格納場所の特徴に基づいて実行されてよい。
【００９３】
一方、コンピュータ装置２００は、コンテンツ別に遅延時間を設定してよい。このとき、購読者に対する通知の要求は、コンテンツ別に設定された遅延時間だけ遅延されてプッシュ発送プラットフォームに伝達されてよい。例えば、重要な放送の場合、速まった通知発送速度のせいで連動するプラットフォーム（一例として、プッシュ発送プラットフォーム）で負荷が発生することがある。これにより、コンピュータ装置２００は、通知の要求と要求との間に、一例としてｎミリ秒のような遅延時間をコンテンツ別に設定してよい。このような遅延時間により、コンピュータ装置２００は、通知発送時間を多様に制御することができるようになる。
【００９４】
このように、本発明の実施形態によると、通知の発送速度を向上させ、大量通知の全体発送時間を減らすことができる。通知発送に対する性能の改善は、サーバの台数を増やしたりサーバの性能を上げたりするのが一般的である反面、本発明の実施形態では、サーバの構成を変えるだけで大量通知の全体発送時間を減らすことができる。また、サービスサーバでプッシュ発送プラットフォームに多数の通知を集めて非同期方式によって伝達することにより、通知発送時の無駄なネットワーク費用を減らし、不必要な待機時間を減らすことができる。また、発送対象の確認（重複確認）と発送を並列で行うことにより、通知の発送を即時に開始することができ、重複発送を無くすために発送対象を確認する時間を減らすことができる。また、小さい単位の並列作業のためのＤＰＰ（Ｄｏｕｂｌｅ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ）を導入することで作業処理速度を向上させ、通知の発送速度を向上させることができる。さらに、コンテンツ別に指定された遅延時間（一例で、ｎミリ秒）単位で通知を遅延発送することにより、速まった発送速度のせいで連動するプッシュ発送プラットフォームで発生し得る負荷を減らすことができる。
【００９５】
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）およびＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【００９６】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【００９７】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独で含んでも、組み合わせて含んでもよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭおよびＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【００９８】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００９９】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【０１００】
３００：大量通知発送システム
３１０：サービスサーバ
３２０：プッシュ発送プラットフォーム
１７０：ネットワーク
３３０：ユーザ端末
【図１】
0006864125.tif 000005
【図２】
0006864125.tif 000006
【図３】
0006864125.tif 000007
【図４】
0006864125.tif 000008
【図５】
0006864125.tif 000009
【図６】
0006864125.tif 000010
【図７】
0006864125.tif 000011
【図８】
0006864125.tif 000012