(57)【要約】【課題】大規模分散処理システムにおけるボトルネックを容易に特定すること。【解決手段】ログ抽出部は、大規模分散処理システム内で出力されたログのうち、プロセス間の通信を示すログを抽出する。ログ構造化部は、ログ抽出部によって抽出されたログに含まれる情報から、前記通信において処理要求が送受信された送信元プロセス及び送信先プロセスと、送信元プロセス及び送信先プロセスがそれぞれ実行される送信元サーバ及び送信先サーバと、処理要求の内容と、通信が発生した時刻とを示すログ情報を生成する。通信描画データ生成部及びプロセス描画データ生成部は、ログ構造化部によって生成されたログ情報に基づいて、送信元サーバの送信元プロセスから送信先サーバの送信先プロセスへの処理要求の送受信を、処理要求の内容及び時刻を示すように描画した描画データを生成する。描画制御部は、描画データをクライアント装置の表示部にて表示させる。【選択図】        図１
2013171541.tif 000002
【特許請求の範囲】
【請求項１】
大規模分散処理システム内で出力されたログのうち、プロセス間の通信を示すログを抽出する抽出部と、
前記抽出部によって抽出されたログに含まれる情報から、前記通信において処理要求が送受信された送信元プロセス及び送信先プロセスと、前記送信元プロセス及び前記送信先プロセスがそれぞれ実行される送信元サーバ及び送信先サーバと、前記処理要求の内容と、前記通信が発生した時刻とを示すログ情報を生成するログ情報生成部と、
前記ログ情報生成部によって生成されたログ情報に基づいて、前記送信元サーバの前記送信元プロセスから前記送信先サーバの前記送信先プロセスへの前記処理要求の送受信を、当該処理要求の内容及び前記時刻を示すように描画した描画データを生成する描画データ生成部と、
前記描画データ生成部によって生成された描画データを所定の表示部にて表示させる表示制御部と、
を備えたことを特徴とする可視化装置。
【請求項２】
前記抽出部は、前記プロセス間の通信を示すログとして、リクエスト受信を示すログ及びレスポンス返却を示すログを抽出することを特徴とする請求項１に記載の可視化装置。
【請求項３】
前記ログ情報生成部は、前記ログに前記送信元プロセス又は前記送信先プロセスが含まれていない場合に、前記大規模分散処理システムの設計情報又は実装情報から前記送信元プロセス又は前記送信先プロセスを取得することを特徴とする請求項１又は２に記載の可視化装置。
【請求項４】
前記ログ情報生成部は、前記プロセス間の通信においてデータの授受が生じている場合に、前記データのサイズを含めたログ情報を生成し、
前記描画データ生成部は、前記ログ情報生成部によって生成されたログ情報に前記データのサイズが含まれていた場合に、前記送信元サーバの前記送信元プロセスから前記送信先サーバの前記送信先プロセスへの前記処理要求の送受信を、当該処理要求の内容を示し、かつ、前記データのサイズを示すように描画した描画データを生成することを特徴とする請求項１〜３のいずれか一つに記載の可視化装置。
【請求項５】
前記描画データ生成部は、２次元座標において、一方の軸上の同一座標に同一サーバで実行されるプロセスを配置し、他方の軸上の同一座標に機能が同一であるプロセスを配置し、前記処理要求の送受信を前記２次元座標上のプロセス間の球の移動によって表現し、かつ、前記処理要求の内容を前記球の色によって表現した描画データを生成することを特徴とする請求項１〜４のいずれか一つに記載の可視化装置。
【請求項６】
前記描画データ生成部は、前記ログ情報生成部によって生成されたログ情報に前記データのサイズが含まれていた場合に、前記データのサイズを前記球の大きさによって表現した描画データを生成することを特徴とする請求項５に記載の可視化装置。
【請求項７】
大規模分散処理システム内のデータの移動を可視化する可視化装置によって実行される可視化方法であって、
前記大規模分散処理システム内で出力されたログのうち、プロセス間の通信を示すログを抽出する抽出工程と、
前記抽出工程によって抽出されたログに含まれる情報から、前記通信において処理要求が送受信された送信元プロセス及び送信先プロセスと、前記送信元プロセス及び送信先プロセスがそれぞれ実行される送信元サーバ及び送信先サーバと、前記処理要求の内容と、前記通信が発生した時刻とを示すログ情報を生成するログ情報生成工程と、
前記ログ情報生成工程によって生成されたログ情報に基づいて、前記送信元サーバの前記送信元プロセスから前記送信先サーバの前記送信先プロセスへの前記処理要求の送受信を、当該処理要求の内容及び前記時刻を示すように描画した描画データを生成する描画データ生成工程と、
前記描画データ生成工程によって生成された描画データを所定の表示部にて表示させる表示制御工程と、
を含んだことを特徴とする可視化方法。
【請求項８】
大規模分散処理システム内のデータの移動を可視化する可視化装置によって実行される可視化プログラムであって、
前記大規模分散処理システム内で出力されたログのうち、プロセス間の通信を示すログを抽出する抽出ステップと、
前記抽出ステップによって抽出されたログに含まれる情報から、前記通信において処理要求が送受信された送信元プロセス及び送信先プロセスと、前記送信元プロセス及び前記送信先プロセスがそれぞれ実行される送信元サーバ及び送信先サーバと、前記処理要求の内容と、前記通信が発生した時刻とを示すログ情報を生成するログ情報生成ステップと、
前記ログ情報生成ステップによって生成されたログ情報に基づいて、前記送信元サーバの前記送信元プロセスから前記送信先サーバの前記送信先プロセスへの前記処理要求の送受信を、当該処理要求の内容及び前記時刻を示すように描画した描画データを生成する描画データ生成ステップと、
前記描画データ生成ステップによって生成された描画データを所定の表示部にて表示させる表示制御ステップと、
を前記可視化装置に実行させることを特徴とする可視化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、可視化装置、可視化方法及び可視化プログラムに関する。
【背景技術】
【０００２】
従来、数百〜数千台のサーバ上で自律的に分散処理を実行する大規模分散処理システムが知られている。このような大規模分散処理システムでは、１つの処理が複数のプロセスの連携によって実現される。例えば、大規模分散システムでは、読み書きなどの処理が多数の異なる役割を担うプロセスの自律連携により実現される。
【０００３】
しかしながら、大規模分散処理システムは、上述した特徴を有するため、上位アプリケーションから見るとシステム内部がブラックボックス化してしまい、システムに問題が発生した際の解析が困難であるという問題があった。例えば、上位アプリケーション側でスループット（単位時間当たりの読み書き処理リクエスト数など）が低下した場合に、スループット低下の原因となる被疑箇所が多数存在するため、大規模分散処理システムの中で性能の低下を招いた箇所（ボトルネック）を特定することが困難である。
【０００４】
このような大規模分散処理システムにおけるボトルネックを特定するためには、システム全体の実行状態を俯瞰することが求められるが、一般にボトルネック特定に用いられる大規模分散処理システムのログはテキスト形式であり、かつ、その量が膨大であることから、テキストログの解析によりシステム全体の実行状態の俯瞰を行うことが困難である。
【０００５】
これに対して、大規模分散処理システムにおけるノード間のデータの授受を３次元空間上で表現し、処理の偏りなどを視覚化する技術や、ネットワークトラフィックを実時間で可視化することで、インターネットにおけるインシデント分析を行う技術が知られている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】川崎  紀宏、他２名、「大規模分散システムにおける並列プログラムの通信と処理状況を同時に表示する可視化ツールの検討」、信学技報 Vol.110, no. 448, NS2010-257, pp. 527-532
【非特許文献２】中尾  康二、他８名、「インシデント分析センタnicterの可視化技術」、情報処理学会研究報告 Vol.2006 No.81, 2006-CSCE-034, pp313-319
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、大規模分散処理システムにおけるボトルネックを容易に特定することができない場合があった。具体的には、上述した従来技術では、ノード間でのデータの移動を可視化したり、ネットワークにおけるパケットの移動を可視化しているに過ぎないため、処理ごとの区別ができない。すなわち、上述した従来技術では、ボトルネックを特定するための特定処理の集中や遅延などを確認することができず、大規模分散処理システムにおけるボトルネックを容易に特定することができない場合があった。また、上述した従来技術では、システムの内部動作の詳細な情報が取得できず、大規模分散処理システムにおけるボトルネックを容易に特定することができない場合があった。
【０００８】
そこで、本願に係る技術は、上述した従来技術の問題に鑑みてなされたものであって、大規模分散処理システムにおけるボトルネックを容易に特定することを可能にする可視化装置、可視化方法及び可視化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本願に係る可視化装置は、大規模分散処理システム内で出力されたログのうち、プロセス間の通信を示すログを抽出する抽出部と、前記抽出部によって抽出されたログに含まれる情報から、前記通信において処理要求が送受信された送信元プロセス及び送信先プロセスと、前記送信元プロセス及び送信先プロセスがそれぞれ実行される送信元サーバ及び送信先サーバと、前記処理要求の内容と、前記通信が発生した時刻とを示すログ情報を生成するログ情報生成部と、前記ログ情報生成部によって生成されたログ情報に基づいて、前記送信元サーバの前記送信元プロセスから前記送信先サーバの前記送信先プロセスへの前記処理要求の送受信を、当該処理要求の内容及び前記時刻を示すように描画した描画データを生成する描画データ生成部と、前記描画データ生成部によって生成された描画データを所定の表示部にて表示させる表示制御部とを備えたことを特徴とする。
【発明の効果】
【００１０】
本願に係る可視化装置は、大規模分散処理システムにおけるボトルネックを容易に特定することを可能にする。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る可視化装置の構成の一例を示す図である。
【図２】図２は、実施例１に係るキーワードテーブルによって記憶されるキーワードの一例を示す図である。
【図３】図３は、実施例１に係るホスト名対応テーブルによって記憶される対応情報の一例を示す図である。
【図４Ａ】図４Ａは、実施例１に係る設計情報テーブルによって記憶される情報の一例を示す図である。
【図４Ｂ】図４Ｂは、実施例１に係る設計情報テーブルによって記憶される情報の生成に用いられるシーケンス図の一例を示す図である。
【図５】図５は、実施例１に係るログテーブルによって記憶されるログ情報の一例を示す図である。
【図６】図６は、実施例１に係る座標対応テーブルによって記憶される座標対応情報の一例を示す図である。
【図７】図７は、実施例１に係る色対応テーブルによって記憶された色対応情報の一例を示す図である。
【図８】図８は、実施例１に係るサイズ対応テーブルによって記憶されるサイズ対応情報の一例を示す図である。
【図９】図９は、実施例１に係るログ抽出部によって抽出されるログの一例を示す図である。
【図１０】図１０は、実施例１に係るログ構造化部の処理の一例を模式的に示した図である。
【図１１】図１１は、実施例１に係る通信描画データ生成部によって生成される通信描画データの一例を示す図である。
【図１２】図１２は、実施例１に係るプロセス描画データ生成部によって生成されるプロセス描画データの一例を示す図である。
【図１３】図１３は、実施例１に係る描画制御部による制御のもと表示されるプロセス描画データを画像化した描画像の一例を示す図である。
【図１４】図１４は、実施例１に係る描画制御部による制御のもと表示される通信描画データを画像化した描画像の一例を示す図である。
【図１５】図１５は、実施例１に係る描画制御部によって制御される描画像の表示例を説明するための図である。
【図１６】図１６は、実施例１に係る可視化装置による処理の手順を示すフローチャートである。
【図１７】図１７は、実施例１に係る描画制御部による描画処理の手順を示すフローチャートである。
【図１８】図１８は、変形例を説明するためのフローチャートである。
【図１９】図１９は、実施例２に係る可視化プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本願に係る可視化装置、可視化方法及び可視化プログラムの実施例を詳細に説明する。なお、本願に係る可視化装置、可視化方法及び可視化プログラムは、以下の実施例により限定されるものではない。
【実施例１】
【００１３】
［実施例１に係る可視化装置の構成］
まず、実施例に係る可視化装置の構成について説明する。図１は、実施例１に係る可視化装置１００の構成の一例を示す図である。図１に示すように、可視化装置１００は、ネットワーク４００を介して、大規模分散処理システム２００及びクライアント装置３００と接続される。なお、図１においては、クライアント装置３００が１台のみ示されているが、実際には、多数のクライアント装置３００がネットワーク４００を介して可視化装置１００に接続される。
【００１４】
ネットワーク４００は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）などである。大規模分散処理システム２００は、多数のサーバを有し、各サーバ上で自律的に分散処理を実行するシステムである。具体的には、大規模分散処理システム２００は、ユーザに対して種々のサービスを提供するアプリケーションに係る各処理を多数のサーバで分散して処理するシステムである。
【００１５】
クライアント装置３００は、図１に示すように、通信制御Ｉ／Ｆ部３１０と、入力部３２０と、表示部３３０と、制御部３４０とを有する。通信制御Ｉ／Ｆ部３１０は、可視化装置１００及び大規模分散処理システム２００と、制御部３４０との間でやり取りする各種情報に関する通信を制御する。例えば、通信制御Ｉ／Ｆ部３１０は、可視化装置１００に対するリクエストの送信に係る通信を制御する。
【００１６】
入力部３２０は、例えば、キーボードやマウスなどであり、クライアントによる種々の情報の入力処理を受付ける。一例を挙げると、入力部３２０は、クライアントによるリクエストの入力操作を受け付ける。なお、リクエストの詳細については、後述する。表示部３３０は、例えば、ディスプレイなどであり、ユーザに対して処理結果を表示出力する。一例を挙げると、表示部３３０は、可視化装置１００によって生成された描画データを表示出力する。なお、表示部３３０によって表示される描画データについては、後に詳述する。
【００１７】
制御部３４０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路やＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路であり、クライアント装置３００の全体制御を実行する。なお、図示していないが、クライアント装置３００においては、ハードディスク、光ディスクなどの記憶装置、または、ＲＡＭ（Random Access Memory）、フラッシュメモリ（Flash Memory）などの半導体メモリ素子などを有し、クライアント装置３００によって実行される各種プログラムや、各種情報などを記憶する。
【００１８】
可視化装置１００は、図１に示すように、通信制御Ｉ／Ｆ部１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有する。そして、可視化装置１００は、クライアント装置３００からのリクエストに応じて、大規模分散処理システム２００において発生した処理を可視化した描画データをクライアント装置３００に送信する。
【００１９】
通信制御Ｉ／Ｆ部１１０は、大規模分散処理システム２００及びクライアント装置３００と、制御部１５０との間でやり取りする各種情報に関する通信を制御する。例えば、通信制御Ｉ／Ｆ部１１０は、大規模分散処理システム２００に対するプロセスのログの取得に係る通信を制御する。また、例えば、通信制御Ｉ／Ｆ部１１０は、クライアント装置３００との間でやり取りする描画データのリクエスト及び描画の送受信に係る通信を制御する。また、通信制御Ｉ／Ｆ部１１０は、入力部１２０及び表示部１３０と、制御部１５０との間での各種情報のやり取りを制御する。
【００２０】
入力部１２０は、例えば、キーボードやマウスなどであり、ユーザによる種々の情報の入力処理を受付ける。一例を挙げると、入力部１２０は、後述する記憶部１４０によって記憶される座標対応情報や、色対応情報、サイズ対応情報などの入力処理などを受付ける。なお、座標対応情報、色対応情報、サイズ対応情報については後述する。表示部１３０は、例えば、ディスプレイなどであり、ユーザに対して処理結果を表示出力する。
【００２１】
記憶部１４０は、図１に示すように、キーワードテーブル１４１と、ホスト名対応テーブル１４２と、設計情報テーブル１４３と、ログテーブル１４４と、座標対応テーブル１４５と、色対応テーブル１４６と、サイズ対応テーブル１４７とを有する。記憶部１４０は、例えば、ハードディスク、光ディスクなどの記憶装置、または、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子であり、可視化装置１００によって実行される各種プログラムなどを記憶する。
【００２２】
キーワードテーブル１４１は、後述する制御部１５０による大規模分散処理システム２００からのログの抽出に用いられるキーワードを記憶する。具体的には、キーワードテーブル１４１は、大規模分散処理システム２００に含まれる各サーバのプロセスから出力されたログの中から、リクエスト受信及びレスポンス返却を示すログを収集するためのキーワードを記憶する。図２は、実施例１に係るキーワードテーブル１４１によって記憶されるキーワードの一例を示す図である。
【００２３】
例えば、キーワードテーブル１４１は、図２に示すように、キーワードとして「Ｒｅｃｅｉｖｅ  ｒｅｑｕｅｓｔ」及び「Ｓｅｎｄ  ｒｅｓｐｏｎｓｅ」を記憶する。ここで、図２に示す「Ｒｅｃｅｉｖｅ  ｒｅｑｕｅｓｔ」は、リクエスト受信のログを抽出するためのキーワードであり、「Ｓｅｎｄ  ｒｅｓｐｏｎｓｅ」は、レスポンス返却のログを抽出するためのキーワードである。なお、キーワードは、可視化装置１００の管理者によって任意に決定され、予め格納される。
【００２４】
図１に戻って、ホスト名対応テーブル１４２は、後述する制御部１５０によるログテーブルを生成するための情報を記憶する。具体的には、ホスト名対応テーブル１４２は、大規模分散処理システム２００に含まれる各サーバにおけるホスト名とＩＰアドレスとの対応を示す対応情報を記憶する。なお、ログテーブルについては、後に詳述する。図３は、実施例１に係るホスト名対応テーブル１４２によって記憶される対応情報の一例を示す図である。
【００２５】
例えば、ホスト名対応テーブル１４２は、図３に示すように、「ｈｏｓｔ」と「ｉｐ」とを対応付けた対応情報を記憶する。ここで、図３に示す「ｈｏｓｔ」とは、大規模分散処理システム２００に含まれるサーバのホスト名を示し、「ｉｐ」とは、当該サーバのＩＰアドレスを示す。例えば、ホスト名対応テーブル１４２は、図３に示すように、「ｈｏｓｔ：ｈｏｓｔＡ」に「ｉｐ：１９２．１６８．１１６．１２」を対応付けた対応情報を記憶する。すなわち、上述した情報は、「ｈｏｓｔＡ」のサーバのＩＰアドレスが「１９２．１６８．１１６．１２」であることを示す。同様に、ホスト名対応テーブル１４２は、大規模分散処理システム２００に含まれる全てのサーバについて、ホスト名とＩＰアドレスとを対応付けた対応情報を記憶する。なお、対応情報は、可視化装置１００の管理者によって予め格納される。
【００２６】
図１に戻って、設計情報テーブル１４３は、後述する制御部１５０によるログテーブルを生成するための情報を記憶する。具体的には、設計情報テーブル１４３は、大規模分散処理システム２００が運用される段階で決定された設計・実装情報に基づいて生成されたプロセス間の通信の情報を記憶する。ここで、設計・実装情報とは、大規模分散処理システム２００に含まれる各プロセスが送受信する通信種別（内部プロトコル）や、設計書内のシーケンス図、プログラムにおいてログの出力を規定する箇所などである。
【００２７】
図４Ａは、実施例１に係る設計情報テーブル１４３によって記憶される情報の一例を示す図である。例えば、設計情報テーブル１４３は、図４Ａに示すように、「ｒｅｑｕｅｓｔ」に「ｐｒｏｃｅｓｓ  Ｆｒｏｍ」と「ｐｒｏｃｅｓｓ  Ｔｏ」とを対応付けた情報を記憶する。ここで、図４Ａに示す「Ｒｅｑｕｅｓｔ」とは、あるプロセスから他のプロセスに対するリクエストを示す。また、図４Ａに示す「ｐｒｏｃｅｓｓ  Ｆｒｏｍ」とは、リクエストを送信するプロセスを示し、「ｐｒｏｃｅｓｓ  Ｔｏ」とは、リクエストを受信するプロセスを示す。一例を挙げると、設計情報テーブル１４３は、図４Ａに示すように、「ｒｅｑｕｅｓｔ：ｃｏｍｍａｎｄ＝ＯＰＥＮ」に「ｐｒｏｃｅｓｓ  Ｆｒｏｍ：ｐｒｏｃｅｓｓＢ、ｐｒｏｃｅｓｓ  Ｔｏ：ｐｒｏｃｅｓｓＡ」を対応付けた情報を記憶する。
【００２８】
ここで、上述した情報は、「ｃｏｍｍａｎｄ＝ＯＰＥＮ」の「ｒｅｑｕｅｓｔ」は、「ｐｒｏｃｅｓｓＢ」から「ｐｒｏｃｅｓｓＡ」に対して送信されるものであることを示す。なお、「ｃｏｍｍａｎｄ＝ＯＰＥＮ」とは、例えば、書き込みの際に書き込み対象となるファイルを開く処理を意味する。同様に、設計情報テーブル１４３は、その他のリクエストにプロセスを対応付けた情報を記憶する。なお、設計情報テーブル１４３によって記憶される情報は、可視化装置１００の管理者によって予め格納される。
【００２９】
ここで、設計情報テーブル１４３によって記憶される情報の生成の一例について説明する。設計情報テーブル１４３によって記憶される情報は、上述したように、大規模分散処理システム２００に含まれる各プロセスが送受信する通信種別（内部プロトコル）や、設計書内のシーケンス図、プログラムにおいてログの出力を規定する箇所などに基づいて、管理者によって生成される。図４Ｂは、実施例１に係る設計情報テーブルによって記憶される情報の生成に用いられるシーケンス図の一例を示す図である。
【００３０】
例えば、設計書内には、図４Ｂに示すようなプロセス間で送受信されるリクエストの流れを示すシーケンス図が含まれる。管理者は、図４Ｂに示すようなシーケンス図を参照することで、リクエスト（ｃｏｍｍａｎｄ＝ＯＰＥＮ）がｐｒｏｃｅｓｓＢからｐｒｏｃｅｓｓＡに送信されるという情報を取得する。そして、管理者は、この情報から図４Ａに示すような情報を生成して、設計情報テーブル１４３に格納する。
【００３１】
図１に戻って、ログテーブル１４４は、後述する制御部１５０によって生成されたログ情報を記憶する。具体的には、ログテーブル１４４は、大規模分散処理システム２００に含まれる各サーバのプロセスによって出力されたリクエスト受信及びレスポンス返却に関するログ情報を記憶する。図５は、実施例１に係るログテーブル１４４によって記憶されるログ情報の一例を示す図である。
【００３２】
例えば、ログテーブル１４４は、図５に示すように、「Ｆｒｏｍ（送信側情報）」の「ｔｉｍｅ」、「ｉｐ」、「ｐｒｏｃｅｓｓ」と、「Ｔｏ（受信側情報）」の「ｔｉｍｅ」、「ｉｐ」、「ｐｒｏｃｅｓｓ」と、「ｃｏｍｍａｎｄ」と、「ｓｉｚｅ」などとを対応付けたログ情報を記憶する。ここで、「Ｆｒｏｍ（送信側情報）」の「ｔｉｍｅ」、「ｉｐ」、「ｐｒｏｃｅｓｓ」は、リクエストを送信したサーバ、プロセス及び送信時刻を示す。また、「Ｔｏ（受信側情報）」の「ｔｉｍｅ」、「ｉｐ」、「ｐｒｏｃｅｓｓ」は、リクエストを受信したサーバ、プロセス及び受信時刻を示す。また、図５に示す「ｃｏｍｍａｎｄ」とは、送信されたリクエストに含まれるコマンドを意味する。また、図５に示す「ｓｉｚｅ」とは、データが授受されるリクエストの場合のデータのサイズを意味する。
【００３３】
一例を挙げると、ログテーブル１４４は、図５に示すように、「Ｆｒｏｍ（送信側情報）」の「ｉｐ：１９２．１６８．１１６．１０、ｐｒｏｃｅｓｓ：ｐｒｏｃｅｓｓＢ」と、「Ｔｏ（受信側情報）」の「ｔｉｍｅ：２０１１−０９−１１  １１：３６：４６．０８０、ｉｐ：１９２．１６８．１１６．１２、ｐｒｏｃｅｓｓ：ｐｒｏｃｅｓｓＡ」と、「ｃｏｍｍａｎｄ：ＯＰＥＮ」とを対応付けたログ情報を記憶する。すなわち、上述した情報は、ＩＰアドレスが「１９２．１６８．１１６．１０」のサーバの「ｐｒｏｃｅｓｓＢ」によって送信された「ｃｏｍｍａｎｄ＝ＯＰＥＮ」のリクエストを、ＩＰアドレスが「１９２．１６８．１１６．１２」のサーバの「ｐｒｏｃｅｓｓＡ」が、時刻「２０１１−０９−１１  １１：３６：４６．０８０」に受信したことを意味する。ログテーブル１４４は、後述する制御部１５０によって生成されたその他のログ情報についても同様に記憶する。
【００３４】
図１に戻って、座標対応テーブル１４５は、後述する制御部１５０による描画データの生成の際に用いられる座標情報を記憶する。具体的には、座標対応テーブル１４５は、大規模分散処理システム２００に含まれる各プロセスを描画データに描画する際の各プロセスの２次元座標上における位置を示す座標を記憶する。より具体的には、座標対応テーブル１４５は、同一サーバ上の異なるプロセスをｘ座標が等しい位置に配置させ、異なるサーバ上の同一役割のプロセスをｙ座標が等しい位置に配置させるように決定された座標対応情報を記憶する。図６は、実施例１に係る座標対応テーブル１４５によって記憶される座標対応情報の一例を示す図である。
【００３５】
例えば、座標対応テーブル１４５は、図６に示すように、「ｓｅｒｖｅｒ」と、「ｐｒｏｃｅｓｓ」と、「ｃｏｏｒｄｉｎａｔｅｓ」とを対応付けた座標対応情報を記憶する。ここで、一例を挙げると、座標対応テーブル１４５は、図６に示すように、「ｓｅｒｖｅｒ：１９２．１６８．１１６．１０」と、「ｐｒｏｃｅｓｓ：ｐｒｏｃｅｓｓＡ」と、「ｃｏｏｒｄｉｎａｔｅｓ：（１０，１０）」とを対応付けた座標対応情報を記憶する。すなわち、上述した情報は、描画データを生成する際に、ＩＰアドレスが「１９２．１６８．１１６．１０」のサーバの「ｐｒｏｃｅｓｓＡ」を座標「（１０，１０）」に描画することを意味する。座標対応テーブル１４５は、その他の座標対応情報についても同様に記憶する。なお、座標対応情報は、可視化装置１００の管理者によって任意に決定され、予め格納される。
【００３６】
図１に戻って、色対応テーブル１４６は、プロセス間で送受信される通信（リクエストの受信、レスポンスの返却）を表現した通信描画を描画データに描画する際の色を決定するための色対応情報を記憶する。具体的には、色対応テーブル１４６は、処理ごとに割当てられた色の情報を記憶する。図７は、実施例１に係る色対応テーブル１４６によって記憶された色対応情報の一例を示す図である。
【００３７】
例えば、色対応テーブル１４６は、図７に示すように、「ｃｏｍｍａｎｄ」と「ｃｏｌｏｒ」とを対応付けた色対応情報を記憶する。一例を挙げると、色対応テーブル１４６は、図７に示すように、「ｃｏｍｍａｎｄ：ＯＰＥＮ」と「ｃｏｌｏｒ：＃ＦＦＡＥ３５」とを対応付けた色対応情報を記憶する。すなわち、上述した情報は、「ｃｏｍｍａｎｄ：ＯＰＥＮ」を描画データに描画する際には、「＃ＦＦＡＥ３５」の色で表現することを意味する。色対応テーブル１４６は、その他の処理についても同様に記憶する。なお、色対応情報は、可視化装置１００の管理者によって任意に決定され、格納される。
【００３８】
図１に戻って、サイズ対応テーブル１４７は、プロセス間で送受信される通信（リクエストの受信、レスポンスの返却）を表現した通信描画を描画データに描画する際の大きさを決定するためのサイズ対応情報を記憶する。具体的には、サイズ対応テーブル１４７は、リクエストにデータの授受が含まれていた際のデータのサイズごとに、通信描画の大きさを対応付けたサイズ対応情報を記憶する。
【００３９】
図８は、実施例１に係るサイズ対応テーブル１４７によって記憶されるサイズ対応情報の一例を示す図である。例えば、サイズ対応テーブル１４７は、図８に示すように、「ｄａｔａ  ｓｉｚｅ」と「ｐｉｘｅｌ」とを対応付けたサイズ対応情報を記憶する。一例を挙げると、サイズ対応テーブル１４７は、図８に示すように、「ｄａｔａ  ｓｉｚｅ：１Ｋ＞Ｓ」と「ｐｉｘｅｌ：４」とを対応付けたサイズ対応情報を記憶する。すなわち、上述した情報は、リクエストにデータの授受が含まれていた際のデータのサイズ（図中のＳ）が「１Ｋ」未満である場合に、通信描画を「４ピクセル」で表現することを意味する。同様に、サイズ対応テーブル１４７は、データのサイズにピクセルを対応付けたサイズ対応情報を記憶する。なお、サイズ対応情報は、可視化装置１００の管理者によって任意に決定され、予め格納される。
【００４０】
図１に戻って、制御部１５０は、ログ抽出部１５１と、ログ構造化部１５２と、通信描画データ生成部１５３と、プロセス描画データ生成部１５４と、描画制御部１５５とを有する。制御部１５０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路やＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路であり、可視化装置１００の全体制御を実行する。
【００４１】
ログ抽出部１５１は、大規模分散処理システム２００内で出力されたログのうち、プロセス間の通信を示すログを抽出する。具体的には、ログ抽出部１５１は、リクエスト受信及びレスポンス返却を示すログを抽出する。より具体的には、ログ抽出部１５１は、大規模分散処理システム２００に含まれる全てのサーバの全てのプロセスを対象として、キーワードテーブル１４１によって記憶されたキーワードに基づいて、リクエスト受信及びレスポンス返却を示す全てのログを取得する。
【００４２】
図９は、実施例１に係るログ抽出部１５１によって抽出されるログの一例を示す図である。例えば、ログ抽出部１５１は、キーワードテーブル１４１によって記憶されたキーワード「ｒｅｃｅｉｖｅ  ｒｅｑｕｅｓｔ」及び「ｓｅｎｄ  ｒｅｓｐｏｎｓｅ」を読み出し、大規模分散処理システム２００から取得した全てのログに対して、読み出したキーワードを用いたキーワード検索を実行することで、図９に示すようなログを抽出する。すなわち、ログ抽出部１５１は、図９に示すように、「Ｒｅｃｅｉｖｅ  ｒｅｑｕｅｓｔ」が含まれるリクエスト受信を示すログや、「Ｓｅｎｄ  ｒｅｓｐｏｎｓｅ」が含まれるレスポンス返却を示すログを抽出する。
【００４３】
図１に戻って、ログ構造化部１５２は、ログ抽出部１５１によって抽出されたログに含まれる情報から、プロセス間の通信において処理要求が送受信された送信元プロセス及び送信先プロセスと、送信元プロセス及び送信先プロセスがそれぞれ実行される送信元サーバ及び送信先サーバと、処理要求の内容と、通信が発生した時刻とを示すログ情報を生成する。具体的には、ログ構造化部１５２は、ログ抽出部１５１によって抽出されたリクエスト受信及びレスポンス返却のログに含まれる情報からログ情報を生成してログテーブル１４４に格納する。
【００４４】
図１０は、実施例１に係るログ構造化部１５２の処理の一例を模式的に示した図である。ここで、図１０においては、リクエスト受信のログ「２０１１−０９−１１  １１：３６：４６．０８０  ＤＥＢＵＧ  ｐｒｏｃｅｓｓＡ：０４０２０５００３００３００４  ＭＳＧ＿ＤＢＧ＿０００  ｈｏｓｔＡ  １１３３６  Ｒｅｃｅｉｖｅ  ｒｅｒｕｅｓｔ（ＴＩＤ＝１４６６５３３９，Ｃｏｍｍａｎｄ＝ＯＰＥＮ，Ｐａｒａｍ＝［０］［０］，Ｆｒｏｍ＝１９２．１６８．１１６．１０）」からログ情報を生成する場合について示す。
【００４５】
例えば、ログ構造化部１５２は、図１０に示すように、ログ情報の生成の対象となるログがリクエスト受信を示すログであることから、ログテーブルの「Ｔｏ（受信側情報）」の「ｔｉｍｅ」に、ログに含まれる時刻「２０１１−０９−１１  １１：３６：４６．０８０」を格納する。なお、ログ情報の生成の対象となるログがレスポンス返却を示すログであった場合には、ログ構造化部１５２は、ログに含まれる時刻情報をログテーブルの「Ｆｒｏｍ（送信側情報）」に格納する。
【００４６】
そして、ログ構造化部１５２は、図１０に示すように、ログを出力した、すなわち、リクエストを受信したプロセスである「ｐｒｏｃｅｓｓＡ」と、処理内容である「ｃｏｍｍａｎｄ＝ＯＰＥＮ」をログから抽出して、ログテーブルにそれぞれ格納する。ここで、図１０に示すリクエスト受信を示すログにおいては、「ｐｒｏｃｅｓｓＡ」が実行されるサーバの情報がホスト名「ｈｏｓｔＡ」で記述されていることから、ログ構造化部１５２は、ホスト名対応テーブル１４２に記憶されている対応情報を参照して、「ｈｏｓｔＡ」のＩＰアドレス「１９２．１６８．１１６．１２」を取得する。そして、ログ構造化部１５２は、取得したＩＰアドレス「１９２．１６８．１１６．１２」をログテーブルに格納する。
【００４７】
さらに、ログ構造化部１５２は、図１０に示すように、リクエストの送信元のサーバの情報「Ｆｒｏｍ＝１９２．１６８．１１６．１０」をログが抽出して、「Ｆｒｏｍ（送信側情報）」の「ｉｐ」に格納する。ここで、図１０に示すリクエスト受信のログにおいては、送信元プロセス名が記述されていないため、ログ構造化部１５２は、設計情報テーブル１４３によって記憶された情報を参照して、「Ｆｒｏｍ（送信側情報）」の「ｐｒｏｃｅｓｓ」を格納する。すなわち、ログ構造化部１５２は、図４に示す情報を参照して、「ｐｒｏｃｅｓｓＡ」に対して「ｃｏｍｍａｎｄ＝ＯＰＥＮ」を送信するプロセスが「ｐｒｏｃｅｓｓＢ」であることを判定して、「ｐｒｏｃｅｓｓＢ」をログテーブルに格納する。
【００４８】
このように、ログ構造化部１５２は、ログに送信元又は送信先のプロセスの情報が含まれていない場合に、設計情報又は実装情報に基づいて生成された情報から送信元又は送信先のプロセスを決定する。なお、ここで、送信元又は送信先のプロセスを１つに特定できない場合には、ログ構造化部１５２は、そのログをログ情報生成の対象から除外する。上述したように、ログ構造化部１５２は、ログ抽出部１５１によって抽出された全てのログ（リクエスト受信のログ及びレスポンス返却のログ）からログ情報を生成して、ログテーブル１４４に格納する。
【００４９】
図１に戻って、通信描画データ生成部１５３は、ログ構造化部１５２によって生成されたログ情報に基づいて、送信元サーバの送信元プロセスから送信先サーバの送信先プロセスへの処理要求の送受信を、当該処理要求の内容及び時刻を示すように描画した描画データを生成する。具体的には、通信描画データ生成部１５３は、一方の軸上の同一座標に同一サーバで実行されるプロセスが配置され、他方の軸上の同一座標に機能が同一であるプロセスが配置された２次元座標において、処理要求の送受信を２次元座標上のプロセス間の球の移動によって表現し、かつ、処理要求の内容を球の色によって表現した通信描画データを生成する。さらに、通信描画データ生成部１５３は、ログ構造化部１５２によって生成されたログ情報にデータのサイズが含まれていた場合に、データのサイズを球の大きさによって表現した通信描画データを生成する。
【００５０】
ここで、通信描画データ生成部１５３は、クライアント装置３００からプロセス間の通信を可視化した描画データのリクエストを受信した場合に、上述した通信描画データを生成する。すなわち、可視化装置１００は、クライアント装置３００を操作するユーザのリクエストに応じて、描画データを生成する。クライアント装置３００から送信されるリクエストには、ユーザが描画を所望する描画条件（通信が発生した時間帯（開始時刻及び終了時刻）、サーバ、プロセス、処理種別など）が含まれており、リクエストの送信時に、ユーザによって各条件が選択される。
【００５１】
通信描画データ生成部１５３は、リクエストに含まれる各描画条件に適合したログ情報をログテーブル１４４から抽出する。そして、通信描画データ生成部１５３は、座標対応テーブル１４５、色対応テーブル１４６及びサイズ対応テーブル１４７によってそれぞれ記憶された情報を参照して、抽出したログ情報から通信描画データを生成する。
【００５２】
図１１は、実施例１に係る通信描画データ生成部１５３によって生成される通信描画データの一例を示す図である。例えば、通信描画データ生成部１５３は、ログテーブル１４４によって記憶されるログ情報に基づいて、図１１に示すように、通信描画データ（１００００１，（１０，１０），（１０，２０），＃ＦＦ４４ＥＥ，１０）を生成する。上述した通信描画データは、（時刻，始点座標，終点座標，球の色，球の大きさ：半径のピクセル数）を示す。
【００５３】
ここで、上述した通信描画データを例に通信描画データ生成の詳細を説明すると、通信描画データ生成部１５３は、クライアント装置３００から受信したリクエストに基づいて抽出したログ情報に含まれる時刻をｕｎｉｘタイム「１００００１」に変換する。そして、通信描画データ生成部１５３は、座標対応テーブル１４５に記憶された座標対応情報を参照して、ログ情報に含まれる送信元プロセスから始点座標「１０，１０」を決定する。また、通信描画データ生成部１５３は、座標対応テーブル１４５に記憶された座標対応情報を参照して、ログ情報に含まれる送信先プロセスから終点座標「１０，２０」を決定する。さらに、通信描画データ生成部１５３は、色対応テーブル１４６によって記憶された色対応情報を参照して、リクエストに含まれる処理内容を示す球の色「＃ＦＦ４４ＥＥ」を決定する。そして、通信描画データ生成部１５３は、サイズ対応テーブル１４７によって記憶されたサイズ対応情報を参照して、球の大きさ「１０」を決定する。
【００５４】
すなわち、上述したように生成された通信描画データ（１００００１，（１０，１０），（１０，２０），＃ＦＦ４４ＥＥ，１０）は、色が「＃ＦＦ４４ＥＥ」であり、大きさが「１０」ピクセルである球が、時刻「１００００１」に２次元座標上の「１０，１０」から「１０，２０」へ移動するデータであることを意味する。同様に、通信描画データ生成部１５３は、抽出したすべてのログ情報に係る通信描画データを生成する。なお、抽出したログ情報にデータサイズの情報が含まれていなかった場合には、通信描画データ生成部１５３は、球の大きさが所定の大きさ（例えば、３ピクセル）となる通信描画データを生成する。
【００５５】
図１に戻って、プロセス描画データ生成部１５４は、２次元座標上で一方の軸上の同一座標に同一サーバで実行されるプロセスが配置され、他方の軸上の同一座標に機能が同一であるプロセスが配置されたプロセス描画データを生成する。具体的には、プロセス描画データ生成部１５４は、クライアント装置３００から受信したリクエストに含まれるプロセスを抽出する。そして、プロセス描画データ生成部１５４は、座標対応テーブル１４５によって記憶された座標対応情報を参照して、２次元座標上における抽出したプロセスの座標を決定する。
【００５６】
図１２は、実施例１に係るプロセス描画データ生成部１５４によって生成されるプロセス描画データの一例を示す図である。例えば、プロセス描画データ生成部１５４は、図１２に示すように、プロセス描画データ「ｐｒｏｃｅｓｓＡ，（（１０，１０），（１２，１０），（１４，１０））」を生成する。すなわち、上述したように生成されたプロセス描画データは、２次元座標上において、３つの「ｐｒｏｃｅｓｓＡ」がそれぞれ「１０，１０」、「１２，１０」及び「１４，１０」に配置されるデータであることを意味する。同様に、プロセス描画データ生成部１５４は、クライアント装置３００から受信したリクエストに含まれる全てのプロセスについてプロセス描画データを生成する。
【００５７】
図１に戻って、描画制御部１５５は、通信描画データ生成部１５３及びプロセス描画データ生成部１５４によってそれぞれ生成された通信描画データ及びプロセス描画データを所定の表示部にて表示させる。具体的には、描画制御部１５５は、プロセス間の通信を示す描画のリクエストを送信したクライアント装置３００に対して通信描画データ及びプロセス描画データを送信して、各描画データを画像化した描画像をクライアント装置３００が有する表示部３３０にて表示されるブラウザ上に表示する。
【００５８】
図１３は、実施例１に係る描画制御部１５５による制御のもと表示されるプロセス描画データを画像化した描画像の一例を示す図である。例えば、描画制御部１５５は、図１３に示すように、表示部３３０の横方向をｘ軸とし、縦方向をｙ軸とした画面上にプロセスを矩形で示した描画像を表示させる。ここで、プロセス描画データは、座標対応情報に基づいて生成されていることから、描画制御部１５５によって表示される描画像は、図１３に示すように、同一サーバ上で実行されているプロセスが同一ｘ座標上に配置され、同一役割のプロセスが同一ｙ座標上に配置されることとなる。
【００５９】
そして、描画制御部１５５によって表示される描画像においては、例えば、図１３に示すように、読み書きを実行する上位プロセスが画面最上位に配置され、画面の上部から下部に向かって、分散ロック、分散テーブル（マスタ）、分散テーブル（ワーカ）、分散ファイルシステム（マスタ）、分散ファイルシステム（ワーカ）の順に配置される。さらに、描画制御部１５５によって表示される描画像においては、図１３に示すように、同一のプロセスを同一の色で表現され、異なるプロセスは異なる色で表現される。また、画面最下部には、時間経過を示す時間軸が表示され、時間軸をｘ軸の正方向に四角形がスクロールされることで時間経過が表現される。
【００６０】
なお、図１３に示す分散ロックとは、分散して処理を行うサーバ間における資源の共有や、資源への排他的アクセスを制御したり、システムの可用性や一貫性を保つための制御をしたりする機能部である。また、分散テーブルとは、大量のデータを構造化データとして複数のサーバ上で管理する機能部である。また、分散ファイルシステムとは、大量のデータを保持する機能部である。そして、分散テーブル及び分散ファイルシステムにおけるマスタとは、各機能部において全体の制御を実行する要素であり、ワーカとは、各機能部において、実際に処理を実行する要素である。
【００６１】
図１４は、実施例１に係る描画制御部１５５による制御のもと表示される通信描画データを画像化した描画像の一例を示す図である。ここで、図１４においては、読み書きを実行する上位プロセスから分散テーブル（ワーカ）へと処理要求が送信された際の描画像の例を示す。例えば、描画制御部１５５は、図１４に示すように、通信の送信元プロセス（通信描画データにおける始点座標）から通信の送信先プロセス（通信描画データにおける終点座標）まで移動する球によって、プロセス間の通信を表現した描画像を表示させる。ここで、描画制御部１５５によって表示される球は、処理内容ごとに異なる色で表現される。また、描画制御部１５５によって表示される球は、データサイズに応じて異なる大きさで表現される。なお、図１４においては、球の軌道が示されているが、実際には球の軌道は表示されない。
【００６２】
さらに、描画制御部１５５は、内部にキューを有するプロセスに関して、図１４に示すように、各時点で処理待ちの処理要求の個数を、プロセスを示す矩形の上部に円柱を積み上げることで表現することが可能である。かかる場合には、描画制御部１５５は、キューを有するプロセスにおいて、受信したリクエスト数から返却したレスポンス数を減じた数を、処理待ちの処理要求の個数として算出し、算出した個数分の円柱をプロセスの上に積み上げる。
【００６３】
また、描画速度はユーザによって任意に選択することが可能である。例えば、ユーザからのリクエストにおける描画対象とする通信が発生した時間帯の開始時刻から終了時刻までが１０分間の場合、この描画像を１０分間かけて表示させる以外に、１分間で表示させたり、２０分間で表示させたりすることが可能である。この描画速度の選択は、クライアント装置３００が描画データを受信した後、ユーザからのリクエストに応じて実行される。
【００６４】
かかる場合には、まず、クライアント装置３００に対してユーザが所望の描画速度を入力する。描画制御部１５５は、クライアント装置３００から入力された描画速度を受け付けて、受け付けた描画速度に応じた描画間隔ずつ描画時刻を進めた描画像をクライアント装置３００の表示部３３０表示させる。例えば、描画制御部１５５は、描画間隔を「Ｔ」、入力された描画速度を「Ｖ」とした場合に、「Ｔ＝Ｃ／Ｖ」で与えられる描画間隔で描画像を表示させる。なお、「Ｃ」は、例えば、「１」などの定数である。
【００６５】
図１５は、実施例１に係る描画制御部１５５によって制御される描画像の表示例を説明するための図である。例えば、描画制御部１５５は、図１５に示すように、送信元プロセスの座標と送信先プロセスの座標とを端点とする放物線を定数（例えば、１２等分）で等分割し、描画間隔だけ描画時刻が進むごとに、１間隔ずつ送信先プロセスの座標に向けて球を移動させる描画像を表示させる。なお、球の移動は放物線上である場合に限られず、例えば、送信元プロセスの座標と送信先プロセスの座標とを端点とする直線上であってもよい。かかる場合には、当該直線が定数で等分割される。
【００６６】
上述したように、描画制御部１５５は、クライアント装置３００の表示部３３０にプロセス間の通信を、処理ごとに色を変化させ、データサイズに応じて大きさを変化させた球の移動で表現した描画像を表示させる。すなわち、クライアント装置３００のユーザは、どのサーバのどのプロセスにおけるどのような処理が集中して発生しているかを一目で確認することができる。さらに、処理待ちのリクエスト数を表示させることで、リクエストが順次処理されず、スタックに蓄積されている状況も一目で確認することができる。その結果、ユーザは、問題が発生していると思われる箇所を認識することができ、大規模分散処理システムにおけるボトルネックを容易に特定することが可能である。
【００６７】
［実施例１に係る可視化装置による処理の手順］
次に、実施例１に係る可視化装置１００による処理の手順について、図１６を用いて説明する。図１６は、実施例１に係る可視化装置１００による処理の手順を示すフローチャートである。図１６に示すように、実施例１に係る可視化装置１００においては、ログ抽出部１５１は、大規模分散処理システム２００に含まれるプロセスによって出力されたリクエスト受信及びレスポンス返却のログを抽出する（ステップＳ１０１）。
【００６８】
そして、ログ構造化部１５２は、抽出されたログごとに、処理要求の送信元サーバ、送信元プロセス、送信先サーバ、送信先プロセス、処理内容及び時刻を示すログ情報を生成して、ログテーブル１４４に格納する（ステップＳ１０２）。その後、通信描画データ生成部１５３及びプロセス描画データ生成部１５４は、クライアント装置３００からリクエストを受信したか否かを判定する（ステップＳ１０３）。
【００６９】
ここで、クライアント装置３００からリクエストを受信した場合には（ステップＳ１０３肯定）、通信描画データ生成部１５３及びプロセス描画データ生成部１５４は、通信描画データ及びプロセス描画データをそれぞれ生成する（ステップＳ１０４）。一方、クライアント装置３００からリクエストを受信していない場合には、通信描画データ生成部１５３及びプロセス描画データ生成部１５４は、待機状態となる（ステップＳ１０３否定）。
【００７０】
ステップＳ１０４にて、通信描画データ及びプロセス描画データをそれぞれ生成されると、描画制御部１５５は、クライアント装置３００から描画速度を受信したか否かを判定する（ステップＳ１０５）。ここで、クライアント装置３００から描画速度を受信した場合には（ステップＳ１０５肯定）、描画制御部１５５は、受信した描画速度に応じた描画間隔で描画した描画像をクライアント装置３００の表示部３３０に表示させる（ステップＳ１０６）。一方、クライアント装置３００から描画速度を受信していない場合には（ステップＳ１０５否定）、描画制御部１５５は、待機状態となる。
【００７１】
［実施例１に係る描画制御部による描画処理の手順］
次に、実施例１に係る描画制御部１５５による描画処理の手順を説明する。図１７は、実施例１に係る描画制御部１５５による描画処理の手順を示すフローチャートである。ここで、図１７に示すフローチャートは、図１６のステップＳ１０６の処理に相当する。また、図１７においては、「Ｔｓ」が描画の開始時刻を示し、「Ｔｅ」が描画の終了時刻を示し、「Ｔ」が描画時刻を示し、「Ｔｂ」は描画間隔を示す。また、図１７においては、通信描画データがＮ個存在し、各通信描画データをｄｎと示し、ｄｎの時刻情報をｔｎ（ｎ＝０・・・Ｎ−１）とする。すなわち、各通信描画データ「ｄｎ」は、「時刻情報ｔｎ、（始点座標）、（終点座標）、球の色、球の大きさ」である。なお、図１７における時刻情報は、ｕｎｉｘタイムに変換された後の時刻である。
【００７２】
図１７に示すように、時刻が開始時刻「Ｔｓ」から描画時刻「Ｔ」になると（ステップＳ２０１）、描画制御部１５５は、「ｎ＝０」から「Ｎ−１」の通信描画データ「ｄｎ」に対して、時刻情報「ｔｎ」が、描画時刻「Ｔ」以上であり、かつ、描画時刻「Ｔ」に描画間隔「Ｔｂ」を加えた「Ｔ＋Ｔｂ」未満の通信描画データがあるか否かを判定する（ステップＳ２０２）。
【００７３】
ここで、時刻情報「ｔｎ」が、描画時刻「Ｔ」以上であり、かつ、描画時刻「Ｔ」に描画間隔「Ｔｂ」を加えた「Ｔ＋Ｔｂ」未満の通信描画データがある場合には（ステップＳ２０２肯定）、描画制御部１５５は、当該通信描画データ「ｄｎ」の描画を開始する（ステップＳ２０３）。一方、時刻情報「ｔｎ」が、描画時刻「Ｔ」以上であり、かつ、描画時刻「Ｔ」に描画間隔「Ｔｂ」を加えた「Ｔ＋Ｔｂ」未満の通信描画データがない場合に（ステップＳ２０２否定）、描画制御部１５５は、描画を行わない。
【００７４】
そして、描画制御部１５５は、現在の描画時刻「Ｔ」に描画間隔「Ｔｂ」を加えた時刻を新たな描画時刻「Ｔ」とし（ステップＳ２０４）、新たな描画時刻「Ｔ」が終了時刻「Ｔｅ」を越えたか否かを判定する（ステップＳ２０５）。ここで、新たな描画時刻「Ｔ」が終了時刻「Ｔｅ」を越えていない場合には（ステップＳ２０５否定）、描画制御部１５５は、ステップＳ２０２に戻って、判定を行う。一方、新たな描画時刻「Ｔ」が終了時刻「Ｔｅ」を越えた場合には（ステップＳ２０５肯定）、描画制御部１５５は、描画処理を終了する。
【００７５】
［実施例１の効果］
上述したように、実施例１によれば、ログ抽出部１５１は、大規模分散処理システム内で出力されたログのうち、プロセス間の通信を示すログを抽出する。ログ構造化部１５２は、ログ抽出部１５１によって抽出されたログに含まれる情報から、前記通信において処理要求が送受信された送信元プロセス及び送信先プロセスと、送信元プロセス及び送信先プロセスがそれぞれ実行される送信元サーバ及び送信先サーバと、処理要求の内容と、通信が発生した時刻とを示すログ情報を生成する。通信描画データ生成部１５３及びプロセス描画データ生成部１５４は、ログ構造化部１５２によって生成されたログ情報に基づいて、送信元サーバの送信元プロセスから送信先サーバの送信先プロセスへの処理要求の送受信を、送信元サーバの送信元プロセスから送信先サーバの送信先プロセスへの処理要求の内容及び時刻を示すように描画した描画データを生成する。描画制御部１５５は、通信描画データ生成部１５３及びプロセス描画データ生成部１５４によって生成された描画データをクライアント装置３００の表示部３３０にて表示させる。従って、実施例１に係る可視化装置１００は、特定プロセスへの処理集中や、特定処理の遅延などを可視化することができ、大規模分散処理システムにおけるボトルネックを容易に特定することを可能にする。
【００７６】
また、実施例１によれば、ログ抽出部１５１は、プロセス間の通信を示すログとして、リクエスト受信を示すログ及びレスポンス返却を示すログを抽出する。従って、実施例１に係る可視化装置１００は、大規模分散処理システムにおいて発生している処理を確実に抽出することを可能にする。
【００７７】
また、実施例１によれば、ログ構造化部１５２は、ログに送信元プロセス又は送信先プロセスが含まれていない場合に、大規模分散処理システムの設計情報又は実装情報から送信元プロセス又は前記送信先プロセスを取得する。従って、実施例１に係る可視化装置１００は、より多くのログ（リクエスト受信及びレスポンス返却のログ）を描画対象とすることができ、ボトルネックの特定をより精度の高いものにすることを可能にする。
【００７８】
また、実施例１によれば、通信描画データ生成部１５３及びプロセス描画データ生成部１５４は、２次元座標において、一方の軸上の同一座標に同一サーバで実行されるプロセスを配置し、他方の軸上の同一座標に機能が同一であるプロセスを配置し、前記処理要求の送受信を前記２次元座標上のプロセス間の球の移動によって表現し、かつ、前記処理要求の内容を前記球の色によって表現した描画データを生成する。従って、実施例１に係る可視化装置１００は、大規模分散処理システム内で実行されるデータのやり取りを視覚的に理解させることができ、システム実行状態の理解を容易にすることを可能にする。
【００７９】
また、例えば、上述したように、複数のプロセスを跨ぐ処理の流れにおいて、書き込み処理に関しては、画面上部から下部へとデータ移動を示す球が流れ、読み込み処理に関しては、画面下部から上部へのデータ移動を示す球が流れるように描画することから、大規模分散処理システム内のやり取りが視覚的に理解しやすくなり、システム実行状態の理解をより容易にすることを可能にする。
【００８０】
また、実施例１によれば、通信描画データ生成部１５３は、ログ構造化部１５２によって生成されたログ情報にデータのサイズが含まれていた場合に、データのサイズを球の大きさによって表現した描画データを生成する。従って、実施例１に係る可視化装置１００は、１つの球に多くの情報を込めることができ、システム内部の状態をより理解することを可能にする。
【実施例２】
【００８１】
これまで実施例１を説明したが、本願に係る実施例は、実施例１に限定されるものではない。すなわち、これらの実施例は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
【００８２】
上述した実施例１においては、データサイズと球の大きさとの対応、及び、処理種別と色との対応をテーブルで記憶する場合について説明した。しかしながら、実施例はこれに限定されるものではなく、例えば、プログラム内部にフローとして埋め込む（色や大きさの値をハードコーディングする）場合であってもよい。以下、図１８を用いて、プログラム内部に埋め込むフローの一例を説明する。
【００８３】
図１８は、変形例を説明するためのフローチャートである。ここで、図１８においては、データサイズと球の大きさとの対応をフローで設定する場合のフローチャートを示す。例えば、通信描画データ生成部１５３は、図１８に示すように、まず、描画対象となるログ情報にデータサイズが含まれているか否かを判定し（ステップＳ３０１）、含まれていない場合には（ステップＳ３０１否定）、球の大きさ（半径）を３ピクセルと設定する（ステップＳ３０２）。
【００８４】
描画対象となるログ情報にデータサイズが含まれていた場合には（ステップＳ３０１肯定）、通信描画データ生成部１５３は、次に、データサイズが１Ｋ以上であるか否かを判定し（ステップＳ３０３）、データサイズが１Ｋ未満である場合に（ステップＳ３０３否定）、球の大きさ（半径）を４ピクセルと設定する（ステップＳ３０４）。このように、通信描画データ生成部１５３は、ステップＳ３０５〜ステップＳ３１１まで、データサイズの判定と、球の大きさの設定とを段階的に行う。これにより、可視化装置１００は、データサイズと球の大きさとの対応を示すテーブルを備えることなく、データサイズに応じて球の大きさを変化させた通信描画データを生成することができる。なお、処理種別と色との対応に関しても同様にフローとしてプログラム内部に埋め込むことができる。
【００８５】
上述した実施例１においては、プロセス間の通信を球の移動で表現する場合について説明した。しかしながら、実施例はこれに限定されるものではなく、例えば、他の図形を用いる場合であってもよい。例えば、多角形や、楕円、ブロック矢印などを用いる場合であってもよい。同様に、上述した実施例１においては、プロセスを矩形で表現する場合について説明したが、実施例はこれに限定されるものではなく、他の図形を用いる場合であってもよい。
【００８６】
また、例えば、各装置の分散・統合の具体的形態（例えば、図１の形態）は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、通信描画データ生成部１５３及びプロセス描画データ生成部１５４とを１つの描画データ生成部として統合してもよく、一方、ログ抽出部１５１を、大規模分散処理システム２００からログを収集する収集部と、収集したログからリクエスト受信及びレスポンス返却のログを抽出する抽出部とに分散してもよい。
【００８７】
また、制御部１５０を可視化装置１００の外部装置としてネットワーク経由で接続するようにしてもよく、或いは、通信描画データ生成部１５３とプロセス描画データ生成部１５４とを別の装置がそれぞれ有し、ネットワークに接続されて協働することで、上述した可視化装置１００の機能を実現するようにしてもよい。
【００８８】
上記実施例で説明した可視化装置１００は、あらかじめ用意されたプログラムをコンピュータで実行することで実現することもできる。そこで、以下では、図１に示した可視化装置１００と同様の機能を実現する可視化プログラムを実行するコンピュータの一例を説明する。
【００８９】
図１９は、実施例２に係る可視化プログラムを実行するコンピュータ１０００を示す図である。図１９に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。 
【００９０】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。 
【００９１】
ここで、図１９に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。実施例２に係る可視化プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０９０に記憶される。具体的には、上記実施例で説明したログ抽出部１５１と同様の情報処理を実行するログ抽出ステップと、ログ構造化部１５２と同様の情報処理を実行するログ構造化ステップと、通信描画データ生成部１５３と同様の情報処理を実行する通信描画データ生成ステップと、プロセス描画データ生成部１５４と同様の情報処理を実行するプロセス描画データ生成ステップと、描画制御部１５５と同様の情報処理を実行する描画制御ステップとが記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。 
【００９２】
また、上記実施例で説明したキーワードテーブル１４１、ホスト名対応テーブル１４２、設計情報テーブル１４３、ログテーブル１４４、座標対応テーブル１４５、色対応テーブル１４６、サイズ対応テーブル１４７に記憶されるデータのように、可視化プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュールやプログラムデータを必要に応じてＲＡＭ１０１２に読み出して、ログ抽出ステップと、ログ構造化ステップと、通信描画データ生成ステップと、プロセス描画データ生成ステップと、描画制御ステップとを実行する。
【００９３】
なお、可視化プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、情報送受信プログラムに係るプログラムモジュールやプログラムデータは、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００９４】
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９５】
１００  可視化装置
１４０  記憶部
１４１  キーワードテーブル
１４２  ホスト名対応テーブル
１４３  設計情報テーブル
１４４  ログテーブル
１４５  座標対応テーブル
１４６  色対応テーブル
１４７  サイズ対応テーブル
１５０  制御部
１５１  ログ抽出部
１５２  ログ構造化部
１５３  通信描画データ生成部
１５４  プロセス描画データ生成部
１５５  描画制御部
２００  大規模分散処理システム
３００  クライアント装置
【図１】
2013171541.tif 000003
【図２】
2013171541.tif 000004
【図３】
2013171541.tif 000005
【図４Ａ】
2013171541.tif 000006
【図４Ｂ】
2013171541.tif 000007
【図５】
2013171541.tif 000008
【図６】
2013171541.tif 000009
【図７】
2013171541.tif 000010
【図８】
2013171541.tif 000011
【図９】
2013171541.tif 000012
【図１０】
2013171541.tif 000013
【図１１】
2013171541.tif 000014
【図１２】
2013171541.tif 000015
【図１３】
2013171541.tif 000016
【図１４】
2013171541.tif 000017
【図１５】
2013171541.tif 000018
【図１６】
2013171541.tif 000019
【図１７】
2013171541.tif 000020
【図１８】
2013171541.tif 000021
【図１９】
2013171541.tif 000022