JP7299499B2 - 情報処理プログラム、情報処理方法及び情報処理装置 - Google Patents

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

Info

Publication number
JP7299499B2
JP7299499B2 JP2019179229A JP2019179229A JP7299499B2 JP 7299499 B2 JP7299499 B2 JP 7299499B2 JP 2019179229 A JP2019179229 A JP 2019179229A JP 2019179229 A JP2019179229 A JP 2019179229A JP 7299499 B2 JP7299499 B2 JP 7299499B2
Authority
JP
Japan
Prior art keywords
log
script
moving image
error
time
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.)
Active
Application number
JP2019179229A
Other languages
English (en)
Other versions
JP2021056763A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019179229A priority Critical patent/JP7299499B2/ja
Priority to US17/027,387 priority patent/US11294746B2/en
Publication of JP2021056763A publication Critical patent/JP2021056763A/ja
Application granted granted Critical
Publication of JP7299499B2 publication Critical patent/JP7299499B2/ja
Active 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は情報処理プログラム、情報処理方法及び情報処理装置に関する。
コンピュータなどの情報処理装置では、情報処理装置を用いたユーザの作業をプログラムにより支援することがある。例えば、RPA(Robotic Process Automation)と呼ばれる技術により、端末装置のデスクトップ画面上でのユーザの作業内容をスクリプトで記述し、当該スクリプトの実行によりユーザの画面操作を自動化することがある。
ところで、プログラムの開発では、コンピュータによるプログラムの実行中にエラーが発生した場合、開発者は、プログラム実行時のログを取得し、ログを基にエラーの原因の特定やデバッグなどの作業を行う。そこで、エラー時のログ取得方法が考えられている。
例えば、自装置上で動作する実行プログラムを記録媒体に格納し、エラー発生により自装置が停止する前段階で、自装置に搭載されている書き換え可能メモリ上のログの全ての内容を当該記録媒体に書き込む制御装置が提案されている。
また、自動取引装置の各ユニット部が異常動作をした場合に、顧客操作ミスにより発生した異常動作の動作パターンと監視画像データとを対応付けたログ情報を記録する自動取引装置の提案もある。
なお、撮影された画像を、当該画像を特定するためのイベント情報と関連付けて録画し、録画された画像を再生する際に、ユーザにイベント情報を選択させて表示方法を決定し、当該表示方法に従って画像を表示装置に再生させる録画再生システムの提案がある。
特開2009-113248号公報 特開2015-69419号公報 特開2012-253559号公報
スクリプトによりユーザの画面操作の少なくとも一部を自動化する場合、端末装置が出力した一連の画面を、端末装置により録画しておくことが考えられる。エラーが発生した場合、ユーザは、録画データからエラー発生時の画面内容を確認し、エラー原因の特定に役立てることができる。しかし、録画データには、エラーを起こしていないスクリプトによる画面操作やユーザによる画面操作に対応する画像が含まれ得る。このため、ユーザは、録画データの中からエラー発生時の画像を確認することが容易でない。
1つの側面では、本発明は、エラー発生時の動画像データを効率良く抽出することができる情報処理プログラム、情報処理方法及び情報処理装置を提供することを目的とする。
1つの態様では、情報処理プログラムが提供される。この情報処理プログラムは、端末上での操作ログにエラーログが含まれるか否かを判定し、エラーログが含まれると判定した場合に、記憶部に記憶したエラーログが含まれるスクリプトの開始タイミング及び停止タイミングを操作ログに基づいて特定し、特定したスクリプトの開始タイミング及び停止タイミングの時刻情報に基づいて、スクリプトの実行中に端末上に出力した動画像データを抽出する、処理をコンピュータに実行させる。
また、1つの態様では、情報処理方法が提供される。
また、1つの態様では、情報処理装置が提供される。
1つの側面では、エラー発生時の動画像データを効率良く抽出することができる。
第1の実施の形態の情報処理装置の説明のための図である。 第2の実施の形態の情報処理システムの例を示す図である。 端末装置のハードウェア例を示すブロック図である。 端末装置の機能例を示すブロック図である。 サーバ装置の機能例を示すブロック図である。 ログの例を示す図である。 調査用資料ファイルの例を示す図である。 端末装置の処理例を示すフローチャートである。 端末装置の処理例(続き)を示すフローチャートである。 録画制御の第1の例を示す図である。 録画制御の第2の例を示す図である。 ログ監視の例を示す図である。 収集エージェントによる処理の流れの例を示す図である。 サーバ装置による動画像の再生の例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置の説明のための図である。
情報処理装置10は、ユーザの作業に用いられる種々のソフトウェアを実行する。情報処理装置10には端末40が接続されている。端末40は、ディスプレイなどの表示装置を含む。端末40は、マウスやキーボードなどの入力装置を含んでもよい。端末40は、ソフトウェアの機能を利用するための画面を表示する。情報処理装置10が端末40に当該画面を表示させてもよい。
例えば、情報処理装置10のOS(Operating System)は、ウィンドウシステムによるGUI(Graphical User Interface)を提供する。すなわち、情報処理装置10は、ソフトウェアの操作画面を表示するウィンドウを端末40に表示させ、当該ウィンドウに対するユーザの操作を受け付ける。ユーザは、端末40が有する入力装置を用いてウィンドウ内への入力操作を行うことで、ソフトウェアの機能を利用できる。ユーザは、あるウィンドウ内の情報を、他のウィンドウ内に複製する操作などにより、あるソフトウェアの情報を他のソフトウェアに入力することもできる。
情報処理装置10は、こうしたユーザの画面操作を自動化する。当該自動化に係る技術の一例としてRPAが挙げられる。情報処理装置10は、ユーザの画面操作により行われる作業内容を記述したスクリプトを保持し、スクリプトを実行することで、ユーザの画面操作を自動化する。例えば、スクリプトは、ユーザにより作成されることもあるし、プログラミングを支援する支援ツールにより、ユーザが作成したフローチャートデータなどに基づいて作成されることもある。作成されたスクリプトを実行する際に、エラーが発生することがある。そこで、情報処理装置10は、ユーザによるエラーの発生原因の調査を支援する。
情報処理装置10は、記憶部11及び処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
記憶部11は、スクリプトを記憶する。記憶部11は、操作ログ20及び録画データ30を記憶する。操作ログ20は、端末40上での操作に関するログである。録画データ30は、端末40上に出力した一連の画面を録画したデータである。録画は、例えば、スクリプトを実行するための基盤となる所定のサービスの起動時に開始され、当該サービスの終了時に終了される。操作ログ20及び録画データ30の取得は、例えば、処理部12により行われる。
処理部12は、記憶部11に記憶されたスクリプトを実行する。処理部12は、スクリプトの実行により、所定の画面操作を行う。スクリプトによる画面操作に伴って、端末40に表示される画面内容が変化する。処理部12は、端末40に表示される一連の画面を、録画データ30に記録する。処理部12は、スクリプトの実行に応じたログレコードを操作ログ20に記録する。ログレコードは、ログレコードの出力時刻を示すタイムスタンプを含む。
処理部12は、操作ログ20にエラーログが含まれるか否かを判定する。処理部12は、エラーログが含まれると判定した場合に、記憶部11に記憶したエラーログが含まれるスクリプトの開始タイミング及び停止タイミングを操作ログ20に基づいて特定する。「エラーログが含まれるスクリプト」は、エラーログに対応するスクリプト、あるいは、エラーログを発生させたスクリプトとも言える。
例えば、操作ログ20は、時系列の順に、ログレコード21,22,23,24,25を含む。ログレコード21は、時刻t1にスクリプトAの実行が開始されたことを示す通常ログである。ログレコード22は、時刻t2にスクリプトAの実行が終了されたことを示す通常ログである。ログレコード23は、時刻t3にスクリプトBの実行が開始されたことを示す通常ログである。ログレコード24は、時刻t4にエラーが発生したことを示すエラーログである。ログレコード25は、時刻t5にスクリプトBの実行が終了されたことを示す通常ログである。時刻t1~t5のうち、時刻t1が最も古い時刻であり、t2,…,t5と順に新しい時刻を示し、時刻t5が最も新しい時刻である。
この場合、処理部12は、操作ログ20にエラーログが含まれると判定する。エラーログに対応するログレコード24のタイムスタンプは、時刻t4である。時刻t4は、スクリプトBの実行開始時刻t3とスクリプトBの実行終了時刻t5との間の時刻である。よって、処理部12は、ログレコード24がスクリプトBに関連するエラーログであると特定する。あるいは、各ログレコードに、イベントに関係するスクリプトの識別情報が含まれる場合、処理部12は、ログレコード24に含まれる当該識別情報からスクリプトBを特定し得る。
この場合、第1の例では、処理部12は、操作ログ20に基づいて、エラーログが含まれるスクリプトBの開始タイミングを時刻t3と特定し、スクリプトBの停止タイミングを時刻t5と特定する。あるいは、第2の例として、処理部12は、スクリプトBの停止タイミングを、スクリプトBの実行終了時刻t5の直前のエラーログの時刻t4と特定してもよい。
処理部12は、特定したスクリプトの開始タイミング及び停止タイミングの時刻情報に基づいて、スクリプトの実行中に端末40上に出力した動画像データを抽出する。例えば、録画データ30は、時刻t0に録画開始され、時刻t6に録画終了される。時刻t0は、時刻t1より前の時刻である。時刻t6は、時刻t5より後の時刻である。時刻t6は、処理部12が動画像データの抽出を実行する時間帯よりも後の時刻でもよい。すなわち、動画像データの抽出は、録画データ30の記録中に行われてもよい。
上記の第1の例では、処理部12は、エラーログに関連するスクリプトBに関して、スクリプトBの開始タイミングを時刻t3と特定し、スクリプトBの停止タイミングを時刻t5と特定し得る。よって、処理部12は、録画データ30のうち、時刻t3から時刻t5までの動画像データ31を抽出する。
あるいは、上記の第2の例では、処理部12は、エラーログに関連するスクリプトBに関して、スクリプトBの開始タイミングを時刻t3と特定し、スクリプトBの停止タイミングを時刻t4と特定し得る。よって、処理部12は、録画データ30のうち、時刻t3から時刻t4までの動画像データを抽出してもよい。あるいは、処理部12は、録画データ30のうち、時刻t3から時刻t4の所定時間後(例えば、10秒後など)の時刻までの動画像データを抽出することも考えられる。
情報処理装置10によれば、端末40上での操作ログ20にエラーログが含まれるか否かが判定される。エラーログが含まれると判定された場合に、記憶部11に記憶したエラーログが含まれるスクリプトの開始タイミング及び停止タイミングが操作ログ20に基づいて特定される。特定されたスクリプトの開始タイミング及び停止タイミングの時刻情報に基づいて、スクリプトの実行中に端末40上に出力した動画像データ31が抽出される。
これにより、エラー発生時の動画像データを効率良く抽出することができる。
具体的には、処理部12は、スクリプトの開始タイミングから停止タイミングまでの時刻情報に基づいて、エラーに関係する画面操作を含む動画像データ31を適切に抽出可能である。このため、例えば録画データ30の全体からエラーに関係する画面操作の動画像を探索する作業をユーザに強いずに済む。このため、ユーザによるエラー原因の調査作業を効率化できる。
例えば、処理部12は、動画像データ31を端末40に表示させてもよい。処理部12は、スクリプト開発の支援を行う技術支援者が利用する他の情報処理装置に、該当のスクリプトと操作ログ20と動画像データ31とを送信してもよい。ユーザあるいは技術支援者は、動画像データ31を基に再生された動画を見ることで、エラー発生時の画面の操作内容を容易に確認でき、スクリプト及び操作ログ20とともにエラーの発生原因の調査を効率的に行えるようになる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、端末装置100及びサーバ装置200を含む。端末装置100及びサーバ装置200は、ネットワーク50に接続される。ネットワーク50は、LAN(Local Area Network)やインターネットなどである。端末装置100は、ユーザ61により利用される。サーバ装置200は、技術支援者62により利用される。
端末装置100は、RPAの開発環境を提供するクライアントコンピュータである。RPAの技術により、端末装置100または他の端末装置におけるデスクトップ画面に対する操作が自動化され、当該端末装置における作業効率の向上が図られる。端末装置100は、第1の実施の形態の情報処理装置10の一例である。
RPAを利用するため、ユーザ61は、端末装置100を用いて、RPAのプログラミングを行う。例えば、端末装置100は、RPAのプログラムの開発ツールを提供する。ユーザ61は、当該開発ツールを利用して、例えば、フローチャート図を作成するなどの直感的な操作により、プログラムの開発を行える。RPAのプログラムは、例えば、XAML(Extensible Application Markup Language)などのマークアップ言語を用いて記述される。
サーバ装置200は、ユーザのプログラム開発支援に用いられるサーバコンピュータである。サーバ装置200は、RPAのプログラムが適切に動作しなかったときの調査用資料の情報を端末装置100から収集し、技術支援者62に提示する。技術支援者62は、調査用資料の情報を分析して原因を特定し、解決策をユーザ61に連絡する。
図3は、端末装置のハードウェア例を示すブロック図である。
端末装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106及びNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、端末装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、端末装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。なお、端末装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、端末装置100に接続されたディスプレイ51に画像を出力する。ディスプレイ51には、端末装置100のOSが提供するGUIが表示される。GUIには、例えばウィンドウシステムが用いられる。ディスプレイ51に表示されるGUIの画面は、デスクトップ画面と呼ばれることがある。ディスプレイ51としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、端末装置100に接続された入力デバイス52から入力信号を取得し、CPU101に出力する。入力デバイス52としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、端末装置100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体53に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体53として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体53から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体53は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体53やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC107は、ネットワーク50に接続され、ネットワーク50を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
なお、サーバ装置200も端末装置100と同様のハードウェアにより実現される。
図4は、端末装置の機能例を示すブロック図である。
端末装置100は、スクリプト記憶部110、ログ記憶部120、動画像記憶部130、調査用資料記憶部140、ロボットサービス150及び収集エージェント160を有する。スクリプト記憶部110、ログ記憶部120、動画像記憶部130及び調査用資料記憶部140には、RAM102及びHDD103の記憶領域が用いられる。ロボットサービス150及び収集エージェント160は、プログラムにより実現される。
スクリプト記憶部110は、ユーザ61により作成されたスクリプトを記憶する。スクリプトは、RPAのプログラムに相当する。スクリプトは、ロボットサービス150により実行される。
ログ記憶部120は、スクリプトの実行に応じてロボットサービス150により作成されるログを記憶する。ログは、ファイル形式やテーブル形式などの所定のデータ形式の情報である。ログ記憶部120に記憶されるログは、第1の実施の形態の操作ログ20に対応する。
動画像記憶部130は、収集エージェント160により取得される動画像を記憶する。動画像は、ロボットサービス150の起動中のデスクトップ画面の変化を録画したものである。
調査用資料記憶部140は、収集エージェント160により収集される調査用資料の情報を記憶する。調査用資料の情報は、スクリプトの実行中にエラーが発生した場合に収集される。調査用資料の情報は、エラーが発生したスクリプト、ログ、当該スクリプトの実行中の動画像データを含む。
ロボットサービス150は、RPAの実行基盤である。ロボットサービス150は、スクリプトの実行によりロボット処理を行う。ロボット処理は、端末装置100のデスクトップ画面に対する操作を自動的に行う処理である。ロボットサービス150は、スクリプト実行部151を有する。
スクリプト実行部151は、スクリプト記憶部110に記憶されたスクリプトを実行する。スクリプトの実行に応じて、ディスプレイ51に表示されるデスクトップ画面の内容は変化する。スクリプト実行部151は、スクリプトの実行中に発生したイベントに応じて、ログレコードを生成し、ログ記憶部120に記憶されたログに記録する。
ここで、ロボットサービス150は、例えば、ユーザ61により設定されたスケジュールによって起動し、ユーザ61により予め指定されたスクリプトをスクリプト実行部151に実行させる。スケジュールされたスクリプトの実行が終了した後に、ロボットサービス150は停止する。ロボットサービス150は、例えば、ユーザ61による起動指示の入力に応じて起動し、ユーザ61により指定されたスクリプトをスクリプト実行部151に実行させることもある。指定されたスクリプトの実行が終了した後に、ロボットサービス150は停止する。
収集エージェント160は、スクリプト実行中のエラー発生に応じて、エラー原因の特定に用いられる情報を収集する。収集エージェント160は、収集した情報から調査用資料の情報を作成し、サーバ装置200に送信する。収集エージェント160は、動画像保存部161、ログ監視部162、動画像抽出部163、調査用資料作成部164及び送信部165を有する。
動画像保存部161は、ロボットサービス150の動作中の動画像を生成し、動画像記憶部130に保存する。動画像保存部161は、ロボットサービス150が起動すると、デスクトップ画面の録画を開始する。動画像保存部161は、ロボットサービス150が停止すると、デスクトップ画面の録画を停止する。動画像保存部161は、録画が停止した動画像の他に、録画中の動画像も動画像記憶部130に格納する。
ログ監視部162は、ログ記憶部120に記憶されたログを監視する。具体的には、ログ監視部162は、ログを参照して、ログレベルが一定レベル以上であるログレコードが記録されたかを監視する。ログ監視部162は、ログレベルが一定レベル以上のログレコードを検出した場合、該当のログレコードに対してロボットサービス150上で動作したスクリプトの開始時刻及び終了時刻をログから特定し、動画像抽出部163に通知する。
ここで、ログレベルとは、障害などの深刻度を表す指標である。ログレベルには、例えば、低い方から高い方へ順に、デバッグ用情報(DEBUG)、情報(INFORMATION)、警告(WARNING)、エラー(ERROR)、致命的エラー(FATAL)などがある。ログレベルが高いほど深刻度は高く、ログレベルが低いほど深刻度は低い。ログ監視部162では、一定レベルとして、例えば、エラー以上のものを検出する。ログ監視部162は、最後にエラーログが出力された時刻を動画像抽出部163に通知する。
動画像抽出部163は、動画像記憶部130に格納されている動画像から、ログ監視部162により特定された時間帯の動画像を切り出し、調査用資料作成部164に提供する。動画像抽出部163は、最後にエラーログが出力された時刻を示す情報を、切り出した動画像に付与する。例えば、最後にエラーログが出力された時刻を示す情報は、切り出した動画像に対してシーク時刻位置の情報として付与されてもよいし、当該動画像に対する付属情報(例えば、動画像の再生画面に表示される情報)として付与されてもよい。動画像抽出部163は、エラーが発生したスクリプトに対して、録画中の動画像の他にも、過去に保存済の動画像がある場合、当該保存済の動画像から、該当のスクリプトを実行中の時間帯の部分を切り出して、調査用資料作成部164に提供する。過去に保存済の動画像から切り出される動画像は、後述されるように、該当のスクリプトの正常動作時の動画像である。
調査用資料作成部164は、動画像抽出部163により抽出された動画像を取得すると、該当のスクリプトのソースプログラムをスクリプト記憶部110から取得する。また、調査用資料作成部164は、ログ記憶部120からログを取得する。調査用資料作成部164は、ソースプログラムとログと動画像抽出部163により抽出された動画像とを一纏めのファイルとした調査用資料の情報を作成し、調査用資料記憶部140に格納する。調査用資料の情報は、例えば、アーカイブファイルである。調査用資料作成部164は、ソースプログラムとログと動画像抽出部163により抽出された動画像とを圧縮して、アーカイブファイルを作成してもよい。
送信部165は、調査用資料作成部164に記憶された調査用資料の情報をサーバ装置200に送信する。
例えば、調査用資料作成部164は、調査用資料の情報の作成後、調査用資料の情報をサーバ装置200に送信するか否かの確認メッセージをディスプレイ51に表示させる。送信する旨の、ユーザ61による入力を受け付けると、調査用資料作成部164は、送信部165により、調査用資料の情報を送信させる。一方、送信しない旨の、ユーザ61による入力を受け付けると、調査用資料作成部164は、調査用資料の情報を調査用資料記憶部140に保存して処理を終了する。ユーザ61は、送信しない旨を入力した場合でも、その後の所望のタイミングで、調査用資料記憶部140に保存された調査用資料の情報を、電子メールなどを用いて端末装置100からサーバ装置200へ送信させることができる。
図5は、サーバ装置の機能例を示すブロック図である。
サーバ装置200は、調査用資料記憶部210、受信部220及び動画像再生部230を有する。調査用資料記憶部210には、サーバ装置200のRAMやHDDなどの記憶領域が用いられる。受信部220及び動画像再生部230は、プログラムにより実現される。
調査用資料記憶部210は、端末装置100から受信された調査用資料の情報を記憶する。
受信部220は、端末装置100から調査用資料の情報を受信し、調査用資料記憶部210に格納する。
動画像再生部230は、調査用資料記憶部210に記憶された調査用資料の情報に含まれる動画像を再生し、サーバ装置200のディスプレイまたは技術支援者62が使用する端末のディスプレイに、当該動画像を表示させる。
図6は、ログの例を示す図である。
ログ121は、ログ記憶部120に格納される。ログ121は、ロボットID(IDentifier)、ログID及びログメッセージの項目を含む。
ロボットIDの項目には、ロボットIDが登録される。ロボットIDは、起動されたロボットサービス150を識別する識別情報である。ロボットサービス150の起動毎に、起動されたロボットサービス150に対してロボットIDが付与される。すなわち、ある時刻に起動されたロボットサービス150、及び、別の時刻に起動されたロボットサービス150には別個のロボットIDが付与されて区別される。ログIDの項目には、ログIDが登録される。ログIDは、ログレコードを識別する識別情報である。ログメッセージの項目には、ログメッセージが登録される。ログメッセージは、発生したイベントの内容を示すメッセージである。ログメッセージは、タイムスタンプ、スクリプトの識別情報、及び、ログレベルの識別情報を含む。
例えば、ログ121には、ロボットIDが「1」、ログIDが「1」、ログメッセージが「“processName”:“testRobot”,“message”:“Robot started.”,“timestamp”:“20xx/01/05 13:05 00:00”,“level”:“Information”,…というログレコードが含まれる。このログレコードは、起動されたロボットサービス150のロボットIDが「1」であり、ログ121におけるログID「1」のログレコードであることを示す。また、当該ログレコードは、「processName」で識別されるスクリプトが、20xx年1月5日13時05分00秒に実行開始されたこと(“Robot started.”)を示す。更に、当該ログレコードは、ログレベル(level)が、「情報」(Information)であることを示す。
このように、ログ121では、ログメッセージに含まれる“message”の直後の記述によって、発生したイベントが識別される。例えば、ログID「1」のログレコードは、上記のように、ロボットサービス150によるスクリプトの実行開始を示す。また、ログID「3」のログレコードにおける「“Robot finished.”」は、ログID「1」の時点で実行開始されたスクリプトの実行終了を示す。更に、ログID「4」のログレコードは、その後におけるロボットサービス150によるスクリプトの実行開始を示す。ログID「9」のログレコードは、ログID「4」の時点で実行開始されたスクリプトの実行終了を示す。
また、ログ121では、ログメッセージに含まれる“level”の直後の記述によって、ログレベルが識別される。例えば、ログID「6」、「7」、「8」のログレコードは、ログレベルが「エラー」(Error)である。
ログ121の例では、ロボットID「2」に対するログID「4」~「9」のログレコードでは、3つのエラーログが含まれる。3つのエラーログは、ログID「6」~「8」のログレコードである。この場合、ログ監視部162は、ログID「8」のログレコードを最後に出力されたエラーログと判断し、当該ログレコードに含まれるタイムスタンプをエラー時動画像に埋め込む。
ここで、スクリプトのコーディング方法として、try-catch構文などにより想定済エラーとして意図的に無視する方法がある。スクリプトには、このような構文で記述される箇所が含まれる可能性がある。そのため、ログ121において、あるスクリプトの実行に対して複数のエラーレベルのログレコードが記録されることがある。このような場合、スクリプトがエラー発生により停止した箇所を、エラー時動画像において特定することが困難になることがある。そこで、ログ監視部162は、上記のように、最後に出力されたエラーログのタイムスタンプをエラー時動画像に埋め込む(あるいは、付属情報として保存する)ことで、エラー時動画像のうちエラーによりスクリプトの実行が停止した場面を容易に特定可能にする。
ここで、スクリプト停止原因となり得るエラーが発生した後は、スクリプトが終了するため、最後に出力されたエラーレベルのログレコードは、スクリプトの停止原因を示すログレコードであると推定される。このため、最後に出力されたエラーのタイムスタンプをエラー時動画像に設定することで、複数エラー発生時におけるスクリプト停止原因の特定の容易化を図ることができる。
図7は、調査用資料ファイルの例を示す図である。
調査用資料ファイル141は、調査用資料の情報の一例である。調査用資料ファイル141は、スクリプト111、ログ121、エラー時動画像131及び正常時動画像132を含む。スクリプト111は、エラー発生時に実行されていたスクリプトのソースプログラムである。スクリプト111は、複数のスクリプトのソースプログラム(すなわち、スクリプトセット)であることもある。ログ121は、ログ記憶部120に記憶されているログである。
エラー時動画像131は、録画中の動画像から動画像抽出部163により抽出されたエラー時の動画像である。エラー時動画像131は、エラーが発生したスクリプトの実行中の動画像である。
正常時動画像132は、録画中の動画像以外の保存済の動画像から動画像抽出部163により抽出された、該当のスクリプトの正常動作時の動画像である。ただし、調査用資料ファイル141には、正常時動画像132が含まれないこともある。
次に、端末装置100の処理手順を説明する。
図8は、端末装置の処理例を示すフローチャートである。
(S10)ロボットサービス150が起動し、ロボットサービス150の処理が開始される。
(S11)動画像保存部161は、デスクトップ画面の録画を開始する。また、スクリプト実行部151は、スクリプト111の実行を開始し、ログ記憶部120に対するログレコードの出力を開始する。
(S12)ログ監視部162は、ログ記憶部120に記憶されたログ121を監視し、スクリプト終了ログが出力されたか否かを判定する。スクリプト終了ログが出力された場合、ステップS13に処理が進む。スクリプト終了ログが出力されていない場合、ステップS12に処理が進み、ログ監視部162は、ログ121の監視を継続する。ここで、スクリプト終了ログは、スクリプトの実行終了を示すログレコードに相当する。
(S13)ログ監視部162は、ステップS11で出力開始された今回のログ121において、エラーログが出力されたか否かを判定する。エラーログが出力された場合、ステップS14に処理が進む。エラーログが出力されていない場合、図9のステップS23に処理が進む。
(S14)ログ監視部162は、エラーログを出力したスクリプト111をログ121から特定する。具体的には、ログ監視部162は、ログレベルがエラーであるログレコードに含まれるスクリプト111の識別情報を特定する。ログ監視部162は、ログ121を参照して、スクリプト111の実行開始時刻と実行終了時刻とを特定し、特定した実行開始時刻と実行終了時刻とを動画像抽出部163に通知する。このとき、ログ監視部162は、検出された最後のエラーログに対応する時刻とエラーが発生したスクリプト111の識別情報とを動画像抽出部163に通知する。動画像抽出部163は、録画中動画像から、ログ監視部162より通知された実行開始時刻から実行終了時刻の時間帯に対応するエラー時動画像131を切り出して保存する。動画像抽出部163は、エラー時動画像131に、最後のエラーログに対応する時刻の情報を付加する。動画像抽出部163は、抽出したエラー時動画像を調査用資料作成部164に提供する。
なお、動画像抽出部163は、エラーが発生したスクリプト111の実行開始時刻から実行終了時刻までの時間帯に対応するエラー時動画像131を抽出するものとしたが、他の例も考えられる。例えば、動画像抽出部163は、スクリプト111の実行開始時刻から最後のエラーが出力された時刻までの時間帯に対応する動画像をエラー時動画像131として抽出してもよい。
(S15)動画像抽出部163は、正常時動画像を保存済であるか否かを判定する。正常時動画像を保存済である場合、ステップS16に処理が進む。正常時動画像を保存済でない場合、ステップS17に処理が進む。
(S16)動画像抽出部163は、正常時動画像全体からスクリプト111の正常時動画像を切り出す。例えば、動画像抽出部163は、ログ121から該当のスクリプトの識別情報に対応するログレコードを特定し、当該ログレコードにより該当のスクリプトが実行開始から実行終了までエラーを発生させずに実行された時間帯を特定する。動画像抽出部163は、正常時動画像全体から当該時間帯の動画像を切り出すことで、スクリプト111の正常時動画像の切り出しを行う。動画像抽出部163は、スクリプト111の正常時動画像を、調査用資料作成部164に提供する。
(S17)調査用資料作成部164は、スクリプト記憶部110からスクリプト111を抽出し、ログ記憶部120からログ121を抽出する。
(S18)調査用資料作成部164は、各採取ファイルをまとめて圧縮し、調査用資料ファイル141を作成する。そして、図9のステップS19に処理が進む。
図9は、端末装置の処理例(続き)を示すフローチャートである。
(S19)調査用資料作成部164は、送信確認メッセージをディスプレイ51に表示させる。送信確認メッセージは、例えば、「エラー情報(採取したリソース)を技術支援者(サーバ)に送付しますか?(YES/NO)」という内容のメッセージである。
(S20)調査用資料作成部164は、ステップS19の送信確認メッセージに対して、ユーザ61により「YES」が選択されたか否かを判定する。「YES」が選択された場合、ステップS21に処理が進む。「NO」が選択された場合、ステップS22に処理が進む。
(S21)送信部165は、調査用資料ファイル141をサーバ装置200に送信する。そして、ステップS23に処理が進む。
(S22)調査用資料作成部164は、調査用資料ファイル141をローカルに保存する。例えば、調査用資料作成部164は、HDD103などの不揮発性記憶装置に調査用資料ファイル141を保存する。
(S23)動画像保存部161は、ロボットサービス150が停止したか否かを判定する。ロボットサービス150が停止した場合、ステップS24に処理が進む。ロボットサービスが停止していない場合、図8のステップS12に処理が進む。
(S24)動画像保存部161は、今回実行されたスクリプトでエラーが発生しているか否かを、ログ監視部162に問合せることで判定する。エラーが発生している場合、ステップS26に処理が進む。エラーが発生していない場合、ステップS25に処理が進む。ログ監視部162は、ログ121を参照することで、スクリプト111でエラーが発生しているか否かを判定し、動画像保存部161に判定結果を応答する。
(S25)動画像保存部161は、正常時動画像をローカルに保存する。例えば、動画像保存部161は、HDD103などの不揮発性記憶装置に正常時動画像を保存する。このとき、動画像保存部161は、今回実行されたスクリプトの識別情報を、当該正常時動画像に付与して保存してもよい。このようにすると、あるスクリプトでエラーが発生したときに、当該スクリプトに対する正常時動画像を容易に検索可能になる。
(S26)動画像保存部161は、動画像の録画を停止する。そして、端末装置100の処理が終了する。
このように、動画像抽出部163は、スクリプトの実行に用いられるロボットサービス150が起動すると、端末装置100のディスプレイ51上に表示される画面の録画を開始し、録画により取得された録画データからエラー時動画像データを抽出する。
ここで、ステップS15,S16で示されるように、動画像抽出部163は、エラー時動画像データとともに、エラーログが含まれるスクリプトに対応するエラーを含まないスクリプト実行時の正常時動画像データを抽出する。これにより、技術支援者62のエラー原因の調査において、該当のスクリプトに対して、エラー時だけでなく正常時の動作も確認可能になる。
また、ステップS14では、動画像抽出部163は、スクリプトに複数のエラーログが含まれる場合に、複数のエラーログの内、スクリプト内で停止タイミングに最も近いタイミングで発生したエラーログを特定し、特定したエラーログに対応付けられた時刻情報に基づいてエラー時動画像データを抽出してもよい。例えば、エラーログの記録タイミングよりも比較的長時間経ってから、スクリプトの停止を示すログレコードが出力されることもある。このため、スクリプト内での停止タイミングに最も近いタイミングで発生したエラーログの時刻情報を基にエラー時動画像データを抽出することで、エラー時動画像が過剰に長く取得されることを防げる。スクリプト内での停止タイミングに最も近いタイミングで発生したエラーログとしては、スクリプトの停止タイミング前の最後に出力されたエラーログが考えられる。例えば、動画像抽出部163は、当該最後に出力されたエラーログに対応付けられた時刻情報で示される時刻をエラー時動画像の終端としてもよい。あるいは、動画像抽出部163は、当該時刻情報で示される時刻よりも所定時間だけ後の時刻をエラー時動画像の終端としてもよい。
次に、収集エージェント160の動画像保存部161による録画の開始/終了の制御例を説明する。
図10は、録画制御の第1の例を示す図である。
第1の例として、収集エージェント160によりロボットサービス150を起動することが考えられる。
まず、収集エージェント160は、ロボットサービス150を起動する(S30)。収集エージェント160は、デスクトップ画面の録画を開始する(S31)。そして、ロボットサービス150はスクリプトの実行を開始する。ロボットサービス150は、スクリプトの実行を終了する。そして、ロボットサービス150は終了を収集エージェント160に通知し、動作を停止する(S32)。収集エージェント160は、終了の通知を受け付けると、デスクトップ画面の録画を終了する。
図11は、録画制御の第2の例を示す図である。
第2の例として、収集エージェント160は、端末装置100で実行されているプロセス名の一覧であるプロセスリスト170を参照して、ロボットサービス150の起動及び停止を検出することが考えられる。プロセスリスト170は、例えば、OSが作成する情報であり、RAM102上に保持される。
収集エージェント160は、プロセスリスト170を参照して、ロボットサービス150が起動しているか否かを判定する(S40)。収集エージェント160は、プロセスリスト170にロボットサービス150のプロセス名が新たに登録されたことを検出すると、ロボットサービス150が起動したと判断し、デスクトップ画面の録画を開始する(S41)。収集エージェント160は、プロセスリスト170を参照して、ロボットサービス150が終了しているか否かを判定する(S42)。収集エージェント160は、プロセスリスト170からロボットサービス150のプロセス名が削除されたことを検出すると、ロボットサービス150が終了したと判断し、デスクトップ画面の録画を終了する。
次に、収集エージェント160によるログ監視の例を説明する。
図12は、ログ監視の例を示す図である。
例えば、ロボットサービス150によるログ出力処理に、所定のOSS(Open Source Software)のログライブラリが利用されることがある。この場合、収集エージェント160は、ロボットサービス150のログ設定ファイル181に基づいて、ログレイアウト182を予め取得する。ログ設定ファイル181は、ロボットサービス150の設定ファイルとして、RAM102やHDD103に予め格納される。ログレイアウト182は、ロボットサービス150のログ出力パターンを示す情報である。あるいは、ログレイアウト182は、ユーザ61により予め作成されて、ログ監視部162の設定ファイルとしてRAM102やHDD103に予め格納されてもよい。
例えば、収集エージェント160は、ロボットサービス150のログ設定ファイル181からログレイアウト182を検出する(S50)。図12の例では、収集エージェント160は、ログ設定ファイル181に基づいて、ログレコードが、タイムスタンプとログレベルとスクリプトに関するイベントを示すメッセージとを、スペース区切りで、この順に含むことを表すログレイアウト182を生成する。なお、図12の例では、ログ183にスクリプトの識別情報が記録されていない。この場合、収集エージェント160は、ロボットサービス150が出力する他のログから実行されたスクリプトを特定してもよい。あるいは、収集エージェント160は、スクリプトの実行開始時にロボットサービス150から実行開始したスクリプトの識別情報を取得して当該スクリプトを特定してもよい。
収集エージェント160は、デスクトップ画面の録画開始後、ログレイアウト182に基づいて、ロボットサービス150が出力するログ183の監視を開始する(S51)。
収集エージェント160は、ログレイアウト182に基づいて、ログ183にエラーを示すログレコードが出力されたことを検出する(S52)。収集エージェント160は、ログ183からエラーの発生時刻を取得する。
収集エージェント160は、エラーが発生したスクリプトの実行開始時刻と実行終了時刻をログ183から検出し、実行開始時刻と実行終了時刻の時間帯に対応するエラー時動画像131を、録画中の動画像から抽出する(S53)。
次に、収集エージェント160による処理の流れの例を説明する。
図13は、収集エージェントによる処理の流れの例を示す図である。
(S60)収集エージェント160は、ロボットサービス150の起動を検出する。
(S61)収集エージェント160は、ディスプレイ51に表示されるデスクトップ画面の録画を開始する。
(S62)ロボットサービス150は、スクリプト111を実行することで、デスクトップ画面に対する操作を実行する。ロボットサービス150は、スクリプト111の実行に伴い、ログ記憶部120にログ121を出力する。
(S63)収集エージェント160は、ログ記憶部120に出力されるログ121を監視する。
(S64)収集エージェント160は、ロボットサービス150がエラーを出力せずにスクリプト111の実行を終了し、動作を停止すると、正常時動画像をHDD103に保存する。
その後、収集エージェント160は、ロボットサービス150の起動を再度検出すると、ステップS60~S63を実行し、下記のステップS65を実行する。
(S65)収集エージェント160は、ログ121にスクリプト111に関する複数のエラーが出力されたことを検出する。収集エージェント160は、複数のエラーのうちの最後に出力されたエラーを検出し、当該最後に出力されたエラーが出力された時刻を取得する。また、収集エージェント160は、該当のスクリプト111の実行開始時刻及び実行終了時刻をログ121から取得する。
(S66)収集エージェント160は、録画中の動画像からエラー時動画像131を抽出する。
(S67)収集エージェント160は、保存済の正常時動画像からスクリプト111に対応する正常時動画像132を抽出する。収集エージェント160は、スクリプト111、ログ121、エラー時動画像131及び正常時動画像132を一纏めにした圧縮ファイルである調査用資料ファイル141を作成する。収集エージェント160は、調査用資料ファイル141を調査用資料記憶部140に保存する。
(S68)収集エージェント160は、送信確認メッセージ190をディスプレイ51に表示させる。送信確認メッセージ190は、例えば、「エラー情報を技術支援者(サーバ)に送付しますか?「YES」/「NO」」というユーザ61への問合せを含む。ユーザ61は、送信確認メッセージ190による問合せに対し、入力デバイス52を操作することで、「YES」または「NO」を、端末装置100に入力する。
(S69)収集エージェント160は、ユーザ61により「YES」の入力を受け付ける。
(S70)収集エージェント160は、調査用資料ファイル141をサーバ装置200に送信する。
なお、収集エージェント160は、ステップS69で「NO」の入力を受け付けた場合には、録画を停止して録画中の動画像を破棄し、処理を終了する。この場合でも、ユーザ61は、調査用資料記憶部140に保存された調査用資料ファイル141を、所望のタイミングで、電子メールなどを用いて、端末装置100からサーバ装置200へ送信させることができる。
次に、サーバ装置200によるエラー時動画像131及び正常時動画像132の再生の例を説明する。
図14は、サーバ装置による動画像の再生の例を示す図である。
動画像再生部230は、サーバ装置200に接続されたディスプレイ、または、技術支援者62が利用する端末装置のディスプレイに、動画像再生画面240を表示させる。動画像再生画面240は、正常時動画像再生領域250及びエラー時動画像再生領域260を有する。
正常時動画像再生領域250は、正常時動画像132が再生される画面領域である。エラー時動画像再生領域260は、エラー時動画像131が再生される画面領域である。
動画像再生部230は、正常時動画像再生領域250及びエラー時動画像再生領域260により、正常時動画像132及びエラー時動画像131を並列に再生する。これにより、技術支援者62による正常時動作とエラー時動作との対比が容易に行える。
なお、エラー時動画像131及び正常時動画像132で動画像の時間が一致しないこともある。この場合、動画像抽出部163は、動画像の撮影対象のスクリプトが同じであるという条件の下、ログレコードの出力時刻により、マイルストーンを各動画像に設定してもよい。マイルストーンとは、動画像中の特定の場面の開始時点を示すインデックス情報である。
例えば、動画像抽出部163は、エラー時動画像131及び正常時動画像132におけるデスクトップ画面の変化に応じてマイルストーンを設定する。デスクトップ画面の変化の例としては、新たなウィンドウの表示、所定のフォームに対して入力されたテキスト情報の表示、ウィンドウの消去などが考えられる。動画像抽出部163は、スクリプト111を解析し、あるスクリプトが他のスクリプトを呼び出すタイミングや、呼び出された他のスクリプトによる処理が完了して、元のスクリプトの処理に戻るタイミングなどでマイルストーンを設定してもよい。
この場合、動画像再生部230は、エラー時動画像131及び正常時動画像132を並列に再生する際に、両動画像に設定されたマイルストーンの再生タイミングが一致するように再生してもよい。例えば、動画像再生部230は、どちらか一方の動画像再生が早く終了する場合、マイルストーンに基づいて、早く終了する方の動画像の再生時に待ちを挿入することもできる。また、動画像再生部230は、再生開始から再生終了の時刻が一致するように何れか一方の動画像の再生速度を変更してもよい。
動画像再生画面240は、更に、再生制御ボタン241、再生時間表示部242、シークバー243及び動画時間表示部244を有する。
再生制御ボタン241は、正常時動画像再生領域250及びエラー時動画像再生領域260における並列再生の再生/一時停止の入力を受け付けるボタンである。技術支援者62は、サーバ装置200に接続された入力デバイスまたは技術支援者62が利用する端末装置の入力デバイスを操作して、再生制御ボタン241に対する入力を行える。
再生時間表示部242は、再生中の動画像の再生開始からの経過時間が表示される領域である。
シークバー243は、並列再生中の動画像の再生開始からの経過時間を示すとともに、当該動画像のシーク時刻位置の入力を受け付けるためのフォームである。シークバー243により、シーク時刻位置が入力されると、動画像再生部230は、当該シーク時刻位置に対応する位置から両動画像の並列再生を行う。
動画時間表示部244は、動画像の開始から終了までの時間が表示される領域である。例えば、エラー時動画像131がスクリプトの実行開始から実行終了までの動画像である場合、動画時間表示部244に表示される時間が、スクリプトの実行終了時に対応する時間となる。この場合、前述のように、当該スクリプトの最終のエラー出力時に対応するシーク時刻位置の情報がエラー時動画像131に設定されてもよい。例えば、動画像再生部230は、シーク時刻位置へジャンプするためのボタンなどを動画像再生画面240に含めて表示させ、技術支援者62によるエラー時刻位置の動画像の探索を容易に行えるように支援できる。あるいは、エラー時動画像131がスクリプトの実行開始から当該スクリプトの最終のエラー出力時までの動画像である場合、動画時間表示部244に表示される時間が、当該スクリプトの最終のエラー出力時に対応する時間となる。
図14の例では、正常時動画像再生領域250には、ウィンドウ251,252が表示されている。ウィンドウ251は、表計算ソフトウェアの操作画面である。ウィンドウ252は、データ入力ソフトウェアの操作画面である。例えば、ウィンドウ251に表示された複数のデータ項目それぞれを、ウィンドウ252の各フォームに入力して、ウィンドウ252の保存ボタンを押下するという画面操作を含む一連の画面操作がRPAにより自動化される。
また、エラー時動画像再生領域260には、ウィンドウ261,262,263が表示されている。ウィンドウ261は、ウィンドウ251に対応する。ウィンドウ262は、ウィンドウ252に対応する。ウィンドウ263は、ロボットサービス150により表示されたエラーメッセージの出力画面である。エラー時動画像再生領域260では、スクリプト実行中のエラーにより、ウィンドウ261からウィンドウ262へ製品名に対応するデータ項目の情報を取得できなかったことが、ウィンドウ263に表示されている。
なお、第2の実施の形態の例では、サーバ装置200が動画像再生部230を有するものとしたが、端末装置100も動画像再生部230の機能を有してもよい。この場合、端末装置100も、動画像再生画面240をディスプレイ51に表示させて、エラー時動画像131および正常時動画像132を上記のようにして並列再生することができる。すると、ユーザ61も技術支援者62と同じ画面によりエラー時の事象を確認しながら、ユーザ61自身でエラー原因を調査したり、技術支援者62の支援を受けたりすることができる。
ここで、RPAでは、デスクトップ画面の表示情報に基づいて情報の抽出を行う。このため、ある時点ではスクリプトを正常に実行できたとしても、操作対象のソフトウェア(例えば、表計算ソフトウェアなど)における設定変更などによって、表示情報の少なくとも一部が変更されると、別の時点ではスクリプトの実行時にエラーが生じ得る。技術支援者62は、正常時動画像132とエラー時動画像131とを対比しながら確認することで、スクリプトのソースプログラムやログとともに、エラー原因の解析を円滑に行うことができる。
ところで、RPAプログラミングの技術支援において、技術支援者62によるRPAのロボット処理のプログラミング方法や設計方法などの問合せを、例えば、電子メールにより行うことも考えられる。しかし、電子メールの文章のみではRPAのロボット処理の詳細なエラー情報の抽出やユーザ61からの問合せ内容を技術支援者62が的確に把握することが困難であった。そのため、現場で発生している問題や問合せに対して、技術支援者62が的確に回答できない、あるいは、回答に時間がかかるなどの問題が発生する。
一方、技術支援者62によるオンサイトでの技術支援も考えられる。しかし、オンサイト支援では、技術支援者62が、ユーザ61の元へ出向くことになり、技術支援者62の負担が高まる。また、ユーザ61の拠点が技術支援者62の拠点から遠方にあるなど、地理的な要因でオンサイト支援が難しくなることもある。
更に、テレビ電話システムなどを用いて、音声及びデスクトップ画面を、ユーザ61及び技術支援者62で共有して、ペアプログラミング形式で支援を行うことも考えられる。例えば、技術支援者62が、ユーザ61のRPA開発環境の画面を見ながら、ユーザ61の問合せに音声で回答するなどの支援方法が考えられる。ただし、このような支援方法は、ユーザ61と技術支援者62とのスケジュールが合わなければ実現することができない。
また、RPAのプログラムは、例えば、支援ツールによりフローチャート形式で作成される。そのため、プログラムのバグを、電子メールやテレビ電話システムにより解決したとしても、その後、他の箇所で別のバグが直ぐに発生した場合に、ユーザ61はその都度質問したいというニーズが発生する。しかし、電子メールやテレビ電話システムでは、基本的に一問一答形式での対応となる。このため、ユーザ61は、問合せを行う際に、質問したい事項を予め全て抽出しておかなければ、問題を全て解決することができないという問題が生じる。
そこで、このようなRPAの技術支援が抱える問題に対して、ユーザ61が比較的短手番でRPAのプログラミング時に発生する問題を抽出し、技術支援者62が速やかに回答できるように支援する技術支援方法が求められる。
これに対して、第2の実施の形態の端末装置100によれば、端末装置100で発生したエラーに対する技術支援に利用される調査用資料を自動的に取得することができる。このため、ユーザ61に情報採取の作業を強いずに済む。また、調査用資料を迅速に取得可能になる。また、技術支援者62は、調査用資料に含まれる情報に基づいて、調査を要するエラー発生箇所を迅速に探し出せる。また、調査用資料に含まれるエラー時動画像131及び正常時動画像132を並列に再生可能にすることで、技術支援者62は、正常動作時とエラー時との差を対比しながら、事象の確認や調査を行える。
特に、スクリプトの実行開始時刻及び実行終了時刻からエラー時動画像が自動的に切り出されるため、技術支援者62による動画像の確認作業が簡易化される。また、技術支援者62は、複数のスクリプトにおいて複数のエラーが生じているケースに対しても、エラー時動画像をスクリプト毎に取得できるので、エラー時の操作画面を容易に確認可能になる。また、ユーザ61によって時間範囲を指定させてエラー時動画像を抽出する時間指定方式よりも、エラー時動画像の抽出精度を向上させることができ、過不足なくエラー時動画像を取得できる。すなわち、取得されたエラー時動画像に、エラーとは無関係なスクリプトの実行時の動画像が含まれていたり、エラーに関係するスクリプトの実行時の動画像が途中までしか含まれていなかったりすることを防げる。
このように、端末装置100によれば、エラー発生時の動画像データを効率良く抽出することができる。また、技術支援者62によるエラー原因の調査を効率化できる。
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体53に記録できる。
例えば、プログラムを記録した記録媒体53を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体53に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
10 情報処理装置
11 記憶部
12 処理部
20 操作ログ
21,22,23,24,25 ログレコード
30 録画データ
31 動画像データ
40 端末

