(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-19
(45)【発行日】2025-05-27
(54)【発明の名称】解析装置、解析方法、及びプログラム
(51)【国際特許分類】
H04L 67/02 20220101AFI20250520BHJP
H04L 67/568 20220101ALI20250520BHJP
H04L 67/75 20220101ALI20250520BHJP
【FI】
H04L67/02
H04L67/568
H04L67/75
(21)【出願番号】P 2022524757
(86)(22)【出願日】2020-05-20
(86)【国際出願番号】 JP2020019938
(87)【国際公開番号】W WO2021234855
(87)【国際公開日】2021-11-25
【審査請求日】2022-11-15
【審判番号】
【審判請求日】2024-09-02
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100141519
【氏名又は名称】梶田 邦之
(72)【発明者】
【氏名】上田 格
【合議体】
【審判長】伊藤 隆夫
【審判官】村松 貴士
【審判官】野崎 大進
(56)【参考文献】
【文献】特開2019-41179(JP,A)
【文献】特開2019-75765(JP,A)
【文献】特開2013-21632(JP,A)
【文献】特開2006-134041(JP,A)
【文献】特開2016-212471(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L67/00-67/75
(57)【特許請求の範囲】
【請求項1】
配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得する配信データ取得部と、
比較すべき項目を指定する解析ポリシーに従って、前記配信データ取得部が取得した複数の前記配信データを比較することで解析処理を実行する解析処理部と、
を備え、
前記解析ポリシーは、前記配信データ取得部が現に取得した配信データと過去に取得された配信データとを前記解析処理部が比較することを指定することを含む、
解析装置。
【請求項2】
前記解析処理部は、前記解析処理の結果に基づいて、少なくとも1つの前記配信サーバの状態を示すステータス情報を出力する、請求項1に記載の解析装置。
【請求項3】
前記ステータス情報は、前記配信サーバが正常であるか異常であるかを離散的に示すフラグ、又は、前記配信サーバが正常であるか異常であるかを確率的に示す連続値である、請求項2に記載の解析装置。
【請求項4】
前記解析ポリシーは、前記配信データが互いに一致するか否かを前記解析処理部が比較することを指定する、請求項1から請求項3のいずれか1項に記載の解析装置。
【請求項5】
前記解析ポリシーは、前記配信データと取得が期待されるデータとを前記解析処理部が比較することを指定する、請求項1から請求項3のいずれか1項に記載の解析装置。
【請求項6】
前記解析処理部は、前記解析処理の結果を出力する、請求項1に記載の解析装置。
【請求項7】
前記解析処理部は、前記解析処理の結果において前記配信データに差異が生じている部分を特定する情報を出力する、請求項6に記載の解析装置。
【請求項8】
前記配信システムは、少なくとも1つのオリジンサーバと前記オリジンサーバが配信する配信データをキャッシュする少なくとも1つのキャッシュサーバとを複数の前記配信サーバとして備える、請求項1から請求項
7のいずれか1項に記載の解析装置。
【請求項9】
複数のクライアントを制御して複数の前記配信サーバから複数の前記配信データを取得させるクライアント制御部を更に備える、請求項1から請求項
8のいずれか1項に記載の解析装置。
【請求項10】
前記クライアント制御部が制御する複数の前記クライアントの各々は、グローバルIP(Internet Protocol)アドレスが割り当てられている、又は、グローバルIPアドレスが割り当てられた中継ノードを介して前記配信サーバにアクセスする、請求項
9に記載の解析装置。
【請求項11】
前記クライアント制御部は、ユーザからの指示に基づいて、複数の前記配信サーバにリクエストを送信するように複数の前記クライアントを制御する、請求項
9又は請求項
10に記載の解析装置。
【請求項12】
前記クライアント制御部は、複数の前記クライアントの各々に対して、アクセスすべき前記配信システムに対応するドメイン名又はアクセスすべき1つの前記配信サーバに対応するIPアドレスを特定する、請求項
9から請求項
11のいずれか1項に記載の解析装置。
【請求項13】
配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得することと、
比較すべき項目を指定する解析ポリシーに従って、取得された複数の前記配信データを比較することで解析処理を実行することと、
を備え、
前記解析ポリシーは、現に取得した配信データと過去に取得された配信データとを比較することを指定することを含む、
解析方法。
【請求項14】
コンピュータを、
配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得する配信データ取得部と、
比較すべき項目を指定する解析ポリシーに従って、前記配信データ取得部が取得した複数の前記配信データを比較することで解析処理を実行する解析処理部と、
として機能させ、
前記解析ポリシーは、前記配信データ取得部が現に取得した配信データと過去に取得された配信データとを前記解析処理部が比較することを指定することを含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、解析装置、解析方法、及びプログラムに関する。
【背景技術】
【0002】
多数のコンピュータネットワークを相互に接続したグローバルなネットワークであるインターネット(the Internet)を介したデータ配信が活用されている。一般的に、配信装置は、ユーザからのリクエストに応じてデータを配信する。
【0003】
以上のようなインターネットを介したデータ配信においては、リクエストを送信したクライアントに対して配信者の意図に適ったデータが配信装置から配信されるべきである。近年、リクエストに対する装置からの応答を解析する種々の技術が提案されている。
【0004】
例えば、特許文献1には、ネットワーク上でサービスを提供するノードを分析する技術が開示されている。以上の技術においては、まず、複数の第1ノードが、分析対象である1つの第2ノードに対してリクエストを送信する。第2ノードが、受信したリクエストに対する応答を第1ノードにそれぞれ送信する。通信分析装置が、第1ノードからそれぞれ送信された応答を分析して出力する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1が開示するのは、単一の配信サーバ(第2ノード)の状態を分析する技術である。特許文献1に開示されている上記技術は、複数の配信サーバが設けられた配信システムの状態を解析するものではない。
【0007】
近年、コンテンツ配信ネットワーク(Content Delivery Network, CDN)等の複数の配信サーバが設けられた配信システムを用いてデータを配信する技術が提案されている。そのため、以上のような配信システムの状態に関する解析技術の開発が求められている。
【0008】
本発明の目的は、複数の配信サーバが設けられた配信システムの状態を適切に解析可能な解析装置、解析方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
本発明の一態様に係る解析装置は、配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得する配信データ取得部と、前記配信データ取得部が取得した複数の前記配信データを比較することで解析処理を実行する解析処理部と、を備える。
【0010】
本発明の一態様に係る解析方法は、配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得することと、取得された複数の前記配信データを比較することで解析処理を実行することと、を備える。
【0011】
本発明の一態様に係るプログラムは、コンピュータを、配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得する配信データ取得部と、前記配信データ取得部が取得した複数の前記配信データを比較することで解析処理を実行する解析処理部と、として機能させるプログラムである。
【発明の効果】
【0012】
本発明によれば、複数の配信サーバが設けられた配信システムの状態を適切に解析することが可能になる。なお、本発明により、当該効果の代わりに、又は当該効果とともに、他の効果が奏されてもよい。
【図面の簡単な説明】
【0013】
【
図1】本発明の第1実施形態に係るシステムS1の概略的な構成を例示する説明図である。
【
図2】本発明の第1実施形態に係るユーザ装置100の概略的な構成を例示するブロック図である。
【
図3】本発明の第1実施形態に係る解析装置200の概略的な構成を例示するブロック図である。
【
図4】本発明の第1実施形態に係るクライアント装置300の概略的な構成を例示するブロック図である。
【
図5】本発明の第1実施形態に係るデータベース装置400の概略的な構成を例示するブロック図である。
【
図6】本発明の第1実施形態に係るCDN600の概略的な構成を例示する説明図である。
【
図7】本発明の第1実施形態における解析処理を例示するシーケンス図である。
【
図8】本発明の第1実施形態に係る指示データを例示する説明図である。
【
図9】本発明の第1実施形態に係るリクエスト制御データを例示する説明図である。
【
図10】本発明の第1実施形態に係る配信データを例示する説明図である。
【
図11】本発明の第1実施形態に係るデータベース装置400に蓄積されるデータを例示する説明図である。
【
図12】本発明の第1実施形態における解析処理の結果を例示する説明図である。
【
図13】本発明の第2実施形態に係る解析装置200aの概略的な構成を例示するブロック図である。
【発明を実施するための形態】
【0014】
以下、添付の図面を参照して本発明の実施形態を詳細に説明する。なお、本明細書及び図面において、同様に説明されることが可能な要素については、同一の符号を付することにより重複した説明が省略され得る。
【0015】
以下に説明される各実施形態は、本発明を実現可能な構成の一例に過ぎない。以下の各実施形態は、本発明が適用される装置の構成や各種の条件に応じて適宜に修正又は変更することが可能である。以下の各実施形態に含まれる要素の組合せの全てが本発明を実現するに必須であるとは限られず、要素の一部を適宜に省略することが可能である。したがって、本発明の範囲は、以下の各実施形態に記載される構成によって限定されるものではない。相互に矛盾のない限りにおいて、実施形態内に記載された複数の構成を組み合わせた構成も採用可能である。
【0016】
本発明に係る説明は、以下の順序で行われる。
1. 本発明の実施形態の概要
2. 第1実施形態
2.1. ユーザ装置100の構成
2.2. 解析装置200の構成
2.3. クライアント装置300の構成
2.4. データベース装置400の構成
2.5. CDN600の構成
2.6. 動作例
2.7. 変形例
3. 第2実施形態
3.1. 解析装置200aの構成
3.2. 動作例
4. 他の実施形態
【0017】
<<1. 本発明の実施形態の概要>>
まず、本発明の実施形態の概要を説明する。
【0018】
(1)技術的課題
多数のコンピュータネットワークを相互に接続したグローバルなネットワークであるインターネット(the Internet)を介したデータ配信が活用されている。一般的に、配信装置は、ユーザからのリクエストに応じてデータを配信する。以上のようなインターネットを介したデータ配信においては、リクエストを送信したクライアントに対して配信者の意図に適ったデータが配信装置から配信されるべきである。
【0019】
近年、コンテンツ配信ネットワーク(Content Delivery Network, CDN)等の複数の配信サーバが設けられた配信システムを用いてデータを配信する技術が提案されている。そのため、以上のような配信システムの状態に関する解析技術の開発が求められている。
【0020】
以上の事情に鑑み、本実施形態では、複数の配信サーバが設けられた配信システムの状態を適切に解析することを目的とする。
【0021】
(2)技術的特徴
本発明の実施形態では、配信システムに設けられた複数の配信サーバが配信する複数の配信データが取得され、取得された複数の配信データを比較することで解析処理が実行される。
【0022】
以上の構成によれば、複数の配信サーバが設けられた配信システムの状態を適切に解析することが可能になる。なお、本実施形態により、当該効果の代わりに、又は当該効果とともに、他の効果が奏されてもよい。なお、上述した技術的特徴は本発明の実施形態の具体的な一例であり、当然ながら、本発明の実施形態は上述した技術的特徴に限定されない。
【0023】
<<2. 第1実施形態>>
次いで、
図1乃至
図12を参照して、本発明の第1実施形態を説明する。
図1は、本発明の第1実施形態に係る解析システムS1の概略的な構成を例示する説明図である。
図1に示すように、本実施形態の解析システムS1は、ユーザ装置100、解析装置200、複数のクライアント装置300、及びデータベース装置400を有する。ユーザ装置100、解析装置200、複数のクライアント装置300、及びデータベース装置400は、ネットワーク500を介して互いに通信できる。
【0024】
複数のクライアント装置300は、解析装置200による制御の下、ネットワーク500を介してCDN600にアクセスできる。CDN600は、複数の配信サーバ700と制御サーバ750とを有する配信システムである。
【0025】
概略的には、ユーザ装置100からの指示に基づいて、解析装置200が複数のクライアント装置300を制御しCDN600にアクセスさせる。複数のクライアント装置300は、CDN600から受信した配信データをデータベース装置400に蓄積する。解析装置200は、データベース装置400に蓄積された配信データを用いて解析処理を実行しユーザ装置100に出力する。
【0026】
本実施形態の解析システムS1は、所定のインターネット・プロトコル・スイート(例えば、Transmission Control Protocol / Internet Protocol, TCP/IP)に従って通信する複数のノードを有するシステムである。なお、解析システムS1は、他の規格に準拠したシステムであってもよい。
【0027】
<2.1. ユーザ装置100の構成>
本実施形態のユーザ装置100は、ユーザからの入力を受け付けて解析装置200に供給し、解析装置200からの出力を受信してユーザに提示する装置である。
図2は、ユーザ装置100の概略的な構成を例示するブロック図である。
図2に示すように、ユーザ装置100は、ネットワーク通信部110と記憶部120と制御部130と入出力インターフェース(I/F)140とを有する。
【0028】
ネットワーク通信部110は、ネットワーク500を介して他の装置(例えば、解析装置200)と信号を送受信する要素である。ネットワーク通信部110は、例えば、ネットワークアダプタ及び/又はネットワークインターフェースカード(Network Interface Card, NIC)によって実装され得る。
【0029】
記憶部120は、ユーザ装置100における種々の処理を実行するのに用いられるプログラム(命令)及びデータを一時的又は恒久的に格納する要素である。上記プログラムは、ユーザ装置100の動作のための1つ以上の命令を含む。記憶部120は、例えば、揮発性メモリ、不揮発性メモリ、若しくは磁気ディスク等の記憶媒体又はこれらの2種以上の組合せによって実装され得る。また、記憶部120が制御部130を構成する1以上のプロセッサと一体的に構成されてもよい。
【0030】
制御部130は、ユーザ装置100の種々の機能を提供する要素であって、入力部131、指示生成部133、及び出力部135を機能ブロックとして有する。なお、制御部130は、以上の機能ブロック以外の構成要素を更に含んでよい。即ち、制御部130は、以上の機能ブロックによる動作以外の動作を実行できる。
【0031】
制御部130は、例えば、1以上のプロセッサによって実装され得る。制御部130は、記憶部120に記憶されたプログラムを記憶部120及び/又は不図示のシステムメモリに展開し実行することによって、後述される本実施形態の処理を実現してよい。なお、各機能ブロック(入力部131、指示生成部133、及び出力部135)が、制御部130とは別の1以上のプロセッサによって実現されてもよい。
【0032】
入出力I/F140は、キーボード及びマウス等の入力デバイス並びに液晶ディスプレイ等の出力デバイスとユーザ装置100とのインターフェースである。入出力I/F40は、入力デバイスに対するユーザ操作に対応する入力信号を入力データに変換して制御部130に供給し、制御部130から供給された出力データを出力信号に変換して出力デバイスに送信する。
【0033】
入出力I/F140から供給された入力データは入力部131を介して指示生成部133に転送される。指示生成部133の動作については後述される。また、出力部135は、解析装置200から送信されたデータを加工し、出力データとして入出力I/F140に供給する。
【0034】
<2.2. 解析装置200の構成>
本実施形態の解析装置200は、クライアント装置300を制御してCDN600から配信データを取得すると共に、取得された配信データを用いて解析処理を実行する装置である。
図3は、解析装置200の概略的な構成を例示するブロック図である。
図3に示すように、解析装置200は、ネットワーク通信部210と記憶部220と制御部230とを有する。
【0035】
ネットワーク通信部210は、ネットワーク500を介して他の装置(例えば、ユーザ装置100、クライアント装置300、及びデータベース装置400)と信号を送受信する要素である。ネットワーク通信部210は、例えば、ネットワークアダプタ及び/又はネットワークインターフェースカードによって実装され得る。
【0036】
記憶部220は、解析装置200における種々の処理を実行するのに用いられるプログラム(命令)及びデータを一時的又は恒久的に格納する要素である。上記プログラムは、解析装置200の動作のための1つ以上の命令を含む。記憶部220は、例えば、揮発性メモリ、不揮発性メモリ、若しくは磁気ディスク等の記憶媒体又はこれらの2種以上の組合せによって実装され得る。また、記憶部220が制御部230を構成する1以上のプロセッサと一体的に構成されてもよい。
【0037】
更に、記憶部220は、後述される本実施形態の解析処理に用いられる解析ポリシー221及びパラメータ223を記憶する。解析ポリシー221及びパラメータ223については後述される。なお、パラメータ223は、例えば、クライアント装置300のIP(Internet Protocol)アドレス、IPアドレス範囲に基づいて推測される国/地域、CDN600内の配信サーバ700のIPアドレスを含んでよい。
【0038】
制御部230は、解析装置200の種々の機能を提供する要素であって、入出力部231、クライアント制御部233、配信データ取得部235、及び解析処理部237を機能ブロックとして有する。なお、制御部230は、以上の機能ブロック以外の構成要素を更に含んでよい。即ち、制御部230は、以上の機能ブロックによる動作以外の動作を実行できる。
【0039】
制御部230は、例えば、1以上のプロセッサによって実装され得る。制御部230は、記憶部220に記憶されたプログラムを記憶部220及び/又は不図示のシステムメモリに展開し実行することによって、後述される本実施形態の処理を実現してよい。なお、各機能ブロック(入出力部231、クライアント制御部233、配信データ取得部235、及び解析処理部237)が、制御部230とは別の1以上のプロセッサによって実現されてもよい。
【0040】
各機能ブロックについては後述されるが、概略的には以下の通りである。入出力部231は、解析装置200に入力されるデータ及び解析装置200から出力されるべきデータを処理する。クライアント制御部233は、複数のクライアント装置300を制御して、複数の配信サーバ700から複数の配信データを取得させる。配信データ取得部235は、配信サーバ700が配信した配信データをデータベース装置400から取得する。解析処理部237は、解析処理において比較すべき項目を指定する解析ポリシー221に従って解析処理を実行する。また、解析処理部237は、解析処理の結果に基づいて、少なくとも1つの配信サーバ700の状態を示すステータス情報をユーザ装置100に対して出力する。
【0041】
<2.3. クライアント装置300の構成>
本実施形態の複数のクライアント装置300は、解析装置200からの制御に基づいてCDN600にアクセスし、受信した配信データをデータベース装置400に蓄積する。解析システムS1が有する複数のクライアント装置300は同様に構成されるので、以下、1つのクライアント装置300を代表として説明する。
図4は、クライアント装置300の概略的な構成を例示するブロック図である。
【0042】
図4に示すように、クライアント装置300は、ネットワーク通信部310と記憶部320と制御部330とを有する。クライアント装置300にはグローバルIPアドレスが割り当てられている
【0043】
ネットワーク通信部310は、ネットワーク500を介して他の装置(例えば、解析装置200、データベース装置400、及び配信サーバ700)と信号を送受信する要素である。ネットワーク通信部310は、例えば、ネットワークアダプタ及び/又はネットワークインターフェースカードによって実装され得る。
【0044】
記憶部320は、クライアント装置300における種々の処理を実行するのに用いられるプログラム(命令)及びデータを一時的又は恒久的に格納する要素である。上記プログラムは、クライアント装置300の動作のための1つ以上の命令を含む。記憶部320は、例えば、揮発性メモリ、不揮発性メモリ、若しくは磁気ディスク等の記憶媒体又はこれらの2種以上の組合せによって実装され得る。また、記憶部320が制御部330を構成する1以上のプロセッサと一体的に構成されてもよい。
【0045】
制御部330は、クライアント装置300の種々の機能を提供する要素であって、アクセス部331及びデータ蓄積部333を機能ブロックとして有する。なお、制御部330は、以上の機能ブロック以外の構成要素を更に含んでよい。即ち、制御部330は、以上の機能ブロックによる動作以外の動作を実行できる。
【0046】
制御部330は、例えば、1以上のプロセッサによって実装され得る。制御部330は、記憶部320に記憶されたプログラムを記憶部320及び/又は不図示のシステムメモリに展開し実行することによって、後述される本実施形態の処理を実現してよい。なお、各機能ブロック(アクセス部331及びデータ蓄積部333)が、制御部330とは別の1以上のプロセッサによって実現されてもよい。
【0047】
<2.4. データベース装置400の構成>
本実施形態のデータベース装置400は、複数のクライアント装置300から供給された配信データを蓄積する装置である。
図5は、データベース装置400の概略的な構成を例示するブロック図である。
【0048】
図5に示すように、データベース装置400は、ネットワーク通信部410と記憶部420と制御部430とを有する。
【0049】
ネットワーク通信部410は、ネットワーク500を介して他の装置(例えば、解析装置200及びクライアント装置300)と信号を送受信する要素である。ネットワーク通信部410は、例えば、ネットワークアダプタ及び/又はネットワークインターフェースカードによって実装され得る。
【0050】
記憶部420は、データベース装置400における種々の処理を実行するのに用いられるプログラム(命令)及びデータを一時的又は恒久的に格納する要素である。上記プログラムは、データベース装置400の動作のための1つ以上の命令を含む。記憶部420は、例えば、揮発性メモリ、不揮発性メモリ、若しくは磁気ディスク等の記憶媒体又はこれらの2種以上の組合せによって実装され得る。また、記憶部420が制御部430を構成する1以上のプロセッサと一体的に構成されてもよい。
【0051】
制御部430は、データベース装置400の種々の機能を提供する要素であって、データベース管理部431を機能ブロックとして有する。データベース管理部431は、いわゆるデータベースマネジメントシステム(DBMS)であって、記憶部420と共に動作して関係データベース(Relational Database, RDB)を実現することができる。なお、制御部430は、以上の機能ブロック以外の構成要素を更に含んでよい。即ち、制御部430は、以上の機能ブロックによる動作以外の動作を実行できる。
【0052】
制御部430は、例えば、1以上のプロセッサによって実装され得る。制御部430は、記憶部420に記憶されたプログラムを記憶部420及び/又は不図示のシステムメモリに展開し実行することによって、後述される本実施形態の処理を実現してよい。なお、各機能ブロック(データベース管理部431)が、制御部430とは別の1以上のプロセッサによって実現されてもよい。
【0053】
なお、データベース装置400は、解析装置200の一部として構成されてもよい。例えば、制御部230がデータベース管理部431に相当する機能ブロックを含み、上記機能ブロックが記憶部220と共に動作して本実施形態の関係データベースを実現してもよい。
【0054】
<2.5. CDN600の構成>
本実施形態の配信システムであるCDN600は、複数の配信サーバ700と、上記配信サーバ700を制御する制御サーバ750を有する。
図6は、CDN600の概略的な構成を例示する説明図である。複数の配信サーバ700には、例えば、オリジナルの配信データを配信する少なくとも1つのオリジンサーバ710と、オリジンサーバ710が配信する配信データをキャッシュする少なくとも1つのキャッシュサーバ720が含まれる。典型的には、
図6に示すように、CDN600が1つのオリジンサーバ710と複数のキャッシュサーバ720とを含む。なお、複数の配信サーバ700は1つのCDN600を論理的に構成する一方、物理的には任意の場所に設置され得る。例えば、5台の配信サーバ700が、日本、韓国、中国、欧州、及び米国にそれぞれ配置されてよい。
【0055】
各配信サーバ700は、クライアント装置300(アクセス部331)からのリクエストに応答して配信データを送信する。クライアント装置300がドメイン名を用いてアクセスを試みる場合、クライアント装置300のアクセス先は、不図示のドメインネームサーバ(DNS)による名前解決に基づいて振り分けられる。他方、クライアント装置300がIPアドレスを用いてアクセスを試みる場合、クライアント装置300のアクセス先は、そのIPアドレスによって直接的に特定される。
【0056】
各キャッシュサーバ720は、オリジンサーバ710が配信する配信データをキャッシュする。したがって、オリジンサーバ710と複数のキャッシュサーバ720とが適切に同期している場合、各クライアント装置300(アクセス部331)は、いずれの配信サーバ700(オリジンサーバ710及びキャッシュサーバ720)にアクセスしても同じ配信データを取得することができる。
【0057】
制御サーバ750は、オリジンサーバ710と各キャッシュサーバ720とが同期しているか否かを判定する同期チェックを実行する。以上の同期チェックは、例えば、所定時間ごとに実行されてよい。制御サーバ750は、オリジンサーバ710と同期していないと判定したキャッシュサーバ720に対して、オリジンサーバ710とが同期するように制御する。なお、複数の配信サーバ700のうちいずれか(例えば、オリジンサーバ710)が制御サーバ750の機能を有していてもよい。
【0058】
<2.6. 動作例>
図7を参照して、本発明の第1実施形態における解析処理の例を説明する。
図7は、第1実施形態における解析処理の流れを例示するシーケンス図である。
【0059】
ステップS10において、ユーザ装置100の入力部131は、ユーザの指示を示す入力データを受け付けて指示生成部133に供給する。指示生成部133は、各クライアント装置300に対するアクセス指示を示す指示データを入力データに基づいて生成し、生成した指示データを解析装置200に送信する。
【0060】
図8は、本実施形態に係る指示データを例示する説明図である。以下、各図において「クライアント」を「CL」と略記する場合がある。
図8に示すように、指示データは、複数のクライアント装置300の各々について、クライアントID、クライアントポート番号、接続先、接続先ポート番号、取得すべき対象等を示すリクエスト内容(例えば、HTTP(Hyper Text Transfer Protocol)リクエスト)、及び期待差分を示すデータである。図示の通り、接続先は、ドメイン名又はIPアドレスによって特定される。期待差分は、基準となるデータ(例えば、オリジンサーバ710が配信するオリジナルの配信データ)と、取得が予想されるデータ(例えば、キャッシュサーバ720にキャッシュされている配信データ)との差分を示す。なお、本例では、クライアントID#0のクライアント装置300の接続先がオリジンサーバ710であるので期待差分を示す値が存在しない。
【0061】
なお、指示生成部133が生成する指示データは、少なくとも1つのクライアント装置300に対する指示が含まれていればよい。ユーザは、ユーザ装置100に対して、クライアントID、接続先、及び期待差分を指示すると好適である。指示データ中、ユーザに指示されなかった項目についてはデフォルト値が設定されると好適である。
【0062】
ステップS12において、解析装置200の入出力部231は、ユーザ装置100(指示生成部133)からの指示データを受け付けてクライアント制御部233に供給する。クライアント制御部233は、供給された指示データに基づいて、各クライアント装置300に対するリクエスト制御データを生成する。リクエスト制御データは、指示データが示す上記項目を含むデータであって、複数のクライアント装置300の各々に対して、アクセスすべきCDN600に対応するドメイン名又はアクセスすべき1つの配信サーバ700に対応するIPアドレスを特定可能なデータである。リクエスト制御データは、例えば、URI(Uniform Resource Identifier)によって構成され得る。より具体的には以下の通りである。
【0063】
図9は、本実施形態に係るリクエスト制御データを例示する説明図である。
図9に示すように、リクエスト制御データは、指示データと同様、複数のクライアント装置300の各々に対するリクエストに対応するデータである。また、リクエスト制御データは、指示データに含まれる上記項目に加え、クライアントIPアドレス、クライアントの国/地域、接続先の国/地域、オリジンサーバ710のIPアドレス、及びリクエスト送信時刻を含むデータである。クライアント制御部233は、記憶部220内のパラメータ223及び不図示のシステムクロック等を参照して、
図9に下線で示される以上の項目を指示データに追加することによって、リクエスト制御データを生成する。
【0064】
なお、リクエスト制御データに含まれるクライアントの国/地域及び接続先の国/地域はIPアドレスから推測される情報である。本例に示すように、ドメイン名は複数のIPアドレスに対応することがあるので、ドメイン名で接続先を特定するエントリにおいては接続先の国/地域が特定されなくてよい。なお、ドメイン名で接続先を特定するエントリにおいても、パラメータ223にそのドメイン名と国/地域とを関連付ける情報が格納されている場合には、ドメイン名から接続先の国/地域が特定されてもよい。
【0065】
ステップS14において、解析装置200のクライアント制御部233は、ステップS12にて生成されたリクエスト制御データを複数のクライアント装置300の各々に送信する。以上のステップS12,S14から理解されるように、クライアント制御部233は、ユーザからの指示に基づいて、複数の配信サーバ700にリクエスト(例えば、HTTPリクエスト)をそれぞれ送信するように複数のクライアント装置300を制御する。
【0066】
ステップS16において、各クライアント装置300のアクセス部331は、解析装置200(クライアント制御部233)から送信されたリクエスト制御データに基づいていずれかの配信サーバ700にリクエストを送信する。より具体的には、アクセス部331は、リクエスト制御データがドメイン名によって接続先を示すときは、DNSによる名前解決に従って変換されたIPアドレスが示す配信サーバ700にリクエストを送信する。他方、アクセス部331は、リクエスト制御データがIPアドレスによって接続先を示すときは、リクエスト制御データに含まれるIPアドレスが示す配信サーバ700にリクエストを送信する。
【0067】
ステップS18において、配信サーバ700は、それぞれ、クライアント装置300からのリクエストに応じて配信データ(例えば、HTML(Hyper Text Markup Language)ファイル)を送信する。クライアント装置300のアクセス部331は、それぞれ、配信サーバ700から送信された配信データを受信する。
図10は、本実施形態に係る配信データを例示する説明図である。
図10に示すように、配信データはヘッダ部分とボディ部分とを含む。
【0068】
ステップS20において、各クライアント装置300のデータ蓄積部333は、アクセス部331が受信した配信データを、アクセスに関するパラメータと共にデータベース装置400に送信する。データベース装置400のデータベース管理部431は、クライアント装置300(データ蓄積部333)から送信された配信データ及びアクセスに関するパラメータを、関係データベースとして使用できる形式で記憶部420に格納する。
【0069】
図11は、本実施形態に係るデータベース装置400の記憶部420に蓄積されるデータを例示する説明図である。
図11に示すように、データベース装置400の記憶部420には、クライアント装置300が取得した配信データが、リクエスト制御データに含まれるアクセスに関するパラメータに関連付けられて格納される。
【0070】
なお、クライアント装置300が配信サーバ700にアクセスした後であれば配信サーバ700のIPアドレスが判明している。したがって、
図11に示すように、データベース管理部431は、ドメイン名で指定された接続先に関し、DNSから返されたIPアドレス及び接続先の国/地域を更に格納してもよい。
【0071】
ステップS22において、解析装置200の配信データ取得部235は、データベース装置400のデータベース管理部431に対して、記憶部420に蓄積されている配信データ及びパラメータを供給するよう要求する(例えば、クエリを送信する)。データベース管理部431は、以上の要求に基づいて配信データ及びパラメータを読み出し、解析装置200に送信する。
【0072】
ステップS24において、解析装置200の解析処理部237は、配信データ取得部235が取得した複数の配信データ及びパラメータを比較することで解析処理を実行する。本例において、解析ポリシー221は、配信サーバ700間で配信データが互いに一致するか否かを解析処理部237が比較することを指定する。
図12は、本実施形態における解析処理の結果を例示する説明図である。
【0073】
解析処理部237は、解析ポリシー221に従って、クライアントID#0のクライアント装置300(以下、クライアント#0と称する。他のクライアントIDについても同様)が取得したオリジンサーバ710の配信データと、クライアント#1~#3が取得したキャッシュサーバ720の配信データとをそれぞれ比較して、実際の差分(実差分)が有るか無いか判定する。以上の比較処理は、例えば、文字列を比較するdiffコマンドを用いて実行され得る。
【0074】
そして、解析処理部237は、上記した解析処理の結果に基づいて、配信サーバ700が正常であるか異常であるかを離散的に示すフラグであるステータス情報を出力する。具体的には以下の例示の通りである。
【0075】
図12の実差分欄に示すように、オリジンサーバ710の配信データと、クライアント#1が取得したキャッシュサーバ720の配信データとの間には差分が無い。他方、オリジンサーバ710の配信データと、クライアント#2が取得したキャッシュサーバ720の配信データとの間には差分がある。クライアント#3についても同様である。
【0076】
オリジンサーバ710の配信データと、クライアント#1が取得したキャッシュサーバ720の配信データとの間の期待差分は「無」である。クライアント#1がアクセスしたキャッシュサーバ720に関しては期待差分と実差分(「無」)とが一致するので、解析処理部237は当該サーバが正常であると判定し、正常を示すステータス情報を出力する。
【0077】
オリジンサーバ710の配信データと、クライアント#2が取得したキャッシュサーバ720の配信データとの間の期待差分は「有」である。クライアント#2がアクセスしたキャッシュサーバ720に関しても期待差分と実差分(「有」)とが一致するので、解析処理部237は当該サーバが正常であると判定し、正常を示すステータス情報を出力する。
【0078】
オリジンサーバ710の配信データと、クライアント#3が取得したキャッシュサーバ720の配信データとの間の期待差分は「有」である。クライアント#3がアクセスしたキャッシュサーバ720に関しては期待差分と実差分(「無」)とが一致しないので、解析処理部237は当該サーバが異常であると判定し、異常を示すステータス情報を出力する。
【0079】
解析処理部237は、上記したステータス情報を含む解析処理の結果を入出力部231に供給する。解析処理の結果が、解析処理に用いられたデータ(データベース装置400から取得された配信データ及びパラメータ)を含んでよい。
【0080】
ステップS26において、解析装置200の入出力部231は、解析処理部237から供給された配信サーバ700に関するステータス情報を含む解析処理の結果を、ユーザ装置100に送信する。
【0081】
ステップS28において、ユーザ装置100の出力部135は、解析装置200(入出力部231)から送信された解析処理の結果をユーザに提示する。より具体的には、例えば、出力部135は、ユーザが使用するブラウザの画面内に、配信サーバ700とステータス情報とを含むリストを表示させてよい。また、出力部135は、ユーザがブラウザを用いて検索した検索結果に含まれるサイトの情報と共にステータス情報を示すバッジを表示させてもよい。他に、出力部135は、ステータス情報を含む解析処理の結果をRSSフィードとして配布してもよい。
【0082】
上記した本実施形態の構成(特に、
図7が示す一連の処理)によれば、複数の配信サーバ700が設けられた配信システムであるCDN600の状態を適切に解析することが可能である。
【0083】
<2.7. 変形例>
上記した本実施形態は多様に変形される。具体的な変形の態様を以下に例示する。以上の実施形態及び以下の例示から任意に選択された2以上の態様は、相互に矛盾しない限り適宜に併合され得る。
【0084】
上記した構成におけるステータス情報は、配信サーバ700が正常であるか異常であるかを離散的に示すフラグである。他に、解析ポリシー221に基づいて、配信サーバ700が正常であるか異常であるかを確率的に示す連続値がステータス情報として用いられてもよい。以上の構成によれば、配信サーバ700の異常度をユーザが定量的に把握することができる。他方、本実施形態のように正常/異常を離散的に示すフラグをステータス情報として用いる構成によれば、配信サーバ700の異常度をユーザが簡易に把握することができる。
【0085】
上記した構成においては、解析装置200の解析処理部237が、配信データを用いた解析処理の結果に基づいて配信サーバ700が正常であるか異常であるかを判定している。しかしながら、解析ポリシー221に基づいて、解析処理部237による解析処理の結果がそのままユーザ装置100に対して出力されてもよい。この場合、解析処理部237が、解析処理の結果において配信データに差異が生じている部分を特定する情報を出力すると好適である。ユーザ装置100は、以上の情報に基づいて、ウェブサイトに差異が生じている部分をユーザに提示することが可能になる。
【0086】
上記した構成における解析ポリシー221は、配信サーバ700間で配信データが互いに一致するか否かを解析処理部237が比較することを指定している。しかしながら、解析ポリシー221が配信サーバ700からの配信データと取得が期待されるデータとを解析処理部237が比較することを指定してもよい。複数の配信サーバ700が完全には同期しない構成(例えば、国ごとに異なる応答を返す構成)では、オリジンサーバ710とキャッシュサーバ720とを単純に比較してもデータ配信の状態を適切に解析することが難しい。以上の構成によれば、配信サーバ700ごとに取得が期待されるデータと実際の配信データとを比較するので、複数の配信サーバ700が完全には同期しない構成であってもデータ配信の状態を適切に解析することができる。
【0087】
解析処理部237が、過去の配信データと現在の配信データとを比較することによって解析処理を実現してもよい。即ち、解析ポリシー221が、配信データ取得部235が現に取得した配信データと過去に取得された配信データとを解析処理部237が比較することを指定してもよい。以上の構成によれば、時系列的な比較処理によってより適切にデータ配信の状態を解析することができる。
【0088】
解析処理部237が、複数の配信サーバ700から取得したアクセスに関する複数のパラメータを項目ごとに比較することによってデータ配信の状態を解析してもよい。例えば、1つの配信サーバ700から取得したアクセスに関する複数のパラメータを1つのベクトルとして捉え、ベクトル演算によって比較処理を実現してもよい。以上の構成によれば、配信データ以外の要素も考慮して解析処理が実行されるので、より適切にデータ配信の状態を解析することができる。
【0089】
以上から理解されるように、解析装置200は、記憶部220に記憶される解析ポリシー221を変更することによって解析処理の内容を柔軟に変更することができる。したがって、解析処理のためのアルゴリズムが固定的である構成と比較して、種々の状況に応じた適切な解析処理を実現することが可能である。
【0090】
なお、解析装置200は、仮想化されていてもよい。即ち、解析装置200は、仮想マシンとして実装されてもよい。この場合に、解析装置200(仮想マシン)は、プロセッサ及びメモリ等を含む物理マシン(ハードウェア)及びハイパーバイザ上で仮想マシンとして動作してもよい。ユーザ装置100、クライアント装置300、及びデータベース装置400についても同様である。
【0091】
クライアント装置300が仮想化される構成(即ち、仮想クライアントを用いる構成)では、クライアント制御部233が制御する複数のクライアントの各々が、グローバルIPアドレスが割り当てられた中継ノード(例えば、プロキシサーバ)を介して配信サーバ700にアクセスすると好適である。地域的な制限上、クライアントに自由にグローバルIPアドレスを割り当てることは困難であるが、中継ノードを介すことによって配信サーバ700に対するアクセス元(即ち、グローバルIPアドレス)を調整することができる。
【0092】
ユーザ装置100が、入力用のユーザ装置と出力用のユーザ装置とに分かれていてもよい。以上の構成を多数のユーザ装置に対して解析処理の結果を提供する構成に適用するとより好適である。
【0093】
解析装置200は、ユーザ装置100からのユーザの指示に基づかずに上記した解析処理を実行してもよい。例えば、解析ポリシー221に基づいて、所定時間ごとに
図7のステップS12以降の処理が実行されてもよい。また、解析装置200は、解析処理の結果をユーザ装置100に送信しなくてもよい。例えば、解析処理の結果を記憶部220に蓄積し、CDN600の制御に用いてもよい。
【0094】
<<3. 第2実施形態>>
次いで、
図13を参照して、本発明の第2実施形態を説明する。上述した第1実施形態は具体的な実施形態であるが、第2実施形態はより一般化された実施形態である。
【0095】
<3.1. 解析装置200aの構成>
図13は、第2実施形態に係る解析装置200aの概略的な構成を例示するブロック図である。
図13に示すように、解析装置200aは配信データ取得部235a及び解析処理部237aを有する。
【0096】
配信データ取得部235a及び解析処理部237aは、1つ以上のプロセッサと、メモリ(例えば、不揮発性メモリ及び/若しくは揮発性メモリ)並びに/又はハードディスクとにより実装されてもよい。配信データ取得部235a及び解析処理部237aは、同一のプロセッサにより実装されてもよく、別々に異なるプロセッサにより実装されてもよい。上記メモリは、上記1つ以上のプロセッサ内に含まれていてもよく、又は、上記1つ以上のプロセッサ外にあってもよい。
【0097】
<3.2. 動作例>
第2実施形態に係る動作例を説明する。解析装置200a(配信データ取得部235a)は、配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得する。次いで、解析装置200a(解析処理部237a)は、上記配信データ取得部が取得した複数の上記配信データを比較することで解析処理を実行する。
【0098】
-第1実施形態との関係
一例として、第2実施形態に係る解析装置200aが備える配信データ取得部235a及び解析処理部237aは、それぞれ、第1実施形態に係る解析装置200が備える配信データ取得部235及び解析処理部237の動作を実行してもよい。以上の場合、第1実施形態についての説明が第2実施形態にも適用可能である。なお、第2実施形態は以上の例に限定されるものではない。
【0099】
上述した第2実施形態によれば、複数の配信サーバが設けられた配信システムの状態を適切に解析することが可能になる。
【0100】
<4. 他の実施形態>
以上、本発明の実施形態を説明したが、本発明はこれらの実施形態に限定されるものではない。これらの実施形態は例示にすぎないということ、及び、本発明のスコープ及び精神から逸脱することなく様々な変形が可能であるということは、当業者に理解されるであろう。
【0101】
例えば、本明細書に記載されている処理におけるステップは、必ずしもシーケンス図に記載された順序に沿って時系列に実行されなくてよい。例えば、処理におけるステップは、シーケンス図として記載した順序と異なる順序で実行されても、並列的に実行されてもよい。また、処理におけるステップの一部が削除されてもよく、さらなるステップが処理に追加されてもよい。
【0102】
また、本明細書において説明した解析装置の構成要素(例えば、クライアント制御部、配信データ取得部、及び/又は解析処理部)を備える装置(例えば、解析装置を構成する複数の装置(又はユニット)のうちの1つ以上の装置(又はユニット)、又は上記複数の装置(又はユニット)のうちの1つのためのモジュール)が提供されてもよい。
【0103】
同様に、本明細書において説明したユーザ装置の構成要素(例えば、入力部、設定処理部、及び/又は出力部)を備える装置(例えば、ユーザ装置のためのモジュール)が提供されてもよい。本明細書において説明した各クライアント装置の構成要素(例えば、アクセス部及び/又はデータ蓄積部)を備える装置(例えば、クライアント装置のためのモジュール)が提供されてもよい。本明細書において説明したデータベース装置の構成要素(例えば、データベース管理部)を備える装置(例えば、データベース装置のためのモジュール)が提供されてもよい。
【0104】
また、上記構成要素の処理を含む方法が提供されてもよく、上記構成要素の処理をプロセッサに実行させるためのプログラムが提供されてもよい。また、当該プログラムを記録したコンピュータに読み取り可能な非一時的記録媒体(Non-transitory computer readable medium)が提供されてもよい。当然ながら、このような装置、モジュール、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体も本発明に含まれる。
【0105】
上記実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【0106】
(付記1)
配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得する配信データ取得部と、
前記配信データ取得部が取得した複数の前記配信データを比較することで解析処理を実行する解析処理部と、
を備える解析装置。
(付記2)
前記解析処理部は、前記解析処理において比較すべき項目を指定する解析ポリシーに従って前記解析処理を実行する、付記1に記載の解析装置。
(付記3)
前記解析処理部は、前記解析処理の結果に基づいて、少なくとも1つの前記配信サーバの状態を示すステータス情報を出力する、付記2に記載の解析装置。
(付記4)
前記ステータス情報は、前記配信サーバが正常であるか異常であるかを離散的に示すフラグ、又は、前記配信サーバが正常であるか異常であるかを確率的に示す連続値である、付記3に記載の解析装置。
(付記5)
前記解析ポリシーは、前記配信データが互いに一致するか否かを前記解析処理部が比較することを指定する、付記2から付記4のいずれか1項に記載の解析装置。
(付記6)
前記解析ポリシーは、前記配信データと取得が期待されるデータとを前記解析処理部が比較することを指定する、付記2から付記4のいずれか1項に記載の解析装置。
(付記7)
前記解析処理部は、前記解析処理の結果を出力する、付記2に記載の解析装置。
(付記8)
前記解析処理部は、前記解析処理の結果において前記配信データに差異が生じている部分を特定する情報を出力する、付記7に記載の解析装置。
(付記9)
前記解析ポリシーは、前記配信データ取得部が現に取得した配信データと過去に取得された配信データとを前記解析処理部が比較することを指定する、付記2から付記8のいずれか1項に記載の解析装置。
(付記10)
前記配信システムは、複数の前記配信サーバとして、少なくとも1つのオリジンサーバと前記オリジンサーバが配信する配信データをキャッシュする少なくとも1つのキャッシュサーバとを備える、付記1から付記9のいずれか1項に記載の解析装置。
(付記11)
複数のクライアントを制御して複数の前記配信サーバから複数の前記配信データを取得させるクライアント制御部を更に備える、付記1から付記10のいずれか1項に記載の解析装置。
(付記12)
前記クライアント制御部が制御する複数の前記クライアントの各々は、グローバルIP(Internet Protocol)アドレスが割り当てられている、又は、グローバルIPアドレスが割り当てられた中継ノードを介して前記配信サーバにアクセスする、付記11に記載の解析装置。
(付記13)
前記クライアント制御部は、ユーザからの指示に基づいて、複数の前記配信サーバにリクエストを送信するように複数の前記クライアントを制御する、付記11又は付記12に記載の解析装置。
(付記14)
前記クライアント制御部は、複数の前記クライアントの各々に対して、アクセスすべき前記配信システムに対応するドメイン名又はアクセスすべき1つの前記配信サーバに対応するIPアドレスを特定する、付記11から付記13のいずれか1項に記載の解析装置。
(付記15)
配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得することと、
取得された複数の前記配信データを比較することで解析処理を実行することと、
を備える解析方法。
(付記16)
コンピュータを、
配信システムに設けられた複数の配信サーバが配信する複数の配信データを取得する配信データ取得部と、
前記配信データ取得部が取得した複数の前記配信データを比較することで解析処理を実行する解析処理部と、
として機能させるプログラム。
【産業上の利用可能性】
【0107】
複数の配信サーバが設けられた配信システムの状態を適切に解析することが可能である。
【符号の説明】
【0108】
S1 解析システム
100 ユーザ装置
200 解析装置
233 クライアント制御部
235 配信データ取得部
237 解析処理部
300 クライアント装置
400 データベース装置
600 CDN(配信システム)
700 配信サーバ
710 オリジンサーバ
720 キャッシュサーバ