(57)【要約】【課題】１つのリクエストが複数の処理装置で順次処理されるとき、これらの処理の軌跡をより簡単に特定することのできる情報処理装置、情報処理システムおよび情報処理方法を得る。【解決手段】クライアント計算機２０１から１つの処理単位のデータ処理に関するリクエストが第１のサーバ計算機２０３1にあると、サービス処理部２１１が他の計算機と分担する処理と判別したものをリクエスト番号採番部２１２が採番し、管理計算機のサービス配備部２０７の管理の下でそのリクエストを第２のサーバ計算機２０３2等にリクエスト番号と共に持ち回る。各計算機２０３1、２０３2のログ出力時にリクエスト番号を一緒に出力することで、これらをリクエスト単位で紐付けできる。【選択図】図１
2009110337.tif 000002
【特許請求の範囲】
【請求項１】
１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付手段と、
このリクエスト受付手段で受け付けたリクエストによる前記１つの処理単位のデータ処理に他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当手段と、
前記リクエストによる前記１つの処理単位のデータ処理を時系列的に処理される一連の処理内容に分割し、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分を前記識別情報割当手段で割り当てた識別情報を組み込んだ状態で順次転送する処理内容転送手段
とを具備することを特徴とする情報処理装置。
【請求項２】
１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付手段と、
このリクエスト受付手段で受け付けたリクエストによる前記１つの処理単位のデータ処理が、時系列的に処理される一連の処理内容に分割され、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分が転送されて順次処理される処理形態のものであるかを判別する分担処理判別手段と、
この分担処理判別手段で前記処理形態のものであると判別された前記１つの処理単位のデータ処理のリクエストに他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当手段と、
この識別情報割当手段で割り当てた前記１つの処理単位のデータ処理のリクエストの識別情報を、そのリクエストに係わる前記一連の処理内容のそれぞれに組み込んで前記自装置以外の任意数の処理装置に順次転送する処理内容転送手段
とを具備することを特徴とする情報処理装置。
【請求項３】
前記分担処理判別手段は、前記リクエスト受付手段で受け付けた１つの処理単位のデータ処理が予め登録したアプリケーションプログラムを使用するか否かによって前記処理形態のものであるかを判別する手段であることを特徴とする請求項２記載の情報処理装置。
【請求項４】
自装置および前記自装置以外の任意数の処理装置はそれぞれネットワークに接続されたサーバであり、自装置はネットワークを介して前記１つの処理単位のデータ処理に関するリクエストを受け付けることを特徴とする請求項１〜請求項３いずれかに記載の情報処理装置。
【請求項５】
１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付手段と、このリクエスト受付手段で受け付けたリクエストによる前記１つの処理単位のデータ処理が、時系列的に処理される一連の処理内容に分割され、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分が転送されて順次処理される処理形態のものであるかを判別する分担処理判別手段と、この分担処理判別手段で前記処理形態のものであると判別された前記１つの処理単位のデータ処理のリクエストに他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当手段とを備えた特定サーバと、
前記自装置以外の任意数の処理装置として前記特定サーバとデータ処理を分担する分担処理用サーバと、
前記特定サーバに対して各種のデータ処理のリクエストを行う任意数のクライアント端末と、
前記任意数の前記分担処理用サーバに対して、前記特定サーバの前記識別情報割当手段で割り当てた前記１つの処理単位のデータ処理のリクエストの識別情報を、そのリクエストに係わる前記一連の処理内容のそれぞれに組み込んで順次転送する制御を行うことで、前記１つの処理単位のデータ処理に関するリクエストの管理を行う管理用情報処理装置
とを具備することを特徴とする情報処理システム。
【請求項６】
前記管理用情報処理装置は、各サーバのログファイルを前記識別情報をキーとしてリクエスト単位で関連付けて出力するリクエスト単位ログ出力手段を具備することを特徴とする請求項５記載の情報処理システム。
【請求項７】
前記識別情報割当手段は、リクエストごとに一意な番号を割り当てるリクエスト番号付与手段を具備することを特徴とする請求項５記載の情報処理システム。
【請求項８】
１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付ステップと、
このリクエスト受付ステップで受け付けたリクエストによる前記１つの処理単位のデータ処理が、時系列的に処理される一連の処理内容に分割され、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分が転送されて順次処理される処理形態のものであるかを判別する分担処理判別ステップと、
この分担処理判別ステップで前記処理形態のものであると判別された前記１つの処理単位のデータ処理のリクエストに他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当ステップと、
この識別情報割当ステップで割り当てた前記１つの処理単位のデータ処理のリクエストの識別情報を、そのリクエストに係わる前記一連の処理内容のそれぞれに組み込んで前記自装置以外の任意数の処理装置に順次転送する処理内容転送ステップと、
この処理内容転送ステップで前記自装置以外の任意数の処理装置に転送した前記一連の処理内容に係わるログを前記識別情報と対応付けて出力するログ出力ステップ
とを具備することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばプログラム実行時の障害を分析するために好適な情報処理装置、情報処理システムおよび情報処理方法に関する。
【背景技術】
【０００２】
１つのアプリケーションプログラム（以下、単にプログラムと略称する。）の処理を、複数のサーバ計算機等の複数の処理装置が分担して実行する場合がある。
【０００３】
図１１は、このような情報処理システムの一例を表わしたものである。この情報処理システム１００が列車の座席予約システムに適用されているものとする。第１〜第３のサーバ計算機１０１〜１０３は、列車予約に関する一連の対話式サービスとして、顧客別に第１〜第３のリクエストＲ1〜Ｒ3を受け付けるようになっている。これら第１〜第３のリクエストＲ1〜Ｒ3は、それぞれの顧客Ａ、Ｂ、Ｃの図示しないコンピュータから通信ネットワーク１０４を通じて、第１のサーバ計算機１０１に入力され、順次、第２および第３のサーバ計算機１０２、１０３に転送されて処理されるようになっている。
【０００４】
ここで第１のサーバ計算機１０１は、図示しないＣＰＵ（Central Processing Unit）が実行するプログラムとしての顧客の希望する日時の列車情報を受け付ける第１のサービス提供アプリケーションを格納した第１のサービス提供アプリケーション格納部１０６と、そのログとしてのアプリケーションログを格納する第１のログ格納部１０７を備えている。また、第２のサーバ計算機１０２は、同じく図示しないＣＰＵが実行するプログラムとしての顧客の希望する列車を検索する第２のサービス提供アプリケーションを格納した第２のサービス提供アプリケーション格納部１０８と、そのアプリケーションログを格納する第２のログ格納部１０９を備えている。また、第３のサーバ計算機１０３は、列車の検索結果から予約状況を確定し清算を行う第３のサービス提供アプリケーションを格納した第３のサービス提供アプリケーション格納部１１１と、そのアプリケーションログを格納する第３のログ格納部１１２を備えている。
【０００５】
第１〜第３のサーバ計算機１０１〜１０３は、それらのログ格納部１０７、１０９、１１２に格納された第１〜第３のログファイル１２１〜１２３を付き合わせることで、たとえば、顧客Ａが行った第１のリクエストＲ1に対して第１〜第３のサーバ計算機１０１〜１０３の行ったそれぞれのサービス（作業）の軌跡を辿ることができる。これにより、顧客Ａの第１のリクエストＲ1に対する一連のサービスとしての第１のトランザクションを認識することができる。
【０００６】
ところで、第１〜第３のリクエストＲ1〜Ｒ3がそれぞれ十分な時間間隔を置いて実行されたものと仮定する。たとえば顧客Ａが朝９時に第１のリクエストＲ1を開始し、それが終了した後の時刻１０時に顧客Ｂが第２のリクエストＲ2を開始し、更に、それが終了した後の時刻１１時に顧客Ｃが第３のリクエストＲ3を開始したものとする。
【０００７】
このように情報処理システム１００の行うそれぞれの処理に十分な時間的間隔がある場合には、第１〜第３のサーバ計算機１０１〜１０３の個々のログファイル１２１〜１２３を見れば、これらが第１〜第３のリクエストＲ1〜Ｒ3のいずれに対応するかを比較的容易に判別することができる。この結果として、第１〜第３のログファイル１２１〜１２３における、たとえば第１のリクエストＲ1のログ同士を紐１２４、１２５で連結することで、顧客Ａに対応した１つの処理単位としての第１のトランザクションＴＸ1を判別することができる。第２および第３のトランザクションＴＸ2、ＴＸ3についても同様に容易に判別することができる。
【０００８】
図１２は、他の例として、たとえば年末時期の列車の予約のようにリクエストが時間的に集中した場合のシステムの動作を表わしたものである。この場合には、第１〜第３のログファイル１２１〜１２３の中で同一のリクエストを結びつける紐１３１の連結先が不明となる場合が多くなる。たとえば、第１のログファイル１２１を見ると、第１および第２のリクエストＲ1、Ｒ2が同一の時刻としてのＨ時Ｍ分００秒に第１のログ格納部１０７に格納されたことが記されている。また、第２のログファイル１２２を見ると、他の同一の時刻としてのＨ時Ｍ分０１秒に第２のログ格納部１０８に３つのログが格納されたことが記されている。
【０００９】
このため、第１のリクエストＲ1の軌跡をたどって、これらのログの対応付けを行おうとしても、第２のログファイル１２２には３つのログが最も可能性の高い候補として挙がっている。この結果、紐１３１の連結先を時刻情報だけで確定することができない。これは、第１〜第３のサーバ計算機１０１〜１０３が、必ずしもそれらの受け付けた順番で処理を完了させるとは言えないからである。したがって、この例で第１のログファイル１２１のＨ時Ｍ分００秒に終了した第１のリクエストＲ1を紐１３１で連結しようとしたときに、第２のログファイル１２２のＨ時Ｍ分０１秒のどのログに連結していいかが不明となる。このように、リクエストが時間的に集中すると、図１１で示したようなトランザクションＴＸ1〜ＴＸ3ごとの紐付けを、間違いなく行うことが困難になる。
【００１０】
そこで、本発明の関連技術として、要求日時と処理を行うデータ処理装置名を含むトランザクション識別子を使用することで、トランザクションを一意に識別できるようにすることが提案されている（たとえば特許文献１参照）。
【特許文献１】特開２００２−２４４８８７号公報（第００２８段落〜第００３９段落、第００５７段落、図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
この関連技術では、それぞれのトランザクションを区別するためのトランザクション識別子を、システムを構成するデータ処理装置のクライアントアプリケーションおよび各サーバアプリケーションに通知すると共に、呼出情報ファイルと受付情報ファイルに記録するようにしている。すなわち、この関連技術では、各ログファイルにログが記録され、トランザクション識別子ファイルにトランザクション要求時のトランザクション識別子が記録され、呼出情報ファイルと、受付情報ファイルには、ログ格納位置情報として、それぞれトランザクション識別子を含む呼出情報と受付情報が記録される。そしてログ収集手段が、トランザクション識別子ファイルから取得したトランザクション識別子を基にして、トランザクションの一連のログを収集することになる。このため、この関連技術では、紐付けを行うためのトランザクションの処理が煩雑になるという問題があった。
【００１２】
そこで本発明の目的は、１つのリクエストがサーバ等の複数の処理装置で順次処理されるとき、これら一連の処理の軌跡をより簡単に特定することのできる情報処理装置、情報処理システムおよび情報処理方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明では、（イ）１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付手段と、（ロ）このリクエスト受付手段で受け付けたリクエストによる前記した１つの処理単位のデータ処理に他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当手段と、（ハ）前記したリクエストによる前記した１つの処理単位のデータ処理を時系列的に処理される一連の処理内容に分割し、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分を前記した識別情報割当手段で割り当てた識別情報を組み込んだ状態で順次転送する処理内容転送手段とを情報処理装置に具備させる。
【００１４】
また、本発明では、（イ）１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付手段と、（ロ）このリクエスト受付手段で受け付けたリクエストによる前記した１つの処理単位のデータ処理が、時系列的に処理される一連の処理内容に分割され、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分が転送されて順次処理される処理形態のものであるかを判別する分担処理判別手段と、（ハ）この分担処理判別手段で前記処理形態のものであると判別された前記した１つの処理単位のデータ処理のリクエストに他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当手段と、（ニ）この識別情報割当手段で割り当てた前記した１つの処理単位のデータ処理のリクエストの識別情報を、そのリクエストに係わる前記した一連の処理内容のそれぞれに組み込んで前記した自装置以外の任意数の処理装置に順次転送する処理内容転送手段とを情報処理装置に具備させる。
【００１５】
更に、本発明では、（イ）１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付手段と、このリクエスト受付手段で受け付けたリクエストによる前記した１つの処理単位のデータ処理が、時系列的に処理される一連の処理内容に分割され、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分が転送されて順次処理される処理形態のものであるかを判別する分担処理判別手段と、この分担処理判別手段で前記処理形態のものであると判別された前記した１つの処理単位のデータ処理のリクエストに他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当手段とを備えた特定サーバと、（ロ）前記した自装置以外の任意数の処理装置として前記した特定サーバとデータ処理を分担する分担処理用サーバと、（ハ）前記した特定サーバに対して各種のデータ処理のリクエストを行う任意数のクライアント端末と、（ニ）前記した任意数の前記した分担処理用サーバに対して、前記した特定サーバの前記した識別情報割当手段で割り当てた前記した１つの処理単位のデータ処理のリクエストの識別情報を、そのリクエストに係わる前記した一連の処理内容のそれぞれに組み込んで順次転送する制御を行うことで、前記した１つの処理単位のデータ処理に関するリクエストの管理を行う管理用情報処理装置とを情報処理システムに具備させる。
【００１６】
更にまた、本発明では、（イ）１つの処理単位のデータ処理に関するリクエストを受け付けるリクエスト受付ステップと、（ロ）このリクエスト受付ステップで受け付けたリクエストによる前記した１つの処理単位のデータ処理が、時系列的に処理される一連の処理内容に分割され、自装置以外の任意数の処理装置にこれら一連の処理内容のうちの担当分が転送されて順次処理される処理形態のものであるかを判別する分担処理判別ステップと、（ハ）この分担処理判別ステップで前記処理形態のものであると判別された前記した１つの処理単位のデータ処理のリクエストに他のそれぞれのリクエストと区別する識別情報を割り当てる識別情報割当ステップと、（ニ）この識別情報割当ステップで割り当てた前記した１つの処理単位のデータ処理のリクエストの識別情報を、そのリクエストに係わる前記した一連の処理内容のそれぞれに組み込んで前記した自装置以外の任意数の処理装置に順次転送する処理内容転送ステップと、（ホ）この処理内容転送ステップで前記した自装置以外の任意数の処理装置に転送した前記した一連の処理内容に係わるログを前記した識別情報と対応付けて出力するログ出力ステップとを情報処理方法に具備させる。
【発明の効果】
【００１７】
以上説明したように本発明によれば、リクエスト単位に識別情報を割り当てて、これにより動作履歴（ログ）を関連付けるようにした。この結果、各サーバの時計情報に依存することなく、ログファイルを同一のリクエスト番号で突き合わせることが可能になり、同一の時間帯に複数のサーバを使用したサービスが存在しても、利用者によるリクエストが入口から出口までどのような軌跡をたどったかを確実に把握することができるという効果がある。
【発明を実施するための最良の形態】
【００１８】
図１は、本発明の一実施の形態の情報処理システムについてその構成の概要を表わしたものである。この実施の形態の情報処理システム２００は、第１〜第ｍのクライアント計算機２０１1〜２０１mがネットワーク２０２を介して第１のサーバ計算機２０３1に接続されている。第１のサーバ計算機２０３1は、第２のサーバ計算機２０３2と共に、第１〜第ｍのクライアント計算機２０１1〜２０１mの要求する一連の処理内容についてのサービスを行うことができるようになっている。第１のサーバ計算機２０３1と第２のサーバ計算機２０３2の間には、ネットワーク２０４が介在している。また、第１のサーバ計算機２０３1と第２のサーバ計算機２０３2の双方には、ネットワーク２０６を介してサービス配備部２０７が配置され、ネットワーク２０４にはサービス更新部２０８が配置されている。ただし、各ネットワーク２０２、２０４、２０６は、インターネットのような同一のネットワークで構成されているものであってもよいし、個々に異なるＬＡＮ（Local Area Network）のような別個のネットワークで構成されていてもよい。
【００１９】
第１のサーバ計算機２０３1は、第１〜第ｍのクライアント計算機２０１1〜２０１mと通信を行うためのサービス処理部２１１を備えている。サービス処理部２１１は、第１〜第ｍのクライアント計算機２０１1〜２０１mのいずれかから一連の処理内容の作業としてのリクエストがあると、リクエスト番号という識別情報を順に採番するリクエスト番号採番部２１２に採番の要求を行うようになっている。リクエスト番号採番部２１２は、採番の要求が行われるたびにリクエスト単位に採番を行うが、その前に該当するサービスが採番の対象となるプログラムに関するものであるかを採番対象サービス管理テーブル２１３を用いてチェックするようにしている。
【００２０】
第１のサーバ計算機２０３1には、後に説明する第１のサービス提供アプリケーション部２１４1および第１のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1と、リクエスト番号を格納する第１の主記憶装置２１６1が備えられている。第１のサービス提供アプリケーション部２１４1および第１のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1は、リクエスト番号採番部２１２とネットワーク２０４の双方に接続されている。第１の主記憶装置２１６1は第１のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1と接続されている。
【００２１】
第２のサーバ計算機２０３2は、ネットワーク２０４に接続された第２のサービス提供アプリケーション部２１４2および第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５2と、第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５2に接続された第２の主記憶装置２１６2を配置している。前記したサービス配備部２０７はネットワーク２０６を介して第１および第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1、２１５2の双方に接続されている。
【００２２】
この実施の形態の情報処理システム２００で第１〜第ｍのクライアント計算機２０１1〜２０１mと第１および第２のサーバ計算機２０３1、２０３2は、共に図示しないＣＰＵを備えており、それぞれの制御プログラムを実行することで全体として所定の情報処理に関する制御を行うようになっている。また、図１に示した装置各部の少なくとも一部は、ハードウェアで構成することも可能であるが、これら制御プログラムの実行によってソフトウェア的に実現することが可能な構成となっている。
【００２３】
また、サービス配備部２０７およびはサービス更新部２０８は、次に説明する管理計算機上で動作するようになっている。なお、採番対象サービス管理テーブル２１３は第１の主記憶装置２１６1と別のデバイスとして表わしているが、第１の主記憶装置２１６1の一部として構成されていてもよいし、これとは別の記憶媒体で構成してもよい。
【００２４】
図２は、管理計算機の構成を主として表わしたものである。管理計算機２３１は、図１で示したサービス配備部２０７およびこれと接続されたサービス更新部２０８の他に、サービス提供アプリケーション部２３２を備えている。サービス提供アプリケーション部２３２は、リクエスト番号取得処理埋め込み部２３３、サーバ間通信変換部２３４およびログ出力変換部２３５をそれぞれ介してリクエストトラッキング機能付きサービス提供アプリケーション部２３６と接続されている。このリクエストトラッキング機能付きサービス提供アプリケーション部２３６と前記したサービス提供アプリケーション部２３２は、サービス配備部２０７と接続されている。
【００２５】
また、サービス配備部２０７はネットワーク２０６を介して、またサービス更新部２０８はネットワーク２０４を介して、それぞれ第１および第２のサーバ計算機２０３1、２０３2に接続されている。
【００２６】
図３は、第１のサーバ計算機の処理の様子を表わしたものである。図１および図２を用いて説明する。第１のサーバ計算機２０３1内のサービス処理部２１１は、第１〜第ｍのクライアント計算機２０１1〜２０１mのいずれかから、１つの処理単位のデータ処理に関するリクエストが送られてくるのを待機している（ステップＳ３０１）。そして、たとえば第１のクライアント計算機２０１1からリクエストが送られてくると（Ｙ）、これが採番の対象になるものであるかをチェックする。そのためにサービス処理部２１１は、このリクエストをリクエスト番号採番部２１２に転送する。リクエスト番号採番部２１２は、採番対象サービス管理テーブル２１３にそのリクエストのプログラムが存在するかを検索することになる（ステップＳ３０２）。
【００２７】
図４は、採番対象サービス管理テーブルの一例を表わしたものである。採番対象サービス管理テーブル２１３には、採番の対象となるプログラム名が一覧として記されている。この採番対象サービス管理テーブル２１３に記されていないプログラムは、第１および第２のサーバ計算機２０３1、２０３2の間でログの紐付けの必要性のないプログラム（以下、通常プログラムという。）である。
【００２８】
採番対象サービス管理テーブル２１３の検索結果として、今回のリクエストに対して採番が必要であると判別された場合（ステップＳ３０３：Ｙ）、これに対応するリクエスト番号を採番する（ステップＳ３０４）。このリクエスト番号は、たとえば第１のサーバ計算機２０３1内の図示しない時計回路から出力される現在時刻を表わす情報に、同じく図示しないカウンタのカウント値を加えることによって作成することができる。ここでカウンタは、たとえばリクエストに対して採番が必要とされるたびに数値を「１」ずつカウントアップするようなデバイスである。
【００２９】
図５は、それぞれのリクエストに組み込まれるリクエスト番号の構成を表わしたものである。リクエスト番号は、年月日と時間情報を組み合わせたタイムスタンプ２５１と、前記したカウンタのカウント値２５２によって構成されることになる。
【００３０】
図３に戻って説明する。リクエスト番号が採番されたら（ステップＳ３０４）、第１のサーバ計算機２０３1に送られてきたリクエストを構成するデータのヘッダ部分に、これを格納する（ステップＳ３０５）。そして、リクエスト番号が組み込まれたこのリクエストを、第１のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1へ転送する（ステップＳ３０６）。そして、実行結果を第１〜第ｍのクライアント計算機２０１1〜２０１mのうちのリクエストを行った第１のクライアント計算機２０１1に返却すると共に、管理計算機２３１の処理を開始する（ステップＳ３０７）。
【００３１】
これに対して、ステップＳ３０３で採番が不要であると判別された場合には（Ｎ）、このリクエストを第１のサービス提供アプリケーション部２１４1に転送する（ステップＳ３０８）。そして、実行結果を第１〜第ｍのクライアント計算機２０１1〜２０１mのうちのリクエストを行った第１のサーバ計算機２０３1に返却することになる（ステップＳ３０９）。
【００３２】
図６は、サービス配備が行われる前の管理計算機の処理の様子を表わしたものである。これらの処理は、図２におけるリクエスト番号取得処理埋め込み部２３３、サーバ間通信変換部２３４およびログ出力変換部２３５によって行われる。図１および図２と共に説明する。
【００３３】
リクエスト番号取得処理埋め込み部２３３は、サービス提供アプリケーション部２３２が第１のサーバ計算機２０３1から受け取ったリクエストを構成するデータ（以下、単にリクエストという。）のヘッダ部分のバイナリデータをチェックして、リクエスト番号が存在するかをチェックする（ステップＳ３２１）。この結果、リクエスト番号が存在しなければ（Ｎ）、ログの紐付けの必要性のない通常プログラムに関するものなので、そのまま処理を終了させる（エンド）。これに対して、リクエストのヘッダ部分にリクエスト番号が存在する場合には（ステップＳ３２１：Ｙ）、このリクエスト番号をヘッダ部分から取り出す（ステップＳ３２２）。そして、これを第１の主記憶装置２１６1に格納する（ステップＳ３２３）。
【００３４】
一方、サーバ間通信変換部２３４は、このリクエストに使用されるプログラムとしてのサービス提供アプリケーションがサーバ計算機２０３間で通信を行う処理を有するものであるかをチェックする（ステップＳ３２４）。本実施の形態では、ＲＰＣ（Remote Procedure Call）を用いた関数呼び出しをこの処理で行うが、これについては後に説明する。このような処理が見つかった場合には（Ｙ）、その処理に修正を加え、通信時にリクエスト番号の伝播も行うようにする。この結果、リクエスト番号は、第１の主記憶装置２１６1から取り出され（ステップＳ３２５）、関数の最終引数として第２のサーバ計算機２０３2の第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５2へ伝播される（ステップＳ３２６）。サーバ２０３間で通信を行う処理が存在しない場合には（ステップＳ３２４：Ｎ）、処理を終了する（エンド）。
【００３５】
図７は、これと同期して行われる第２のリクエストトラッキング機能付きサービス提供アプリケーション部のリクエスト番号受信処理の様子を表わしたものである。図１に示す第２のサーバ計算機２０３2の第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５2は、リクエスト番号を受信すると（ステップＳ３４１：Ｙ）、そのリクエスト番号を第２の主記憶装置２１６1に格納する（ステップＳ３４２）。
【００３６】
図６に戻って説明を続ける。図２に示したログ出力変換部２３５は、サービス提供アプリケーション２３２のバイナリデータを検査し、アプリケーションの入り口となる関数（一番最初に実行される関数）、すなわちログ（動作履歴）の出力を行う関数を検索する（ステップＳ３２７）。関数が見つかった場合には（Ｙ）、その関数の直前に「出力対象のログメッセージにリクエスト番号を付加する処理」を追加して、第１および第２の主記憶装置２１６1、２１６2から取り出したリクエスト番号を付加したログを出力する（ステップＳ３２８）。このようなログを出力する処理が存在しない場合には（ステップＳ３２７：Ｎ）、サービス提供アプリケーション部２３２に対して何も手を加えずに処理を終了する（エンド）。
【００３７】
図８は、図６のサーバ間通信変換部の処理として示したＲＰＣを用いた関数呼び出しを説明するものである。ＲＰＣは、遠隔手続呼び出しとも呼ばれており、ここでは図２に示した管理計算機２３１側のプログラムが、図１に示す第１または第２のサーバ計算機２０３1、２０３2におけるプログラムを呼び出して実行することを意味する。
【００３８】
サーバ間通信変換部２３４は、サービス提供アプリケーション部２３２のバイナリデータを検査し、図８（Ａ）に示すＲＰＣの呼び出し側の関数と図８（Ｂ）に示す被呼び出し側の関数を検索する。呼び出し側の関数が見つかった場合は、その関数の直前に「第１の主記憶装置からリクエスト番号を取得する処理」を追加し、関数の呼び出し定義を、ｆｎ（ｎ１，ｎ２，……ｎｉ）という形式から、ｆｎ(ｎ１，ｎ２，……，ｎｉ，ε）という形式に変更する。ただしｆｎは関数名、ｎ１,...,ｎｉは引数、εはリクエスト番号である。
【００３９】
このような呼び出し側の関数が見つからなかった場合（ステップＳ３２４：Ｎ）は、サービス提供アプリケーション部２３２に対して何も手を加えない。被呼び出し側の関数が見つかった場合（ステップＳ３２４：Ｙ）は、その関数の定義を、ｆｎ（ｎ１，ｎ２，……ｎｉ）という形式から、ｆｎ(ｎ１，ｎ２，……，ｎｉ，ε）という形式に変更し、変更後の関数の先頭に「取得したリクエスト番号を第２の主記憶装置へ格納する処理」を追加することになる。
【００４０】
図９は、サービス提供アプリケーションの配備の処理の様子を表わしたものである。図２に示すサービス配備部２０７は、リクエストトラッキング機能付きサービス提供アプリケーション部２３６からその出力があったら（ステップＳ３６１：Ｙ）、図１に示す第１および第２のサーバ計算機２０３1、２０３2に対して第１および第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1、２１５2の内の対応するものを配備する（ステップＳ３６２）。そして、第１のサーバ計算機２０３1のリクエスト番号採番部２１２に第１および第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1、２１５2が配備されたことを通知することになる（ステップＳ３６３）。
【００４１】
図１０は、サービス提供アプリケーションの配備が行われたときのリクエスト番号採番部の処理を表わしたものである。図１に示す第１のサーバ計算機２０３1のリクエスト番号採番部２１２は、第１および第２のリクエストトラッキング機能付きサービス提供アプリケーション部２１５1、２１５2が配備されたことの通知を受けると（ステップＳ３８１：Ｙ）、採番対象サービス管理テーブル２１３にサービスリクエストトラッキング機能付きサービス提供アプリケーションの名前を追加する（ステップＳ３８２）。これ以後、第１のサーバ計算機２０３1のサービス処理部２１１は、第１〜第ｍのクライアント計算機２０１1〜２０１mからアプリケーションへのリクエストを受け付けられるようになる。
【００４２】
以上説明した実施の形態では、情報処理システム２００の処理側のサーバを第１のサーバ計算機２０３1と第２のサーバ計算機２０３2の合計２台としたが、３台以上の構成となっていてもよいことは当然である。また、実施の形態ではリクエスト番号としてタイムスタンプとカウント値を組み合わせたものを使用したが、他の組み合わせを行ったり、それぞれのリクエスト番号が確実に異なったものとなる他の数字あるいは符合割当手段を使用したりてもよいことは当然である。
【００４３】
このように本実施の形態では、リクエスト単位に動作履歴（ログ）を関連付けるので、サーバごとのログファイルを同一のリクエスト番号で突き合わせることが可能になる。したがって、複数のサーバを使用したサービスでも、利用者によるリクエストが入口から出口までどのような軌跡をたどったのかを簡単に把握することができる。これは、各サーバ間で同一のリクエストに対して一意なキー値を持ち回り、動作履歴としてのログの出力時にリクエスト番号も一緒に出力するようにして、サーバを超えてリクエスト単位にログを関連付けることができるようにしたためである。
【００４４】
しかも、リクエスト番号にタイムスタンプとカウント値を組み合わせたので、タイムスタンプの精度との関係で同一時刻とみなせるようなリクエストが複数発生しても、リクエスト番号して異なったものを割り当てることができる。
【００４５】
更に、プログラムのソースコードを修正することなくサービス提供アプリケーションに、リクエストと関連付けができるような情報をコードとして機械的に埋め込むため、アプリケーション開発者がまったく意識することなく、各サーバの動作履歴を紐付けすることができる。このため、すでに出来上がったサービスに対して同様のログ出力の修正を行う従来の手法と比べると、大幅な費用削減を図ることができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施の形態の情報処理システムのシステム構成図である。
【図２】本実施の形態の情報処理システムにおける管理計算機の構成を主として表わしたブロック図である。
【図３】本実施の形態でリクエストを受け付けたときの第１のサーバ計算機の処理を表わした流れ図である。
【図４】本実施の形態の採番対象サービス管理テーブルの一例を表わした説明図である。
【図５】本実施の形態でそれぞれのリクエストに組み込まれるリクエスト番号の構成を表わした説明図である。
【図６】本実施の形態でサービス配備が行われる前の管理計算機の処理の様子を表わした流れ図である。
【図７】本実施の形態の第２のリクエストトラッキング機能付きサービス提供アプリケーション部のリクエスト番号受信処理を表わした流れ図である。
【図８】本実施の形態のサーバ間通信変換部におけるＲＰＣを用いた関数呼び出しの様子を示す説明図である。
【図９】本実施の形態でサービス提供アプリケーションの配備の処理の様子を表わした流れ図である。
【図１０】本実施の形態でサービス提供アプリケーションの配備が行われたときのリクエスト番号採番部の処理を表わした流れ図である。
【図１１】本発明に関連する情報処理システムの一例についてその動作を表わした説明図である。
【図１２】図１１に示した情報処理システムの限界を示す説明図である。
【符号の説明】
【００４７】
２００  情報処理システム
２０１  クライアント計算機（クライアント端末）
２０３1  第１のサーバ計算機（特定サーバ）
２０３2  第２のサーバ計算機（分担処理用サーバ）
２０７  サービス配備部
２０８  サービス更新部
２１１  サービス処理部
２１２  リクエスト番号採番部
２１３  採番対象サービス管理テーブル
２１４、２３２  サービス提供アプリケーション部
２１５、２３６  リクエストトラッキング機能付きサービス提供アプリケーション部
２１６  主記憶装置
２３３  リクエスト番号取得処理埋め込み部
２３４  サーバ間通信変換部
２３５  ログ出力変換部
【図１】
2009110337.tif 000003
【図２】
2009110337.tif 000004
【図３】
2009110337.tif 000005
【図４】
2009110337.tif 000006
【図５】
2009110337.tif 000007
【図６】
2009110337.tif 000008
【図７】
2009110337.tif 000009
【図８】
2009110337.tif 000010
【図９】
2009110337.tif 000011
【図１０】
2009110337.tif 000012
【図１１】
2009110337.tif 000013
【図１２】
2009110337.tif 000014