(57)【特許請求の範囲】
【請求項１】
アプリケーションを実行するアプリケーション実行装置と、前記アプリケーションの障害を解析する障害解析装置とを備えた障害解析システムであって、
前記アプリケーション実行装置は、
複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルを記憶する変換テーブル記憶部と、
前記アプリケーションの障害に関する障害関連情報を、前記変換テーブルに基づいて前記変換後情報を含む変換後の障害関連情報に変換する変換処理部と、
を備え、
前記障害解析装置は、
前記１つの変換後情報と前記複数の変換前情報とを関連付ける逆変換テーブルを記憶する逆変換テーブル記憶部と、
前記変換後の障害関連情報を、前記逆変換テーブルに基づいて前記複数の変換前情報の少なくとも一つを含む障害検証情報に逆変換する逆変換処理部と、
前記逆変換した障害検証情報に基づいて、前記アプリケーションの障害を検証する障害検証部と、
を備え、
前記変換テーブル及び前記逆変換テーブルにおける前記複数の変換前情報は、前記アプリケーションが使用する文字コードの範囲に対応している、障害解析システム。
【請求項２】
前記変換テーブル及び前記逆変換テーブルにおける前記変換後情報は、前記複数の変換前情報の文字の特徴を示す情報であり、
前記文字の特徴は、文字種による特徴付けと文字コード体系による特徴付けの少なくとも一方である、
請求項１に記載の障害解析システム。
【請求項３】
前記変換テーブル及び前記逆変換テーブルにおける前記変換後情報は、前記複数の変換前情報の文字コードに障害要素が含まれることを示す場合がある情報である、
請求項１に記載の障害解析システム。
【請求項４】
前記変換処理部は、前記アプリケーションが障害発生時に生成したログ情報と、前記アプリケーション実行装置のユーザに関するユーザ情報とを前記変換後の障害関連情報に変換する、
請求項１乃至３のいずれか一項に記載の障害解析システム。
【請求項５】
前記障害解析装置は、前記障害を検証した結果、障害ありと判断された障害情報の位置を示す障害位置情報を出力する障害特定部を備え、
前記アプリケーション実行装置は、前記障害位置情報と前記障害関連情報とに基づいて、障害の要因を検出する障害要因検出部を備える、
請求項１乃至４のいずれか一項に記載の障害解析システム。
【請求項６】
前記障害解析装置は、前記障害を検証した結果、障害ありと判断された障害情報の位置を示す障害位置情報と、前記障害情報とを出力する障害特定部を備え、
前記アプリケーション実行装置は、前記障害位置情報と前記障害情報と前記障害関連情報とに基づいて、障害の要因を検出する障害要因検出部を備える、
請求項１乃至４のいずれか一項に記載の障害解析システム。
【請求項７】
複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルを記憶する変換テーブル記憶部と、
アプリケーションを実行するアプリケーション実行部と、
前記アプリケーションの障害に関する障害関連情報を、前記変換テーブルに基づいて前記変換後情報を含む変換後の障害関連情報に変換する変換処理部と、
前記変換後の障害関連情報を、前記アプリケーションの障害を解析する障害解析装置へ提供する提供部と、
を備え、
前記変換テーブルにおける前記複数の変換前情報は、前記アプリケーションが使用する文字コードの範囲に対応している、アプリケーション実行装置。
【請求項８】
１つの変換後情報と複数の変換前情報とを関連付ける逆変換テーブルを記憶する逆変換テーブル記憶部と、
アプリケーションを実行するアプリケーション実行装置から、前記アプリケーションの障害に関する障害関連情報を変換した変換後の障害関連情報を取得する取得部と、
前記変換後の障害関連情報を、前記逆変換テーブルに基づいて前記複数の変換前情報の少なくとも一つを含む障害検証情報に逆変換する逆変換処理部と、
前記逆変換した障害検証情報に基づいて、前記アプリケーションの障害を検証する障害検証部と、
を備え、
前記逆変換テーブルにおける前記複数の変換前情報は、前記アプリケーションが使用する文字コードの範囲に対応している、障害解析装置。
【請求項９】
アプリケーションを実行するアプリケーション実行装置と、前記アプリケーションの障害を解析する障害解析装置とを備えた障害解析システムにおける障害解析方法であって、
前記アプリケーション実行装置は、
複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルを記憶し、
前記アプリケーションの障害に関する障害関連情報を、前記変換テーブルに基づいて前記変換後情報を含む変換後の障害関連情報に変換し、
前記障害解析装置は、
前記１つの変換後情報と前記複数の変換前情報とを関連付ける逆変換テーブルを記憶し、
前記変換後の障害関連情報を、前記逆変換テーブルに基づいて前記複数の変換前情報の少なくとも一つを含む障害検証情報に逆変換し、
前記逆変換した障害検証情報に基づいて、前記アプリケーションの障害を検証し、
前記変換テーブル及び前記逆変換テーブルにおける前記複数の変換前情報は、前記アプリケーションが使用する文字コードの範囲に対応している、
障害解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害解析システム、アプリケーション実行装置、障害解析装置及び障害解析方法に関し、特に、アプリケーションの障害を解析する障害解析システム、アプリケーション実行装置、障害解析装置及び障害解析方法に関する。
【背景技術】
【０００２】
種々の情報処理システムでは、運用保守業務などを行う製品部門（運用保守業者）がシステムのサービス提供や保守等を行い、ユーザ（お客様）が提供されたサービスを利用する。このようなシステムでは、ユーザ環境で障害が発生すると、製品部門はユーザから取得する情報をもとに障害要因を調査（解析）する。例えば、障害調査を目的として、ユーザから製品部門に、ログや設定ファイル、ファイルに出力したＤＢ（データベース）内のユーザデータ等を送付する。
【０００３】
一方、近年、セキュリティの確保や個人情報保護のため、第三者に提供する情報の一部をマスクする方法が広く利用されている。関連する技術として、例えば特許文献１が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−３４２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように、システムで障害が発生した場合、障害を解析するため、ユーザから製品部門などの障害解析者へ情報を提供する必要がある。しかし、ユーザから障害解析者へ全ての情報をそのまま提供すると、セキュリティを確保することができないため、提供する情報のうち個人情報や開示したくない情報をマスクする場合がある。そうすると、障害解析者の環境では、マスクされた情報の実際の値がわからないため、障害を再現させることができず障害の解析が困難であるという問題がある。
【０００６】
本発明は、このような課題に鑑み、セキュリティを確保しつつ、障害を解析することが可能な障害解析システム、アプリケーション実行装置、障害解析装置及び障害解析方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る障害解析システムは、アプリケーションを実行するアプリケーション実行装置と、前記アプリケーションの障害を解析する障害解析装置とを備えた障害解析システムであって、前記アプリケーション実行装置は、複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルを記憶する変換テーブル記憶部と、前記アプリケーションの障害に関する障害関連情報を、前記変換テーブルに基づいて前記変換後情報を含む変換後の障害関連情報に変換する変換処理部と、を備え、前記障害解析装置は、前記１つの変換後情報と前記複数の変換前情報とを関連付ける逆変換テーブルを記憶する逆変換テーブル記憶部と、前記変換後の障害関連情報を、前記逆変換テーブルに基づいて前記複数の変換前情報の少なくとも一つを含む障害検証情報に逆変換する逆変換処理部と、前記逆変換した障害検証情報に基づいて、前記アプリケーションの障害を検証する障害検証部と、を備えるものである。
【０００８】
本発明に係るアプリケーション実行装置は、複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルを記憶する変換テーブル記憶部と、アプリケーションを実行するアプリケーション実行部と、前記アプリケーションの障害に関する障害関連情報を、前記変換テーブルに基づいて前記変換後情報を含む変換後の障害関連情報に変換する変換処理部と、前記変換後の障害関連情報を、前記アプリケーションの障害を解析する障害解析装置へ提供する提供部と、を備えるものである。
【０００９】
本発明に係る障害解析装置は、１つの変換後情報と複数の変換前情報とを関連付ける逆変換テーブルを記憶する逆変換テーブル記憶部と、アプリケーションを実行するアプリケーション実行装置から、前記アプリケーションの障害に関する障害関連情報を変換した変換後の障害関連情報を取得する取得部と、前記変換後の障害関連情報を、前記逆変換テーブルに基づいて前記複数の変換前情報の少なくとも一つを含む障害検証情報に逆変換する逆変換処理部と、前記逆変換した障害検証情報に基づいて、前記アプリケーションの障害を検証する障害検証部と、を備えるものである。
【００１０】
本発明に係る障害解析方法は、アプリケーションを実行するアプリケーション実行装置と、前記アプリケーションの障害を解析する障害解析装置とを備えた障害解析システムにおける障害解析方法であって、前記アプリケーション実行装置は、複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルを記憶し、前記アプリケーションの障害に関する障害関連情報を、前記変換テーブルに基づいて前記変換後情報を含む変換後の障害関連情報に変換し、前記障害解析装置は、前記１つの変換後情報と前記複数の変換前情報とを関連付ける逆変換テーブルを記憶し、前記変換後の障害関連情報を、前記逆変換テーブルに基づいて前記複数の変換前情報の少なくとも一つを含む障害検証情報に逆変換し、前記逆変換した障害検証情報に基づいて、前記アプリケーションの障害を検証するものである。
【発明の効果】
【００１１】
本発明によれば、セキュリティを確保しつつ、障害を解析することが可能な障害解析システム、アプリケーション実行装置、障害解析装置及び障害解析方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る障害解析システムの概略構成を示す構成図である。
【図２】実施の形態１に係る障害調査システムの構成を示すブロック図である。
【図３】実施の形態１に係る障害調査システムの動作を示すフローチャートである。
【図４】実施の形態１に係るマッピング表の一例を示す図である。
【図５】実施の形態１に係るユーザデータの一例を示す図である。
【図６】実施の形態１に係るマスク済みユーザデータの一例を示す図である。
【図７】実施の形態２に係る障害調査システムの構成を示すブロック図である。
【図８】実施の形態２に係る障害調査システムの動作を示すフローチャートである。
【図９Ａ】実施の形態２に係るマッピング表の一例を示す図である。
【図９Ｂ】実施の形態２に係るマッピング表の一例を示す図である。
【図９Ｃ】実施の形態２に係るマッピング表の一例を示す図である。
【図１０】実施の形態２に係るマッピング表の一例を示す図である。
【図１１】実施の形態２に係るユーザデータの一例を示す図である。
【図１２】実施の形態２に係るマスク済みユーザデータの一例を示す図である。
【図１３】特殊な文字の一例を示す図である。
【発明を実施するための形態】
【００１３】
（発明に至る検討）
関連するデータのマスク手法として、暗号化、マスキング、トークン化の３つについて、以下のように検討を行った。
【００１４】
まず、データを暗号化する手法では、暗号鍵を持っている人（装置）が、暗号鍵により暗号化データを復号することで、元のデータが使用可能となる。この手法では、ユーザ側で個人情報や開示したくない情報を暗号化しても、暗号鍵により製品部門側ですべて復号可能である。このため、個人情報や開示したくない情報を渡さないという前提を満たさず、セキュリティを確保することができない。
【００１５】
また、データをマスキングする手法では、元のデータの全体、または、一部を“＊＊＊”などで置き換える。マスキングすると元のデータには復元できず、元のデータの長さや文字種（全角／半角、英字数字など）も認識できない。例えば、“Ａ００１”、“Ａ００２”の下３ケタをマスクすると、“Ａ＊＊＊”、“Ａ＊＊＊”になる。この手法では、元のデータが認識できないため、データに起因する障害を再現させることができず、障害の調査を行うことができない。
【００１６】
データに起因する障害の例としては、アプリケーションが対応していない範囲の文字が入力されて誤動作する例がある。例えば、半角数字を期待しているところに半角英字が入力された場合や、マルチバイトを考慮していない場合、図１３のような外字、機種依存文字、制御文字など特殊な文字が入力された場合に障害となる可能性がある。
【００１７】
その他にデータに起因する障害の例としては、アプリケーションの不具合により文字・文字列を適切に処理していない例がある。例えば、円記号を含む場合や、波ダッシュを含む場合、ＵＴＦ−８データにバイトオーダーマーク（ＢＯＭ）が付与されている／付与されていないことを期待していたが、期待とは逆に付与されていない／付与されていた場合、サロゲートペアの対処が不正の場合に障害となる可能性がある。
【００１８】
また、データをトークン化する手法では、元のデータの全体、または、一部をランダム値で置き換える。トークン化すると元のデータには復元できず（厳密にはトークン化を実施したシステムでは元データとトークンのマッピングテーブルを保持しているので復元可能である。つまり、ユーザ側では復元可、製品部門側では復元不可ということになる）、元のデータの長さや文字種（全角／半角、英字数字など）も認識できない。元のデータとトークンは１対１である（トークン前のデータが異なれば異なるトークンになる）。そもそも、通常、トークン化はクレジットカード番号など、データ形式が決まっているデータに適用されるが、個人情報の一つである氏名や住所では、マルチバイト文字が使用されており可変長であることから、トークン化の適用が難しい。例えば、“Ａ００１”、“Ａ００２”の下３ケタをトークン化すると、“ＡＷＸＹ”、“ＡＸＹＺ”になる。この手法では、マスキングと同様に、元のデータが認識できないため、データに起因する障害を再現させることができず、障害の調査を行うことができない。
【００１９】
上記のように、関連するマスク手法では、セキュリティを確保しつつ、障害を解析することはできない。
【００２０】
（発明の概要）
図１は、実施の形態に係る障害解析システムの概略構成を示している。図１に示すように、実施の形態に係る障害解析システムは、アプリケーションを実行するアプリケーション実行装置１と、アプリケーションの障害を解析する障害解析装置２とを備えている。
【００２１】
アプリケーション実行装置１は、変換テーブル記憶部３と、変換処理部４を備えている。変換テーブル記憶部３は、複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルを記憶する。変換処理部４は、アプリケーションの障害に関する障害関連情報を、変換テーブルに基づいて変換後情報を含む変換後の障害関連情報に変換する。
【００２２】
障害解析装置２は、逆変換テーブル記憶部５と、逆変換処理部６と、障害検証部７を備えている。逆変換テーブル記憶部５は、１つの変換後情報と複数の変換前情報とを関連付ける逆変換テーブルを記憶する。逆変換処理部６は、変換後の障害関連情報を、逆変換テーブルに基づいて複数の変換前情報の少なくとも一つを含む障害検証情報に逆変換する。障害検証部７は、逆変換した障害検証情報に基づいて、前記アプリケーションの障害を検証する。
【００２３】
このように、実施の形態では、ユーザ側であるアプリケーション実行装置で、複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルに基づいて障害関連情報を変換し、製品部門側である障害解析装置で、変換テーブルと同様の逆変換テーブルに基づいて障害関連情報を変換して障害を解析する。複数の変換前情報に１つの変換後情報が対応しているため、変換後情報から特定の変換前情報に復元することはできないため、セキュリティを確保することができる。また、複数の変換前情報を含む障害検証情報から障害を検証するため、障害を解析することが可能となる。
【００２４】
（実施の形態１）
以下、図面を参照して実施の形態１について説明する。実施の形態１では、文字コードの領域を単純に分割した変換表を用いてマスク処理を行う。マスク処理後のデータから問題が発生する可能性を持つ文字列を生成し、この文字列の範囲で総当たりにより問題が発生するデータを検出する。
【００２５】
図２は、本実施の形態に係る障害調査システムの構成を示すブロック図である。図２に示すように、本実施の形態に係る障害調査システムは、お客様（ユーザ）側のアプリケーションを実行するシステムであるお客様環境（アプリケーション実行装置）１０と、お客様環境１０で発生した障害を調査（解析）するシステムである製品部門環境（障害解析装置）２０とを備えている。
【００２６】
お客様環境１０及び製品部門環境２０は、１つまたは任意の数の情報処理装置（コンピュータ）で構成されている。お客様環境１０と製品部門環境２０は、例えば、ネットワークを介して情報を互いに送受信可能に接続されている。なお、ネットワークに限らず、記録媒体等を介して必要な情報を伝達してもよい。お客様環境１０及び製品部門環境２０は、それぞれ必要な情報を送信する送信部（提供部）や情報を受信する受信部（取得部）を含んでいる。
【００２７】
お客様環境１０は、データベース１００、アプリケーション１１０、マスク処理装置１２０、問題データ箇所通知装置１４０を有している。また、製品部門環境２０は、文字列生成・問題特定装置１３０、検証装置１３４を有している。
【００２８】
データベース１００は、お客様データを格納したデータベースである。お客様データは、ユーザ（お客様）の個人情報や、その他、製品部門や第三者に開示したくない情報が含まれる。個人情報は、ユーザ個人に関する情報であり、例えば、氏名、生年月日、性別、住所、電話番号、メールアドレス等である。データベース１００は、格納されたお客様データをユーザデータ１０１として提供する。ユーザデータ１０１は、障害調査のためデータベース１００のお客様データをエクスポートしたファイルである。なお、お客様データをユーザデータと称してもよい。
【００２９】
アプリケーション１１０は、お客様環境１０でアプリケーションプログラムを実行するシステム（実行処理部）である。アプリケーションと称する場合、アプリケーションプログラムや、アプリケーションプログラムを実行する実行処理部が含まれてもよい。本実施の形態に係る障害調査システムでは、このアプリケーション１１０で発生した障害を調査する。アプリケーション１１０は、アプリケーションプログラムの障害発生時等にログ１１１を出力する。ログ１１１は、障害発生時のアプリケーション１１０の状態等を含み、障害調査に使用される情報である。
【００３０】
マスク処理装置１２０は、マッピング表（マッピングテーブル）１２３を有している。例えば、マスク処理装置１２０（お客様環境１０）は、予めマッピング表１２３を記憶するマッピング表記憶部を有する。マスク処理装置１２０は、マッピング表１２３に基づいてユーザデータ１０１及びログ１１１に対しマスク処理を実行する。マスク処理装置１２０は、マスク処理により生成されたマスク済みユーザデータ１２１及びマスク済みログ１２２を出力する。マッピング表１２３は、複数の変換前情報と１つの変換後情報とを関連付ける変換テーブルであり、マスク処理装置１２０は、この変換テーブルを用いて、ユーザデータ１０１及びログ１１１（障害関連情報）を変換する変換処理部である。
【００３１】
本実施の形態に係るマッピング表１２３は、文字コードを所定の範囲ごとに、別のコードに変換するための変換表（変換テーブル）である。アプリケーション１１０が使用する文字コードの分だけ、マッピング表１２３が必要になる。例えば、アプリケーション１１０がＵＴＦ−８とＳｈｉｆｔ＿ＪＩＳの文字コードを使用する場合、ＵＴＦ−８用のマッピング表１２３とＳｈｉｆｔ＿ＪＩＳ用のマッピング表１２３が必要になる。マッピング表１２３は、文字コードをある文字数単位で分割し、分割した文字コードの範囲とその範囲を表す範囲コード(例えば８ｂｙｔｅの１６進数で表される)のマッピングを定義する。
【００３２】
文字列生成・問題特定装置（障害特定部）１３０は、お客様環境１０のマッピング表１２３と同じマッピング表１３３を有している。例えば、文字列生成・問題特定装置１３０（製品部門環境２０）は、予めマッピング表１３３を記憶するマッピング表記憶部を有する。文字列生成・問題特定装置１３０は、マッピング表１３３に基づいてマスク済みユーザデータ１２１及びマスク済みログ１２２の問題を解析する。文字列生成・問題特定装置１３０は、マッピング表１３３に基づいて問題可能性文字列１３５を生成し、検証装置１３４の検証結果から、問題が発生したデータの位置を示す問題データ箇所１３１と問題が発生したデータを含む問題データリスト１３２を生成する。マッピング表１３３は、マッピング表１３３に対応して１つの変換後情報と複数の変換前情報とを関連付ける逆変換テーブルであり、文字列生成・問題特定装置１３０は、この逆変換テーブルを用いて、マスク済みユーザデータ１２１及びマスク済みログ１２２（変換後の障害関連情報）を問題可能性文字列１３５（障害検証情報）に逆変換する逆変換処理部である。
【００３３】
文字列生成・問題特定装置１３０は、マスク済みユーザデータ１２１及びマスク済みログ１２２に含まれるマスク済みデータから生成可能な文字列のすべてを、問題可能性文字列１３５として生成する。問題可能性文字列１３５は、マスク済みデータをＮｂｙｔｅ、マスク処理時に定義した分割文字数をＭ文字とすると、Ｍの（Ｎ/８）乗の文字列となる。Ｎを８で割るのは、元データの１文字からマスク済み文字列８ｂｙｔｅが生成されるためである。
【００３４】
検証装置１３４は、文字列生成・問題特定装置１３０から入力される文字列について、問題が発生するかどうか自動的に検証（テスト）する。検証装置１３４は、一つの文字列を入力とし、その文字列が正常に動作するかを判定し、ＯＫ（問題なし）／ＮＧ（問題あり）を返す。問題可能性文字列の中のどの文字列で問題が発生するかは、システムごとに異なるため、システムごとに検証装置１３４を作る必要がある。例えば、検証装置１３４は、お客様環境１０のアプリケーション１１０と同じ環境で実現してもよいし、仮想的にアプリケーション１１０と同様の環境で実現してもよい。
【００３５】
問題データ箇所通知装置１４０は、問題データ箇所１３１、問題データリスト１３２、ユーザデータ１０１、ログ１１１に基づいて、問題があるデータを特定し、問題箇所１４１を生成する。
【００３６】
図３のフローチャートを用いて、本実施の形態に係る障害調査システムの動作について説明する。
【００３７】
まず、マスク処理装置１２０は、ユーザデータ１０１及びログ１１１をマスクする（Ｓ１０１）。マスク処理装置１２０は、ユーザデータ１０１及びログ１１１のそれぞれを１行ずつ処理し、事前に設定しているマスク対象属性の場合は値に対してマスク処理を行う。マスク処理装置１２０は、ユーザデータ１０１及びログ１１１の各データについて、データの前（先頭）から後へ順に１文字ずつ処理を行い、マッピング表１２３に照らし合わせ当該文字が所属する文字コードの範囲に対応する範囲コードに置き換える。通常、システムでは、属性ごとにどの文字コードを使用するかは決まっているため、属性ごとにシステムが要求する文字コードのマッピング表を使用する。
【００３８】
例えば、図４に示すような、ＵＴＦ−８のマッピング表１２３を使用する。ここでは、分割する（範囲に含まれる）文字数単位を１６としている（以降も１６として説明する）。また、ＵＴＦ−８の範囲外（ＵＴＦ−８にマッピングできない）の文字コードを、特別な範囲コードＦＦＦＦＦＦＦＦで表すように定義する。
【００３９】
文字コードがＵＴＦ−８であるユーザデータ１０１をマスクする場合、図４のマッピング表１２３を用いる。図５に示すようなユーザデータ１０１をマスクする例について説明する。このユーザデータ１０１は、文字コードがＵＴＦ−８であり、ユーザごとにユーザＩＤ（ＵｓｅｒＩＤ）及びアドレス（Ａｄｄｒｅｓｓ）の行を含んでいる。マスク処理装置１２０は、ユーザデータ１０１の各行の文字を順に、マッピング表１２３の範囲コードに変換しマスク処理を行う。
【００４０】
図４のマッピング表１２３に従い、文字“Ａ”をＵＴＦ−８の文字コードで表すと“４１”であるため、対応する範囲コードは“０００００００４”となる。文字“０”をＵＴＦ−８の文字コードで表すと“３０”であるため、対応する範囲コードは“０００００００３”となる。文字“１”をＵＴＦ−８の文字コードで表すと“３１”であるため、対応する範囲コードは“０００００００３”となる。同様に一文字ずつマスク処理（変換処理）を行うと、図６のようなマスク済みユーザデータ１２１となる。
【００４１】
続いて、マスク処理装置１２０は、生成したマスク済みユーザデータ１２１及びマスク済みログ１２２を製品部門環境２０の文字列生成・問題特定装置１３０に送信する（Ｓ１０２）。なお、マスク済みユーザデータ１２１及びマスク済みログ１２２は、マスク処理済みデータであるため、暗号化を行う必要はない。
【００４２】
続いて、文字列生成・問題特定装置１３０は、マスク済みユーザデータ１２１及びマスク済みログ１２２と検証装置１３４を用いて、マスク済みユーザデータ１２１及びマスク済みログ１２２の中のどのデータに問題があるか特定する（Ｓ１０３）。文字列生成・問題特定装置１３０は、マスク済みユーザデータ１２１及びマスク済みログ１２２からマスク済み文字列を取得し、すべてのマスク済み文字列に対して順番に処理を行う。文字列生成・問題特定装置１３０は、一つのマスク済み文字列とマッピング表１３３を使用して、問題可能性文字列１３５を生成する。
【００４３】
例えば、マスク済みデータが“０００００００４０００００００３０００００００３０００００００３”（３２ｂｙｔｅ）で、分割文字数が１６文字の場合、６５５３６（＝１６＾（３２／８））通りの文字列が生成される。このデータの文字コードをＵＴＦ−８とすると、１文字目“０００００００４”が文字コード４０〜４Ｆのいずれか、２文字目“０００００００３”が文字コード３０〜３Ｆのいずれか、３文字目“０００００００３”が文字コード３０〜３Ｆのいずれか、４文字目“０００００００３”が文字コード３０〜３Ｆのいずれかとなり、それぞれの組み合わせで文字列が生成される。
【００４４】
具体的な文字列は“＠０００”“＠００１”・・・“Ｏ？？＞”“Ｏ？？？”となる。本実施の形態を適用せずに、文字が存在する範囲を絞り込めない場合、文字コードが保持するすべての文字を組み合わせて文字列を生成することになるため、文字コードの文字数（ｕｎｉｃｏｄｅは１０万以上）の（Ｎ／８）乗の文字列となる。データが４文字としても、１０００００＾４以上の組み合わせがあり、その中から見つけるのは不可能である。
【００４５】
文字列生成・問題特定装置１３０は、問題可能性文字列１３５の中の一つの文字列を検証装置１３４に渡し、検証装置１３４がＮＧを返した場合、お客様環境１０で障害が発生する文字列であると判断し、当該文字列を問題データリスト１３２に出力する。また、文字列生成・問題特定装置１３０は、正常に動作しない文字列の元になったマスク済み文字列が存在したマスク済みユーザデータ１２１もしくはマスク済みログ１２２のファイル名と行番号を、問題データ箇所１３１に出力する。これをすべての問題可能性文字列１３５に対して実施する。
【００４６】
続いて、文字列生成・問題特定装置１３０は、生成した問題データ箇所１３１及び問題データリスト１３２をお客様環境１０の問題データ箇所通知装置１４０に送信する（Ｓ１０４）。問題データリスト１３２には、個人情報・開示しなくない情報が含まれるため、通信経路を暗号化する必要がある。
【００４７】
続いて、問題データ箇所通知装置１４０は、問題データ箇所１３１、問題データリスト１３２、ユーザデータ１０１、ログ１１１を用いて、実際に問題が発生しているデータを通知する（Ｓ１０５）。問題データ箇所通知装置１４０は、問題データ箇所１３１に記載されているファイル名・行番号からユーザデータ１０１およびログ１１１のどのデータで問題があるか特定し、当該データが問題データリスト１３２に含まれている場合、問題があるデータと判断し、問題箇所１４１に出力する。お客様（ユーザ）は、問題箇所１４１から問題があるデータを判断することができる。
【００４８】
ここで、問題データリスト１３２に含まれているか確認するのは、誤検知を防ぐためである。例えば、ユーザデータ１０１に“ＡＡ（問題なしとする)”、“ＡＢ（問題ありとする）”という２つのデータがあるとすると、マスク済み文字列は両方とも“０００００００４０００００００４”になる。文字列生成・問題特定装置１３０により問題があるデータが“ＡＢ”であるとわかるが、“ＡＡ”のマスク済み文字列から生成された問題可能性文字列１３５に“ＡＢ”が含まれるため、問題データ箇所１３１には“ＡＡ”、“ＡＢ”の両方の行が出力される。問題データ箇所通知装置１４０が行番号のみで判断してしまうと、問題がない“ＡＡ”も問題ありと判断されてしまうため、問題データリスト１３２に含まれているかのチェックも必要になる。
【００４９】
以上のように、本実施の形態では、障害調査を目的として、お客様環境から製品部門環境に、マスク処理を行わないログやユーザデータを送付する必要がない。本実施の形態では、お客様が個人情報や開示したくない情報を送付することなく、製品部門がマスクされたデータから障害を再現させ、問題データを特定することができ、お客様に提示することができる。
【００５０】
本実施の形態では、文字コードの範囲に対応してマスク処理を施したログやユーザデータを、お客様環境から製品部門環境に送付する。本実施の形態に係るマスク処理を施したマスク済みデータからは、実際にお客様環境で問題が発生したデータを含む複数のデータが生成される。
【００５１】
単純に「実際にお客様環境で問題が発生したデータを含む複数のデータを生成する」ということであれば、マスク済みデータがなくても、文字コードが保持する文字を組み合わせれば生成可能である。ただし、文字コードが保持する文字はｕｎｉｃｏｄｅの場合、１０万を超え、文字の組み合わせは１０万の文字数乗となり、その中から問題があるデータを見つけるのは不可能である。本実施の形態では、問題が発生したデータを含む複数のデータの数を絞り込むことで、実際に処理可能にしている。
【００５２】
上記のように、マスク済みデータから生成される複数のデータすべてをチェックし、問題があるかないかを判定する。問題があるデータのリストと問題があるデータがログやユーザデータのどの位置にあるかをお客様環境に送付し、これらの情報から実際に問題があったデータを特定し、お客様に提示する。これにより、セキュリティを確保しつつ、問題を解析することが可能となる。
【００５３】
提示したデータを製品部門に渡し、調査を行うケースもあるが、その場合でも製品部門に渡す個人情報・開示しなくない情報は最小限に抑えることができる。例えば、継続して製品部門環境による調査が必要だとしても、問題があるデータのみを渡すことで、個人情報・開示したくない情報の提供が最小限となる。
【００５４】
（実施の形態２）
以下、図面を参照して実施の形態２について説明する。なお、実施の形態１と同様の部分については適宜説明を省略する。実施の形態２では、過去の経験からわかっている障害を引き起こしうるデータ（過去の経験から得た知識ベースのデータ）や文字の特徴からマスク処理を行い、本情報から問題が発生するデータを見つける。
【００５５】
図７は、本実施の形態に係る障害調査システムの構成を示すブロック図である。図７に示すように、本実施の形態に係る障害調査システムは、実施の形態１と同様に、お客様環境１０、製品部門環境２０を備えている。また、お客様環境１０は、データベース１００、アプリケーション１１０、マスク処理装置１２０、問題データ箇所通知装置１４０を有し、製品部門環境２０は、文字列生成・問題特定装置１３０、検証装置１３４を有している。
【００５６】
本実施の形態に係るマッピング表１２３は、マスク処理を行うための、文字の特徴や過去の経験からわかっている障害を引き起こしうるデータ（障害要素を含む学習データ）が格納されている。
【００５７】
文字コードを、文字の特徴を示すコードに変換することで、アプリケーション１１０が対応していない範囲の文字が入力されて誤動作するという問題を検出することができる。例えば、半角数字を期待しているところに半角英字が入力された場合や、マルチバイトを考慮していない場合、図１３のような外字、機種依存文字、制御文字など特殊な文字が入力された場合の障害を検出することができる。
【００５８】
また、文字コードを、過去の経験から得ている知見に基づいたコード（障害が発生し得る障害要素のコード）に変換することで、アプリケーションの不具合により文字・文字列を適切に処理していない場合の問題を検出することができる。例えば、円記号を含む場合や、波ダッシュを含む場合、ＵＴＦ−８データにバイトオーダーマーク（ＢＯＭ）が付与されている／付与されていないことを期待していたが、期待とは逆に付与されていない／付与されていた場合、サロゲートペアの対処が不正の場合の障害を検出することができる。また、過去の経験の知見（学習データ）を増やしていくことで、問題検出の精度を高めることができる。
【００５９】
マスク処理装置１２０は、このマッピング表１２３に基づいてユーザデータ１０１及びログ１１１に対しマスク処理を実行する。文字列生成・問題特定装置１３０は、マッピング表１２３と同じマッピング表１３３に基づいて問題可能性文字列１３５を生成し、検証装置１３４の検証結果から、問題が発生したデータの位置を示す問題データ箇所１３１のみを生成する。問題データ箇所通知装置１４０は、問題データ箇所１３１、ユーザデータ１０１、ログ１１１に基づいて、問題があるデータを特定し、問題箇所１４１を生成する。
【００６０】
図８のフローチャートを用いて、本実施の形態に係る障害調査システムの動作について説明する。
【００６１】
まず、マスク処理装置１２０は、ユーザデータ１０１及びログ１１１をマスクする（Ｓ１１１）。マスク処理装置１２０は、ユーザデータ１０１及びログ１１１の各データについて、データの前から後へ順に１文字ずつ処理を行い、マッピング表１２３に照らし合わせ当該文字が保持する特徴及び知見に基づいたコードに置き換える。
【００６２】
例えば、図９Ａ〜図９Ｃ及び図１０に示すようなマッピング表１２３を使用する。図９Ａ〜図９Ｃは、文字の特徴のマッピング表１２３の例であり、図１０は、過去の経験から得た知見のマッピング表１２３の例である。図９Ｂは、図９Ａのマッピング表１２３内のＳｈｉｆｔ＿ＪＩＳ用詳細番号を示し、図ＣＢは、図９Ａのマッピング表１２３内のＵＴＦ−８用詳細番号を示している。図９Ａ〜図９Ｃの例では、半角数字や半角英字などの文字種による特徴付けと、Ｓｈｉｆｔ＿ＪＩＳ及びＵＴＦ−８の文字コード体系による特徴付けを示すコード（項番及び詳細番号）が定義されている。図１０の例では、円記号問題、波ダッシュ問題、バイトオーダーマークの有無、サロゲートペアの対処が不正を示すコード（項番）が定義されている。
【００６３】
図１１に示すようなユーザデータ１０１をマスクする例について説明する。このユーザデータ１０１は、文字コードがＳｈｉｆｔ＿ＪＩＳであり、ユーザＩＤ（ＵｓｅｒＩＤ）及び表示装置名（ｄｉｓｐｌａｙＮａｍｅ）の行を含んでいる。マスク処理装置１２０は、ユーザデータ１０１の各行の文字を順に、マッピング表１２３の項番及び詳細番号のコードに変換しマスク処理を行う。例えば、文字の特徴は１文字ずつ“［］”（角括弧）で囲んで表し、複数文字ある場合は“，”（カンマ）で区切る。また、置き換えは、マッピング表１２３の項番、詳細番号で置き換え、複数ある場合は“，”（カンマ）で区切る。
【００６４】
図９Ａ〜図９Ｃ及び図１０のマッピング表１２３に従い、文字“A”は、文字種が半角英字であるため、対応する項番及び詳細番号のコードは“００１：２”となり、また、文字“A”は、文字コード体系が３区であるため、対応する項番及び詳細番号のコードは“００２：１”となる。文字“表”は、文字種が全角文字であるため、対応する項番及び詳細番号のコードは“００１：５”となり、また、文字“表”は、文字コード体系が４１区であるため、対応する項番及び詳細番号のコードは“００２：４”となり、さらに、文字“表”は、２バイト目に５Ｃ（円記号）を持つため、対応する項番のコードは“１０１”となる。文字“丸付き数字の１”は、文字種が全角文字であるため、対応する項番及び詳細番号のコードは“００１：５”となり、また、文字“丸付き数字の１”は、文字コード体系が１３区であるため、対応する項番及び詳細番号のコードは“００２：３”となる。同様に一文字ずつマスク処理を行い、“［］”と“，”を用いると、図１２のようなマスク済みユーザデータ１２１となる。
【００６５】
続いて、マスク処理装置１２０は、生成したマスク済みユーザデータ１２１及びマスク済みログ１２２を製品部門環境２０の文字列生成・問題特定装置１３０に送信する（Ｓ１１２）。なお、マスク済みユーザデータ１２１及びマスク済みログ１２２は、マスク処理済みデータであるため、暗号化を行う必要はない。
【００６６】
続いて、文字列生成・問題特定装置１３０は、マスク済みユーザデータ１２１及びマスク済みログ１２２と検証装置１３４を用いて、マスク済みユーザデータ１２１及びマスク済みログ１２２の中のどのデータに問題があるか特定する（Ｓ１０３）。文字列生成・問題特定装置１３０は、マスク済みユーザデータ１２１及びマスク済みログ１２２からマスク済み文字列を取得し、すべてのマスク済み文字列に対して順番に処理を行う。文字列生成・問題特定装置１３０は、一つのマスク済み文字列とマッピング表１３３を使用して、問題可能性文字列１３５を生成する。
【００６７】
文字列生成・問題特定装置１３０は、マスク済みユーザデータ１２１及びマスク済みログ１２２に含まれるマスク済みデータから生成可能な文字列を一つ問題可能性文字列１３５として生成する。一つでよいのは、もし外字の入力で問題が発生するなら、任意の外字を一つ試せば判定可能なためである。文字列生成・問題特定装置１３０は、マスク済みデータの文字の特徴を満たす文字が複数ある場合は、ランダムで文字を取得する。例えば、“［００１：５，００２：４，１０１］，［００１：５，００２：４］,［００１：５，００２：４］，［００１：５，００２：３］”からは、マスク前とは異なる“圭原行５（丸付き数字の５）”“予面忙≒”といった文字列が生成される。
【００６８】
文字列生成・問題特定装置１３０は、問題可能性文字列１３５を検証装置１３４に渡し、検証装置１３４がＮＧを返した場合、お客様環境１０で障害が発生する文字列であると判断し、マスク済み文字列が存在したマスク済みユーザデータ１２１もしくはマスク済みログ１２２のファイル名と行番号を、問題データ箇所１３１に出力する。
【００６９】
続いて、文字列生成・問題特定装置１３０は、生成した問題データ箇所１３１をお客様環境１０の問題データ箇所通知装置１４０に送信する（Ｓ１１４）。問題データ箇所１３１は、ファイル名と行番号であるため、通信経路を暗号化する必要はない。
【００７０】
続いて、問題データ箇所通知装置１４０は、問題データ箇所１３１、ユーザデータ１０１、ログ１１１を用いて、実際に問題が発生しているデータを通知する（Ｓ１１５）。問題データ箇所通知装置１４０は、問題データ箇所１３１に記載されているファイル名・行番号からユーザデータ１０１およびログ１１１のどのデータで問題があるか特定し、問題箇所１４１に出力する。お客様は、問題箇所１４１から問題があるデータを判断することができる。
【００７１】
以上のように、本実施の形態では、実施の形態１と同様に、お客様が個人情報や開示したくない情報を送付する必要がなく、製品部門はマスクされたデータから障害を再現させ、問題データを特定することができる。
【００７２】
上記のように本実施の形態に係るマスク処理を施したログやユーザデータを、お客様環境から製品部門環境に送付する。本実施の形態に係るマスク処理では、データが持つ特徴や、障害を引き起こす可能性を持つデータを保持していることを示す情報によりマスク処理を行い、これらの特徴を持つデータを正しく処理できるかどうかを判定する。問題があるデータがログやユーザデータのどの位置にあるかをお客様環境に送付し、これらの情報から実際に問題があったデータを特定し、お客様に提示する。これにより、セキュリティを確保しつつ、問題を解析することが可能となる。
【００７３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００７４】
上述の実施形態における各構成は、ハードウェア又はソフトウェア、もしくはその両方によって構成され、１つのハードウェア又はソフトウェアから構成してもよいし、複数のハードウェア又はソフトウェアから構成してもよい。お客様環境及び製品部門環境の各機能（各処理）を、ＣＰＵやメモリ等を有するコンピュータにより実現してもよい。例えば、記憶装置に実施形態における障害解析方法を行うための障害解析プログラムを格納し、各機能を、記憶装置に格納された障害解析プログラムをＣＰＵで実行することにより実現してもよい。
【００７５】
これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００７６】
１      アプリケーション実行装置
２      障害解析装置
３      変換テーブル記憶部
４      変換処理部
５      逆変換テーブル記憶部
６      逆変換処理部
７      障害検証部
１０      客様環境
２０      製品部門環境
１００    データベース
１０１    ユーザデータ
１１０    アプリケーション
１１１    ログ
１２０    マスク処理装置
１２１    マスク済みユーザデータ
１２２    マスク済みログ
１２３    マッピング表
１３０    文字列生成・問題特定装置
１３１    問題データ箇所
１３２    問題データリスト
１３３    マッピング表
１３４    検証装置
１３５    問題可能性文字列
１４０    問題データ箇所通知装置
１４１    問題箇所
【図１】
0006476889.tif 000002
【図２】
0006476889.tif 000003
【図３】
0006476889.tif 000004
【図４】
0006476889.tif 000005
【図５】
0006476889.tif 000006
【図６】
0006476889.tif 000007
【図７】
0006476889.tif 000008
【図８】
0006476889.tif 000009
【図９Ａ】
0006476889.tif 000010
【図９Ｂ】
0006476889.tif 000011
【図９Ｃ】
0006476889.tif 000012
【図１０】
0006476889.tif 000013
【図１１】
0006476889.tif 000014
【図１２】
0006476889.tif 000015
【図１３】
0006476889.tif 000016