Claims (8)

  1. 端末上での操作ログにエラーログが含まれるか否かを判定し、
    前記エラーログが含まれると判定した場合に、記憶部に記憶した前記エラーログが含まれるスクリプトの開始タイミング及び停止タイミングを前記操作ログに基づいて特定し、
    特定した前記スクリプトの開始タイミング及び停止タイミングの時刻情報に基づいて、前記スクリプトの実行中に前記端末上に出力した動画像データを抽出する、
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  2. 抽出した動画像データとともに、前記記憶部に記憶された前記エラーログが含まれる前記スクリプトに対応するエラーを含まないスクリプト実行時の動画像データを抽出する処理をコンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
  3. 前記スクリプトに複数のエラーログが含まれる場合に、前記複数のエラーログの内、前記スクリプト内で前記停止タイミングに最も近いタイミングで発生した前記エラーログを特定し、
    特定した前記エラーログに対応付けられた時刻情報に基づいて動画像データを抽出する処理をコンピュータに実行させることを特徴とする請求項1または2に記載の情報処理プログラム。
  4. 前記スクリプトの実行に用いられるサービスが起動すると、前記端末上に表示される画面の録画を開始し、前記録画により取得された録画データから動画像データを抽出する処理をコンピュータに実行させることを特徴とする請求項1乃至3の何れか1項に記載の情報処理プログラム。
  5. 抽出した動画像データと前記スクリプトと前記操作ログとを情報処理装置に送信する処理をコンピュータに実行させることを特徴とする請求項1乃至4の何れか1項に記載の情報処理プログラム。
  6. 動画像データにおける特定の場面の開始時点を示すインデックス情報を、前記スクリプトに対して抽出した各動画像データに設定する処理をコンピュータに実行させることを特徴とする請求項2に記載の情報処理プログラム。
  7. コンピュータが、
    端末上での操作ログにエラーログが含まれるか否かを判定し、
    前記エラーログが含まれると判定した場合に、記憶部に記憶した前記エラーログが含まれるスクリプトの開始タイミング及び停止タイミングを前記操作ログに基づいて特定し、
    特定した前記スクリプトの開始タイミング及び停止タイミングの時刻情報に基づいて、前記スクリプトの実行中に前記端末上に出力した動画像データを抽出する、
    ことを特徴とする情報処理方法。
  8. 端末上での操作ログを記憶する記憶部と、
    前記操作ログにエラーログが含まれるか否かを判定し、前記エラーログが含まれると判定した場合に、前記記憶部に記憶した前記エラーログが含まれるスクリプトの開始タイミング及び停止タイミングを前記操作ログに基づいて特定し、特定した前記スクリプトの開始タイミング及び停止タイミングの時刻情報に基づいて、前記スクリプトの実行中に前記端末上に出力した動画像データを抽出する処理部と、
    を有することを特徴とする情報処理装置。
