IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 17LIVE株式会社の特許一覧

特開2023-162202ストリーミングデータにアクセスするためのシステムおよび方法
<>
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図1
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図2
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図3
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図4
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図5
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図6
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図7
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図8
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図9
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図10
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図11
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図12
  • 特開-ストリーミングデータにアクセスするためのシステムおよび方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023162202
(43)【公開日】2023-11-08
(54)【発明の名称】ストリーミングデータにアクセスするためのシステムおよび方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20231031BHJP
   H04N 21/647 20110101ALI20231031BHJP
   H04N 21/63 20110101ALI20231031BHJP
   H04L 67/1029 20220101ALI20231031BHJP
【FI】
G06F9/50 150C
H04N21/647
H04N21/63
H04L67/1029
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023126565
(22)【出願日】2023-08-02
(62)【分割の表示】P 2022187749の分割
【原出願日】2022-11-24
(31)【優先権主張番号】P 2022009905
(32)【優先日】2022-01-26
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】517287224
【氏名又は名称】17LIVE株式会社
(74)【代理人】
【識別番号】100199277
【弁理士】
【氏名又は名称】西守 有人
(72)【発明者】
【氏名】張育銓
(72)【発明者】
【氏名】李昆擇
(72)【発明者】
【氏名】劉哲▲い▼
(57)【要約】      (修正有)
【課題】限られたサーバ台数で多くのクライアントにストリーミングデータを送信するシステム及び方法を提供する。
【解決手段】ロードバランサによってインターネット上でストリーミングデータにアクセスする方法は、視聴者Aのユーザ端末からネットワークを介してストリーミングデータに対する第1の要求を取得する工程と、当該ストリーミングデータにアクセスするためにプルエッジサーバに当該第1の要求を送信する工程と、当該第1の要求に含まれる識別情報を当該サーバに対応するようにテーブルに記録する工程と、視聴者Bの第2のユーザ端末からネットワークを介してストリーミングデータに対する第2の要求を取得する工程と、当該ストリーミングデータにアクセスするために当該サーバに当該第2の要求を送信する工程と、を含む。当該第2の要求に含まれる識別情報が、当該第1の要求に含まれる識別情報と同じである。
【選択図】図2
【特許請求の範囲】
【請求項1】
ロードバランサにより実行される、ストリーミングデータにアクセスするための方法であって、
第1のユーザ端末から、ネットワークを介して、ストリーミングデータに対する第1の要求を取得する工程と、
前記ストリーミングデータにアクセスするために前記第1の要求をサーバに送信する工程と、
前記第1の要求に含まれる識別情報を、前記サーバに対応するものとしてテーブルに記録する工程と、
第2のユーザ端末から、ネットワークを介して、前記ストリーミングデータに対する第2の要求を取得する工程と、
前記ストリーミングデータにアクセスするために前記第2の要求を前記サーバに送信する工程と、
を含み、そのうち、前記第2の要求に含まれる識別情報が、前記第1の要求に含まれる前記識別情報と同じである、ことを特徴とする、ストリーミングデータにアクセスするための方法。
【請求項2】
前記ストリーミングデータがライブストリーミングデータである、ことを特徴とする、請求項1に記載のストリーミングデータにアクセスするための方法。
【請求項3】
さらに、前記テーブルを参照することにより、前記第2の要求に含まれる前記識別情報が、前記第1の要求に含まれる前記識別情報と同じであることを判断する工程を含む、ことを特徴とする、請求項1に記載のストリーミングデータにアクセスするための方法。
【請求項4】
前記第1のユーザ端末が前記サーバを介して前記ストリーミングデータにアクセスしている間に、前記第2の要求が取得されることを特徴とする、請求項1に記載のストリーミングデータにアクセスするための方法。
【請求項5】
前記ストリーミングデータの前記識別情報が、前記ストリーミングデータの配信者を特定する配信者IDであることを特徴とする、請求項1に記載のストリーミングデータにアクセスするための方法。
【請求項6】
前記ストリーミングデータの前記識別情報が、前記ストリーミングデータを特定するストリームIDであることを特徴とする、請求項1に記載のストリーミングデータにアクセスするための方法。
【請求項7】
前記サーバが、オリジンサーバから前記ストリーミングデータを取り込むプルエッジサーバであり、前記オリジンサーバが、前記ストリーミングデータを提供する配信者のユーザ端末から前記ストリーミングデータを受信することを特徴とする、請求項6に記載のストリーミングデータにアクセスするための方法。
【請求項8】
前記ストリーミングデータが、前記第1のユーザ端末に送信される前に、前記サーバでトランスコードされることを特徴とする、請求項1に記載のストリーミングデータにアクセスするための方法。
【請求項9】
さらに、前記ストリーミングデータにアクセスするために前記第2の要求を前記サーバに送信する前に、前記サーバに接続されているユーザ端末の数が閾値未満であることを判定する工程を含む、ことを特徴とする、請求項1に記載のストリーミングデータにアクセスするための方法。
【請求項10】
ストリーミングデータにアクセスするためのシステムであって、1以上のプロセッサを含み、そのうち、前記1以上のプロセッサが機械可読命令を実行して、
第1のユーザ端末から、ネットワークを介して、ストリーミングデータに対する第1の要求を取得する工程と、
前記ストリーミングデータにアクセスするために前記第1の要求をサーバに送信する工程と、
前記第1の要求に含まれる識別情報を、前記サーバに対応するものとしてテーブルに記録する工程と、
第2のユーザ端末から、ネットワークを介して、前記ストリーミングデータに対する第2の要求を取得する工程と、
前記ストリーミングデータにアクセスするために前記第2の要求を前記サーバに送信する工程と、
を実行し、そのうち、前記第2の要求に含まれる識別情報が、前記第1の要求に含まれる前記識別情報と同じである、ことを特徴とする、ストリーミングデータにアクセスするためのシステム。
【請求項11】
ライブストリーミングデータのためのロードバランサであって、
現在利用可能なライブストリームを識別するストリームIDと、前記現在利用可能なライブストリームを取り扱うサーバを識別する各サーバIDとを保存するように構成された保存ユニットと、
ユーザの端末からネットワークを介して第1のストリームIDを含む要求を受信するように構成された受信ユニットと、
前記要求の受信に応答して、前記保存ユニットを参照し、前記第1のストリームIDによって識別される第1のライブストリームを取り扱う第1のサーバを決定するように構成された決定ユニットと、
決定された前記第1のサーバに、前記第1のライブストリームのライブストリーミングデータを前記ユーザの前記端末に送信させるように構成された接続ユニットと、
を含む、ことを特徴とする、ライブストリーミングデータのためのロードバランサ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネット上のデータアクセスに関し、特に、インターネット上のストリーミングデータにアクセスすることに関する。
【背景技術】
【0002】
ライブストリーミングに代表されるように、インターネット上におけるリアルタイムのデータアクセスが日常生活に浸透している。リアルタイムのデータアクセスを支援または提供するシステムでは、限られた利用可能なインフラストラクチャやサービス、例えばサーバの容量を、潜在的なクライアントとそのクライアントがアクセスを必要とするコンテンツに効率的に分配することが重要である。
【0003】
プルエッジサーバとは、データが保存または受信されるオリジンサーバからのデータプルを容易にするように構成されたサーバである。オリジンサーバは、ストリーマー/配信者から直接または間接的にストリーミングデータを受信することができる。ストリーミングデータアクセスのシナリオでは、ストリーミングデータが格納されるオリジンサーバと、ストリーミングデータにアクセスするクライアントとの間に、複数のプルエッジサーバが展開されてもよい。プルエッジサーバは、オリジンサーバからデータを引き出してクライアントに分配することで、オリジンサーバの負担を軽減し、サービスを受けるクライアントの数を増加させることができる。
【発明の概要】
【0004】
本発明の一実施態様に係る方法は、1以上のコンピュータによって実行されるストリーミングデータにアクセスするための方法であって、当該方法が、第1のユーザ端末からネットワークを介してストリーミングデータに対する第1の要求を取得する工程と、当該ストリーミングデータにアクセスするためにサーバに当該第1の要求を送信する工程と、当該第1の要求に含まれる識別情報を当該サーバに対応するようにテーブルに記録する工程と、第2のユーザ端末からネットワークを介してストリーミングデータに対する第2の要求を取得する工程と、当該ストリーミングデータにアクセスするために当該サーバに当該第2の要求を送信する工程と、を含み、当該第2の要求に含まれる識別情報が、当該第1の要求に含まれる識別情報と同じである。
【0005】
本発明の一実施態様に係るシステムは、1以上のプロセッサを含むストリーミングデータにアクセスするためのシステムであり、当該1以上のコンピュータプロセッサが、機械可読命令を実行して、第1のユーザ端末からネットワークを介してストリーミングデータに対する第1の要求を取得する工程と、当該ストリーミングデータにアクセスするためにサーバに当該第1の要求を送信する工程と、当該第1の要求に含まれる識別情報を当該サーバに対応するようにテーブルに記録する工程と、第2のユーザ端末からネットワークを介してストリーミングデータに対する第2の要求を取得する工程と、当該ストリーミングデータにアクセスするために当該サーバに当該第2の要求を送信する工程と、を実行し、当該第2の要求に含まれる識別情報が、当該第1の要求に含まれる識別情報と同じである。
【0006】
本発明の一実施態様に係るロードバランサは、ストリーミングデータにアクセスするためのロードバランサであって、当該ロードバランサが、現在利用可能なライブストリームを識別するストリームIDと、当該現在利用可能なライブストリームを取り扱うサーバを識別するそれぞれのサーバIDとを保存するように構成された保存ユニットと、ユーザの端末からネットワークを介して第1のストリームIDを含む要求を受信するように構成された受信ユニットと、当該要求の受信に応答して、当該保存ユニットを参照し、当該第1のストリームIDによって識別される第1のライブストリームを取り扱う第1のサーバを決定するように構成された決定ユニットと、決定された当該第1のサーバに、当該第1のライブストリームのライブストリーミングデータを当該ユーザの当該端末に送信させるように構成された接続ユニットと、を含む。
【図面の簡単な説明】
【0007】
図1】従来のインターネット上でのデータアクセスの操作を示す例示的シーケンス図である。
図2】本発明の一部の実施態様に基づくインターネット上でのデータアクセスの操作を示す例示的シーケンス図である。
図3】本発明の一部の実施態様に基づくインターネット上でのデータアクセスの操作を示す例示的シーケンス図である。
図4】本発明の一部の実施態様に基づくプルエッジサーバテーブルの例示的データ構造を示す表である。
図5】本発明の一部の実施態様に基づくライブストリーミングシステム1の構成を示す概略図である。
図6】本発明の一部の実施態様に基づく、図5のユーザ端末30の機能と構成を示すブロック図である。
図7】本発明の一部の実施態様に基づく、図11のコントロールサーバ100の機能と構成を示すブロック図である。
図8】ストリームDB310の例示的データ構造を示す表である。
図9】ユーザDB312の例示的データ構造を示す表である。
図10】贈り物DB314の例示的データ構造を示す表である。
図11】本発明の一部の実施態様に基づく、図5のサーバシステム10の機能と構成を示すブロック図である。
図12】本発明の一部の実施態様に基づく、図11のロードバランサ50の機能と構成を示すブロック図である。
図13】ロードバランサ50に実装される例示的な工程を示すフローチャートである。
【発明を実施するための形態】
【0008】
データアクセスシステム内のサーバ容量を割り当てる際の課題の1つが、限られたサーバ台数でいかに多くのクライアントにサービスを提供するかということである。アクセスされるデータは、ライブビデオデータなどのライブストリーミングデータであってもよい。クライアントは、ユーザや視聴者によって操作され、ライブストリーミングデータを要求するユーザ端末であってもよい。クライアントは、配信者またはストリーマーが操作するユーザ端末であって、ライブストリーミングデータを提供するものであってもよい。サーバは、それらのライブストリーミングデータが提供され、クライアントがアクセスする場所である。
【0009】
図1に、従来のインターネット上でのデータアクセスの操作を示す例示的シーケンス図を示す。視聴者A、視聴者B、視聴者Cは、ストリーミングデータを要求する視聴者が操作するユーザ端末と見なすことができる。ユーザ端末は、スマートフォン、ノートパソコン、パーソナルコンピュータなど、インターネットにアクセス可能な任意の機器とすることができる。当該ロードバランサ50は、プルエッジサーバを選択し、ストリーミングデータにアクセスするための視聴者からの要求をプルエッジサーバに導く、渡す、送信する、分配する、または割り当てるように構成される。
【0010】
工程S100において、視聴者Aはロードバランサ50に対して、ストリーミングデータの要求を送信する。
【0011】
工程S102において、当該ロードバランサ50は、当該プルエッジサーバ62を選択し、視聴者Aからの当該要求を当該プルエッジサーバ62に導く、または送信する。
【0012】
工程S104において、当該プルエッジサーバ62は当該要求を当該ストリーミングデータが保存または受信される当該オリジンサーバ70に送信する。
【0013】
工程S106において、当該ストリーミングデータが当該オリジンサーバ70から当該プルエッジサーバ62に提供される。
【0014】
工程S108において、当該プルエッジサーバ62は当該ストリーミングデータをトランスコードする。例えば、当該ストリーミングデータの音声データをAAC形式からOpus形式にトランスコードし、WebRTCのアクセスに対応させてもよい。
【0015】
工程S110において、当該プルエッジサーバ62はトランスコードされた当該ストリーミングデータを視聴者Aに返す、または送信する。
【0016】
工程S112において、視聴者Bはロードバランサ50に対して、ストリーミングデータの要求を送信する。
【0017】
工程S114において、当該ロードバランサ50は当該プルエッジサーバ64を選択し、視聴者Bからの当該要求を当該プルエッジサーバ64に導く、または送信する。
【0018】
工程S116において、当該プルエッジサーバ64は当該要求を当該ストリーミングデータが受信及び(または)保存される当該オリジンサーバ70に送信する。
【0019】
工程S118において、当該ストリーミングデータが当該オリジンサーバ70から当該プルエッジサーバ64に提供される。
【0020】
工程S120において、当該プルエッジサーバ64は当該ストリーミングデータをトランスコードする。例えば、当該ストリーミングデータの音声データをAAC形式からOpus形式にトランスコードし、視聴者によるWebRTCのアクセスに対応させてもよい。
【0021】
工程S122において、当該プルエッジサーバ64はトランスコードされた当該ストリーミングデータを視聴者Bに返す、または送信する。
【0022】
工程S124において、視聴者Cはロードバランサ50に対して、ストリーミングデータの要求を送信する。
【0023】
工程S126において、当該ロードバランサ50は当該プルエッジサーバ66を選択し、視聴者Cからの当該要求を当該プルエッジサーバ66に導く、または送信する。
【0024】
工程S128において、当該プルエッジサーバ66は当該要求を当該ストリーミングデータが受信及び(または)保存される当該オリジンサーバ70に送信する。
【0025】
工程S130において、当該ストリーミングデータが当該オリジンサーバ70から当該プルエッジサーバ66に提供される。
【0026】
工程S132において、当該プルエッジサーバ66は当該ストリーミングデータをトランスコードする。例えば、当該ストリーミングデータの音声データをAAC形式からOpus形式にトランスコードし、WebRTCのアクセスに対応させてもよい。
【0027】
工程S134において、当該プルエッジサーバ64はトランスコードされた当該ストリーミングデータを視聴者Cに返す、または送信する。
【0028】
従来、ロードバランサは、視聴者からのストリーミングデータの要求を、プルエッジサーバに公平または均等に分配、送信、または導き、プルエッジサーバの負荷を分散させる。つまり、ロードバランサは、新たに受信した要求を「最も空いている」または「最も占有されていない」サーバに分配し、このサーバは、CPU使用率が最も低いサーバ、メモリ使用率が最も低いサーバ、またはアクセスするクライアントが最も少ないサーバであってもよい。従来、ロードバランサは、プルエッジサーバに要求を導く際に、要求されたストリーミングデータのリソースまたはアイデンティティを考慮しない。ストリーミングデータのリソースまたはアイデンティティは、例えば、ストリーミングデータを提供するストリーマーまたは配信者であってもよく、またはこれらを含んでもよい。したがって、同じストリーミングデータ(同じ配信者からのストリーミングデータ)に対する要求が、アクセス用に異なるプルエッジサーバに導かれることがしばしば起こる。
【0029】
例えば、図1において、視聴者A、視聴者B、視聴者Cが同じストリーミングデータ(つまり、同じリソースまたは同じアイデンティティのストリーミングデータ)を要求した場合でも、ロードバランサはやはりそれらの要求をプルエッジサーバ62、64、66に均等に導く/送信する。
【0030】
しかし、この方法では、データアクセスを完了させるために同じストリーミングデータのトランスコーディング処理を3回実行する必要がある。つまり、工程S108、工程S120、工程S132において、同一のストリーミングデータのトランスコーディング処理を、当該プルエッジサーバ62、当該プルエッジサーバ64、プルエッジサーバ66でそれぞれ実行する必要がある。
【0031】
これは、プルエッジサーバ全体のリソース、特にCPUの消費量に無駄が生じる。トランスコーディング処理は、トランスコーディング処理が実行されるサーバのCPU使用率を一定量消費することになる。トランスコーディング処理に必要なCPU使用率がX%であるとすると、図1中のシステムでは、プルエッジサーバリソース全体に対して3倍のCPU使用率を消費することになる。プルエッジサーバの構成により、Xは1~10の範囲であってもよい。例えば、Xは2であってもよい。
【0032】
ストリーミングデータを視聴者に返すなど、各視聴者またはクライアントへの対応にも、プルエッジサーバのCPU使用率を消費する。したがって、ストリーミングデータの提供やトランスコーディングにおけるプルエッジサーバのリソース消費を抑えることで、サービスを提供する視聴者の数を増やすことが望ましい。
【0033】
図2に本発明の一部の実施態様に基づくインターネット上でのデータアクセスの操作を示す例示的シーケンス図を示す。
【0034】
まず、視聴者Aのユーザ端末は、ネットワークを介してコントロールサーバ(後述する)から現在利用可能なライブストリームの一覧を受信する。当該リストには、現在利用可能な各ライブストリームに対応するストリームIDのリストが含まれる。当該ユーザ端末は、受信した当該リストをディスプレイに表示する。視聴者Aが当該ディスプレイ上の当該リストから1つのライブストリームを選択する。その後、当該ユーザ端末は、選択されたライブストリームのストリーミングデータの配信要求を生成する。工程S200において、視聴者Aの当該ユーザ端末は、生成されたストリーミングデータの配信要求を当該ロードバランサ50に送信する。当該配信要求には、選択されたライブストリームの当該ストリーミングデータの識別情報S1が含まれる。一部の実施態様において、当該識別情報S1は、当該ストリーミングデータを提供する配信者またはストリーマーなど、当該ストリーミングデータのリソースに対応する。当該識別情報S1は、ストリーマーIDまたは配信者IDであってもよい。一部の実施態様において、当該識別情報S1は、当該ストリーミングデータのアイデンティティに対応する。当該識別情報S1は、当該ストリーミングデータのストリームIDであってもよい。一部の実施態様において、当該識別情報S1は、視聴者Aからの当該配信要求に含まれるURLに含まれる。識別情報は、要求される当該ストリーミングデータを示す、または特定するために用いられる。一部の実施態様において、ライブストリーミングデータは、識別情報によって一意に特定される。
【0035】
工程S202において、当該ロードバランサ50は当該プルエッジサーバ62を選択し、視聴者Aからの当該配信要求を当該プルエッジサーバ62に導く/送信する。当該ロードバランサ50は、視聴者Aからの当該配信要求に含まれる当該識別情報S1を、当該プルエッジサーバ62に対応するものとしてルックアップテーブルまたはキャッシュテーブル、あるいはプルエッジサーバテーブルに記録する。一部の実施態様において、当該ルックアップテーブルまたはキャッシュテーブル、あるいはプルエッジサーバテーブルは当該ロードバランサ50に実装され、管理される。
【0036】
工程S204において、当該プルエッジサーバ62は視聴者Aからの当該配信要求を当該ストリーミングデータが受信及び(または)保存される当該オリジンサーバ70に送信する。
【0037】
工程S206において、当該ストリーミングデータが当該オリジンサーバ70から当該プルエッジサーバ62に提供される。
【0038】
工程S208において、当該プルエッジサーバ62は当該ストリーミングデータをトランスコードする。例えば、当該ストリーミングデータの音声データをAAC形式からOpus形式にトランスコードし、視聴者によるWebRTCのアクセスに対応させてもよい。
【0039】
工程S210において、当該プルエッジサーバ62はトランスコードされた当該ストリーミングデータを視聴者Aに返す、または送信する。
【0040】
視聴者Bの当該ユーザ端末は、ネットワークを介して当該コントロールサーバから現在利用可能なライブストリームの一覧を受信する。当該ユーザ端末は、受信した当該リストをディスプレイに表示する。視聴者Bは、視聴者Aが選択したものと同じライブストリームを選択する。その後、当該ユーザ端末は、選択されたライブストリームのストリーミングデータの配信要求を生成する。工程S212において、視聴者Bの当該ユーザ端末は、ストリーミングデータについて生成された当該配信要求を当該ロードバランサ50に送信する。視聴者Bからの当該配信要求に含まれる当該識別情報は、工程S200で視聴者Aからの当該配信要求に含まれる当該識別情報と同じS1であり、これは、視聴者Bにより要求された当該ストリーミングデータが、視聴者Aにより要求された当該ストリーミングデータと同じであることを示す。
【0041】
工程S214において、当該ロードバランサ50は、当該キャッシュテーブルを検索し、視聴者Bからの当該配信要求に含まれる当該識別情報が、すでに当該キャッシュテーブルに記録されているかどうかを確認し、視聴者Bからの当該配信要求に含まれる当該識別情報がすでに当該キャッシュテーブルに記録されている場合、対応するプルエッジサーバを検索する。視聴者Bからの当該配信要求に含まれる当該識別情報もS1であるため、当該キャッシュテーブルにより、当該ロードバランサ50は視聴者Bからの当該配信要求に含まれる当該識別情報が、視聴者Aからの当該配信要求に含まれる当該識別情報と同じであると判断する。当該ロードバランサ50は、視聴者Bからの当該配信要求に含まれる当該識別情報が当該キャッシュテーブルに存在する(工程S202で記録されている)と判断し、当該キャッシュテーブルに記録されている対応するプルエッジサーバ、つまり当該プルエッジサーバ62を、視聴者Bのストリーミングデータアクセスのためのプルエッジサーバとして選択する。当該ロードバランサ50は、視聴者Bからの当該配信要求を当該プルエッジサーバ62に導く。
【0042】
工程S216において、当該プルエッジサーバ62はトランスコードされた当該ストリーミングデータを視聴者Bに返す、または送信する。当該識別情報S1に対応する当該ストリーミングデータの(当該プルエッジサーバ62への)提供処理は、視聴者Aによる当該ストリーミングデータへのアクセス中に工程S206ですでに実行されているため、視聴者Bによる同じストリーミングデータへのアクセス中にもう一度提供処理を実行する必要はない。当該識別情報S1に対応する当該ストリーミングデータのトランスコーディング処理は、視聴者Aによる当該ストリーミングデータへのアクセス中に工程S208ですでに実行されているため、視聴者Bによるストリーミングデータへのアクセス中にもう一度トランスコーディング処理を実行する必要はない。
【0043】
視聴者Cの当該ユーザ端末は、ネットワークを介してコントロールサーバから現在利用可能なライブストリームの一覧を受信する。当該ユーザ端末は、受信した当該リストをディスプレイに表示する。視聴者Cは、視聴者Aが選択したものと同じライブストリームを選択する。その後、当該ユーザ端末は、選択されたライブストリームのストリーミングデータの配信要求を生成する。工程S218において、視聴者Cの当該ユーザ端末は、ストリーミングデータについて生成された配信要求を当該ロードバランサ50に送信する。視聴者Cからの当該配信要求に含まれる当該識別情報は、工程S200で視聴者Aからの当該配信要求に含まれる当該識別情報と同じS1であり、これは、視聴者Cにより要求された当該ストリーミングデータが、視聴者Aにより要求された当該ストリーミングデータと同じであることを示す。
【0044】
工程S220において、当該ロードバランサ50は、当該キャッシュテーブルを検索し、視聴者Cからの当該配信要求に含まれる当該識別情報が、すでに当該キャッシュテーブルに記録されているかどうかを確認し、視聴者Cからの当該配信要求に含まれる当該識別情報がすでに当該キャッシュテーブルに記録されている場合、対応するプルエッジサーバを検索する。視聴者Cからの当該配信要求に含まれる当該識別情報もS1であるため、当該キャッシュテーブルにより、当該ロードバランサ50は視聴者Cからの当該配信要求に含まれる当該識別情報が、視聴者Aからの当該配信要求に含まれる当該識別情報と同じであると判断する。当該ロードバランサ50は、視聴者Cからの当該配信要求に含まれる当該識別情報が当該キャッシュテーブルに存在する(工程S202で記録されている)と判断し、当該キャッシュテーブルに記録されている対応するプルエッジサーバ、つまり当該プルエッジサーバ62を、視聴者Cのストリーミングデータアクセスのためのプルエッジサーバとして選択する。当該ロードバランサ50は、視聴者Cからの当該配信要求を当該プルエッジサーバ62に導く。
【0045】
工程S222において、当該プルエッジサーバ62はトランスコードされた当該ストリーミングデータを視聴者Cに返す、または送信する。当該識別情報S1に対応する当該ストリーミングデータの(当該プルエッジサーバ62への)提供処理は、視聴者Aによる当該ストリーミングデータへのアクセス中に工程S206ですでに実行されているため、視聴者Cによる同じストリーミングデータへのアクセス中にもう一度提供処理を実行する必要はない。当該識別情報S1に対応する当該ストリーミングデータのトランスコーディング処理は、視聴者Aによる当該ストリーミングデータへのアクセス中に工程S208ですでに実行されているため、視聴者Cによるストリーミングデータへのアクセス中にもう一度トランスコーディング処理を実行する必要はない。
【0046】
従来であれば、当該ロードバランサ50は、視聴者Bからの当該配信要求または視聴者Cからの当該配信要求に対して、当該プルエッジサーバ64または当該プルエッジサーバ66を選択する。これは、当該プルエッジサーバ64または当該プルエッジサーバ66はまだストリーミングデータを提供しておらず、視聴者Aによるアクセス中にすでにストリーミングデータを提供している当該プルエッジサーバ62よりも、多くのCPU、メモリまたは帯域幅リソースを有するためである。しかし、その場合、ストリーミングデータの提供処理とトランスコーディング処理を3回実行することになり、プルエッジサーバプール全体のCPU、メモリ、時間または帯域幅のリソースを多く消費することになる。さらに、提供処理やトランスコーディング処理で消費されるリソースは、同じストリーミングデータにアクセスする視聴者数が増えるほど増加する。
【0047】
図2に示す実施態様において、当該ロードバランサ50内のキャッシュテーブル(またはプルエッジサーバテーブル)を利用することで、同じストリーミングデータを要求するすべての視聴者が、同じプルエッジサーバに導かれる。したがって、ストリーミングデータの提供処理とトランスコーディング処理は1回のみ実行されることになり、プルエッジサーバプール全体のCPU、メモリ、時間または帯域幅のリソースが節約される。さらに、提供処理やトランスコーディング処理で消費されるリソースは、同じストリーミングデータにアクセスする視聴者数が増えても増加しない。したがって、プルエッジサーバプールで節約されるリソースを、より多くの視聴者にサービスを提供するために使用することができる。トランスコーディング、またはリアルタイムトランスコーディングは、オリジンサーバで受信及び(または)保存されたストリーミングデータの形式が、クライアントに送信されるストリーミングデータの形式と異なる場合、あらゆるストリーミングデータアクセスにおいて非常に重要である。一部の実施態様において、ストリーミングデータに含まれるオーディオデータのトランスコーディングは、同じストリーミングデータに含まれるビデオデータのトランスコーディングよりも多くのCPUリソースを消費することがある。
【0048】
本発明は、ロードバランサのキャッシュテーブルを活用することで、ストリーミングデータにアクセスする視聴者に対し、リアルタイムの動的なスケーリング機能も提供する。つまり、視聴者の数がリアルタイムで増加すると、ストリーミングデータがすでにプルエッジサーバを介して前の視聴者によりアクセスされている間に、ストリーミングデータを要求する後の視聴者を正しいプルエッジサーバに導くことができる。
【0049】
本発明の一部の実施態様において、キャッシュテーブルにキャッシュされるデータは、ストリーミングデータそのものではなく、経路またはアクセスである。例えば、ルートは、要求されたストリーミングデータが提供されているプルエッジサーバを参照してもよい。
【0050】
一部の実施態様において、ロードバランサは、Traefikなどのリバースプロキシを含んでもよく、またその一部であってもよい。一部の実施態様において、送信中にストリーミングデータの当該識別情報がURLに含まれるため、ロードバランサに実装されるキャッシュテーブルは、URLキャッシュテーブルと呼ばれてもよい。本発明は、ライブストリーミングデータアクセスのためのロードバランサにキャッシュテーブルを実装することにより、URLアフィニティ機能を実現する。
【0051】
従来のTraefikは、キャッシュテーブルを備えていない。従来のクッキーアフィニティに基づく負荷分散では、視聴者のIDに応じてプルエッジサーバを割り当てるため、同じ視聴者からの要求は同じプルエッジサーバに割り当てられ、プルエッジサーバプールのリソースに無駄を生じる。
【0052】
図3に本発明の一部の実施態様に基づくインターネット上でのデータアクセスの操作を示す例示的シーケンス図を示す。
【0053】
工程S300において、視聴者Aはロードバランサ50に対して、ストリーミングデータの配信要求を送信する。当該配信要求には、当該ストリーミングデータの識別情報S1が含まれる。一部の実施態様において、当該識別情報S1は、当該ストリーミングデータのアイデンティティに対応する。当該識別情報S1は、当該ストリーミングデータのストリームIDであってもよい。一部の実施態様において、当該識別情報S1は、視聴者Aからの当該配信要求に含まれるURLに含まれる。識別情報は、要求される当該ストリーミングデータを示す、または特定するために用いられる。一部の実施態様において、ライブストリーミングデータは、識別情報によって一意に特定される。
【0054】
工程S302において、当該ロードバランサ50は当該プルエッジサーバ62を選択し、視聴者Aからの当該配信要求を当該プルエッジサーバ62に導く/送信する。当該ロードバランサ50は、視聴者Aからの当該配信要求に含まれる当該識別情報S1を、当該プルエッジサーバ62に対応するものとしてルックアップテーブルまたはキャッシュテーブルに記録する。一部の実施態様において、当該ルックアップテーブルまたはキャッシュテーブルは当該ロードバランサ50に実装され、管理される。
【0055】
工程S304において、当該プルエッジサーバ62は視聴者Aからの当該配信要求を当該ストリーミングデータが受信及び(または)保存される当該オリジンサーバ70に送信する。一部の実施態様において、当該オリジンサーバ70は、当該識別情報S1(ストリームIDであってもよい)により識別されるストリーミングデータを提供しているストリーマーの端末からストリーミングデータを受信するように構成される。
【0056】
工程S306において、当該ストリーミングデータが当該オリジンサーバ70から当該プルエッジサーバ62に提供される。
【0057】
工程S308において、当該プルエッジサーバ62は当該ストリーミングデータをトランスコードする。例えば、当該ストリーミングデータの音声データをAAC形式からOpus形式にトランスコードし、視聴者によるWebRTCのアクセスに対応させてもよい。
【0058】
工程S310において、当該プルエッジサーバ62はトランスコードされた当該ストリーミングデータを視聴者Aに返す、または送信する。
【0059】
工程S312において、視聴者Bは当該ロードバランサ50に対して、ストリーミングデータの配信要求を送信する。視聴者Bからの当該配信要求に含まれる当該識別情報は、工程S200で視聴者Aからの当該配信要求に含まれる当該識別情報と同じS1であり、これは、視聴者Bにより要求された当該ストリーミングデータが、視聴者Aにより要求された当該ストリーミングデータと同じであることを示す。
【0060】
工程S314において、当該ロードバランサ50は、当該キャッシュテーブルを検索し、視聴者Bからの当該配信要求に含まれる当該識別情報が、すでに当該キャッシュテーブルに記録されているかどうかを確認し、視聴者Bからの当該配信要求に含まれる当該識別情報がすでに当該キャッシュテーブルに記録されている場合、対応するプルエッジサーバを検索する。視聴者Bからの当該配信要求に含まれる当該識別情報もS1であるため、当該キャッシュテーブルにより、当該ロードバランサ50は視聴者Bからの当該配信要求に含まれる当該識別情報が、視聴者Aからの当該配信要求に含まれる当該識別情報と同じであると判断する。当該ロードバランサ50は、視聴者Bからの当該配信要求に含まれる当該識別情報が当該キャッシュテーブルに存在する(工程S202で記録されている)と判断し、当該キャッシュテーブルに記録されている対応するプルエッジサーバ、つまり当該プルエッジサーバ62を、視聴者Bのストリーミングデータアクセスのためのプルエッジサーバとして選択する。当該ロードバランサ50は、視聴者Bからの当該配信要求を当該プルエッジサーバ62に導く。
【0061】
工程S316において、当該プルエッジサーバ62はトランスコードされた当該ストリーミングデータを視聴者Bに返す、または送信する。当該識別情報S1に対応する当該ストリーミングデータの(当該プルエッジサーバ62への)提供処理は、視聴者Aによる当該ストリーミングデータへのアクセス中に工程S206ですでに実行されているため、視聴者Bによる同じストリーミングデータへのアクセス中にもう一度提供処理を実行する必要はない。当該識別情報S1に対応する当該ストリーミングデータのトランスコーディング処理は、視聴者Aによる当該ストリーミングデータへのアクセス中に工程S208ですでに実行されているため、視聴者Bによるストリーミングデータへのアクセス中にもう一度トランスコーディング処理を実行する必要はない。
【0062】
工程S318において、視聴者Cはロードバランサ50に対して、ストリーミングデータの配信要求を送信する。視聴者Cからの当該配信要求に含まれる当該識別情報は、工程S300で視聴者Aからの当該配信要求に含まれる当該識別情報S1と異なるS2であり、これは、視聴者Cにより要求された当該ストリーミングデータが、視聴者Aにより要求された当該ストリーミングデータと異なることを示す。
【0063】
工程S320において、当該ロードバランサ50は、キャッシュテーブルを検索し、視聴者Cからの当該配信要求に含まれる当該識別情報が、すでに当該キャッシュテーブルに記録されているかどうかを確認する。視聴者Cからの当該配信要求に含まれる当該識別情報S2は、当該キャッシュテーブルに記録されていないため、当該ロードバランサ50は、視聴者Cからの当該配信要求に含まれる当該識別情報が当該キャッシュテーブルに存在しないと判断する。したがって、当該ロードバランサ50は、視聴者Cのストリーミングデータアクセスに対するプルエッジサーバとして、当該プルエッジサーバ62よりも多くの利用可能なリソース(CPU、メモリ、帯域幅リソースなど)を有する当該プルエッジサーバ64を選択する。当該ロードバランサ50は、視聴者Cからの当該配信要求を当該プルエッジサーバ64に導く。当該ロードバランサ50は、視聴者Cからの当該配信要求に含まれる当該識別情報S2を、当該プルエッジサーバ64に対応するものとして当該キャッシュテーブルに記録する。
【0064】
工程S322において、当該プルエッジサーバ64は視聴者Cからの当該配信要求を、当該識別情報S2に対応する当該ストリーミングデータが受信及び(または)保存される当該オリジンサーバ70に送信する。
【0065】
工程S324において、当該識別情報S2に対応する当該ストリーミングデータが、当該オリジンサーバ70から当該プルエッジサーバ64に提供される。
【0066】
工程S326において、当該プルエッジサーバ62は当該ストリーミングデータをトランスコードする。例えば、当該ストリーミングデータの音声データをAAC形式からOpus形式にトランスコードし、視聴者によるWebRTCのアクセスに対応させてもよい。
【0067】
工程S328において、当該プルエッジサーバ64はトランスコードされた当該ストリーミングデータを視聴者Aに返す、または送信する。
【0068】
一部の実施態様において、1つのストリーミングデータのトランスコード処理は、1つのプルエッジサーバのCPU使用率1%~10%(例えば、2%)を消費する。一部の実施態様において、ストリーミングデータを要求する各視聴者へのサービス提供は、プルエッジサーバのCPU使用率0.05%~1%(たとえば、0.1%)を消費することがある。
【0069】
一部の実施態様において、当該ロードバランサは、上述のように、最初にキャッシュテーブルに従って視聴者からの要求を分配することを試みてもよい。当該要求に含まれる当該識別情報がキャッシュテーブルにない場合、ロードバランサは均等分配モードに切り替え、最も利用可能なリソースを有するプルエッジサーバに当該要求を分配することができる。
【0070】
図4は、本発明の一部の実施態様に基づくプルエッジサーバテーブルの例示的データ構造を示す表である。当該プルエッジサーバテーブルは、当該プルエッジサーバに関する情報を格納する。特に、当該プルエッジサーバテーブルは(または、一部の実施態様において)、ライブストリーミングプラットフォームにおいて現在利用可能なライブストリームを識別するストリームIDと、当該利用可能なライブストリームを扱うプルエッジサーバを識別する各サーバIDを格納するキャッシュテーブルを含む。当該プルエッジサーバテーブルには、プルエッジサーバを識別するサーバID、各当該プルエッジサーバが扱っている現在利用可能なライブストリームを識別するストリームID、各当該プルエッジサーバのCPU使用率、各当該プルエッジサーバのメモリ使用率、当該プルエッジサーバの接続数などが格納される。当該接続数は、当該プルエッジサーバと当該ユーザ端末との間に確立されたチャネルまたは接続の数を表す。プルエッジサーバの当該接続数は、当該プルエッジサーバに接続されている当該ユーザ端末の数と同じであってもよい。
【0071】
本実施態様において、当該識別情報は、ライブストリーム(またはストリーミングデータ)を一意に識別するストリームIDである。例えば、サーバID「SV1」で識別されるプルエッジサーバ62は、ストリームID「S1」で識別されるライブストリームのストリーミングデータに対応するプルエッジサーバであり、サーバID「SV2」で識別されるプルエッジサーバ64は、ストリームID「S5」で識別されるライブストリームのストリーミングデータに対応するプルエッジサーバである。一部の実施態様において、2つの配信要求(ストリーミングデータに対する要求)は、同じストリーミングデータを要求する場合、同じストリームIDを有することになる。
【0072】
当該プルエッジサーバテーブル(またはキャッシュテーブル)は、当該ロードバランサ50(または当該ロードバランサ50の処理ユニット)が、ストリーミングデータの配信要求に含まれる当該識別情報を記憶/記録するために利用される。当該プルエッジサーバテーブル(またはキャッシュテーブル)は、当該ロードバランサ50(または当該ロードバランサ50の処理ユニット)によって、新たな配信要求と対応するプルエッジサーバの識別情報を検索するために利用される。
【0073】
一部の実施態様において、上述の当該キャッシュテーブル割り当て方法は、限られた数のプルエッジサーバで、サービスを提供する視聴者を動的に最大化することができる。プルエッジサーバの数、視聴者の数または予想される視聴者の数、アクセスされる異なるストリーミングデータの数、各プルエッジサーバにおけるストリーミングデータ提供のためのリソースコスト、各プルエッジサーバでストリーミングデータをトランスコードするためのリソースコストなどのパラメータが、動的な最大化処理において考慮される。例えば、上述のパラメータに基づき、システムにおける総視聴者数を最大化するように、各プルエッジサーバに対する最適な視聴者対ストリーマー(または識別情報)比を決定することができる。
【0074】
一部の実施態様において、ユーザ端末は、1以上のプロセッサを含むシステムとみなすことができ、そのうち、当該1以上のプロセッサは、機械可読命令を実行して、上述したデータアクセス処理などの処理を実行する。
【0075】
一部の実施態様において、オリジンサーバ、及び(または)ロードバランサは、ストリーミングサービスを提供するシステムに属する。一部の実施態様において、ストリーミングサービスは、スマートフォンやタブレットなどのユーザ端末上で動作するアプリケーションによってアクセスすることができる。
【0076】
図5に、本発明の一部の実施態様に基づくライブストリーミングシステム1の構成を示す概略図を示す。当該ライブストリーミングシステム1は、ストリーミングのストリーマー(ライバー、アンカー、配信者とも呼ばれる)LVと視聴者(オーディエンスとも呼ばれる)AU(AU1、AU2...)に、リアルタイムで交流または通信するためのライブストリーミングサービスを提供する。図1に示すように、当該ライブストリーミングシステム1は、サーバシステム10と、ユーザ端末20と、ユーザ端末30(30a、30b...)を含む。一部の実施態様において、当該ストリーマーと視聴者は、集合的にユーザと呼ばれてもよい。当該サーバシステム10は、ネットワークNWに接続された、1以上の情報処理装置を含むことができる。当該ユーザ端末20、30は、例えば、スマートフォン、タブレット、ノートPC、レコーダー、携帯ゲーム機、ウェアラブル端末などのモバイル端末装置であってもよいし、デスクトップPCなどの据え置き型装置であってもよい。当該サーバシステム10、当該ユーザ端末20及び当該ユーザ端末30は、各種有線または無線ネットワークNWを介して相互に通信可能に接続される。
【0077】
当該ライブストリーミングシステム1には、配信者LV、視聴者AU、及び当該サーバシステム10を管理する管理者(またはアプリプロバイダー、図示せず)が参加する。当該配信者LVは、自身のユーザ端末20でコンテンツを記録し、当該サーバシステム10に直接アップロードすることにより、リアルタイムで当該コンテンツを配信する者である。当該コンテンツの例としては、当該配信者自身の歌、トーク、パフォーマンス、ゲームプレイ、その他あらゆるコンテンツであってもよい。当該管理者は、当該サーバシステム10上で当該コンテンツをライブストリーミングするためのプラットフォームを提供するとともに、当該配信者LVと当該視聴者AU間のリアルタイムの交流を仲介または管理する。当該視聴者AUは、自分のユーザ端末30で当該プラットフォームにアクセスし、所望のコンテンツを選択して視聴する。当該視聴者AUは、選択したコンテンツのライブストリーミング中に、当該ユーザ端末30を介してコメントや応援、贈り物の送信などの操作を実行する。当該コンテンツを配信している当該配信者LVは、それらのコメント、応援、または贈り物に対して応答してもよい。当該応答が、映像および(または)音声で当該視聴者AUに送信され、双方向のコミュニケーションが確立される。
【0078】
「ライブストリーミング」という用語は、当該配信者LVのユーザ端末20で記録したコンテンツを、当該視聴者AUのユーザ端末30で実質的にリアルタイムに再生・視聴することを可能にするデータ伝送モードを指しても、そのような伝送モードにより実現されるライブブロードキャストを指してもよい。当該ライブストリーミングは、HTTPライブストリーミング、CMAF(Common Media Application Format)、WebRTC(Web Real―Time Communications)、RTMP(Real―Time Messaging Protocol)、MPEG DASHなどの既存のライブストリーミング技術を利用して実現されてもよい。ライブストリーミングには、当該配信者LVによるコンテンツの記録と同時に、当該視聴者AUが所定の遅延をもって当該コンテンツを視聴でき伝送モードを含む。当該遅延の長さについては、当該配信者LVと当該視聴者AUの交流が成立可能な程度の遅延であってもよい。なお、当該ライブストリーミングは、当該コンテンツの全記録データを一度当該サーバに格納し、その後ユーザの要求に応じて当該サーバから当該ユーザに提供する、いわゆるオンデマンド配信と区別される。
【0079】
ここでいう「映像データ」とは、当該ユーザ端末20または30の撮像機能を用いて生成された画像データ(映像データとも呼ばれる)と、当該ユーザ端末20または30の音声入力機能を用いて生成された音声データとを含むデータを指す。当該映像データは、当該ユーザがコンテンツを視聴できるように、当該ユーザ端末20、30で再生される。一部の実施態様において、当該配信者のユーザ端末における映像データの生成と当該視聴者のユーザ端末における映像データの再生との間に、当該映像データに対して圧縮、展開、符号化、復号化、トランスコーディングなど、その形式、サイズ、またはデータの仕様を変更する処理が行われると想定される。しかし、そのような処理の前後で、当該映像データが表す当該コンテンツ(例えば、映像や音声)は実質的に変化しないため、本明細書においては、そのような処理後の当該映像データを、そのような処理前の当該映像データと同一ものと表現している。すなわち、当該配信者のユーザ端末で映像データが生成された後、当該サーバシステム10を介して当該視聴者のユーザ端末で再生される場合、当該配信者のユーザ端末で生成された当該映像データ、当該サーバシステム10を通過する当該映像データ、および当該視聴者のユーザ端末で受信して再生される当該映像データは、いずれも同一の映像データである。
【0080】
図5に示す例において、当該配信者LVは、ライブストリーミングデータを提供する。当該配信者LVのユーザ端末20は、当該配信者LVの映像や音声を記録して当該ストリーミングデータを生成し、生成された当該データは当該ネットワークNWを介して当該サーバシステム10に送信される。同時に、当該ユーザ端末20は、当該配信者LVの記録された映像VDを当該ユーザ端末20のディスプレイに表示し、当該配信者LVが現在行っているライブストリーミングコンテンツを確認できるようにする。
【0081】
当該プラットフォームに当該配信者LVのライブストリーミングを視聴することを要求した当該視聴者AU1、AU2のそれぞれのユーザ端末30a、30bは、当該ネットワークNWを介して当該ライブストリーミングに関連する映像データ(以下、「ライブストリーミングの映像データ」と呼ばれてもよい)を受信し、受信した当該映像データを再生して当該映像VD1、VD2をディスプレイに表示し、スピーカーから音声を出力する。当該ユーザ端末30a、30bでそれぞれ表示される映像VD1、VD2は、当該配信者LVの当該ユーザ端末20により撮像された映像VDと実質的に同じであり、当該ユーザ端末30a、30bで出力される音声は、当該配信者LVの当該ユーザ端末20で記録された音声と実質的に同じである。
【0082】
当該配信者LVの当該ユーザ端末20での映像・音声の記録と、当該視聴者AU1、AU2の当該ユーザ端末30a、30bでの映像データの再生は、実質的に同時に行われる。当該視聴者AU1が、当該配信者LVにより提供される当該コンテンツに関するコメントを当該ユーザ端末30aに入力すると、当該サーバシステム10は当該コメントを配信者LVの当該ユーザ端末30aにリアルタイムで表示するとともに、当該視聴者AU1とAU2の当該ユーザ端末30aと30bにも当該コメントをそれぞれ表示する。当該配信者LVが当該コメントを読み、当該コメントに対応するトークを展開すると、そのトークの映像と音声が、それぞれ当該視聴者AU1、AU2のユーザ端末30a、30bに表示される。このインタラクティブな動作は、当該配信者LVと当該視聴者AU1間で会話が成立していると認識される。これにより、当該ライブストリーミングシステム1では、一方的なコミュニケーションではなく、双方向のコミュニケーションを可能にするライブストリーミングを実現する。
【0083】
図6は、本発明の一部の実施態様に基づく、図5のユーザ端末30の機能と構成を示すブロック図である。当該ユーザ端末20は、当該ユーザ端末30と同じまたは類似した機能と構成を有する。図6の各ブロックと以降のブロック図は、ハードウェアがコンピュータのCPUや機械装置などの要素によって実現されてもよく、ソフトウェアがコンピュータプログラムなどによって実現されてもよい。機能ブロックは、これらの要素間の連携動作により実現されてもよい。したがって、これらの機能ブロックは、ハードウェアとソフトウェアの組み合わせによる多様な形態で実現され得ることが、当業者には理解されよう。
【0084】
当該配信者LV及び当該視聴者AUは、当該ネットワークNWを介してダウンロードサイトからライブストリーミングアプリケーションプログラム(以下、ライブストリーミングアプリケーションという)をダウンロードし、当該ユーザ端末20、30にインストールしてもよい。あるいは、当該ライブストリーミングアプリケーションは、当該ユーザ端末20と30に予めインストールされていてもよい。当該ライブストリーミングアプリケーションが当該ユーザ端末20、30上で実行されると、当該ユーザ端末20、30は、当該ネットワークNWを介して当該サーバシステム10と通信し、各種機能を実装または実行する。以下、当該ライブストリーミングアプリケーションが実行されるユーザ端末20、30(CPUなどのプロセッサ)によって実装される機能を、当該ユーザ端末20、30の機能として説明する。これらの機能は、実際には、当該ユーザ端末20、30上で当該ライブストリーミングアプリケーションにより実現される。一部の実施態様において、これらの機能は、HTML(HyperText Markup Language)などのプログラミング言語で記述され、当該サーバシステム10から当該ネットワークNWを介して当該ユーザ端末20、30のウェブブラウザに送信され、当該ウェブブラウザにより実行されるコンピュータプログラムによって実現されてもよい。
【0085】
当該ユーザ端末30は、配信ユニット100と視聴ユニット200を含む。当該配信ユニット100は、当該ユーザの映像と音声が記録された映像データを生成し、当該映像データを当該サーバシステム10に提供する。当該視聴ユニット200は、当該サーバシステム10から映像データを受信し、当該映像データを再生する。当該ユーザは、ライブストリーミングを行う際に、当該配信ユニット100を起動し、当該ユーザが映像を視聴する際に、当該視聴ユニット200を起動する。当該配信ユニット100が起動される当該ユーザ端末は、当該配信者の端末、すなわち、当該映像データを生成する当該ユーザ端末である。当該視聴ユニット200が起動される当該ユーザ端末は、当該視聴者の端末、即ち、当該映像データが再現され、再生される当該ユーザ端末である。
【0086】
当該配信ユニット100は、撮像コントロールユニット102と、オーディオコントロールユニット104と、映像送信ユニット106と、配信者側UIコントロールユニット108を含む。当該撮像コントロールユニット102は、カメラ(図2に表示せず)に接続され、当該カメラで実行される撮像を制御する。当該撮像コントロールユニット102は、当該カメラからの画像データを取得する。当該オーディオコントロールユニット104は、マイク(図2に表示せず)に接続され、当該マイクからの音声入力を制御する。当該オーディオコントロールユニット104は、当該マイクから当該オーディオデータを取得する。当該映像送信ユニット106は、当該撮像コントロールユニット102により取得された当該画像データと、当該オーディオコントロールユニット104により取得された当該オーディオデータを含む映像データを、当該ネットワークNWを介して当該サーバシステム10に送信する。当該映像データは、当該映像送信ユニット106によりリアルタイムに送信される。すなわち、当該撮像コントロールユニット102と当該オーディオコントロールユニット104による当該映像データの生成と、生成された当該映像データの当該映像送信ユニット106による送信とは、実質的に同時に実行される。当該配信者側UIコントロールユニット108は、当該配信者のUI(ユーザインターフェイス)をコントロールする。当該配信者側UIコントロールユニット108は、ディスプレイ(表示せず)に接続され、当該映像送信ユニット106により送信される当該映像データを再生することにより、当該ディスプレイに映像を表示する。当該配信者側UIコントロールユニット108は、操作オブジェクトや指示許諾オブジェクトを当該ディスプレイに表示し、当該オブジェクトをタップした当該配信者からの入力を受け付けてもよい。
【0087】
当該視聴ユニット200は、視聴者側UIコントロールユニット202と、重ね合わせ情報生成ユニット204と、入力情報送信ユニット206を含む。当該視聴ユニット200は、当該ネットワークNWを介して当該サーバシステム10から、配信者、当該ユーザ端末30のユーザである視聴者、及び他の視聴者が参加する、ライブストリーミングに関連する映像データを受信する。当該視聴者側UIコントロールユニット202は、当該視聴者のUIを制御する。当該視聴者側UIコントロールユニット202は、ディスプレイとスピーカー(表示せず)に接続され、受信した映像データを再生して、当該ディスプレイに映像を表示し、当該スピーカーから音声を出力する。当該映像が当該ディスプレイに出力され、当該音声が当該スピーカーから出力されている状態を「映像データが再生されている」状態と呼ぶことができる。当該視聴者側UIコントロールユニット202は、タッチパネル、キーボード、ディスプレイ等の入力手段(表示せず)にも接続され、当該入力手段を介してユーザの入力を取得する。当該重ね合わせ情報生成ユニット204は、当該サーバシステム10からの映像データから生成された画像上に、所定のフレーム画像を重ねる。当該フレーム画像には、当該ユーザからの入力を受け付けるためのさまざまなユーザインターフェイスオブジェクト(以下、単に「オブジェクト」という)、当該視聴者により入力されたコメント、当該サーバシステム10から取得した情報などが含まれる。当該入力情報送信ユニット206は、当該ネットワークNWを介して、当該視聴者側UIコントロールユニット202により取得された当該ユーザ入力を当該サーバシステム10に送信する。
【0088】
図11は、本発明の一部の実施態様に基づく、図5のサーバシステム10の機能と構成を示すブロック図である。当該サーバシステム10は、オリジンサーバ70と、3つのプルエッジサーバ62、64、66と、ロードバランサ50と、コントロールサーバ100とを含む。図11に示すサーバの構成及び台数は、例示のためのものであり、本発明はこの構成に限定されるものではない。当該オリジンサーバ70は、現在ストリーマーによって行われているライブストリームのライブストリーミングデータを生成している複数のストリーマーのユーザ端末に接続されている。当該オリジンサーバ70は、ネットワークNWを介して、当該ストリーマーのユーザ端末から、当該ライブストリームのライブストリーミングデータを受信する。当該オリジンサーバ70は、当該サーバシステム10内の当該3つのプルエッジサーバ62、64、68と接続されている。当該ロードバランサ50は、当該3つのプルエッジサーバ62、64、66に接続され、これらを制御する。当該ロードバランサ50は、ネットワークNWを介して複数の視聴者のユーザ端末に接続され、当該視聴者のユーザ端末から配信要求を受信する。当該ロードバランサ50は、当該プルエッジサーバ62、64、66と当該視聴者端末との間に確立された当該接続を制御または管理する。当該プルエッジサーバ62、64、66は、当該ネットワークNWを介して、当該視聴者のユーザ端末に接続されてもよい。
【0089】
当該オリジンサーバ70と当該プルエッジサーバ62、64、66は、当該ストリーマーのユーザ端末からの映像データをライブストリーミングで当該視聴者のユーザ端末に集合的に中継する。図2または図3に示す実施態様と同様に、配信要求(ストリームIDを含む)が、当該視聴者のユーザ端末から当該ロードバランサ50に送信される。その後、当該ロードバランサ50が、当該オリジンサーバ70から当該ライブストリーム(当該ストリームIDで指定される)を取り込むプルエッジサーバとして、1つのプルエッジサーバを割り当てる、または指定する。具体的に、当該ロードバランサ50は、当該プルエッジサーバに当該配信要求を送信する。当該プルエッジサーバは、当該オリジンサーバ70に当該ライブストリーミングデータを要求する。その後、当該プルエッジサーバが、要求元の当該視聴者のユーザ端末に当該ライブストリーミングデータを提供する。図11に、図3に対応する例示的な接続を示す。視聴者Aの端末及び視聴者Bの端末は、当該オリジンサーバ70及び当該プルエッジサーバ62を介して、ストリーマーXのライブストリーミングのライブストリーミングデータを受信する。視聴者Cの端末は、当該オリジンサーバ70及び当該プルエッジサーバ64を通じて、ストリーマーYのライブストリーミングのライブストリーミングデータを受信する。
【0090】
図7に、本発明の一部の実施態様に基づく、図11のコントロールサーバ100の機能と構成を示すブロック図を示す。当該コントロールサーバ100は、配信情報提供ユニット302と、中継ユニット304と、贈り物処理ユニット306と、支払い処理ユニット308と、ストリームDB310と、ユーザDB312と、贈り物DB314を含む。
【0091】
当該配信者側の当該ユーザ端末20から当該ネットワークNWを介してライブストリーミング(またはライブストリーミング番組)の開始通知または要求を受信すると、当該配信情報提供ユニット302は、このライブストリーミングを識別するためのストリームIDと当該ライブストリーミングを行う配信者の配信者IDをストリームDB310に登録する。
【0092】
当該配信情報提供ユニット302が、当該ネットワークNWを介して当該視聴者側の当該ユーザ端末30の当該視聴ユニット200からライブストリームに関する情報の提供要求を受信すると、当該配信情報提供ユニット302は、当該ストリームDB310から現在利用可能なライブストリームを取得または確認し、利用可能なライブストリームのリストを作成する。当該配信情報提供ユニット302は、作成したリストを当該ネットワークNW経由で要求元の当該ユーザ端末30に送信する。要求元の当該ユーザ端末30の当該視聴者側UIコントロールユニット202は、受信したリストに基づいてライブストリーム選択画面を生成し、当該ユーザ端末30のディスプレイ上に表示する。
【0093】
一部の実施態様において、ユーザ端末30は、当該配信情報提供部302が生成したリストから、利用可能なライブストリームの識別情報(ストリームIDなど)を受信する。
【0094】
当該ユーザ端末30の当該入力情報送信ユニット206が、当該ライブストリーム選択画面上で当該視聴者の選択結果を受信すると、当該入力情報送信ユニット206は、選択されたライブストリームのストリームIDを含む配信要求を生成し、当該ネットワークNWを介して当該サーバシステム10の当該ロードバランサ50に当該配信要求を送信する。当該ロードバランサ50は、要求元の当該ユーザ端末30にプルエッジサーバを割り当てる。割り当てられた当該プルエッジサーバは、要求元の当該ユーザ端末30に対して、受信した当該配信要求に含まれる当該ストリームIDで指定されるライブストリームの提供を開始する。当該配信情報提供ユニット302は、当該ストリームIDの(または対応する)視聴者IDに、要求元の当該ユーザ端末30の当該視聴者のユーザIDを含めるように当該ストリームDB310を更新する。
【0095】
当該中継ユニット304は、当該ライブストリーミング中または当該映像データの再生中に、当該入力情報送信ユニット206から視聴者によるユーザ入力を表す信号を受信する。当該ユーザ入力を表す信号は、当該ユーザ端末30のディスプレイに表示されたオブジェクトを指定するオブジェクト指定信号であってもよく、当該オブジェクト指定信号は、当該視聴者の視聴者ID、当該視聴者が視聴するライブストリームの配信者ID、及び当該オブジェクトを識別するオブジェクトIDを含む。当該オブジェクトが贈り物であるとき、当該オブジェクトIDは贈り物IDである。同様に、当該中継ユニット304、当該ユーザ端末20の配信ユニット100から、オブジェクト指定信号のように、当該映像データの再生中に配信者により行われたユーザ入力を表す信号(オブジェクト指定信号など)を受信する。
【0096】
また、当該ユーザ入力を表す信号は、視聴者が当該ユーザ端末30に入力したコメントと当該視聴者の視聴者IDを含むコメント入力信号であってもよい。当該コメント入力信号を受信すると、当該中継ユニット304は、当該コメントと信号に含まれる当該視聴者IDを、当該配信者の当該ユーザ端末20と他の視聴者の当該ユーザ端末30に送信する。これらユーザ端末20、30において、当該視聴者側UIコントロールユニット202と、当該重ね合わせ情報生成ユニット204は、同じく受信した当該視聴者IDと関連付けられたディスプレイ上に受信したコメントを表示する。
【0097】
当該贈り物処理ユニット306は、当該オブジェクト指定信号に含まれる贈り物IDによって特定される贈り物のポイントに基づき、当該配信者のポイントを増加させ、当該ユーザDB312を更新する。具体的には、当該贈り物処理ユニット306は、当該贈り物DB314を参照して、受信した当該オブジェクト指定信号に含まれる当該贈り物IDに対して付与するポイントを特定する。その後、当該贈り物処理ユニット306は、当該ユーザDB312を更新し、当該オブジェクト指定信号に含まれる当該配信者IDのポイントに、特定されたポイントを追加する。
【0098】
当該支払い処理ユニット308は、当該オブジェクト指定信号の受信に応答して、視聴者による贈り物の代金の支払いを処理する。具体的には、当該支払い処理ユニット308は、当該贈り物DB314を参照して、当該オブジェクト指定信号に含まれる当該贈り物IDにより特定される当該贈り物の価格ポイントを特定する。その後、当該支払い処理ユニット308は、当該ユーザDB312を更新し、当該オブジェクト指定信号に含まれる当該視聴者IDにより特定される当該視聴者のポイントから、特定された当該価格ポイントを差し引く。
【0099】
図8は、ストリームDB310の例示的データ構造を示す表である。当該ストリームDB310は、現在行われているライブストリーム(またはライブストリーミング番組)に関する情報を保持する。当該ストリームDB310は、ストリームID、配信者ID、および視聴者IDを、相互に関連付けて格納する。当該ストリームIDは、当該ライブストリーミングシステム1により提供されるライブストリーミングプラットフォームにおけるライブストリームを識別するためのIDである。当該配信者IDは、当該ライブストリームを提供する配信者を識別するためのユーザIDである。当該視聴者IDは、当該ライブストリームの視聴者を識別するためのユーザIDである。一部の実施態様による当該ライブストリーミングシステム1により提供されるライブストリーミングプラットフォームにおいて、ユーザがライブストリームを開始すると、当該ユーザは配信者となり、同じユーザが別のユーザによりブロードキャストされるライブストリームを視聴すると、当該ユーザは視聴者にもなる。したがって、配信者と視聴者の区別は固定されておらず、あるとき配信者IDとして登録されたユーザIDが、別のときに視聴者IDとして登録されることもあり得る。
【0100】
図9は、ユーザDB312の例示的データ構造を示す表である。当該ユーザDB312は、ユーザに関する情報を保持する。当該ユーザDB312は、ユーザIDおよびポイントを、相互に関連付けて格納する。または、当該ユーザDB312は、ユーザIDとポイントの組を相互に対応させて格納する。当該ユーザIDは、ユーザを識別する。当該ポイントは、対応する当該ユーザが有するポイントに相当する。当該ポイントは、当該ライブストリーミングプラットフォーム内で流通する電子的な価値である。一部の実施態様において、配信者がライブストリーム中に視聴者から贈り物を受け取ると、当該配信者のポイントは当該贈り物に対応する価値だけ増加する。当該ポイントは、例えば、当該配信者が当該ライブストリーミングプラットフォームの管理者から受け取る報酬(金銭など)の量を決定するために使用される。あるいは、当該配信者が視聴者から贈り物を受け取る際に、当該ポイントに代えて、当該贈り物に対応する金額を付与してもよい。
【0101】
図10は、贈り物DB314の例示的データ構造を示す表である。当該贈り物DB314は、当該ライブストリーミング中に当該視聴者が利用できる贈り物についての情報を保持する。贈り物は、電子データである。贈り物は、ポイントまたは金銭で購入するか、無償で提供することができてもよい。贈り物は、視聴者が配信者に贈ることができる。配信者に贈り物を贈ることは、贈り物を使う、贈り物を送る、贈り物を投げるなどとも呼ばれる。贈り物の中には、購入と同時に使用できるものと、購入後、購入した視聴者が後から任意のタイミングで使用できるものとがある。視聴者が配信者に贈り物を贈ると、当該贈り物に対応する量のポイントが当該配信者に付与される。贈り物が使用されると、その使用によって当該贈り物に関連するエフェクトが発生してもよい。例えば、ライブストリーミング画面に当該贈り物に対応したエフェクト(視覚的効果や聴覚的効果など)が表示される。
【0102】
当該贈り物DB314は、贈り物ID、付与ポイント、価格ポイントを、相互に関連付けて格納する。当該贈り物IDは、贈り物を識別するためのものである。当該付与ポイントは、配信者に贈り物が贈られたときに当該配信者に付与されるポイントの量である。当該価格ポイントは、贈り物の使用(購入)に対して支払われるポイントの量である。視聴者は、ライブストリームを視聴しているときに、所望の贈り物の当該価格ポイントを支払うことで、配信者に当該所望の贈り物を贈ることができる。当該価格ポイントの支払いは、適宜の電子決済手段により行うことができる。例えば、視聴者が管理者に当該価格ポイントを支払うことにより、支払いが行われてもよい。あるいは、銀行振り込みやクレジットカードによる支払いが利用されてもよい。当該管理者は、当該付与ポイントと当該価格ポイントとの関係を任意に設定することができる。例えば、付与ポイント=価格ポイントとして設定してもよい。あるいは、当該付与ポイントに1.2などの所定の係数を乗じたポイントを当該価格ポイントとして設定しても、当該付与ポイントに所定の手数料ポイントを加算したポイントを当該価格ポイントとして設定してもよい。
【0103】
図12に、本発明の一部の実施態様に基づく、図11のロードバランサ50の機能と構成を示すブロック図を示す。当該ロードバランサ50は、受信ユニット502と、決定ユニット504と、接続ユニット506と、プルエッジサーバテーブルを含む。当該受信ユニット502は、当該視聴者のユーザ端末から、ネットワークNWを介して、当該視聴者が選択したライブストリームのストリームIDを含む当該配信要求を受信するように構成されている。当該決定ユニットは、当該配信要求の受信に応答して、当該プルエッジサーバテーブルを参照し、受信した当該配信要求に含まれるストリームIDによって特定されるライブストリームを取り扱うプルエッジサーバを決定するように構成されている。当該接続ユニットは、決定された当該プルエッジサーバに、要求元の当該視聴者のユーザ端末に対して、当該ライブストリームのライブストリーミングデータを送信させるように構成されている。
【0104】
図13に、当該ロードバランサ50に実装される例示的な工程を示すフローチャートを示す。工程S1302において、当該受信ユニット502が要求元のユーザ端末からの配信要求を受信する。工程S1304において、当該決定ユニット504が受信した当該配信要求からストリームIDを抽出する。工程S1306において、当該決定ユニット504は、当該プルエッジサーバテーブルを参照し、抽出された当該ストリームIDが当該プルエッジサーバテーブルに格納されているか否かを判定する。抽出された当該ストリームIDがテーブルに格納されている場合(工程S1306で「はい」)、工程S1308において、決定ユニット504が、抽出された当該ストリームIDのライブストリームを取り扱うプルエッジサーバを特定する。具体的に、決定ユニット504は、当該プルエッジサーバテーブルで、抽出された当該ストリームIDに対応するプルエッジサーバを特定する。例えば、図4に示す例において抽出された当該ストリームIDが「S1」である場合、当該決定ユニット504は、抽出された当該ストリームID「S1」のライブストリームを取り扱うプルエッジサーバとして、「SV1」を特定する。工程S1310において、当該接続ユニット506は、ネットワークNWを介して、特定された当該プルエッジサーバおよび要求元の当該ユーザ端末と通信することにより、特定された当該プルエッジサーバと要求元の当該ユーザ端末の間の接続を確立させる。その後、特定された当該プルエッジサーバが、確立された当該接続を通じて、要求されたライブストリームのライブストリーミングデータを要求元の当該ユーザ端末に送信し始める。
【0105】
抽出された当該ストリームIDがテーブルに格納されていない場合(工程S1306で「いいえ」)、工程S1312で、当該決定ユニット504は、当該プルエッジサーバテーブルを参照し、負荷分散アルゴリズムに従って、複数のプルエッジサーバから1つのプルエッジサーバを選択する。当該アルゴリズムは、上述したように、CPU使用率またはメモリ使用率、あるいは接続数に基づいてもよい。工程S1314において、当該決定ユニット504は、選択された当該プルエッジサーバと抽出された当該ストリームIDを当該プルエッジサーバテーブルに登録する。例えば、図4に示す例において、工程S1312で、抽出された当該ストリームIDが「S12」で、プルエッジサーバ「SV2」が選択された場合、当該決定ユニット504は、当該プルエッジサーバテーブルのサーバID「SV2」に対応するストリームIDのセルに、抽出された当該ストリームID「S12」を追加する。
【0106】
工程S1310において、当該接続ユニット506は、ネットワークNWを介して、選択された当該プルエッジサーバおよび要求元の当該ユーザ端末と通信することにより、選択された当該プルエッジサーバと要求元の当該ユーザ端末の間の接続を確立させる。その後、選択された当該プルエッジサーバは、当該オリジンサーバ70に要求された当該ライブストリームのライブストリーミングデータを要求する。当該オリジンサーバ70は、選択された当該プルエッジサーバに、当該ライブストリーミングデータを提供する。その後、選択された当該プルエッジサーバは、確立された当該接続を通じて、要求された当該ライブストリームのライブストリーミングデータを、要求元の当該ユーザ端末に送信し始める。
【0107】
図13に示す例において、工程S1308での当該プルエッジサーバの特定は、CPU使用率やメモリ使用率などの他のサーバステータスに無関係に行われる。しかし、別の実施態様において、当該決定ユニットは、プルエッジサーバを特定する際に、抽出された当該ストリームIDに加えて、サーバステータスを考慮に入れてもよい。例えば、当該決定ユニットは、抽出された当該ストリームIDのライブストリームを取り扱うプルエッジサーバを最初に特定してもよい。その後、当該決定ユニットは、特定した当該プルエッジサーバの接続数が閾値を超えるか否かを判断する。超えている場合、当該決定ユニットは特定をキャンセルし、工程S1312に進んでもよい。超えていない場合は、工程S1310に進んでもよい。この変化例は、有名なストリーマーのライブストリームが行われ、膨大な数の視聴者が同時にライブストリームのアクセスを要求する場合に有益である。各プルエッジサーバの接続数が閾値より低く抑えられるため、プルエッジサーバが過負荷になるリスクが少ない。
【0108】
上記実施態様によれば、特定のライブストリーミングのためのユーザ端末との接続が、特定のプルエッジサーバに集中される。したがって、当該オリジンサーバ70と当該プルエッジサーバ間の特定のライブストリーミングのための接続数をできるだけ少なくすることができ、当該オリジンサーバ70の過負荷を防止するために有益である。
【0109】
一部の実施態様において、図2図3に示す視聴者A、B、Cは、図5に示すユーザ端末30に対応する。一部の実施態様において、当該ロードバランサ50は、図11に示す当該オリジンサーバ70または当該プルエッジサーバ62、64または66、あるいは当該コントロールサーバの一部として実装されてもよい。一部の実施態様において、図11に示す当該プルエッジサーバ62、64、66は、図11に示す当該オリジンサーバ70または当該コントロールサーバ100の一部として実装されてもよい。
【0110】
一部の実施態様において、ストリーマーがライブストリーミングを終了すると、当該オリジンサーバ70は、当該ライブストリーミングの終了を検出してもよい。当該オリジンサーバ70は、終了した当該ライブストリーミングのストリームIDを含む終了要求を当該ロードバランサ50に送信してもよい。当該ロードバランサ50は、当該終了要求の受信に応答し、当該プルエッジサーバテーブルを更新して、当該終了要求に含まれる当該ストリームIDを当該テーブルから削除してもよい。
【0111】
本発明で説明した処理及び手順は、明示的に説明したものに加えて、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせにより実現することができる。例えば、本明細書で説明した処理および手順は、その処理および手順に対応するロジックを集積回路、揮発性メモリ、不揮発性メモリ、非一過性のコンピュータ可読媒体、磁気ディスクなどの媒体に実装することにより実現することができる。さらに、本明細書に記載された処理および手順は、その処理および手順に対応するコンピュータプログラムとして実現することができ、各種のコンピュータにより実行することができる。
【0112】
さらに、上記実施態様で説明したシステムまたは方法は、固体記憶装置、光ディスク記憶装置、磁気ディスク記憶装置などの非一時的なコンピュータ可読媒体に格納されたプログラムに統合されてもよい。あるいは、プログラムは、インターネットを介してサーバからダウンロードされ、プロセッサにより実行されるものとしてもよい。
【0113】
以上、本発明の技術的内容及び特徴を説明したが、本発明の属する技術分野において通常の知識を有する者であれば、本発明の教示及び開示から逸脱することなく、なお多くの変形及び修正を行うことができる。したがって、本発明の範囲は、既に開示された実施態様に限定されず、本発明から逸脱しない別の変形や修正を含み、特許請求の範囲に含まれる範囲である。
【符号の説明】
【0114】
1 通信システム
10 サーバシステム
20 ユーザ端末
30、30a、30b ユーザ端末
LV 配信者
AU1、AU2 視聴者
VD、VD1、VD2 映像
NW ネットワーク
30 ユーザ端末
100 配信ユニット
102 撮像コントロールユニット
104 オーディオコントロールユニット
106 映像送信ユニット
108 配信者側UIコントロールユニット
200 視聴ユニット
202 視聴者側UIコントロールユニット
204 重ね合わせ情報生成ユニット
206 入力情報送信ユニット
302 配信情報提供ユニット
304 中継ユニット
306 贈り物処理ユニット
308 支払い処理ユニット
310 ストリームDB
312 ユーザDB
314 贈り物DB
50 ロードバランサ
502 受信ユニット
504 決定ユニット
506 接続ユニット
70 オリジンサーバ
90 ネットワーク
62、64、66 プルエッジサーバ
100 コントロールサーバ
S100、S102、S104、S106、S108、S110、S112、S114 工程
S116、S118、S120、S122、S124、S126、S128、S130、S132、S134 工程
S200、S202、S204、S206、S208、S210 工程
S212、S214、S216、S218、S220、S222 工程
S300、S302、S304、S306、S308、S310、S312、S314 工程
S316、S318、S320、S322、S324、S326、S328 工程
S1300、S1302、S1304、S1306、S1308、S1310、S1312、S1314 工程
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13