(57)【要約】【課題】  情報システムの保守業務において、情報システムの障害の原因分析の際に、原因箇所へのリードタイム短縮を図る。【解決手段】  解析対象システム内のクライアント・システムの操作の履歴から履歴情報追跡キーを抽出し、履歴情報追跡キーを元に、クライアント・システムの操作の履歴から特定のクライアント・システムの操作の情報を抽出し、履歴情報追跡キーを元に、Ｗｅｂコンテナの履歴から、プログラム実行環境上でオブジェクトの呼び出しの起点となるオブジェクトを特定する情報を抽出し、Ｗｅｂコンテナの履歴から抽出した情報を元に、プログラム実行環境の履歴から、特定のオブジェクトを起点として呼び出しに関係した全オブジェクトの情報を抽出する。【選択図】  図１
2011192230.tif 000002
【特許請求の範囲】
【請求項１】
対象となるＷｅｂシステムの履歴情報を可視化することにより保守業務を支援する保守業務支援システムであって、
解析対象システム内のクライアント・システムの操作の履歴から履歴情報追跡キーを抽出し、該履歴情報追跡キーを元に、クライアント・システムの操作の履歴から特定のクライアント・システムの操作の情報を抽出する履歴情報追跡キー抽出部と、
該履歴情報追跡キーを元に、Ｗｅｂコンテナの履歴から、プログラム実行環境上でオブジェクトの呼び出しの起点となるオブジェクトを特定する情報を抽出し、前記Ｗｅｂコンテナの履歴から抽出した情報を元に、プログラム実行環境の履歴から、特定のオブジェクトを起点として呼び出しに関係した全オブジェクトの情報を抽出する履歴情報関連表示データ取得部と、
を具備することを特徴とする保守業務支援システム。
【請求項２】
請求項１に記載の保守業務支援システムにおいて、
前記履歴情報追跡キーを元に、クライアント・システムの操作の履歴から抽出したクライアント・システムの操作の情報と、プログラム実行環境の履歴から抽出した、特定のオブジェクトを起点とした呼び出しに関係する全オブジェクトの情報を表示する履歴情報関連表示部と、
を具備することを特徴とする保守業務支援システム。
【請求項３】
請求項１に記載の保守業務支援システムにおいて、
履歴情報関連表示データ取得部が、
前記特定のオブジェクトを起点とした呼び出しに関係する全オブジェクトの情報を元に、オブジェクト指向言語用データベース接続ＡＰＩ群の履歴から、データベースのアクセスの情報を抽出することを特徴とする保守業務支援システム。
【請求項４】
請求項３に記載の保守業務支援システムにおいて、、
前記履歴情報追跡キーを元に、クライアント・システムの操作の履歴から抽出したクライアント・システムの操作の情報と、前記プログラム実行環境の履歴から抽出した、特定のオブジェクトを起点とした呼び出しに関係する全オブジェクトの情報と、前記オブジェクト指向言語用データベース接続ＡＰＩ群の履歴から抽出したデータベースのアクセスの情報を表示する履歴情報関連表示部と、
を具備することを特徴とする保守業務支援システム。
【請求項５】
請求項２に記載の保守業務支援システムにおいて、
履歴情報関連表示部が、  外部ライブラリ情報を参照して、前記プログラム実行環境の履歴から抽出した、特定のオブジェクトを起点とした呼び出しに関係する全オブジェクトの情報を制限することを特徴とする保守業務支援システム。
【請求項６】
請求項４に記載の保守業務支援システムにおいて、
履歴情報関連表示部が、
前記外部ライブラリ情報を参照して、前記プログラム実行環境の履歴から抽出した、特定のオブジェクトを起点とした呼び出しに関係する全オブジェクトの情報を制限することを特徴とする保守業務支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、保守業務支援システムに関し、特に、情報システムの保守業務において保守作業担当者を支援する技術に関するものである。
【背景技術】
【０００２】
情報システムの保守作業担当者は、障害時には素早い原因究明／対処、現状の情報システムに対する深い理解が要求される。しかし、陳腐化したドキュメント、開発時の設計方針を無視した修正のため、ソースコード解読の複雑さを助長し、担当者は納期に追われながらシステムの充分な理解が困難となっている。
【０００３】
クラス/メソッドの呼び出し関係等の仕様情報を生成する技術が考えられており、保守担当者の作業を支援している。例えば、特許文献１は、解析するべきソフトウェアのソースコードの解析情報を階層化し順にデータベース等の記憶媒体に格納する方法を開示し、解析を行うコンピュータシステム内のメモリ容量が十分でないなどの場合に何らかの対策を講じた上で再度解析を行なわなければならないなどの、ソフトウェア解析に伴う保守担当者の煩雑な作業の削減を支援している。また、特許文献２は、内部的にソフトウェアを実行することで実行順序情報を取得し、シーケンス図などの動的設計情報を生成することを特徴とし、保守担当者にソフトウェアの振舞いを理解するための情報を提供する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３９９７４９５号
【特許文献２】特開２００８−３１０６７９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Ｗｅｂページなどのユーザインターフェースと内部実行情報（クラス間の呼び出し関係など）が分離しているなどの特徴を持つＷｅｂアプリケーションにおいて、特定のユーザ操作内容とその内部実行情報を連結して可視化する方法がない。また、従来技術として、ソフトウェアの実行情報を元にその振舞いの可視化などは行われているが、複数のユーザが同時に同じ一つのプログラムを利用するなどの特徴を持つＷｅｂアプリケーションにおいて、複数ユーザの内部実行情報が交ざりあった内部実行情報からそれぞれのユーザの内部実行情報に分離する方法がない。
【課題を解決するための手段】
【０００６】
本発明は、上記課題を解決するため、解析対象システム内のクライアントＰＣの操作の履歴から履歴情報追跡キーを抽出し、その履歴情報追跡キーを元に、クライアントＰＣの操作の履歴から特定のクライアント・システムの操作の情報を抽出する履歴情報追跡キー抽出部と、その履歴情報追跡キーを元に、Ｗｅｂコンテナの履歴から、プログラム実行環境上でオブジェクトの呼び出しの起点となるオブジェクトを特定する情報を抽出し、Ｗｅｂコンテナの履歴から抽出した情報を元に、プログラム実行環境の履歴から、特定のオブジェクトを起点として呼び出しに関係した全オブジェクトの情報を抽出する履歴情報関連表示データ取得部を持つ。
【発明の効果】
【０００７】
本発明の一実施態様によれば、情報システムの保守業務において、情報システムの障害の原因分析の際に、原因箇所へのリードタイム短縮が期待できる。
【図面の簡単な説明】
【０００８】
【図１】保守業務支援環境のソフトウェア構成を示す図。
【図２】ハードウェア構成を示す図。
【図３】履歴情報関連表示のフローを示す図。
【図４】クライアント操作履歴ＤＢ（１１１）に格納される、クライアント操作履歴テーブルの例を示す図。
【図５】Ｗｅｂコンテナ履歴ＤＢ（１１２）に格納されている、Ｗｅｂコンテナ履歴テーブルの例を示す図。
【図６】プログラム実行環境実行履歴ＤＢ（１１３）に格納されている、プログラム実行環境実行履歴テーブルの例を示す図。
【図７】ＤＢアクセス履歴ＤＢ（１１４）に格納されている、ＤＢアクセス履歴テーブルの例を示す図。
【図８】外部ライブラリ情報ＤＢ（１１５）に格納されている、外部ライブラリ情報テーブルの例を示す図。
【図９】履歴情報関連表示フローのステップ（３０１）の詳細を示す図。
【図１０】メモリ領域に記憶されるクライアント操作履歴一覧の例を示す図（クライアント操作履歴テーブル（４００）を例とした場合）。
【図１１】履歴情報関連表示ツールの画面を示す図（クライアント操作履歴一覧からクライアント操作履歴を選択するシーン）。
【図１２】履歴情報関連表示フローのステップ（３１２）の詳細を示す図。
【図１３】履歴情報関連表示フローのステップ（３１２）で取得した履歴情報関連表示データの例を示す図。
【図１４】外部ライブラリ情報テーブル（８００）を元に加工した履歴情報関連表示データを示す図。
【図１５】履歴情報関連表示フローのステップ（３２３）の詳細を示す図。
【図１６】履歴情報関連表示ツールの画面を示す図（履歴情報関連表示データを表示したシーン）。
【図１７】履歴情報関連表示ツールの画面を示す図（外部ライブラリ情報を集約した履歴情報関連表示データを表示したシーン）。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を図面とあわせて詳細に説明する。
【実施例１】
【００１０】
図１は、本発明の実施形態におけるソフトウェアの構成である。
【００１１】
本発明の実施形態を実現するソフトウェア開発環境は、情報システムとしての解析対象システム（１２０）の保守業務において、解析対象システム（１２０）からの実行履歴情報を元に、特定の、一連の処理内容を抽出し可視化する。
【００１２】
履歴情報追跡キー抽出部（１０１）は、一連の処理内容を抽出するための「履歴情報追跡キー」を抽出し、履歴情報関連表示データ取得部（１０２）に送信する。
【００１３】
履歴情報関連表示データ取得部（１０２）は、取得した履歴情報追跡キーを元に、履歴情報関連表示データを生成するために必要な情報を集約する。また、生成した履歴情報関連表示データを履歴情報関連表示部（１０３）へ送信する。
【００１４】
履歴情報関連表示部（１０３）は、取得した履歴情報関連表示データを、外部ライブラリ情報ＤＢ（１１５）を元に加工し、視覚的に表示可能なデータに変換しグラフィカルに表示する。
【００１５】
クライアント操作履歴ＤＢ（１１１）は、クライアントＰＣのブラウザ上の操作などの履歴情報と、クライアントＰＣがネットワーク（１２２）を介してＪＳＰなどのコンテンツを受信した際通信内容より取得する情報に関連するテーブルを持つＤＢである。
【００１６】
Ｗｅｂコンテナ履歴ＤＢ（１１２）は、クライアントＰＣによる、ネットワーク（１２２）を介した要求の受信履歴に関するテーブルを持つＤＢである。
【００１７】
プログラム実行環境実行履歴ＤＢ（１１３）は、プログラム実行環境（１２４）上で実行されたプログラムの実行履歴に関するテーブルを持つＤＢである。
【００１８】
ＤＢアクセス履歴ＤＢ（１１４）は、ＤＢ（１２６）へのアクセス履歴に関するテーブルを持つＤＢである。
【００１９】
外部ライブラリ情報ＤＢ（１１５）は、履歴情報関連表示データを表示する際、別名で表示させたいパッケージに関するテーブルを持つＤＢである。
【００２０】
解析対象システム（１２０）は、クライアントＰＣ（１２１）、Ｗｅｂコンテナ（１２３）、プログラム実行環境（１２４）、ＪＤＢＣドライバ（１２５）、ＤＢ（１２６）で構成され、クライアントＰＣ（１２１）とＷｅｂコンテナ（１２３）がネットワーク（１２２）を介して連携するＷｅｂアプリケーションシステムとする。複数のクライアントＰＣがネットワーク（１２２）に接続されている形態も可能である。
【００２１】
クライアントＰＣ（１２１）は、ネットワーク（１２２）に接続されており、ブラウザを通してＷｅｂアプリケーションを起動、対話、切断することができる。
【００２２】
Ｗｅｂコンテナ（１２３）は、クライアントＰＣからの要求の内容を読み取り、htmlファイルや画像ファイル等の静的なコンテンツや、サーブレット、ＪＳＰ等の動的なコンテンツを取得し、クライアントＰＣ（１２１）への返信を行う。
【００２３】
プログラム実行環境（１２４）は、プログラムを実行する。
【００２４】
ＪＤＢＣドライバ（１２５）は、プログラム実行環境（１２４）がＤＢ（１２６）への参照、更新、書き込みを行うために、プログラム実行環境（１２４）とＤＢ（１２６）との接続を支援するＡＰＩを提供する。
【００２５】
ＤＢ（１２６）は、プログラムが使用するデータを格納する。
【００２６】
以下、構成要素それぞれについて詳細を説明する。
【００２７】
図２は、本発明の実施形態におけるハードウェア構成である。
【００２８】
本発明の実施形態を実現する保守業務支援環境を配置する計算機は、ＣＰＵ（２０１）、主記憶装置（２０２）、ネットワーク接続装置（２０３）、外部記憶装置（２０４）、ディスプレイ（２０５）、データ入力装置（２０６）、ネットワーク（２０７）などを持つ。ＣＰＵ（２０１）は、記憶装置から読み出したプログラムを実行するとともに、計算機の各装置を制御する。後述する本発明の実施形態におけるフローや動作処理は、ＣＰＵ（２０１）によって実行される。
【００２９】
図３は、履歴情報関連表示の処理フローである。
【００３０】
本処理フローは、本発明の実施形態を実現する保守業務支援環境の任意のイベントにより起動される。ここで、任意のイベントとは、解析対象システムの履歴情報の再表示などがある。
【００３１】
次に履歴情報追跡キー抽出部（１０１）は、クライアント操作履歴ＤＢ（１１１）よりクライアント操作履歴一覧を取得し、メモリ領域上に記憶する（３０１）。
【００３２】
次に、メモリ上のクライアント操作履歴一覧から選択された1つのクライアント操作を取得する（３０２）。
【００３３】
次に、選択したクライアント操作履歴から、履歴情報追跡キーとして「リクエストＩＤ」と「セッションＩＤ」の値を抽出し（３０３）、履歴情報関連表示データ取得部（１０２）へ送信する（３０４）。
【００３４】
次に、履歴情報関連表示データ取得部（１０２）は、履歴情報追跡キーを受信することで起動し（３１１）、受信した履歴情報追跡キーを元に、Ｗｅｂコンテナ履歴ＤＢ（１１２）、プログラム実行環境実行履歴ＤＢ（１１３）、ＤＢアクセス履歴ＤＢ（１１４）、ステップ（３０１）で記憶したクライアント操作履歴一覧から必要な情報を収集し、履歴情報関連表示データを生成する（３１２）。
【００３５】
次に、履歴情報関連表示データ取得部（１０２）は、生成した履歴情報関連表示データを履歴情報関連表示部（１０３）に送信する（３１３）。
【００３６】
次に、履歴情報関連表示部（１０３）は、履歴情報関連表示データを受信し（３２１）、外部ライブラリ情報ＤＢ（１１５）を元に履歴情報関連表示データを加工する（３２２）。ここで、設定次第で履歴情報関連表示データを加工させないことも可能である。
【００３７】
次に、履歴情報関連表示データを元にして、履歴情報の関連をグラフィカルに表示する（３２３）。
【００３８】
次に、別の履歴情報関連表示データを表示したい場合には履歴情報追跡キー抽出部（１０１）に戻る。一方、これ以上の表示しない場合は、終了となる。
【００３９】
図４は、クライアント操作履歴ＤＢ（１１１）に属するクライアント操作履歴テーブル（４００）の例である。
【００４０】
クライアント操作履歴テーブル（４００）は、クライアントＰＣにおけるブラウザ上の操作の履歴情報を格納するテーブルである。本実施例では、クライアント操作履歴テーブル（４００）の項目として、「リクエストＩＤ」、「セッションＩＤ」、「ＩＰアドレス」、「ページ名」、「操作タイプ」、「操作対象」、「取得順序」を挙げている。
【００４１】
「リクエストＩＤ」は、Ｗｅｂコンテナ（１２３）からの返信を特定する項目で、クライアントＰＣ（１２１） はｈｔｍｌファイル、ＪＳＰなどのコンテンツを受信する際にＨｔｔｐヘッダなどの通信内容から機械的に取得できるものとする。
【００４２】
「セッションＩＤ」は、Ｗｅｂコンテナ（１２３）に対して要求を送信したクライアントＰＣをある一定期間の間識別するための項目で、クライアントＰＣ（１２１） はｈｔｍｌファイル、ＪＳＰなどのコンテンツを受信する際にＨｔｔｐヘッダ通信内容から機械的に取得できるものとする。
【００４３】
「ＩＰアドレス」は、ネットワーク（１２２）に接続されているクライアントＰＣを識別するための項目で、クライアントＰＣ（１２１）には「１９２．１６８．１．１１」が付与されているものとする。
【００４４】
「ページ名」は、解析対象システム（１２０）であるＷｅｂアプリケーションのページ名を示す項目であり、ｈｔｍｌのｔｉｔｌｅタグに挟まれた文字列を取得するなどして実現できる。ページ名が取得できなかった場合は、ハイフンなどの記号で代用する。
【００４５】
「操作タイプ」は、クライアントＰＣのブラウザ上での操作の種類を示す項目である。ブラウザ上で特定の操作が発生した時点をトリガにして、「リクエストＩＤ」、「セッションＩＤ」、「ＩＰアドレス」、「ページ名」、「操作対象」、「取得順序」を取得し、クライアント操作履歴ＤＢ（１１１）に属するクライアント操作履歴一覧テーブル（４００）に格納するものとする。本例では、「ボタンのクリック」をトリガの対象としている。
【００４６】
「操作対象」は、クライアントＰＣのブラウザ上で特定の操作が発生した時にその対象となったページ要素の名称を示す項目である。本例では、特定の操作として「ボタンのクリック」を挙げているため、ボタンに張られたラベル名などを取得するものとする。
【００４７】
「取得順序」は、クライアントＰＣのブラウザ上で特定の操作が発生した順序を示す項目である。本実施例では、クライアントＰＣ（１２１）の時刻を挙げている。
【００４８】
ハイフン記号（４０１）は、操作履歴情報が取得できなかったことを示すもので、例えば、クライアントＰＣ（１２１）上にブラウザをただ立ち上げ、Ｗｅｂコンテナに格納されている静的コンテンツ及び動的コンテンツを指し示すＵＲＬを直接入力するなどして取得する場合には、「リクエストＩＤ」、「セッションＩＤ」を取得できない。これは、「リクエストＩＤ」と「セッションＩＤ」が、Ｗｅｂコンテナ（１２３）で付与されるためで、新規に立ち上げたブラウザには、未だ「リクエストＩＤ」、「セッションＩＤ」が付与されていない。
【００４９】
このようにブラウザに表示されたページから、「リクエストＩＤ」、「セッションＩＤ」、「ＩＰアドレス」、「ページ名」、ブラウザに表示されているページ上における「操作タイプ」、「操作対象」、「取得時刻」を機械的に取得する具体的な方法として、Ａｊａｘ（Ａｓｙｎｃｈｒｏｎｏｕｓ ＪａｖａＳｃｒｉｐｔ ａｎｄ ＸＭＬ）技術がある（ＪａｖａＳｃｒｉｐｔは登録商標）。
【００５０】
図５は、Ｗｅｂコンテナ履歴ＤＢ（１１２）に属するＷｅｂコンテナ履歴テーブル（５００）の例である。
【００５１】
Ｗｅｂコンテナ履歴テーブル（５００）は、Ｗｅｂコンテナ（１２３）が受信した要求の履歴情報を格納するテーブルである。本実施例では、「リクエストＩＤ」、「セッションＩＤ」、「ルートコンテンツ名」を挙げている。
【００５２】
「リクエストＩＤ」は、Ｗｅｂコンテナ（１２３）に送信された要求を特定するための項目で、Ｗｅｂコンテナ（１２３）がクライアントＰＣ（１２１）からの要求を受信したタイミングで機械的に付与する。リクエストＩＤの例としては、Ｗｅｂコンテナが受けた要求に対してＷｅｂコンテナ自身が付与・管理する通信番号が挙げられるが、複数のＷｅｂコンテナがある場合ＷｅｂコンテナのＩＰアドレスを追加し、また、複数のプログラムが起動される場合にはプロセスＩＤを追加して、それら一組をリクエストＩＤとして用いることができる。
【００５３】
「セッションＩＤ」は、Ｗｅｂコンテナ（１２３）に対して要求を送信したクライアントＰＣをある一定期間の間特定するための項目で、Ｗｅｂコンテナ（１２３）に要求を送信したタイミングで機械的に付与・継承される。具体的には、Ｗｅｂコンテナ（１２３）がセッションＩＤを保持していない場合は新しくセッションＩＤを付与し、既にセッションＩＤを保持している場合は、新しくセッションＩＤを付与することなく、既に保持しているセッションＩＤを継承する。また、セッションＩＤの有効期間を超えて使用されない場合は、そのセッションＩＤは破棄されるものとする。本例では、クライアントＰＣから連続的に要求を受信している場合にセッションＩＤが自動的に破棄されることが無い程度にセッションＩＤの有効期間は長いものとする。
【００５４】
「ルートコンテンツ名」は、静的なコンテンツ（ｈｔｍｌファイルなど）や動的なコンテンツ（サーブレットなど）の名称を示す項目で、Ｗｅｂコンテナ（１２３）がクライアントＰＣからの要求の内容を読み取り、機械的にコンテンツのファイル名を取得するものとする。
【００５５】
図６は、プログラム実行環境実行履歴ＤＢ（１１３）に属するプログラム実行環境実行履歴テーブル（６００）の例である。
【００５６】
プログラム実行環境実行履歴テーブル（６００）は、プログラム実行環境上で実行されたプログラムが生成したオブジェクト間のメッセージの送受信の履歴情報一覧を格納したテーブルである。本例では、「呼出元オブジェクトＩＤ」、「呼出元情報」、「呼出元付属データ」「呼出先オブジェクトＩＤ」、「呼出先情報」、「呼出先付属データ」、「取得順序」を挙げている。
【００５７】
「呼出元オブジェクトＩＤ」は、プログラム実行環境（１２４）上で実行されたプログラムが生成したオブジェクトを特定する項目で、特に呼び出し元となるオブジェクトに付属しているものを指す。プログラム実行環境（１２４）にオブジェクトが生成された際に機械的に付与され、他のオブジェクトにメッセージを送信する際に機械的に取得できるものとする。例としては、オブジェクトのハッシュ・コードなどが挙げられる。
【００５８】
「呼出元情報」は、他のオブジェクトに対してメッセージを送信するオブジェクトが持つ情報を示す項目で、あるオブジェクトがメッセージを送信する際に機械的に取得できるものとする。本実施例では、呼び出し元のオブジェクトの「パッケージ名」、「クラス名」と、メッセージを発信した「メソッド名」をピリオド「．」で繋げた文字列を用いている。
【００５９】
「呼出元付属データ」は、呼び出し元オブジェクトに付帯するデータを示す項目である。Ｗｅｂコンテナ（１２３）の指令によってサーブレットなどのオブジェクトをプログラム実行環境（１２３）上に生成した場合に、その指令を要求したクライアントＰＣ（１２１）からの要求の「セッションＩＤ」を取得できるものとする。それ以外の場合には何も取得せず、プログラム実行環境実行履歴テーブル（６００）では、ハイフン記号を用いるなどしてそのことを示している。
【００６０】
「呼出先オブジェクトＩＤ」は、プログラム実行環境（１２４）上で実行されたプログラムが生成したオブジェクトを特定する項目で、特に呼び出し先となるオブジェクトに付属しているものを指す。プログラム実行環境（１２４）にオブジェクトが生成された際に機械的に付与され、他のオブジェクトよりメッセージを受信する際に機械的に取得できるものとする。例としては、オブジェクトのハッシュ・コードなどが挙げられる。
【００６１】
「呼出先情報」は、他のオブジェクトよりメッセージを受信するオブジェクトが持つ情報を示す項目で、あるオブジェクトがメッセージを受信する際に機械的に取得できるものとする。本実施例では、呼び出し元のオブジェクトの「パッケージ名」、「クラス名」と、メッセージの送信先の「メソッド名」をピリオド「．」で繋げた文字列を用いている。
【００６２】
「呼出先付属データ」は、呼び出し先オブジェクトに付帯するデータを示す項目である。プログラム実行環境（１２４）がＪＤＢＣドライバ（１２５）を用いてＤＢ（１２６）にアクセスする場合に、ＪＤＢＣドライバ（１２５）によって管理されている「コネクションＩＤ」を取得できるものとする。それ以外の場合には何も取得せず、プログラム実行環境実行履歴テーブル（６００）では、ハイフン記号を用いるなどしてそのことを示している。
【００６３】
「取得順序」は、あるオブジェクトが他オブジェクトにメッセージを送信した順番を示す項目で、本実施例では、プログラム実行環境（１２４）内部の時刻を挙げている。
【００６４】
図７は、ＤＢアクセス履歴ＤＢ（１１４）に属するＤＢアクセス履歴テーブル（７００）の例である。
【００６５】
ＤＢアクセス履歴テーブル（７００）は、ＤＢ（１２６）にアクセスした履歴を格納するテーブルである。本例では、「コネクションＩＤ」、「テーブル名」、「ＳＱＬ情報」、「取得順序」を挙げている。
【００６６】
「コネクションＩＤ」は、ＤＢ（１２６）との接続を特定する項目で、ＪＤＢＣドライバ（１２５）によって管理される。
【００６７】
「テーブル名」は、ＤＢ（１２６）に属するテーブルの名称を示す項目で、発行されたＳＱＬ文を解析するなどして取得することができるものとする。
【００６８】
「ＳＱＬ情報」は、発行されたＳＱＬ文を解析して得られる情報を表す項目で、本実施例では、Ｓｅｌｅｃｔ、Ｕｐｄａｔｅなどの発行タイプを挙げている。
【００６９】
「取得順序」は、ＤＢ（１２６）にアクセスした順番を示す項目である。本実施例では、ＤＢ（１２６）の内部の時刻を挙げている。
【００７０】
図８は、外部ライブラリ情報ＤＢ（１１５）に属する外部ライブラリ情報テーブル（８００）の例である。
【００７１】
外部ライブラリ情報テーブル（８００）は、履歴情報関連表示データを表示する際、別名で表示したいパッケージ名を格納したテーブルである。本実施例では、「パッケージ名」、「表示名」を項目として挙げている。
【００７２】
「パッケージ名」は、外部ライブラリと定義するパッケージの名称を示す項目である。
【００７３】
「表示名」は、履歴情報関連表示データを表示する際、外部ライブラリの表示名を示す項目である。
【００７４】
以下、履歴情報関連表示のフロー（図３）のステップの詳細を説明する。
【００７５】
図９は、履歴情報追跡キー抽出部（１０１）のステップ（３０１）において、クライアント操作履歴ＤＢ（１１１）に属するクライアント操作履歴テーブル（４００）に格納されているクライアント操作履歴一覧をメモリ上に記憶するフローである。このフローを通して、クライアント操作履歴テーブル（４００）の「リクエストＩＤ」、「セッションＩＤ」と操作情報（「ＩＰアドレス」、「ページ名」、「操作タイプ」、「操作対象」、「取得順序」）のずれを修正する。
【００７６】
「リクエストＩＤ」、「セッションＩＤ」は、Ｗｅｂコンテナ（１２３）に要求を送信した際に付与され、一方クライアントＰＣ（１２１）においては要求に対する返答によってブラウザ上に表示されたページに付帯しており、そのページ上での特定の操作をトリガにして初めて取得される。そのため、クライアント操作履歴テーブル（４００）の１レコードとして格納するのは、あるページにおける操作情報と、一つ前の操作によって送信された要求に付与された「リクエストＩＤ」と「セッションＩＤ」である。具体的には、図４のクライアント操作履歴（４０３）の「リクエストＩＤ」と「セッションＩＤ」は、クライアント操作履歴（４０２）の「ページ名」、「操作タイプ」、「操作対象」、「取得順序」などの情報を持つ操作によって送信された要求に対して付与されている。
【００７７】
本処理フローは、クライアント操作履歴テーブル（４００）からクライアント操作履歴一覧を取得する場合に必ず起動される。
【００７８】
次に、クライアント捜査履歴一覧を記憶するためのメモリ領域ａを初期化する（９０１）。
【００７９】
次に、クライアント操作履歴ＤＢ（１１１）に属するクライアント操作履歴テーブル（４００）に格納されている「セッションＩＤ」を重複の無いようにすべて取得し、初期化されたメモリ領域ｂに記憶する（９０２）。
【００８０】
次に、メモリ領域ｂに記憶された「セッションＩＤ」毎に以下のような処理を行う（９０３〜９０７）。
【００８１】
同一の「セッションＩＤ」を含むクライアント操作履歴をクライアント操作履歴テーブル（４００）より抽出し（９０３）、それぞれのクライアント操作履歴の「取得順序」の順に並び替える（９０４）。
【００８２】
次に、取得の順番に並び替えられたクライアント操作履歴の一覧について、ある順番のクライアント操作履歴の「リクエストＩＤ」、「セッションＩＤ」を、その一つ前のクライアント操作履歴の「リクエストＩＤ」、「セッションＩＤ」と入れ替える処理を、順番の早い順から順次行う（９０５）。この処理によって、一番上にあったレコードの「リクエストＩＤ」、「セッションＩＤ」は、一番下のレコードに移動する。
【００８３】
次に、並び替えられたクライアント操作履歴の一覧のうち、最後の順番のクライアント操作履歴を削除し（９０６）、メモリ領域ａに記憶・追加していく（９０７）。
【００８４】
図１０は、クライアント操作履歴ＤＢ（１１１）に属するクライアント操作履歴テーブル（４００）から、図９に記載している処理フローの結果、メモリ領域に記憶されるクライアント操作履歴一覧（１０００）の例である。本実施例では、クライアント操作履歴として、「リクエストＩＤ」、「セッションＩＤ」、「ＩＰアドレス」、「ページ名」、「操作タイプ」、「操作対象」、「取得順序」を挙げている。
【００８５】
「リクエストＩＤ」は、クライアント操作履歴テーブル（４００）の「リクエストＩＤ」に対応する。
【００８６】
「セッションＩＤ」は、クライアント操作履歴テーブル（４００）の「セッションＩＤ」に対応する。
【００８７】
「ＩＰアドレス」は、クライアント操作履歴テーブル（４００）の「ＩＰアドレス」に対応する。
【００８８】
「ページ名」は、クライアント操作履歴テーブル（４００）の「ページ名」に対応する。
【００８９】
「操作タイプ」は、クライアント操作履歴テーブル（４００）の「操作タイプ」に対応する。
【００９０】
「操作対象」は、クライアント操作履歴テーブル（４００）の「操作対象」に対応する。
【００９１】
「取得順序」は、クライアント操作履歴テーブル（４００）の「取得順序」に対応する。
【００９２】
図１１は、履歴情報追跡キー抽出部（１０１）のステップ（３０２）において、保守業務担当者にクライアント操作履歴を表示する履歴情報関連表示ツールの画面例（１１０１）であり、画面上に表示されたクライアント操作履歴一覧から、特定のクライアント操作履歴を選択するシーンである。本実施例では、クライアント操作履歴として、「ＩＰアドレス」、「ページ名」、「操作対象」、「操作タイプ」、「取得順序」を挙げている。
【００９３】
「ＩＰアドレス」は、クライアント操作履歴一覧（１０００）の「ＩＰアドレス」に対応する。
【００９４】
「ページ名」は、クライアント操作履歴一覧（１０００）の「ページ名」に対応する。
【００９５】
「操作対象」は、クライアント操作履歴一覧（１０００）の「操作対象」に対応する。
【００９６】
「操作タイプ」は、クライアント操作履歴一覧（１０００）の「操作タイプ」に対応する。
【００９７】
「取得順序」は、クライアント操作履歴一覧（１０００）の「取得順序」に対応する。
【００９８】
履歴情報関連表示ツールを操作する保守担当者は、チェックボックスなどの操作インターフェース（１１０２）で、クライアント操作履歴一覧からクライアント操作履歴を選択することができるものとする。また、チェックボックスなどの操作インターフェース（１１０３）で、履歴情報関連表示ツールで表示する履歴情報に対して、外部ライブラリ情報適用の有無を指示することができる。この指示次第で、履歴情報関連表示部のステップ（３２２）実施の有無を選択することができるものとする。また、ＯＫボタン（１１０４）を押下するなどの操作を行うことで、操作インターフェース（１１０３）で選択したクライアント履歴情報を履歴情報追跡キー抽出部（１０２）に送信することができる。
【００９９】
図１２は、履歴情報関連表示データ取得部（１０２）のステップ（３１２）において、受信した履歴情報追跡キーを元に、履歴情報関連表示データの生成に必要な情報を抽出する処理フローである。
【０１００】
本処理フローは、履歴情報追跡キー抽出部（１０１）より履歴情報追跡キーを取得することで開始する。
【０１０１】
次に、取得した履歴情報追跡キーである「リクエストＩＤ」の値と「セッションＩＤ」の値をキーにして、メモリ領域上（メモリ領域ａ）に記憶されているクライアント操作履歴一覧（１０００）の「リクエストＩＤ」、「セッションＩＤ」をそれぞれ検索し、該当したクライアント操作履歴の「ＩＰアドレス」、「ページ名」、「操作対象」、「操作タイプ」、「取得順序」を取得する（１２０１）。
【０１０２】
次に、取得した履歴情報追跡キーである「リクエストＩＤ」の値、「セッションＩＤ」の値をキーにしてＷｅｂコンテナ履歴テーブル（５００）の「リクエストＩＤ」と「セッションＩＤ」を検索し、該当したＷｅｂコンテナ履歴の「ルートコンテンツ名」の値を取得し（１２０２）、プログラム実行環境実行履歴テーブル（６００）の「呼出元情報」と「呼出元付属データ」が、それぞれステップ（１２０２）で取得した「ルートコンテンツ名」の値と、履歴情報追跡キーである「セッションＩＤ」の値に一致するプログラム実行環境実行履歴テーブル（６００）の「呼出元オブジェクトＩＤ」の値を取得する（１２０３）。本実施例においては、「ルートコンテンツ名」の値はサーブレットなどの場合はクラス名が相当し、「呼出元情報」としてパッケージ名、クラス名、メソッド名をピリオドで繋げた文字列を値として持つため、プログラム実行環境実行履歴（６００）の「呼出元情報」を検索する際には、文字列を分解するなどの処理を経る必要がある。
【０１０３】
次に、ステップ（１２０３）で取得した「呼出元オブジェクトＩＤ」の値を持つオブジェクトを起点とする、呼び出しに関係した全てのオブジェクトを洗い出し、それらオブジェクトの呼び出し関係の情報を、プログラム実行環境実行履歴テーブル（６００）の「呼出元情報」、「呼出先情報」、「呼出先付属データ」、「取得順序」をメモリに記憶する（１２０４）。本実施例では、ステップ（１２０４）を次の（１）〜（７）の順に従って実現する。
【０１０４】
（１）ステップ（１２０３）で取得した呼出の起点となるオブジェクトのＩＤ（「呼出元オブジェクトＩＤ」の値）をメモリ領域Ａに記憶する。
【０１０５】
（２）メモリ領域Ａに記憶したオブジェクトＩＤの値をキーにして、プログラム実行環境実行履歴テーブル（６００）の「呼出元オブジェクトＩＤ」を検索し、該当したプログラム実行環境実行履歴の「呼出先オブジェクトＩＤ」を重複の無いように取得し、メモリ領域Ｂに記憶する。
【０１０６】
（３）メモリ領域Ｂに記憶してあるオブジェクトＩＤをキーにして、プログラム実行環境実行履歴テーブル（６００）の「呼出元オブジェクトＩＤ」を検索し、該当したプログラム実行環境実行履歴の「呼出先オブジェクトＩＤ」を重複の無いように取得し、メモリ領域Ｂに追加する。
【０１０７】
（４）メモリ領域Ｂにおいて、重複して記憶されているオブジェクトＩＤを消去する。
【０１０８】
（５）キーに用いたオブジェクトＩＤをメモリ領域Ａに追加し、メモリ領域Ｂから消去す  る。
【０１０９】
（６）メモリ領域Ｂに記憶されているオブジェクトＩＤがなくなるまで、（３）〜（５）を繰り返す。
【０１１０】
（７）メモリ領域Ａに記憶されているオブジェクトＩＤをキーにして、プログラム実行環境実行履歴テーブル（６００）の「呼出元オブジェクトＩＤ」を検索し、該当するプログラム実行環境実行履歴を逐次取得していく。
【０１１１】
次に、（１２０４）で記憶したプログラム実行環境実行履歴の一覧において、「呼出先付属データ」にハイフン記号のデータが入力されている場合、そのデータをキーにしてＤＢアクセス履歴テーブル（７００）の「コネクションＩＤ」を検索し、該当するＤＢアクセス履歴を逐次取得し、メモリに記憶して（１２０５）、本処理フローを終了する。
【０１１２】
図１３（ａ）は、図１２に記載している処理フローのステップ（１２０１）で取得したクライアント操作に関する履歴情報関連表示データの例（１３０１）である。本実施例では、「ＩＰアドレス」、「ページ名」、「操作タイプ」、「操作対象」、「取得順序」を挙げている。「ＩＰアドレス」は、クライアント操作履歴一覧（１０００）の「ＩＰアドレス」に対応している。「ページ名」は、クライアント操作履歴一覧（１０００）の「ページ名」に対応している。「操作タイプ」は、クライアント操作履歴一覧（１０００）の「操作タイプ」に対応している。「操作対象」は、クライアント操作履歴一覧（１０００）の「操作対象」に対応している。「取得順序」は、クライアント操作履歴一覧（１０００）の「取得順序」に対応している。
【０１１３】
図１３（ｂ）は、図１２に記載している処理フローのステップ（１２０４）で取得するプログラム実行環境に関する履歴情報関連表示データの例（１３０２）である。本実施例では、「呼出元情報」、「呼出元付属データ」、「呼出先情報」、「呼出先付属データ」、「取得順序」を挙げている。「呼出元情報」は、プログラム実行環境実行履歴テーブル（６００）の「呼出元情報」に対応している。「呼出元付属データ」は、プログラム実行環境実行履歴テーブル（６００）の「呼出元付属データ」に対応している。「呼出先情報」は、プログラム実行環境実行履歴テーブル（６００）の「呼出先情報」に対応している。「呼出先付属データ」は、プログラム実行環境実行履歴テーブル（６００）の「呼出先付属データ」に対応している。「取得順序」は、プログラム実行環境実行履歴テーブル（６００）の「取得順序」に対応している。
【０１１４】
図１３（ｃ）は、図１２に記載している処理フローのステップ（１２０５）で取得するＤＢアクセスに関する履歴情報関連表示データの例（１３０３）である。本実施例では、「コネクションＩＤ」、「テーブル名」、「ＳＱＬ情報」、「取得順序」を挙げている。「コネクションＩＤ」は、ＤＢアクセス履歴テーブル（７００）の「コネクションＩＤ」に対応する。「テーブル名」は、ＤＢアクセス履歴テーブル（７００）の「テーブル名」に対応する。「ＳＱＬ情報」は、ＤＢアクセス履歴テーブル（７００）の「ＳＱＬ情報」に対応する。「取得順序」は、ＤＢアクセス履歴テーブル（７００）の「取得順序」に対応する。
【０１１５】
図１４は、履歴情報関連表示データ取得部（１０３）のステップ（３２２）において、外部ライブラリ情報テーブル（８００）を参照して加工した履歴情報関連表示データの例（１４００）であり、プログラム実行環境に関する履歴情報関連表示データの例（１３０２）を元に特定のパッケージを別名に変換している。特に、プログラム実行環境に関する履歴情報関連表示データ（１４０１、１４０２、１４０３）の「呼出元情報」が外部ライブラリ情報テーブル（８００）の「パッケージ名」に該当し、それぞれ外部ライブラリ情報テーブル（８００）の「表示名」に変換されている。
【０１１６】
図１５は、履歴情報関連表示部（１０３）のステップ（３２３）において、履歴情報関連表示データを表示する処理フローである。
【０１１７】
本処理フローは、履歴情報関連表示データ取得部（１０２）から履歴情報関連表示データを受信するなどした場合に起動する。
【０１１８】
次に、クライアント操作に関する履歴情報関連表示データ（１３０１）を元に「ページ」と「操作対象」を描画し（１５０１）、プログラム実行環境に関する履歴情報関連表示データ（１３０２）の「呼出元付属データ」に値が入っているレコードの「呼出元情報」を元に「パッケージ」、「クラス」、「メソッド」を描画し（１５０２）、描画した「操作対象」から「メソッド」を結ぶ矢印を描画する（１５０３）。
【０１１９】
次に、プログラム実行環境に関する履歴情報関連表示データ（１３０２）のうち「取得順序」の早いレコードを選択し（１５０４）、そのレコードの「呼出元情報」と「呼出先情報」から描画されていない「パッケージ」、「クラス」、「メソッド」を追加し（１５０５）、選択しているレコードの「呼出元情報」が示す「メソッド」から「呼出先情報」が示す「メソッド」への矢印が描画されていない場合に矢印を描画する（１５０６）。
【０１２０】
次に、ステップ（１５０４）で選択したプログラム実行環境に関する履歴情報関連表示データ（１３０２）のレコードの「呼出先付属データ」に値が入っていない場合には、ステップ（１５０４）で選択したレコードをメモリ領域上から削除する（１５０９）。一方、「呼出先付属データ」に値が入っている場合には、その値をキーにしてＤＢアクセスに関する履歴情報関連表示データ（１３０３）の「コネクションＩＤ」を検索し、その「コネクションＩＤ」が示す「テーブル」が描画されていない場合に描画する（１５０７）。ステップ（１５０４）で選択したプログラム実行環境に関する履歴情報関連表示データ（１３０２）のレコードの「呼出元情報」が示す「メソッド」から「テーブル」への矢印が描画されていない場合は描画する（１５０８）。最後にステップ（１５０４）で選択したプログラム実行環境に関する履歴情報関連表示データ（１３０２）のレコードをメモリ上から削除する（１５０９）。
【０１２１】
次に、プログラム実行環境に関する履歴情報関連表示データ（１３０２）にレコードが残っている場合にはステップ（１５０４）に戻り、残っていない場合には本処理フローを終了する。
【０１２２】
図１６は、履歴情報関連表示部（１０３）のステップ（３２３）において、履歴情報関連表示ツールによって、履歴情報関連表示データを別ウィンドウに表示した履歴情報関連表示画面例（１６００）である。
【０１２３】
ページを表すＰＣディスプレイ型のアイコン（１６０１）の「Ｐａｇｅ０２」は、クライアント操作履歴に関連する履歴情報関連表示データ（１３０１）の「ページ名」に対応する。  丸角四角のアイコン（１６０２）の「Ｌａｂｅｌ００２」は、履歴情報関連表示データ（１３０１）の「操作対象」に対応する。丸角四角のアイコンから出ている矢印上の上段のラベル（１６０３）は、クライアント操作履歴に関連する履歴情報関連表示データ（１３０１）の「ＩＰアドレス」に対応する。丸角四角のアイコンから出ている矢印上の中段のラベル（１６０４）は、クライアント操作履歴に関連する履歴情報関連表示データ（１３０１）の「取得順序」に対応する。丸角四角のアイコンから出ている矢印上の下段のラベル（１６０５）は、履歴情報関連表示データ（）の「操作タイプ」に対応する。左肩に四角を持つ四角形のアイコン（１６０６）の「Ｐ００１」は、パッケージ名を表し、プログラム実行環境実行履歴に関連する履歴情報関連表示データ（１３０２）の「呼出元情報」もしくは「呼出先情報」の文字列において、２つのピリオドで区切られたうち左から１番目の文字列に対応する。四角のアイコン（１６０７）の「Ｓｅｒｖｌｅｔ００１」は、クラス名を表し、プログラム実行環境実行履歴に関連する履歴情報関連表示データ（１３０２）の「呼出元情報」もしくは「呼出先情報」の文字列において、２つのピリオドで区切られたうち左から２番目の文字列に対応する。楕円型のアイコン（１６０８）の「Ｍ００１」は、メソッド名を表し、プログラム実行環境実行履歴に関連する履歴情報関連表示データ（１３０２）の「呼出元情報」もしくは「呼出先情報」の文字列において、２つのピリオドで区切られたうち左から３番目の文字列に対応する。格子に仕切られた四角形のアイコン（１６０９）の「Ｔａｂｌｅ００１」は、ＤＢアクセス履歴に関連する履歴情報関連表示データ（１３０３）の「テーブル名」に対応する。格子に仕切られた四角形のアイコンを指す矢印上のラベル（１６１０）の「ＳＥＬＥＣＴ」は、ＤＢアクセス履歴に関連する履歴情報関連表示データ（１３０３）の「ＳＱＬ情報」に対応する。履歴情報関連表示ツールを操作する保守業務担当者は、Ｃｌｏｓｅボタン（１６１１）を押下するなどの操作によって、履歴情報関連表示画面（１６００）を閉じ、別の履歴情報関連表示画面を表示するなどの行動に移ることができる。
【０１２４】
図１７は、履歴情報関連表示部（１０３）のステップ（３２３）において、履歴情報関連表示ツールによって、外部ライブラリ情報ＤＢ（１１５）を利用して、特定のパッケージを別名で変換した履歴情報関連表示データを別ウィンドウに表示した履歴情報関連表示画面例（１８００）である。
【０１２５】
履歴情報関連表示画面例（１６００）上の「Ｐ８０１」と「Ｐ９０１」をパッケージ名に持つアイコンが、履歴情報関連表示画面例（１７００）上では、「Ｅｘｔ」をパッケージ名とするアイコンに集約されている。
【図１】
2011192230.tif 000003
【図２】
2011192230.tif 000004
【図３】
2011192230.tif 000005
【図４】
2011192230.tif 000006
【図５】
2011192230.tif 000007
【図６】
2011192230.tif 000008
【図７】
2011192230.tif 000009
【図８】
2011192230.tif 000010
【図９】
2011192230.tif 000011
【図１０】
2011192230.tif 000012
【図１１】
2011192230.tif 000013
【図１２】
2011192230.tif 000014
【図１３】
2011192230.tif 000015
【図１４】
2011192230.tif 000016
【図１５】
2011192230.tif 000017
【図１６】
2011192230.tif 000018
【図１７】
2011192230.tif 000019