JP2019179229A 2019-09-30 2019-09-30 情報処理プログラム、情報処理方法及び情報処理装置 Active JP7299499B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019179229A JP7299499B2 (ja) 2019-09-30 2019-09-30 情報処理プログラム、情報処理方法及び情報処理装置
US17/027,387 US11294746B2 (en) 2019-09-30 2020-09-21 Extracting moving image data from an error log included in an operational log of a terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019179229A JP7299499B2 (ja) 2019-09-30 2019-09-30 情報処理プログラム、情報処理方法及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2021056763A JP2021056763A (ja) 2021-04-08
JP7299499B2 true JP7299499B2 (ja) 2023-06-28

Family

ID=75162090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019179229A Active JP7299499B2 (ja) 2019-09-30 2019-09-30 情報処理プログラム、情報処理方法及び情報処理装置

Country Status (2)

Country Link
US (1) US11294746B2 (ja)
JP (1) JP7299499B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11647015B2 (en) * 2020-07-30 2023-05-09 UiPath, Inc. Factor authentication for robotic processes
KR102418739B1 (ko) * 2022-03-29 2022-07-08 주식회사 시메이션 로보틱 자동화 방법 및 이를 수행하기 위한 컴퓨팅 장치
WO2023238262A1 (ja) * 2022-06-07 2023-12-14 日本電信電話株式会社 情報処理装置、試験方法、及び試験プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102373A1 (en) 2010-10-26 2012-04-26 Timothy Mark Waugh Method and apparatus for error video creation, playback and reporting
JP2017041045A (ja) 2015-08-19 2017-02-23 セイコーエプソン株式会社 監視ストレージ装置、監視情報ストレージ装置、監視ストレージシステム、監視ストレージ方法、および監視ストレージプログラム
JP2017117309A (ja) 2015-12-25 2017-06-29 ムーバクラウド株式会社 スマートフォンアプリケーションテスト自動化システム
CN109684054A (zh) 2018-11-07 2019-04-26 北京慧流科技有限公司 信息处理方法及装置、电子设备及存储器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070201373A1 (en) * 2006-02-03 2007-08-30 Williams Frank J Portable interactive apparatus and method for providing service information
JP2009113248A (ja) 2007-11-02 2009-05-28 Ricoh Co Ltd 制御装置、画像形成装置、制御方法及び制御プログラム
US9098632B2 (en) * 2010-12-03 2015-08-04 Dcs Consultancy Services Limited Computer program testing
JP5762145B2 (ja) 2011-06-02 2015-08-12 キヤノン株式会社 再生システム及びその処理方法及びプログラム
US8880943B2 (en) * 2011-06-22 2014-11-04 International Business Machines Corporation Restarting event and alert analysis after a shutdown in a distributed processing system
JP6107580B2 (ja) 2013-09-30 2017-04-05 沖電気工業株式会社 自動取引装置、サーバ及び監視システム
JP6371511B2 (ja) * 2013-10-22 2018-08-08 キヤノン株式会社 ネットワークシステムおよびデバイス管理方法
US20150213838A1 (en) * 2014-01-30 2015-07-30 Imperx, Inc. Network based video event recording system
US9665473B2 (en) * 2014-03-25 2017-05-30 Accenture Global Services Limited Smart tester application for testing other applications
US20150355825A1 (en) * 2014-06-05 2015-12-10 International Business Machines Corporation Recorded history feature in operating system windowing system
CN105893387B (zh) * 2015-01-04 2021-03-23 伊姆西Ip控股有限责任公司 智能多媒体处理方法和系统
US10839404B2 (en) * 2016-06-06 2020-11-17 Epiance Software Pvt. Ltd. Intelligent, interactive, and self-learning robotic process automation system
US10810074B2 (en) * 2018-12-19 2020-10-20 Microsoft Technology Licensing, Llc Unified error monitoring, alerting, and debugging of distributed systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102373A1 (en) 2010-10-26 2012-04-26 Timothy Mark Waugh Method and apparatus for error video creation, playback and reporting
JP2017041045A (ja) 2015-08-19 2017-02-23 セイコーエプソン株式会社 監視ストレージ装置、監視情報ストレージ装置、監視ストレージシステム、監視ストレージ方法、および監視ストレージプログラム
JP2017117309A (ja) 2015-12-25 2017-06-29 ムーバクラウド株式会社 スマートフォンアプリケーションテスト自動化システム
CN109684054A (zh) 2018-11-07 2019-04-26 北京慧流科技有限公司 信息处理方法及装置、电子设备及存储器

