JP6524358B1 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP6524358B1
JP6524358B1 JP2018557961A JP2018557961A JP6524358B1 JP 6524358 B1 JP6524358 B1 JP 6524358B1 JP 2018557961 A JP2018557961 A JP 2018557961A JP 2018557961 A JP2018557961 A JP 2018557961A JP 6524358 B1 JP6524358 B1 JP 6524358B1
Authority
JP
Japan
Prior art keywords
information
communication
condition
satisfied
trace
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2018557961A
Other languages
English (en)
Other versions
JPWO2019180794A1 (ja
Inventor
森田 浩司
浩司 森田
一国 厳
一国 厳
佳奈 和藤
佳奈 和藤
和基 日比野
和基 日比野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6524358B1 publication Critical patent/JP6524358B1/ja
Publication of JPWO2019180794A1 publication Critical patent/JPWO2019180794A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本発明は、電子計算機(100)が通信ミドルウェア(10)を実行して実現される情報処理装置であり、アプリケーションソフトウェア(40)からの指示に従い外部機器(200)と通信を行う通信処理部(12)と、アプリケーションソフトウェア(40)が動作する環境に関する情報である環境情報をオペレーティングシステム(30)から取得して環境情報ログファイル(21)に書き込む第1の情報トレース処理を、予め定められた第1の条件を満たした場合に実行し、通信処理部(12)が外部機器(200)と行った通信の手順を表す情報を通信ログファイル(22)に書き込むとともに、環境情報をオペレーティングシステム(30)から取得して環境情報ログファイル(21)に書き込む第2の情報トレース処理を、予め定められた第2の条件を満たした場合に実行するトレース処理部(11)と、を備える。

Description

本発明は、アプリケーションソフトウェアと他の機器との間の通信を実現するミドルウェアを使用する情報処理装置、ミドルウェア、情報処理方法およびプログラムに関する。
ミドルウェアは、オペレーティングシステム(OS:Operating System)とアプリケーションソフトウェア(以下、アプリケーションと称する)との間に介在し、特定の機能を各種アプリケーションに提供する。通信用のミドルウェアは、アプリケーションが外部の他の機器(以下、外部機器と称する)と通信を行いたい場合に、外部機器との間で必要な情報をやりとりして接続を確立し、アプリケーションの代わりに外部機器との間でデータの送受信を行う。通信用のミドルウェアが外部機器との通信を行うため、外部機器と通信するための機能を各アプリケーションが個別に備える必要が無くなる。
一般的に、ミドルウェアを含む各種のソフトウェアは、動作の検証に用いるため、および、不具合が発生した場合にその原因を特定する調査に用いるために、実行した処理内容および処理の結果といった、ソフトウェアの動作に関連する各種の情報を含んだデータを生成し、記憶装置に記憶させるなどして残しておくロギング機能を有する。
特許文献1には、クライアント端末で実行されるプログラムの不具合を解析するための不具合情報を収集して記憶しておく発明が記載されている。特許文献1に記載の発明では、クライアント端末で実行されるソフトウェアが、不具合の発生を検知すると、不具合の解析に有用な各種の情報を収集し、収集した情報をまとめたものを不具合情報としてサーバへ送信し、サーバは、クライアント端末から不具合情報を受信するとこれを記憶媒体に保存する。
特開2003−256242号公報
特許文献1に記載の発明は、不具合が発生した時の情報を収集して記憶しておくものであるため、不具合の発生箇所が分かる。しかし、不具合の発生が他のソフトウェアの動作に起因する場合、例えば、他のアプリケーションの動作に伴い発生するメモリリーク、ウイルスチェックソフトが行う動作監視に伴い発生する割り込み処理などが原因の場合、不具合が発生した時の情報だけでは原因を特定することが難しい。例えば、不具合発生時にメモリリークが発生しているか否かは、メモリの状態の変化を知る必要があるが、不具合発生時の情報だけではそれまでの経過が分からないため、変化を知ることができない。
本発明は、上記に鑑みてなされたものであって、アプリケーションの動作の影響によって発生した不具合の原因を解析するための情報を収集可能な情報処理装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、電子計算機がミドルウェアを実行して実現される情報処理装置であり、電子計算機にインストールされているアプリケーションソフトウェアからの指示に従い外部機器と通信を行う通信処理部を備える。また、情報処理装置は、アプリケーションソフトウェアが動作する環境に関する情報である環境情報を電子計算機にインストールされているオペレーティングシステムから取得して環境情報ログファイルに書き込む第1の情報トレース処理を、予め定められた第1の条件を満たした場合に実行し、通信処理部が外部機器と行った通信の手順を表す情報を通信ログファイルに書き込むとともに、環境情報をオペレーティングシステムから取得して環境情報ログファイルに書き込む第2の情報トレース処理を、予め定められた第2の条件を満たした場合に実行するトレース処理部を備える。トレース処理部は、第1の情報トレース処理を前回実施した後に通信を行った回数が予め定められた回数になると第1の条件を満たしたと判定する。
本発明にかかる情報処理装置は、アプリケーションの動作の影響によって発生した不具合の原因を解析するための情報を収集することができる、という効果を奏する。
本発明の実施の形態にかかるミドルウェアを実行する電子計算機のハードウェア構成例を示す図 実施の形態にかかる情報処理装置の要部構成を示す図 実施の形態にかかる通信ミドルウェアの動作の一例を示すシーケンス図 実施の形態にかかる通信ミドルウェアの動作の一例を示すフローチャート 実施の形態にかかる通信ミドルウェアが情報トレース処理を実行するタイミングの一例を示す図 実施の形態にかかる通信ミドルウェアが情報トレース処理を実行するタイミングの他の例を示す図
以下に、本発明の実施の形態にかかる情報処理装置、ミドルウェア、情報処理方法およびプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、本発明の実施の形態にかかるミドルウェアを実行する電子計算機のハードウェア構成例を示す図である。本実施の形態にかかるミドルウェアを実行する電子計算機100は、プロセッサ101、主記憶装置102、補助記憶装置103、入力装置104、表示装置105および通信インタフェース106を備える。
プロセッサ101は、CPU(Central Processing Unit、中央処理装置、演算装置、などともいう)である。
主記憶装置102は、プロセッサ101のワークエリアとして機能するメインメモリである。主記憶装置102は、RAM(Random Access Memory)によって構成され、補助記憶装置103よりも高速に動作する。
補助記憶装置103は、ソフトウェアおよび各種データを記憶する。補助記憶装置103は、ROM(Read Only Memory)、ハードディスクドライブ、SSD(Solid State Drive)、着脱可能なメモリデバイス、またはこれらの組み合わせによって構成される。本実施の形態にかかるミドルウェアは、補助記憶装置103で記憶されている。プロセッサ101は、本実施の形態にかかるミドルウェアを補助記憶装置103から読み出して実行する。本実施の形態にかかるミドルウェアは、光ディスクなどの記憶媒体に書き込まれた状態で提供され、電子計算機100にインストールされることにより補助記憶装置103に書き込まれる。これにより、プロセッサ101がミドルウェアを実行可能な状態となる。
入力装置104は、マウス、キーボード、タッチパネルなどである。表示装置105は、液晶モニタ、ディスプレイなどである。通信インタフェース106は、ネットワークインタフェースカードなどであり、電子計算機100が図示を省略したネットワークを介して他の電子計算機等の外部機器と通信する際に使用される。
図2は、本実施の形態にかかる情報処理装置の要部構成を示す図である。本実施の形態にかかる情報処理装置は、図1に示した電子計算機100が本実施の形態にかかるミドルウェアを実行することにより実現される。すなわち、本実施の形態にかかるミドルウェアを実行中の電子計算機100が、本実施の形態にかかる情報処理装置に相当する。以下の説明では、本実施の形態にかかるミドルウェアを実行中の電子計算機100を情報処理装置100と称する場合がある。本実施の形態にかかるミドルウェアは通信ミドルウェア10であり、情報処理装置100のトレース処理部11および通信処理部12を実現する。図2に示した通信ミドルウェア10、OS30および複数のアプリケーション40は、図1に示したプロセッサ101により実行される。また、記憶部20は図1に示した補助記憶装置103により実現される。記憶部20は、通信ミドルウェア10のトレース処理部11によって生成および更新が行われる環境情報ログファイル21および通信ログファイル22を保持する。環境情報ログファイル21および通信ログファイル22は、通信ミドルウェア10で発生した動作の不具合を解析する作業で必要な各種情報が書き込まれたファイルである。環境情報ログファイル21は、後述する環境情報が日時の情報と対応付けられた状態で書き込まれたファイルである。通信ログファイル22は、通信ミドルウェア10が外部機器200との間で行った通信の手順を表す情報が日時の情報と対応付けられた状態で書き込まれたファイルである。
通信ミドルウェア10のトレース処理部11は、予め定められた第1の条件を満たした場合、OS30から情報を取得して環境情報ログファイル21に書き込む。また、トレース処理部11は、予め定められた第2の条件を満たした場合、通信処理部12によってバッファ領域に書き込まれた情報を読み出して通信ログファイル22に書き込むとともに、OS30から後述する環境情報を取得して環境情報ログファイル21に書き込む。トレース処理部11が通信ログファイル22に書き込む情報は、通信処理部12と外部機器200との間で行った通信の手順を表す情報である。通信処理部12は、アプリケーション40と外部機器200との間の通信を実現する。通信処理部12は、図1に示した通信インタフェース106を使用して外部機器200と通信を行う。また、通信処理部12は、外部機器200との通信に失敗した場合、通信に失敗したことをトレース処理部11に通知する。また、通信処理部12は、外部機器200と通信を行った場合、外部機器200との間で行った通信の手順を表す情報を、バッファ領域に書き込む。
図3は、本実施の形態にかかる通信ミドルウェアの動作の一例を示すシーケンス図である。電子計算機100のユーザがアプリケーション40に対して操作を行うなどし、これに伴い外部機器200との通信が必要になると、アプリケーション40が通信ミドルウェア10へ起動要求を送信する(ステップS11)。通信ミドルウェア10は、起動要求を受けると、情報トレース処理を行う(ステップS12)。具体的には、まず、通信ミドルウェア10のトレース処理部11が、OS30に対して、アプリケーション40が動作する環境に関する情報である環境情報を要求して環境情報を取得する。なお、環境情報は、通信ミドルウェア10が動作する環境に関する情報でもある。すなわち、環境情報は、アプリケーション40および通信ミドルウェア10が動作する環境に関する情報ともいえる。ここで、環境情報の例は、実行中のプロセスの情報、メインメモリの使用状況の情報、および使用中の通信ポートの情報である。メインメモリの使用状況は、物理メモリの使用状況および仮想メモリの使用状況の双方である。トレース処理部11は、OS30がサポートしているコマンドを使用して環境情報を取得する。トレース処理部11は、次に、取得した環境情報を日時の情報とともに、記憶部20内の環境情報ログファイル21に書き込む。ここでの書き込みは追加書込みである。なお、トレース処理部11は、記憶部20内の環境情報ログファイル21が存在しない場合、環境情報ログファイル21を生成する。なお、通信ミドルウェア10は、情報トレース処理の他に、外部機器200との通信を開始するために必要な設定を行う。この設定内容については一般的な通信ミドルウェアが行うものと同様であるため、詳細説明については省略する。ステップS12でトレース処理部11が実行する情報トレース処理は第1の情報トレース処理である。
通信ミドルウェア10は、情報トレース処理および通信を開始するために必要な設定を行う処理が終了すると、起動が完了したこと、すなわち通信を開始する準備が完了したことを表す起動応答をアプリケーション40へ送信する(ステップS13)。起動応答を受信したアプリケーション40は、通信要求を通信ミドルウェア10へ送信する(ステップS14)。アプリケーション40が通信ミドルウェア10へ送信する通信要求には、通信相手の外部機器200の情報および外部機器200へ送信するデータが含まれる。通信ミドルウェア10は、アプリケーション40から通信要求を受け取るとこれを確認し、通信相手の外部機器200へ通信要求を送信する(ステップS15)。外部機器200への通信要求の送信は通信処理部12が行う。外部機器200へ送信する通信要求にはアプリケーション40が外部機器200に向けて出力したデータが含まれる。なお、図3ではステップS15の通信ミドルウェア10による通信要求の送信およびステップS16の外部機器200による通信応答の送信のみを記載したが、通信ミドルウェア10と外部機器200との間では、使用する通信プロトコルに従った手順で信号の送受信が複数回実行される。
通信ミドルウェア10は、外部機器200から通信応答を受け取ると(ステップS16)、バッファリング処理を行う(ステップS17)。ステップS17で実行するバッファリング処理は、通信処理部12が、ステップS15およびS16で行った外部機器200との通信手順を表す情報をバッファ領域に格納する処理である。バッファ領域は主記憶装置102内に確保されている。通信ミドルウェア10は、バッファリング処理が終了すると、通信が成功したか否かを判定する。通信処理部12は、通信プロトコルで規定されている正しい手順で通信が行われた場合、通信成功と判定する。通信処理部12は、正しい手順で通信が行われなかった場合、通信失敗と判定する。正しい手順で通信が行われなかった場合には、外部機器200からの信号を予め定められた時間内に受信できないケースも含まれる。通信が成功したか否かの判定方法はこれに限定されない。ここでは通信が成功したものとして説明を続ける。通信が成功した場合、通信ミドルウェア10は、通信応答をアプリケーション40へ送信する(ステップS18)。これにより、アプリケーション40と外部機器200との1回の通信処理が終了する。ステップS18で通信ミドルウェア10が送信する通信応答には、通信が成功したことを示す情報が含まれる。
その後、通信ミドルウェア10は、アプリケーション40から通信要求を再度受け取ると(ステップS19)、通信要求を外部機器200へ送信するとともに通信応答を外部機器200から受信することで、外部機器200と通信を行う(ステップS20,S21)。また、通信ミドルウェア10は、バッファリング処理を行う(ステップS22)。これらのステップS20、S21およびS22は、上記のステップS15、S16およびS17と同様の処理である。通信ミドルウェア10は、バッファリング処理が終了すると、通信が成功したか否かを判定する。ここでは、ステップS20およびS21で示した外部機器200と通信が失敗したものとして説明を続ける。通信が失敗した場合、通信ミドルウェア10は、情報トレース処理を行う(ステップS23)。具体的には、まず、トレース処理部11が、上記のバッファリング処理を実行した時に情報が格納されるバッファ領域から、格納されている情報を読み出し、読み出した情報である通信ログ情報を、読み出した日時の情報とともに、記憶部20内の通信ログファイル22に書き込む。ここでの書き込みは追加書込みである。なお、トレース処理部11は、記憶部20内の通信ログファイル22が存在しない場合、通信ログファイル22を生成する。上記の「読み出した日時の情報」は通信が失敗した日時を示す情報でもある。トレース処理部11は、次に、OS30に対して、アプリケーション40が動作する環境に関する情報である環境情報を要求して環境情報を取得し、取得した環境情報を環境情報ログファイル21に書き込む。この処理は、上記のステップS12に示した情報トレース処理である第1の情報トレース処理で環境情報ログファイル21に環境情報を書き込む処理と同様である。ステップS23でトレース処理部11が実行する情報トレース処理は第2の情報トレース処理である。なお、通信処理部12は、外部機器200と通信が失敗した場合、通信が失敗したことをトレース処理部11に通知する。この通知を受けたトレース処理部11は第2の情報トレース処理を実行する。
通信ミドルウェア10は、ステップS23で情報トレース処理を実行した後、通信応答をアプリケーション40へ送信する(ステップS24)。ステップS24で通信ミドルウェア10が送信する通信応答には、通信が失敗したことを示す情報が含まれる。
通信ミドルウェア10は、また、上記のステップS11で起動要求を受けてから、予め定められた一定時間Tが経過するごとに、情報トレース処理を行う(ステップS25,S26)。これらのステップS25およびS26で行う情報トレース処理は、上記のステップS12で行う情報トレース処理と同様である。すなわち、第1の情報トレース処理である。したがって、通信ミドルウェア10は、第1の情報トレース処理を前回実行してから一定時間Tが経過した場合に、第1の情報トレース処理を実行する。
その後、電子計算機100のユーザがアプリケーション40に対して操作を行い、これに伴い外部機器200との通信が必要なくなると、アプリケーション40が通信ミドルウェア10へ終了要求を送信する(ステップS27)。通信ミドルウェア10は、終了要求を受けると、情報トレース処理を行い(ステップS28)、終了応答をアプリケーション40へ送信する(ステップS29)。ステップS28で通信ミドルウェア10が行う情報トレース処理は、上記のステップS12で行う情報トレース処理と同様である。すなわち、第1の情報トレース処理である。
ここで、本実施の形態では、通信ミドルウェア10がアプリケーション40から起動要求を受信した場合、通信ミドルウェア10がアプリケーション40から終了要求を受信した場合、および、通信ミドルウェア10が第1の情報トレース処理を前回実行してから一定時間Tが経過した場合が、「予め定められた第1の条件を満たした場合」に該当する。第1の情報トレース処理は、予め定められたタイミングで実行する情報トレース処理である。また、通信ミドルウェア10が外部機器200との通信に失敗した場合が、「予め定められた第2の条件を満たした場合」に該当する。第2の情報トレース処理は、通信ミドルウェア10が外部機器200との通信を失敗した場合に実行する情報トレース処理である。
上述した通信ミドルウェア10の動作をフローチャートで示すと図4のようになる。図4は、本実施の形態にかかる通信ミドルウェア10の動作の一例を示すフローチャートである。
通信ミドルウェア10は、動作を開始すると、まず、アプリケーション40から起動要求を受信したか否かを確認し(ステップS51)、起動要求を受信しない場合(ステップS51:No)、ステップS51の処理を繰り返す。
起動要求を受信した場合(ステップS51:Yes)、通信ミドルウェア10は、環境情報を取得し(ステップS52)、環境情報ログファイル21を更新する(ステップS53)。これらのステップS52およびS53の処理は、上述した第1の情報トレース処理に相当する。
通信ミドルウェア10は、次に、アプリケーション40から通信要求を受信したか否かを確認し(ステップS54)、通信要求を受信しない場合(ステップS54:No)、ステップS61に遷移し、通信要求を受信した場合(ステップS54:Yes)、外部機器200との間で通信処理を行う(ステップS55)。
通信ミドルウェア10は、次に、バッファリング処理を行う(ステップS56)。バッファリング処理は、図3に示したステップS17およびS22のバッファリング処理に相当する。通信ミドルウェア10は、バッファリング処理が終了後すると、上記のステップS55で行った通信が成功か否かを確認し、通信が成功の場合(ステップS57:Yes)、ステップS61に遷移する。
通信ミドルウェア10は、通信が失敗した場合(ステップS57:No)、通信ログファイル22を更新する(ステップS58)。また、通信ミドルウェア10は、環境情報を取得し(ステップS59)、環境情報ログファイル21を更新する(ステップS60)。ステップS58〜S60の処理は図3に示したステップS23の情報トレース処理、すなわち第2の情報トレース処理に相当する。
通信ミドルウェア10は、上記のステップS54で通信要求を受信していないと判定するか、ステップS60を実行した場合、情報トレース処理の実行タイミングであるか否かを確認する(ステップS61)。通信ミドルウェア10は、ステップS51で起動要求を受信したと判定してからの経過時間が、予め定められた一定時間の整数倍に達した場合、情報トレース処理の実行タイミングであると判断する。
通信ミドルウェア10は、情報トレース処理の実行タイミングである場合(ステップS61:Yes)、環境情報を取得し(ステップS62)、環境情報ログファイル21を更新する(ステップS63)。ステップS62およびS63は、図3に示したステップS25およびS26の情報トレース処理に相当する。
通信ミドルウェア10は、情報トレース処理の実行タイミングではない場合(ステップS61:No)、または、ステップS63を実行した場合、終了要求を受信したか否かを確認する(ステップS64)。
通信ミドルウェア10は、終了要求を受信していない場合(ステップS64:No)、ステップS54に遷移する。また、通信ミドルウェア10は、終了要求を受信した場合(ステップS64:Yes)、環境情報を取得し(ステップS65)、環境情報ログファイル21を更新する(ステップS66)。ステップS65およびS66は、図3に示したステップS28の情報トレース処理に相当する。通信ミドルウェア10は、ステップS66を実行後、ステップS51に遷移する。
以上の通信ミドルウェア10の動作は、複数のアプリケーション40に対して実行する。すなわち、通信ミドルウェア10は、アプリケーション40から起動要求を受信するごとに、起動要求の送信元のアプリケーション40を対象として、図3および図4に従った動作を実行する。例えば、通信ミドルウェア10は、アプリケーションAより起動要求を受けた場合は第1の情報トレース処理を行う。その後、通信ミドルウェア10は、アプリケーションAから終了要求を受信するまでの間、通信を失敗した場合には第2の情報トレース処理を行い、また、一定時間が経過するごとに第1の情報トレース処理を行う。通信ミドルウェア10は、アプリケーションAから起動要求を受け、その後、終了要求を受信する前に、アプリケーションBよりさらに起動要求を受けた場合、第1の情報トレース処理を実行する。その後、通信ミドルウェア10は、アプリケーションBと外部機器200との間の通信が失敗した場合には第2の情報トレース処理を行い、また、アプリケーションBより起動要求を受けてから一定時間が経過するごとに第1の情報トレース処理を行う。通信ミドルウェア10は、環境情報ログファイル21および通信ログファイル22をアプリケーションごとに個別に作成してもよいし、環境情報ログファイル21および通信ログファイル22のそれぞれを1つだけ作成するようにしてもよい。環境情報ログファイル21および通信ログファイル22のそれぞれを1つだけ作成する場合、すなわち、各アプリケーションを対象として実行した第1の情報トレース処理および第2の情報トレース処理の結果を1つの環境情報ログファイルおよび通信ログファイルに書き込む場合、通信ミドルウェア10は、アプリケーションの情報、例えば名称も一緒にファイルに書き込むようにする。
上述した第2の情報トレース処理においては、通信を失敗した理由に基づいて、環境情報ログファイル21に書き込む情報を変更してもよい。通信を失敗した理由が違う場合、その原因を特定するために必要な情報が異なるためである。たとえば、通信ミドルウェア10は、通信相手の外部機器200からの信号が決められた期間内に送信されてこないために通信失敗となるような、ハードウェアに問題がある場合、メインメモリの状態、通信ポートの状態および通信ドライバの状態といった情報をOS30から取得する。また、正しい通信手順が実行されないために通信失敗となるような、ソフトウェアに問題がある場合、メインメモリの状態および実行中のタスクといった情報をOS30から取得する。このようにすることで、ログファイルのサイズが必要以上に大きくなるのを防止できる。
図3および図4に示した通信ミドルウェア10の動作では、アプリケーション40より起動要求を受信して動作を開始してから一定時間が経過するごとに情報トレース処理を実行する、すなわち、情報トレース処理を通信実行の有無に関係なく一定間隔で繰り返し行うこととした。しかし、情報トレース処理を実行する間隔を時間の経過とともに変更するようにしてもよい。
例えば、図5に示すように、通信ミドルウェア10が起動要求を受けて起動してから、第1の情報トレース処理を繰り返し実行する場合の処理の実行間隔を、時間の経過とともに短くするようにしてもよい。なお、図5では、情報トレース処理を「トレース処理」と記載している。図6も同様である。通信ミドルウェアが使用されるシステムにおいて、通信ミドルウェア10が起動後、しばらくは、それまでの間にアプリケーション40および通信ミドルウェア10が動作していなかったため、システムが安定していることが多く、トレース処理を実行してログを残す必要性が少ない。そのため、起動してから一定時間が経過するまでトレース処理を実行せずに、一定時間が経過してから、徐々に第1の情報トレース処理の実行間隔を小さくする処理をすることで、ログファイルの容量が増大するのを防止しつつ、不具合に繋がる可能性のある情報をログファイルに残すことが出来る。
また、他の例として、図6に示すように、通信ミドルウェア10が起動要求を受けて起動してから、第1の情報トレース処理を繰り返し実行する場合の処理の実行間隔を、時間ではなく通信処理の実行回数に基づいて変化させるようにしてもよい。すなわち、通信ミドルウェア10は、通信処理をN回行うごとに第1の情報トレース処理を実行することとし、かつNを徐々に小さな値に変化させる。この場合、アプリケーション40からの通信が一定間隔で発生せず、ユーザの操作に伴い発生する要求でのみ通信が行われるようなシステムにおいて、ログファイルの容量が増大するのを防止しつつ、不具合に繋がる可能性のある情報をログファイルに残すことが出来る。
以上のように、本実施の形態にかかる通信ミドルウェアは、予め定められた第1の条件を満たした場合に第1の情報トレース処理を実行し、予め定められた第2の条件を満たした場合に第2の情報トレース処理を実行する。通信ミドルウェアは、アプリケーションから起動要求を受けた場合、アプリケーションから終了要求を受けた場合、および、第1の情報トレース処理を前回実施してから時間Tが経過した場合、第1の条件を満たしたと判断する。通信ミドルウェアは、第1の情報トレース処理では、OSから環境情報を取得して環境情報ログファイルに書き込む。また、通信ミドルウェアは、外部機器との通信に失敗した場合、第2の条件を満たしたと判断する。通信ミドルウェアは、第2の情報トレース処理では、バッファ領域から通信ログ情報を読み出して通信ログファイルに書き込むとともに、OSから環境情報を取得して環境情報ログファイルに書き込む。通信ミドルウェアは、上記の時間Tの値を、第1の情報トレース処理を実行するごとに、それまでよりも小さい値に変更してもよい。また、通信ミドルウェアは、第1の情報トレース処理を前回実施してから外部機器との通信を実行した回数が予め定められた回数Nとなった場合に第1の条件を満たしたと判断してもよい。このとき、通信ミドルウェアは、回数Nの値を、第1の情報トレース処理を実行するごとに、それまでよりも小さい値に変更してもよい。本実施の形態にかかる通信ミドルウェアは、通信を失敗した時の環境情報に加えて通信を失敗する前の環境情報をログファイルに記憶して残しておくようにしたので、メインメモリの使用状況、他のアプリケーションの動作状況などの影響が原因で通信が失敗した場合でも、原因を特定することが可能となる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
10 通信ミドルウェア、11 トレース処理部、12 通信処理部、20 記憶部、21 環境情報ログファイル、22 通信ログファイル、30 オペレーティングシステム(OS)、40 アプリケーション、100 電子計算機、200 外部機器。

Claims (18)

  1. 電子計算機がミドルウェアを実行して実現される情報処理装置であって、
    前記電子計算機にインストールされているアプリケーションソフトウェアからの指示に従い外部機器と通信を行う通信処理部と、
    前記アプリケーションソフトウェアが動作する環境に関する情報である環境情報を前記電子計算機にインストールされているオペレーティングシステムから取得して環境情報ログファイルに書き込む第1の情報トレース処理を、予め定められた第1の条件を満たした場合に実行し、前記通信処理部が前記外部機器と行った通信の手順を表す情報を通信ログファイルに書き込むとともに、前記環境情報を前記オペレーティングシステムから取得して環境情報ログファイルに書き込む第2の情報トレース処理を、予め定められた第2の条件を満たした場合に実行するトレース処理部と、
    を備え
    前記トレース処理部は、前記第1の情報トレース処理を前回実施した後に通信を行った回数が予め定められた回数になると前記第1の条件を満たしたと判定する、
    とを特徴とする情報処理装置。
  2. 前記環境情報を、前記オペレーティングシステムの動作状態を表す情報とする、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記環境情報は、メインメモリの使用状況を表す情報を含む、
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記トレース処理部は、前記アプリケーションソフトウェアから起動要求を受けた場合に前記第1の条件を満たしたと判定する、
    ことを特徴とする請求項1から3のいずれか一つに記載の情報処理装置。
  5. 前記トレース処理部は、前記アプリケーションソフトウェアから終了要求を受けた場合に前記第1の条件を満たしたと判定する、
    ことを特徴とする請求項1から4のいずれか一つに記載の情報処理装置。
  6. 前記トレース処理部は、前記第1の情報トレース処理を前回実施してから予め定められた時間が経過すると前記第1の条件を満たしたと判定する、
    ことを特徴とする請求項1から5のいずれか一つに記載の情報処理装置。
  7. 前記トレース処理部は、前記予め定められた時間を、前記第1の情報トレース処理を実行するごとに、それまでよりも短い時間に変更する、
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記トレース処理部は、前記予め定められた回数を、前記第1の情報トレース処理を実行するごとに、それまでよりも少ない回数に変更する、
    ことを特徴とする請求項1から7のいずれか一つに記載の情報処理装置。
  9. 前記トレース処理部は、前記通信処理部が前記外部機器との通信に失敗した場合に前記第2の条件を満たしたと判定する、
    ことを特徴とする請求項1からのいずれか一つに記載の情報処理装置。
  10. 前記トレース処理部は、前記通信処理部が前記外部機器との通信に失敗した理由に基づいて、前記第2の情報トレース処理で前記オペレーティングシステムから取得する前記環境情報の内容を変更する、
    ことを特徴とする請求項に記載の情報処理装置。
  11. オペレーティングシステムおよびアプリケーションソフトウェアがインストールされている電子計算機がミドルウェアを実行して実現される情報処理装置で実行される情報処理方法であって、
    前記アプリケーションソフトウェアからの指示に従い外部機器と通信を行う通信処理ステップと、
    前記アプリケーションソフトウェアが動作する環境に関する情報である環境情報を前記オペレーティングシステムから取得して環境情報ログファイルに書き込む第1の情報トレース処理を予め定められた第1の条件を満たした場合に実行する第1の情報トレースステップと、
    記外部機器と行った通信の手順を表す情報を通信ログファイルに書き込むとともに、前記環境情報を前記オペレーティングシステムから取得して環境情報ログファイルに書き込む第2の情報トレース処理を予め定められた第2の条件を満たした場合に実行する第2の情報トレースステップと、
    を含み、
    前記第1の情報トレースステップでは、前記第1の情報トレースステップを前回実行した後に通信を行った回数が予め定められた回数になると前記第1の条件を満たしたと判定する、
    とを特徴とする情報処理方法。
  12. 前記アプリケーションソフトウェアから起動要求を受けた場合に前記第1の条件を満たしたと判定する、
    ことを特徴とする請求項11に記載の情報処理方法。
  13. 前記アプリケーションソフトウェアから終了要求を受けた場合に前記第1の条件を満たしたと判定する、
    ことを特徴とする請求項11または12に記載の情報処理方法。
  14. 前記通信処理ステップで前記外部機器との通信に失敗した場合に前記第2の条件を満たしたと判定する、
    ことを特徴とする請求項11から13のいずれか一つに記載の情報処理方法。
  15. アプリケーションソフトウェアからの指示に従い外部機器と通信を行う通信処理ステップと、
    前記アプリケーションソフトウェアが動作する環境に関する情報である環境情報をオペレーティングシステムから取得して環境情報ログファイルに書き込む第1の情報トレース処理を予め定められた第1の条件を満たした場合に実行する第1の情報トレースステップと、
    記外部機器と行った通信の手順を表す情報を通信ログファイルに書き込むとともに、前記環境情報を前記オペレーティングシステムから取得して環境情報ログファイルに書き込む第2の情報トレース処理を予め定められた第2の条件を満たした場合に実行する第2の情報トレースステップと、
    をコンピュータに実行させ
    前記第1の情報トレースステップでは、前記第1の情報トレースステップを前回実行した後に通信を行った回数が予め定められた回数になると前記第1の条件を満たしたと判定する、
    ることを特徴とするプログラム。
  16. 前記アプリケーションソフトウェアから起動要求を受けた場合に前記第1の条件を満たしたと判定する、
    ことを特徴とする請求項15に記載のプログラム。
  17. 前記アプリケーションソフトウェアから終了要求を受けた場合に前記第1の条件を満たしたと判定する、
    ことを特徴とする請求項15または16に記載のプログラム。
  18. 前記通信処理ステップで前記外部機器との通信に失敗した場合に前記第2の条件を満たしたと判定する、
    ことを特徴とする請求項15から17のいずれか一つに記載のプログラム。
JP2018557961A 2018-03-19 2018-03-19 情報処理装置、情報処理方法およびプログラム Expired - Fee Related JP6524358B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/010894 WO2019180794A1 (ja) 2018-03-19 2018-03-19 情報処理装置、ミドルウェア、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP6524358B1 true JP6524358B1 (ja) 2019-06-05
JPWO2019180794A1 JPWO2019180794A1 (ja) 2020-04-23

Family

ID=66730589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018557961A Expired - Fee Related JP6524358B1 (ja) 2018-03-19 2018-03-19 情報処理装置、情報処理方法およびプログラム

Country Status (6)

Country Link
US (1) US11113179B2 (ja)
JP (1) JP6524358B1 (ja)
KR (1) KR102244562B1 (ja)
CN (1) CN111868693B (ja)
DE (1) DE112018007081B4 (ja)
WO (1) WO2019180794A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295612A (ja) * 2003-03-27 2004-10-21 Bank Of Tokyo-Mitsubishi Ltd 障害対処装置及び金融取引支援プログラム
JP2016085496A (ja) * 2014-10-23 2016-05-19 株式会社日立製作所 計算機システムの異常予兆検出装置および方法
JP2016133867A (ja) * 2015-01-16 2016-07-25 株式会社リコー 情報処理システム、情報処理方法、及びプログラム
JP2017033540A (ja) * 2015-07-29 2017-02-09 株式会社リコー 電子装置、ログ保存方法及び画像形成装置

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6142683A (en) * 1997-04-08 2000-11-07 Advanced Micro Devices, Inc. Debug interface including data steering between a processor, an input/output port, and a trace logic
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6189140B1 (en) * 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6351829B1 (en) * 1998-10-28 2002-02-26 Honeywell Inc System and method for distinguishing a device failure from an inter-device communication failure
US6611955B1 (en) * 1999-06-03 2003-08-26 Swisscom Ag Monitoring and testing middleware based application software
JP2001166969A (ja) 1999-12-10 2001-06-22 Toshiba Corp プログラム動作情報表示システム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001325124A (ja) * 2000-05-17 2001-11-22 Fujitsu Ltd 計算機、システム管理支援装置及び管理方法
JP2003256242A (ja) 2002-03-06 2003-09-10 Toshiba Microelectronics Corp クライアント端末で実行されるプログラム及びその不具合の解析を支援する機能を有するサーバプログラム並びにクライアントサーバプログラム
US7444571B1 (en) * 2003-02-27 2008-10-28 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7149933B2 (en) * 2003-08-07 2006-12-12 Arm Limited Data processing system trace bus
US7069176B2 (en) * 2003-08-07 2006-06-27 Arm Limited Trace source correlation in a data processing apparatus
US7392370B2 (en) * 2004-01-14 2008-06-24 International Business Machines Corporation Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics
JP2006079485A (ja) 2004-09-13 2006-03-23 Nec Commun Syst Ltd 電子計算機における障害解析用情報収集方式
US7373554B2 (en) * 2004-09-24 2008-05-13 Oracle International Corporation Techniques for automatic software error diagnostics and correction
US8326966B2 (en) * 2005-12-01 2012-12-04 International Business Machines Corporation Efficient, centralized management of application log configuration settings
US20070168997A1 (en) * 2005-12-20 2007-07-19 Duong-Han Tran Debugging of remote application software on a local computer
US7843842B2 (en) * 2006-08-04 2010-11-30 Cisco Technology, Inc. Method and system for initiating a remote trace route
US7979850B2 (en) * 2006-09-29 2011-07-12 Sap Ag Method and system for generating a common trace data format
US7941789B2 (en) * 2006-09-29 2011-05-10 Sap Ag Common performance trace mechanism
JP2009110318A (ja) 2007-10-31 2009-05-21 Nec Corp 障害情報出力制御装置及びそれらに用いる障害情報出力制御方法並びにそのプログラム
US8195977B2 (en) * 2007-11-19 2012-06-05 International Business Machines Corporation Network fault isolation
JP4795388B2 (ja) 2008-06-10 2011-10-19 三菱電機株式会社 電子計算機装置及びソフトウェア処理遅延検出時のデータ保存方法
US20090327809A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Domain-specific guidance service for software development
US9189367B2 (en) * 2010-04-20 2015-11-17 Salesforce.Com, Inc. Methods and systems for debugging bytecode in an on-demand service environment
US8601324B2 (en) * 2010-08-02 2013-12-03 Arm Limited Storage and output of trace data
US8966323B2 (en) * 2010-12-23 2015-02-24 Arm Limited Monitoring multiple data transfers
JP2013152657A (ja) 2012-01-26 2013-08-08 Kyocera Document Solutions Inc ログ変換プログラム、情報処理装置
JP2013171431A (ja) 2012-02-21 2013-09-02 Fujitsu Telecom Networks Ltd ログ記録装置、ログ記録方法及び記録媒体
US20150067428A1 (en) * 2012-05-02 2015-03-05 Freescale Semiconductor, Inc. System-on-chip, method of manufacture thereof and method of communicating diagnostic data
US9164872B2 (en) * 2013-05-22 2015-10-20 Sap Se Tracking of program objects during request processing
GB2525371B (en) * 2014-03-07 2021-04-14 Advanced Risc Mach Ltd Tracing the operations of a data processing apparatus
CN104573904B (zh) * 2014-09-29 2017-08-25 同济大学 网络交易中用户与软件行为监控数据可视化系统
US9875041B1 (en) * 2014-09-30 2018-01-23 Acronis International Gmbh Synchronized change tracking in data storage volumes
US9436540B2 (en) * 2014-10-16 2016-09-06 International Business Machines Corporation Automated diagnosis of software crashes
CN105630661B (zh) * 2014-10-29 2018-09-25 国际商业机器公司 用于自动化跨系统程序调试的方法和装置
GB2534923B (en) 2015-02-06 2022-03-09 Advanced Risc Mach Ltd Trace data capture device and method, system, diagnostic method and apparatus and computer program
US9832334B2 (en) 2015-07-29 2017-11-28 Ricoh Company, Ltd. Electronic apparatus, log storing method, and image forming apparatus
JP2017033543A (ja) * 2015-07-29 2017-02-09 株式会社リコー 画像処理装置、画像処理システム、及び画像処理方法
TW201715398A (zh) * 2015-10-20 2017-05-01 Insyde Software Corp 在作業系統下過濾系統資訊的方法及系統
US20170262355A1 (en) * 2016-03-08 2017-09-14 International Business Machines Corporation Debugging applications
US10437704B2 (en) * 2016-11-22 2019-10-08 Ca, Inc. Identifying back-end components based on stack traces
CN106775682B (zh) * 2016-12-01 2020-06-16 合肥永君数码科技有限公司 一种soa构架下通知服务中间系统
US11010273B2 (en) * 2017-06-28 2021-05-18 Intel Corporation Software condition evaluation apparatus and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295612A (ja) * 2003-03-27 2004-10-21 Bank Of Tokyo-Mitsubishi Ltd 障害対処装置及び金融取引支援プログラム
JP2016085496A (ja) * 2014-10-23 2016-05-19 株式会社日立製作所 計算機システムの異常予兆検出装置および方法
JP2016133867A (ja) * 2015-01-16 2016-07-25 株式会社リコー 情報処理システム、情報処理方法、及びプログラム
JP2017033540A (ja) * 2015-07-29 2017-02-09 株式会社リコー 電子装置、ログ保存方法及び画像形成装置

Also Published As

Publication number Publication date
KR20200108103A (ko) 2020-09-16
CN111868693A (zh) 2020-10-30
US20210004316A1 (en) 2021-01-07
JPWO2019180794A1 (ja) 2020-04-23
CN111868693B (zh) 2022-04-15
DE112018007081T5 (de) 2020-11-12
KR102244562B1 (ko) 2021-04-26
DE112018007081B4 (de) 2021-04-08
WO2019180794A1 (ja) 2019-09-26
US11113179B2 (en) 2021-09-07

Similar Documents

Publication Publication Date Title
CN108427616B (zh) 后台程序监控方法及监控装置
KR102236522B1 (ko) 정보를 처리하기 위한 방법 및 장치
EP2909723B1 (en) Smart error recovery for database applications
US20170046152A1 (en) Firmware update
US10452469B2 (en) Server performance correction using remote server actions
US11157373B2 (en) Prioritized transfer of failure event log data
US20170147368A1 (en) Dynamic Agent Delivery
JP5376258B2 (ja) メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
CN109413164B (zh) 一种访问服务恢复方法、装置、设备及可读存储介质
US11281550B2 (en) Disaster recovery specific configurations, management, and application
US10432490B2 (en) Monitoring single content page application transitions
US10180914B2 (en) Dynamic domain name service caching
US7376676B2 (en) Method, system, and program for autonomic copy services solutions
JP6524358B1 (ja) 情報処理装置、情報処理方法およびプログラム
US11169714B1 (en) Efficient file replication
JP2017184175A (ja) 情報生成プログラム、情報生成方法及び情報生成装置
CN112416698A (zh) 监控系统的扩展方法及装置、存储介质及电子设备
JP2010026626A (ja) データを記録する方法、システム及びプログラム
CN114265778A (zh) 一种接口模拟测试方法、插件,终端设备及存储介质
JP2017054415A (ja) 制御装置、情報処理システム、及び制御プログラム
KR20160112787A (ko) 테스트 시스템 및 그 제어 방법
JP5562454B1 (ja) 冗長システム用サーバ
Matotek et al. Performance Monitoring and Optimization: By Peter Lieverdink and Dennis Matotek
JP2016173746A (ja) 情報処理装置及びその制御方法、プログラム
JP2021174459A (ja) 障害処理装置、障害処理方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181102

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181102

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190426

R150 Certificate of patent or registration of utility model

Ref document number: 6524358

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees