(57)【要約】      （修正有）【課題】データ表示の切り替え速度を向上させた分散型の情報処理システムを提供する。【解決手段】第１情報処理装置（サーバー）１０は、動的プログラム解析の結果である第１データを特徴付ける所定のパラメータが、第２情報処理装置（端末）３０から受信した第１目標値と等しくなるように、第１データのデータサイズを小さくして第２データを生成する第１処理部１１と、第２データを第２情報処理装置３０に送信すると共に、第１目標値を第２情報処理装置３０から受信する第１送受信部１４とを含む。第２情報処理装置３０は、第１情報処理装置１０から受信した第２データのパラメータが、データの表示方法に対応した第２目標値と等しくなるように、第２データのデータサイズを小さくして第３データを生成する第２処理部３１と、第２データを第１情報処理装置から受信すると共に第１目標値を第１情報処理装置に送信する第２送受信部３４とを含む。【選択図】図１
2016110174.tif 000002
【特許請求の範囲】
【請求項１】
互いにネットワークを介して接続された第１情報処理装置及び第２情報処理装置を備える情報処理システムであって、
前記第１情報処理装置は、
動的プログラム解析の結果である第１データを特徴付ける所定のパラメータが、前記第２情報処理装置から受信した第１目標値と等しくなるように、前記第１データのデータサイズを小さくして第２データを生成する第１処理部と、
前記第２データを前記第２情報処理装置に送信すると共に、前記第１目標値を前記第２情報処理装置から受信する第１送受信部と、を含み、
前記第２情報処理装置は、
前記第１情報処理装置から受信した前記第２データの前記パラメータが、データの表示方法に対応した第２目標値と等しくなるように、前記第２データのデータサイズを小さくして第３データを生成する第２処理部と、
前記第２データを前記第１情報処理装置から受信すると共に、前記第１目標値を前記第１情報処理装置に送信する第２送受信部と、を含む
ことを特徴とする情報処理システム。
【請求項２】
前記パラメータは、表示データの解像度及びレンジの少なくとも一方を含むことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第１情報処理装置は、前記第１データを記憶する第１記憶部を含み、
前記第２情報処理装置は、前記第２データを記憶する第２記憶部を含むことを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記第２処理部は、前記第２目標値の更新を行うと共に、更新後の前記第２目標値に対応する前記第３データが、前記第２記憶部に記憶された前記第２データから生成可能か否か判定し、生成可能である場合には前記第２記憶部に記憶された前記第２データに基づいて前記第３データの生成を行うことを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記第２処理部は、前記第２目標値の更新を行うと共に、更新後の前記第２目標値に対応する前記第３データが、前記第２記憶部に記憶された前記第２データから生成可能か否か判定し、生成可能でない場合には更新後の前記第２目標値に基づき前記第１目標値を更新すると共に、更新後の前記第１目標値を前記第２送受信部により前記第１情報処理装置に送信することを特徴とする請求項３に記載の情報処理システム。
【請求項６】
前記第２処理部は、前記第２目標値の更新頻度に対応する第１調整パラメータに基づき、前記第１目標値の更新を行うことを特徴とする請求項４に記載の情報処理システム。
【請求項７】
前記第２処理部は、データ処理に要した時間に対応する第２調整パラメータに基づき、前記第１目標値の更新を行うことを特徴とする請求項４に記載の情報処理システム。
【請求項８】
ネットワークを介して端末と接続されたサーバであって、
動的プログラム解析の結果である第１データを特徴付ける所定のパラメータが、前記端末から受信した第１目標値と等しくなるように、前記第１データのデータサイズを小さくして第２データを生成する処理部と、
前記第２データを前記端末に送信すると共に、前記第１目標値を前記端末から受信する受信部と、を備え、
前記第１目標値は、前記端末におけるデータの表示方法に対応した第２目標値以上であることを特徴とするサーバ。
【請求項９】
前記パラメータは、表示データの解像度及びレンジの少なくとも一方を含むことを特徴とする請求項８に記載のサーバ。
【請求項１０】
前記第１データを記憶する第１記憶部を備えることを特徴とする請求項８に記載のサーバ。
【請求項１１】
ネットワークを介してサーバと接続された端末を制御するためのプログラムであって、前記プログラムは前記端末の処理部に対し、
動的プログラム解析の結果である第１データを特徴付ける所定のパラメータにおいて、前記サーバにて行うべき処理に対応する第１目標値と、データの表示方法に対応する第２目標値と、をそれぞれ生成させ、
前記サーバに対し、前記パラメータが前記第１目標値と等しくなるように、前記第１データのデータサイズを小さくして第２データを生成する第１処理を実行させるために、前記第１目標値を含む要求メッセージを送受信部を介して前記サーバに送信させ、
前記第２データを前記サーバから前記送受信部を介して受信させ、
前記第２データの前記パラメータが前記第２目標値と等しくなるように、前記第２データのデータサイズを小さくして第３データを生成する第２処理を実行させる、
ことを特徴とするプログラム。
【請求項１２】
前記パラメータは、表示データの解像度及びレンジの少なくとも一方を含むことを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記処理部に対し、前記第２データを前記端末の記憶部に記憶させることを特徴とする請求項１１に記載のプログラム。
【請求項１４】
前記処理部に対し、前記第２目標値の更新を行わせると共に、更新後の前記第２目標値に対応する前記第３データが、前記記憶部に記憶された前記第２データから生成可能か否かを判定させ、生成可能である場合には前記記憶部に記憶された前記第２データに基づいて前記第３データの生成を行わせることを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記処理部に対し、前記第２目標値の更新を行わせると共に、更新後の前記第２目標値に対応する前記第３データが、前記記憶部に記憶された前記第２データから生成可能か否かを判定させ、生成可能でない場合には更新後の前記第２目標値に基づき前記第１目標値を更新させると共に、更新後の前記第１目標値を前記送受信部を介して前記サーバに送信させることを特徴とする請求項１３に記載のプログラム。
【請求項１６】
前記処理部に対し、前記第２目標値の更新頻度に対応する第１調整パラメータに基づき、前記第１目標値の更新を行わせることを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記処理部に対し、データ処理に要した時間に対応する第２調整パラメータに基づき、前記第１目標値の更新を行わせることを特徴とする請求項１５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施形態は、情報処理システム並びにこれに用いられる情報処理システム、サーバ及びプログラムに関する。
【背景技術】
【０００２】
ネットワークを介して接続された２台の情報処理装置において、所定の情報処理（例えば、画像処理）をいずれか一方の情報処理装置で選択的に実行可能な分散型の情報処理システムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−７６１７２号公報
【特許文献２】特開２００６−６７３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の情報処理システムにおいて、動的プログラム解析の結果（データ）を視覚的に表示し、且つ表示方法を頻繁に切り替える操作を行った場合、表示の切り替えを素早く行えない場合があった。これは、前述の所定の情報処理をいずれか一方の情報処理装置で行う必要があるため、当該一方の情報処理装置の処理能力またはネットワークの通信速度の限界により、データの処理速度が制限されてしまうためである。
【０００５】
以下に説明する実施形態は、分散型の情報処理システムにおいて、データ表示の切り替え速度を向上させるものである。
【課題を解決するための手段】
【０００６】
本明細書に記載の実施形態に係る情報処理システムは、互いにネットワークを介して接続された第１情報処理装置及び第２情報処理装置を備える情報処理システムである。前記第１情報処理装置は、動的プログラム解析の結果である第１データを特徴付ける所定のパラメータが、前記第２情報処理装置から受信した第１目標値と等しくなるように、前記第１データのデータサイズを小さくして第２データを生成する第１処理部と、前記第２データを前記第２情報処理装置に送信すると共に、前記第１目標値を前記第２情報処理装置から受信する第１送受信部と、を含む。
前記第２情報処理装置は、前記第１情報処理装置から受信した前記第２データの前記パラメータが、データの表示方法に対応した第２目標値と等しくなるように、前記第２データのデータサイズを小さくして第３データを生成する第２処理部と、前記第２データを前記第１情報処理装置から受信すると共に、前記第１目標値を前記第１情報処理装置に送信する第２送受信部と、を含む。
【０００７】
本明細書に記載の実施形態に係るサーバは、ネットワークを介して端末と接続されたサーバであって、動的プログラム解析の結果である第１データを特徴付ける所定のパラメータが、前記端末から受信した第１目標値と等しくなるように、前記第１データのデータサイズを小さくして第２データを生成する処理部と、前記第２データを前記端末に送信すると共に、前記第１目標値を前記端末から受信する受信部と、を備える。前記第１目標値は、前記端末におけるデータの表示方法に対応した第２目標値以上である。
【０００８】
本明細書に記載の実施形態に係るプログラムは、ネットワークを介してサーバと接続された端末を制御するためのプログラムである。前記プログラムは、前記端末の処理部に対し、動的プログラム解析の結果である第１データを特徴付ける所定のパラメータにおいて、前記サーバにて行うべき処理に対応する第１目標値と、データの表示方法に対応する第２目標値と、をそれぞれ生成させる。また、前記プログラムは、前記サーバに対し、前記パラメータが前記第１目標値と等しくなるように、前記第１データのデータサイズを小さくして第２データを生成する第１処理を実行させるために、前記第１目標値を含む要求メッセージを送受信部を介して前記サーバに送信させる。更に、前記プログラムは、前記第２データを前記サーバから前記送受信部を介して受信させ、前記第２データの前記パラメータが前記第２目標値と等しくなるように、前記第２データのデータサイズを小さくして第３データを生成する第２処理を端末に実行させる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る情報処理システムのブロック図である。
【図２】動的プログラム解析の結果の表示画面を示す模式図である。
【図３】情報処理システムの原理を説明する図（その１）である。
【図４】情報処理システムの原理を説明する図（その２）である。
【図５】端末側の処理を示すフローチャートである。
【図６】サーバ側の処理を示すフローチャートである。
【図７】データ再利用の判定処理の詳細を示すフローチャートである。
【図８】調整度δの計算処理の詳細を示すフローチャートである。
【図９】要求メッセージ生成処理の詳細を示すフローチャートである。
【図１０】端末側のトレースデータ処理の詳細を示すフローチャートである。
【図１１】サーバ側のトレースデータ処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施形態に係る情報処理システムについて説明する。
【００１１】
［第１の実施形態］
図１は、第１の実施形態に係る情報処理システムのブロック図である。本情報書システムは、サーバ側の情報処理装置と端末側の情報処理装置とを用いて、動的プログラム解析及びその結果表示を行うためのシステムである。サーバ側と端末側の各情報処理装置は、インターネット４０を介して互いに接続されている。なお、インターネット４０は、２つの情報処理装置を接続するネットワークの一例であり、当該ネットワークの形態は本実施形態に限定されるわけではない。
【００１２】
サーバ側の情報処理装置は、第１情報処理装置の一例であるサーバ１０と、動的プログラム解析を行ってトレースデータを生成するトレースデータ生成部２０とを含む。トレースデータ生成部２０は、図１に示すようにサーバ１０の外に別個の装置として設けられていてもよいし、サーバ１０の内部に設けられていてもよい。
【００１３】
サーバ１０は、サーバ側演算部１１と、これに接続されたサーバ側記憶部１２及びサーバ側通信部１４とを含む。サーバ側演算部１１は、後述の表示用データ処理を始めとする各種の演算処理を行う。サーバ側記憶部１２は、トレースデータ生成部２０が生成したトレースデータを受信し、記憶する。サーバ側通信部１４は、インターネット４０に接続され、端末側の通信部（後述）との間でデータの送受信を行う。サーバ側演算部１１には例えばＣＰＵ（Central Processing Unit）、サーバ側記憶部１２には例えば不揮発性メモリ、サーバ側通信部１４には例えば光通信用のインターフェースを、それぞれハードウェア資源として用いることができる。
【００１４】
端末側の情報処理装置は、第２情報処理装置の一例である端末３０と、これに接続された表示部３６及び入力部３８を含む。表示部３６は、端末３０により生成された表示データを表示し、入力部３８は、端末３０に対しユーザによる入力指示を与える。表示部３６及び入力部３８は、端末３０とは独立した装置（例えば、液晶モニタ及びキーボード）として外部に設けられていてもよいし、例えばタッチパネルのような形で端末３０と一体化していてもよい。
【００１５】
端末３０は、端末側演算部３１と、これに接続された端末側記憶部３２及び端末側通信部３４とを含む。端末側演算部３１は、後述の表示用データ処理を始めとする各種の演算処理を行い、表示部３６及び入力部３８に接続されている。端末側記憶部３２は、端末側通信部３４がサーバ１０から受信したトレースデータを受信し、記憶する。端末側通信部３４は、インターネット４０に接続され、サーバ側通信部１４との間でデータの送受信を行う。端末側演算部３１には例えばＣＰＵ、端末側記憶部３２には例えば不揮発性メモリ、端末側通信部３４には例えば無線通信用のインターフェースを、それぞれハードウェア資源として用いることができる。
【００１６】
図２は、動的プログラム解析の結果の表示画面を示す模式図である。動的プログラム解析では、端末３０からインターネット４０及びサーバ１０を介して提供されたソースコード（解析の対象となるプログラム）に対し、トレースデータ生成部２０が、実行時情報を取得する仕組みを挿入した上で当該ソースコードを実行する。ソースコードの実行により得られたトレースデータは、ソフトフェア由来の階層構造を有し、これを端末側の表示部３６にて視覚化すると図２の画面のようになる。
【００１７】
図２に示すように、トレースデータはブロック構造（３６ａ〜３６ｈ）を有し、且つ左側から右側に向かうにつれて段々と細かくなる構成となっている。斜線ハッチの入ったブロックは、現在実行中の領域を示し、実際にはカラー表示により色分けされるなどして表示される。これにより、ユーザとしては、プログラムのうちどの領域がどのように動いているのかを、視覚的に把握することができる。なお、図２のデータ表示方法はあくまで一例であり、これ以外の方法でデータ表示を行うことも当然可能である。
【００１８】
ここで、トレースデータは通常大容量のビッグデータとなることが多く、かつ表示部３６の解像度にも限界があるため、１つ１つのデータを全て画面上に表すことはできない。そこで、図２の例であれば、１画素以下の高さに割り当てられたデータは、複数のデータを重ねた簡易表示としてまとめて表示される。ユーザが当該簡易表示の部分を詳細に見たい場合には、入力部３８の操作により指令を与えるなどして、当該簡易表示の部分にズームインすることで、詳細を把握することができる。反対に、ある程度広範囲のデータについて一覧したい場合には、ズームアウト操作を行えばよい。また、同一画面上で異なるブロックのデータを見たい場合には、シフト操作により表示領域を移動させることが可能である。このように、動的プログラム解析においては、ユーザによるインタラクティブ操作（ズームイン操作、ズームアウト操作、シフト操作）を、スムーズに行えるようにすることが好ましい。
【００１９】
上記の要請から、トレースデータ生成部２０により生成されたトレースデータを、表示部３６に表示する過程においては、ユーザが所望するデータの表示範囲（以下、「レンジ」と称する。）や、データの表示の細かさ（以下、「解像度」と称する。）に応じて、元のトレースデータのデータサイズを小さくする処理（以下、「表示用データ処理」と称する。）を行う必要がある。そこで、表示用データ処理を、サーバ１０または端末３０のいずれで行うべきかが課題となる。なお、上記の「解像度」は、表示部３６の画面表示領域のサイズ（幅及び高さ）に対応する表示解像度とは、独立して設定可能なパラメータである。例えば、ズームイン操作またはズームアウト操作を行った場合、データの「解像度」は変化するが、表示部３６の表示解像度は変化しない。
【００２０】
ここで仮に、表示用データ処理を端末３０側で行うとした場合、端末３０は一般にサーバ１０に比べて情報処理能力が低く、ビッグデータの処理には適さない上、インターネット４０によるデータの転送量も膨大になり、遅延が生じる可能性がある。その結果、ユーザによるインタラクティブ操作を行うことが難しい場合がある。一方、表示用データ処理をサーバ１０側で行うとした場合、端末３０へのデータの転送量は大幅に低減されるものの、表示部３６における画面表示が切り替わるたびに、インターネット４０を通じてサーバ３０からデータを再取得する必要が生じ、そのための遅延が頻繁に生じてしまう。その結果、やはりインタラクティブ操作を行うことが難しくなってしまう場合がある。
【００２１】
このように、サーバ１０または端末３０のいずれか一方のみで表示用データ処理を行うとすることは課題が多い。以下に説明する実施形態では、当該課題を解決し、トレースデータの表示の切り替え速度を向上させることが可能な情報処理システムについて説明する。
【００２２】
図３は、本実施形態に係る情報処理システムの原理を説明する図（その１）である。前述のように、トレースデータの表示に関するパラメータとしては「解像度」と「レンジ」の２つがあり、それぞれ値が大きいほどデータのサイズも大きくなる。グラフの点Ａは、トレースデータ生成部２０によりトレースデータが生成された時点での解像度及びレンジ（ＡＹ）を示す（以下、この状態のトレースデータを「第１データ」と称する。）。グラフの点Ｂは、サーバ１０から端末３０に送信されるトレースデータの解像度（ＢＸ）及びレンジ（ＢＹ）を示す（以下、この状態のトレースデータを「第２データ」と称し、この状態の解像度（ＢＸ）及びレンジ（ＢＹ）を「第１目標値」と称する。）。グラフの点Ｃは、端末側の表示部３６において表示されるトレースデータの解像度（ＣＸ）及びレンジ（ＣＹ）を示す（以下、この状態のトレースデータを「第３データ」と称し、この状態の解像度（ＣＸ）及びレンジ（ＣＹ）を「第２目標値」と称する。）。第３データは、端末３０にて第２データから生成されるデータである。また、点Ｂと点Ｃの間の解像度の差を「解像度調整度δ」、点Ｂと点Ｃの間のレンジの差を「レンジ調整度δ」としてそれぞれ示す。
【００２３】
図３に示すように、本実施形態に係る情報処理システムでは、最初にサーバ１０のサーバ側演算部１１において、第１データを第２データにサイズダウンさせるデータ処理（以下、「第１処理」と称する。）行う。次に、端末３０の端末側演算部３１において、第２データを第３データにサイズダウンさせるデータ処理（以下、「第２処理」と称する。）。点Ｂの位置（解像度、レンジ）が変化すると、サーバ１０及び端末３０のそれぞれにかかる負荷の大きさも変化する。
【００２４】
図４は、本実施形態に係る情報処理システムの原理を説明する図（その２）であり、図３で説明したデータ処理のイメージを視覚的に示したものである。図４に示すように、生成直後のトレースデータ（第１データ）は、レンジ（ＡＸ）が最も広く解像度（ＡＹ）が最も細かい状態となっている（符号ａ）。当該第１データに対し、最初にサーバ１０おいて、データのレンジを所定の範囲に限定するレンジ検索の処理が行われ、レンジが第２データのレンジ（ＢＹ）まで限定される（符号ｂ）。この第２データのレンジ（ＢＹ）は、後述する第３データのレンジ（ＣＹ）にレンジ調整度δを加えた値に等しい。
【００２５】
続いて、サーバ１０でデータの間引き処理が行われ、解像度が第２データの解像度（ＢＸ）まで粗くなる（符号ｃ）。この第２データの解像度（ＢＸ）は、後述する第３データの解像度（ＣＸ）に解像度調整度δを加えた値に等しい。こうして生成された第２データが、端末３０へ送信されて端末側記憶部３２に記憶される（符号ｄ）。
【００２６】
続いて、端末３０でレンジ検索の処理が行われ、トレースデータのレンジが第３データのレンジ（ＣＹ）まで更に限定される（符号ｅ）。続いて、端末３０でデータの間引き処理が行われ、解像度が第３データの解像度（ＣＸ）まで更に粗くなる（符号ｆ）。こうして生成された第３データが、表示部３６に表示される。
【００２７】
ここで、ユーザからの要求により、表示部３６における表示方法の切り替え（更新）が生じた場合について考える。仮に、切り替え後の第３データのレンジ（ＣＹ）が従前の第２データのレンジ（ＢＹ＝ＣＹ＋δ）の範囲内にあり、且つ解像度（ＣＸ）が従前の第２データの解像度（ＢＸ＝ＣＸ＋δ）の範囲内であれば、既に端末側記憶部３２に記憶された第２データに対し第２処理（符号ｄ〜ｆ）を施すことで、新たな要求に対応した第３データを生成することができる。この場合、既に端末側記憶部３２にある第２データから第３データが生成されるため、サーバ１０において第１データから第２データを生成する第１処理（符号ａ〜ｃ）の過程が不要となる。更に、サーバ１０から端末３０に対し第２データを送信する過程（符号ｃ〜ｄ）も不要となる。その結果、トータルでのデータ処理速度を大幅に向上させることができる。
【００２８】
一方、要求される第３データのレンジ（ＣＹ）または解像度（ＣＸ）が大きく変化し、従前の第２データのレンジ（ＢＹ＝ＣＹ＋δ）または解像度（ＢＸ＝ＣＸ＋δ）の範囲から外れてしまった場合、端末側記憶部３２にある第２データから新たな第３データを生成することはできない。この場合、端末３０はサーバ１０に対し要求メッセージを送信する（この点については後段で詳述する）。サーバ１０は端末３０からの要求メッセージの指示に従って、第１データから新たな第２データ（ＢＸ、ＢＹ）を生成し、端末３０へ送信する（符号ａ〜ｄ）。このとき、新たな第２データのレンジ（ＢＹ）及び解像度（ＢＸ）は、それぞれ新たな第３データのレンジ（ＣＹ）及び解像度（ＣＸ）を含む。
【００２９】
新たな第２データを受信した端末３０では、当該第２データを端末側記憶部３２に保存した上で、第２データから新たな第３データ（ＣＸ、ＣＹ）を生成して表示部３６に表示する（符号ｅ〜ｆ）。そして、次回の表示更新において第３データのレンジ及び解像度の変化が微量である場合には、端末側記憶部３２に記憶された第２データから第３データを生成することで、前述のようにデータ処理速度を向上させることができる。
【００３０】
以上が本実施形態に係る情報処理システムの概要である。以下、フローチャートを用い、各部における処理の詳細について説明する。
図５は、端末側の処理を示すフローチャートである。最初に、端末側演算部３１が管理するパラメータとして、表示部３６における表示の更新回数ｎ及び調整度δの値を設定し、それぞれの値を「０」とする（ステップＳ１０）。ここで、調整度δ（ｎ）は、図３に示す「解像度調整度δ」及び「レンジ調整度δ」に対応するもので、以下の説明では両者に共通の値「δ（ｎ）」を使用するが、解像度とレンジとで異なる調整用のパラメータ（解像度調整度δＸ、レンジ調整度δＹ）を用いてもよい。
【００３１】
次に、入力部３８または表示部３６から表示更新要求がなされると（ステップＳ１１）、端末側演算部３１は、更新回数ｎの値が０より大きいか否かを判定する（ステップＳ１２）。ｎ＝０の初期状態の場合（ステップＳ１２＝Ｎｏ）、端末側演算部３１はサーバ１０への要求メッセージを生成し（ステップＳ１３）、端末側通信部３４を介して当該要求メッセージをサーバ１０へと送信する（ステップＳ１４）。ステップＳ１３〜Ｓ１４の要求メッセージについては、後段で詳述する。
【００３２】
ステップＳ１２においてｎ＞０の場合（ステップＳ１２＝Ｙｅｓ）、端末側演算部３１は、端末側記憶部３２における既存データが再利用可能か否か、すなわち、ステップＳ１１の表示更新要求に対応する解像度（ＣＸ）及びレンジ（ＣＹ）を満たす第３データ（図４の符号ｆ）を、端末側記憶部３２に記憶された第２データ（図４の符号ｄ）から生成可能か否かを判定する（ステップＳ１５）。ステップＳ１５においてＮｏと判定された場合、端末側演算部３１は、調整度δ（ｎ）を計算した上で（ステップＳ１６）、当該調整度δ（ｎ）を含めた要求メッセージを生成してサーバ１０へと送信する（ステップＳ１３、Ｓ１４）。
【００３３】
以上のステップＳ１１〜Ｓ１６では、表示部３６における表示の更新要求がされてから、要求メッセージをサーバ１０に送信するまでの処理について説明した。ステップＳ１４に続くサーバ１０の処理については、図６にて説明する。続いて、端末側におけるトレースデータの処理について説明する。
【００３４】
最初に、端末側記憶部３２が、サーバ１０からトレースデータ（第２データ）を受信する（ステップＳ２０）。端末側演算部３１は、当該受信したトレースデータ（第２データ）を処理し、表示用のデータ（第３データ）を生成する（ステップＳ２１）。ここで、ステップＳ１５において、端末側記憶部３２の既存データ（第２データ）が第３データ生成のために再利用可能であった場合（ステップＳ１５＝Ｙｅｓ）には、端末側演算部３１は端末側記憶部３２にある第２データから第３データの生成を行う。
【００３５】
次に、端末側演算部３１は、第３データを表示部３６に送信し、表示の更新を行う（ステップＳ２２）。その後、端末側演算部３１は、次の表示更新イベントが発生するまではトレースデータに関する処理を行わず（ステップＳ２３＝Ｎｏ）、表示更新イベントが発生したら（ステップＳ２３＝Ｙｅｓ）、端末側演算部３１は更新回数ｎの値をインクリメントし（ステップＳ２４）、前述したステップＳ１１以降の処理を実行する。
【００３６】
図６は、サーバ側の処理を示すフローチャートである。最初に、サーバ側演算部１１は、図５のステップＳ１４にて端末３０から送信された要求メッセージを受信する（ステップＳ３０）。次に、サーバ側演算部１１は、サーバ側記憶部１２内に、トレースデータが記憶されているか否かを判定する（ステップＳ３１）。サーバ側記憶部１２にトレースデータがない場合（ステップＳ３１＝Ｎｏ）、サーバ側演算部１１からの指示を受けたトレースデータ生成部２０が、トレースデータを生成してサーバ側記憶部１２に入力する（ステップＳ３２）。これにより、サーバ側記憶部１２に加工前のトレースデータ（第１データ）が記憶される。ステップＳ３１でサーバ側記憶部１２にトレースデータがあると判定された場合（ステップＳ３１＝Ｙｅｓ）、ステップＳ３２は飛ばされてステップＳ３３へと進む。
【００３７】
次に、サーバ側演算部１１は、トレースデータの表示用データ処理を行い、第１データから第２データを生成する（ステップＳ３３）。続いて、サーバ側演算部１１は、サーバ側通信部１４を介して、処理後のトレースデータ（第２データ）を端末３０へと送信する（ステップＳ３４）。端末側では、第２データを受信した後、図５のステップＳ２０以下の処理が実行される。
【００３８】
図７は、図５のステップＳ１５に示すデータ再利用の判定処理の詳細を示すフローチャートである。最初に、端末側演算部３１は、表示部３６から表示データ（第３データ）の解像度を、端末側記憶部３２から既存データ（第２データ）の解像度をそれぞれ入力され、両者の解像度を比較する（ステップＳ４０）。既存データの解像度が表示データの解像度以上である場合（ステップＳ４０＝Ｙｅｓ）、端末側演算部３１は次のレンジの比較ステップ（ステップＳ４１）へと進む。既存データの解像度が表示データの解像度より小さい場合（ステップＳ４１＝Ｎｏ）には、端末側演算部３１は調整度δ（ｎ）の計算ステップ（図８）へと進む。
【００３９】
続いて、端末側演算部３１は、表示部３６から表示データ（第３データ）のレンジを、端末側記憶部から既存データ（第２データ）のレンジをそれぞれ入力され、両者のレンジを比較する（ステップＳ４１）。既存データのレンジと表示データのレンジに重なり部分がある場合（ステップＳ４１＝Ｙｅｓ）、端末側演算部３１は当該重なる部分のレンジを分離し（ステップＳ４２）、トレースデータの処理ステップ（図１０）へと進む。既存データのレンジと表示データのレンジに重なり部分がない場合（ステップＳ４１＝Ｎｏ）には、端末側演算部３１は調整度δ（ｎ）の計算ステップ（図８）へと進む。また、ステップＳ４２でレンジを分離した後の新規部分に対応するトレースデータについても、同様に調整度δ（ｎ）の計算ステップ（図８）が実行される。
【００４０】
図８は、図５のステップＳ１６における調整度δの計算処理の詳細を示すフローチャートである。端末側演算部３１は、表示更新の時刻ｔ（ｎ）を表示部３６から取得し、要求メッセージの送信から第２データの受信までに要した時間ＴＳ（ｎ）を端末側通信部３４から取得する。なお、ＴＳ（ｎ）の値は、サーバ１０側のデータ処理時間と通信時間の合計となる。更に、端末側演算部３１は、端末側でのトレースデータ処理（第２データから第３データを生成する第２処理）に要した時間ＴＣ（ｎ）を取得する。
【００４１】
最初に、端末側演算部３１は、表示更新時刻ｔ（ｎ）を端末側記憶部３２に記憶する（ステップＳ５０）。続いて、端末側演算部３１は、端末側記憶部３２から上記ｔ（ｎ）及び前回の更新時刻であるｔ（ｎ−１）を取得する（ステップＳ５１）。端末側演算部３１は、ｔ（ｎ）及びｔ（ｎ−１）に基づいて、表示更新頻度ｆ（ｎ）を計算する（ステップＳ５２）。当該計算は、以下の式に基づき行われる。
【数１】
2016110174.tif 000003
【００４２】
次に、端末側演算部３１は、ＴＳ（ｎ）及びＴＣ（ｎ）に基づき、データ準備時間Ｔ（ｎ）を以下の式により計算し、端末側記憶部３２に記憶する（ステップＳ５３）。
【数２】
2016110174.tif 000004
【００４３】
次に、端末側演算部３１は、前回及び前々回の表示更新時におけるデータ準備時間（Ｔ（ｎ−１）、Ｔ（ｎ−２））を取得し（ステップＳ５４）、以下の式に基づいて調整係数γ（ｎ）を計算する（ステップＳ５５）。
【数３】
2016110174.tif 000005
なお、初期状態においては、γ（０）＝０、γ（１）＝γ０（ユーザが任意に設定可能な定数）とする。また、αは最適化への収束スピードを調整するためのパラメータであり、α∈（０，１）を満たす範囲でユーザが任意に設定可能である。
【００４４】
次に、端末側演算部３１は、ステップＳ５５で計算した調整係数γ（ｎ）を端末側記憶部３２に記憶する（ステップＳ５６）。３回目以降の計算からは、端末側記憶部３２に記憶されたγ（ｎ―１）及びγ（ｎ−２）の値を用いて、式（３）による調整係数γ（ｎ）の計算が行われる（ステップＳ５７）。
【００４５】
次に、端末側演算部３１は、ステップＳ５２で得た表示更新頻度ｆ（ｎ）及びステップＳ５５で得た調整係数に基づき、以下の式を用いて調整度δ（ｎ）を計算する（ステップＳ５８）。以上のプロセスにより計算された調整度δ（ｎ）は、次の要求メッセージ生成ステップ（図９）にて使用される。
【数４】
2016110174.tif 000006
なお、ｆ０は、端末３０にてトレースデータの解像度及びレンジの調整が行われるために必要な最低限の表示更新頻度を示すパラメータである。
【００４６】
上記の式（４）によれば、画面の表示更新頻度が一定値（ｆ０）以下の場合には、δ（ｎ）＝０となるため、表示用データ処理は全てサーバ１０にて行われる。また、画面の表示更新頻度ｆ（ｎ）が増加すればするほど、δ（ｎ）の値は大きくなり、第２データの解像度及びレンジも大きくなるため（図２の点Ｂ参照）、端末３０の負荷が増えてサーバ１０の負荷が低下する。また、サーバ１０への要求メッセージの送信頻度も低下するため、データ通信に伴う処理の遅れは少なくなる。反対に、画面の表示更新頻度ｆ（ｎ）が低下した場合には、δ（ｎ）の値は小さくなり、サーバ１０の負荷が増えて端末３０の負荷が減少する。このように、画面の表示更新頻度に応じて、サーバ１０と端末３０の負荷（データ処理量）が適切な大きさに調整される。
【００４７】
また、上記の式（３）によれば、初回の表示用データ処理は全てサーバ１０にて行われ、２回目以降はγ（ｎ）とδ（ｎ）の調整により、トータルのデータ処理負荷が最適になるように、サーバ１０と端末３０とでデータ処理負荷の分散が行われる。具体的には、前回（ｎ−１）と前々回（ｎ−２）のデータ準備時間Ｔ（ｎ）を比較して、前回のデータ準備時間Ｔ（ｎ−１）が前々回のデータ準備時間Ｔ（ｎ−２）より長ければ、処理時間の調整係数γ（ｎ）は小さくなる。その結果、調整度δ（ｎ）の値は小さくなり、端末３０のデータ処理量が低下して端末側の負荷が軽くなる。反対に、前回のデータ準備時間Ｔ（ｎ−１）が前々回のデータ準備時間Ｔ（ｎ−２）以下であれば、調整度δ（ｎ）が大きくなり端末側の負荷が増加する。このように、表示用データ処理に要したトータルの時間（データ準備時間）に応じて、サーバ１０と端末３０の負荷（データ処理量）が適切な大きさに調整される。
【００４８】
図９は、要求メッセージ生成処理の詳細を示すフローチャートである。最初に、端末側演算部３１は、図８のステップＳ５６にて計算されたδ（ｎ）に基づき、要求メッセージのデータ解像度及びデータレンジを計算する（ステップＳ６０）。次に、端末側演算部３１は、ステップＳ６０で計算されたデータ解像度及びデータレンジに基づき、サーバ１０への要求メッセージを合成する（ステップＳ６１）。
【００４９】
図１０は、図５のステップ２１に示す端末側のトレースデータ処理（第２処理）の詳細を示すフローチャートである。端末側演算部３１には、端末側記憶部３２からトレースデータ（第２データ）が入力されると共に、表示部３６から表示データ（第３データ）のレンジ及び解像度がそれぞれ入力される。最初に、端末側演算部３１は、トレースデータ（第２データ）のデータレンジを取得した上で（ステップＳ７０）、レンジ検索（図４の符号ｄ〜ｅ）により表示範囲のトレースデータを取得する（ステップＳ７１）。続いて、端末側演算部３１は、トレースデータ（第２データ）のデータ解像度を取得した上で（ステップＳ７２）、ステップＳ７１のトレースデータを間引き処理（図４の符号ｅ〜ｆ）して、表示解像度まで解像度を落としたトレースデータ（第３データ）を生成する（ステップＳ７３）。その後、端末側演算部３１は、表示部３６へ表示データ（第３データ）を送信する。
【００５０】
図１１は、図６のステップＳ３３に示すサーバ側のトレースデータ処理（第１処理）の詳細を示すフローチャートである。サーバ側演算部１１には、サーバ側記憶部１２からトレースデータ（第１データ）が入力されると共に、要求メッセージから送信データ（第２データ）のレンジ及び解像度がそれぞれ入力される。最初に、サーバ側演算部１１は、トレースデータ（第１データ）のデータレンジを取得した上で（ステップＳ８０）、レンジ検索（図４の符号ａ〜ｂ）により端末側から要求された範囲のトレースデータを取得する（ステップＳ８１）。続いて、サーバ側演算部１１は、トレースデータ（第１データ）のデータ解像度を取得した上で（ステップＳ８２）、ステップＳ８１のトレースデータを間引き処理（図４の符号ｂ〜ｃ）して、端末側から要求された表示解像度まで解像度を落としたトレースデータ（第２データ）を生成する（ステップＳ８３）。その後、サーバ側演算部１１は、端末側へトレースデータ（第２データ）を送信する。
【００５１】
以上述べてきたように、本実施形態に係る情報処理システム（以下、「本情報処理システム」と称する。）では、トレースデータの解像度及びレンジの調整（表示用データ処理）を、サーバ１０と端末３０とで分担して行う。すなわち、サーバ１０においては、トレースデータの解像度及びレンジが、端末３０から受信した要求メッセージに含まれる解像度及びレンジ（第１目標値）と等しくなるように、元のトレースデータ（第１データ）のサイズを小さくして送信用のデータ（第２データ）を生成する。そして、端末３０においては、サーバ１０から受信したトレースデータ（第２データ）の解像度及びレンジが、表示部３６におけるデータの表示方法に対応した解像度及びレンジ（第２目標値）と等しくなるように、元のトレースデータ（第２データ）のサイズを小さくして表示用のデータ（第３データ）を生成する。本構成によれば、表示用データ処理を、インターネット４０を介して接続された２つの情報処理装置（サーバ１０及び端末３０）で分担して行うため、トータルでの処理速度を向上させ、処理に要する時間を短縮することができる。その結果、動的プログラム解析のデータを視覚的に表示するシステムにおいて、表示の切り替え速度を向上させることができる。
【００５２】
なお、本情報処理システムでは、データサイズを小さくする際に基準とするパラメータ（目標値）の例として、トレースデータの解像度及びレンジについて説明したが、これらのパラメータは片方のみを目標値として用いてもよい。また、動的プログラム解析のトレースデータを特徴づけるパラメータであって、データサイズと相関のあるパラメータであれば、上記２つ以外のパラメータを目標値として用いてもよい。
【００５３】
また、本情報処理システムでは、データの表示切り替えにより表示データ（第３データ）の解像度及びレンジ（第２目標値）が変化した場合に、新たな表示データを端末側記憶部３２に記憶された既存のデータ（第２データ）から生成可能か否かを判定し、可能である場合には当該既存のデータから表示データを生成する。これにより、サーバ１０への問い合わせ回数を削減することができ、処理速度を更に向上させることができる。また、上記の再利用を可能とするために、サーバ１０から受信するトレースデータ（第２データ）は、表示用データ（第３データ）の解像度及びレンジに調整度δを付加した分量のデータとなっている。
【００５４】
また、本情報処理システムでは、調整度δを算出するにあたり、画面の表示更新頻度（ｆ０）及びデータ準備時間（Ｔ（ｎ））を参照する（図８参照）。これにより、表示更新頻度やデータ処理時間に応じて、データ処理の負荷をサーバ１０及び端末３０に適切に割り当て、トータルでの処理時間を短縮することができる。なお、本情報処理システムでは、画面の表示更新頻度（ｆ０）及びデータ準備時間（Ｔ（ｎ））の両方を参照したが、上記パラメータのうちいずれか一方のみを参照することとしてもよい。また、データ処理の負荷に応じた適切な調整度δを算出可能なものであれば、上記以外のパラメータを用いてもよい。
【００５５】
［その他の実施形態］
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５６】
１０…サーバ、１１…サーバ側演算部、１２…サーバ側記憶部、１４…サーバ側通信部、２０…トレースデータ生成部、３０…端末、３１…端末側演算部、３２…端末側記憶部３２…端末側通信部、３６…表示部、３８…入力部、４０…インターネット
【図１】
2016110174.tif 000007
【図２】
2016110174.tif 000008
【図３】
2016110174.tif 000009
【図４】
2016110174.tif 000010
【図５】
2016110174.tif 000011
【図６】
2016110174.tif 000012
【図７】
2016110174.tif 000013
【図８】
2016110174.tif 000014
【図９】
2016110174.tif 000015
【図１０】
2016110174.tif 000016
【図１１】
2016110174.tif 000017