(57)【要約】【課題】アプリケーションの構成に依存することなく、受け付けたリクエストごとにそのリクエストを送出した利用者を特定する。【解決手段】アプリケーションサーバ１００において、クライアント３０から送られてくるリクエスト３００を受け付け、受け付けたリクエスト３００にリクエスト識別子を付与し、処理の履歴をリクエスト識別子と対応づけた情報であるトレース情報を生成し、アプリケーション１１１からの要求に応じて、セッション識別子と利用者識別子とを含むセッション情報５１０を生成し、クライアント３０から受け付けたリクエスト３００にセッション識別子が含まれている場合に、当該セッション識別子に対応する利用者識別子を取得し、利用者識別子と当該リクエスト３００に付与したリクエスト識別子とを対応づけた情報であるリクエスト利用者情報を生成するようにする。【選択図】図２
2010272081.tif 000002
【特許請求の範囲】
【請求項１】
サーバのアプリケーションに向けてクライアントから送信されるリクエストを送信した利用者を特定する情報処理装置であって、
クライアントからアプリケーションに送信されるリクエストを受け付け、受け付けた前記リクエストに個々の前記リクエストを識別するためのリクエスト識別子を付与するリクエスト受付部と、
前記サーバにおいて実行される処理の履歴と前記リクエスト識別子とを対応させたトレース情報を生成するトレース情報出力部と、
前記アプリケーションからの要求に応じて、通信セッションを識別するためのセッション識別子と利用者の識別に用いる情報である利用者識別子とを含むセッション情報を生成するセッション管理部と、
前記クライアントから受け付けた前記リクエストに前記セッション識別子が含まれている場合に、前記セッション情報から当該セッション識別子に対応する前記利用者識別子を取得し、当該利用者識別子と当該リクエストの前記リクエスト識別子とを対応づけた情報であるリクエスト利用者情報を生成する利用者情報識別部と
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記利用者情報識別部は、
前記セッション管理部が、前記リクエストに応じた処理を実行中の前記アプリケーションの要求により前記セッション情報を生成するに際し、当該セッション情報に前記利用者識別子が含まれている場合に、当該利用者識別子と当該リクエストに付与されている前記リクエスト識別子とを対応づけることにより前記リクエスト利用者情報を生成する
ことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記トレース情報出力部は、
前記リクエストについて処理を開始する場合にその旨を示す前記トレース情報を生成し、前記リクエストについて処理を終了する場合にその旨を示す前記トレース情報を生成することを特徴とする情報処理装置。
【請求項４】
請求項２に記載の情報処理装置であって、
前記セッション情報に含まれている情報の中から前記利用者識別子を特定するための情報である利用者識別子定義情報を記憶し、
前記利用者情報識別部は、前記利用者識別子定義情報に基づき前記セッション情報に前記利用者識別子が含まれているか否かを判断する
ことを特徴とする情報処理装置。
【請求項５】
請求項２に記載の情報処理装置であって、
前記利用者識別子が、前記利用者のユーザＩＤであることを特徴とする情報処理装置。
【請求項６】
サーバのアプリケーションに向けてクライアントから送信されるリクエストを送信した利用者を特定する方法であって、
情報処理装置が、
クライアントからアプリケーションに送信されるリクエストを受け付け、受け付けた前記リクエストに個々の前記リクエストを識別するためのリクエスト識別子を付与するステップと、
前記サーバにおいて実行される処理の履歴と前記リクエスト識別子とを対応させたトレース情報を生成するステップと、
前記アプリケーションからの要求に応じて、通信セッションを識別するためのセッション識別子と利用者の識別に用いる情報である利用者識別子とを含むセッション情報を生成するステップと、
前記クライアントから受け付けた前記リクエストに前記セッション識別子が含まれている場合に、前記セッション情報から当該セッション識別子に対応する前記利用者識別子を取得し、当該利用者識別子と当該リクエストの前記リクエスト識別子とを対応づけた情報であるリクエスト利用者情報を生成するステップと
を実行する
ことを特徴とするリクエストを送信した利用者の特定方法。
【請求項７】
請求項６に記載のリクエストを送信した利用者の特定方法であって、
前記情報処理装置が、さらに
前記リクエストに応じた処理を実行中の前記アプリケーションの要求により前記セッション情報を生成するに際し、当該セッション情報に前記利用者識別子が含まれている場合に、当該利用者識別子と当該リクエストに付与されている前記リクエスト識別子とを対応づけることにより前記リクエスト利用者情報を生成するステップを実行する
ことを特徴とするリクエストを送信した利用者の特定方法。
【請求項８】
請求項６に記載のリクエストを送信した利用者の特定方法であって、
前記情報処理装置が、さらに
前記リクエストについて処理を開始する場合にその旨を示す前記トレース情報を生成し、前記リクエストについて処理を終了する場合にその旨を示す前記トレース情報を生成するステップを実行する
ことを特徴とするリクエストを送信した利用者の特定方法。
【請求項９】
請求項６に記載のリクエストを送信した利用者の特定方法であって、
前記情報処理装置が、さらに
前記セッション情報に含まれている前記利用者識別子を特定するための情報である利用者識別子定義情報を記憶するステップと、
前記利用者識別子定義情報に基づき前記セッション情報に前記利用者識別子が含まれているか否かを判断するステップと
を実行する
ことを特徴とするリクエストを送信した利用者の特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及びリクエストを送信した利用者の特定方法に関し、特にアプリケーションの構成に依存することなく、クライアントからサーバのアプリケーションにリクエストを送信した利用者を特定するための技術に関する。
【背景技術】
【０００２】
利用者がＷｅｂブラウザなどのクライアントを利用して送出したリクエストを受け付けて処理を実行するアプリケーションサーバにおいて、システム障害などの障害が発生した場合には、トレース情報を利用して各リクエストの処理がどこまで完了しているかを確認することができる。トレース情報には、例えばリクエストの処理が開始又は終了した日時、アプリケーションを構成しているコンポーネントが呼び出されもしくは呼び出しから戻った日時、データベースなどのバックエンドシステムを呼び出した時点及び呼び出しから戻った時点など、リクエストを処理する過程で実行される個々の処理の履歴などの情報が含まれている。
【０００３】
アプリケーションサーバにおいて、例えば複数の利用者からのリクエストを同時に処理している際に障害が発生した場合に、どの利用者の処理が正常に完了しているか否かを確認しなければならないことがある。そのような場合には、リクエストを送出した利用者を特定できる必要があるが、トレース情報によってはリクエストを送出した利用者を特定することまではできない。
【０００４】
これに関し、例えば特許文献１には、アプリケーションサーバにおいて、利用者の要求に応じてアプリケーションからデータベースへのアクセスが行われる際、スレッド情報とリクエスト識別情報を取得し、これらの情報をデータベースコネクタに渡し、データベースの出力機能により出力される情報と共にデータベースへ出力することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２９３１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで上記特許文献１に記載された技術によってリクエストの送出元の利用者を特定するには、図１０に示ように、アプリケーションサーバ１００で動作するアプリケーション１１１が認証機能１０１１を利用する構成になっている必要がある。
【０００７】
しかしサービスの提供者や提供内容、提供方法などによりアプリケーション１１１の構成や認証機能の構成は様々であるため、特許文献１に記載された技術は必ずしも全てのアプリケーションに共通に適用することができない。
【０００８】
本発明はこのような課題に鑑みてなされたものであり、アプリケーションの構成に依存することなく、クライアントからアプリケーションにリクエストを送信した利用者を特定することが可能な、情報処理装置、及びリクエストを送信した利用者の特定方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための、本発明における主たる発明の一つは、
サーバのアプリケーションに向けてクライアントから送信されるリクエストを送信した利用者を特定する情報処理装置であって、
クライアントからアプリケーションに送信されるリクエストを受け付け、受け付けた前記リクエストに個々の前記リクエストを識別するためのリクエスト識別子を付与するリクエスト受付部と、
前記サーバにおいて実行される処理の履歴と前記リクエスト識別子とを対応させたトレース情報を生成するトレース情報出力部と、
前記アプリケーションからの要求に応じて、通信セッションを識別するためのセッション識別子と利用者の識別に用いる情報である利用者識別子とを含むセッション情報を生成するセッション管理部と、
前記クライアントから受け付けた前記リクエストに前記セッション識別子が含まれている場合に、前記セッション情報から当該セッション識別子に対応する前記利用者識別子を取得し、当該利用者識別子と当該リクエストの前記リクエスト識別子とを対応づけた情報であるリクエスト利用者情報を生成する利用者情報識別部と
を備えることとする。
【００１０】
本発明の情報処理装置は、サーバがクライアントからリクエストを受け付けた際、受け付けたリクエストにセッション識別子が含まれている場合に、セッション情報から当該セッション識別子に対応する利用者識別子を取得し、取得した利用者識別子と当該リクエストのリクエスト識別子とを対応づけた情報であるリクエスト利用者情報を生成するので、アプリケーションの構成に依存することなく、トレース情報における各リクエストを送出した利用者を特定することができる。
【００１１】
本発明の他の一つは、上記情報処理装置であって、
前記利用者情報識別部は、前記セッション管理部が、前記リクエストに応じた処理を実行中の前記アプリケーションの要求により前記セッション情報を生成するに際し、当該セッション情報に前記利用者識別子が含まれている場合に、当該利用者識別子と当該リクエストに付与されている前記リクエスト識別子とを対応づけることにより前記リクエスト利用者情報を生成することとする。
【００１２】
本発明によれば、利用者情報識別部は、リクエストに応じた処理を実行中のアプリケーションの要求によりセッション情報を生成するに際し、当該セッション情報に利用者識別子が含まれている場合に、当該利用者識別子と当該リクエストに付与されているリクエスト識別子とを対応づけることによりリクエスト利用者情報を生成する。このように、本発明によれば、アプリケーションの構成に依存することなく、トレース情報における各リクエストを送出した利用者を確実に特定することができる。また本発明によれば、リクエスト利用者情報は、アプリケーションの実行中においても生成され、これにより確実に各リクエストを送出した利用者を特定することができる。
【００１３】
本発明の他の一つは、上記情報処理装置であって、
前記トレース情報出力部は、前記リクエストについて処理を開始する場合にその旨を示す前記トレース情報を生成し、前記リクエストについて処理を終了する場合にその旨を示す前記トレース情報を生成することとする。
【００１４】
本発明によれば、リクエストに関する処理の開始時および終了時にその旨を示すトレース情報が自動的に生成されるので、多数のトレース情報の中から個々のリクエストに対応するリクエストに対応するトレース情報を容易に特定することができるようになる。
【００１５】
本発明の他の一つは、上記情報処理装置であって、
前記セッション情報に含まれている前記利用者識別子を特定するための情報である利用者識別子定義情報を記憶し、前記利用者情報識別部は、前記利用者識別子定義情報に基づき前記セッション情報に前記利用者識別子が含まれているか否かを判断することとする。
【００１６】
本発明によれば、利用者識別子定義情報を個々のアプリケーションについて用意することで、アプリケーションの構成に依存することなくセッション情報に利用者識別子が含まれているかを判断することができる。
【００１７】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【００１８】
本発明によれば、アプリケーションの構成に依存することなく、リクエストを送信した利用者を特定することが可能になる。
【図面の簡単な説明】
【００１９】
【図１Ａ】情報処理システム１の概略的な構成を示す図である。
【図１Ｂ】クライアント３０又はサーバ１００のハードウエアとして利用可能なコンピュータ５０の一例を示す図である。
【図２】サーバ１００において実現される主な機能、及びサーバ１００が管理する主なデータを示す図である。
【図３】クライアント３０からサーバ１００に送信されてくるリクエスト３００のデータ構造を示す図である。
【図４】トレース情報テーブル１２１の一例を示す図である。
【図５】セッション情報テーブル１２２の一例を示す図である。
【図６】リクエスト利用者情報テーブル１２３の一例を示す図である。
【図７】利用者識別子定義情報１２４の一例を示す図である。
【図８】リクエスト応答処理Ｓ８００を説明するシーケンス図である。
【図９】利用者情報識別処理Ｓ８２２の詳細を説明するフローチャートである。
【図１０】特許文献１におけるアプリケーションサーバの機能構成を説明する図である。
【発明を実施するための形態】
【００２０】
以下、実施の形態について図面を参照しつつ説明する。図１Ａに実施の形態として説明する情報処理システム１の構成を示している。同図に示すように、この情報処理システム１は、利用者２によって操作される一台以上のクライアント３０と、クライアント３０と通信ネットワーク５を介して通信可能に接続するサーバ１００（情報処理装置）とを含んで構成されている。
【００２１】
通信ネットワーク５は、例えばＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネットである。クライアント３０とサーバ１００とは、通信ネットワーク５を介して通信プロトコル（ＴＣＰ／ＩＰ、ＨＴＴＰ（HyperText Transfer Protocol)）に従い通信を行う。
【００２２】
クライアント３０及びサーバ１００は、例えばパーソナルコンピュータ、オフィスコンピュータ、メインフレームなどのコンピュータである。サーバ装置１００ではアプリケーションが動作している。クライアント３０は、利用者２の操作に応じて、処理を実行させるためのリクエストをサーバ１００で動作するアプリケーションに送信する。
【００２３】
クライアント３０又はサーバ１００のハードウエアとして利用可能なコンピュータ５０の一例を図１Ｂに示している。同図に示したコンピュータ５０は、ＣＰＵ５１（CPU:Central Processing Unit）、メモリ５２（ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ等）、記憶装置５３（ハードディスク、半導体記憶装置（SSD:Solid State Drive）等）、利用者の操作入力を受け付ける入力装置５４（キーボード、マウス等）、利用者に情報を提示する出力装置５５（液晶モニタ、プリンタ等）、及び通信インタフェース５６（ＮＩＣ（Network Interface Card、無線通信モジュール等）を備えている。
【００２４】
図２に本実施形態のサーバ１００において実現される主な機能、及びサーバ１００が管理する主なデータを示している。同図に示すように、サーバ１００は、通信部１１０、一つ以上のアプリケーション１１１、リクエスト受付部１１２、トレース情報出力部１１３、セッション管理部１１４、及び利用者情報識別部１１５を機能として備える。尚、これらの機能は、サーバ１００が備えるハードウエアによって、又はＣＰＵ５１が、メモリ５２もしくは記憶装置５３に記憶されているプログラム又はデータを読み出して実行することによって実現される。
【００２５】
同図に示すように、サーバ１００は、トレース情報テーブル１２１、セッション情報テーブル１２２、リクエスト利用者情報テーブル１２３、及び利用者識別子定義情報１２４を管理している。これらのデータは、例えばメモリ５２又は記憶装置５３に保持されている。尚、これらのデータは、例えばＤＢＭＳ（DataBase Management System）によりデータベースのテーブルとして管理されていてもよい。
【００２６】
同図において、通信部１１０は、クライアント３０と所定の通信プロトコルに従って通信を行う。通信部１１０は、Ｗｅｂサーバの機能を提供し、ｈｔｔｐプロトコルに従って、クライアント３０からのリクエスト３００（ｈｔｔｐリクエスト）の受信、及びクライアント３０へのレスポンス３５０（ｈｔｔｐレスポンス）の送信を行う。通信部１１０はクライアント３０とリクエスト受付部１１２との間で行われるデータの授受を仲介する。
【００２７】
アプリケーション１１１は、クライアント３０から送られてくるリクエスト３００に応じてクライアント３０にサービスを提供する。アプリケーション１１１によって提供されるサービスは、例えば企業などの組織における財務、経理、会計、請求書発行、在庫管理、購買仕入管理、プロジェクト管理などである。
【００２８】
クライアント３０からサーバ１００に送信されてくるリクエスト３００は、例えば図３に示すデータ構造を有している。同図に示すように、リクエスト３００には、当該リクエスト３００に応じてサーバ１００で実行されるアプリケーション１１１を特定する情報であるアプリケーションＩＤ３１１、セッションを特定する識別子であるセッションＩＤ３１２、アプリケーション１１１に対する指示の情報３１３などが含まれる。
【００２９】
尚、セッションＩＤ３１２の値は、セッションの開始時（例えばアプリケーション１１１へのログイン時）に、リクエスト３００に対して、サーバ１００のセッション管理部１１４が、クライアント３０とサーバ１００との間で保持される通信のセッションごとに付与するセッション（通信セッション）の識別子である。
【００３０】
アプリケーション１１１は、例えばクライアント３０がログインしてからログアウトするまで、クライアント３０との間でセッションを保持する。従って、初回のリクエスト３００についてはそのセッションＩＤ３１２に値は設定されず、同セッションの２回目以降のリクエスト３００のセッションＩＤ３１２には値が設定されることになる。
【００３１】
リクエスト受付部１１２は、クライアント３０から送られてくるリクエスト３００を、通信部１１０を介して受け付ける。またリクエスト受付部１１２は、リクエスト３００についての処理が終了した後、通信部１１０を介してクライアント３０へのレスポンス３５０をクライアント３０に返す。またリクエスト受付部１１２は、クライアント３０からのリクエスト３００を受け付けると、受け付けたリクエスト３００を一意に識別するための識別子（以下、リクエストＩＤと称する。）を付与する。
【００３２】
またリクエスト受付部１１２は、リクエスト３００を受け付けると、受信したリクエスト３００の処理を開始する旨、又は、受信したリクエスト３００の処理を終了する旨を示す履歴情報の記録要求をトレース情報出力部１１３に送信する。リクエスト受付部１１２は、受信したリクエスト３００の処理を開始する旨の履歴情報の記録要求を行った後、受け付けたリクエスト３００に対応するアプリケーション１１１の処理を起動させる。
【００３３】
またリクエスト受付部１１２は、アプリケーション１１１がリクエスト３００についての処理が実行される前に、利用者情報識別部１１５に、後述する利用者情報の識別要求（以下、利用者情報識別要求と称する。）を送信する。
【００３４】
トレース情報出力部１１３は、サーバ１００で実行される処理（イベント）の履歴情報（以下、トレース情報４１０と称する。）をトレース情報テーブル１２１に記録する。またトレース情報出力部１１３は、リクエスト受付部１１２からの前述の記録要求に応じて、リクエスト３００の処理を開始もしくは終了する旨を示すトレース情報４１０を、トレース情報テーブル１２１に記録する。
【００３５】
図４にトレース情報テーブル１２１の一例を示している。トレース情報テーブル１２１は、日時４１１、イベントＩＤ４１２、及びリクエストＩＤ４１３の各項目を有する１つ以上のレコードで構成されている。トレース情報テーブル１２１の１つのレコードは１つのトレース情報４１０に対応している。
【００３６】
各レコードの日時４１１には、トレース情報テーブル１２１にそのレコードが記録された日時が設定される。イベントＩＤ４１２には、処理を特定する情報（処理ポイントを識別する情報）であるイベント識別子（以下、イベントＩＤと称する。）が設定される。リクエストＩＤ４１３には前述したリクエストＩＤが設定される。
【００３７】
セッション管理部１１４は、アプリケーション１１１から送られてくる、セッションに関する情報であるセッション情報５１０の生成要求、記録要求、取得要求に応じて、セッション情報５１０の生成、セッション情報テーブル１２２へのセッション情報５１０の記録、セッション情報テーブル１２２からのセッション情報５１０の取得を行う。
【００３８】
図５にセッション情報テーブル１２２の一例を示している。セッション情報テーブル１２２は、セッションＩＤ５１１、第１利用者属性５１２、第２利用者属性５１３、及びその他の項目５１４からなる１つ以上のレコードで構成されている。セッション情報テーブル１２２の１つのレコードは１つのセッション情報５１０に対応している。
【００３９】
アプリケーション１１１は、リクエスト３００に対応する処理の実行開始後、セッション管理部１１４に対してセッション情報５１０の生成要求、記録要求、取得要求を送信する。セッション情報テーブル１２２のレコードは、例えばアプリケーション１１１がセッション管理部１１４に対して行うセッション情報５１０（レコード）の記録要求に応じて生成される。またセッション情報テーブル１２２の各項目への情報の登録は、例えばアプリケーション１１１がセッション管理部１１４に対して行う登録要求に応じて行われる。
【００４０】
各レコードのセッションＩＤ５１１には、セッションごとにアプリケーション１１１が付与するセッションＩＤが設定される。アプリケーション１１１は、ログインのリクエスト３００を受信した際に新たなセッションＩＤを生成する。
【００４１】
各レコードの第１利用者属性５１２及び第２利用者属性５１３には、利用者２に関する情報（以下、利用者属性と称する。）が設定される。本実施形態では、第１利用者属性５１２には利用者２のユーザＩＤ（ユーザ識別子）が、第２利用者属性５１３には利用者２が所属するグループのＩＤ（グループ識別子）が設定されるものとする。
【００４２】
セッション管理部１１４は、アプリケーション１１１からセッション情報５１０の記録要求を受信すると、利用者情報識別部１１５に、前述した利用者情報識別要求を送信する。
【００４３】
利用者情報識別部１１５は、リクエスト受付部１１２又はセッション管理部１１４から送信されてくる、前述の利用者情報識別要求に応じて、リクエストＩＤと、利用者属性のうち利用者を識別することが可能な情報（以下、利用者識別子と称する。）とを対応づけ、これをリクエスト利用者情報６１０としてリクエスト利用者情報テーブル１２３に記録する。
【００４４】
図６にリクエスト利用者情報テーブル１２３の一例を示している。リクエスト利用者情報テーブル１２３は、リクエストＩＤ６１１、及び利用者識別子６１２の各項目からなる複数のレコードで構成されている。リクエスト利用者情報テーブル１２３の１つのレコードは１つのリクエスト利用者情報６１０に対応している。各レコードは、リクエスト受付部１１２によるリクエスト３００の受信に応じて生成される。
【００４５】
各レコードのリクエストＩＤ６１１には、リクエスト受付部１１２によって付与されるリクエストＩＤが設定される。利用者識別子６１２には、セッション情報テーブル１２２から取得される利用者属性が設定される。
【００４６】
利用者識別子定義情報１２４には、アプリケーション１１１が生成するセッション情報５１０に含まれている利用者属性の中から利用者識別子を特定（指定）する情報が含まれている。
【００４７】
図７にＸＭＬ（Extensible Markup Language）によって記述された利用者識別子定義情報１２４の一例を示す。この利用者識別子定義情報１２４は、セッション情報５１０の「ｕｓｅｒ−ｉｄ」という変数が利用者識別子であることが記述されている。利用者識別子定義情報１２４は、アプリケーション１１１の利用開始前に、サーバ１００のオペレータや利用者２などが予め設定しておく。
【００４８】
尚、以上に説明した機能に加え、サーバ１００は、オペレータなどにトレース情報４１０、セッション情報５１０、又はリクエスト利用者情報６１０などを参照させるためのユーザインタフェースを提供する。
【００４９】
＜処理説明＞
以下、クライアント３０から送られてくるリクエスト３００を受信してから、そのレスポンス３５０をクライアント３０に送信する間にサーバ１００において行われる処理（以下、リクエスト応答処理Ｓ８００と称する。）の流れについて説明する。図８はリクエスト応答処理Ｓ８００を説明するシーケンス図（シーケンスチャート）である。以下、同図とともに説明する。尚、以下の説明において、符号に付している「Ｓ」の文字は処理ステップを意味する。
【００５０】
クライアント３０から送られてくるリクエスト３００は、通信部１１０によって受信された後、リクエスト受付部１１２に入力される。
【００５１】
リクエスト受付部１１２は、リクエスト３００を受け付けると当該リクエスト３００にリクエストＩＤを付与し（Ｓ８１１）、当該リクエスト３００の処理を開始する旨を示すトレース情報の記録要求を、トレース情報出力部１１３に送信する（Ｓ８１２）。
【００５２】
トレース情報出力部１１３は、上記記録要求を受信すると、処理を開始した旨を示すトレース情報をトレース情報テーブル１２１に記録し（Ｓ８１３）、その完了報告をリクエスト受付部１１２に送信する（Ｓ８１４）。尚、記録するトレース情報４１０のイベントＩＤ４１２には、例えば「リクエスト処理開始」などの、当該トレース情報４１０がリクエスト３００の開始を示すものであることがわかるような情報を設定する。
【００５３】
続いてリクエスト受付部１１２は、利用者情報識別部１１５に前述した利用者情報識別要求を送信する（Ｓ８２１）。利用者情報識別部１１５は、利用者情報識別要求を受信すると、利用者情報を識別する処理（以下、利用者情報識別処理Ｓ８２２と称する。）を実行する。利用者情報識別処理Ｓ８２２の詳細については後述する。
【００５４】
次にリクエスト受付部１１２は、リクエスト３００のアプリケーションＩＤ３１１の値で特定されるアプリケーション１１１に処理の実行要求を送信する（Ｓ８３１）。アプリケーション１１１は、実行要求を受信すると、リクエスト３００に応じた処理の実行を開始する（Ｓ８３２）。
【００５５】
処理の実行開始後、アプリケーション１１１は、セッション管理部１１４に対し、セッション情報５１０の記録要求を随時送信する（Ｓ８３２）。アプリケーション１１１は、例えば予め設定されたタイミング（処理ポイント）が到来すると、当該記録要求をセッション管理部１１４に送信する。
【００５６】
セッション管理部１１４は、アプリケーション１１１から上記記録要求を受信すると、セッション情報テーブル１２２にセッション情報５１０を記録する（Ｓ８３３）。
【００５７】
またセッション管理部１１４は、セッション情報５１０の記録に際し、利用者情報識別部１１５に利用者情報識別要求を送信する（Ｓ８３４）。
【００５８】
利用者情報識別部１１５は、利用者情報識別要求を受信すると、前述した利用者情報識別処理Ｓ８２２を実行する（Ｓ８２２）。
【００５９】
セッション管理部１１４は、利用者情報識別部１１５から利用者情報識別処理Ｓ８２２の完了報告を受信すると、セッション情報５１０の記録が完了した旨の報告をアプリケーション１１１に送信する（Ｓ８３５、Ｓ８３６）。
【００６０】
アプリケーション１１１は、Ｓ８３１で受信した処理実行要求に対応する処理の実行が完了すると、処理の実行完了報告をリクエスト受付部１１２に送信する（Ｓ８３７）。  
【００６１】
上記実行完了報告を受信すると、リクエスト受付部１１２は、Ｓ８１１で受信したリクエストの処理を終了する旨を示すトレース情報の記録要求をトレース情報出力部１１３に送信する（Ｓ８４１）。
【００６２】
トレース情報出力部１１３は、上記記録要求を受信すると、処理を終了した旨を示すトレース情報をトレース情報テーブル１２１に記録する（Ｓ８４２）。尚、記録するトレース情報４１０のイベントＩＤ４１２には、例えば「リクエスト処理終了」などの、当該トレース情報４１０がリクエスト３００の終了を示すものであることがわかるような情報を設定する。
【００６３】
次にトレース情報出力部１１３は、その完了報告をリクエスト受付部１１２に送信する（Ｓ８４３）。リクエスト受付部１１２は、上記完了報告を受信すると（Ｓ８４３）、通信部１１０にクライアント３０へのレスポンス３５０の送信要求を送信する。通信部１１０は、上記送信要求を受信すると、Ｓ８１１で受信したリクエスト３００のレスポンス３５０をクライアント３０に送信する（Ｓ８４４）。
【００６４】
以上に説明したように、利用者情報識別処理Ｓ８２２は、アプリケーション１１１が処理を実行する前に実行される。また利用者情報識別処理Ｓ８２２は、アプリケーション１１１の処理の実行中、セッション情報５１０が記録される際に実行される。
【００６５】
図９は、利用者情報識別処理Ｓ８２２の詳細を説明するフローチャートである。以下、同図とともに利用者情報識別処理Ｓ８２２について説明する。
【００６６】
利用者情報識別部１１５は、まず当該処理（利用者情報識別処理Ｓ８２２）の呼び出し元が、リクエスト受付部１１２又はセッション管理部１１４のいずれであるのか、即ち、当該処理がＳ８１２の利用者情報識別要求に応じて行われるのか、それともＳ８３４に利用者情報識別要求に応じて行われるのか、を判断する（Ｓ９１１）。
【００６７】
この判断は、例えば、利用者情報識別部１１５に呼び出し元ごとに異なるＡＰＩ（Application Program Interface）用意しておき、呼び出されたＡＰＩの種類によって呼び出し元を判断する方法、呼び出し元がＡＰＩに自身の識別子を渡し、利用者情報識別部１１５が識別子の内容に基づいて呼び出し元を特定する方法などにより行う。
【００６８】
呼び出し元がリクエスト受付部１１２であれば（Ｓ９１１：リクエスト受付部）、Ｓ９２１に進み、呼び出し元がセッション管理部１１４であれば（Ｓ９１１：セッション管理部）、Ｓ９３１に進む。
【００６９】
利用者情報識別処理Ｓ８２２の呼び出し元がリクエスト受付部１１２である場合（Ｓ９１１：リクエスト受付部）、利用者情報識別部１１５は、リクエスト受付部１１２がＳ８１１で受け付けたリクエスト３００にセッションＩＤが設定されているか否かを判断する（Ｓ９２１）。セッションＩＤが設定されていれば（Ｓ９２１：ＹＥＳ）、Ｓ９２２に進む。セッションＩＤが設定されていなければ（Ｓ９２１：ＮＯ）、利用者情報識別処理Ｓ８２２は終了する。
【００７０】
Ｓ９２２では、利用者情報識別部１１５は、セッション情報テーブル１２２から、リクエスト３００に設定されているセッションＩＤに対応するセッション情報５１０を取得する（Ｓ９２２）。
【００７１】
次に利用者情報識別部１１５は、利用者識別子定義情報１２４を参照し、セッション情報テーブル１２２のセッション情報５１０から利用者識別子を取得する（Ｓ９２３）。例えば利用者識別子定義情報１２４が図７に示す内容である場合には、セッション情報５１０からユーザＩＤを利用者識別子として取得する。
【００７２】
利用者情報識別部１１５は、取得した利用者識別子を、リクエスト受付部１１２がリクエスト３００に付与したリクエストＩＤと対応させ、これをリクエスト利用者情報６１０としてリクエスト利用者情報テーブル１２３に記録する（Ｓ９２４）。
【００７３】
一方、利用者情報識別処理Ｓ８２２の呼び出し元がセッション管理部１１４である場合（Ｓ９１１：セッション管理部）、利用者情報識別部１１５は、利用者識別子定義情報１２４を参照し、Ｓ８３３でセッション情報テーブル１２２に記録されたセッション情報５１０に利用者識別子が含まれているか否かを判断する（Ｓ９３１）。例えば利用者識別子定義情報１２４が図７に示す内容である場合には、セッション情報５１０に「ｕｓｅｒ−ｉｄ」が含まれているか否かを調べることにより、セッション情報５１０に利用者識別子が含まれているか否かを判断する。
【００７４】
セッション情報５１０に利用者識別子が含まれていれば（Ｓ９３１：ＹＥＳ）、Ｓ９３２に進む。セッション情報５１０に利用者識別子が含まれていなければ（Ｓ９３１：ＮＯ）、利用者情報識別処理Ｓ８２２は終了する。
【００７５】
Ｓ９３２では、利用者情報識別部１１５は、セッション情報５１０から取得した利用者識別子を、リクエスト受付部１１２がリクエスト３００に付与したリクエストＩＤと対応づけ、これをリクエスト利用者情報６１０としてリクエスト利用者情報テーブル１２３に記録する（Ｓ９３２）。
【００７６】
以上のように、リクエスト受付部１１２は、クライアント３０から受信したリクエストに対応する処理の実行をアプリケーション１１１が開始する前に必ず利用者情報識別処理Ｓ８２２を実行し、リクエスト３００にセッションＩＤが含まれていれば、リクエストＩＤと利用者識別子との対応づけ（リクエスト利用者情報６１０）を生成してリクエスト利用者情報テーブル１２３に記録する（Ｓ８２１〜Ｓ８２３）。このため、例えば同一セッションの２回目以降のリクエスト３００のように、リクエスト３００にセッションＩＤが含まれていれば、利用者情報識別処理Ｓ８２２によってリクエスト利用者情報６１０を取得することができる。
【００７７】
またセッション管理部１１４は、アプリケーション１１１からの要求に応じてセッション情報５１０を記録する際、利用者情報識別処理Ｓ８２２を実行し、セッション情報５１０に利用者識別子が含まれていれば、これを利用してリクエスト利用者情報６１０を取得する（Ｓ８３２〜Ｓ８３６）。このため、例えばあるセッションの初回のリクエスト３００のように、リクエスト３００にセッションＩＤ３１２の値が含まれていない場合でも、アプリケーション１１１から出力されるセッション情報５１０に利用者識別子が含まれていれば、リクエスト利用者情報６１０を取得することができる。
【００７８】
このように、本実施形態のサーバ１００によれば、リクエスト利用者情報６１０を確実に取得することができる。また利用者情報識別処理Ｓ８２２では、リクエスト受付部１１２又はセッション管理部１１４という、アプリケーション１１１の外部の機能によってリクエスト利用者情報６１０を取得するので、アプリケーション１１１の構成に変更を加えることなく、リクエスト利用者情報６１０を取得することができる。
【００７９】
尚、以上のようにして取得されたリクエスト利用者情報６１０は、例えばトレース情報テーブル１２１のリクエストＩＤからそのリクエスト３００の送信元の利用者２を特定するのに利用される。またトレース情報テーブル１２１に記録されている一連のイベントから、利用者２のサーバ１００へのアクセス履歴を把握することができる。またこれを利用すれば、例えばアプリケーション１１１とは独立して行わなければならないような障害原因の究明のための作業を効率よく進めることができる。
【００８０】
以上、本発明の実施に係る利用者情報識別システムについて説明してきたが、上記発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【符号の説明】
【００８１】
１  情報処理システム
５  通信ネットワーク
３０  クライアント
１００  サーバ
１１１  アプリケーション
１１２  リクエスト受付部
１１３  トレース情報出力部
１１４  セッション管理部
１１５  利用者情報識別部
１２１  トレース情報テーブル
１２２  セッション情報テーブル
１２３  リクエスト利用者情報テーブル
１２４  利用者識別子定義情報
３００  リクエスト
３１１  アプリケーションＩＤ
３１２  セッションＩＤ
４１０  トレース情報
５１０  セッション情報
６１０  リクエスト利用者情報
６１１  リクエストＩＤ
６１２  利用者識別子
【図１Ａ】
2010272081.tif 000003
【図１Ｂ】
2010272081.tif 000004
【図２】
2010272081.tif 000005
【図３】
2010272081.tif 000006
【図４】
2010272081.tif 000007
【図５】
2010272081.tif 000008
【図６】
2010272081.tif 000009
【図７】
2010272081.tif 000010
【図８】
2010272081.tif 000011
【図９】
2010272081.tif 000012
【図１０】
2010272081.tif 000013