(57)【要約】【課題】限られた処理資源を用いて効果的な通信の計測を行う。【解決手段】計算装置１０の取得部１３１は、通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する。また、分類部１３２は、フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する。また、計算部１３３は、フロー統計情報に基づいて、分類部１３２によって分類されたグループごとのトラフィックに関する統計情報を計算する。【選択図】図２
2018207345.tif 000002
【特許請求の範囲】
【請求項１】
通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する取得部と、
前記フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する分類部と、
前記フロー統計情報に基づいて、前記分類部によって分類されたグループごとのトラフィックに関する統計情報を計算する計算部と、
を有することを特徴とする計算装置。
【請求項２】
前記分類部は、第１のフロー統計情報に含まれる送信元及び送信先が、それぞれ第２のフロー統計情報に含まれる送信先及び送信元と同一であり、かつ、前記第１のフロー統計情報及び前記第２のフロー統計情報がいずれも所定の期間内に発生したトラフィックに基づくものである場合に、前記第１のフロー統計情報と前記第２のフロー統計情報とを同一のグループに分類することを特徴とする請求項１に記載の計算装置。
【請求項３】
前記取得部は、前記フロー統計情報として、少なくともパケット数及びバイト数を取得し、
前記計算部は、前記統計情報として、前記グループごとのパケットサイズの平均、前記パケットサイズの平均の最大値、前記パケットサイズの平均の最小値、及び前記パケットサイズの平均の標準偏差、前記バイト数の時間平均、及び、時刻ごとの送受信されたパケットの有無を表す情報を計算することを特徴とする請求項１又は２に記載の計算装置。
【請求項４】
前記取得部は、一定時間間隔の時刻のそれぞれに対応する前記フロー統計情報を時間順に取得し、
前記分類部は、前記取得部によって前記フロー統計情報が取得されるたびに、前記フロー統計情報を分類し、
前記計算部は、前記分類部によって分類が行われるたびに、前記グループごとのトラフィックに関する統計情報を計算することを特徴とする請求項１から３のいずれか１項に記載の計算装置。
【請求項５】
前記計算部は、前記分類部によって分類が行われたグループの前記統計情報が既に計算済みである場合、当該計算済みの統計情報及び前記取得部によって取得された前記フロー統計情報に基づいて、前記グループごとのトラフィックに関する統計情報を計算することを特徴とする請求項４に記載の計算装置。
【請求項６】
前記計算部は、前記統計情報として、時刻ごとの送受信されたパケットの有無に基づく共起行列を計算することを特徴とする請求項１から５のいずれか１項に記載の計算装置。
【請求項７】
計算装置によって実行される計算方法であって、
通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する取得工程と、
前記フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する分類工程と、
前記フロー統計情報に基づいて、前記分類工程によって分類されたグループごとのトラフィックに関する統計情報を計算する計算工程と、
を含んだことを特徴とする計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算装置及び計算方法に関する。
【背景技術】
【０００２】
コンピュータネットワーク観測する目的で用いられるネットワークモニタやＬＡＮ（Local  Area  Network）アナライザにおける通信の計測方式は、パケットキャプチャによる計測方式とフロー統計情報を計測する計測方式とに大きく分けられる。
【０００３】
パケットキャプチャによる計測方式は、コンピュータネットワークを構成するコンピュータシステム間でやり取りされる情報の伝送単位であるパケットを複製し、それらの複製したパケットの内容を分析する技術である。
【０００４】
フロー統計情報を計測する計測方式は、コンピュータネットワークを構成するルータ等のネットワーク機器に、自身を通過する通信の量を計測する機能を搭載して、コンピュータネットワーク内を流れる情報の量を計測する技術である。ここで、フロー統計情報とは、ネットワーク機器を通過する通信の情報量等の統計的数値のことをいう。この統計的数値はカウンタとも呼ばれる。トラフィック統計情報の一例としてバイト数がある。
【０００５】
フロー統計情報の代表的な技術仕様として、sFlow（登録商標）（例えば、非特許文献１を参照）とnetFlow（例えば、非特許文献２を参照）が知られている。sFlowは、パケットサンプリングと通信回線インタフェースごとのカウンタを用いた、統計的推定に基づくトラフィック計測技術である。また、netFlowは、ルータやスイッチ等のネットワーク機器でフロー単位のパケット数やバイト数を計測する技術である。
【０００６】
フロー統計情報を計測する計測方式としては、他にも、セッションの上り及び下り両方向のフローのパケットを観測された時刻順に先頭から並べ、そのパケットサイズを配列として用いる方式（例えば、非特許文献３を参照）、あるセッションのパケット長の平均値、中央値、分散とパケット到着間隔の分散を計算する方式（例えば、非特許文献４を参照）、セッションあたりの総パケット数および総バイト数、特定のフラグが付いたパケット数、全パケットの平均および最大サイズと分散を計算する方式（例えば、非特許文献５を参照）等が知られている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Traffic  Monitoring  using  sFlow、[online]、[平成２９年５月２５日検索]、インターネット（http://www.sflow.org/sFlowOverview.pdf）
【非特許文献２】Omar  Santos,  “Network  Security  with  NetFlow  and  IPFIX”,  Cisco  Press,  September  2015
【非特許文献３】和泉  勇治、田中  和之、  「トラヒック解析に基づいたウェブアプリケーション識別」、  信学技報  IEICE  Technical  Report  CS2013-40(2013-09),  pp.61-66
【非特許文献４】北村  強、静野  隆之、岡部  稔哉、「フロー挙動分析に基づくアプリケーション識別手法」、信学技報  IEICE  Technical  Report  NS2005-136(2005-12),  pp.13-16
【非特許文献５】Liu  Yingqiu,  Li  Wei,  Li  Yunchun,  “Network  Traffic  Classification  Using  K-means  Clustering”,  Second  International  Multisymposium  on  Computer  and  Computational  Sciences,  pp.360-365
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の技術には、限られた処理資源を用いて効果的な通信の計測を行うことができない場合があるという問題がある。例えば、パケットキャプチャによる計測方式には大量の記憶資源及び計算資源が必要になる。このため、使用可能な処理資源が限られている場合は、パケットキャプチャによる計測方式することができないことがある。一方で、フロー統計情報を計測する計測方式では、効果的な通信の計測を行うことができない場合がある。
【０００９】
例えば、非特許文献１に記載のsFlowは、一定の率で間欠的にパケットをサンプリングするものであるため、パケット数が非常に少ないまたは非常に短い通信等、サンプリングされる確率が低いフローでは検出漏れや誤差が発生する場合があり、また、パケットを選ぶ方法やサンプル又はカウンタを収集する周期によっても計測精度に影響が出るため、効果的な通信の計測を行うことができない場合があるという問題点がある。
【００１０】
また、例えば、非特許文献２に記載のnetFlowは、ルータやスイッチ等のネットワーク機器でフロー単位のパケット数やバイト数を計測するものである。このため、既存のルータやスイッチに、本来のパケット交換等の本来の処理と計測に関する処理の両方を行わせるためには、余分な計算資源が必要になる場合がある。
【００１１】
また、非特許文献３から５に記載の技術は、キャプチャしたパケットのデータペイロードの中身は分析せずにパケット単位の長さや到着間隔、フラグ等ヘッダ情報のみを参照し計測を行うものであるが、計測可能な情報は限定的であり、付加的なフロー統計情報を生成するためには、パケットキャプチャによる計測を行う必要がある。
【課題を解決するための手段】
【００１２】
本発明の計算装置は、通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する取得部と、前記フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する分類部と、前記フロー統計情報に基づいて、前記分類部によって分類されたグループごとのトラフィックに関する統計情報を計算する計算部と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、限られた処理資源を用いて効果的な通信の計測を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１の実施形態に係る計算システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る計算装置の構成の一例を示す図である。
【図３】図３は、第１の実施形態に係る計算装置による計算方法を説明するための図である。
【図４】図４は、第１の実施形態に係るルータの処理の流れを示すフローチャートである。
【図５】図５は、第１の実施形態に係る計算装置の処理の流れを示すフローチャートである。
【図６】図６は、第１の実施形態に係る一次記憶部のデータ構成の一例を示す図である。
【図７】図７は、第１の実施形態に係る計算装置の処理の流れを示すフローチャートである。
【図８】図８は、第１の実施形態に係る計算装置の処理の流れを示すフローチャートである。
【図９】図９は、第１の実施形態に係る二次記憶部のデータ構成の一例を示す図である。
【図１０】図１０は、計算プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１５】
［第１の実施形態の構成］
以下に、本願に係る計算装置及び計算方法の実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。まず、図１を用いて、第１の実施形態に係る計算システムの構成について説明する。図１は、第１の実施形態に係る計算システムの構成の一例を示す図である。図１に示すように、計算システム１は、計算装置１０、クライアント２０、サーバ３０及びルータ４０を有する。
【００１６】
ここで、ルータ４０は、クライアント２０とサーバ３０との間で通信により発生するトラフィックに基づいて、フロー統計情報を生成する。フロー統計情報には、パケット数及びバイト数が含まれる。また、計算システム１においてフロー統計情報の生成の対象となる通信は、クライアント及びサーバによる通信に限られず、クライアント同士の通信であってもよいし、サーバ同士の通信であってもよいし、クライアント及びサーバ以外の機器による通信であってもよい。また、フロー統計情報を生成する機器は、ルータ４０に限られず、任意のネットワーク機器であってよい。
【００１７】
ここで、フロー統計情報とは、コンピュータシステムを識別する送信元、あて先、プロトコル及びポート等を基に、通信を行うコンピュータシステム同士が交換する情報をフローと呼ばれる単位に分割し、フローごとに通信量を計測、計算した統計情報ということができる。例えば、フローは、通信の送信元及びあて先という情報の流れる方向に関する属性を含むため、通常、送信（往き）と受信（帰り）の２種類のフローが存在することになる。本実施形態では、送信と受信の２種類のフローを合わせた単位をセッションとよぶ。また、以降の説明では、計算システム１において、クライアント２０からサーバ３０へ向かう方向を上り、サーバ３０からクライアント２０へ向かう方向を下りとよぶ。
【００１８】
また、本実施形態では、前述の通り、ネットワーク機器であるルータ４０がフロー統計情報の生成を行う。ルータ４０は、フロー統計情報を、コンピュータシステムが具備する通信回線インタフェース単位で生成してもよいし、さらに細かな通信の単位に分割して生成してもよい。
【００１９】
計算装置１０は、ルータ４０によって生成されたフロー統計情報を基に、セッションに関する統計的演算を行うことで、フロー統計情報のみでは得ることができない情報、例えば、パケット数及びバイト数以外の情報を得ることができる。
【００２０】
次に、図２を用いて、計算装置１０の構成について説明する。図２は、第１の実施形態に係る計算装置の構成の一例を示す図である。図２に示すように、計算装置１０は、通信部１１、記憶部１２及び制御部１３を有する。
【００２１】
通信部１１は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部１１はＮＩＣ（Network  Interface  Card）である。通信部１１は、例えばルータ４０との間でデータ通信を行う。
【００２２】
記憶部１２は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１２は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１２は、計算装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１２は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部１２は、一次記憶部１２１及び二次記憶部１２２を有する。
【００２３】
制御部１３は、計算装置１０全体を制御する。制御部１３は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１３は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１３は、取得部１３１、分類部１３２、計算部１３３及び保存部１３４を有する。
【００２４】
取得部１３１は、通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する。取得部１３１は、ルータ４０等のネットワーク機器で生成されたフロー統計情報を取得する。
【００２５】
また、分類部１３２は、フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する。分類部１３２は、例えば、取得部１３１が取得したフロー統計情報から、セッションを識別可能な情報を抽出し、当該抽出した情報に基づいて元となったトラフィックのセッションごとにフロー統計情報を分類する。セッションを識別可能な情報としては、フロー統計情報に含まれる送信元、送信先、及びフロー統計情報の生成時刻等がある。
【００２６】
例えば、分類部１３２は、第１のフロー統計情報に含まれる送信元及び送信先が、第２のフロー統計情報に含まれる送信先及び送信元のいずれかと同一であり、かつ、第１のフロー統計情報及び第２のフロー統計情報がいずれも所定の期間内に発生したトラフィックに基づくものである場合に、第１のフロー統計情報と第２のフロー統計情報とを同一のグループに分類する。
【００２７】
また、計算部１３３は、フロー統計情報に基づいて、分類部１３２によって分類されたグループごとのトラフィックに関する統計情報を計算する。例えば、取得部１３１がフロー統計情報としてパケット数及びバイト数を取得する場合、計算部１３３は、統計情報として、グループごとのパケットサイズの平均、パケットサイズの平均の最大値、パケットサイズの平均の最小値、及びパケットサイズの平均の標準偏差、バイト数の時間平均、及び、時刻ごとの送受信されたパケットの有無を表す情報を計算する。また、計算部１３３は、統計情報として、時刻ごとの送受信されたパケットの有無に基づく共起行列を計算することができる。
【００２８】
また、保存部１３４は、取得部が取得したフロー統計情報や、計算部１３３による計算結果等を、一次記憶部１２１又は二次記憶部１２２に保存する。以降の説明では、取得部１３１が取得したフロー統計情報を入力情報とよぶ。また、計算部１３３が計算した統計情報をセッション統計情報とよぶ。
【００２９】
ここで、図３を用いて、入力情報及びセッション統計情報の計算について具体的に説明する。図３は、第１の実施形態に係る計算装置による計算方法を説明するための図である。
【００３０】
取得部１３１は、入力情報として、セッションを一意に識別するセッション識別子INP_1、入力情報の生成時刻INP_2、上りパケット数INP_3、下りパケット数INP_4、上りバイト数INP_5、下りバイト数INP_6、セッションの確立後の経過時間INP_7を取得する。
【００３１】
セッション識別子INP_1は、通信を行うある一対のコンピュータシステム間で確立されたある１つのセッションを一意に識別できる値である。取得部１３１は、例えば、コンピュータシステムを識別するアドレス、プロトコル番号、ポート、時刻等に対しビット演算やハッシュ演算等を行うことでセッション識別子を生成することができる。
【００３２】
生成時刻INP_2は、取得部１３１によって取得された入力情報が生成された時刻である。上りパケット数INP_3は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、上り方向の累計パケット数（0上の整数値）である。また、下りパケット数INP_4は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、下り方向の累計パケット数（0以上の整数値）である。また、上りバイト数INP_5は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、上り方向の累計バイト数（0上の整数値）である。また、下りバイト数INP_6は、セッション識別子INP_1で識別されるセッションにおいて、セッションの開始時刻から生成時刻INP_2までの、下り方向の累計バイト数（0以上の整数値）である。また、経過時間INP_7は、セッションの開始時刻から生成時刻INP_2までの経過時間である。より精度の高い計算をするために、生成時刻INP_2及び経過時間INP_7は、マイクロ秒又はミリ秒単位まで含んでいることが望ましい。
【００３３】
ここで、取得部１３１は、セッション開始時刻から一定時間dTおきに生成された入力情報を取得する。例えば、図３に示すように、取得部１３１は、まず、時刻T1に生成された入力情報INP(T1)を取得し、次に、時刻T1から時間dTが経過した時刻T2に生成された入力情報INP(T2)を取得する。このように、取得部１３１は、セッション終了時刻である時刻Tnに生成された入力情報を取得するまで入力情報を順次取得する。ここで、生成時刻Tkにおける入力情報をINP(Tk)のように表す。INP(Tk)には、INP_1(Tk)、INP_2(Tk)、INP_3(Tk)、INP_4(Tk)、INP_5(Tk)、INP_6(Tk)、INP_7(Tk)が含まれる。また、入力情報が生成される時刻の間隔dTは一定であることが望ましいが、異なっていてもよい。
【００３４】
次に、計算部１３３は、セッション統計情報として、セッションごとの上り平均パケットサイズAVE_1及び下り平均パケットサイズAVE_2の２つの変数を計算する。計算部１３３は、INP(Tk)、及び時刻Tkの１つ前の時刻Tk-1における入力情報INP(Tk-1)に基づいて、時刻Tkにおける上り平均パケットサイズAVE_1(Tk)及び下り平均パケットサイズAVE_2(Tk)をそれぞれ（１）式及び（２）式のように計算する。
AVE_1(Tk)＝{INP_4(Tk)-INP_4(Tk-1)}÷{INP_3(Tk)−INP_3(Tk-1)}・・・（１）
AVE_2(Tk)＝{INP_6(Tk)-INP_6(Tk-1)}÷{INP_5(Tk)−INP_5(Tk-1)}・・・（２）
【００３５】
このように、計算部１３３は、時刻Tkと時刻Tk-1との間で、バイト数の差分をパケット数の差分で平均することによって平均パケットサイズを計算することができる。ここで、生成時刻Tkにおける平均パケットサイズをAVE(Tk)のように表す。AVE(Tk)には、AVE_1(Tk)、AVE_2(Tk)が含まれる。
【００３６】
各平均パケットサイズは、時刻Tkと時刻Tk-1の間で流れたパケットの１パケットあたりの平均バイト数である。なお、INP(Tk-1)が存在しない場合（例えばk=1、すなわちINP(Tk)がセッション開始後における最初に生成された入力情報である場合）、計算部１３３は、INP_3(Tk-1)、INP_3(Tk-1)、INP_3(Tk-1)、INP_3(Tk-1)を0として計算を行う。また、保存部１３４は、AVE_1(Tk+1)が計算されるまで、INP(Tk)を一次記憶部１２１に保存しておく。そして、保存部１３４は、AVE_1(Tk+1)が計算された後、INP(Tk)を破棄してもよい。
【００３７】
さらに、計算部１３３は、AVE(Tk)を用いて、上り最大平均パケットサイズAVE_MAX_1(Tk)、下り最大平均パケットサイズAVE_MAX_2(Tk)、上り最小平均パケットサイズAVE_MIN_1(Tk)、下り最小平均パケットサイズAVE_MIN_2(Tk)、上り平均パケットサイズの標準偏差AVE_SD_1(Tk)、及び下り平均パケットサイズの標準偏差AVE_SD_2(Tk)を（３）式から（８）式のように計算する。
AVE_MAX_1(Tk)={AVE_1(T1),AVE_1(T2),…,AVE_1(Tk)}の最大値・・・（３）
AVE_MAX_2(Tk)={AVE_2(T1),AVE_2(T2),…,AVE_2(Tk)}の最大値・・・（４）
AVE_MIN_1(Tk)={AVE_1(T1),AVE_1(T2),…,AVE_1(Tk)}の最小値・・・（５）
AVE_MIN_2(Tk)={AVE_2(T1),AVE_2(T2),…,AVE_2(Tk)}の最小値・・・（６）
AVE_SD_1(Tk)={AVE_1(T1),AVE_1(T2),…,AVE_1(Tk)}の標準偏差・・・（７）
AVE_SD_2(Tk)={AVE_2(T1),AVE_2(T2),…,AVE_2(Tk)}の標準偏差・・・（８）
【００３８】
また、計算部１３３は、セッションの開始から終了までの間に上り及び下りの各方向で流れたバイト数の時間平均、すなわち上り方向のフローレートFRATE_1及び下り方向のフローレートFRATE_2を、それぞれ（９）式及び（１０）式のように計算する。ここで、Tnはセッションが終了した時刻である。また、（９）式及び（１０）式に示すように、計算部１３３は、セッション終了時の入力情報、すなわちINP(Tn)のみからフローレートを計算することができる。
FRATE_1=INP_4(Tn)÷INP_7(Tn)・・・（９）
FRATE_2=INP_6(Tn)÷INP_7(Tn)・・・（１０）
【００３９】
計算部１３３は、パケット共起行列を計算する。ここで、共起行列とは、画素や単語等の画素間の相対関係や単語の出現パターンを表現する行列であり、一般的に画像認識や言語処理等で利用されてきた。本実施形態においては、計算部１３３は、以下のようにパケット共起行列を計算する。まず、計算部１３３は、あるセッションにおいて、時刻Tk-1と時刻Tkとの間にパケットが１つ以上流れたか否かを0又は1の二値で示す。なお、上り方向の当該二値をBOOL_1(Tk)、下り方向の当該二値をBOOL_2(Tk)と表す。
【００４０】
ここで、計算部１３３は、INP_3(Tk)、又はINP_5(Tk)が、それぞれINP_3(Tk-1)、又はINP_5(Tk-1)より大きい場合に、時刻Tk-1と時刻Tkとの間に上り方向にパケットが１つ以上流れたとみなし、当該二値の値を1とする。この計算方法は、以下の（１１）式及び（１２）式のように表すことができる。
BOOL_1(Tk)=
INP_3(Tk)-INP_3(Tk-1)>0ならば1,INP_3(Tk)-INP_3(Tk-1)=0ならば0・・・（１１）
BOOL_2(Tk)=
INP_5(Tk)-INP_5(Tk-1)>0ならば1,INP_5(Tk)-INP_5(Tk-1)=0ならば0・・・（１２）
【００４１】
また、当該二値は、パケットサイズの平均を用いて以下の（１３）式及び（１４）式のように計算することができる。
BOOL_1(Tk)’=AVE_1(Tk)>0ならば1,AVE_1(Tk)=0ならば0・・・（１３）
BOOL_2(Tk)’=AVE_2(Tk)>0ならば1,AVE_2(Tk)=0ならば0・・・（１４）
【００４２】
計算部１３３は、あるセッションについての入力情報を生成した時刻をセッションの開始直後（１番目）から終了（n番目）まで順番に{T1,...,Tn}とし、T1からTnまでのそれぞれについて二値を決定し、上りと下りそれぞれについて0と1で作られたn個の数字の数列を得ることができる。
【００４３】
計算部１３３が上りのパケットについて得る当該数列をBOOL_1、下りパケットについて得られる当該数列をBOOL_2とすれば、BOOL_1及びBOOL_2は、それぞれn個の数字の長さを持つ。例えば、BOOL_1={1,0,....,1}のようになる。BOOL_1及びBOOL_2は、あるセッションにおけるパケット送出有無のパターンを表現している。例えば、セッションの開始から終了まで連続してパケットを送出しているセッションの場合、BOOL_1及びBOOL_2は、連続する1の羅列{1,1,1,1,1,...,1}のようになる。また、入力情報の生成する時間周期を超えて間欠的にパケットを送出する場合には、BOOL_1及びBOOL_2は、1と0の繰り返し、例えば{1,0,1,0,1,...,0}や{1,0,0,1,0,0,...,1}のようになる場合もある。
【００４４】
また、セッションの開始直後のみ情報を送って短時間で終了する場合には数列の長さが短くなり、例えば{1,0}のような数列が生成される場合もありえる。このように、BOOL_1及びBOOL_2は、あるセッションにおけるパケット送出のパターンを表現しているが、BOOL_1及びBOOL_2の長さはセッションの継続時間に依存して可変長であり、その長さを予測することは困難である。
【００４５】
計算部１３３は、上記の手順で得られたBOOL_1及びBOOL_2から共起行列を生成する。BOOL_1及びBOOL_2は、一次元の0または1の並びであるため、数列の中のある連続した２つの数字のならびに着目した場合、その並び方の組み合わせは{00}、{01}、{10}、{11}の4通りしかない。計算部１３３は、BOOL_1及びBOOL_2の先頭から２つずつ数字の並びを取り出し、その組み合わせの出現する数を合計する。ここで、一例として、入力情報が１０回生成された場合、すなわちn=10の場合の計算部１３３による共起行列の生成方法について説明する。例えば、BOOL_1={1,1,1,1,1,1,1,1,1,1}の場合、計算部１３３は、共起行列MATRIX_1を{00}=0,{01}=0,{10}=0,{11}=9のように生成する。また、例えば、BOOL_2={1,0,1,0,1,0,1,0,1,0}の場合、計算部１３３は、共起行列MATRIX_2を{00}=0,{01}=4,{10}=5,{11}=0のように生成する。
【００４６】
さらに、セッションの時間が短い場合、例えばn=4の場合に、BOOL_1={1,0,1,1}の場合、計算部１３３は、共起行列MATRIX_1を{00}=0,{01}=1,{10}=1,{11}=1のように生成する。このように、計算部１３３は、あるセッションについて上り下りそれぞれの共起行列が計算することで、各々の共起行列は４変数を持つため、合計８変数を得ることができる。
【００４７】
［第１の実施形態の処理］
図４から９を用いて、計算システム１の処理の流れについて説明する。図４は、第１の実施形態に係るルータの処理の流れを示すフローチャートである。また、図５、７及び８は、第１の実施形態に係る計算装置の処理の流れを示すフローチャートである。また、図６は、第１の実施形態に係る一次記憶部のデータ構成の一例を示す図である。また、図９は、第１の実施形態に係る二次記憶部のデータ構成の一例を示す図である。
【００４８】
図４に示すように、ルータ４０は、一定時間が経過するまで待機し（ステップＳ１１、Ｎｏ）、一定時間が経過すると（ステップＳ１１、Ｙｅｓ）、入力情報を生成する（ステップＳ１２）。
【００４９】
図５に示すように、取得部１３１は、ネットワーク機器、すなわちルータ４０から時刻Tkの入力情報INP(Tk)を読み取る（ステップＳ２１）。分類部１３２は、取得部１３１によって取得された入力情報INP(Tk)が、新しいセッションのものであるか否かを判定する（ステップＳ２２）。
【００５０】
ここで、一次記憶部１２１に入力情報INP(Tk-1)が保存されていない場合、分類部１３２は、取得部１３１によって取得された入力情報INP(Tk)が、新しいセッションのものであると判定する（ステップＳ２２、Ｙｅｓ）。この場合、保存部１３４は、入力情報INP(Tk)を一次記憶部１２１に保存する（ステップＳ２３）。図６に示すように、一次記憶部１２１は入力情報を記憶する。図６は、保存部１３４が保存した入力情報INP(Tk)の、セッション識別子INP_1(Tk)が「xyz001」、生成時刻INP_2(Tk)が「20:40」、上りパケット数INP_3(Tk)が「10」、上りバイト数INP_4(Tk)が「80」、下りパケット数INP_5(Tk)が「400」、下りバイト数INP_6(Tk)が「10000」、経過時間INP_7(Tk)が「2」であったことを示している。また、この場合、保存部１３４は、一次記憶部１２１の統計情報を保存する。この場合の統計情報は、セッションの最初の統計情報であるため、保存部１３４は一次記憶部１２１の統計情報の各値を0とする。
【００５１】
一方、一次記憶部１２１に入力情報INP(Tk-1)が保存されている場合、分類部１３２は、取得部１３１によって取得された入力情報INP(Tk)が、新しいセッションのものでないと判定する（ステップＳ２２、Ｎｏ）。つまり、分類部１３２は、入力情報INP(Tk-1)及び入力情報INP(Tk)を同一のグループに分類する。この場合、保存部１３４は、入力情報INP(Tk)を一次記憶部１２１に保存する。また、取得部１３１は、一次記憶部１２１から時刻Tk-1の入力情報及び統計情報を読み取る（ステップＳ２４）。そして、計算部１３３は、各統計情報を計算する（ステップＳ２５）。
【００５２】
このように、取得部１３１は、一定時間間隔の時刻のそれぞれに対応するフロー統計情報を時間順に取得することができる。このとき、分類部１３２は、取得部１３１によってフロー統計情報が取得されるたびに、フロー統計情報を分類する。また、計算部１３３は、分類部１３２によって分類が行われるたびに、グループごとのトラフィックに関する統計情報を計算する。
【００５３】
図７に示すように、図５のステップＳ２５において、計算部１３３は、まず、時刻Tkの入力情報及び時刻Tk-1の入力情報を基に、時刻Tkの平均パケットサイズを計算する（ステップＳ２５１）。次に、計算部１３３は、時刻Tkの平均パケットサイズ及び時刻Tk-1の平均パケットサイズを基に、時刻Tkの平均パケットサイズの最大値、最小値、及び標準偏差を計算する（ステップＳ２５２）。次に、計算部１３３は、時刻Tkの入力情報及び時刻Tk-1の入力情報を基に、時刻Tkの共起行列を計算する（ステップＳ２５３）。そして、保存部１３４は、計算部１３３によって計算された各統計情報を一次記憶部１２１に保存する。
【００５４】
ここで、平均パケットサイズに関する計算を行う場合、計算部１３３は、セッションの開始から終了までの全ての入力情報等を用いることなく、時刻Tk-1及び時刻Tkの入力情報及び統計情報のみを用いることで、（１５）式から（１８）式のように計算を行うことができる。
AVE_MAX_1(Tk)={AVE_1(Tk-1),AVE_1(Tk)}の大きい方・・・（１５）
AVE_MAX_2(Tk)={AVE_2(Tk-1),AVE_2(Tk)}の大きい方・・・（１６）
AVE_MIN_1(Tk)={AVE_1(Tk-1),AVE_1(Tk)}の小さい方・・・（１７）
AVE_MIN_2(Tk)={AVE_2(Tk-1),AVE_2(Tk)}の小さい方・・・（１８）
【００５５】
これにより、ステップＳ２５４において、保存部１３４は、計算部１３３によって計算された時刻Tkにおける統計情報のみが一次記憶部１２１に記憶されるようにすればよい。つまり、保存部１３４は、時刻Tk-1における統計情報を削除し、時刻Tkにおける統計情報を保存してもよいし、時刻Tk-1における統計情報に時刻Tkにおける統計情報を上書きしてもよい。このように、１つ前の時刻の統計情報を破棄していくことで、一次記憶部１２１には１つの時刻の入力情報及び統計情報のみ記憶しておけばよく、記憶容量を削減することができる。
【００５６】
ここで、変数X={x1,x2,...,x(k),...,x(n-1),x(n)}があったとして、k番目における分散sig(k)、すなわち標準偏差の二乗は以下の（１９）式に示す漸化式で表される。計算部１３３は、（１９）式を用いて、AVE_SD_1(Tk-1)及びAVE_SD_2(Tk-1)を基にAVE_SD_1(Tk)及びAVE_SD_2(Tk)を計算することができる。ただし、u(k)は、k番目までのx(k)の平均である。
【００５７】
【数１】
2018207345.tif 000003
【００５８】
また、計算部１３３は、時刻Tk-1の入力情報及び統計情報を基に時刻Tkの共起行列を計算することができる。まず、計算部１３３は、（１３）式及び（１４）式により、AVE_1(Tk)及びAVE_2(Tk)を基に、BOOL_1(Tk)’及びBOOL_2(Tk)’を計算する。ここで、一次記憶部１２１に、BOOL_1(Tk-1)及びBOOL_2(Tk-1)が記憶されていれば、計算部１３３は、BOOL_1(Tk-1)とBOOL_1(Tk)’、又はBOOL_2(Tk-1)とBOOL_2(Tk)’を連結することで、{00},{01},{10},{11}のうちのどれか生成されるかを得ることができ、BOOL_1及びBOOL_2を計算することができる。
【００５９】
このように、計算部１３３は、分類部１３２によって分類が行われたグループの統計情報が既に計算済みである場合、当該計算済みの統計情報及び取得部１３１によって取得されたフロー統計情報に基づいて、グループごとのトラフィックに関する統計情報を計算する。
【００６０】
ここで、計算部１３３は、セッションが終了したか否かを判定する（ステップＳ２６）。セッションが終了したと判定した場合（ステップＳ２６、Ｙｅｓ）、計算部１３３は、セッション単位の統計情報を計算し（ステップＳ２７）、kにk+1を代入し（ステップＳ２８）、次の時刻の処理に進む。セッション単位の統計情報とは、例えばフローレートである。また、セッションが終了していないと判定した場合（ステップＳ２６、Ｎｏ）、計算部１３３は、kにk+1を代入し（ステップＳ２８）、次の時刻の処理に進む。
【００６１】
ここで、計算部１３３は、ルータ４０において、時刻Tk+1の入力情報が生成されているか否かによって、セッションが終了したか否かを判定することができる。つまり、INP(Tk+1)がINP_1(Tk)と同一のセッション識別子を持つ入力情報であれば、計算部１３３はセッションが終了していないと判定する。
【００６２】
さらに、計算部１３３は、パケットのヘッダ部分に含まれるフラグを参照することでセッションが終了したか否かを判定してもよい。例えば、計算部１３３は、ＴＣＰ（Transmission  Control  Protocol)のヘッダの中で送信終了を示すＦＩＮフラグがＯＮであるかＯＦＦであるかを参照し、ＦＩＮフラグがＯＮであればセッションが終了したと判定することができる。なお、この方法は、ＦＩＮフラグを入力情報に追加することによって実現することができる。
【００６３】
図８に示すように、図５のステップＳ２７において、計算部１３３は、まず、時刻Tkの入力情報を基に、セッションのフローレートを計算する（ステップＳ２７１）。そして、保存部１３４は、一次記憶部１２１の統計情報及びフローレートを二次記憶部１２２に保存し、一次記憶部１２１の入力情報及び統計情報を削除する（ステップＳ２７２）。
【００６４】
図９に示すように、二次記憶部１２２は入力情報及び統計情報を記憶する。図９は、二次記憶部１２２に保存済みの入力情報INP(Tk)の、セッション識別子INP_1(Tn)が「abc123」、生成時刻INP_2(Tn)が「20:29」、上りパケット数INP_3(Tn)が「20」、上りバイト数INP_4(Tn)が「120」、下りパケット数INP_5(Tn)が「650」、下りバイト数INP_6(Tn)が「30000」、経過時間INP_7(Tk)が「5」であることを示している。また、図９は、二次記憶部１２２に保存済みの統計情報の、上り平均パケットサイズAVE_1(Tn)が「30」、下り平均パケットサイズAVE_2(Tn)が「200」、上り平均パケットサイズの最大値AVE_MAX_1(Tn)が「60」、下り平均パケットサイズの最大値AVE_MAX_2(Tn)が「500」、上り平均パケットサイズの最小値AVE_MIN_1(Tn)が「2」、下り平均パケットサイズの最小値AVE_MIN_2(Tn)が「50」、上り平均パケットサイズの標準偏差AVE_SD_1(Tn)が「30」、下り平均パケットサイズの標準偏差AVE_SD_2(Tn)が「300」、上り共起行列MATRIX_1(Tn)が「0,0,0,9」、上り共起行列MATRIX_2(Tn)が「0,2,2,5」、上りフローレートFRATE_1(Tn)が「19」、下りフローレートFRATE_2(Tn)が「1300」であることを示している。また、例えば、保存部１３４は、セッション識別子INP_1(Tn)が「abc123」である行の下に、セッション識別子INP_1(Tn)が「xyz001」である行を作成し、入力情報及び統計情報を保存してもよい。
【００６５】
［実施例］
第１の実施形態に基づく実施例について説明する。本実施例では、ルータ４０は、NetFlowと呼ばれる方式を利用してフロー統計情報を収集する。なお、ルータ４０は、入力情報として必要な情報が収集可能である方式であれば、NetFlow以外の方式を用いてもよい。例えば、ルータ４０は、OpenFlow（参考文献１：OpenFlow  Switch  Specification（URL:https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.3.2.pdf））「Body  of  reply  to  OFPMP_FLOW  request」で規定される情報でも入力情報を生成可能である。
【００６６】
NetFlowはインターネットで標準的に利用されている、ルータやスイッチ等のネットワーク機器にフロー統計情報を生成する機能を搭載し、その情報を遠隔の情報収集器および分析器に送信するための仕組みの１つである。図１に示すように、ルータ４０（NetFlow-Enabled  Router）が自身を通過する通信のフロー統計情報を生成するネットワーク機器であり、計算装置１０（NetFlow  Collector）がフロー統計情報であるFlow  Recordを受け取り、収集、分析を行う機器である。
【００６７】
ここで、NetFlow  Version  5では、Flow  Record  Formatに以下の情報が定義されている。
1.srcaddr  Source  IP  address
2.dstaddr  Destination  IP  address
3.nexthop  IP  address  of  next  hop  router
4.input  SNMP  index  of  input  interface
5.output  SNMP  index  of  output  interface
6.dPkts  Packets  in  the  flow
7.dOctets  Total  number  of  Layer  3  bytes  in  the  packets  of  the  flow
8.First  SysUptime  at  start  of  flow
9.Last  SysUptime  at  the  time  the  last  packet  of  the  flow  was  received
10.srcport  TCP/UDP  source  port  number  or  equivalent
11.dstport  TCP/UDP  destination  port  number  or  equivalent
12.pad1  Unused  (zero)  bytes
13.tcp_flags  Cumulative  OR  of  TCP  flags
14.prot  IP  protocol  type  (for  example,  TCP  =  6;  UDP  =  17)
15.tos  IP  type  of  service  (ToS)
16.src_as  Autonomous  system  number  of  the  source,  either  origin  or  peer
17.dst_as  Autonomous  system  number  of  the  destination,  either  origin  or  peer
18.src_mask  Source  address  prefix  mask  bits
19.dst_mask  Destination  address  prefix  mask  bits
20.pad2  Unused  (zero)  bytes
【００６８】
計算装置１０の取得部１３１は、Flow  Record  Formatの情報を用いて、以下のように入力情報を生成することができる。取得部１３１は、Flow  Record  Formatの1、2、8、10、11、14を入力としてビット演算あるいはハッシュ計算をすることによりINP_1を生成することができる。また、取得部１３１は、ルータ４０がFlow  Recordを生成あるいは送信した時刻を参照しINP_2を生成してもよいし、計算装置１０は、Flow  Recordを受信した時刻をINP_2としてもよい。また、取得部１３１は、Flow  Record  Formatの6を参照しINP_3及びINP_5を生成する。また、取得部１３１は、Flow  Record  Formatの7を参照しINP_4及びINP_6を生成する。また、取得部１３１は、Flow  Record  Formatの9と8の時間差分を計算しINP_7を生成する。
【００６９】
ここで、INP_3とINP_5、及びINP_4とINP_6は、上りと下りで組になっている。NetFlowのFlow  Recordはどちらか一方向のフローに関する情報なので、取得部１３１は、対となるFlow  Recordを見つける必要があるが、上りと下りのFlow  Recordは、上記Flow  Record  Formatの1と2、10と11が反転した関係となっている。すなわち、取得部１３１は、送信元(source)と宛先(destination)が入れ替わっているフローの対を見つければよい。そして、取得部１３１は、対となる２つのFlow  Recordから１つのセッションに相当するINPを生成する。
【００７０】
ルータ４０は、ある時刻Tにおいて自身を通過しているフロー、すなわちセッション全てに関するFlow  Recordを生成して送信する。Flow  Recordの送信契機はルータ４０で設定可能であるため、一定の時間間隔、例えば10秒おきにFlow  Recordを送信することが可能である。また、計算装置１０は、Flow  Recordを受信し、実施形態の手順に従い計算を繰り返すことによりセッション統計情報を生成、更新する。
【００７１】
クライアント２０がサーバ３０に対して通信を開始すると、ルータ４０はその通信をFlow  Recordとして記録する。Flow  Recordは、上り方向と下り方向の２つが生成される。例えば、実施例では、計算システム１は以下の流れで処理を行う。
【００７２】
（セッション開始、継続時）
1.ルータ４０はFlow  Recordの送信契機で、Flow  Recordを生成して計算装置１０に送る。
2.計算装置１０は、Flow  Recordを受信し受信時刻を記録する。
3.計算装置１０は、実施形態の手順に従い入力情報を生成する。
4.計算装置１０は、実施形態の手順に従い統計情報を生成する。
5.計算装置１０は、次の時刻の入力情報を待つ。
6.ルータ４０はFlow  Recordの送信契機で、Flow  Recordを生成して計算装置１０に送る。
7.計算装置１０は、Flow  Recordを受信し受信時刻を記録する。
【００７３】
（セッション終了時）
8.クライアント２０又はサーバ３０が通信を終了する。
9.ルータ４０は通信の終了を検知し、Flow  Recordを計算装置１０に送信後、終了したFlow  Recordを削除する。
10.計算装置１０は、9.のFlow  Recordを受信し受信時刻を記録し、入力情報及び統計情報の生成を実施する。
11.計算装置１０は、次の時刻の入力情報を待つ。
12.ルータ４０はFlow  Recordが削除されているので、該当する通信のFlow  Recordに関しては何も送信しない（あるいは空のFlow  Recordを送信する）。
13.計算装置１０は、セッションが終了したと判断し、フローレートを計算する。
14.計算装置１０は、入力情報及び統計情報を二次記憶装置等に書き出し、INP_1で識別されるセッションに関する統計情報の計算を終了する。
【００７４】
［第１の実施形態の効果］
取得部１３１は、通信元及び通信先ごとに集約されたトラフィックに関する統計情報であるフロー統計情報を取得する。また、分類部１３２は、フロー統計情報を、基となったトラフィックのセッションが同一となるようにグループに分類する。また、計算部１３３は、フロー統計情報に基づいて、分類部１３２によって分類されたグループごとのトラフィックに関する統計情報を計算する。
【００７５】
このように、本実施形態の計算装置１０は、パケットキャプチャを用いずにコンピュータシステム間の通信を計測する。このため、本実施形態によれば、キャプチャデータを複製して保存する必要がなく、キャプチャデータを保存する二次記憶装置が必要ないという効果が得られる。
【００７６】
さらに、本実施形態では、パケットが複製されないため、ペイロードに含まれる通信の内容の秘密及びプライバシ保護に関する問題が発生しない。さらに、本実施形態によれば、通信の内容の秘密を保護するために利用される暗号化通信に対して、ペイロードの内容を判読することなく通信を計測することが可能である。
【００７７】
また、従来のフロー統計情報の計測では、計測できる統計情報がパケット数とバイト数の２種類に限られていた。これに対し、本実施形態の計算装置１０は、８種類の統計情報（パケット数、バイト数、平均パケットサイズ、平均パケットサイズの最大値、最小値、標準偏差、フローレート、共起行列）を計算により生成する。このため、仮に、１つの変数がとり得る値の数をMとすれば、従来の技術で得られていた情報量がM2であったのに対し、本実施形態ではM8の情報量を得ることができる。
【００７８】
さらに、本実施形態では、セッションが開始してから終了するまで全期間に渡って計算に必要な情報を保持する必要がない。つまり、本実施形態では、周期的に取得できるフロー統計情報の１周期分を一時的に記憶しておくだけでパケット数とバイト数以外の各統計情報を計算することができる。このように、本実施形態の計算装置１０によれば、限られた処理資源を用いて効果的な通信の計測を行うことができる。
【００７９】
分類部１３２は、第１のフロー統計情報に含まれる送信元及び送信先が、それぞれ第２のフロー統計情報に含まれる送信先及び送信元と同一であり、かつ、第１のフロー統計情報及び第２のフロー統計情報がいずれも所定の期間内に発生したトラフィックに基づくものである場合に、第１のフロー統計情報と第２のフロー統計情報とを同一のグループに分類することができる。このように、計算装置１０は、フロー統計情報をセッションごとのグループに分類する。これにより、本実施形態によれば、セッション単位での統計情報の計算が可能となる。
【００８０】
取得部１３１は、フロー統計情報として、少なくともパケット数及びバイト数を取得することができる。この場合、計算部１３３は、統計情報として、グループごとのパケットサイズの平均、パケットサイズの平均の最大値、パケットサイズの平均の最小値、及びパケットサイズの平均の標準偏差、バイト数の時間平均、及び、時刻ごとの送受信されたパケットの有無を表す情報を計算することができる。このように、計算装置１０は、パケット数及びバイト数から、６種類の統計情報を生成することができる。
【００８１】
取得部１３１は、一定時間間隔の時刻のそれぞれに対応するフロー統計情報を時間順に取得することができる。この場合、分類部１３２は、取得部１３１によってフロー統計情報が取得されるたびに、フロー統計情報を分類することができる。また、計算部１３３は、分類部１３２によって分類が行われるたびに、グループごとのトラフィックに関する統計情報を計算することができる。これにより、計算装置１０は、フロー統計情報が生成されるのに合わせて、逐次計算を進めていくことができる。
【００８２】
計算部１３３は、分類部１３２によって分類が行われたグループの統計情報が既に計算済みである場合、当該計算済みの統計情報及び取得部１３１によって取得されたフロー統計情報に基づいて、グループごとのトラフィックに関する統計情報を計算することができる。これにより、あるセッションのフロー統計情報を全て保持しておく必要がなくなるため、使用する記憶容量を削減することができる。
【００８３】
計算部１３３は、統計情報として、時刻ごとの送受信されたパケットの有無に基づく共起行列を計算することができる。これにより、連続するパケットの出現パターンを分析することが可能となる。
【００８４】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８５】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８６】
［プログラム］
一実施形態として、計算装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の統計情報の計算を実行する計算プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の計算プログラムを情報処理装置に実行させることにより、情報処理装置を計算装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００８７】
また、計算装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の統計情報の計算に関するサービスを提供する計算サーバ装置として実装することもできる。例えば、計算サーバ装置は、フロー統計情報を入力とし、セッション統計情報を出力とする計算サービスを提供するサーバ装置として実装される。この場合、計算サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の統計情報の計算に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００８８】
図１０は、計算プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００８９】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００９０】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、計算装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、計算装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００９１】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００９２】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００９３】
１  計算システム
１０  計算装置
１１  通信部
１２  記憶部
１３  制御部
２０  クライアント
３０  サーバ
４０  ルータ
１２１  一次記憶部
１２２  二次記憶部
１３１  取得部
１３２  分類部
１３３  計算部
１３４  保存部
【図１】
2018207345.tif 000004
【図２】
2018207345.tif 000005
【図３】
2018207345.tif 000006
【図４】
2018207345.tif 000007
【図５】
2018207345.tif 000008
【図６】
2018207345.tif 000009
【図７】
2018207345.tif 000010
【図８】
2018207345.tif 000011
【図９】
2018207345.tif 000012
【図１０】
2018207345.tif 000013