(57)【特許請求の範囲】
【請求項１】
予め定められた機能を実現するアプリケーションを実行する複数のアプリケーション実行部と、
各前記アプリケーション実行部に対応して設けられ、各前記アプリケーション実行部間におけるデータ通信を管理する複数の通信ライブラリ実行部と、
を備え、
前記通信ライブラリ実行部は、
前記通信ライブラリ実行部に対応して設けられた一の前記アプリケーション実行部と、他の前記アプリケーション実行部との前記データ通信を監視し、当該監視した全ての前記データ通信について、前記データ通信時に一の前記アプリケーション実行部で用いられたＡＰＩの種別を示すＡＰＩ種別を含む通信情報を生成する通信監視部と、
前記通信監視部で生成された前記通信情報を記憶する通信情報記憶部と、
前記通信情報記憶部に記憶された前記通信情報に基づいて、前記データ通信時に一の前記アプリケーション実行部で用いられた前記ＡＰＩ種別のペアを推定する通信情報解析部と、
を備える、情報処理装置。
【請求項２】
前記通信情報は、前記データ通信の宛先となる前記アプリケーション実行部が実行する前記アプリケーションの種別を示す宛先アプリケーション種別と、前記データ通信の送信元となる前記アプリケーション実行部が実行する前記アプリケーションの種別を示す送信元アプリケーション種別と、前記データ通信に係るデータが前記通信監視部に入力された時刻を示す入力時刻とをも含むことを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記通信情報解析部は、推定した前記ＡＰＩ種別のペアのいずれかを含む前記通信情報に含まれる前記入力時刻に基づいて、各前記アプリケーション実行部間におけるラウンドトリップ時間を算出することを特徴とする、請求項２に記載の情報処理装置。
【請求項４】
予め定められた前記ＡＰＩ種別、前記宛先アプリケーション種別、および前記送信元アプリケーション種別のうちの少なくとも１つに基づいて、前記通信監視部にて生成された前記通信情報を選択する通信情報選択部をさらに備えることを特徴とする、請求項２に記載の情報処理装置。
【請求項５】
前記通信情報解析部は、一の前記アプリケーション実行部と他の前記アプリケーション実行部との間における前記データ通信に要する時間の分布を示す時間分布を、前記アプリケーションおよび前記ＡＰＩ種別ごとに算出し、
前記通信ライブラリ実行部は、
前記通信情報解析部にて解析された前記時間分布に基づいて、前記時間の経時的な変化のトレンドを算出するトレンド算出部と、
前記トレンド算出部にて算出された前記トレンドに基づいて、前記情報処理装置の評価を行う評価部と、
をさらに備えることを特徴とする、請求項１に記載の情報処理装置。
【請求項６】
前記通信情報記憶部は、着脱可能であることを特徴とする、請求項１に記載の情報処理装置。
【請求項７】
各前記アプリケーション実行部のうちの複数の前記アプリケーション実行部と、各前記通信ライブラリ実行部のうちの複数の前記通信ライブラリ実行部とは、前記情報処理装置とは別個の少なくとも１つ以上の他の情報処理装置に備えられ、
前記通信ライブラリ実行部は、
各前記アプリケーション実行部間ごとに、前記データ通信に係るデータの送受信を行う複数の通信送受信部と、
前記データ通信を行う一の前記通信送受信部を選択する通信手段選択部と、
をさらに備え、
前記通信監視部は、前記データ通信に用いる前記通信送受信部の種別を示す通信手段種別を含む前記通信情報を生成し、
前記通信情報解析部は、前記通信手段種別ごとに前記ＡＰＩ種別のペアを推定し、
前記通信手段選択部は、前記通信情報解析部にて推定された前記ＡＰＩ種別のペアに基づいて、一の前記通信送受信部を選択することを特徴とする、請求項１に記載の情報処理装置。
【請求項８】
予め定められた機能を実現するアプリケーションを実行する複数のアプリケーション実行部と、
各前記アプリケーション実行部に対応して設けられ、各前記アプリケーション実行部間におけるデータ通信を管理する複数の通信ライブラリ実行部と、
を備え、
前記通信ライブラリ実行部は、
前記通信ライブラリ実行部に対応して設けられた一の前記アプリケーション実行部と、他の前記アプリケーション実行部との前記データ通信を監視し、当該監視した全ての前記データ通信について、前記データ通信時に一の前記アプリケーション実行部で用いられたＡＰＩの種別を示すＡＰＩ種別を含む通信情報を生成する通信監視部と、
前記通信監視部で生成された前記通信情報を記憶する通信情報記憶部と、
を備える情報処理装置と、
前記通信情報記憶部に記憶された前記通信情報に基づいて、前記データ通信時に一の前記アプリケーション実行部で用いられた前記ＡＰＩ種別のペアを推定する、前記情報処理装置と通信可能に接続された他の情報処理装置と、
を備える、情報処理システム。
【請求項９】
前記通信情報記憶部は、着脱可能であることを特徴とする、請求項８に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションが通信によって連携して動作する情報処理装置および情報処理システムに関する。
【背景技術】
【０００２】
従来、マイクロコンピュータ、またはプロセッサ等を搭載した情報処理装置がある。情報処理装置では、特定の機能を実行させるアプリケーションが実装されており、アプリケーションは機能ごとに情報処理装置に実装されることが一般的である。また、単一の情報処理装置において、複数のアプリケーション（アプリケーション群）が、アプリケーション間のデータ通信を媒介する通信ライブラリを用いて通信によって連携して動作することによって、より複雑な機能を使用者に提供することがある。さらに、複数の情報処理装置を、例えばシリアル通信ケーブル、ローカルエリアネットワーク、またはインターネット等の通信手段を介して相互に接続し、各情報処理装置間で通信することによって各情報処理装置で動作するアプリケーションを相互に提供する（アプリケーションが連携して動作する）ことが可能な構成を有する情報処理装置もある。【０００３】
上記の単一の情報処理装置において複数のアプリケーションを連携して動作させる場合と、複数の情報処理装置間で複数のアプリケーションを連携して動作させる場合とのいずれも、複数のアプリケーションが通信によって連携して動作するという観点では同じである。このように、少なくとも１つ以上の情報処理装置で動作する複数のアプリケーションが、通信ライブラリまたは通信手段を用いて連携して動作する仕組みのことを情報処理分散システムという。【０００４】
情報処理分散システムの性能の１つとして処理速度が挙げられる。処理速度は、例えば情報処理分散システムの仕様で規定されている処理速度を満たしているか否かの確認、あるいは使用者が良好な使用感を得るために処理速度が高い情報処理装置またはアプリケーションを選択する指標として用いることがある。【０００５】
従来、処理速度の評価方法、および当該評価に基づく情報処理装置の選択に関する技術が開示されている（例えば、特許文献１参照）。特許文献１では、情報処理装置に、例えばＣＰＵ（Central Processing Unit）またはメモリ等の計算機資源の状態を計測する監視部を設け、当該監視部が処理速度を計測し、監視部が計測した処理速度に基づいて通信を行う情報処理装置を選択する技術が開示されている。【０００６】
一方、処理速度の評価方法について、ラウンドトリップ（RT：Round Trip）時間を指標として用いる技術が開示されている（例えば、特許文献２参照）。ラウンドトリップ時間とは、あるアプリケーションが他のアプリケーションの機能を、例えば適当なＡＰＩをコールするなどの方法で呼び出し、呼び出した他のアプリケーションの機能を受信用のＡＰＩがコールされることなどによって受け取るまでに要する時間のことをいう。ＲＴ時間の評価を精度良く行うためには、送信時の通信と、当該送信に対する応答を受信した時の通信との対応を取ることが必要となる。特許文献２では、アプリケーション間における通信プロトコルとしてＰＣＴ／ＩＰを採用している情報処理分散システムについて、ＴＣＰパケットのヘッダ情報を用いて監視する通信を決定し、ＲＴ時間を評価する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平４−２２３５４７号公報
【特許文献２】特開２０１２−２２２６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１，２の技術は、一般的な情報処理分散システムに適用する上で、以下の２つの問題がある。【０００９】
第１に、一般的な情報処理分散システムでは、当該情報処理分散システムを構成する各情報処理装置が、計算機資源の監視を行う機能部を備えているとは限らない。従って、特許文献１の技術を適用することが可能な情報処理分散システムは限られている。また、計算機資源を監視する機能部を備えていない情報処理分散システムに特許文献１の技術を適用する場合において、情報処理装置に対してハードウェアの改造またはソフトウェアの書き換えを行う必要があり、手間がかかるという問題がある。【００１０】
第２に、一般的な情報処理分散システムで用いられている通信手段および通信ライブラリは、様々な種類が存在している。従って、ＴＣＰ／ＩＰの使用を前提とした特許文献２の技術を適用することが可能な情報処理分散システムは限られる。【００１１】
本発明は、このような問題を解決するためになされたものであり、特定の通信プロトコルを用いることなく容易に性能評価を行うことが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明による情報処理装置は、予め定められた機能を実現するアプリケーションを実行する複数のアプリケーション実行部と、各アプリケーション実行部に対応して設けられ、各アプリケーション実行部間におけるデータ通信を管理する複数の通信ライブラリ実行部とを備え、通信ライブラリ実行部は、通信ライブラリ実行部に対応して設けられた一のアプリケーション実行部と、他のアプリケーション実行部とのデータ通信を監視し、当該監視した全てのデータ通信について、データ通信時に一のアプリケーション実行部で用いられたＡＰＩの種別を示すＡＰＩ種別を含む通信情報を生成する通信監視部と、通信監視部で生成された通信情報を記憶する通信情報記憶部と、通信情報記憶部に記憶された通信情報に基づいて、データ通信時に一のアプリケーション実行部で用いられたＡＰＩ種別のペアを推定する通信情報解析部とを備える。
【発明の効果】
【００１３】
本発明によると、情報処理装置は、予め定められた機能を実現するアプリケーションを実行する複数のアプリケーション実行部と、各アプリケーション実行部に対応して設けられ、各アプリケーション実行部間におけるデータ通信を管理する複数の通信ライブラリ実行部とを備え、通信ライブラリ実行部は、通信ライブラリ実行部に対応して設けられた一のアプリケーション実行部と、他のアプリケーション実行部とのデータ通信を監視し、当該監視した全てのデータ通信について、データ通信時に一のアプリケーション実行部で用いられたＡＰＩの種別を示すＡＰＩ種別を含む通信情報を生成する通信監視部と、通信監視部で生成された通信情報を記憶する通信情報記憶部と、通信情報記憶部に記憶された通信情報に基づいて、データ通信時に一のアプリケーション実行部で用いられたＡＰＩ種別のペアを推定する通信情報解析部とを備えるため、特定の通信プロトコルを用いることなく容易に性能評価を行うことが可能となる。【００１４】
本発明の目的、特徴、態様、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１による情報処理装置の構成の一例を示すブロック図である。
【図２】本発明の実施の形態１による通信監視部で生成される通信情報の一例を示す図である。
【図３】本発明の実施の形態１による情報処理装置におけるソフトウェア機能に対応するハードウェア構成の一例を示す図である。
【図４】本発明の実施の形態１による通信情報解析部の動作の一例を示すフローチャートである。
【図５】本発明の実施の形態１による時間差の集合の算出を説明するための図である。
【図６】本発明の実施の形態１による時間差の頻度分布の一例を示す図である。
【図７】本発明の実施の形態１による時間差の頻度分布の一例を示す図である。
【図８】本発明の実施の形態２による情報処理装置の構成の一例を示すブロック図である。
【図９】本発明の実施の形態３による情報処理装置の構成の一例を示すブロック図である。
【図１０】本発明の実施の形態３による性能変化トレンドの算出を説明するための図である。
【図１１】本発明の実施の形態３による性能変化トレンドの評価を説明するための図である。
【図１２】本発明の実施の形態４による情報処理装置の構成の一例を示すブロック図である。
【図１３】本発明の実施の形態５による情報処理装置の構成の一例を示すブロック図である。
【図１４】本発明の実施の形態５による通信監視部で生成される通信情報に含まれる項目の一例を示す図である。
【図１５】本発明の実施の形態５による通信情報解析部の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
本発明の実施の形態について、図面に基づいて以下に説明する。
【００１７】
＜実施の形態１＞
まず、本発明の実施の形態１による情報処理装置の構成について説明する。
【００１８】
図１は、本実施の形態１による情報処理装置１の構成の一例を示すブロック図である。なお、本実施の形態１では、情報処理分散システムを単一の情報処理装置１で実現する場合について説明する。
【００１９】
図１に示すように、本実施の形態１による情報処理装置１は、アプリケーション実行部２，３，４と、通信ライブラリ実行部５，６，７と、アプリケーション間通信部１４とを備えている。
【００２０】
アプリケーション実行部２は、情報処理装置１で動作するオペレーティングシステムまたはモニタプログラム等の機能を用いて、アプリケーションの動作を実行するためのソフトウェアおよびハードウェアである。ここで、アプリケーションとは、アプリケーション実行部２によって実行される、特定の機能を実現するソフトウェアのことをいう。なお、以下では、アプリケーション実行部２はアプリケーションＡを実行するものとする。
【００２１】
アプリケーション実行部３，４は、アプリケーション実行部２と同様の機能を有する。なお、以下では、アプリケーション実行部３はアプリケーションＢを実行し、アプリケーション実行部４はアプリケーションＣを実行するものとする。
【００２２】
通信ライブラリ実行部５は、アプリケーション実行部２に対応して設けられ、アプリケーション実行部２とアプリケーション実行部３，４との間におけるデータ通信を管理する。通信ライブラリ実行部５は、通信監視部８と、通信情報記憶部９と、通信情報解析部１０と、通信送受信部１１とを備えている。なお、通信監視部８、通信情報記憶部９、および通信情報解析部１０は、アプリケーション実行部２の性能評価を行う機能を有している。
【００２３】
通信監視部８は、アプリケーション実行部２と他のアプリケーション実行部３，４とのデータ通信を監視し、当該監視した全てのデータ通信について通信情報を生成する。具体的には、アプリケーション実行部２から発信されたデータ通信に係るデータが入力されるか、または他のアプリケーション実行部３，４から発信されたデータ通信に係るデータが通信送受信部１１を介して入力されると、当該データ通信について通信情報を生成する。
【００２４】
図２は、通信監視部８で生成される通信情報の一例を示す図である。
【００２５】
図２に示すように、通信情報は、データ通信時にアプリケーション実行部２で用いられたＡＰＩの種別を示すＡＰＩ種別と、データ通信の宛先となるアプリケーション実行部（アプリケーション実行部２，３，４のいずれか）が実行するアプリケーションの種別を示す宛先アプリケーション種別と、データ通信の送信元となるアプリケーション実行部（アプリケーション実行部２，３，４のいずれか）が実行するアプリケーションの種別を示す送信元アプリケーション種別と、データ通信に係るデータが通信監視部８に入力された時刻を示す入力時刻とを含んでいる。
【００２６】
ＡＰＩ種別としては、当該ＡＰＩ種別を一意に示す名称またはＩＤ番号（図２の例では、「＃１」）が生成される。宛先アプリケーション種別としては、宛先となるアプリケーション実行部が実行するアプリケーションを一意に示す名称またはＩＤ番号（図２の例では、アプリケーション実行部３が実行する「アプリケーションＢ」）が生成される。送信元アプリケーション種別としては、送信元となるアプリケーション実行部が実行するアプリケーションを一意に示す名称またはＩＤ番号（図２の例では、アプリケーション実行部２が実行する「アプリケーションＡ」）が生成される。入力時刻としては、データ通信に係るデータが通信監視部８に入力された時刻（図２の例では、「１９７０−０１−０１Ｔ００：００：００．０」）が生成される。
【００２７】
図１に戻り、通信情報記憶部９は、通信監視部８で生成された通信情報を記憶する。
【００２８】
通信情報解析部１０は、通信情報記憶部９に記憶された通信情報に基づいて、データ通信時にアプリケーション実行部２で用いられたＡＰＩ種別のペアを推定する。なお、通信情報解析部１０は、通信情報記憶部９から通信情報を取得する際において、ＡＰＩ種別ごと、宛先アプリケーション種別ごと、または送信元アプリケーション種別ごとに選択して取得することが可能である。
【００２９】
通信送受信部１１は、アプリケーション実行部２から通信監視部８を介して入力されたデータ通信に係るデータをアプリケーション実行部２またはアプリケーション実行部３に送信する。また、通信送受信部１１は、アプリケーション実行部２またはアプリケーション実行部３から送信されたデータ通信に係るデータを受信する。
【００３０】
通信ライブラリ実行部６は、アプリケーション実行部３に対応して設けられ、アプリケーション実行部３とアプリケーション実行部２，４との間におけるデータ通信を管理する。通信ライブラリ実行部６は、通信送受信部１２を備えている。
【００３１】
通信送受信部１２は、アプリケーション実行部３から入力されたデータ通信に係るデータをアプリケーション実行部２またはアプリケーション実行部４に送信する。また、通信送受信部１２は、アプリケーション実行部２またはアプリケーション実行部４から送信されたデータ通信に係るデータを受信する。
【００３２】
通信ライブラリ実行部７は、アプリケーション実行部４に対応して設けられ、アプリケーション実行部４とアプリケーション実行部２，３との間におけるデータ通信を管理する。通信ライブラリ実行部７は、通信送受信部１３を備えている。
【００３３】
通信送受信部１３は、アプリケーション実行部４から入力されたデータ通信に係るデータをアプリケーション実行部２またはアプリケーション実行部３に送信する。また、通信送受信部１３は、アプリケーション実行部２またはアプリケーション実行部３から送信されたデータ通信に係るデータを受信する。
【００３４】
アプリケーション間通信部１４は、各アプリケーション実行部２，３，４間におけるデータ通信を媒介する。アプリケーション間通信部１４としては、例えば共有メモリまたはソケット等を用いることによって実現される。
【００３５】
図３は、情報処理装置１におけるソフトウェア機能に対応するハードウェア構成の一例を示す図である。
【００３６】
図１に示す情報処理装置１において、アプリケーション実行部２，３，４、通信ライブラリ実行部５，６，７、通信監視部８、通信情報記憶部９、通信情報解析部１０、通信送受信部１１，１２，１３、およびアプリケーション間通信部１４は、例えば図３のプロセッサ１５がメモリ１６等に記憶されたプログラムを実行することにより、当該プロセッサ１５の機能として実現される。ただし、これらは、例えば複数のプロセッサ１５が連携して実現されてもよい。
【００３７】
次に、情報処理装置１の動作について説明する。
【００３８】
図４は、通信情報解析部１０の動作の一例を示すフローチャートである。
【００３９】
ステップＳ１０１において、通信情報解析部１０は、解析に必要な数の通信情報が通信情報記憶部９に蓄積されるまで、積分時間ｔｉｎｔの間、待機する。ここで、積分時間ｔｉｎｔは、アプリケーション実行部２に対する性能評価の内容に応じて変化させることが可能なパラメータである。例えば、積分時間ｔｉｎｔを短くすると、時間分解能を高めることができ、アプリケーション実行部２に対する性能を短時間ごとに評価することが可能となる。しかし、解析に用いられる通信情報の数が少ないため、統計的な不確定性が高くなる。一方、積分時間ｔｉｎｔを長くすると、統計的に優位な性能評価結果を得やすくなる。しかし、アプリケーション実行部２の時間変動に追従した評価を行うことが難しくなる。このように、性能評価を行う使用者は、積分時間ｔｉｎｔの値を変更することによって、所望の性能評価を行うことができる。
【００４０】
ステップＳ１０２において、通信情報解析部１０は、宛先となり得る一のアプリケーションを解析対象アプリケーションとして選択する。図１の例では、宛先となり得るアプリケーションＢ（アプリケーション実行部３）またはアプリケーションＣ（アプリケーション実行部４）が選択される。
【００４１】
ステップＳ１０２の処理は、後の処理で行われるＡＰＩ種別のペアの推定を精度良く行うために必要である。例えば、異なるアプリケーションにおいて、同じ名称およびシグネチャを有するＡＰＩが存在することがある。このような異なるアプリケーションを後述の解析方法で一度に処理すると、明らかに因果関係がないアプリケーションだがＡＰＩの名称が同じであるために、一緒に解析されてしまう可能性がある。このような問題を解消するために、本実施の形態１では、解析対象となるアプリケーションを選択（特定）している。
【００４２】
ステップＳ１０３において、通信情報解析部１０は、ステップＳ１０２にて選択した解析対象アプリケーションを宛先とする通信情報を、通信情報記憶部９から取得する。ステップＳ１０３の処理によって、解析対象アプリケーションへの送信分の通信情報が取得される。
【００４３】
ステップＳ１０４において、通信情報解析部１０は、ステップＳ１０２にて選択した解析対象アプリケーションを送信元とする通信情報を、通信情報記憶部９から取得する。ステップＳ１０４の処理によって、解析対象アプリケーションからの受信分の通信情報が取得される。
【００４４】
ステップＳ１０５において、通信情報解析部１０は、ステップＳ１０３にて取得した通信情報から、一のＡＰＩ種別を選択する。
【００４５】
ステップＳ１０６において、通信情報解析部１０は、ステップＳ１０５にて選択したＡＰＩ種別を含む通信情報に基づいて、時間差の集合を算出する。
【００４６】
図５は、時間差の集合の算出を説明するための図である。
【００４７】
図５において、ステップＳ１０５にて選択されたＡＰＩ種別を含む通信情報をＸとする。なお、通信情報Ｘは、ステップＳ１０３にて取得した通信情報にｎ個含まれているものとし、ｎ個分の通信情報Ｘを通信情報Ｘ１，Ｘ２，Ｘ３，・・・，Ｘｎと各々区別している。
【００４８】
また、図５では、説明容易のために、ステップＳ１０４にて取得した通信情報に含まれるＡＰＩ種別は２種類存在するものとする。当該各ＡＰＩ種別は、通信情報Ｙ，Ｚとする。なお、通信情報Ｙ，Ｚは、ステップＳ１０４に取得した通信情報にｎ個含まれているものとし、ｎ個分の通信情報Ｙを通信情報Ｙ１，Ｙ２，Ｙ３，・・・，Ｙｎと各々区別し、ｎ個分の通信情報Ｚを通信情報Ｚ１，Ｚ２，Ｚ３，・・・，Ｚｎと各々区別している。また、一般的に、ステップＳ１０４にて取得した通信情報には、２種類以上のＡＰＩ種別が存在することがあるが、以下で説明する時間差分布の算出方法は、任意の数のＡＰＩ種別が存在する場合に成り立つ。
【００４９】
まず、通信情報Ｘ１と通信情報Ｙ１〜Ｙｎとの入力時刻の時間差、および通信情報Ｘ１と通信情報Ｚ１〜Ｚｎとの入力時刻の時間差を各々算出する。このとき、算出された時間差が正かつ最も短い時間差の値を代表値とする。図５の例では、通信情報Ｘ１とＹ１〜Ｙｎとのｎ個の時間差が算出されるが、これらの時間差のうちの通信情報Ｘ１と通信情報Ｙ１との時間差ΔｔＹ１−Ｘ１が代表値となる。代表値の算出は、時刻が早い情報通信（図５の各通信情報Ｘ，Ｙ，Ｚの下付き数字が小さい通信情報）から順に算出される。
【００５０】
また、時間差を算出する際において、既に代表値の算出に用いられた通信情報は使用しない。例えば、通信情報Ｘ３との時間差が最も短い通信情報Ｚは通信情報Ｚ２であるが、通信情報Ｚ２は通信情報Ｘ２との時間差の代表値の算出に用いられているため、通信情報Ｚ２は通信情報Ｘ３との時間差の代表値の算出に用いることができない。この場合、通信情報Ｚ２の次に通信情報Ｘ３との時間差が短い通信情報Ｚ３が、通信情報Ｘ３との時間差の代表値の算出に用いられる。
【００５１】
上記の処理を通信情報Ｘ１〜Ｘｎについて順に行うことによって、ステップＳ１０５にて選択したＡＰＩ種別を含む通信情報Ｘに対する通信情報Ｙ，Ｚの時間差の集合が算出される。
【００５２】
なお、ステップＳ１０６にて算出された時間差の集合は、上記の算出方法に限るものではない。例えば、入力時刻の集合に対して、フーリエ変換またはウェーブレット解析等の周波数解析アルゴリズムを適用した算出方法であってもよい。
【００５３】
図４に戻り、ステップＳ１０７において、通信情報解析部１０は、ステップＳ１０３にて取得した通信情報に含まれる全てのＡＰＩ種別について、ステップＳ１０６の処理を行ったか否かの判断を行う。ステップＳ１０３にて取得した通信情報に含まれる全てのＡＰＩ種別についてステップＳ１０６の処理を行った場合は、ステップＳ１０８に移行する。一方、ステップＳ１０３にて取得した通信情報に含まれる全てのＡＰＩ種別についてステップＳ１０６の処理を行っていない場合は、ステップＳ１０５に移行する。
【００５４】
ステップＳ１０８において、通信情報解析部１０は、ステップＳ１０６にて得られた時間差の集合に基づいて、因果関係のあるＡＰＩ種別のペアを推定する。
【００５５】
まず、通信情報解析部１０は、全ての時間差の集合について、時間差の頻度分布を作成する。図５の例では、通信情報Ｘおよび通信情報Ｙのペアと、通信情報Ｘおよび通信情報Ｚのペアとにおける時間差の頻度分布が作成される。
【００５６】
図６，７は、図５の例における時間差の頻度分布の一例を示す図である。
【００５７】
図５の例において、通信情報Ｙは、通信情報Ｘに対して周期的な時間差の分布となっている。従って、通信情報Ｘおよび通信情報Ｙのペアにおける時間差の頻度分布は、図６に示すような、最頻値＜ΔｔＹ−Ｘ＞を中心とした、ピークが高く分散が少ない分布となる。
【００５８】
一方、図５の例において、通信情報Ｚは、通信情報Ｘに対して非周期的な時間差の分布となっている。従って、通信情報Ｘおよび通信情報Ｚのペアにおける時間差の頻度分布は、図７に示すような、最頻値＜ΔｔＹ−Ｚ＞のピークが低く分散が広い分布となる。
【００５９】
通信情報解析部１０は、上記の性質を利用して、得られた時間差の頻度分布に対してピークを検出し、有意なピークが得られたＡＰＩ種別のペアを因果関係があるＡＰＩ種別のペアであると推定する。図５の例では、通信情報Ｘに含まれるＡＰＩ種別と、通信情報Ｙに含まれるＡＰＩ種別とのペアが、因果関係があるＡＰＩ種別のペアであると推定される。
【００６０】
なお、ピークの検出は、シグマクリッピング法、関数フィッティング法、微分フィルタ法等、既知の技術を用いることによって容易に求めることができる。例えば、関数フィッティング法を用いる場合は、ピークの幅の分散（すなわち時間差分散）に関連する量を求めることが可能であるため、ピークの有意性を判断するために時間差分散を用いて求めてもよい。
【００６１】
最後に、通信情報解析部１０は、因果関係があるＡＰＩ種別のペアであると推定された各通信情報（図５の例では、通信情報Ｘ，Ｙ）における時間差の頻度分布からピーク位置（図６の最頻値＜ΔｔＹ−Ｘ＞）を求め、当該ピーク位置における時間差をＲＴ時間と推定する。例えば、図４のステップＳ１０２において、アプリケーションＢを解析対象アプリケーションとして選択した場合は、アプリケーションＡを実行するアプリケーション実行部２と、アプリケーションＢを実行するアプリケーション実行部３との間におけるＲＴ時間が推定される。
【００６２】
図４に戻り、ステップＳ１０９において、通信情報解析部１０は、宛先となり得る全てのアプリケーションを解析対象アプリケーションとして選択したか否かの判断を行う。宛先となり得る全てのアプリケーションを解析対象アプリケーションとして選択した場合は、ステップＳ１０１に移行する。一方、宛先となり得る全てのアプリケーションを解析対象アプリケーションとして選択していない場合は、ステップＳ１０２に移行する。
【００６３】
以上のことから、本実施の形態１によれば、性能評価を行う機能を情報処理分散システムに導入する際において、アプリケーションの書き換えを行う必要がなく、通信ライブラリ実行部の変更のみで済む。また、ＡＰＩ種別、送信元アプリケーション種別、宛先アプリケーション種別、および入力時刻を含む通信情報に基づいて、送受信を行ったＡＰＩ種別のペアを推定しているため、任意の通信プロトコルを採用する情報処理分散システムにおいて、アプリケーション固有の情報であるＡＰＩ間の関連性を事前に知ることなく、通信の監視を行うだけでＡＰＩ種別のペアを推定することができる。これにより、アプリケーションと、性能評価を行う機能（通信監視部８、通信情報記憶部９、通信情報解析部１０）との間における機能の独立性を確保することが可能となる。すなわち、特定の通信プロトコルを用いることなく容易に性能評価を行うことが可能となる。
【００６４】
なお、情報処理装置１は、ＡＰＩ種別のペアの推定結果を直接使用する機能を有してもよい。例えば、アプリケーション実行部２で実行されるアプリケーションＡは自社製であるが、アプリケーション実行部３で実行されるアプリケーションＢは他社製である場合がある。他社製のアプリケーションは、内包する技術が明らかにならないようにするなどの目的で、ソースコードではなくバイナリ実行ファイルのみが提供されることがある。このような場合において、他社製のアプリケーションの振る舞いを外部から判断するためには、どのようなデータを送信すればどのような応答（返信）があるのかを調査する必要がある。当該要求に応えるために、情報処理装置１は、通信情報解析部１０にて算出されたＡＰＩ種別のペアの推定結果を使用することによって前記調査を自動的に実施することが可能なアプリケーション調査ツールを構成してもよい。
【００６５】
図１では、通信監視部８、通信情報記憶部９、および通信情報解析部１０が通信ライブラリ実行部５に備えられる場合について示しているが、これに限るものではない。例えば、アプリケーション実行部３，４のうちの少なくとも一方に対しても性能評価を行う必要がある場合は、当該性能評価が必要なアプリケーション実行部３，４のうちの少なくとも一方にも通信監視部８、通信情報記憶部９、および通信情報解析部１０を備えるようにしてもよい。
【００６６】
図１に示す情報処理装置１は、３つのアプリケーション実行部（アプリケーション実行部２，３，４）を備える場合について示しているが、複数のアプリケーション実行部を備えていればよい。
【００６７】
＜実施の形態２＞
実施の形態１では、通信情報解析部１０は、通信情報記憶部９に記憶（蓄積）された全ての通信情報を解析することによって、因果関係があるＡＰＩ種別のペアおよびＲＴ時間の推定を行った。しかし、情報処理分散システムが多数のアプリケーション群によって構成されている場合、または情報処理分散システムに多数のＡＰＩ種別のペアが存在している場合は、通信情報解析部１０で推定されるＡＰＩ種別のペアおよびＲＴ時間の数が非常に多くなる。従って、例えば、ＲＴ時間の異常な振る舞いを発見するなどの性能評価が難しくなる。
【００６８】
また、実施の形態１では、通信情報解析部１０で大量の通信情報を処理するため、通信情報解析部１０に対して非常に大きな計算負荷が付され、当該計算負荷が通信情報分散システム機能全体に影響を及ぼすことがある。さらに、情報処理装置がメモリ領域を十分に確保していない組み込み機器などの装置である場合は、大量の通信情報を記憶するための領域を確保することが難しく、性能評価時に対象とならない通信情報が生じる可能性がある。
【００６９】
このような問題を解決するために、本発明の実施の形態２では、解析対象アプリケーションおよびＡＰＩ種別のうちの少なくとも１つを選択（限定）し、選択した解析対象アプリケーションまたはＡＰＩ種別に基づいてＲＴ時間を推定することを特徴としている。以下、本実施の形態２による情報処理分散システムについて詳細に説明する。
【００７０】
図８は、本実施の形態２による情報処理装置１の構成の一例を示すブロック図である。なお、本実施の形態２では、情報処理分散システムを単一の情報処理装置１で実現する場合について説明する。
【００７１】
図８に示すように、本実施の形態２による情報処理装置１は、通信情報選択部１７を備えることを特徴としている。通信情報選択部１７は、入力装置１８に接続されている。その他の構成および動作は、実施の形態１と同様であるため、ここでは詳細な説明を省略する。
【００７２】
入力装置１８は、使用者による、ＡＰＩ種別、宛先アプリケーション種別、送信元アプリケーション種別の入力を受け付ける。ここで、入力装置１８としては、例えばキーボードまたはタッチパネル等、使用者が操作可能な入力機器であってもよい。また、入力装置１８は、例えば設定ファイルに予め設定されたＡＰＩ種別、宛先アプリケーション種別、および送信元アプリケーション種別を外部から読み出して通信情報選択部１７に入力する装置であってもよい。
【００７３】
通信監視部８で生成された通信情報は、通信情報選択部１７に入力される。通信情報選択部１７は、通信監視部８から入力された通信情報に含まれるＡＰＩ種別、宛先アプリケーション種別、および送信元アプリケーション種別と、入力装置１８から入力されたＡＰＩ種別、宛先アプリケーション種別、および送信元アプリケーション種別とを比較する。そして、通信情報選択部１７は、解析対象アプリケーションとＡＰＩ種別とのうちの少なくとも１つが一致する場合は、通信監視部８から入力された通信情報を通信情報記憶部９に記憶する。一方、通信情報選択部１７は、解析対象アプリケーションとＡＰＩ種別とのいずれにも一致しない場合は、通信監視部８から入力された通信情報を破棄（消去）する。すなわち、通信情報選択部１７は、予め定められたＡＰＩ種別、宛先アプリケーション種別、および送信元アプリケーション種別のうちの少なくとも１つに基づいて、通信監視部８にて生成された通信情報を選択する。
【００７４】
なお、通信情報選択部１７は、例えば図３のプロセッサ１５がメモリ１６等に記憶されたプログラムを実行することにより、当該プロセッサ１５の機能として実現される。ただし、通信情報選択部１７は、例えば複数のプロセッサ１５が連携して実現されてもよい。
【００７５】
解析対象アプリケーションおよびＡＰＩ種別のうちの一方に基づいて通信情報を選択するのか、または解析対象アプリケーションおよびＡＰＩ種別の両方に基づいて通信情報を選択するのかは、使用者が入力装置１８を用いて設定することができる。また、通信監視部８は、入力装置１８から入力されたＡＰＩ種別、宛先アプリケーション種別、および送信元アプリケーション種別を保持しておいてもよい。
【００７６】
以上のことから、本実施の形態２によれば、大量の通信情報を処理することなく性能評価を行うことができ、通信情報解析部１０における計算負荷が低減される。また、通信情報を記憶する領域を十分確保できない場合であっても、性能評価を行うことができる。
【００７７】
＜実施の形態３＞
実施の形態１では、積分時間ｔｉｎｔごと（短時間ごと）に情報処理分散システムの性能評価を行う場合について説明した。一方、情報処理分散システムの性能は、より長時間に渡って変化することがある。長時間に渡る経時的な性能変化のトレンド（以下、性能変化トレンドという）は、アプリケーションの計算負荷の変動、または各アプリケーション実行部間の通信を媒介する装置（図１の例では、アプリケーション間通信部１４）における通信トラフィックの混雑具合の変化によって生じる。従って、長時間に渡る性能変化トレンドを確認することによって、情報処理分散システムの管理または情報処理分散システムで生じる問題の把握など、短時間ごとの性能評価ではわからないような情報を得ることが可能となる。本発明の実施の形態３は、このような機能を実現するものであり、以下に詳細に説明する。
【００７８】
図９は、本実施の形態３による情報処理装置１の構成の一例を示すブロック図である。なお、本実施の形態３では、情報処理分散システムを単一の情報処理装置１で実現する場合について説明する。
【００７９】
図９に示すように、本実施の形態３による情報処理装置１は、トレンド算出部１９および評価部２０を備えることを特徴としている。その他の構成および動作は、実施の形態１と同様であるため、ここでは詳細な説明を省略する。
【００８０】
通信情報解析部１０は、アプリケーションごと、およびＡＰＩ種別ごとに算出した時間差の分布をトレンド算出部１９に入力する。すなわち、通信情報解析部１０は、一のアプリケーション実行部と他のアプリケーション実行部との間におけるデータ通信に要する時間の分布を示す時間分布を、アプリケーションおよびＡＰＩ種別ごとに算出する。
【００８１】
トレンド算出部１９は、まず、通信情報解析部１０から時々刻々と入力される時間差の分布を内部に保持する。次に、トレンド算出部１９は、保持した時間差の分布に基づいて性能変化トレンドを算出し、算出した性能変化トレンドを評価部２０に入力する。
【００８２】
図１０は、性能変化トレンドの算出を説明するための図である。
【００８３】
図１０に示すように、トレンド算出部１９は、各時間差の分布のピーク位置に基づいてＲＴ時間を算出し、当該ＲＴ時間の時間変化（経時的な変化）を性能変化トレンドとして算出する（図１０の破線矢印で示される曲線）。なお、トレンド算出部１９は、各時間差の分布のピーク幅に基づく時間変化を算出し、当該時間変化をＲＴ時間の変動（すなわち、情報処理分散システムの性能のばらつき）に関する性能変化トレンドとするなど、他の方法を用いて性能変化トレンドを算出してもよい。
【００８４】
図９に戻り、評価部２０は、まず、トレンド算出部１９から入力された性能変化トレンドを、ＡＰＩ種別ペアごと、およびアプリケーションごとに分類して保持する。次に、保持している性能変化トレンドを比較して所望の評価を行う。
【００８５】
図１１は、性能変化トレンドの評価を説明するための図である。
【００８６】
図１１において、性能変化トレンド２１は、あるアプリケーション（ここでは、アプリケーションＡとする）を実行するアプリケーション実行部（ここでは、アプリケーション実行部２とする）と、他のアプリケーション（ここでは、アプリケーションＢとする）を実行するアプリケーション実行部（ここでは、アプリケーション実行部３とする）との間におけるＲＴ時間のトレンドを示す曲線である。また、性能変化トレンド２２は、アプリケーションＡを実行するアプリケーション実行部２と、他のアプリケーション（ここでは、アプリケーションＣとする）を実行するアプリケーション実行部（ここでは、アプリケーション実行部４）との間におけるＲＴ時間のトレンドを示す曲線である。なお、図１１では、性能変化トレンド２１と性能変化トレンド２２との比較を容易にするために、性能変化トレンド２２に一定の時刻オフセットを加算して、性能変化トレンド２１と重ならないように示している。
【００８７】
図１１に示すように、性能変化トレンド２１および性能変化トレンド２２は、概ね同じような振る舞い（トレンド）を示している。これは、アプリケーション実行部２からアプリケーション実行部３への通信負荷、およびアプリケーション実行部３での処理負荷と、アプリケーション実行部２からアプリケーション実行部４への通信負荷、およびアプリケーション実行部４での処理負荷とが概ね同様であることを意味している。
【００８８】
一方、図１１のａで示される時間的に限られた箇所において、性能変化トレンド２２には、性能変化トレンド２１にはない盛り上がりが見出される。ここで、図９に示すように、本実施の形態３による情報処理装置１では、アプリケーション実行部２とアプリケーション実行部３との間の経路と、アプリケーション実行部２とアプリケーション実行部４との間の経路とは、共通のアプリケーション間通信部１４を介して通信しているため、アプリケーション実行部２からアプリケーション実行部３への通信負荷と、アプリケーション実行部２からアプリケーション実行部３への通信負荷とは同じであると考えてよい。従って、図１１のａで示される箇所における性能変化トレンド２２の盛り上がりは、アプリケーション実行部３での処理負荷が局所的に増大したことを示していると理解することができる。
【００８９】
また、上記の他に、次の方法で性能変化トレンドを評価してもよい。図１１の時刻ｂにおいて、性能変化トレンド２１および性能変化トレンド２２は、ともにＲＴ時間が増大している。この時刻ｂ周辺の時間帯において、通信情報解析部１０で推定されるＡＰＩ種別のペアとの対応を取ることによって、情報処理分散システム全体の処理負荷を大きくしている要因となる機能を特定することができる。
【００９０】
なお、評価部２０は、上記の各方法に限らず、複数の性能変化トレンドを比較することを基本として、評価者が要求する情報処理分散システム全体の性能の分析を行うために好適な方法で行うようにしてもよい。
【００９１】
図９において、トレンド算出部１９および評価部２０は、例えば図３のプロセッサ１５がメモリ１６等に記憶されたプログラムを実行することにより、当該プロセッサ１５の機能として実現される。ただし、これらは、例えば複数のプロセッサ１５が連携して実現されてもよい。
【００９２】
以上のことから、本実施の形態３によれば、情報処理分散システムの性能について、長時間に渡る性能変化トレンドを得ることができる。従って、短時間における性能評価では見出せない情報処理分散システムの状態または問題の発生などを把握することができる。
【００９３】
＜実施の形態４＞
実施の形態１では、通信情報解析部１０が性能評価の対象となる情報処理装置１に備えられている場合について説明した。例えば、実施の形態１による情報処理装置１が、情報を出力するディスプレイ等を備えたコンピュータ端末である場合は、通信情報解析部１０によって解析された性能評価を確認することが容易である。しかし、実施の形態１による情報処理装置１を、組み込み機器など入出力手段が限られている情報処理分散システムに適用する場合において、通信情報解析部によって解析された性能評価を確認することは難しい。また、情報分散処理システムが組み込み機器である場合は、情報処理リソースが限られていることがあり、当該組み込み機器が提供する機能以外の他の機能（性能評価を表示する等の処理）を同時に実行することが好ましくないことがある。
【００９４】
このような問題を解決するために、本発明の実施の形態４では、通信情報解析部を性能評価の対象となる情報処理装置とは別個の他の情報処理装置に設け、解析処理および性能評価の表示等を当該他の情報処理装置で行うことを特徴としている。以下、本実施の形態４による情報処理分散システムについて詳細に説明する。
【００９５】
図１２は、本実施の形態４による情報処理装置１，２３の構成の一例を示すブロック図である。なお、本実施の形態４では、情報処理分散システムを単一の情報処理装置１で実現し、性能評価を行う機能を情報処理装置１，２３で実現する場合について説明する。
【００９６】
図１２に示すように、本実施の形態４では、情報処理装置１とは別個の情報処理装置２３が設けられている。情報処理装置２３は、通信情報解析部１０を備えている。また、情報処理装置１と情報処理装置２３とは、装置間通信装置２４を介して互いに通信可能に接続されている。その他の構成および動作は、実施の形態１と同様であるため、ここでは詳細な説明は省略する。
【００９７】
通信情報記憶部９は、装置間通信装置２４と通信可能に接続するためのインターフェイスまたは機能と、記憶した通信情報を装置間通信装置２４を介して通信情報解析部１０に送信する機能とを有している。なお、通信情報記憶部９は、例えば情報処理装置１に搭載されたメモリ上に確保された領域を用いることによって実現してもよい。また、通信情報記憶部９は、情報処理装置１が、例えばＵＳＢ（Universal Serial Bus）ポートまたはＳＤカードポートを備えている場合は、これらのポートに接続されたＵＳＢメモリ装置またはＳＤカード（登録商標）の保存領域を用いることによって実現してもよい。このように、通信情報記憶部９は、情報処理装置１に対して着脱可能であり、かつ他の情報処理装置（図１２の例では、情報処理装置２３）に対しても着脱可能である場合は、装置間通信装置２４に接続する機能を有さなくてもよい。
【００９８】
通信情報解析部１０は、装置間通信装置２４と通信可能に接続するためのインターフェイスまたは機能と、通信情報記憶部９から送信された通信情報を装置間通信装置２４を介して受信する機能とを有している。なお、通信情報解析部１０は、通信情報記憶部９がＵＳＢメモリ装置またはＳＤカードで実現される場合は、装置間通信装置２４に接続するためのインターフェイス等を備える代わりに、ＵＳＢメモリ装置またはＳＤカードに記憶された情報を読み出す機能を備えてもよい。
【００９９】
装置間通信装置２４は、情報処理装置１と情報処理装置２３との間における通信を媒介する。装置間通信装置２４は、例えばシリアル通信装置、ＬＡＮ（Local Area Network）装置、またはインターネットを介した通信を実行する装置であってもよい。
【０１００】
なお、図１２において、情報処理装置２３における通信情報解析部１０は、例えば図３のプロセッサ１５がメモリ１６等に記憶されたプログラムを実行することにより、当該プロセッサ１５の機能として実現される。ただし、これらは、例えば複数のプロセッサ１５が連携して実現されてもよい。
【０１０１】
次に、情報処理装置１，２３の動作について説明する。
【０１０２】
実施の形態１では、通信情報解析部１０は、任意のタイミングで通信情報記憶部９から通信情報を取得して解析していた。一方、本実施の形態４では、情報処理装置１が情報処理分散システムとしての機能を実行している間、通信情報記憶部９は、通信監視部８で生成された通信情報を蓄積し続ける。このとき、通信情報解析部１０は、通信情報記憶部９から通信情報を取得しない。そして、情報処理装置１が情報処理分散システムとしての機能を停止すると、情報処理装置２３において性能評価に係る処理が実行される。当該処理が実行されると、通信情報解析部１０は、装置間通信装置２４を介して通信情報記憶部９に対して通信情報を要求することによって、通信情報記憶部９から通信情報を取得する。なお、通信情報解析部１０における解析は、実施の形態１と同様である。
【０１０３】
以上のことから、本実施の形態４によれば、性能評価に係る処理を、当該性能評価の対象となる情報処理装置とは別個の他の情報処理装置で実行させることが可能となる。従って、情報処理分散システムが十分な入出力手段を備えない組み込み機器で構成される場合であっても、性能評価の結果を容易に利用することができる。また、情報処理分散システムは、性能評価に係る処理を実行するための処理負荷が付されることなく動作することが可能となる。
【０１０４】
＜実施の形態５＞
実施の形態１〜４では、情報処理分散システムが単一の情報処理装置で実現される場合について説明した。しかし、一般的には、複数の情報処理装置を互いに通信可能に接続することによって情報処理分散システムを実現する場合がある。
【０１０５】
複数の情報処理装置を通信可能に接続する手段としては、例えば、ＵＳＢまたはＩＥＥＥ１３９４等のシリアルバス、ＮＦＣ（近距離無線通信）、有線接続ＬＡＮまたは無線接続ＬＡＮ、インターネット等が挙げられる。しかし、例えばＵＳＢを用いた接続を行っている情報処理装置は、使用者が任意のタイミングでコネクタを抜き差しする可能性がある。また、無線通信またはインターネットを用いて接続する方法では、周辺の電磁環境またはネットワークの状態によって通信の質が変化することがある。従って、一般的に、複数の情報処理装置で実現される情報処理分散システムでは、通信速度の低減、または通信接続の切断および復旧などが動作中に発生する可能性がある。
【０１０６】
このような状況下でも情報処理分散システムとしての機能を安定して実行し続けるためには、通信状況の変化、または情報処理分散システムとしての機能を実現することが可能な情報処理装置の数の変化を検出し、適当な通信手段および情報処理装置を選択する必要がある。従って、複数の情報処理装置で実現される情報処理分散システムにおいても、性能評価を行うことが求められる。
【０１０７】
複数の情報処理装置で実現される情報処理分散システムにおける性能評価を行うために、本発明の実施の形態５では、各情報処理装置間における通信を監視し、各情報処理装置との通信を行う通信手段ごとに因果関係があるＡＰＩ種別のペアを推定することを特徴としている。以下、本実施の形態５による情報処理分散システムについて詳細に説明する。
【０１０８】
図１３は、本実施の形態５による情報処理装置１，２５，２６の構成の一例を示すブロック図である。なお、本実施の形態５では、情報処理分散システムを複数の情報処理装置１，２５，２６で実現する場合について説明する。
【０１０９】
図１３に示すように、情報処理装置１は、通信手段選択部２７および通信送受信部２８，２９を備えることを特徴としている。情報処理装置２５は、アプリケーション実行部３および通信ライブラリ実行部６を備えている。情報処理装置２６は、アプリケーション実行部４および通信ライブラリ実行部７を備えている。また、通信ライブラリ実行部５の通信送受信部２８と、通信ライブラリ実行部６の通信送受信部１２とは装置間通信装置３０を介して通信可能に接続されている。通信ライブラリ実行部５の通信送受信部２９と、通信ライブラリ実行部７の通信送受信部１３とは装置間通信装置３１を介して通信可能に接続されている。その他の構成および動作は、実施の形態１と同様であるため、ここでは詳細な説明を省略する。
【０１１０】
情報処理装置２５は、情報処理装置１と同じハードウェアおよびオペレーティングシステムで構成されてもよく、情報処理装置１とは異なるハードウェアおよびオペレーティングシステムで構成されてもよい。通信送受信部１２は、装置間通信装置３０の機能をアプリケーション実行部３が利用するための機能を有している。
【０１１１】
情報処理装置２６は、情報処理装置１と同じハードウェアおよびオペレーティングシステムで構成されてもよく、情報処理装置１とは異なるハードウェアおよびオペレーティングシステムで構成されてもよい。通信送受信部１３は、装置間通信装置３１の機能をアプリケーション実行部４が利用するための機能を有している。
【０１１２】
装置間通信装置３０，３１は、同じ通信手段または互いに異なる通信手段によって各情報処理装置１，２５，２６間における通信を実現している。なお、通信手段は、例えばシリアル通信装置、ＬＡＮ装置、またはインターネットを介した通信を実行する装置であってもよい。また、通信手段は、ＣＡＮ（Controller Area Network）またはＭＯＳＴ（Media Oriented System Transport）といった車内ＬＡＮ等、または組み込み用途に特化した通信装置であってもよい。
【０１１３】
通信手段選択部２７は、通信情報解析部１０による解析結果、すなわち因果関係があるＡＰＩ種別のペアと、当該ＡＰＩ種別のペアに基づくＲＴ時間とが入力されると、これらの情報に基づいて、あるＡＰＩを用いたデータ通信を行う情報処理装置（図１３の例では、情報処理装置２５，２６のいずれか）および通信送受信部（図１３の例では、通信送受信部２８，２９のいずれか）を選択し、通信監視部８から入力されたデータ通信に係るデータを通信送受信部２８，２９のいずれかに振り分ける機能を有している。
【０１１４】
なお、図１３において、情報処理装置１における通信手段選択部２７、および通信送受信部２８，２９は、例えば図３のプロセッサ１５がメモリ１６等に記憶されたプログラムを実行することにより、当該プロセッサ１５の機能として実現される。ただし、これらは、例えば複数のプロセッサ１５が連携して実現されてもよい。
【０１１５】
また、情報処理装置２５におけるアプリケーション実行部３、通信ライブラリ実行部６、および通信送受信部１２は、例えば図３のプロセッサ１５がメモリ１６等に記憶されたプログラムを実行することにより、当該プロセッサ１５の機能として実現される。ただし、これらは、例えば複数のプロセッサ１５が連携して実現されてもよい。
【０１１６】
また、情報処理装置２６におけるアプリケーション実行部４、通信ライブラリ実行部７、および通信送受信部１３は、例えば図３のプロセッサ１５がメモリ１６等に記憶されたプログラムを実行することにより、当該プロセッサ１５の機能として実現される。ただし、これらは、例えば複数のプロセッサ１５が連携して実現されてもよい。
【０１１７】
次に、情報処理装置１の動作について説明する。
【０１１８】
アプリケーション実行部２を入出力するデータ通信は、通信監視部８で監視されている。通信監視部８は、当該データ通信に係るデータについて通信情報を生成する。
【０１１９】
図１４は、通信監視部８で生成される通信情報の一例を示す図である。
【０１２０】
図１４に示すように、本実施の形態５による通信監視部８は、実施の形態１による通信監視部８が生成した通信情報（図２参照）と比較して、通信手段（通信送受信部２８，２９のいずれか）の種別を示す通信手段種別をさらに含んだ通信情報を生成している。通信手段種別としては、通信手段を一意に示す名称またはＩＤ番号（図１４の例では、「＃１」）が生成される。
【０１２１】
通信情報記憶部９は、通信監視部８で生成された通信情報を記憶する。なお、本実施の形態５による通信情報記憶部９では、記憶容量または記憶処理を行うＡＰＩのプロトタイプ宣言などが、本実施の形態１による通信情報記憶部９と異なる。
【０１２２】
通信情報解析部１０は、実施の形態で説明した解析処理（図４参照）に加えて、通信手段種別ごとに解析処理を行う。
【０１２３】
図１５は、通信情報解析部１０の動作の一例を示すフローチャートである。
【０１２４】
ステップＳ２０１〜ステップＳ２０４では、図４のステップＳ１０１〜ステップＳ１０４と同様の処理を行うため、ここでは説明を省略する。
【０１２５】
ステップＳ２０５において、ステップＳ２０３およびステップＳ２０４にて取得した通信情報から選択した一の通信手段を含む通信情報のセットを解析対象通信情報セットとする。
【０１２６】
ステップＳ２０６〜ステップＳ２０９では、解析対象通信情報セットに対して、図４のステップＳ１０５〜ステップＳ１０８と同様の処理を行い、選択した通信手段を用いた場合において因果関係があるＡＰＩ種別のペアとＲＴ時間とを各々推定する。ステップＳ２０９にて、アプリケーションごと、通信手段ごと、およびＡＰＩ種別ごとに推定されたＲＴ時間の情報は、通信手段選択部２７に入力される。
【０１２７】
ステップＳ２１０において、解析対象通信情報セットの通信情報に含まれる全ての通信手段についてステップＳ２０６〜ステップＳ２０９の処理を行ったか否かの判断を行う。解析対象通信情報セットの通信情報に含まれる全ての通信手段についてステップＳ２０６〜ステップＳ２０９の処理を行った場合は、ステップＳ２１１に移行する。一方、解析対象通信情報セットの通信情報に含まれる全ての通信手段についてステップＳ２０６〜ステップＳ２０９の処理を行っていない場合は、ステップＳ２０５に移行する。
【０１２８】
ステップＳ２１１では、図４のステップＳ１０９と同様の処理を行うため、ここでは説明を省略する。
【０１２９】
通信手段選択部２７は、通信情報解析部１０から入力された、アプリケーションごと、通信手段ごと、およびＡＰＩ種別ごとに推定されたＲＴ時間に基づいて、あるアプリケーションのあるＡＰＩ種別に対して、優先的に使用される通信送受信部２８，２９のいずれかを選択する。そして、通信監視部８から入力されたデータ通信に係るデータを、選択した通信送受信部２８，２９のいずれかに入力する。
【０１３０】
なお、通信手段選択部２７は、ＲＴ時間を用いて通信送受信部２８，２９のいずれかを選択する方法として、例えば、ＲＴ時間が最も短い通信送受信部２８，２９のいずれかを選択する方法、または、ＲＴ時間の分散が最も小さい、すなわち安定した性能を示す通信送受信部２８，２９のいずれかを選択する方法等、必要な振る舞いを実現するために好適な方法を採用すればよい。
【０１３１】
以上のことから、本実施の形態５によれば、通信手段ごとにＲＴ時間の推定を行うことができる。従って、複数の通信手段を同時に使用する情報処理分散システムにおいて、アプリケーションを書き換えることなく、通信ライブラリ実行部の変更のみで性能評価を行うことができる。また、通信状況が良好な通信手段を優先的に用いることができ、情報処理分散システム全体の性能の向上および最適化を実現することができる。
【０１３２】
なお、図１，８，９，１２，１３において、アプリケーション実行部２，３，４、通信ライブラリ実行部５，６，７、通信監視部８、通信情報解析部１０、通信送受信部１１，１２，１３、アプリケーション間通信部１４、通信情報選択部１７、トレンド算出部１９、評価部２０、通信手段選択部２７、および通信送受信部２８，２９の各々は、図３のプロセッサ１５がメモリ１６に記憶されたソフトウェアプログラムに従って動作することにより実現された。しかし、これに代えて、アプリケーション実行部２，３，４、通信ライブラリ実行部５，６，７、通信監視部８、通信情報解析部１０、通信送受信部１１，１２，１３、アプリケーション間通信部１４、通信情報選択部１７、トレンド算出部１９、評価部２０、通信手段選択部２７、および通信送受信部２８，２９の各々は、ハードウェア（例えば、電気信号に対して特定の演算あるいは処理を行うように構成された演算／処理回路等）として構成するようにしてもよい。また、上記の両者を混在させてもよい。
【０１３３】
また、ソフトウェアのアプリケーション実行部２，３，４、通信ライブラリ実行部５，６，７、通信監視部８、通信情報解析部１０、通信送受信部１１，１２，１３、アプリケーション間通信部１４、通信情報選択部１７、トレンド算出部１９、評価部２０、通信手段選択部２７、および通信送受信部２８，２９の各々と、ハードウェアのアプリケーション実行部２，３，４、通信ライブラリ実行部５，６，７、通信監視部８、通信情報解析部１０、通信送受信部１１，１２，１３、アプリケーション間通信部１４、通信情報選択部１７、トレンド算出部１９、評価部２０、通信手段選択部２７、および通信送受信部２８，２９の各々とを組み合わせた概念として、「部」という語に代えて「処理回路」という語を用いることもできる。
【０１３４】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【０１３５】
本発明は詳細に説明されたが、上記した説明は、すべての態様において、例示であって、この発明がそれに限定されるものではない。例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０１３６】
１  情報処理装置、２，３，４  アプリケーション実行部、５，６，７  通信ライブラリ実行部、８  通信監視部、９  通信情報記憶部、１０  通信情報解析部、１１，１２，１３  通信送受信部、１４  アプリケーション間通信部、１５  プロセッサ、１６  メモリ、１７  通信情報選択部、１８  入力装置、１９  トレンド算出部、２０  評価部、２１，２２  性能変化トレンド、２３  情報処理装置、２４  装置間通信装置、２５，２６  情報処理装置、２７  通信手段選択部、２８，２９  通信送受信部、３０，３１  装置間通信装置。
【要約】
本発明は、特定の通信プロトコルを用いることなく容易に性能評価を行うことが可能な情報処理装置を提供することを目的とする。本発明による情報処理装置（１）は、複数のアプリケーション実行部（２，３，４）と、複数の通信ライブラリ実行部（５，６，７）とを備え、通信ライブラリ実行部（５）は、一のアプリケーション実行部（２）と他のアプリケーション実行部（３，４）とのデータ通信を監視し、当該監視した全てのデータ通信について、データ通信時に一のアプリケーション実行部（２）で用いられたＡＰＩの種別を示すＡＰＩ種別を含む通信情報を生成する通信監視部（８）と、通信監視部（８）で生成された通信情報を記憶する通信情報記憶部（９）と、通信情報記憶部（９）に記憶された通信情報に基づいて、データ通信時に一のアプリケーション実行部（２）で用いられたＡＰＩ種別のペアを推定する通信情報解析部（１０）とを備える。【図１】
0005864039.tif 000002
【図２】
0005864039.tif 000003
【図３】
0005864039.tif 000004
【図４】
0005864039.tif 000005
【図５】
0005864039.tif 000006
【図６】
0005864039.tif 000007
【図７】
0005864039.tif 000008
【図８】
0005864039.tif 000009
【図９】
0005864039.tif 000010
【図１０】
0005864039.tif 000011
【図１１】
0005864039.tif 000012
【図１２】
0005864039.tif 000013
【図１３】
0005864039.tif 000014
【図１４】
0005864039.tif 000015
【図１５】
0005864039.tif 000016