情報システムにおいて、システムの開発者とシステムの運用者は異なる人物であることが多いことを示す他の例(図31及び図32の銀行システム)を用いて、さらに説明する。図31及び図32は、銀行システムでの障害が起きた時の、運用者及び開発者の具体的な動作の一例を示す図(シーケンス図)である。本発明の実施形態において解決すべき課題を明らかにする。
図31は、システムで障害が起きた時のシーケンス図の一例である。システムは、例えば、運用者と開発者が異なる銀行システムである。図31に示すように、銀行システムでシステム障害が発生した場合、運用者(銀行側)は、銀行システムが出力する障害ログを開発者(開発会社側)に送付する(図31での(1))。そして、運用者は、開発者へ障害対応と障害原因特定を要求(依頼)する。
ここで、障害ログには、銀行システムが保有する個人情報を含んでいる可能性がある。そのため、障害ログをそのまま開発会社に送付する行為は、個人情報を流出させるリスクを伴う。従って、個人情報を開発会社に送付しないためには、運用者が障害ログを送付する前に個人情報を含む部分を削除することが望ましい。また、運用者が障害ログを送付する前に、個人情報部分を関連のない他の情報に置換したりすることが望ましい。
しかしながら、この対処方法では、障害ログの削除部分や置換部分に存在した個人情報が障害特定に必要であるとき、開発者は、例えばメールなどで運用者に個人情報を要求する(図31での(2))。運用者は、個人情報の要求に対して、該当する個人情報を提供(解答)する必要がある(図31での(3))。すなわち、この対処方法では、両者間での個人情報のやりとりによって障害の特定が遅れてしまうという課題がある。
図32は、システムで障害が起きた時のシーケンス図の一例である。システムは、例えば、運用者と開発者が異なる銀行システムである。図32に示すように、銀行システムでシステム障害が発生した場合、運用者が公開ログシステムに障害ログを送付する(図32での(1))。ここで、公開ログシステムとは、例えば、ログの個人情報の暗号化(例えば、部分暗号化)及び暗号化された個人情報の公開機能を備える。このログ公開システムは、例えば、障害ログを受信する機能、障害ログの個人情報を暗号化する機能、暗号化した障害ログを開発者に公開する機能、及び暗号化した個人情報の元の値を要求に応じて開発者に開示する機能、を有する。次に、ログ公開システムは、暗号化された個人情報を含む障害ログを開発者に公開する(図32での(2))。これにより、開発者は個人情報の取得が即時行えるようになるため、障害の特定を早急に行うことができる。
しかしながら、開発者が障害発生箇所の検討をつけられない場合、開発者はさらに開示された個人情報を要求する(図32での(3))。それにより、ログ公開システムは、要求に応じて開発者に個人情報を開示する(送付する)。即ち、ログ公開システムによって開発者に公開する個人情報が暗号化される障害ログでは、開発者は闇雲に暗号化された個人情報の元の値を取得することになる。そのため、結果として障害とは関係のない出力ログに存在する個人情報まで閲覧してしまうという課題がある。
以下、本発明の実施形態は、上記課題を解決する情報処理システム10を提供することを目的とする。
まず、本発明において、「手段」や「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「手段」や「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「手段」や「装置」、「システム」が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「手段」や「装置」、「システム」の機能が1つの物理的手段や装置により実現されても良い。
<実施形態1>
図1を用いて、本発明の第1の実施形態における情報処理システム10について説明する。なお、図1に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明に対するなんらの限定を意図するものではない。図1は、第1の実施形態における情報処理システム10の構成を示すブロック図である。
図1に示すように、情報処理システム10は、情報処理装置100と、運用者端末200と、開発者端末300と、を含む。情報処理装置100は、送受信部101と、処理装置102と、記憶部109とを含む。処理装置102は、個人情報抽出装置103と、ログ出力分析装置104と、ログマスキング装置105と、個人情報特徴取得装置106と、個人情報候補値群取得装置107と、個人情報実値取得装置108と、を含む。記憶部109は、ログ記録部110と、特徴公開権限設定記録部120と、個人情報記録部130と、特徴集合記録部140と、類似個人情報記録部150と、公開済み情報記録部160と、を含む。ここで、処理装置102は、例えば、データ保存装置として記憶部109を有してもよい。
送受信部101は、運用者(ログ送付者)の端末(以下、運用者端末200と記載する)からの障害ログの受け付け、および、開発者の端末(以下、開発者端末300と記載する)へ応答を行う。ここで、障害ログとは、システムに障害が発生した時に、当該障害に関連するログである。また、開発者端末300への応答とは、例えば、マスク済み障害ログやマスキングされた個人情報の特徴、候補値群、具体値の公開を行うことである。
個人情報抽出装置103は、処理装置として、例えば、MeCab(メカブ)等の形態素解析器やパターンマッチング機構を備え、障害ログから個人情報を抽出する。また、個人情報抽出装置103は、例えば、抽出した個人情報に対して、その個人情報がどのような特徴を持つかの判定と個人情報文字列に対してハッシュ関数を適用しビット列の生成を行う。個人情報抽出装置103は、例えば、形態素解析に必要な辞書データやパターンマッチングに必要なパターン情報を備えても良い。
ログ出力分析装置104は、障害ログの各行ごとに出力パターンを分析し、分類する。ログ出力分析装置104は、例えば、各パターンにおいて出力された個人情報をグループ化する。
ログマスキング装置105は、ログ記録部110から障害ログを取得し、個人情報記録部130に記憶された個人情報131の個人情報文字列に一致する箇所を、個人情報ビット列133のビット列に置換する。ログマスキング装置105は、例えば、全ての個人情報文字列をビット列に置換した後、障害ログをログ記録部110に記録する。
個人情報特徴取得装置106は、送受信部101よりビット列を受信し、そのビット列に対応する特徴を特徴集合記録部140から取得し、送受信部101に返却する。個人情報特徴取得装置106は、例えば、送受信部101から個人情報のビット列を受信し、そのビット列の特徴を返す。
個人情報候補値群取得装置107は、送受信部101から個人情報のビット列を受信し、そのビット列の候補値群を返す。個人情報実値取得装置108は、例えば、送受信部101から個人情報のビット列を受信し、そのビット列の実値(例えば、個人情報の文字列)を返す。
ログ記録部110は、送受信部101より障害ログを格納する。特徴公開権限設定記録部120は、ログの公開対象端末(例えば、開発者端末300)の設定および、ログに含まれる個人情報をどの端末にどの程度公開するかの設定値を格納する。特徴公開権限設定記録部120は、例えば、運用者端末200からの個人情報の公開設定情報を格納する。個人情報記録部130は、個人情報抽出装置103より、個人情報131、特徴132、及び個人情報ビット列133を格納する。特徴集合記録部140は、個人情報抽出装置103より、特徴141、及び特徴パターン142を格納する。特徴、おなじ特徴を持つ個人情報ビット列の総論理和を受信し、保存する装置である。
類似個人情報記録部150は、例えば、ログ出力分析装置104よりログパターン文字列、同じパターンのログ中に出現した個人情報のビット列の総論理和、同じパターンのログ中に出現した個人情報群を格納する。公開済み情報記録部160は、例えば、開発者端末300としてのユーザごとに個人情報の特徴、候補値群、実値の公開数を格納する。
運用者端末200は、情報処理装置100へ障害ログを出力する。運用者端末200は、例えば、運用する銀行システムに障害が発生した時、情報処理装置100へ障害ログを送信(出力)する。また、運用者端末200は、例えば、第1の端末である。
開発者端末300は、情報処理100からマスク済み障害ログを受信する。開発者端末300は、マスク済み障害ログが所定の条件を満たさない場合、情報処理装置100へ要求する。開発者端末300は、例えば、マスク済み障害ログを受信して、銀行システムの障害原因を分析するが、当該マスク済み障害ログでは分析をする上で必要な情報が確認できない場合がある。この場合において、開発者端末300は、情報処理装置100に対して、必要な情報を求める要求情報を出力する。また、開発者端末300は、例えば、第2の端末である。
また、情報処理システム10において、情報処理装置100と、運用者端末200及び開発者端末300は、例えば、ネットワーク(有線及び無線通信を含む)で接続される。
図2を用いて、本発明の第1の実施形態における情報処理システム10が含む情報処理装置100を実現するコンピュータ40について説明する。
図2は、本発明の第1の実施形態における情報処理システム10が含む情報処理装置100の代表的なハードウェア構成図である。図2に示すように、情報処理装置100は、例えば、CPU(Central Processing Unit)1、RAM(Ramdom Access Memory)2、記憶装置3を含む。情報処理装置100は、例えば、通信インターフェース4、入力装置5、出力装置6を含む。
情報処理装置100が含む処理装置102とは、プログラムをRAM2に読み出し、実行するCPU1によって実現される。ここで、CPU1及びRAM2は、個人情報抽出装置103、ログ出力分析装置104、ログマスキング装置105、個人情報特徴取得装置106、個人情報候補値群取得装置107、及び個人情報実値取得装置108を構成する。記憶装置3は、例えば、ハードディスクや、フラッシュメモリである。記憶装置3は、ログ記録部110、特徴公開権限設定記録部120、個人情報記録部130、特徴集合記録部140、類似個人情報記録部150、及び公開済み情報記録部160を含む。
情報処理装置100が含む送受信部101は、通信インターフェース4である。通信インターフェース4は、CPU1に接続され、ネットワーク或いは外部記憶媒体に接続される。外部データが通信インターフェース4を介してCPU1に取り込まれても良い。入力装置5は、例えばキーボードやマウス、タッチパネルである。出力装置6は、例えばディスプレイである。また、情報処理システム10が含む運用者端末200及び開発者端末300は、例えば、コンピュータ40と同様の構成及び機能を備えていてもよい。
次に、図3乃至図11を用いて、本発明の第1の実施形態における情報処理システム10の構成及び動作(処理の流れ)の詳細について説明する。
図3は、本発明の第1の実施形態における情報処理システム10の動作を示すフロー図である。なお、図3に示すフロー図及び以下の説明は処理例であり、適宜求める処理に応じて処理順等を入れ替えたり処理を戻したり繰り返したりすることを行っても良い。また、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更して、もしくは並列に実行することができ、また、各処理ステップ間に他のステップを追加しても良い。更に、便宜上1つのステップとして記載されているステップは複数のステップに分けて実行することもでき、便宜上複数に分けて記載されているステップを1ステップとして実行することもできる。この点、後述する第2実施形態以降についても同様である。
まず、情報処理装置100は、運用者端末200から受信した障害ログをログ記録部110に保存する(S101)。例えば、運用システム(例えば、銀行システム)に障害が発生した場合、運用者端末200は運用システムの障害ログを情報処理装置100に出力する。情報処理装置100は、運用者端末200から出力された障害ログを受信して、ログ記録部110に格納する。
ここで、ログ記録部110に格納される障害ログの一例について、図4を用いて説明する。図4は、第1の実施形態における障害ログを示す図である。図4に示すように、障害ログは、時間軸順に並んでおり、年月日と、時間と、ログの種類と、そのログに関する個人情報と、を含む。図4に示す障害ログは、例えば、“2013−11−01 09:30 login 田中”である。
次に、情報処理装置100は、運用者端末200から受信した個人情報の公開設定情報を受信し、特徴公開権限設定記録部120に格納する(S102)。運用者端末200は、例えば、運用者端末200が設定する障害ログの開示対象端末(例えば、開発者端末300)及び障害ログが含む個人情報の開示範囲を含む公開設定情報を出力する。情報処理装置100は、出力された公開設定情報を受信して、特徴公開権限設定記録部120に格納する。
次に、個人情報抽出装置103は、受信した障害ログから個人情報文字列を抽出する(S103)。運用者端末200が障害ログの送信を完了した場合、個人情報抽出装置103は、例えば、MeCab等の形態素解析器や正規表現等のパターンマッチングに基づき、ログ記録部110が格納する障害ログを分析する。分析した結果、個人情報抽出装置103は、個人情報の抽出と個人情報の特徴分類を行う。ここでいう特徴とは、例えば、個人情報文字列が表す概念のことを示す。
特徴分類の一例を、図4を用いて説明する。図4は、第1の実施形態におけるログ記録部110が格納する障害ログの具体例を示す図である。個人情報抽出装置103は、例えば、図4に示す“田中”という個人情報を“氏名(姓)”という特徴に分類し、“2Lジュース”を“商品”という特徴に分類する。
次に、個人情報抽出装置103は、抽出した個人情報文字列をハッシュ関数にかけてビット列を算出し、個人情報記録部130に格納する(S104)。個人情報抽出装置103は、例えば、抽出した個人情報文字列に1個のハッシュ関数を用いてビット列を算出する。
ここでは、例として図5を用いて説明する。図5は、第1の実施形態における個人情報記録部130が格納する特徴・個人情報の具体例を示す図である。図5に示すように、特徴・個人情報は個人情報文字列、特徴、及び個人情報ビット列を含む。例えば、特徴・個人情報文字列が“田中”である場合、個人情報抽出装置103は、ハッシュ関数を用いて文字列“田中”から、ビット列「00000000010000000」を算出する。この場合、個人情報ビット列は、「00000000010000000」である。個人情報抽出装置103は、個人情報文字列、特徴、ビット列を求めたら、個人情報文字列を個人情報131に、特徴を特徴132に、ビット列を個人情報ビット列133に、それぞれ格納する。
次に、個人情報抽出装置103は、個人情報記録部130の情報生成後、特徴別にBloom Filter(ブルーム フィルター)を生成し、特徴集合記録部140に格納する(S105)。ここで、Bloom Filterとは、空間効率の良い確率的データ構造である。また、Bloom Filterは、例えば、要素が集合のメンバー(構成)であるかどうかのテストに使用される。また、Bloom Filterは、偽陽性(False Positive)による誤検出の可能性を含むが、偽陰性(False Negative)はない。個人情報抽出装置103は、例えば、図4に示す特徴132の種類(属性)ごとに、全ての個人情報ビット列133のビット列の論理和を計算することでBloom Filterを生成できる。
ここでは、例として図6を用いて説明する。また、Bloom Filterの生成方法について、例えば、使用するハッシュ関数の数は、単数でも複数でもよい。
図6は、第1の実施形態におけるBloom Filterの生成方法の具体例を示す図である。図6に示すように、Bloom Filterの生成方法は、同じ特徴(例えば、氏名(姓))の個人情報ビット列同士を足し合わせる(総論理和を取る)ことである。即ち、個人情報抽出装置103は、図6に示す田中、上田、金澤、青木それぞれのビット列の論理和を計算すると、「00000100010011000」というビット列を得る。このビット列が、特徴“氏名(姓)”のBloom Filterである。そして、個人情報抽出装置103は、全ての特徴のBloom Filterを生成し、特徴集合記録部140に格納する。個人情報抽出装置103は、例えば、特徴を特徴141に、特徴パターン(Bloom Filter)を特徴パターン142に、それぞれ格納する。
ここで、特徴集合記録部140に格納される全ての特徴のBloom Filterの一例について、図7を用いて説明する。図7は、第1の実施形態における特徴とその特徴パターン(例えば、全ての特徴のBloom Filter)の具体例を示す図である。図7に示すように、特徴が“商品”の特徴パターン(Bloom Filter)は「00000010100000110」である。
次に、ログ出力分析装置104は、障害ログを行単位でパターン分けし、同じパターンに含まれる個人情報群とそのビット列の総論理和を類似個人情報記録部150に追加する(S106)。ログ出力分析装置104は、例えば、ログ記録部110の障害ログを行単位で分析し、同じ出力パターンで出力されたログの行をグループ化する。そして、ログ出力分析装置104は、同じグループで出力され、かつ同じ特徴を持つ個人情報についてビット列の総論理和を取り、類似個人情報として類似個人情報記録部150に格納する。ここで、類似個人情報は、ログパターンと、特徴と、候補パターンと、個人情報群と、を含む。ログ出力分析装置104は、例えば、ログパターンをログパターン151に、特徴を特徴152に、特徴パターンを候補パターン153に、個人情報群を個人情報群154に、それぞれ格納する。
ここで、類似個人情報記録部150に格納される類似個人情報の一例について、図8を用いて説明する。図8は、第1の実施形態における類似個人情報の具体例を示す図である。図8に示すように、類似個人情報は、例えば、パターン分けされたログパターンが“add to cart *”である場合、特徴は“氏名(姓)”で、候補パターンが「00000000010011000」で、個人情報群は“田中,青木,金澤”である。
次に、ログマスキング装置105は、障害ログの個人情報部分を個人情報ビット列133のビット列に置換し、ログ記録部110を更新する(S107)。ログマスキング装置105は、例えば、ログ出力分析装置104が類似個人情報記録部150への類似個人情報を登録後、ログ記録部110の障害ログに存在する個人情報文字列を、個人情報記録部130において対応するビット列に置換する。そして、ログマスキング装置105は、置換後の障害ログをログ記録部110に上書きする。また、ログマスキング装置105は、例えば、置換後の障害ログをログ記録部110が含む置換障害ログ111に格納してもよい。
ここで、ログ記録部110に格納される個人情報がビット列に置換された障害ログの一例について、図9を用いて説明する。図9は、第1の実施形態における個人情報がビット列に置換された障害ログ(以下、置換済み障害ログと記載する)の具体例を示す図である。図9に示すように、置換済み障害ログは、時間軸順に並んでおり、日時と、ログの種類と、そのログに関する、ビット列に置換された個人情報と、を含む。図9に示す置換済み障害ログは、例えば、“2013−11−01 09:30 login [00000000010000000]”である。即ち、ログマスキング装置105は、図4に示す障害ログがログ記録部110に存在する場合、図5の個人情報記録部130の特徴・個人情報に基づき、“田中”を「00000000010000000」に置換する。ログマスキング装置105は、“2Lジュース”を「00000000100000000」に、対応する個人情報ビット列に置換する。
次に、情報処理装置100は、開発者端末300から障害ログの公開要求(要求情報)を受信し、開発者端末300に置換済み障害ログ(マスク済み障害ログ)を送信する(S108)。例えば、ログマスキング装置105の処理完了後、開発者端末300は、情報処理装置100に対して置換済み障害ログの公開を要求する(要求情報を送信する)。要求を受けた情報処理装置100は、送受信部101にてログ記録部110から置換済み障害ログを取得し、開発者端末300へ置換済み障害ログ送信する。情報処理装置100が置換済み障害ログを公開する方法は、例えば、情報処理装置100がファイルダウンロードやHTMLドキュメントを生成し、開発者端末300のWebブラウザ画面上に置換済み障害ログを表示する。
次に、開発者端末300は、システム障害の特定に必要であれば情報処理装置100に対して、置換済み個人情報の特徴情報、実値を含む複数の候補値群、実値のうちいずれか1つの公開を要求する(S109)。この時、開発者端末300は、情報処理装置100に対して、公開して欲しい個人情報のビット列を送信する。
開発者端末300がビット列化された個人情報の特徴を要求する場合、個人情報特徴取得装置106は、特徴集合記録部140から特徴情報を取得する(S110)。情報処理装置100は、開発者端末300に対して、個人情報の特徴情報を公開する(S111)。
開発者端末300がビット列化された個人情報の候補値群を要求する場合、個人情報候補値群取得装置107は、類似個人情報記録150から個人情報の候補値群を取得する(S112)。情報処理装置100は、開発者端末300に対して、個人情報の候補値群を公開する(S113)。
開発者端末300がビット列化された個人情報の実値を要求する場合、個人情報実値取得装置108は、個人情報記録部130から個人情報の実値を取得する(S114)。情報処理装置100は、開発者端末300に対して、個人情報の実値を公開する(S115)。
ここで、ステップS110乃至ステップS115の詳細な動作について、説明する。
開発者端末300が、個人情報がマスキングされた障害ログとして図9のログを受け取った場合を考える。
図9のログは、大部分がビット列に置換されており、そのままではログから処理の概要を理解し難い。そこで、開発者端末300は、ビット列の特徴情報を要求する。開発者端末300が図9のログから「00000000010000000」の特徴情報を要求したとする。開発者端末300から、送受信部101に対してビット列「00000000010000000」が送信され、送受信部101は、このビット列を個人情報特徴取得装置106に転送する。個人情報特徴取得装置106は、受け取った個人情報のビット列が射影になるビット列を特徴集合記録部140の特徴パターン142から検索する。Bloom Filterの特性から、ここで見つかった特徴パターン142に対応する特徴141が個人情報のビット列を含む特徴集合となる。開発者端末300から送信されたビット列「00000000010000000」は、“氏名(姓)”の特徴パターン「00000100010011000」の射影に含まれる。そのため、ビット列「00000000010000000」は“氏名(姓)”を表した個人情報であると判定できる。取得した特徴情報は送受信部101から開発者端末300に送信され、開発者端末300は障害ログの「00000000010000000」部分が“氏名(姓)”であることを知ることができる。このようにして、全てのビット列の特徴情報を取得したログを図10に示す。
開発者端末300が図10のログからadd to cart行の「00000000010000000」の候補値群を要求したとする。開発者端末300から、送受信部101に対してビット列「00000000010000000」が送信され、送受信部101は、このビット列を個人情報候補値群取得装置107に転送する。個人情報候補値群取得装置107は、受け取ったビット列が射影になるビット列を候補パターン153から検索する。ビット列「00000000010000000」の検索では、図8に示す類似個人情報の一例より、1行目がヒットするため、ビット列「00000000010000000」の候補値群が“田中,青木,金澤”だと判定できる。候補値群は、送受信部101から開発者端末300に送信され、開発者端末300は、障害ログの「00000000001000」部分が“田中”,“青木”,“金澤”のいずれかであることを知ることができる。このようにして、add to cart行とerror : add to cart行のビット列の候補値群を取得したログを図11に示す。
図11では、add to cart処理に成功した場合と失敗した場合でも“氏名(姓)”の特徴に“田中”が存在するため、処理の失敗の原因は姓ではないと考えられる。同様に、“商品”の特徴について“2Lジュース”が処理に成功した場合と失敗した場合の両方に存在するため、処理の失敗の原因ではないと考えられる。従って、残った特徴である“数量”が障害の原因となっていると推測できる。
この障害解析の例では、開発者端末300はどの人物がこのシステムを利用しているかはわかるが、どの人物がどの商品を選んだかまではわからない。
ここから更に開発者端末300が個人情報を要求した場合の動作を説明する。
開発者端末300は図11のログから「00000000001000」の個人情報の実値を要求する。開発者端末300から、送受信部101に対してビット列「00000000001000」が送信され、送受信部101はこのビット列を個人情報実値取得装置108に転送する。個人情報実値取得装置108は送受信部101から受け取った個人情報のビット列「00000000001000」と完全一致するビット列を個人情報ビット列133から検索する。ビット列「00000000001000」の検索では、図5の特徴・個人情報の具体例より、“田中”行がヒットするため、ビット列「00000000001000」の表す個人情報の実値が“田中”であると分かる。取得した実値は送受信部101から開発者端末300に送信され、開発者端末300は障害ログの「00000000001000」部分が“田中”であることを知ることができる。
また、開発者端末300は、例えば、ステップS108で受信した置換済み障害ログのみでシステム障害を特定できた場合、処理を終了しても良い。
また、開発者端末300は、例えば、ステップS111又はステップS113で公開された各情報を取得した後で、かつ、システム障害の特定ができない場合、ステップS109にフローを戻しても良い。その場合、開発者端末300は、再度自身が求める(システム障害を特定するための)情報を要求する。
以上で、本発明の第1の実施形態における情報処理システム10の構成及び動作(処理の流れ)の説明を終了する。
本発明の第1の実施形態における情報処理システム10の情報処理装置100において、送受信部101は、運用者端末200からの障害ログの受け付け、および、開発者端末300へ応答を行う。個人情報抽出装置103は、障害ログから個人情報を抽出する。ログ出力分析装置104は、障害ログの各行ごとに出力パターンを分析し、分類する。ログマスキング装置105は、障害ログを取得し、個人情報131の個人情報文字列に一致する箇所を個人情報ビット列133のビット列に置換する。個人情報特徴取得装置106は、送受信部101よりビット列を受信し、そのビット列に対応する特徴を特徴集合記録部140から取得し、送受信部101に返却する。
個人情報候補値群取得装置107は、送受信部101から個人情報のビット列を受信し、そのビット列の候補値群を返す。個人情報実値取得装置108は、送受信部101から個人情報のビット列を受信し、そのビット列の実値を返す。ログ記録部110は、送受信部101より障害ログを格納する。特徴公開権限設定記録部120は、ログの公開対象端末の設定および、ログに含まれる個人情報をどの端末にどの程度公開するかの設定値を格納する。個人情報記録部130は、個人情報131、特徴132、及び個人情報ビット列133を格納する。特徴集合記録部140は、特徴141、及び特徴パターン142を格納する。類似個人情報記録部150は、ログパターン151、特徴152、候補パターン153、及び個人情報群154を格納する。
公開済み情報記録部160は、ユーザごとに個人情報の特徴、候補値群、実値の公開数を格納する。情報処理システム10における運用者端末200は、情報処理装置100へ障害ログを出力する。情報処理システム10における開発者端末300は、情報処理装置100から置換済み障害ログを受信する。開発者端末300は、システム障害の特定に必要であれば情報処理装置100に対して、置換済み個人情報の特徴情報、実値を含む複数の候補値群、実値のうちいずれか1つの公開を要求する。開発者端末300は、前述の要求に対応する情報を取得する。そのため、情報処理システム10は、個人情報の公開の範囲を抑えつつ、障害を回復させることができることができる。
また、情報処理システム10は、開発者端末300に対して障害ログに含まれる個人情報文字列をマスキングし、マスキングされた各文字列について特徴・候補値群・実値の問い合わせを可能にする。そのため、不用意な個人情報の公開を防ぐことができる。
また、ユーザ(開発者端末300)は、障害ログを個人情報が隠された状態で閲覧し、必要に応じて個人情報取得するため、障害と関連の無いログに含まれる個人情報を目にすることが無い。また、ユーザ(開発者端末300)は、特徴、候補値群、実値と順々に個人情報を閲覧するため、最低限の個人情報で障害の特定ができる。また、ユーザ(開発者端末300)は、障害と関係のないログ部分の個人情報を目にせずに障害解析ができる。
また、ユーザ(開発者端末300)は、特徴まで閲覧することで、ログの概要を理解することができ、障害と関連のあるログ出力か否かを判定できる。また、ユーザ(開発者端末300)は、候補値群まで閲覧することで、完全な個人情報の特定を避けつつ、ログが出力された個人情報の具体値傾向を知り、障害特定に役立てることができる。
また、情報処理システム10は、個人情報の特徴情報、候補値群をビット演算で取得できるため、特徴・候補値群の検索を高速に行うことができる。
<実施形態2>
本発明の第2の実施形態における情報処理システム10aについて、図12乃至図21を参照して説明する。なお、本発明の第2実施形態において、以下の説明では、第1の実施形態と同様の構成については同一の符号を付すと共に、説明を省略する。また、第1の実施形態と同様の作用効果についても、説明を省略している。
第2の実施形態では、第1の実施形態に特徴の階層化を追加したものである。即ち、図12に示すように、第2の実施形態における情報処理システム10aは、特徴集合記録部140に下位特徴143をさらに含む。下位特徴143とは、各特徴の下位概念となる特徴の一覧を格納する。ここで、図12は、第2の実施形態における情報処理システム10aの構成を示すブロック図である。
第1の実施形態と同じように、情報処理システム10aは、運用者端末200から送られた障害ログに基づき、個人情報抽出装置103が個人情報とその特徴を抽出し、個人情報記録部130に格納する。第2の実施形態(情報処理システム10a)が第1の実施形態と異なる点は、個人情報抽出装置103がBloom Filterの階層構造を形成する点である。
以下、図15を参照しながら、本実施形態における特徴の階層化について説明する。図15は、特徴の包含関係を階層構造化したBloom Filterの一例を示す図である。図15に示すように、本実施形態における特徴の階層化では、例えば、特徴“氏名”であれば、“姓”と“名”の特徴に分けることができる。つまり、“氏名”のBloom Filter「111001111100・・・」は、“姓”のBloom Filter「110001010000・・・」及び“名”のBloom Filter「010001000000・・・」の論理和で得られる。これは、氏名のBloom Filterが姓のBloom Filter及び名のBloom Filterの上位にあることを示す。
また、“姓”の特徴も国ごとに更に特徴を区分することができる。本実施形態における情報処理装置100aは、このように特徴を細かく細分化し、開発者端末300に対して特徴を公開する際には、上位の特徴から順番に特徴情報を公開するものである。
以下、図13及び図14を参照しながら、本実施形態における情報処理システム10aの処理の流れを説明する。図13及び図14は、本実施形態における情報処理システム10aの処理の流れを示すフロー図である。本実施形態における情報処理システム10aの処理の流れは、第1の実施形態とほぼ同様であるので、説明を省略する。ここでは、図13に示すように、階層構造Bloom Filterの生成フロー、及び図14に示す特徴情報取得フローについて説明する。
第2の実施形態における、階層構造のBloom Filterの生成処理過程のフローチャートを図13に示す。まず、個人情報抽出装置103は、各特長についてBloom Filterを生成する(S201)。次に、個人情報抽出装置103は、特徴の論理和を取り、上位概念のBloom Filterを生成する(S202)。次に、個人情報抽出装置103は、上位特徴と下位特徴をマッピングする(S204)。個人情報抽出装置103は、全ての特徴の包含関係について処理するまで、ステップS203及びステップS204の動作を繰り返し行う(S202)。個人情報抽出装置103は、全ての特徴の包含関係について繰り返し処理を終了した場合(S205)、特徴、Bloom Filter、特徴の階層関係を特徴集合記録部140に格納する(S206)。
次に、第2の実施形態における、階層構造のBloom Filterから特徴情報を取得する処理過程のフローチャートを図14に示す。まず、個人情報特徴取得装置106は、送受信部101から転送された、開発者端末300より個人情報の取得要求を受信する(S211)。次に、個人情報特徴取得装置106は、取得要求を受信した時に、開発者端末300から渡されたデータがビット列のみであった場合(S212)、木構造のルート直下のBloom Filterで判定する(S213)。そして、個人情報特徴取得装置106は、ヒットしたBloom Filterの特徴情報を開発者端末300に返す(S214)。また、個人情報特徴取得装置106は、取得要求を受信した時に、開発者端末300から渡されたデータがビット列及び特徴のみであった場合(S212)、渡された特徴を表すノード直下のBloom Filterで判定する(S215)。そして、個人情報特徴取得装置106は、ヒットしたBloom Filterの特徴情報を開発者端末300に返す(S214)。
以上で、情報処理システム10aの、階層構造Bloom Filterの生成処理過程、及び階層構造のBloom Filterから特徴情報を取得する処理過程についての説明を終了する。
第2の実施形態において、個人情報抽出装置103は、特徴の階層関係が定義されており、階層関係の定義情報に基づき、各特徴の下位に存在する特徴を特徴集合記録部140の下位特徴143に格納する。特徴の階層関係とは、ある特徴がより大きな概念の別の特徴に包含されることの定義情報である。例えば、特徴“姓”と”名”は特徴“氏名”に包含されるという情報が特徴の階層関係にあたる。
図16は、第2の実施形態における特徴、その特徴パターン、及び下位特徴の具体例を示す図である。図16に示すように、特徴集合記録部140は、特徴141、特徴パターン142、及び下位特徴143(例えば、特徴集合)を格納する。これは図15に示す階層構造のBloom Filterを表したものであり、上位概念は下位概念を包含するめ、上位概念のBloom Filterは下位概念のBloom Filterを射影に含む。“氏名”のBloom Filter「111001111100・・・」は、“姓”のBloom Filter「110001010000・・・」と“名”のBloom Filter「001000101100・・・」の両方を射影として包含する。
個人情報抽出終了後、第1の実施形態と同様にログ出力分析装置104とログマスキング装置105は、ログ出力分析とログのマスキング処理を行う。その後、開発者端末300にマスク済みのログを公開し、開発者端末300から特徴情報の要求を受ける。この時、情報処理装置100aは、開発者端末300に対して上位のものから順番に特徴を公開する。
例えば図15、図16において、開発者端末300から「100000000000・・・」のビット列の特徴情報が要求された場合がある。その場合、個人情報特徴取得装置106は、このビット列を階層構造の上位に位置する“氏名”のBloom Filterと“IPアドレス”のBloom Filterにかける。そして、このビット列は“氏名” のBloom Filterの写像にのみ含まれるため、個人情報特徴取得装置106は、送受信部101を介して“氏名”という特徴情報を開発者端末300に送信する。
ここで、より詳細な特徴を取得する場合、開発者端末300は「100000000000・・・」のビット列と先ほど受信した“氏名”という特徴情報を情報処理装置100aに送信する。個人情報特徴取得装置106は、特徴集合記録部140から“氏名”の下位特徴一覧に“姓”,“名”が存在することを取得し、“姓”と“名”のBloom Filterに対してビット列「100000000000・・・」を適用する。この場合、与えられたビット列は、“姓”のBloom Filterの写像に含まれる。そのため、個人情報特徴取得装置106は、送受信部101を介して“姓”という特徴情報を開発者端末300に送信する。
この特徴情報が要求された場合、このビット列を階層構造においてIPアドレスのBloom Filterの直下に位置するIPv6アドレスのBloom FilterとIPv4アドレスのBloom Filterにかける。これにより、このビット列の特徴は“IPv4アドレス”であることがわかるため、今度は“IPv4アドレス”という特徴情報を開発者端末300に送信する。
次に、図18乃至図21を用いて、開発者端末300がマスク済み障害ログから障害原因を特定する方法を説明する。図18は、第2の実施形態における置換済み(マスク済み)障害ログの一例を示す図である。図19は、第2の実施形態における特徴を含む障害ログの一例を示す図である。図20は、第2の実施形態における下位の特徴を含む障害ログの一例を示す図である。図21は、第2の実施形態における実値を含む障害ログ(置換なし)の一例を示す図である。
図18に示すログにおいて、9時40分(09:40)と10時10分(10:10)にエラーのログが発生している。図18に示すログの大部分は、ビット列に置換されているため、開発者端末300(例えば、開発者)は、当該ログの処理概要を理解しづらい。そこで、開発者端末300は、情報処理装置100aに開示要求をする。要求した結果、開発者端末300は、図19に示す各ビット列の特徴を含むログを取得する。図19に示すように、置換済み障害ログに対して個人情報の特徴情報が可視化されたため、開発者端末300は、ログが示すシステムの動作の流れが理解しやすくなる。
ここで、障害(error)の発生したcreate new user account処理のログ行に着目して、create new user account処理のログの(姓)と(名)の特徴情報を更に取得すると図20のログが得られる。図20のログによると、create new user account処理は氏名が日姓+日名か英名+英名の場合に成功し、氏名が英姓+日名の場合に失敗していることが分かる。従って、氏名の姓と名に洋人名と邦人名を組み合わせた場合に障害が発生していることが考えられる。
本例ではログが示す処理の概要を理解するために、個人情報の特徴を取得し、障害部分のみ追加で詳細な特徴情報を取得した。これにより、どの国籍の人のログインや買い物が多いかという情報を公開すること無く障害を特定できる。
以上より、第2の実施形態における情報処理システム10aは、第1の実施形態における情報処理システム10の情報処理装置100に加えて、下位特徴143を含む。下位特徴143は、階層関係の定義情報に基づき、各特徴の下位に存在する特徴を格納する。そのため、情報処理システム10aは、個人情報の公開の範囲を抑えつつ、障害を回復させることができることができる。
また、情報処理システム10aは、予め定義した特徴の意味の包含関係から、特徴のBloom Filterの階層関係を生成し、ビット列を射影に含むBloom Filterを階層関係の上位から検索する。これにより、個人情報の特徴を取得する際に、抽象的な特徴から具体的な特徴を少しずつ順番に返すことができ、かつ、開発者端末300に対する個人情報の公開量を抑えることができる。
また、情報処理システム10aは、階層関係をもつBloom Filterを用いて特徴を取得する場合、階層の上位から特徴を探索する。これにより、Bloom Filter群を線形に検索するよりも、ビット列に対するBloom Filter適用計算回数を少なく抑えることができる。
また、特徴を階層構造に並べたことで、特徴を線形検索するよりもBloom Filterを適用する回数を大幅に減らすことができる。
また、個人情報の特徴を上位概念から順番に公開するため、障害特定に至るまでの個人情報の公開量を抑えることができる。
また、Bloom Filterで階層構造を構成したことで、ビット列から特徴を検出するために行うBloom Filter適用回数を減らす事ができる。
また、特徴集合記録部140が有する特定の特徴集合に対して、多くの個人情報が集中する場合、個人情報抽出装置103は、例えば、偽陽性確率を下げる目的で特徴集合を分割してBloom Filterを定義してもよい。図16に示すように、特徴がIPアドレスである個人情報に比べ、特徴が氏名である個人情報が大量に存在する場合がある。この場合、氏名のBloom Filterは、IPアドレスのBloom Filterと比べ、多くのビットが1の状態をとる。これにより、氏名のBloom Filterが氏名ではない個人情報のビット列を氏名だと誤って判定してしまう可能性が高くなる。
そこで、個人情報抽出装置103は、特徴が氏名である個人情報の集合を幾つかに分割してBloom Filterを定義しても良い。氏名のBloom Filterを3つに分割して定義した、特徴集合記録部140の一例を図17に示す。図17に示すように、氏名のBloom Filterを氏名1、氏名2、氏名3に分けることで、図16に定義された氏名の特徴パターンと比較してそれぞれのビット列の1の数が少なくなっている。
<実施形態3>
本発明の第3の実施形態における情報処理システム10bについて、図22乃至図29を参照して説明する。なお、本発明の第3実施形態において、以下の説明では、第1及び第2の実施形態と同様の構成については同一の符号を付すと共に、説明を省略する。また、第1及び第2の実施形態と同様の作用効果についても、説明を省略している。
第3の実施形態では、第1の実施形態における情報処理装置100に個人情報集合記録部170を追加したものである。ここで、図22は、第3の実施形態における情報処理システム10bの構成を示すブロック図である。図22に示すように、第3の実施形態における情報処理装置100bの個人情報集合記録部170は、行Bloom Filter172、列Bloom Filter171、及び個人情報173を含む。
行Bloom Filter172は、個人情報の一覧を、二等辺三角形を作るようにマス目に並べ、行ごとに同じ行に並ぶ個人情報のBloom Filterを格納する。列Bloom Filter171は、列ごとに同じ列に並ぶ個人情報のBloom Filterを格納する。個人情報173は、各座標に対応する個人情報の一覧を格納する。
第3の実施形態における情報処理装置100bは、個人情報のビット列を空間上に配置し、軸方向ごとにBloom Filterで表す個人情報の集合を形成し、軸方向ごとに与えられたビット列を含むBloom Filterを求める。そして、情報処理装置100bは、Bloom Filterが表す個人情報の集合の交点を求めることで個人情報を検索する。
第3の実施形態(情報処理システム10b)は、第1の実施形態(情報処理システム10)と同じように、運用者から送られた障害ログに基づき、個人情報抽出装置103で個人情報とその特徴を抽出し、個人情報記録部130に記録する。第3の実施形態が第1の実施形態と異なる点(動作)は、個人情報抽出装置103が、個人情報を個人情報記録部130に格納した後、個人情報集合記録部170にBloom Filterと個人情報の一覧を格納する。
そこで、図23及び図24を用いて、個人情報集合記録部170へのBloom Filterの記録処理と個人情報の取得処理の動作を説明する。図23及び図24は、本実施形態における情報処理システム100bの処理の流れを示すフロー図である。本実施形態における情報処理システム10bの処理の流れは、第1の実施形態とほぼ同様であるので、説明を省略する。ここでは、図23に示すように、個人情報取得用Bloom Filterの生成フロー及び個人情報集合記録部170へ格納処理について説明する。また、図24に示すように、個人情報の取得フローについて説明する。
図23に示すように、まず、個人情報抽出装置103は、全ての個人情報を出現頻度の高い順に並び替えて、個人情報173に格納する(S301)。次に、個人情報抽出装置103は、個人情報を平面(2次元空間)上に直角2等辺三角形を形成するように配置する(S302)。次に、個人情報抽出装置103は、個人情報のビット列を生成する(S303)。次に、平面上の行方向の全列について、平面上の列に並ぶビット列の論理和の作成を繰り返す(S304及びS305)。繰り返し処理が完了した場合(S306)、個人情報抽出装置103は、列のビット列の論理和一覧を列Bloom Filter171に格納する(S307)。次に、平面上の行方向の全行について、平面上の行に並ぶビット列の論理和の作成を繰り返す(S309及びS310)。繰り返し処理が完了した場合(S310)、行のビット列の論理和の一覧を、行Bloom Filter172へ格納する(S311)。以上で、個人情報取得用Bloom Filterの生成フロー及び個人情報集合記録部170への格納処理を終了する。
次に、第3の実施形態における、個人情報を取得する処理過程のフローチャートを図24に示す。まず、情報処理装置100b(送受信部101)は、開発者端末300より送信される個人情報の取得要求を受信する(S321)。次に、個人情報実値取得装置108は、列Bloom Filter171よりビット列にマッチするBloom Filterを検索する(S322)。ここで、mはマッチしたBloom Filterのインデックスを示す。また、mについては後述する。次に、個人情報実値取得装置108は、行Bloom Filter172よりビット列にマッチするBloom Filterを検索する(S323)。ここで、nは、マッチしたBloom Filterのインデックスを示す。また、nについては後述する。次に、個人情報実値取得装置108は、個人情報173の(m^2+2mn+n^2−m−3n+2)/2番目の個人情報を取得し、開発者端末300に返す(S324)。
ここで、図25乃至図27を用いて、第3の実施形態における処理の動作の詳細を説明する。
障害ログの個人情報は、例えば「田中」、「青木」、「清水」、「Kanazawa」、「Ueda」、「67.11.9.7」、「172.16.1.2」、「東京都 墨田区 押上 1丁目」、「1945年8月15日生」、「72.16.1.83」である。個人情報抽出装置103は、個人情報を障害ログにおいて出現頻度が高い順に並び替え、マス目に二等辺三角形を作るように配置する。図25に示すように、個人情報抽出装置103は、4×4のマス目の左上から、数字順に個人情報を配置する。例えば、図25に示す4×4のマス目の、1行目は1.「田中」、2.「172.16.1.2」、4.「Kanazawa」、7.「67.11.9.7」、と個人情報が格納される。ここでの“1.”、“2.”は、個人情報抽出装置103が4×4のマス目に格納する順番を示す。
続いて、個人情報抽出装置103は、マス目に並べた個人情報をビット列に置き換え、マス目の行方向と列方向について1行、1列ずつBloom Filterを生成する。個人情報抽出装置103は、生成したBloom Filterを行Bloom Filter172と列Bloom Filter171に格納し、出現頻度順に並び替えた個人情報を個人情報173に格納する。図25のように配置した個人情報をビット列に置き換えて、行と列、それぞれの方向についてBloom Filterを作成すると図26のようになる。
また、取得したBloom Filterと個人情報を個人情報集合記録部170に格納した様子は図27のようになる。
個人情報集合記録部170への情報記録を終えたら、第1の実施形態と同じように、ログのマスキング、マスク済みログの公開、個人情報の特徴情報の公開、個人情報の候補値群の公開を行う。 その後、開発者端末300から個人情報の実値が要求された際には、個人情報実値取得装置108が開発者端末300から受け取ったビット列に対応する個人情報を、個人情報集合記録部170から検索する。
検索は列Bloom Filter171と行Bloom Filter172の両方に対して先頭から順番に、開発者端末300から受け取ったビット列を含むBloom Filterを走査して行う。受け取ったビット列を含むBloom Filterが列Bloom Filter171のm番目、行Bloom Filter172のn番目に存在したとする。その場合、ビット列に対応する個人情報は個人情報173の(m^2+2mn+n^2−m−3n+2)/2番目のインデックスに存在することになる。
例えば、図26の例において、「0000100000000」のビット列から個人情報を求める場合を考える。ビット列「0000100000000」は列Bloom Filter171の2番目、行Bloom Filter172の3番目のBloom Filterにそれぞれ含まれる。そのため、m=2,n=3を(m^2+2mn+n^2−m−3n+2)/2に代入して、個人情報173の9番目のインデックスにある「清水」が求める個人情報となる。以上で、第3の実施形態における、個人情報を取得する処理過程の説明を終了する。
以上より、第3の実施形態における情報処理システム10bは、第1の実施形態における情報処理システム10の情報処理装置100に加えて、個人情報集合記録部170を含む。個人情報集合記録部170は、行Bloom Filter172、列Bloom Filter171、及び個人情報173を含む。そのため、情報処理システム10bは、個人情報の公開の範囲を抑えつつ、障害を回復させることができることができる。
また、情報処理システム10bは、ビット列に対応する個人情報を取得する際に要する計算量が情報処理システム10と比べて少ない。例えば、10000種類の個人情報が存在する場合、情報処理システム10ではビット列とのパターンマッチ処理を1〜10000回行う必要がある。しかし、情報処理システム10bでは、Bloom Filterへの適用を2〜142回行えば良い。
また、情報処理システム10bでは、個人情報を出現頻度の順番に並び替えるため、出現頻度の高い個人情報ほど、少ない計算回数で個人情報を取得できる。
また、情報処理システム10bは、情報処理システム10と比べて、記憶領域の使用量が少ない。それは、個人情報の実値を取得する際に、個人情報記録部130を必要としないからである。
また、情報処理システム10bにおいて、個人情報記録部130はログのマスキング処理終了後は使用されないため、個人情報記録部130の情報を削除してもよい。
また、本実施形態において、個人情報抽出装置103は、個人情報を2次元平面上に並べたが、例えば、3次元以上の空間(例えば、n次元空間)に個人情報を並べても良い。また、位置と特徴が対応づくように個人情報を並べ、特徴情報の格納を個人情報集合記録部170で行っても良い。
具体的には、図28に示すように、マス目に個人情報を並べる際にその順番を種類順にする。図28に示すように、1乃至5番目に氏名、6乃至8番目にIPアドレス、9番目に住所、10番目に生年月日、という順番で個人情報が並んでいる。また、個人情報集合記録部170には、図29に示すように個人情報173の並びと特徴を対応付けた情報を記録する、特徴対応174を追加する。これにより、個人情報173のインデックスから特徴を取得することができる。
また、情報処理システム10bは、例えば、個人情報をn次元空間に配置し、各軸についてBloom Filterを作成し、各軸でビット列化された情報を含むBloom Filterを探し、その交点を求める。これにより、ビット列化された情報から元の情報を求めることができる。
また、前述の、個人情報をn次元空間に配置してBloom Filterを作成する装置は、例えば、出現頻度の高いビット列を軸の原点の近くに配置してBloom Filterを作成する。これにより、Bloom Filterの適用回数を減らすことができる。
また、前述の、個人情報をn次元空間に配置してBloom Filterを作成する装置は、例えば、個人情報が大量に存在する場合には対応する個人情報を特定できるまでの最悪の場合の計算回数が線形検索を行った場合に比べ、非常に少ない。これにより、各個人情報の出現頻度に大きな差が無く、個人情報の出現頻度順の並び替えの効果が低い場合でも、高速に検索することができる。
また、前述の、個人情報をn次元空間に配置してBloom Filterを作成する装置は、例えば、座標に個人情報文字列だけではなく、特徴情報、候補値群情報も関連付ける構成を取る。これにより、個人情報の特徴情報、候補値群、実値の取得を全て同じ処理で行える。
<実施形態4>
本発明を実施するための第4の形態における情報処理装置1000の構成について、図面を参照して説明する。図30は、本発明の第4の実施形態における情報処理装置1000の構成を示すブロック図である。
本発明の第4の実施形態における情報処理装置1000は、複数の個人情報の各々をビット列に対応させ、複数の個人情報のうち、特徴が同じ個人情報に対応するビット列を足し合わせた特徴パターンを生成する個人情報抽出部1030を含む。情報処理装置1000は、障害ログの少なくとも一部をビット列に置き換えた置換済み障害ログを生成するログマスキング部1050を含む。情報処理装置1000は、置換済み障害ログのうち、ビット列に対応する情報を要求された場合に、特徴パターンに対応するビット列が射影されている特徴を出力する取得部1060を含む。
上記構成を有する情報処理装置1000は、複数の個人情報の各々をビット列に対応させ、複数の個人情報のうち、特徴が同じ個人情報に対応するビット列を足し合わせた特徴パターンを生成する。情報処理装置1000は、障害ログの少なくとも一部をビット列に置き換えた置換済み障害ログを生成する。情報処理装置1000は、置換済み障害ログのうち、ビット列に対応する情報を要求された場合に、特徴パターンに対応するビット列が射影されている特徴を出力する。したがって、情報処理装置1000は、個人情報の公開の範囲を抑えつつ、障害を回復させることができる。
なお、第4の実施形態における個人情報抽出部1030と、ログマスキング部1050とは、それぞれ、上記の実施形態における個人情報抽出装置103と、ログマスキング装置105と、に対応する。第4の実施形態における取得部1060は、上記の実施形態における個人情報特徴取得装置106、個人情報候補値群取得装置107、及び個人情報実値取得装置108に対応する。
以上、実施形態を用いて本願発明を説明したが、本願発明は、上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。