Also Published As

Publication number Publication date
JP2021056763A (ja) 2021-04-08
US20210096940A1 (en) 2021-04-01
US11294746B2 (en) 2022-04-05

Similar Documents

Publication Publication Date Title
JP7299499B2 (ja) 情報処理プログラム、情報処理方法及び情報処理装置
US7627821B2 (en) Recording/playback tools for UI-based applications
US7707007B2 (en) Autonomic client migration system for service engagements
US20210240602A1 (en) Unified test automation system
US20120131456A1 (en) Capture and Playback for GUI-Based Tasks
US9482683B2 (en) System and method for sequential testing across multiple devices
US20080141221A1 (en) Using recorder technology to find defects in software applications
JP4295775B2 (ja) Guiテスト支援システム及びテスト支援用アプリケーションプログラム
JP2006018827A (ja) スマート・ユーザ・インターフェース記録および再生フレームワーク
US20160274997A1 (en) End user monitoring to automate issue tracking
KR20140088551A (ko) 안전 체크 및 미리 보기에 의한 서버 업그레이드 기법
JP2004078505A (ja) データベース操作履歴管理装置、データベース操作履歴管理方法、およびデータベース操作履歴管理プログラム
US7934199B2 (en) Automated operation of IT resources with multiple choice configuration
JP2011108157A (ja) プラント監視用マンマシン装置
US10831634B1 (en) Replication of user interface events
JP6238221B2 (ja) ソフトウェアの実行を監視する装置、方法およびプログラム
US20140310318A1 (en) Generating Task Flows for an Application
US11106571B2 (en) Identification of input object in a graphical user interface
CN111475423A (zh) 数据录入方法、装置、电子设备及可读存储介质
KR101346835B1 (ko) 어플리케이션 오류 처리 방법 및 장치
CN110837467A (zh) 软件测试方法、装置以及系统
US20060026227A1 (en) Agent administration console software for servicing failed requests
JP2007140954A (ja) オペレータ擬似システムおよびオペレータ擬似方法
CN116010244A (zh) 自动化测试方法、装置、电子设备及存储介质
JP2005266919A (ja) システム解析装置及び解析システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230412

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: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230529

R150 Certificate of patent or registration of utility model

Ref document number: 7299499

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150