(57)【要約】【課題】  利用者の要求によりアプリケーションサーバ上で実行されるアプリケーションがデータベースコネクタ経由でデータベースへアクセスする場合、アプリケーションの利用者を特定する情報を記録することができないという課題があった。【解決手段】  アプリケーションサーバにおいて利用者の要求によりアプリケーションからデータベースへのアクセスが行われる際、スレッド情報とリクエスト識別情報を取得し、これらの情報をデータベースコネクタに渡し、データベースの出力機能により出力される情報と共にデータベースへ出力する。リクエスト識別情報はリクエスト識別情報管理機能が保持しており、スレッド情報は監査証跡用情報管理機能が保持している。これらの情報は、監査証跡用DB連携機能により収集され、データベースコネクタに渡される。【選択図】  図１
2008293153.tif 000002
【特許請求の範囲】
【請求項１】
データベースを管理し、該データベースへのアクセスの履歴を監査証跡として管理するデータベース管理装置にアクセスする記憶装置を備えた情報処理装置における監査証跡管理方法において、
利用者から送られた該利用者の利用者識別情報を含む要求の入力に応じて、当該要求を解析して該利用者識別情報を取得し、該解析結果に基づいて該要求を処理するプログラムを実行し、該実行したプログラムのプログラム識別情報を取得して該利用者識別情報と対応付けて該プログラム識別情報を前記データベースアクセス情報として前記記憶装置に格納し、前記データベースへアクセスする場合は前記データベースを管理する該データベース管理装置へ前記データベースアクセス情報を含む問合せ要求を生成して該データベース管理装置へ送信することを特徴とする監査証跡管理方法。
【請求項２】
前記プログラムの実行により設定された利用者識別情報を管理し、リクエスト識別情報とともにデータベースに出力する機能をさらに有することを特徴とする請求項１記載の監査証跡管理方法。
【請求項３】
利用者を認証する機能を有し、利用者の認証の際に取得した利用者識別情報を監査証跡用情報管理情報に設定することを特徴とする請求項２記載の監査証跡管理方法。
【請求項４】
前記プログラムにおける他プロセスまたは他スレッドへの呼び出しの際に、メッセージに利用者識別情報を含むスレッド情報を埋め込むことで呼び出し先のプロセスまたはスレッドに利用者識別情報を伝播することを特徴とする請求項２記載の監査証跡管理方法。
【請求項５】
利用者識別情報とともに利用者が設定した任意情報を監査証跡用情報管理機能で管理しデータベースに出力することで、出力された情報の参照を容易にする手段を備えることを特徴とする請求項２記載の監査証跡管理方法。
【請求項６】
データベースを管理し、該データベースへのアクセスの履歴を監査証跡として管理するデータベース管理装置にアクセスする記憶装置を備えた情報処理装置において、
利用者から送られた該利用者の利用者識別情報を含む要求の入力に応じて、当該要求を解析して該利用者識別情報を取得し、該解析結果に基づいて該要求を処理するプログラムを実行し、該実行したプログラムのプログラム識別情報を取得して該利用者識別情報と対応付けて該プログラム識別情報を前記データベースアクセス情報として前記記憶装置に格納し、前記データベースへアクセスする場合は前記データベースを管理する該データベース管理装置へ前記データベースアクセス情報を含む問合せ要求を生成して該データベース管理装置へ送信することを特徴とする情報処理装置。
【請求項７】
データベースを管理し、該データベースへのアクセスの履歴を監査証跡として管理するデータベース管理装置にアクセスする記憶装置を備えた情報処理装置における監査証跡管理プログラムにおいて、
利用者から送られた該利用者の利用者識別情報を含む要求の入力に応じて、当該要求を解析して該利用者識別情報を取得し、該解析結果に基づいて該要求を処理するプログラムを実行し、該実行したプログラムのプログラム識別情報を取得して該利用者識別情報と対応付けて該プログラム識別情報を前記データベースアクセス情報として前記記憶装置に格納し、前記データベースへアクセスする場合は前記データベースを管理する該データベース管理装置へ前記データベースアクセス情報を含む問合せ要求を生成して該データベース管理装置へ送信することを特徴とする監査証跡管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置において、その利用者によるアクセスの追跡が容易となる監査証跡を記録する監査証跡管理技術に関する。
【背景技術】
【０００２】
監査証跡とは、情報処理装置の利用者によるアクセスやプログラムの実行プロセスを明確にし、情報処理装置を含む業務プロセスの安全性や信頼性を証明する記録のことである。
【０００３】
監査証跡を取得する技術として、データベースがアクセスを行ったアカウントの情報を出力する方式（例えば、特許文献１に開示されているような技術）や、WEBブラウザへの操作ログ、アプリケーションサーバやデータベースサーバのログをそれぞれ収集し、それらの追跡処理を行うことで利用者を特定する方式（例えば、特許文献２に開示されているような技術）が採られていた。
【０００４】
【特許文献１】特開２００６−０４８５６２
【特許文献２】特開２００７−０４８２６６
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図２および図３に示す業務プログラムを稼動するためのアプリケーションサーバ(103)(114)(124)は、データベースを管理するデータベース管理システムＤＢＭＳと通信するためのデータベースコネクタ(105)(115)(125)を備える。さらに、そのデータベースコネクタによってデータベース(107)(117)(127)へのアクセスを実現し、そのようなコネクションをプーリングして管理している。そのため、特許文献１のような従来技術では、図２のように、利用者(101)(102)の指示により送られた要求に基づいてアプリケーションサーバ(103)により実行されるアプリケーション（プログラム）(104)が、DBMS(106)からデータベース(107)へアクセスする場合、データベース(107)に出力されるアカウント情報は‘DBuser’のようにアプリケーションサーバ(103)が管理するコネクションの情報となる。このように、情報処理装置の利用者を特定する情報を記録することができないという課題があった。
【０００６】
特許文献２のような従来技術では、情報処理装置における各処理部の履歴をそれぞれ取得し、データベース(107)(117)(127)へのアクセス日時や入力情報などをもとに追跡処理を行うことで各処理部への利用者を特定する。この際、各処理部における履歴を取得し、さらには利用者の情報を取得し、どの利用者が該当するかを判定する必要がある。また、履歴の追跡処理において、各処理部におけるタイマーにおける時刻のズレによりアクセス日時が一致するとは限らないこともあり、あいまい検索などの処理を行う必要が生じる可能性もある。そのため、監査情報としての信頼性を十分に保証できないという課題があった。
【０００７】
本発明の目的は、例えば図３のように、情報処理装置の利用者(111)(112)の要求によりアプリケーションサーバ(113)上で実行されるアプリケーション(114)がデータベースコネクタ(115)経由でDBMS(116)からデータベース(117)へアクセスした場合に、‘APuser01’や‘APuser02’のように、利用者を特定する情報を出力する機能を提供することにある。
また、例えば利用者(112)の要求によりアプリケーション(114)が他のアプリケーションサーバ(123)上のアプリケーション(124)を呼び出す場合にも、‘APuser02’のように利用者を特定する情報を出力する機能を提供することも同様に目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、以下の仕組みにより監査証跡用情報の出力機能を実現する。
利用者の要求により、アプリケーションからデータベースへのアクセスが行われる際、アプリケーションのスレッドIDをもとにリクエスト識別情報を取得し、これらの情報をデータベースへ出力し、
アプリケーションサーバにおいて、監査証跡用情報管理機能は利用者識別情報をスレッドIDに対応付けて保持する。利用者識別情報はアプリケーションから設定し、アプリケーションからデータベースへアクセスする際に、スレッドIDをもとに利用者識別情報とリクエスト識別情報を取得し、この情報もあわせてデータベースへ出力し、
認証の際に利用者識別情報を取得し、監査証跡用情報管理機能に設定することで、アプリケーションからの設定を不要にする仕組み。
リモート通信の際に、メソッドの処理情報と共に利用者識別情報をあわせて送信し、
監査証跡用管理機能で、利用者識別情報に加えて、例えば利用者の名前や所属などのアプリケーションから設定した任意情報を取得できるようにし、これらも含めてデータベースへ出力するようにする。
【発明の効果】
【０００９】
本発明によれば、アプリケーションプログラムが識別しているユーザ情報を監査証跡に含めることができるため、アプリケーションプログラムが識別しているユーザ情報の監査証跡を実現することが可能となる。
【発明を実施するための最良の形態】
【００１０】
図１に、本実施形態の全体構造を示す。本構造は、WEBブラウザ(301)、WEBサーバ(302)、サーバ(340)(360)、データベースサーバ(312)(332)で構成される。
サーバ(340)上には各処理部の実行基盤となるアプリケーションサーバ(303)と情報処理装置全体を管理するOS(300)で構成される。
アプリケーションサーバ(303)上の処理部は、利用者の操作を受け付けるコンテナ(304)、利用者の認証を行う認証機能(305)、操作に対応するロジックを実行するアプリケーション(306)、リクエスト識別情報を管理するリクエスト識別情報管理機能(307)、監査証跡連携機能（スレッド情報を管理する監査証跡用情報管理機能(308)、リクエスト情報とスレッド情報をデータベースコネクタ(311)へ渡す監査証跡用DB連携機能(309)）、他のアプリケーションサーバ(323)と通信を行う通信制御部(310)、データベースへのアクセスを管理するデータベースコネクタ(311)で構成される。
【００１１】
なお、認証機能(305)とアプリケーション(306)はコンテナ(304)上で、監査証跡用DB連携機能(309)はデータベースコネクタ(311)上で実行される。
データベースサーバ(312)は、データベース(314)に対する操作を行うDBMS(313)とデータを格納するデータベース(314)で構成される。
【００１２】
アプリケーションサーバ(303)上のアプリケーション（プログラム）(306)の実行により、他のアプリケーションサーバ(323)上のアプリケーション (326)を呼び出す場合は、通信制御部(310)からリモート呼び出しを行う。
【００１３】
リモート呼び出し先のサーバ(340)は、各処理部の実行基盤となるアプリケーションサーバ(323)と情報処理装置全体を管理するOS(400)で構成される。
【００１４】
アプリケーションサーバ(323)上の処理部は、コンテナ(324)、認証機能(325)、アプリケーション(326)、リクエスト識別情報管理機能(327)、監査証跡連携機能（監査証跡用情報管理機能(328)、監査証跡用DB連携機能(329)）、通信制御部 (330)、データベースコネクタ (331)で構成される。
【００１５】
なお、認証機能(325)とアプリケーション(326)はコンテナ(324)上で、監査証跡用DB連携機能(329)はデータベースコネクタ(331)上で実行される。
データベースサーバ(332)は、DBMS(333)とデータベース(334)で構成される。
【００１６】
図４に、サーバ(340)の詳細構造を示す。サーバ(340)はメモリ(401)、CPU(402)、通信インターフェース(403)から構成される。
【００１７】
メモリ(401)上には、アプリケーションサーバ(303)とOS(300)が格納されている。また、コンテナ(304)、認証機能(305)、アプリケーション(306)、リクエスト識別情報管理機能(307)、監査証跡連携機能（監査証跡用情報管理機能(308)、監査証跡用DB連携機能(309)）、通信制御部(310)、データベースコネクタ(311)、スレッドIDと利用者識別情報と任意情報を対応付けたスレッド情報(404)、アプリケーションのIPアドレスとプロセスIDと通信番号とスレッドIDを対応付けたリクエスト識別情報(405)、データベースアクセスの際にデータベースコネクタ(311)がDBMS(313)に渡すデータベース処理情報(406)もメモリ(401)上に格納されている。なお、サーバ(360)も同様の構造である。
【００１８】
図５に、データベースサーバ(312)の詳細構造を示す。データベースサーバ(312)はメモリ(501)、CPU(502)、通信インターフェース(503)、記憶装置(504)で構成される。
【００１９】
メモリ(501)上には、DBMS(313)が格納されており、記憶装置(504)には監査証跡の追跡を容易に行うための情報である監査証跡用情報(505)が格納されている。なお、データベースサーバ(332)も同様の構造である。
【００２０】
なお、図４と図５において、各処理部はワークスペースを持っており、このワークスペースを利用して一時的な情報を格納の格納や演算処理を行う。
図６に、利用者と利用者のリクエストを処理するスレッドのスレッドIDを関連付けるスレッド情報(404)のデータ構造を示す。スレッド情報(404)は、スレッド情報(404)を一意に特定できるスレッドID(1401)と、例えばユーザーIDなどの利用者を表す利用者識別情報(1402)と、例えば所属や名前などの利用者の特定に利用できる任意情報(1403)で構成される。
【００２１】
図７に、利用者からのリクエストを一意に特定できる情報の組合せと、そのリクエストを実行するスレッドのスレッドIDを関連付けるリクエスト識別情報(405)のデータ構造を示す。リクエスト識別情報(405)は、アプリケーションのIPアドレス(1501)、プロセスのプロセスID(1502)、該当処理の通信番号(1503)、スレッドID(1504)で構成される。
【００２２】
図８−１に、アプリケーションの実行によりデータベースへの処理要求があった場合に、データベースコネクタがDBMSに渡すデータベースアクセス情報(406)のデータ構造を示す。データベースアクセス情報(406)は、データベースへの処理内容を表すSQL情報(1701)と、アプリケーションのIPアドレス(1702)、プロセスID(1703)、通信番号(1704)、利用者識別情報(1705)、任意情報(1706)で構成される。本発明は、データベースアクセス情報(406)のようにSQL情報(1701)と負荷情報を受取ることのできるDBMSとDBを対象とする。
【００２３】
図８−２に、利用者からのリクエストを一意に特定できる情報の組合せと、利用者からデータベースへのアクセスの履歴を関連付ける監査証跡用情報(505)のデータ構造を示す。監査証跡用情報(505)はアプリケーションのIPアドレス(1601)、プロセスID(1602)、通信番号(1603)、利用者識別情報(1604)、任意情報(1605)、さらに、データベースの提供機能により取得するスレッドID(1606)、プログラム実行日(1607)、プログラム実行時間(1608)、プログラム対象テーブル名(1609)、実行したSQL文(1610)、実行したSQL文のデータ(1611)で構成される。
【００２４】
この監査証跡用情報(505)から、アプリケーションを利用してデータベースにアクセスした監査証跡を確認することができる。例えば、監査証跡用情報(505)のレコード(1621)では、テーブル‘tbl01’に対して年月日‘yyyy/mm/dd’の実行時間‘hh:mm:ss’にSQLとそのデータ‘sql01’/‘data01’を、データベースアクセス処理におけるスレッドId‘1796’により実行したのは、利用者識別情報‘user01’で任意情報‘sales’の利用者であることが読み取れる。また、そのアクセスの際に実行されたアプリケーションのIPアドレス‘xxx.xxx.xxx.001’で、プロセスID‘3628’、通信番号‘0x0000000000000001’であり、これらの値から利用者識別情報や任意情報などを特定することもできる。その通信番号の変わりにスレッドIDを用いても同様の効果を得ることができる。
【００２５】
図９に、本実施形態の概要フローを示す。利用者がアプリケーションへの操作を開始した後、まずリクエスト識別情報の設定(601)を行う。さらに、スレッド情報を構成する利用者識別情報の設定(602)と任意情報の設定(603)を行い、アプリケーションの処理(604)を実行する。
【００２６】
図１０に、図９における破線部 (605)の詳細フローを示す。これは、利用者がアプリケーションを利用する場合の、利用者の操作要求がアプリケーション(306)に達するまでの流れである。なお、認証についてはLDAP認証を例として記述する。利用者がWEBブラウザ(301)へ操作を行うと、WEBブラウザは利用者がWEBブラウザ(301)に入力した操作要求と利用者識別情報をHTTPリクエストに入れてWEBサーバ(302)に送信する。次に、WEBサーバ(302)は利用者の操作要求と利用者識別情報を含むリクエストをコンテナ(304)に送信する。
【００２７】
コンテナ(304)がOS(300)に出したプロセスIDとスレッドIDの取得依頼に対して、OS(300)はプロセスIDとスレッドIDをコンテナ(304)に返す。コンテナ(304)は取得したプロセスIDとスレッドIDをリクエスト識別情報管理機能(307)に送信する。次に、リクエスト識別情報管理機能(307)がOS(300)に出したアプリケーションサーバ(303)のIPアドレスの取得依頼に対して、OS(300)はIPアドレスをリクエスト識別情報管理機能(307)に返す。次に、リクエスト識別情報管理機能(307)は自身が保持する通信番号を取得する。さらに、リクエスト識別情報管理機能(307)は、取得したプロセスIDとIPアドレスと通信番号とスレッドIDを対応付けてリクエスト識別情報(405)に設定する。
【００２８】
この処理の後、コンテナ(304)は利用者識別情報を含む認証情報を認証機能(305)に送信する。認証機能(305)は受取った認証情報により認証を実行する。このとき、認証情報をLDAPサーバに送信し、アプリケーション(306)の利用が可能な利用者であるかを問い合わせ、LDAPサーバの判定後に認証機能(305)は判定結果を受取る。次に、監査証跡用情報管理機能(308)がOS(300)に出したスレッドID取得依頼に対して、OS(300)はスレッドIDを監査証跡用情報管理機能(308)に返す。さらに、監査証跡用情報管理機能(308)は、スレッドIDと利用者識別情報を対応付けてスレッド情報(404)に設定する。
【００２９】
認証OKの結果であれば、コンテナ(304)はアプリケーション(306)へリクエストを送信する。次に、アプリケーション(306)は任意情報を監査証跡用情報管理機能(308)に送信する。次に、監査証跡用情報管理機能(308)がOS(300)に出したスレッドID取得依頼に対して、OS(300)はスレッドIDを監査証跡用情報管理機能(308)に返す。さらに、監査証跡用情報管理機能(308)はスレッドIDと任意情報を対応付けてスレッド情報(404)に設定する。
【００３０】
図１１に、図９における破線部 (605)詳細フローの例を示す。これは、図６のレコード(1421)と図７のレコード(1521)の値が設定されるまでの流れである。
利用者がWEBブラウザ(301)へ操作を行うと、WEBブラウザは利用者がWEBブラウザ(301)に入力した操作要求と利用者識別情報‘user01’をHTTPリクエストに入れてWEBサーバ(302)に送信する。次に、WEBサーバ(302)は利用者の操作要求と利用者識別情報‘user01’を含むリクエストをコンテナ(304)に送信する。
【００３１】
コンテナ(304)がOS(300)に出したプロセスIDとスレッドIDの取得依頼に対して、OS(300)はプロセスID‘3628’とスレッドID‘2435’をコンテナ(304)に返す。コンテナ(304)は取得したプロセスID‘3628’とスレッドID‘2435’をリクエスト識別情報管理機能(307)に送信する。次に、リクエスト識別情報管理機能(307)がOS(300)に出したアプリケーションサーバ(303)のIPアドレスの取得依頼に対して、OS(300)はIPアドレス‘xxx.xxx.xxx.001’をリクエスト識別情報管理機能(307)に返す。次に、リクエスト識別情報管理機能(307)は自身が保持する通信番号‘0x0000000000000001’を取得する。さらに、リクエスト識別情報管理機能(307)は、取得したプロセスID‘3628’とIPアドレス‘xxx.xxx.xxx.001’と通信番号‘0x0000000000000001’とスレッドID‘2435’を対応付けてリクエスト識別情報(405)に設定する。
【００３２】
この処理の後、コンテナ(304)は利用者識別情報‘user01’を含む認証情報を認証機能(305)に送信する。認証機能(305)は受取った認証情報により認証を実行する。このとき、認証情報をLDAPサーバに送信し、アプリケーション(306)の利用が可能な利用者であるかを問い合わせ、LDAPサーバの判定後に認証機能(305)は判定結果を受取る。次に、監査証跡用情報管理機能(308)がOS(300)に出したスレッドID取得依頼に対して、OS(300)はスレッドID‘2435’を監査証跡用情報管理機能(308)に返す。さらに、監査証跡用情報管理機能(308)は、スレッドID‘2435’と利用者識別情報‘user01’を対応付けてスレッド情報(404)に設定する。
【００３３】
認証OKの結果であれば、コンテナ(304)はアプリケーション(306)へリクエストを送信する。次に、アプリケーション(306)は任意情報‘sales’を監査証跡用情報管理機能(308)に送信する。次に、監査証跡用情報管理機能(308)がOS(300)に出したスレッドID取得依頼に対して、OS(300)はスレッドID‘2435’を監査証跡用情報管理機能(308)に返す。さらに、監査証跡用情報管理機能(308)はスレッドID‘2435’と任意情報‘sales’を対応付けてスレッド情報(404)に設定する。
【００３４】
図１０、図１１に示した処理フローにおいて、スレッドIDは一意である。そのため、リクエスト識別情報管理機能(307)が保持するリクエスト識別情報(405)と、監査証跡用情報管理機能(308)が保持するスレッド情報(404)はスレッドIDを介して関連付けが可能であるため、これらの情報から監査証跡用情報(505)を作成することができる。
【００３５】
図１０、図１１のように作成されたスレッド情報(404)とリクエスト識別情報(405)がデータベースに出力されるまでのデータの流れを図１２に示す。アプリケーション(306)からデータベース(314)へのアクセス要求があると、監査証跡用DB連携機能(309)は、リクエスト識別情報管理機能(307)からリクエスト識別情報(405)を、監査証跡用情報管理機能(308)からスレッド情報(404)を取得する。監査証跡用DB連携機能(309)は、リクエスト識別情報(405)とスレッド情報(404)をデータベースコネクタ(311)に渡す。データベースコネクタ(311)は、リクエスト識別情報(405)とスレッド情報(404)をデータベースの処理情報に含めてDBMS(333)に渡す。DBMS(313)はデータベース(314)への処理を行い、出力機能が提供する出力情報と共にデータベース(314)へ出力する。
【００３６】
同様に、図１２において、リモート通信により他のアプリケーションサーバ(323)上のアプリケーション(326)を呼び出す場合は、利用者識別情報と任意情報を伝播するためにスレッド情報(404)を呼び出し先の通信制御部(330)に送信する。さらに通信制御部(330)は受取ったスレッド情報(404)を呼び出し先の監査証跡用情報管理機能(328)に渡す。リモート通信において、リクエスト識別情報(405)は呼び出し先へ送信せず、送信先のアプリケーション(326)のIPアドレスなどを新たに生成し、新規にリクエスト識別情報(405)を作成する。
【００３７】
図１３に、アプリケーションの処理(604)でデータベースアクセス要求があった場合の処理フローを示す。まず、アプリケーション(306)からデータベース(314)へのアクセス依頼(801)があると、監査証跡用情報管理機能(308)はスレッド情報を取得(802)し、さらにそのスレッド情報(404)に対応するリクエスト識別情報(404)の取得(803)を行う。次に、監査証跡用情報管理機能(308)が管理するスレッド情報(404)に利用者識別情報があるか判定し(805)、利用者識別情報が設定されている場合は、データベースへのアクセスを行い、監査証跡用情報(505)をデータベースへ出力する(806)。スレッド情報(404)に利用者識別情報がなかった場合は、利用者識別情報に固定文字列、任意情報に‘NULL’を設定し(807)、監査証跡用情報をデータベースへ出力する(806)。このように、利用者識別情報がない場合、例えば定期的なバッチ処理など利用者を特定しない処理を実行した場合に、固定文字列を出力することで、それらを明確にすることができる。
図１４に、データベースアクセスにおける監査証跡用情報の出力について処理フローを示す。これは、アプリケーション(306)の処理要求によりデータベース(314)へアクセスするまでの流れである。この処理フローは、データベースへのアクセス依頼(801)、スレッド情報の取得(802)、リクエスト識別情報の取得(803)、スレッド情報の判定(805)、データベースへのアクセス(806)の処理フローに該当する。
【００３８】
アプリケーション(306)が処理の要求を含むデータベースアクセス情報(406)と共に、データベースコネクタ(311)にデータベースへのアクセス依頼を出すと、データベースコネクタ(311)は監査証跡用DB連携機能(309)に監査証跡用情報の取得依頼を出す。
【００３９】
次に、監査証跡用DB連携機能(309)がOS(300)に出したスレッドIDの取得依頼に対して、OS(300)はスレッドIDを監査証跡用DB連携機能(309)に返す。次に、監査証跡用DB連携機能(309)が監査証跡用情報管理機能(308)に出したスレッド情報(404)の取得依頼に対して、監査証跡用情報管理機能(308)はスレッド情報(404)を監査証跡用DB連携機能(309)に返す。
【００４０】
さらに、監査証跡用DB連携機能(309)がリクエスト識別情報管理機能(307)に出したリクエスト識別情報(405)の取得依頼に対して、リクエスト識別情報管理機能(307)はリクエスト識別情報(405)を監査証跡用DB連携機能(309)に返す。
監査証跡用DB連携機能(309)はスレッド情報(404)の利用者情報が設定されているかを判定し、設定されていれば、リクエスト識別情報(405)とスレッド情報(404)をデータベースコネクタ(311)に返す。
【００４１】
さらに、データベースコネクタ(311)はアプリケーションから要求のあったデータベースアクセス情報(406)にリクエスト識別情報(405)とスレッド情報(404)を含め、DBMS(313)へデータベースのアクセス依頼を出す。次に、DBMS(313)はデーデータベース(314)への処理を行い、データベースアクセス情報(406)に含まれるリクエスト識別情報(405)とスレッド情報(404)をデータベース(314)で提供される機能の出力情報とあわせて、監査証跡用情報(505)として出力する。
このように監査証跡用情報(505)データベース(314)へ出力することができる。
【００４２】
図１２におけるリモート通信の例として、図１５にRMI-IIOPを利用した場合のリモート通信の処理フローを示す。これは、呼び出し元のアプリケーション(306)から通信制御部(310)(330)を経由し、呼び出し先のアプリケーション(326)の処理を呼び出した際に、スレッド情報(404)が呼び出し先アプリケーションサーバ(323)上の監査証跡用情報管理機能(328)に伝播されるまでの流れである。アプリケーション(306)がリモート通信により他のアプリケーションサーバ(323)上のアプリケーション(326)を呼び出す場合、アプリケーション(306)は監査証跡用情報管理機能(308)にメソッド呼び出しを行う。次に、監査証跡用情報管理機能(308)は通信制御部(310)に、サービスID‘0x48495404’、スレッド情報(404)、メソッド情報の設定とメッセージ送信を依頼する。通信制御部(310)は、サービスID‘0x48495404’、スレッド情報(404)、メソッド情報を含むメッセージ情報をGIOPメッセージに設定し、GIOPメッセージを呼び出し先の通信制御部(330)に送信する。
【００４３】
呼び出し先アプリケーションサーバ(323)では、まず通信制御部(330)が通信制御部(310)から受取ったメッセージのスレッド情報(404)とメソッド情報をコンテナ(324)に送信する。次に、コンテナ(324)がOS(400)に出したプロセスIDとスレッドIDの取得依頼に対して、OS(400)はプロセスIDとスレッドIDをコンテナ(324)に返す。コンテナ(324) は取得したプロセスIDとスレッドIDをリクエスト識別情報管理機能(327)に送信する。次に、リクエスト識別情報管理機能(327)がOS(400)に出したIPアドレスの取得依頼に対して、OS(400)はIPアドレスをリクエスト識別情報管理機能(327)に返す。地祇に、リクエスト識別情報管理機能(327)は自身が保持する通信番号を取得する。さらに、リクエスト識別情報管理機能(327)は、取得したプロセスIDとIPアドレスと通信番号とスレッドIDを対応付けてリクエスト識別情報(405)に設定する。
【００４４】
この処理の後、コンテナ(324)は監査証跡用情報管理機能(328)にスレッド情報作成を依頼する。次に、監査証跡用情報管理機能(328)はサービスID判定を行い、その値が‘0x48495404’であれば、監査証跡用情報管理機能(328)はOS(400)にスレッドIDの取得依頼を出し、OS(400)はスレッドIDを監査証跡用情報管理機能(328)に返す。さらに、監査証跡用情報管理機能(328)はスレッドIDと利用者識別情報と任意情報を対応付けてスレッド情報(404)に設定する。そして、コンテナ(324)はアプリケーション(326)にメソッド情報を送信し、以降はアプリケーションの処理となる。
【００４５】
このように、アプリケーションサーバ間のリモート通信においてスレッド情報(404)の伝播を行うことで、複数のアプリケーションサーバ(323)に跨るシステムにおいても、利用者を特定するための情報を必要なアプリケーションサーバに引き継いでいくことができる。
【図面の簡単な説明】
【００４６】
【図１】システムの全体構成
【図２】従来技術の課題
【図３】本発明の原理
【図４】アプリケーションサーバ(303)の構成
【図５】データベースサーバ(312)の構成
【図６】スレッド情報(404)の一例
【図７】リクエスト識別情報(405)の一例
【図８−１】データベースアクセス情報(406)の一例
【図８−２】監査証跡用情報(505)の一例
【図９】概略処理フロー
【図１０】リクエスト識別情報とスレッド情報の設定(605)詳細フロー
【図１１】リクエスト識別情報とスレッド情報の設定(605)詳細フロー
【図１２】スレッド情報とリクエスト識別情報のデータの流れ
【図１３】アプリケーションの処理(604)でデータベースアクセス要求があった場合の処理フロー
【図１４】データベースアクセスにおける監査証跡用情報の出力の一例
【図１５】RMI-IIOPを利用したリモート通信の処理フロー
【符号の説明】
【００４７】
301  WEBブラウザ
302  WEBサーバ
303  アプリケーションサーバ
304  コンテナ
305  認証機能
306  アプリケーション
307  リクエスト識別情報管理機能
308  監査証跡用情報管理機能
309  監査証跡用DB連携機能
310  通信制御部
311  データベースコネクタ
312  データベースサーバ
313  DBMS
314  データベース
323  アプリケーションサーバ
324  コンテナ
325  認証機能
326  アプリケーション
327  リクエスト識別情報管理機能
328  監査証跡用情報管理機能
329  監査証跡用DB連携機能
330  通信制御部
331  データベースコネクタ
332  データベースサーバ
333  DBMS
334  データベース
404  スレッド情報
405  リクエスト識別情報
406  データベースアクセス情報
505  監査証跡用情報
【図１】
2008293153.tif 000003
【図２】
2008293153.tif 000004
【図３】
2008293153.tif 000005
【図４】
2008293153.tif 000006
【図５】
2008293153.tif 000007
【図６】
2008293153.tif 000008
【図７】
2008293153.tif 000009
【図８−１】
2008293153.tif 000010
【図８−２】
2008293153.tif 000011
【図９】
2008293153.tif 000012
【図１０】
2008293153.tif 000013
【図１１】
2008293153.tif 000014
【図１２】
2008293153.tif 000015
【図１３】
2008293153.tif 000016
【図１４】
2008293153.tif 000017
【図１５】
2008293153.tif 000018