(57)【要約】【課題】一つの側面では、容易にサービスの実行の障害となるボトルネック候補を特定することができるプログラム等を提供することにある。【解決手段】一態様のプログラム１２Ｐは、複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置４の情報に基づいて、連続して同一の情報処理装置４で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出し、算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶し、前記タスク毎のサービス処理時間を平均した平均処理時間を算出し、算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する処理をコンピュータ１に実行させる。【選択図】図２
2018013994.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出し、
算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶し、
前記タスク毎のサービス処理時間を平均した平均処理時間を算出し、
算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する
処理をコンピュータに実行させるプログラム。
【請求項２】
前記グループ毎の処理時間を算出した後、サービスが応答を待つか否かを示す応答情報に基づいて前記応答を待つサービスが存在するか否かを判定し、
前記応答を待つサービスが存在すると判定した場合、前記応答を待つサービスを含むグループの処理時間から前記応答を送信するサービスを含むグループの処理時間を減算する
請求項１に記載のプログラム。
【請求項３】
サービスが応答を待つか否かを示す応答情報に基づいて前記応答を待つサービスが存在するか否かを判定し、
前記応答を待つサービスが存在しないと判定した場合、前記グループの最初のサービスの実行を指示する指示命令を前記情報処理装置に接続された中継装置が受信した受信時刻及び前記グループの次に実行されるサービスの実行を指示する指示命令を前記中継装置が送信した送信時刻を前記中継装置から受信し、
前記送信時刻から前記受信時刻を減算してグループ毎の処理時間を算出する
請求項１又は請求項２に記載のプログラム。
【請求項４】
サービスが応答を待つか否かを示す応答情報に基づいて前記応答を待つサービスが存在するか否かを判定し、
前記応答を待つサービスが存在すると判定した場合、前記グループ内のサービスの実行を指示する指示命令を前記情報処理装置に接続された中継装置が受信した受信時刻及び前記指示命令に対する応答を示す応答命令を前記中継装置が送信した送信時刻を前記中継装置から受信し、
前記送信時刻から前記受信時刻を減算してグループ毎の処理時間を算出する
請求項１又は請求項２に記載のプログラム。
【請求項５】
複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出する算出部と、
該算出部で算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶する時間記憶部と、
前記タスク毎のサービス処理時間を平均した平均処理時間を算出する時間算出部と、
該時間算出部で算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する出力部と
を備えるコンピュータ。
【請求項６】
複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出し、
算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶し、
前記タスク毎のサービス処理時間を平均した平均処理時間を算出し、
算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する
コンピュータを用いた情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービスを評価するプログラム等に関する。
【背景技術】
【０００２】
従来、サービスの実行を指示するリクエストメッセージ及びリクエストメッセージに対する応答を示すレスポンスメッセージを受信することでサービスの処理時間を算出し、所要範囲内に収まるように処理の多重度を変更する技術が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−３８５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された技術では、ボトルネック候補を直接探索することが難しいという問題がある。
【０００５】
一つの側面では、容易にサービスの実行の障害となるボトルネック候補を特定することができるプログラム等を提供することにある。
【課題を解決するための手段】
【０００６】
一態様のプログラムは、複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出し、算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶し、前記タスク毎のサービス処理時間を平均した平均処理時間を算出し、算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する処理をコンピュータに実行させる。
【発明の効果】
【０００７】
一側面によれば、容易にサービスの実行の障害となるボトルネック候補を特定することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの概要を示す模式図である。
【図２】情報処理装置及び情報処理装置のハードウェア群を示すブロック図である。
【図３】ゲートウェイ及びネットワーク機器のハードウェア群を示すブロック図である。
【図４】サービス実行順序ＤＢに格納されているデータの一例を示す図である。
【図５】タスク情報ＤＢに格納されているデータの一例を示す図である。
【図６】ゲートウェイ送信側時刻ＤＢに格納されているデータの一例を示す図である。
【図７】受信側時刻ＤＢに格納されているデータの一例を示す図である。
【図８】送信側時刻ＤＢに格納されているデータの一例を示す図である。
【図９】サービスグループ情報ＤＢに格納されているデータの一例を示す図である。
【図１０】応答待ちのサービスを加えたサービスグループ情報ＤＢに格納されているデータの一例を示す図である。
【図１１】処理時間ＤＢに格納されているデータの一例を示す図である。
【図１２】応答待ち時間を除外した処理時間ＤＢに格納されているデータの一例を示す図である。
【図１３】サービス処理時間ＤＢに格納されているデータの一例を示す図である。
【図１４】平均処理時間ＤＢに格納されているデータの一例を示す図である。
【図１５】平均処理時間及びサービスを表示した表示例を説明する説明図である。
【図１６】本実施形態におけるゲートウェイ送信側時刻ＤＢ、ルータ送信側時刻ＤＢ及びルータ受信側時刻ＤＢの記憶方法の処理手順を示したフローチャートである。
【図１７】本実施形態における情報処理システムの処理手順を示したフローチャートである。
【図１８】本実施形態における情報処理システムの処理手順を示したフローチャートである。
【図１９】本実施形態における情報処理システムの処理手順を示したフローチャートである。
【図２０】本実施形態における情報処理システムの処理手順を示したフローチャートである。
【図２１】本実施形態における情報処理システムの処理手順を示したフローチャートである。
【図２２】本実施形態における情報処理システムの処理手順を示したフローチャートである。
【図２３】本実施形態における情報処理システムの処理手順を示したフローチャートである。
【図２４】情報処理装置のハードウェア群を示すブロック図である。
【図２５】情報処理装置の機能ブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下本実施の形態を、図面を参照して説明する。図１は情報処理システムの概要を示す模式図である。図１に示す情報処理システムは、コンピュータ（以下、情報処理装置とする）１と、中継装置（以下、ゲートウェイとする）２と、中継装置３Ａ、３Ｂ、３Ｃ…（以下、場合により代表してネットワーク機器３とする）と、情報処理装置４Ａ、４Ｂ、４Ｃ…（以下、場合により代表して情報処理装置４とする）とを備える。情報処理装置１はゲートウェイ２を介してインターネット、ＬＡＮ(Local Area Network)または携帯電話網等の通信網Ｎによりネットワーク機器３と相互に接続されている。またネットワーク機器３は情報処理装置４と相互に接続されている。
【００１０】
以下では情報処理システムの概要を説明する。情報処理装置１は例えばパーソナルコンピュータ又はサーバコンピュータ等である。情報処理装置１はタスクに含まれる複数のサービスの実行を指示するタスク実行命令をゲートウェイ２及びネットワーク機器３を介して情報処理装置４へ送信するための装置である。サービスは例えば、ユーザ情報管理サービス又は在庫情報管理サービス等である。タスクは複数であり、情報処理装置１は複数回のタスク実行命令を情報処理装置４へ送信している。タスクは例えば会計処理等である。
【００１１】
ゲートウェイ２及びネットワーク機器３は例えばルータ等である。ゲートウェイ２は異なったプロトコルを持つデータの変換を行い、情報処理装置１とネットワーク機器３との間で情報を中継する装置である。ネットワーク機器３は、ゲートウェイ２及び情報処理装置４Ａ、４Ｂ…間で情報を中継する装置である。
【００１２】
情報処理装置４は例えば、サーバコンピュータ又は仮想マシン等である。情報処理装置４は複数のアプリケーション又はミドルウェア等のコンテナを制御するコンテナ基盤が実装されている。情報処理装置４はネットワーク機器３から一のサービスの実行を指示する指示命令を受信した場合、情報処理装置４上のコンテナ基盤が各サービスを各コンテナに割り当てる。情報処理装置４は割り当てられたコンテナ毎に各サービスを実行する。情報処理装置４は各サービスの実行を終了した場合、指示命令に対する応答を示す応答命令をネットワーク機器３へ送信する。
【００１３】
ネットワーク機器３は指示命令又は指示命令に対する応答を示す応答命令を中継する。ネットワーク機器３は指示命令又は応答命令及び通信時刻を記憶する。通信時刻は例えば、指示命令及び応答命令を送信した送信時刻又は指示命令及び応答命令を受信した受信時刻等である。指示命令又は応答命令とは例えば後述する受信ＩＤ又は送信ＩＤ、指示命令又は応答命令を受信又は送信した情報処理装置４又はゲートウェイ２の名称及びサービスの名称等である。ネットワーク機器３は記憶した通信時刻を情報処理装置１へ送信する。情報処理装置１は通信時刻をネットワーク機器３から受信する。
【００１４】
情報処理装置１は通信時刻に基づいて情報処理装置４で処理を実行した処理時間を算出する。情報処理装置１は算出した処理時間に基づいて各サービスが実行したサービス処理時間を算出する。情報処理装置１はタスク毎にサービス処理時間の平均を示す平均処理時間を算出する。情報処理装置１は平均処理時間の中から最も長い平均処理時間及び最も長い平均処理時間に対応するサービスを抽出する。情報処理装置１は抽出した平均処理時間及びサービスを後述する表示部１５に出力する。このことにより、情報処理装置１の管理者は処理の障害となるボトルネック候補を特定することができる。
【００１５】
以下、情報処理システムの詳細を説明する。図２は情報処理装置１及び情報処理装置４のハードウェア群を示すブロック図である。図２に示す情報処理装置１は、ＣＰＵ(Central Processing Unit)１１、記憶部１２、ＲＡＭ１３、入力部１４、表示部１５、通信部１６及び計時部１７を備える。
【００１６】
ＣＰＵ１１は、バスを介してハードウェア各部と接続されている。ＣＰＵ１１は例えば一もしくは複数のＣＰＵ又はマルチコアＣＰＵ等を備える。ＣＰＵ１１は、記憶部１２に記憶されたプログラム１２Ｐに従いハードウェアの各部を制御する。
【００１７】
記憶部１２は例えばハードディスクまたは大容量メモリ等である。記憶部１２にはＣＰＵ１１が処理を行う際に必要とする種々のデータ、サービス実行順序ＤＢ１２０、タスク情報ＤＢ１２１、ゲートウェイ送信側時刻ＤＢ１２２、受信側時刻ＤＢ１２３、送信側時刻ＤＢ１２４、サービスグループ情報ＤＢ１２５、処理時間ＤＢ１２６、サービス処理時間ＤＢ１２７、平均処理時間ＤＢ１２８及びプログラム１２Ｐを格納する。
【００１８】
ＲＡＭ１３は例えばＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等である。ＲＡＭ１３は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１９】
入力部１４はボタン等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ送信する。表示部１５はＣＰＵ１１から送信された画像データを表示する。表示部１５は例えば液晶画面である。通信部１６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して各種情報をゲートウェイ２との間で送受信する。計時部１７は、例えば現在の時点における時刻を計時し、ＣＰＵ１１の要求に従って、計時結果をＣＰＵ１１に出力する。
【００２０】
図２に示す情報処理装置４は、ＣＰＵ４１、記憶部４２、ＲＡＭ４３、入力部４４、表示部４５及び通信部４６を備える。情報処理装置４のＣＰＵ４１、記憶部４２、ＲＡＭ４３、入力部４４及び表示部４５の構成は、情報処理装置１のＣＰＵ１１、記憶部１２、ＲＡＭ１３及び入力部１４及び表示部１５の構成と同様であるため、簡潔のため記載を省略する。通信部４６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して各種情報をネットワーク機器３との間で送受信する。
【００２１】
図３はゲートウェイ２及びネットワーク機器３のハードウェア群を示すブロック図である。図３に示すゲートウェイ２は、ＣＰＵ２１、記憶部２２、ＲＡＭ２３、通信部２６及び計時部２７を備える。ゲートウェイ２のＣＰＵ２１、記憶部２２、ＲＡＭ２３及び計時部２７の構成は、情報処理装置１のＣＰＵ１１、記憶部１２、ＲＡＭ１３及び計時部１７の構成と同様であるため、簡潔のため記載を省略する。通信部２６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して各種情報を情報処理装置１及びネットワーク機器３との間で送受信する。
【００２２】
図３に示すネットワーク機器３は、ＣＰＵ３１、記憶部３２、ＲＡＭ３３、通信部３６及び計時部３７を備える。ネットワーク機器３のＣＰＵ３１、記憶部３２、ＲＡＭ３３及び計時部３７の構成は、情報処理装置１のＣＰＵ１１、記憶部１２、ＲＡＭ１３及び計時部１７の構成と同様であるため、簡潔のため記載を省略する。通信部３６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して各種情報をゲートウェイ２及び情報処理装置４との間で送受信する。
【００２３】
図４はサービス実行順序ＤＢ１２０に格納されているデータの一例を示す図である。サービス実行順序ＤＢ１２０は各タスクに含まれるサービスの実行順序が記憶されたデータベースである。タスクは例えば複数のサービスを実行させる命令である。サービス実行順序ＤＢ１２０はタスク列及びサービス名列を備える。タスク列は、主キーとなるタスクが記憶される。サービス名列は１、２、３…列等を備える。サービス名列にはサービスの名称が記憶され、１、２、３…等はサービスの実行順序を示している。ＣＰＵ１１は予めタスクに対応するサービス及びサービスの実行順序を管理者から入力部１４で入力を受け付け、受け付けたサービス及びサービスの実行順序をサービス実行順序ＤＢ１２０に記憶している。例えば、タスク「Ｔ１」のサービス名列の２列目にはサービス「ｆ」が記憶される。すなわち、タスク「Ｔ１」の２番目にサービス「ｆ」が実行されることを示す。また、タスク「Ｔ２」のサービス名列の１列目にはサービス「ａ」が記憶される。すなわち、タスク「Ｔ２」の１番目にサービス「ａ」が実行されることを示す。
【００２４】
図５はタスク情報ＤＢ１２１に格納されているデータの一例を示す図である。タスク情報ＤＢ１２１はタスクを識別するためのタスクＩＤと、タスクＩＤに対応する情報処理装置４を識別するための情報ＩＤとの対応関係を記憶するデータベースである。同一の種類のタスクが実行された場合でも、回数によって一又は複数のサービスを割り当てる情報処理装置４が変更される。このため、タスク情報ＤＢ１２１には、タスクＩＤ毎に、タスクＩＤと、サービスを実行する情報処理装置４の情報ＩＤとの対応関係を示すテーブルが記憶されている。各テーブルはタスクＩＤ列及び情報ＩＤ列を備える。タスクＩＤ列には主キーとなるタスクＩＤが記憶される。タスクＩＤ列には例えば「Ｔ１−１」等が記憶される。「Ｔ１−１」は例えば１回目に実行したタスクＴ１を示す。情報ＩＤ列はさらにｌ,ｆ,ｊ…列等を備える。ｌ,ｆ,ｊ…列はサービスの名称であり、ＣＰＵ１１はサービス実行順序ＤＢ１２０を参照し、各情報ＩＤ列にタスクに対応するサービス名列を記憶する。
【００２５】
ｌ,ｆ,ｊ…列には、各サービス名に対応する情報ＩＤが記憶される。「Ｔ１−１」行のｆ列目には例えば、「Ａ−f−００１」が記憶される。「Ａ−f−００１」は例えばサービス「f」を実行する情報処理装置「Ａ」を示す１つ目のＩＤであることを示す。
【００２６】
タスク情報ＤＢ１２１の記憶方法は以下の通りである。ＣＰＵ１１は各情報処理装置４から各情報処理装置４が実行したタスクＩＤ及び情報ＩＤを受信する。ＣＰＵ１１は受信したタスクＩＤ及び情報ＩＤをタスク情報ＤＢ１２１に記憶する。なお、本実施形態では明細書の枚数の都合上、タスクが３回実行された場合を想定しているが、これに限られるものではない。例えば、所定の時間が経過するまでタスクを繰り返し実行し、実行したタスクＩＤ及び実行した情報処理装置４の情報ＩＤをタスク情報ＤＢ１２１に記憶してもよい。あるいは、ＣＰＵ１１はサービスの実行回数が所定の回数を超えるまでタスクを繰り返し実行し、実行したタスクＩＤ及び実行した情報処理装置４の情報ＩＤをタスク情報ＤＢ１２１に記憶してもよい。
【００２７】
図６はゲートウェイ送信側時刻ＤＢ１２２に格納されているデータの一例を示す図である。ゲートウェイ送信側時刻ＤＢ１２２はタスクに含まれる複数のサービスの実行を指示するタスク実行命令を送信した送信時刻を記憶するデータベースである。ゲートウェイ送信側時刻ＤＢ１２２はタスクＩＤ列、送信先列、サービス列及び送信時刻列を備える。タスクＩＤ列には主キーとなるタスクＩＤが記憶される。送信先列にはタスク実行命令をネットワーク機器３を介して送信する情報処理装置４の名称が記憶される。サービス列には情報処理装置４が最初に実行するサービスの名称が記憶される。送信時刻列にはタスク実行命令を送信した送信時刻が記憶される。送信時刻列には例えば「２０１５／１２／２２  ００：１０：０５．３１９」が記憶される。「２０１５／１２／２２  ００：１０：０５．３１９」は例えば２０１５年１２月２２日０時１０分５秒３１９を示す。
【００２８】
ゲートウェイ２は指示命令を送信する毎にタスクＩＤ、送信先情報処理装置、サービス及び送信時刻を記憶部２２に記憶する。ゲートウェイ２は任意の時間間隔でタスクＩＤ、送信先情報処理装置、サービス及び送信時刻を通信部２６から情報処理装置１へ送信する。情報処理装置１はタスクＩＤ、送信先情報処理装置、サービス及び送信時刻をゲートウェイ２から受信し、受信したタスクＩＤ、送信先情報処理装置、サービス及び送信時刻をゲートウェイ送信側時刻ＤＢ１２２に記憶する。
【００２９】
図７は受信側時刻ＤＢ１２３に格納されているデータの一例を示す図である。受信側時刻ＤＢ１２３は一のサービスの実行を指示する指示命令又は指示命令に対する応答を示す応答命令を受信した受信時刻を記憶するデータベースである。受信側時刻ＤＢ１２３は受信ＩＤ列、送信元列、サービス列及び受信時刻列を備える。受信ＩＤ列には受信時刻を識別するための受信ＩＤが記憶される。送信元列には指示命令又は応答命令を受信した情報処理装置４又はゲートウェイ２の名称が記憶される。サービス列には情報処理装置４が実行するサービスの名称及び応答を待つサービスが存在するか否かを示す応答情報が記憶される。応答情報は例えば、「ＲＥＳ：」である。また、送信元列の「ＧＷ」は例えばゲートウェイ２を示す。送信元列の「Ｃ」又は「Ｅ」等は例えば情報処理装置４Ｃ又は４Ｅ等を示す。
【００３０】
ネットワーク機器３は指示命令又は応答命令を受信する毎に受信ＩＤ、送信元情報処理装置、サービス及び受信時刻を記憶部２２に記憶する。ネットワーク機器３は任意の時間間隔で受信ＩＤ、送信元情報処理装置、サービス、応答情報及び受信時刻を通信部２６で情報処理装置１から受信する。情報処理装置１は受信ＩＤ、送信元情報処理装置、サービス、応答情報及び受信時刻を通信部１６でネットワーク機器３から受信し、受信した受信ＩＤ、送信元情報処理装置、サービス、応答情報及び受信時刻を受信側時刻ＤＢ１２３に記憶する。
【００３１】
図８は送信側時刻ＤＢ１２４に格納されているデータの一例を示す図である。送信側時刻ＤＢ１２４は一のサービスの実行を指示する指示命令又は指示命令に対する応答を示す応答命令を送信した送信時刻を記憶するデータベースである。送信側時刻ＤＢ１２４は送信ＩＤ列、送信先列、サービス列及び送信時刻列を備える。送信ＩＤ列には送信時刻を識別するための送信ＩＤが記憶される。送信先列には指示命令又は応答命令を送信した情報処理装置４又はゲートウェイ２の名称が記憶される。サービス列には情報処理装置４が実行するサービスの名称及び応答情報が記憶される。
【００３２】
ネットワーク機器３は指示命令又は応答命令を送信する毎に送信ＩＤ、送信先情報処理装置、サービス及び送信時刻を記憶部２２に記憶する。ネットワーク機器３は任意の時間間隔で送信ＩＤ、送信先情報処理装置、サービス及び送信時刻を通信部２６から情報処理装置１へ送信する。情報処理装置１は送信ＩＤ、送信先情報処理装置、サービス、応答情報及び送信時刻をネットワーク機器３から受信し、受信した送信ＩＤ、送信先情報処理装置、サービス、応答情報及び送信時刻を送信側時刻ＤＢ１２４に記憶する。
【００３３】
図９はサービスグループ情報ＤＢ１２５に格納されているデータの一例を示す図である。サービスグループ情報ＤＢ１２５は連続して同一の情報処理装置４で実行したサービスをグループ化したグループとタスクとの対応関係を記憶するためのデータベースである。サービスグループ情報ＤＢ１２５はタスクＩＤ列及び処理順序列等を備える。タスクＩＤ列には主キーとなるタスクＩＤが記憶される。処理順序列はさらに１列、２列、３列等を備える。処理順序列内の各列の名称はサービスの処理順序を示しており、各列にはグループが記憶される。グループは例えば各情報処理装置４で連続して処理を実行した一又は複数のサービスをグループ化した分類である。例えば、タスク「Ｔ１−１」の１列には情報処理装置「Ａ」で連続して処理を実行したサービス「ｌ，ｆ，ｊ」が記憶される。タスク「Ｔ１−１」の２列には情報処理装置「Ｂ」で連続して処理を実行したサービス「ｋ，ｅ，ｆ」が記憶される。タスク「Ｔ１−２」の１列には情報処理装置「Ａ」で処理を実行したサービス「ｆ」が記憶される。サービスグループ情報ＤＢ１２５の記憶方法については後述する。
【００３４】
図１０は応答待ちのサービスを加えたサービスグループ情報ＤＢ１２５に格納されているデータの一例を示す図である。例えば、タスク「Ｔ１−２」の処理順序列の３列には「ｊ，ｋ，ｅ，（４）」が記憶される。「ｊ，ｋ，ｅ，（４）」は例えばサービスｅが（４）、すなわち処理順序列の４列に記憶されたサービスｆからの応答を待つことを示す。タスク「Ｔ１−３」の処理順序列の３列には「ｊ，ｋ，（４）」が記憶される。「ｊ，ｋ，（４）」は例えばサービスｋが（４）、すなわち処理順序列の４列に記憶されたサービスｅ及び（５）からの応答を待つことを示す。タスク「Ｔ１−３」の処理順序列の４列には「ｅ，（５）」が記憶される。「ｅ，（５）」は例えばサービスｅが（５）、すなわち処理順序列の５列に記憶されたサービスｆからの応答を待つことを示す。応答待ちのサービスを加えたサービスグループ情報ＤＢ１２５の記憶方法については後述する。
【００３５】
図１１は処理時間ＤＢ１２６に格納されているデータの一例を示す図である。処理時間ＤＢ１２６は実行された複数のサービスの合計処理時間をグループ毎に記憶したデータベースである。処理時間の単位はミリ秒である。処理時間ＤＢ１２６の各列はサービスグループ情報ＤＢ１２５の各列と同一であるため、説明を省略する。また、処理時間ＤＢ１２６の各列はサービスグループ情報ＤＢ１２５の各列と対応している。例えば、タスク「Ｔ１−１」の１列にはサービス「ｌ，ｆ，ｊ」のグループの処理時間が１６０ミリ秒であることを示す。処理時間ＤＢ１２６の記憶方法については後述する。
【００３６】
図１２は応答待ち時間を除外した処理時間ＤＢ１２６に格納されているデータの一例を示す図である。例えば、タスク「Ｔ２−２」の４列には２０ミリ秒が記憶されている。これは図１１に示すタスクＩＤ「Ｔ２−２」の４列の処理時間１４０ミリ秒から応答待ちをしているタスクＩＤ「Ｔ２−２」の５列の処理時間１２０ミリ秒を減算した値である。応答待ち時間を除外した処理時間ＤＢ１２６の記憶方法については後述する。
【００３７】
図１３はサービス処理時間ＤＢ１２７に格納されているデータの一例を示す図である。サービス処理時間ＤＢ１２７はサービス毎の処理時間を示すサービス処理時間を示したデータベースである。サービス処理時間ＤＢ１２７はタスクＩＤ列及びサービス列を備える。タスクＩＤ列には主キーとなるタスクＩＤが記憶される。サービス列はさらにタスクＩＤに含まれるサービスであるｌ，ｆ，ｊ列等を備える。ｌ，ｆ，ｊ列等にはサービス処理時間が記憶される。例えば、タスク「Ｔ１−１」のｆ列には「５３．３３」が記憶される。すなわち、タスク「Ｔ１−１」のサービスｆのサービス処理時間が５３．３３ミリ秒であることを示す。サービス処理時間ＤＢ１２７の記憶方法については後述する。
【００３８】
図１４は平均処理時間ＤＢ１２８に格納されているデータの一例を示す図である。平均処理時間ＤＢ１２８は各タスクのサービス処理時間を平均した平均処理時間が記憶されたデータベースである。平均処理時間ＤＢ１２８はサービスａ、ｅ、ｆ列等を備える。サービスａ、ｅ、ｆ列等にはサービスａ、ｅ又はｆに対応する平均処理時間が記憶される。例えば、サービスａ列には「５０．００」が記憶される。すなわち、サービスａの平均処理時間が５０．００ミリ秒であることを示す。平均処理時間ＤＢ１２８の記憶方法については後述する。
【００３９】
以下、図９に示すサービスグループ情報ＤＢ１２５の記憶方法について説明する。ＣＰＵ１１はサービス実行順序ＤＢ１２０、タスク情報ＤＢ１２１、ゲートウェイ送信側時刻ＤＢ１２２、受信側時刻ＤＢ１２３及び送信側時刻ＤＢ１２４を記憶部１２から読み込む。ＣＰＵ１１は図５に示すタスク情報ＤＢ１２１からタスクＩＤ「Ｔ１−１」を抽出する。ＣＰＵ１１は抽出したタスクＩＤ「Ｔ１−１」に対応するサービス「ｌ」をタスク情報ＤＢ１２１から抽出する。
【００４０】
タスク情報ＤＢ１２１におけるタスクＩＤ「Ｔ１−１」のサービス「ｌ」列の情報ＩＤが「Ａ−ｌ−００１」に存在するため、ＣＰＵ１１はサービス「ｌ」を実行する情報処理装置「Ａ」を抽出する。ＣＰＵ１１は抽出したサービス「ｌ」の次の列のサービス「ｆ」を抽出する。タスクＩＤ「Ｔ１−１」のサービス「ｌ」列の情報ＩＤが「Ａ−ｆ−００１」に存在するため、ＣＰＵ１１は抽出したサービス「ｆ」を実行する情報処理装置「Ａ」を抽出する。ＣＰＵ１１は抽出したサービス「ｌ」及びサービス「ｆ」の情報処理装置４が同一であるか否かを判定する。
【００４１】
サービス「ｌ」及びサービス「ｆ」の情報処理装置４が「Ａ」であるため、ＣＰＵ１１は情報処理装置４が同一であると判定する。ＣＰＵ１１は抽出したサービス「ｌ」及びサービス「ｆ」をグループ化する。次にＣＰＵ１１は抽出したサービス「ｆ」の次の列のサービス「ｊ」を抽出する。タスクＩＤ「Ｔ１−１」の最初のサービス「ｆ」列の情報ＩＤが「Ａ−ｊ−００１」に存在するため、ＣＰＵ１１は抽出したサービス「ｊ」を実行する情報処理装置「Ａ」を抽出する。ＣＰＵ１１は抽出したサービス「ｆ」及びサービス「ｊ」の情報処理装置４が同一であるか否かを判定する。ＣＰＵ１１は抽出したサービス「ｌ」、「ｆ」及び「ｊ」をグループ化する。図９に示すように、ＣＰＵ１１はグループ化したサービス「ｌ, ｆ, ｊ」をサービスグループ情報ＤＢ１２５の「Ｔ１−１」行の１列に記憶する。
【００４２】
タスク情報ＤＢ１２１におけるタスクＩＤ「Ｔ１−１」のサービス「ｋ」列の情報ＩＤが「Ｂ−ｋ−００１」に存在するため、ＣＰＵ１１はサービス「ｋ」を実行する情報処理装置「Ｂ」を抽出する。ＣＰＵ１１は抽出したサービス「ｊ」及びサービス「ｋ」の情報処理装置４が同一であるか否かを判定する。ＣＰＵ１１は抽出したサービス「ｊ」及びサービス「ｋ」の情報処理装置４が同一でないと判定し、「Ｔ１−１」行の１列にサービス「ｋ」を記憶しない。
【００４３】
ＣＰＵ１１は抽出したサービス「ｋ」の次の列のサービス「ｅ」を抽出する。タスクＩＤ「Ｔ１−１」のサービス「ｅ」列の情報ＩＤが「Ｂ−ｅ−００１」に存在するため、ＣＰＵ１１は抽出したサービス「ｅ」を実行する情報処理装置「Ｂ」を抽出する。ＣＰＵ１１は抽出したサービス「ｋ」及びサービス「ｅ」の情報処理装置４が同一であるか否かを判定する。
【００４４】
サービス「ｋ」及びサービス「ｅ」の情報処理装置４が「Ｂ」であるため、ＣＰＵ１１は情報処理装置４が同一であると判定する。ＣＰＵ１１は抽出したサービス「ｋ」及びサービス「ｅ」をグループ化する。次にＣＰＵ１１は抽出したサービス「ｅ」の次の列のサービス「ｆ」を抽出する。タスクＩＤ「Ｔ１−１」の最後のサービス「ｆ」列の情報ＩＤが「Ｂ−ｆ−００１」に存在するため、ＣＰＵ１１は抽出したサービス「ｆ」を実行する情報処理装置「Ｂ」を抽出する。ＣＰＵ１１は抽出したサービス「ｅ」及びサービス「ｆ」の情報処理装置４が同一であるか否かを判定する。ＣＰＵ１１は抽出したサービス「ｋ」、「ｅ」及び「ｆ」をグループ化する。ＣＰＵ１１はタスク情報ＤＢ１２１の全てのタスクＩＤに対して同様の処理を行う。
【００４５】
以下、図１０の応答待ちのサービスを加えたサービスグループ情報ＤＢ１２５の記憶方法について説明する。ＣＰＵ１１はタスク情報ＤＢ１２１からタスクＩＤ「Ｔ１−１」を抽出する。ＣＰＵ１１は抽出したタスクＩＤ「Ｔ１−１」に対応するサービス「ｌ」をタスク情報ＤＢ１２１から抽出する。ＣＰＵ１１はゲートウェイ送信側時刻ＤＢ１２２及び受信側時刻ＤＢ１２３を参照する。ＣＰＵ１１は図６に示すゲートウェイ送信側時刻ＤＢ１２２のタスクＩＤ「Ｔ１−１」の送信時刻「２０１５／１２／２２  ００：１０：０５．３１９」以降で受信側時刻ＤＢ１２３の最も早い時刻を特定する。すなわちＣＰＵ１１は図７に示す受信側時刻ＤＢ１２３の１行目の受信時刻「２０１５／１２／２２  ００：１０：０５．３２４」を特定する。ＣＰＵ１１は受信時刻「２０１５／１２／２２  ００：１０：０５．３２４」に対応するサービスに「ＲＥＳ」が含まれていないため、サービス「ｌ」が応答待ちを行わないと判定する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５のタスクＩＤ「Ｔ１−１」の１列をそのままにする。ＣＰＵ１１はタスク情報ＤＢ１２１でタスクＩＤ「Ｔ１−１」に対応する全てのサービスを抽出し、応答待ちが存在するか否かを判定する。
【００４６】
ＣＰＵ１１はタスク情報ＤＢ１２１からタスクＩＤ「Ｔ２−２」を抽出する。ＣＰＵ１１は抽出したタスクＩＤ「Ｔ２−２」に対応する４列目のサービス「ｆ」をタスク情報ＤＢ１２１から抽出する。ＣＰＵ１１はゲートウェイ送信側時刻ＤＢ１２２及び受信側時刻ＤＢ１２３を参照する。ＣＰＵ１１は図６に示すゲートウェイ送信側時刻ＤＢ１２２のタスクＩＤ「Ｔ２−２」の送信時刻「２０１５／１２／２２  ００：１０：１３．４０８」以降で最も送信時刻が早く、サービスが「ｆ」である送信時刻を特定する。すなわちＣＰＵ１１は図７に示す受信側時刻ＤＢ１２３の４列目の受信時刻「２０１５／１２／２２  ００：１０：１３．５７６」を特定する。ＣＰＵ１１は受信時刻「２０１５／１２／２２  ００：１０：１３．５７６」に対応するサービスに「ＲＥＳ」が含まれているため、サービス「ｆ」が応答待ちを行うと判定する。
【００４７】
ＣＰＵ１１はサービスグループ情報ＤＢ１２５を参照する。ＣＰＵ１１はサービス「ｆ」が４列にあり、サービス「ｆ」の次のサービス「ｇ」が５列にあるため、サービス「ｆ」とサービス「ｇ」とが別のグループであると判定する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５のタスクＩＤ「Ｔ２−２」の４列のサービス「ｆ」の隣に（５）を記憶する。ＣＰＵ１１はタスク情報ＤＢ１２１の全てのタスクＩＤに対して同様の処理を行う。
【００４８】
以下、図１１に示す処理時間ＤＢ１２６の記憶方法について説明する。まず、応答待ちを含まない場合の処理時間の算出方法を説明する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５からタスクＩＤ「Ｔ１−１」を抽出する。ＣＰＵ１１は抽出したタスクＩＤ「Ｔ１−１」に対応する１列をサービスグループ情報ＤＢ１２５から抽出する。
【００４９】
ＣＰＵ１１は図１０に示すサービスグループ情報ＤＢ１２５を参照し、抽出したグループ１列の内の最初のサービス「ｌ」を特定する。ＣＰＵ１１はゲートウェイ送信側時刻ＤＢ１２２及び受信側時刻ＤＢ１２３を参照する。ＣＰＵ１１は送信時刻「２０１５／１２／２２  ００：１０：０５．３１９」以降で受信側時刻ＤＢ１２３の最も早い時刻を特定する。すなわちＣＰＵ１１は受信側時刻ＤＢ１２３の１行目の受信時刻「２０１５／１２／２２  ００：１０：０５．３２４」を特定する。ＣＰＵ１１はサービス「ｌ」を送信した送信時刻「２０１５／１２／２２  ００：１０：０５．３２４」を抽出する。
【００５０】
ＣＰＵ１１応答待ちを含むグループの次のサービスを特定する。すなわち、ＣＰＵ１１はグループ２列の内の最初のサービス「ｋ」を特定する。ＣＰＵ１１は送信側時刻ＤＢ１２４を参照し、サービス「ｋ」を受信した送信時刻「２０１５／１２／２２  ００：１０：０５．４８４」を抽出する。
【００５１】
ＣＰＵ１１は送信時刻「２０１５／１２／２２  ００：１０：０５．４８４」から受信時刻「２０１５／１２／２２  ００：１０：０５．３２４」を減算し、処理時間「１６０ミリ秒」を算出する。ＣＰＵ１１は算出した処理時間「１６０ミリ秒」を処理時間ＤＢ１２６の「Ｔ１−１」行の１列目に記憶する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５でタスクＩＤ「Ｔ１−１」に対応する全てのグループを抽出し、処理時間を算出し、算出した処理時間を処理時間ＤＢ１２６に記憶する。
【００５２】
次に応答待ちを含む場合の処理時間の算出方法を説明する。ＣＰＵ１１は図１０に示すサービスグループ情報ＤＢ１２５からタスクＩＤ「Ｔ２−２」を抽出する。ＣＰＵ１１は抽出したタスクＩＤ「Ｔ２−２」に対応する３列をサービスグループ情報ＤＢ１２５から抽出する。
【００５３】
ＣＰＵ１１は応答待ちを行うサービスの次のサービスを特定する。すなわち、抽出した３列の内の最初のサービス「ｅ」の次に（４）が存在するため、４列の最初のサービス「ｆ」を特定する。ＣＰＵ１１はサービス「ｆ」に対する指示命令を受信した受信時刻を抽出する。すなわち、ＣＰＵ１１は受信側時刻ＤＢ１２３の３行目のサービス「ｆ」に対する指示命令を受信した受信時刻「２０１５／１２／２２  ００：１０：０６．４５０」を抽出する。
【００５４】
次にＣＰＵ１１は応答待ちを行うサービスを特定する。すなわち、ＣＰＵ１１は（４）の前にあるサービス「ｅ」を特定する。ＣＰＵ１１は「ＲＥＳ：ｅ」へ応答命令を送信した送信時刻を抽出する。すなわち、ＣＰＵ１１は送信側時刻ＤＢ１２４の４行目のサービス「ＲＥＳ：ｅ」に対する応答命令を送信した送信時刻「２０１５／１２／２２  ００：１０：０６．５９０」を抽出する。
【００５５】
ＣＰＵ１１は送信時刻「２０１５／１２／２２  ００：１０：０６．５９０」から受信時刻「２０１５／１２／２２  ００：１０：０６．４５０」を減算し、処理時間「１４０ミリ秒」を算出する。ＣＰＵ１１は算出した処理時間「１４０ミリ秒」を処理時間ＤＢ１２６の「Ｔ２−２」行の４列目に記憶する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５でタスクＩＤ「Ｔ２−２」に対応する全てのグループを抽出し、処理時間を算出し、算出した処理時間を処理時間ＤＢ１２６に記憶する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５の全てのタスクＩＤに対して同様の処理を行う。
【００５６】
以下、図１２に示す応答待ち時間を除外した処理時間ＤＢ１２６の記憶方法について説明する。例えば、ＣＰＵ１１はサービスグループ情報ＤＢ１２５からタスクＩＤ「Ｔ２−２」を抽出する。ＣＰＵ１１は抽出したタスクＩＤ「Ｔ２−２」に対応する４列をサービスグループ情報ＤＢ１２５から抽出する。
【００５７】
ＣＰＵ１１はサービスグループ情報ＤＢ１２５を参照し、抽出した４列に応答待ちを行うサービスが含まれるか否かを判定する。ＣＰＵ１１は抽出した４列に応答待ちを行うサービスが含まれると判定する。ＣＰＵ１１は処理時間ＤＢ１２６を参照し、抽出した４列の処理時間「１４０ミリ秒」からグループ５列の応答待ちの処理時間「１２０ミリ秒」を減算する。
【００５８】
ＣＰＵ１１は減算した処理時間「２０ミリ秒」を処理時間ＤＢ１２６の４列に記憶する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５でタスクＩＤ「Ｔ２−２」に対応する全てのグループを抽出したか否かを判定する。ＣＰＵ１１はサービスグループ情報ＤＢ１２５の全てのタスクＩＤに対して同様の処理を行う。
【００５９】
以下、図１３に示すサービス処理時間ＤＢ１２７の記憶方法について説明する。ＣＰＵ１１は処理時間ＤＢ１２６からタスクＩＤ「Ｔ１−１」を抽出する。ＣＰＵ１１は抽出したタスクＩＤ「Ｔ１−１」に対応する１列を処理時間ＤＢ１２６から抽出する。
【００６０】
ＣＰＵ１１はサービスグループ情報ＤＢ１２５及び処理時間ＤＢ１２６を参照する。ＣＰＵ１１は処理時間ＤＢ１２６の「Ｔ１−１」の１列の処理時間「１６０ミリ秒」をサービスグループ情報ＤＢ１２５の「Ｔ１−１」の１列に含まれるサービス「ｌ，ｊ，ｋ」の数３で除算することでサービス処理時間「５３．３ミリ秒」を算出する。ＣＰＵ１１は算出したサービス処理時間「５３．３ミリ秒」をサービス「ｌ，ｊ，ｋ」に夫々割り振る。ＣＰＵ１１は算出したサービス処理時間「５３．３ミリ秒」をサービス処理時間ＤＢ１２７におけるサービス「ｌ，ｊ，ｋ」の夫々の列に記憶する。
【００６１】
ＣＰＵ１１はサービスグループ情報ＤＢ１２５のタスクＩＤ「Ｔ１−１」の全てのグループに対して同様の処理を行う。ＣＰＵ１１はサービスグループ情報ＤＢ１２５の全てのタスクＩＤに対して同様の処理を行う。
【００６２】
以下、図１４に示す平均処理時間ＤＢ１２８の記憶方法について説明する。ＣＰＵ１１はサービス処理時間ＤＢ１２７からサービス「ａ」を抽出する。ＣＰＵ１１は抽出したサービス「ａ」に対応するタスク「Ｔ２−１」、「Ｔ２−２」及び「Ｔ２−３」のサービス処理時間「５０．００」、「５０．００」及び「５０．００」の平均を示す平均処理時間「５０．００」を算出する。ＣＰＵ１１は算出した平均処理時間「５０．００」を平均処理時間ＤＢ１２８のサービス「ａ」列に記憶する。
【００６３】
ＣＰＵ１１はサービス処理時間ＤＢ１２７からサービス「ｅ」を抽出する。ＣＰＵ１１は抽出したサービス「ｅ」に対応するタスク「Ｔ２−１」、「Ｔ２−２」及び「Ｔ２−３」のサービス処理時間「７５．００」、「２２３．３３」及び「６０．００」の平均を示す平均処理時間「９２．５０」を算出する。ＣＰＵ１１は算出した平均処理時間「９２．５０」を平均処理時間ＤＢ１２８のサービス「ｅ」列に記憶する。ＣＰＵ１１はサービス処理時間ＤＢ１２７の全てのサービスに対して同様の処理を行う。
【００６４】
以下、ボトルネック候補を算出する方法について説明する。ＣＰＵ１１は平均処理時間ＤＢ１２８を参照し、各サービスの平均処理時間の内、最も長い平均処理時間及び平均処理時間に対応するサービスを抽出する。すなわち、ＣＰＵ１１は平均処理時間「４０７．７７ミリ秒」及びサービスｈを抽出する。図１５は平均処理時間及びサービスを表示した表示例を説明する説明図である。図１５に示すようにＣＰＵ１１は抽出した平均処理時間「４０７．７７ミリ秒」及びサービスｈを表示部１５に表示し、処理を終了する。
【００６５】
図１６は本実施形態におけるゲートウェイ送信側時刻ＤＢ１２２、ルータ送信側時刻ＤＢ１２３及びルータ受信側時刻ＤＢ１２４の記憶方法の処理手順を示したフローチャートである。ＣＰＵ１１はタスクＩＤ、送信先情報処理装置、実行するサービス及び送信時刻をゲートウェイ２から受信する（ステップＳ０１）。ＣＰＵ１１は受信したタスクＩＤ、送信先情報処理装置、サービス及び送信時刻をゲートウェイ送信側時刻ＤＢ１２２に記憶する（ステップＳ０２）。
【００６６】
ＣＰＵ１１は受信ＩＤ、送信元情報処理装置、サービス、応答情報及び受信時刻をネットワーク機器３から受信する（ステップＳ０３）。ＣＰＵ１１は受信した受信ＩＤ、送信元情報処理装置、サービス、応答情報及び受信時刻を受信側時刻ＤＢ１２３に記憶する（ステップＳ０４）。
【００６７】
ＣＰＵ１１は送信ＩＤ、送信先情報処理装置、サービス、応答情報及び送信時刻をネットワーク機器３から受信する（ステップＳ０５）。ＣＰＵ１１は受信した送信ＩＤ、送信先情報処理装置、サービス、応答情報及び送信時刻を送信側時刻ＤＢ１２４に記憶し（ステップＳ０６）、処理を終了する。
【００６８】
図１７〜２２は本実施形態における情報処理システムの処理手順を示したフローチャートである。ＣＰＵ１１はサービス実行順序ＤＢ１２０、タスク情報ＤＢ１２１、ゲートウェイ送信側時刻ＤＢ１２２、受信側時刻ＤＢ１２３及び送信側時刻ＤＢ１２４を記憶部１２から読み込む（ステップＳ１１）。ＣＰＵ１１はタスク情報ＤＢ１２１から一のタスクＩＤを抽出する（ステップＳ１２）。ＣＰＵ１１は抽出したタスクＩＤに対応する一のサービスをタスク情報ＤＢ１２１から抽出する（ステップＳ１３）。
【００６９】
ＣＰＵ１１は抽出したサービスを実行する情報処理装置４をタスク情報ＤＢ１２１で抽出する（ステップＳ１４）。ＣＰＵ１１はサービス実行順序ＤＢ１２０を参照し、抽出したサービスの次のサービスを抽出する（ステップＳ１５）。ＣＰＵ１１は抽出したサービスを実行する情報処理装置４をタスク情報ＤＢ１２１で抽出する（ステップＳ１６）。ＣＰＵ１１は抽出した一のサービスと一のサービスの次に実行するサービスの情報処理装置４が同一であるか否かを判定する（ステップＳ１７）。
【００７０】
ＣＰＵ１１は情報処理装置４が同一でないと判定した場合（ステップＳ１７：ＮＯ）、ステップＳ１９に処理を移す。ＣＰＵ１１は情報処理装置４が同一であると判定した場合（ステップＳ１７：ＹＥＳ）、抽出した２つのサービスをグループ化する（ステップＳ１８）。グループ化したサービスをサービスグループ情報ＤＢ１２５に記憶する（ステップＳ１９）。ＣＰＵ１１はタスク情報ＤＢ１２１でタスクＩＤに対応する全てのサービスを抽出したか否かを判定する（ステップＳ２０）。
【００７１】
ＣＰＵ１１は全てのサービスを抽出しなかったと判定した場合（ステップＳ２０：ＮＯ）、処理をステップＳ１３に移し、処理を繰り返す。ＣＰＵ１１は全てのサービスを抽出したと判定した場合（ステップＳ２０：ＹＥＳ）、全てのタスクＩＤを抽出したか否かを判定する（ステップＳ２１）。ＣＰＵ１１は全てのタスクＩＤを抽出しなかったと判定した場合（ステップＳ２１：ＮＯ）、処理をステップＳ１２に移し、処理を繰り返す。ＣＰＵ１１は全てのタスクＩＤを抽出したと判定した場合（ステップＳ２１：ＹＥＳ）、ＣＰＵ１１はタスク情報ＤＢ１２１から一のタスクＩＤを抽出する（ステップＳ２２）。
【００７２】
ＣＰＵ１１は抽出したタスクＩＤに対応する一のサービスをタスク情報ＤＢ１２１から抽出する（ステップＳ２３）。ＣＰＵ１１は受信側時刻ＤＢ１２３又は送信側時刻ＤＢ１２４を参照し、抽出したサービスが応答待ちを行うか否かを判定する（ステップＳ２４）。ＣＰＵ１１は抽出したサービスが応答待ちを行わないと判定した場合（ステップＳ２４：ＮＯ）、処理をステップＳ２７に移す。
【００７３】
ＣＰＵ１１は抽出したサービスが応答待ちを行うと判定した場合（ステップＳ２４：ＹＥＳ）、サービスグループ情報ＤＢ１２５を参照し、抽出したサービスの次に実行するサービスが別のグループであるか否かを判定する（ステップＳ２５）。ＣＰＵ１１は抽出したサービスの次に実行するサービスが別のグループでないと判定した場合（ステップＳ２５：ＮＯ）、処理をステップＳ２７に移す。
【００７４】
ＣＰＵ１１は抽出したサービスの次に実行するサービスが別のグループであると判定した場合（ステップＳ２５：ＹＥＳ）、応答待ちのグループと対応づけてサービスをサービスグループ情報ＤＢ１２５に記憶する（ステップＳ２６）。ＣＰＵ１１はタスク情報ＤＢ１２１でタスクＩＤに対応する全てのサービスを抽出したか否かを判定する（ステップＳ２７）。
【００７５】
ＣＰＵ１１は全てのサービスを抽出しなかったと判定した場合（ステップＳ２７：ＮＯ）、処理をステップＳ２３に移し、処理を繰り返す。ＣＰＵ１１は全てのサービスを抽出したと判定した場合（ステップＳ２７：ＹＥＳ）、全てのタスクＩＤを抽出したか否かを判定する（ステップＳ２８）。ＣＰＵ１１は全てのタスクＩＤを抽出しなかったと判定した場合（ステップＳ２８：ＮＯ）、処理をステップＳ２２に移し、処理を繰り返す。ＣＰＵ１１は全てのタスクＩＤを抽出したと判定した場合（ステップＳ２８：ＹＥＳ）、次の処理を行う。ＣＰＵ１１はサービスグループ情報ＤＢ１２５から一のタスクＩＤを抽出する（ステップＳ２９）。ＣＰＵ１１は抽出したタスクＩＤに対応する一のグループをサービスグループ情報ＤＢ１２５から抽出する（ステップＳ３０）。
【００７６】
ＣＰＵ１１は抽出したグループに応答待ちが存在するか否かを判定する（ステップＳ３１）。ＣＰＵ１１は抽出したグループに応答待ちがないと判定した場合（ステップＳ３１：ＮＯ）、サービスグループ情報ＤＢ１２５でグループの最初のサービスを特定する（ステップＳ３２）。ＣＰＵ１１は受信側ＤＢ１２３を参照し、特定したサービスの受信時刻を抽出する（ステップＳ３３）。ＣＰＵ１１はサービスグループ情報ＤＢ１２５で応答待ちを含むグループの次のサービスを特定する（ステップＳ３４）。ＣＰＵ１１は送信側ＤＢ１２４を参照し、特定したサービスの送信時刻を抽出する（ステップＳ３５）。
【００７７】
ＣＰＵ１１は抽出したグループに応答待ちがあると判定した場合（ステップＳ３１：ＹＥＳ）、サービスグループ情報ＤＢ１２５で応答待ちを行うサービスの次のサービスを特定する（ステップＳ３６）。すなわちＣＰＵ１１はグループ内のサービスの実行を指示する指示命令を特定する。ＣＰＵ１１は受信側ＤＢ１２３を参照し、特定したサービスの受信時刻を抽出する（ステップＳ３７）。ＣＰＵ１１はサービスグループ情報ＤＢ１２５で応答待ちを行うサービスを特定する（ステップＳ３８）。すなわちＣＰＵ１１はサービスグループ情報ＤＢ１２５で応答命令の送信先のサービスを特定する。ＣＰＵ１１は送信側ＤＢ１２４を参照し、特定したサービスへの送信時刻を抽出する（ステップＳ３９）。ＣＰＵ１１は受信時刻から送信時刻を減算することでグループ毎の処理時間を算出し、算出した処理時間を処理時間ＤＢ１２６に記憶する（ステップＳ４０）。
【００７８】
ＣＰＵ１１は全てのグループを抽出したか否かを判定する（ステップＳ４１）。ＣＰＵ１１は全てのグループを抽出しなかったと判定した場合（ステップＳ４１：ＮＯ）、処理をステップＳ３０に移し、処理を繰り返す。ＣＰＵ１１は全てのグループを抽出したと判定した場合（ステップＳ４１：ＹＥＳ）、全てのタスクＩＤを抽出したか否かを判定する（ステップＳ４２）。ＣＰＵ１１は全てのタスクＩＤを抽出しなかったと判定した場合（ステップＳ４２：ＮＯ）、処理をステップＳ２９に移し、処理を繰り返す。ＣＰＵ１１は全てのタスクＩＤを抽出したと判定した場合（ステップＳ４２：ＹＥＳ）、サービスグループ情報ＤＢ１２５から一のタスクＩＤを抽出する（ステップＳ４３）。ＣＰＵ１１は抽出したタスクＩＤに対応する一のグループをサービスグループ情報ＤＢ１２５から抽出する（ステップＳ４４）。
【００７９】
ＣＰＵ１１はサービスグループ情報ＤＢ１２５を参照し、抽出したグループに応答待ちを行うサービスが含まれるか否かを判定する（ステップＳ４５）。ＣＰＵ１１は抽出したグループに応答待ちを行うサービスが含まれないと判定した場合（ステップＳ４５：ＮＯ）、処理をステップＳ４８に移す。ＣＰＵ１１は抽出したグループに応答待ちを行うサービスが含まれると判定した場合（ステップＳ４５：ＹＥＳ）、抽出したグループの処理時間から応答待ちの処理時間を減算する（ステップＳ４６）。
【００８０】
ＣＰＵ１１は減算した処理時間を処理時間ＤＢ１２６に記憶する（ステップＳ４７）。ＣＰＵ１１はサービスグループ情報ＤＢ１２５でタスクＩＤに対応する全てのサービスを抽出したか否かを判定する（ステップＳ４８）。ＣＰＵ１１は全てのグループを抽出しなかったと判定した場合（ステップＳ４８：ＮＯ）、処理をステップＳ４４に移し、処理を繰り返す。ＣＰＵ１１は全てのグループを抽出したと判定した場合（ステップＳ４８：ＹＥＳ）、全てのタスクＩＤを抽出したか否かを判定する（ステップＳ４９）。ＣＰＵ１１は全てのタスクＩＤを抽出しなかったと判定した場合（ステップＳ４９：ＮＯ）、処理をステップＳ４３に移し、処理を繰り返す。ＣＰＵ１１は全てのタスクＩＤを抽出したと判定した場合（ステップＳ４９：ＹＥＳ）、処理時間ＤＢ１２６から一のタスクＩＤを抽出する（ステップＳ５０）。ＣＰＵ１１は抽出したタスクＩＤに対応するグループを処理時間ＤＢ１２６から抽出する（ステップＳ５１）。
【００８１】
ＣＰＵ１１はサービスグループ情報ＤＢ１２５及び処理時間ＤＢ１２６を参照し、グループの処理時間をグループに含まれるサービスの数で除算する（ステップＳ５２）。ＣＰＵ１１は除算した処理時間を各サービスに割り振ったサービス処理時間を算出する（ステップＳ５３）。ＣＰＵ１１は算出したサービス処理時間をサービス処理時間ＤＢ１２７に記憶する（ステップＳ５４）。
【００８２】
ＣＰＵ１１はサービスグループ情報ＤＢ１２５でタスクＩＤに対応する全てのグループを抽出したか否かを判定する（ステップＳ５５）。ＣＰＵ１１は全てのグループを抽出しなかったと判定した場合（ステップＳ５５：ＮＯ）、処理をステップＳ５１に移し、処理を繰り返す。ＣＰＵ１１は全てのグループを抽出したと判定した場合（ステップＳ５５：ＹＥＳ）、全てのタスクＩＤを抽出したか否かを判定する（ステップＳ５６）。ＣＰＵ１１は全てのタスクＩＤを抽出しなかったと判定した場合（ステップＳ５６：ＮＯ）、処理をステップＳ５０に移し、処理を繰り返す。ＣＰＵ１１は全てのタスクＩＤを抽出したと判定した場合（ステップＳ５６：ＹＥＳ）、サービス処理時間ＤＢ１２７から一のサービスを抽出する（ステップＳ５７）。
【００８３】
ＣＰＵ１１は抽出したサービスに対応する各タスクのサービス処理時間の平均を示す平均処理時間を算出する（ステップＳ５８）。ＣＰＵ１１は算出した平均処理時間を平均処理時間ＤＢ１２８に記憶する（ステップＳ５９）。ＣＰＵ１１はサービス処理時間ＤＢ１２７の全てのサービスを抽出したか否かを判定する（ステップＳ６０）。
【００８４】
ＣＰＵ１１はサービス処理時間ＤＢ１２７の全てのサービスを抽出しなかったと判定した場合（ステップＳ６０：ＮＯ）、処理をステップＳ５７に移し、処理を繰り返す。ＣＰＵ１１はサービス処理時間ＤＢ１２７の全てのサービスを抽出したと判定した場合（ステップＳ６０：ＹＥＳ）、平均処理時間の中から最も長い平均処理時間及び平均処理時間に対応するサービスを抽出する（ステップＳ６１）。ＣＰＵ１１は抽出した平均処理時間及びボトルネック候補となるサービスを表示部１５に出力し（ステップＳ６２）、処理を終了する。
【００８５】
一側面によれば、容易にサービスの実行の障害となるボトルネック候補を特定することができる。
【００８６】
一側面によれば、処理時間から応答待ちのサービスの処理時間を減算することでより正確にサービス処理時間を算出することができる。
【００８７】
一側面によれば、受信時刻から送信時刻を減算することで従来より高速に処理時間を算出することができる。
【００８８】
一側面によれば、グループ毎に対応する情報処理装置４の処理時間を算出することで、情報処理装置４毎に対応する従来より容易にサービス処理時間を算出することができる。
【００８９】
一側面によれば、算出した平均処理時間の内、最も長い平均処理時間を抽出することで容易にボトルネック候補を特定することができる。
【００９０】
なお、本実施形態におけるＣＰＵ１１は平均処理時間を算出し、算出した平均処理時間の内、最も長い平均処理時間を抽出したが、これに限られるものではない。例えば、ＣＰＵ１１はサービス毎のサービス処理時間の合計時間を算出し、算出した合計値の内、最も長い合計時間を抽出してもよい。
【００９１】
なお、本実施形態ではネットワーク機器３からサービス、送信時刻及び受信時刻等の情報を受信したが、情報処理装置４からサービス、送信時刻及び受信時刻等の情報を受信してもよい。本実施形態ではゲートウェイ２の送信時刻を用いたが、情報処理装置１の送信時刻及び受信時刻等の情報を用いてもよい。
【００９２】
実施の形態２
実施の形態２は所定の閾値以上の平均処理時間を抽出する実施の形態に関する。以下、特に説明する構成、作用以外の構成及び作用は実施の形態１と同等であり、簡潔のため記載を省略する。本実施形態を図１４を参照しつつ説明する。ＣＰＵ１１は所定の閾値以上の平均処理時間及び平均処理時間に対応するサービスを抽出する。所定の閾値は例えば情報処理装置１の管理者が任意に入力部１４で入力した値等であり、本実施形態では１００ミリ秒とする。
ＣＰＵ１１は「１２０．００ミリ秒」、「１３４．４４ミリ秒」及び「４０７．７７ミリ秒」を抽出する。ＣＰＵ１１はサービスｇ、ｈ及びｉを抽出する。ＣＰＵ１１は「１２０．００ミリ秒」、「１３４．４４ミリ秒」及び「４０７．７７ミリ秒」、サービスｇ、ｈ及びｉを表示部１５に出力する。
【００９３】
図２３は本実施形態における情報処理システムの処理手順を示したフローチャートである。ステップＳ１１〜Ｓ６２の処理は上述の実施の形態１に係る情報処理システムと同様であるため、簡潔のため説明を省略する。ＣＰＵ１１はステップＳ６０がＹＥＳであった場合、所定の閾値以上の平均処理時間及び平均処理時間に対応するサービスを抽出する（ステップＳ７１）。ＣＰＵ１１は抽出した平均処理時間及びサービスを表示部１５に出力し（ステップＳ６２）、処理を終了する。
【００９４】
一側面によれば、所定の閾値以上の平均処理時間を抽出することでボトルネック候補が複数ある場合にも対応することができる。
【００９５】
なお、本実施形態では所定の閾値以上の平均処理時間を抽出したが、所定の閾値以上のサービス処理時間を抽出してもよい。
【００９６】
実施の形態３
以下本発明の実施の形態３をその実施の形態を示す図面に基づいて詳述する。図２４は情報処理装置１のハードウェア群を示すブロック図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態１と同等であり、簡潔のため記載を省略する。図２４に示す情報処理装置１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１０Ａ又は半導体メモリ１０Ｂから読み取り、あるいは、通信網Ｎを介して他のサーバ（図示せず）からダウンロードする。当該プログラムは、プログラム１２Ｐとしてインストールされ、記憶部１２にロードして実行される。これより上述した情報処理装置１として機能する。
【００９７】
情報処理装置１を動作させるためのプログラムは、ディスクドライブ等の読み取り部１１１にＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）ディスク、メモリーカード、又はＵＳＢ（Universal Serial Bus）メモリ等の可搬型記録媒体１０Ａを読み取らせて記憶部１２に記憶してもよい。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ１０Ｂを情報処理装置１内に実装しても良い。通信部１６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して他のサーバに接続されている。当該プログラムは、通信部１６によりインターネット等の通信網Ｎを介して接続される他のサーバ（図示せず）からダウンロードすることも可能である。以下にその内容を説明する。
【００９８】
図２５は情報処理装置１の機能ブロック図である。ＣＰＵ１１がプログラム１２Ｐを実行することにより、情報処理装置１は以下のように動作する。算出部１１Ａは複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出する。時間記憶部１１Ｂは算出部１１Ａで算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶する。時間算出部１１Ｃは前記タスク毎のサービス処理時間を平均した平均処理時間を算出する。出力部１１Ｄは該時間算出部１１Ｃで算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する。
【００９９】
以上の実施の形態に関し、更に以下の付記を開示する。
【０１００】
（付記１）
複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出し、
算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶し、
前記タスク毎のサービス処理時間を平均した平均処理時間を算出し、
算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する
処理をコンピュータに実行させるプログラム。
（付記２）
前記グループ毎の処理時間を算出した後、サービスが応答を待つか否かを示す応答情報に基づいて前記応答を待つサービスが存在するか否かを判定し、
前記応答を待つサービスが存在すると判定した場合、前記応答を待つサービスを含むグループの処理時間から前記応答を送信するサービスを含むグループの処理時間を減算する
付記１に記載のプログラム。
（付記３）
サービスが応答を待つか否かを示す応答情報に基づいて前記応答を待つサービスが存在するか否かを判定し、
前記応答を待つサービスが存在しないと判定した場合、前記グループの最初のサービスの実行を指示する指示命令を前記情報処理装置に接続された中継装置が受信した受信時刻及び前記グループの次に実行されるサービスの実行を指示する指示命令を前記中継装置が送信した送信時刻を前記中継装置から受信し、
前記送信時刻から前記受信時刻を減算してグループ毎の処理時間を算出する
付記１又は付記２に記載のプログラム。
（付記４）
サービスが応答を待つか否かを示す応答情報に基づいて前記応答を待つサービスが存在するか否かを判定し、
前記応答を待つサービスが存在すると判定した場合、前記グループ内のサービスの実行を指示する指示命令を前記情報処理装置に接続された中継装置が受信した受信時刻及び前記指示命令に対する応答を示す応答命令を前記中継装置が送信した送信時刻を前記中継装置から受信し、
前記送信時刻から前記受信時刻を減算してグループ毎の処理時間を算出する
付記１又は付記２に記載のプログラム。
（付記５）
算出した平均処理時間に基づいてボトルネック候補となるサービス及び該サービスに対応する平均処理時間を出力する
付記１から付記４のいずれか１つに記載のプログラム。
（付記６）
算出した平均処理時間の内、最も長い平均処理時間のサービスを出力する
付記１から付記５のいずれか１つに記載のプログラム。
（付記７）
算出した平均処理時間の内、所定の閾値以上の平均処理時間のサービスを出力する
付記１から付記６のいずれか１つに記載のプログラム。
（付記８）
複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出する算出部と、
該算出部で算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶する時間記憶部と、
前記タスク毎のサービス処理時間を平均した平均処理時間を算出する時間算出部と、
該時間算出部で算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する出力部と
を備えるコンピュータ。
（付記９）
複数のタスク夫々に含まれる複数のサービスの処理に関する通信時刻及び該サービスを実行する各情報処理装置の情報に基づいて、連続して同一の情報処理装置で実行したサービスをグループ化したグループ毎の処理時間を前記タスク毎に算出し、
算出したグループ毎の処理時間を該グループに含まれるサービスの数で除算したサービス処理時間を前記タスク毎に記憶し、
前記タスク毎のサービス処理時間を平均した平均処理時間を算出し、
算出した平均処理時間に基づいてボトルネック候補となるサービスを出力する
コンピュータを用いた情報処理方法。
【０１０１】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【符号の説明】
【０１０２】
１  コンピュータ（情報処理装置）
１１Ａ  算出部
１１Ｂ  時間記憶部
１１Ｃ  時間算出部
１１Ｄ  出力部
１２Ｐ  プログラム
２  ゲートウェイ
３  ネットワーク機器（中継装置）
４  情報処理装置
【図１】
2018013994.tif 000003
【図２】
2018013994.tif 000004
【図３】
2018013994.tif 000005
【図４】
2018013994.tif 000006
【図５】
2018013994.tif 000007
【図６】
2018013994.tif 000008
【図７】
2018013994.tif 000009
【図８】
2018013994.tif 000010
【図９】
2018013994.tif 000011
【図１０】
2018013994.tif 000012
【図１１】
2018013994.tif 000013
【図１２】
2018013994.tif 000014
【図１３】
2018013994.tif 000015
【図１４】
2018013994.tif 000016
【図１５】
2018013994.tif 000017
【図１６】
2018013994.tif 000018
【図１７】
2018013994.tif 000019
【図１８】
2018013994.tif 000020
【図１９】
2018013994.tif 000021
【図２０】
2018013994.tif 000022
【図２１】
2018013994.tif 000023
【図２２】
2018013994.tif 000024
【図２３】
2018013994.tif 000025
【図２４】
2018013994.tif 000026
【図２５】
2018013994.tif 000027