(57)【特許請求の範囲】
【請求項１】
分散コンピューティング環境下で動作する情報処理装置であって、
イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を記憶する一連番号記憶手段と、
前記一連番号記憶手段に記憶された一連番号の配列の、空でない、最下位または最上位の少なくともいずれかの要素の値をインクリメントする第１の更新処理を行う第１の一連番号更新手段と、
呼び出し先の処理が復帰を待たない他の処理である場合は、前記一連番号記憶手段に記憶された一連番号の最下位または最上位の少なくともいずれかの要素に隣接する、空である要素の値を１インクリメントする第２の更新処理を行う第２の一連番号更新手段と、
前記第１の一連番号更新手段または前記第２の一連番号更新手段の少なくともいずれか１つによって更新された一連番号を含む電文を生成して、呼び出し先の処理を呼び出す呼び出し手段と
を備えることを特徴とする情報処理装置。
【請求項２】
呼び出し元から渡された、イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を少なくとも含む依頼電文を追加記憶するログ記憶手段と、
渡された電文を前記ログ記憶手段に出力して該ログ記憶手段に記憶された情報を更新するとともに、前記第１の一連番号更新手段を呼び出す証跡ログ出力手段と、
他の処理からの呼び出しを受け付けるとともに、該呼び出し元からの電文に含まれる一連番号を前記一連番号記憶手段に格納して前記証跡ログ出力手段を呼び出す処理受付手段とをさらに備え、
前記呼び出し手段は、
復帰を待つべき他の処理を呼び出す場合は、前記証跡ログ出力手段を呼び出し、前記一連番号記憶手段に記憶された一連番号を前記第１の更新処理後の一連番号に更新して電文を生成し、該生成した電文を呼び出し先の処理に渡して、該呼び出し先の処理から復帰すると後続処理を呼び出し、
復帰を待たない他の処理を呼び出す場合は、前記第２の一連番号更新手段を呼び出して前記第２の更新処理後の一連番号を含む電文を生成して、前記証跡ログ出力手段を呼び出すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
呼び出し元から渡された、イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を少なくとも含む依頼電文を追加記憶するログ記憶手段と、
渡された電文を前記ログ記憶手段に出力して該ログ記憶手段に記憶された情報を更新するとともに、前記第１の一連番号更新手段を呼び出す証跡ログ出力手段と、
他の処理からの呼び出しを受け付けるとともに、該呼び出し元からの電文に含まれる一連番号を前記一連番号記憶手段に格納して前記証跡ログ出力手段を呼び出す処理受付手段とをさらに備え、
前記呼び出し手段は、
前記証跡ログ出力手段を呼び出し、前記一連番号記憶手段に記憶された一連番号を前記第１の更新処理後の一連番号に更新して電文を生成し、
復帰を待つべき他の処理を呼び出す場合は、該生成した電文を呼び出し先の処理に渡して、該呼び出し先の処理から復帰すると後続処理を呼び出し、
復帰を待たない他の処理を呼び出す場合は、該生成した電文に含まれる一連番号を、前記第２の一連番号更新手段を呼び出して前記第２の更新処理後の一連番号に更新して、呼び出し先の処理を呼び出すことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
分散コンピューティング環境下で動作する情報処理装置のログ収集プログラムであって、
前記情報処理装置に、
イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を記憶する一連番号記憶手段に記憶された一連番号の配列の、空でない、最下位または最上位の少なくともいずれかの要素の値をインクリメントする第１の更新処理を行う第１の一連番号更新手順と、
呼び出し先の処理が復帰を待たない他の処理である場合は、前記一連番号記憶手段に記憶された一連番号の最下位または最上位の少なくともいずれかの要素に隣接する、空である要素の値を１インクリメントする第２の更新処理を行う第２の一連番号更新手順と、
前記第１の一連番号更新手順または前記第２の一連番号更新手順の少なくともいずれか１つによって更新された一連番号を含む電文を生成して、呼び出し先の処理を呼び出す呼び出し手順と
を実行させることを特徴とする情報処理装置のログ収集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散コンピューティング環境下で動作する情報処理装置及びそのログ収集プログラムに関する。
【背景技術】
【０００２】
近年、ＳＯＡ（Service  Oriented  Architecture）、いわゆるサービス指向アーキテクチャの広がりにより、独立した複数の業務システムで提供される機能を組み合わせ、１つの業務処理として提供する処理形態へのニーズが高まっている。
【０００３】
業務システム間の連携には、相手側の業務システムの結果を待ち受ける同期連動と、突き放しで処理の依頼を行う一方で自身の処理を続ける派生連動との２種類が存在する。
【０００４】
これらの連動においては、各業務システムがそれぞれ自由に相手先を指定可能であり、分散コンピューティング環境下で業務処理が動的に連動するため、１つのイベントが実際にどのような経路で処理されているのかを把握するのが難しくなっている。
【０００５】
そして、最近では、内部統制の法整備が進むに伴ってイベントの証跡を記録し、必要な時に指定したイベントの証跡を抽出する仕組みが要求されている。
【０００６】
例えば、特許文献１には、予め処理手順が規定されたシナリオに沿って一連の複数の処理を含むトランザクションを処理するに際して、親と子のトランザクションの履歴情報を関連付けておき、親のトランザクションにおける障害時に、子のトランザクションまで遡って打消処理を実行するトランザクション処理装置が開示されている。
【０００７】
これを具体的に説明すると、インスタンスに一意に付与されたキー番号、キー番号に一意に付与された連番、そして次のシナリオに派生連動が規定されている場合には子のインスタンスに付与された子キー番号をさらに含むログを出力するとともに、これらキー番号、連番及び子キー番号を含むログ管理情報をトランザクションを構成する各処理（アビリティ）間で受け渡す。
【０００８】
すなわち、同期連動のアビリティを呼び出す場合には、キー番号はそのまま引き継いで連番をカウントアップし、該カウントアップした連番及びキー番号を呼び出し先のアビリティに受け渡し、また、派生連動のアビリティを呼び出す場合には、新たに採番された子のキー番号を親のキー番号に紐付けてログとして保持しておくとともに当該子キー番号及び新たな連番を呼び出し先のアビリティに受け渡す。
【０００９】
例えば、依頼元から受け付けたイベントが図１６に示すアビリティ（１）〜（９）が規定されているとした時には、まずアビリティ（１）の実行時にキー番号１０１及び連番１をログとして出力し、アビリティ（１）の実行後に同期連動のアビリティ（２）を呼び出す。このとき、キー番号１０１をそのままにして連番１を２にカウントアップし、キー番号１０１及び連番２を含むログ管理情報を業務データに併せてアビリティ（２）に受け渡す。
【００１０】
また、アビリティ（２）の実行時には、キー番号１０１及び連番１をログとして出力し、アビリティ（２）の実行後に派生連動のアビリティ（５）を呼び出すこととなるが、この際には、新たに採番した子のキー番号１０２を親のキー番号１０１に対応付けてログとして保持しておく一方で該子のキー番号１０２を用いて新たな連番１からアビリティ（５）を継続させる。
【００１１】
このようにして、依頼元から受け付けたイベントに対し、予め規定されたアビリティ（１）〜（９）が遂行されるとともに、必要に応じてキー番号（親）との子のキー番号が紐付けられながら各アビリティのログが記憶管理されることになる。
【００１２】
【特許文献１】特開２００３−３４５６０９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来技術において収集しておいたログから当該イベントの証跡ログを検索するためには、分散環境において複数のコンピュータ上から出力される膨大な量の収集ログに対して、派生連動で処理が分岐する回数に比例して子キー番号で再検索をかけねばならず、証跡ログを効率的に取得することができないという問題があった。
【００１４】
例えば、図１６に示したようにイベントに係るトランザクション処理が行われた場合には、図１７に示すように、まずキー番号１０１を条件に収集ログを検索し、検索結果であるトランザクション処理（１）〜（４）の証跡ログから子キー番号１０２及び１０４を抽出する。
【００１５】
そして、子キー番号１０２及び１０４を条件に収集ログを再検索し、その検索結果であるアビリティ（５）、（６）及び（９）の証跡ログから子キー番号１０３を抽出し、さらには、子キー番号１０３を条件に収集ログを再検索し、その検索結果であるアビリティ（７）及び（８）を得てその証跡ログに子キー番号がないことを確認して初めて全証跡ログの取得が終了する。
【００１６】
また、上述した従来技術は、あくまでも予め規定されたシナリオに沿ってトランザクション処理を呼び出すことを前提にしたものであるため、呼び出す処理が動的に変更されるものでは処理順序を再現することができず、その汎用性には自ずから限界があるという問題もある。
【００１７】
すなわち、上記の従来技術では、一連の処理が１つでも成功しなかった場合に全ての処理を打ち消すこととしているが、必ずしも打消処理を実行させる必要はなく、１つの処理が失敗しても代替処理を試行する要件が存在する場合には対応することができない。
【００１８】
以上のように、分散環境において複数のコンピュータ上から出力される膨大な量の収集ログに対して検索を行う場合にいかにして検索量を低減させるか、さらには、いかにして処理手順再現を制約条件なしに実現するかが課題となっている。
【００１９】
そこで、本発明は、上述した従来技術による課題（問題点）を解消するためになされたものであり、分散コンピューティング環境下において指定イベントの証跡ログを効率的に取得するとともに、処理手順再現に係る汎用性を向上させることができる情報処理装置及びそのログ収集プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上述した課題を解決し、目的を達成するために、開示の装置は、分散コンピューティング環境下で動作する情報処理装置であって、イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を記憶する一連番号記憶手段と、前記一連番号記憶手段に記憶された一連番号の配列の、空でない、最下位または最上位の少なくともいずれかの要素の値をインクリメントする第１の更新処理を行う第１の一連番号更新手段と、呼び出し先の処理が復帰を待たない他の処理である場合は、前記一連番号記憶手段に記憶された一連番号の最下位または最上位の少なくともいずれかの要素に隣接する、空である要素の値を１インクリメントする第２の更新処理を行う第２の一連番号更新手段と、前記第１の一連番号更新手段または前記第２の一連番号更新手段の少なくともいずれか１つによって更新された一連番号を含む電文を生成して、呼び出し先の処理を呼び出す呼び出し手段とを有することを要件とする。
【発明の効果】
【００２１】
開示の装置によれば、分散コンピューティング環境下において指定イベントの証跡ログを効率的に取得するとともに、処理手順再現に係る汎用性を向上させるが可能になる。さらに、時系列な処理順序のみならず、論理的な呼び出し関係処理順を再現することも可能になる。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明に係る情報処理装置の好適な実施の形態を詳細に説明する。
【実施例１】
【００２３】
まず、本実施例にかかる情報処理装置（以下では、サーバ装置とする）の概要および特徴について説明する。図１は、本実施例に係るサーバ装置を含む分散コンピューティングシステムの構成を示す図である。
【００２４】
同図に示すように、分散コンピューティングシステム１は、サーバ装置１０Ｘと、サーバ装置１０Ｙと、サーバ装置１０Ｚとを有しており、業務上の一処理に相当するソフトウェアの機能をサービスと見立てそのサービスをこれらのサーバ装置１０Ｘ、１０Ｙ及び１０Ｚ上で連携させるＳＯＡ環境を構築している。
【００２５】
図１に示す例では、サーバ装置１０Ｘには、サービスＡに関する処理を行うサービスＡ処理部１００Ａが内在し、サーバ装置１０Ｙには、サービスＢ、Ｃ及びＤに関する処理を行うサービスＢ処理部１００Ｂ、サービスＣ処理部１００Ｃ及びサービスＤ処理部１００Ｄそれぞれが内在し、また、サーバ装置１０Ｚには、サービスα及びβに関する処理を行うサービスα処理部１００α及びサービスβ処理部１００βそれぞれが内在する。
【００２６】
説明の便宜上、サーバ装置１０Ｘ、１０Ｙ及び１０Ｚ間で特に機能的に差異がない場合には、サーバ装置１０と総称し、また、サービスＡ処理部１００Ａ〜サービスＤ処理部１００Ｄ、サービスα処理部１００α及びサービスβ処理部１００βの間で特に機能的に差異がない場合には、サービス処理部１００と総称する。
【００２７】
ここで、本実施例に係るサービス処理部１００は、ＳＯＡ環境下で全サービス共通のキー番号及び１以上の配列要素で表現される一連番号を含む共通ヘッダをサービス間で受け渡し、サービスが同期連動または派生連動時であるかによってインクリメントする要素を変えて一連番号を更新することを骨子とする。
【００２８】
各サービス処理部１００の間では、イベントを一意に識別可能なキー番号（要求元通番）と配列要素である一連番号１〜ｎ（図２参照）を保持する共有ヘッダに、呼び出し先のサービスへの業務データを併せて電文が生成され、その電文が受け渡しされる。
【００２９】
このように電文を授受させるに際して、各サービス処理部１００によって後述するログ記憶部２０に出力される一連番号の配列要素が完全重複しないように、サービス処理部１００では、呼び出し先の処理が同期連動または派生連動であるかによって更新対象とする一連番号の要素を変えてインクリメントを行う。
【００３０】
すなわち、サービス処理部１００は、呼び出し先の処理が同期連動である場合には、共通ヘッダ上の一連番号をｎから１に向かって降順に検索し、０でない値を最初に検出した要素をカウントアップする（図６参照）。
【００３１】
また、サービス処理部１００は、呼び出し先の処理が派生連動である場合には、共通ヘッダ上の一連番号を１からｎに向かって昇順に検索し、０の値を最初に検出した項目をカウントアップする（図９参照）。
【００３２】
その上で、各サービス処理部ごとに所定の記憶部に少なくとも共通ヘッダ部分の情報（キー番号及び一連番号）を含むログを出力して追加記憶させておけば、各サーバ装置１０ごとにログを収集することができる。
【００３３】
したがって、本実施例では、キー番号及び一連番号を含むログを収集することにより、指定イベントに対応するキー番号をして収集ログに検索を行えば、分散環境において複数のコンピュータ上から出力される膨大な量の収集ログに対して検索を行う場合でも検索量を低減させることができ、上記の従来技術のように、処理が分岐する派生連動を含むイベントであっても子キー番号で再検索を行う必要がなくなる結果、必要な証跡ログを一度に抽出することができる。
【００３４】
また、本実施例では、共通ヘッダにキー番号に併せて一連番号を保持させておくため、指定イベントの証跡ログ取得後に各レコードを並び替える場合に当該一連番号を用いてソートすることができ、論理的な呼び出し関係処理順を再現することが可能になる。
【００３５】
例えば、図３に示すように、タイムスタンプで証跡ログをソートした場合には、同じ時刻に処理が実行されたレコードが存在し、また、業務処理の流れもわからない。
【００３６】
加えて、各サーバ装置１０間での時刻同期の信頼度が必ずしも担保されているとは限らず、この点においても、タイムスタンプで証跡ログをソートしても業務処理の流れが把握しにくいものとなる。
【００３７】
一方、一連番号で証跡ログをソートした場合には、論理的な呼び出し関係が明確に再現されており、また、同期処理と派生処理との関係も明確に区別されているので、業務処理の遷移を一目で把握することができる。
【００３８】
また、本実施例では、同期連動及び派生連動が組み合わさった取引であってもキー番号及び一連番号を含むログを収集できるため、処理手順再現を行うに際して制約がなくなる結果、処理手順再現に係る汎用性を向上させることもできる。
【００３９】
続いて、本実施例に係るサーバ装置が内在するサービス処理部の構成について説明する。図４は、実施例１に係るサーバ装置が内在するサービス処理部の構成を示す機能ブロック図である。
【００４０】
図４に示すように、サービスＢ処理部１００Ｂは、業務アプリ１１０Ｂと、連動受付部１２０Ｂと、証跡ログ出力部１３０Ｂと、連動呼出部１４０Ｂとを有する。なお、ここでは、サービスＢ処理部１００Ｂに重点を置いてその詳細な構成を説明するが、他のサービス処理部１００も同様の構成を有する。
【００４１】
業務アプリ１１０Ｂは、サービスＢに関する業務処理を行うアプリケーションである。具体的には、他のサービス処理部１００から受け付けた依頼電文に含まれる業務データを用いて業務処理を行う。
【００４２】
連動受付部１２０Ｂは、他のサービス処理部１００からの呼び出しを受け付ける処理部である。詳細は図５及び図６を用いて後述するが、サービスＢの呼び出しを受け付けると、他のサービス処理部１００からの電文に含まれる共通ヘッダ及び業務データを証跡ログ出力部１３０を通じてログ記憶部２０に出力する。なお、呼び出しが同期連動である場合には、当該サービスＢ処理部１００Ｂで持ち回った共通ヘッダを呼び出し元のサービス処理部１００に返却する。
【００４３】
証跡ログ出力部１３０Ｂは、連動受付部１２０Ｂ又は連動呼出部１４０Ｂから渡された電文をログ記憶部２０に出力して該ログ記憶部２０に記憶された情報を更新するとともに、該電文に含まれる一連番号の配列の、空でない、最下位の要素の値をインクリメントする第１のカウントアップを行って一連番号を更新する処理部である。なお、業務アプリ１１０ＢよるサービスＢ実行後に業務処理が同期連動及び派生連動せずに終了する場合、終了証跡ログをログ記憶部２０に格納するのであれば、業務アプリ１１０Ｂから供給される共通ヘッダ内の一連番号に第１のカウントアップを行ってからログ記憶部２０に格納する必要がある。なお、証跡ログ出力部１３０Ｂは、特許請求の範囲における第１の一連番号更新手段及び証跡ログ出力手段の両方を併せたものに相当する。
【００４４】
連動呼出部１４０Ｂは、他のサービス処理部１００を呼び出す処理部である。詳細は図８及び図９を用いて後述するが、呼び出し先の処理が派生連動である場合には、証跡ログ出力部１３０Ｂから受け取った一連番号の最下位の要素に隣接する、空である要素の値を１インクリメントする第２のカウントアップを行う。なお、連動呼出部１４０Ｂは、特許請求の範囲における第２の一連番号更新手段及び呼び出し手段の両方の機能を有する。
【００４５】
次に、本実施例に係るサービス処理部の処理の流れについて説明する。なお、ここでは、（１）連動受付処理を説明してから（２）連動呼出処理を説明する。
【００４６】
（１）連動受付処理
前述したように、ここでは、本実施例に係る連動受付処理について説明する。図５は、実施例１に係る連動受付処理の手順を示すフローチャートである。
【００４７】
同図に示すように、連動受付部１２０によって他のサービス処理部１００からのサービスの依頼電文が受け付けられると（ステップＳ１０１肯定）、証跡ログ出力部１３０は、連動受付部１２０から渡された依頼電文、すなわち共通ヘッダ及び業務データをログ記憶部２０に出力して該ログ記憶部２０に記憶された情報を更新する（ステップＳ１０２）。
【００４８】
そして、証跡ログ出力部１３０は、当該電文に含まれる一連番号の配列の、空でない、最下位の要素の値をインクリメントする第１のカウントアップを行って一連番号を更新する（ステップＳ１０３）。
【００４９】
その後、連動受付部１２０は、第１のカウントアップが行われた一連番号を依頼電文に含めて業務アプリ１１０に受け渡して業務処理を行うように要請し（ステップＳ１０４）、処理を終了する。
【００５０】
図６を用いて具体的に説明すると、証跡ログ出力部１３０は、図６に示すように、キー番号「１０１」及び一連番号「３１０」である共通ヘッダ及び業務データを含む依頼電文を連動受付部１２０を介して受け付けると、そのまま依頼電文をログ記憶部２０に出力し、当該依頼電文を受付証跡ログとしてログ記憶部２０に格納する。
【００５１】
そして、証跡ログ出力部１３０は、共通ヘッダ上の一連番号をｎから１に向かって降順に検索し、０でない値を最初に検出した要素をカウントアップする第１のカウントアップを行い、第１のカウントアップ後の一連番号「３２０」を含む依頼電文を連動受付部１２０に渡す。なお、ここでは、一連番号の要素数が３つである場合を例示したが、一連番号の要素数は任意に設定することができる。
【００５２】
第１のカウントアップを図７を用いて具体的に説明すると、図７に示す例では、一連番号１から一連番号５までの５つの要素が設けられており、一連番号５、一連番号４、一連番号３、一連番号２の降順に０以外の値を検索し、一連番号２で初めて値「１」が検出されるので、一連番号２の値「１」を１インクリメントし、一連番号を「３２０００」とする。
【００５３】
このようにして、受付証跡ログをログ記憶部２０に格納するとともに、呼出証跡ログを出力する際に一連番号が重複しないように一連番号を同期連動と同様にカウントアップする。
【００５４】
（２）連動呼出処理
続いて、本実施例に係る連動呼出処理について説明する。図８は、実施例１に係る連動呼出処理の手順を示すフローチャートである。
【００５５】
図８に示すように、業務アプリ１１０から共通ヘッダ及び次の呼び出し先に処理させるべき業務データを受け付けると（ステップＳ３０１肯定）、連動呼出部１４０は、図５のＳ１０２、Ｓ１０３に示す証跡ログ出力の処理と同様に、共通ヘッダ及び業務データを証跡ログ出力部１３０を通じてログ記憶部２０に出力する（ステップＳ３０２）。なお、この時、証跡ログ出力部１３０によって共通ヘッダ内の一連番号に対して第１のカウントアップが行われる。
【００５６】
そして、連動呼出部１４０は、証跡ログ出力部１３０によって第１のカウントアップが行われた一連番号、そしてキー番号の複製を行って連動電文の共通ヘッダの元データを生成する（ステップＳ３０３）。
【００５７】
ここで、呼び出し先の処理が同期連動である場合（ステップＳ３０４肯定）には、連動呼出部１４０は、上記のステップＳ３０３で生成した連動電文の共通ヘッダをそのまま用いて他のサービス処理部１００に同期連動呼出を行い（ステップＳ３０５）、呼出先から返却された連動電文共通ヘッダを当該サービス処理部１００内の共通ヘッダに転記し（ステップＳ３０６）、処理を終了する。
【００５８】
一方、呼び出し先の処理が派生連動である場合（ステップＳ３０４否定）には、連動呼出部１４０は、上記のステップＳ３０３で生成した連動電文の共通ヘッダ内の一連番号に対して当該一連番号の最下位の要素に隣接する、空である要素の値を１インクリメントする第２のカウントアップを行う（ステップＳ３０７）。
【００５９】
その後、連動呼出部１４０は、第２のカウントアップを行った一連番号を含む共通ヘッダ及び次の呼び出し先に処理させるべき業務データを有する連動電文を他のサービス処理部１００に派生連動呼出を行い（ステップＳ３０８）、処理を終了する。
【００６０】
第２のカウントアップを図９を用いて具体的に説明すると、図９に示す例では、一連番号１から一連番号５までの５つの要素が設けられており、一連番号１、一連番号２、一連番号３の昇順に０の値を検索し、一連番号３で初めて値「０」が検出されるので、一連番号３の値「０」を１インクリメントし、一連番号を「３１１００」とする。
【００６１】
このようにして、呼出証跡ログをログ記憶部２０に格納するとともに、同期連動と派生連動であるかによって第１のカウントアップ及び第２のカウントアップを切り分けて一連番号を採番する。
【００６２】
図１０は、依頼元からイベント（キー番号１０１）が呼び出された場合における一連番号の遷移例を示す図である。図１０に示す例では、依頼元３０から受け付けたイベントに対し、業務処理がサービスＡからサービスＢ及びサービスＣに派生連動し、また、業務処理がサービスＡからサービスＣに同期連動し、業務処理が同一サービスＣ内で派生連動した場合を示している。
【００６３】
図１０に示した例において、キー番号１０１を検索条件として各サーバ装置１０のログ記憶部２０からログを検索し、この検索により取得した証跡ログを一連番号で並び替えると、図１１に示す呼び出し関係処理順を再現することができ、図１０及び図１１に示す例からは、サービスを行うに際して受証跡ログ及び呼出証跡ログをログ記憶部２０に格納させつつも同期連動と派生連動を切り分けて一連番号を緻密に採番できることが把握できる。
【００６４】
上述してきたように、本実施例では、ＳＯＡ環境下で全サービス共通のキー番号及び１以上の配列要素で表現される一連番号を含む共通ヘッダをサービス間で受け渡し、サービスが同期連動または派生連動時であるかによってインクリメントする要素を変えて一連番号を更新するように構成したので、分散環境において複数のコンピュータ上から出力される膨大な量の収集ログに対して検索を行う場合でも検索量を低減させるとともに、処理手順再現を制約条件なしに実現することができ、指定イベントの証跡ログを効率的に取得するとともに、処理手順再現に係る汎用性を向上させることが可能になる。
【００６５】
また、本実施例では、共通ヘッダにキー番号に併せて一連番号を保持させる用に構成したので、指定イベントの証跡ログ取得後に各レコードを並び替える場合に当該一連番号に用いてソートすることができ、論理的な呼び出し関係処理順を再現することも可能になる。
【００６６】
さらに、本実施例では、呼び出し元から渡されたキー番号と一連番号を少なくとも含む依頼電文をログとして追加記憶し、連動処理の呼び出し受付時または呼び出し時に渡された電文を出力して記憶したログを更新するとともに、その電文に含まれる一連番号に第１のカウントアップを行い、同期連動を呼び出す場合には、第１のカウントアップ後の一連番号を含む電文をそのまま呼び出し先の処理に渡して、該呼び出し先の処理から復帰すると後続処理を呼び出し、派生連動を呼び出す場合には、第１のカウントアップ後の一連番号に第２のカウントアップをさらに行って第２のカウントアップ後の一連番号に更新して、呼び出し先の処理を呼び出すように構成したので、他の処理の呼び出しを行うソフトウェア構成を簡易なものにするとともに、受付証跡ログ及び呼出証跡ログを適確に追加記憶しつつも一連番号の重複採番を防止することが可能になる。
【実施例２】
【００６７】
さて、上述した実施例１では、呼び出し時において呼び出し先の処理が同期連動であるか、或いは派生連動であるかを問わず、証跡ログ出力部１３０に一連番号の第１のカウントアップを行わせた後にその一連番号をログ記憶部２０に出力する例を説明したが、連動呼出部１４０のソフトウェア構成が簡易になる反面で、派生先のサービス処理部１００で取られるログの一連番号が呼び出し元の直前の一連番号ではなく、図１０に示した（一）、（二）及び（四）の部分のごとく、呼び出し後に取得したログの一連番号の枝番に見えてしまう。
【００６８】
そこで、実施例２では、視聴者に誤認識を与えるのを防止する観点から、他の処理を呼び出すにあたって呼び出し先の処理が同期連動或いは派生連動であるのかを最初に判定し、以降の処理を同期連動または派生連動であるのかを完全に区別して行うことに、実施例１との相違点がある。
【００６９】
以下では、図１２に示すフローチャートを用いてこの相違点を具体的に説明する。図１２は、実施例２に係る連動呼出処理の手順を示すフローチャートである。
【００７０】
図１２に示すように、業務アプリ１１０から共通ヘッダ及び次の呼び出し先に処理させるべき業務データを受け付けると（ステップＳ５０１肯定）、連動呼出部１４０は、呼び出し先の処理が同期連動であるか否かを判定する（ステップＳ５０２）。
【００７１】
ここで、呼び出し先の処理が同期連動である場合（ステップＳ５０２肯定）には、連動呼出部１４０は、図５のＳ１０２、Ｓ１０３に示す証跡ログ出力の処理と同様に、共通ヘッダ及び業務データを証跡ログ出力部１３０を通じてログ記憶部２０に出力する（ステップＳ５０３）。なお、この時、証跡ログ出力部１３０によって共通ヘッダ内の一連番号に対して第１のカウントアップが行われる。
【００７２】
そして、連動呼出部１４０は、証跡ログ出力部１３０によって第１のカウントアップが行われた一連番号、そしてキー番号の複製を行って連動電文の共通ヘッダの元データを生成し（ステップＳ５０４）、該生成した連動電文の共通ヘッダを用いて他のサービス処理部１００に同期連動呼出を行い（ステップＳ５０５）、呼出先から返却された連動電文共通ヘッダを当該サービス処理部１００内の共通ヘッダに転記し（ステップＳ５０６）、処理を終了する。
【００７３】
一方、呼び出し先の処理が派生連動である場合（ステップＳ５０２否定）には、連動呼出部１４０は、証跡ログ出力部１３０に呼出証跡ログを出力するに先立って、業務アプリ１１０から受け取った共通ヘッダの複製を行って連動電文の共通ヘッダの元データを生成する（ステップＳ５０７）。
【００７４】
そして、連動呼出部１４０は、上記のステップＳ５０７で生成した連動電文の共通ヘッダ内の一連番号に対して当該一連番号の最下位の要素に隣接する、空である要素の値を１インクリメントする第２のカウントアップを行い（ステップＳ５０８）、ここで初めて、図５のＳ１０２、Ｓ１０３に示す証跡ログ出力の処理と同様に、業務アプリ１１０から受け取った共通ヘッダ及び業務データを証跡ログ出力部１３０を通じてログ記憶部２０に出力する（ステップＳ５０９）。なお、この時、証跡ログ出力部１３０によって共通ヘッダ内の一連番号に対して第１のカウントアップが行われる。
【００７５】
その後、連動呼出部１４０は、第２のカウントアップを行った一連番号を含む共通ヘッダ及び次の呼び出し先に処理させるべき業務データを有する連動電文を他のサービス処理部１００に派生連動呼出を行い（ステップＳ５１０）、処理を終了する。
【００７６】
このように、呼び出し先の処理が同期連動或いは派生連動であるのかを最初に判定し、以降の処理を同期連動または派生連動であるのかを完全に区別して行う。
【００７７】
図１３に示す例では、図１０と同様に、依頼元３０から受け付けたイベントに対し、業務処理がサービスＡからサービスＢ及びサービスＣに派生連動し、また、業務処理がサービスＡからサービスＣに同期連動し、業務処理が同一サービスＣ内で派生連動した場合を示している場合を示している。
【００７８】
そして、図１３に示した例において、キー番号１０１を検索条件として各サーバ装置１０のログ記憶部２０からログを検索し、この検索により取得した証跡ログを一連番号で並び替えると、図１４に示す呼び出し関係処理順を再現することができる。
【００７９】
ここで、図１３及び図１４に示した例においては、図１０及び図１１に示したものとは、依頼元からイベント（キー番号１０１）が呼び出された場合における一連番号の遷移が異なる。
【００８０】
すなわち、図１３及び図１４に示した（一）、（二）及び（四）の部分においては、図１０及び図１１に示した（一）、（二）及び（四）の部分のごとく、派生先のサービス処理部１００で取られるログの一連番号が呼び出し後に取得したログの一連番号の枝番に誤認されることなく、呼び出し元の直前の一連番号の枝番であることを明示されていることがわかる。
【００８１】
上述してきたように、呼び出し元から渡されたキー番号と一連番号を少なくとも含む依頼電文をログとして追加記憶し、連動処理の呼び出し受付時または呼び出し時に渡された電文を出力して記憶したログを更新するとともに、その電文に含まれる一連番号に第１のカウントアップを行い、同期連動を呼び出す場合には、第１のカウントアップ後の一連番号を含む電文をそのまま呼び出し先の処理に渡して、該呼び出し先の処理から復帰すると後続処理を呼び出し、派生連動を呼び出す場合には、第２のカウントアップを行って第２のカウントアップ後の一連番号を含む電文を生成してから第１のカウントアップを伴うログ更新を行うように構成したので、派生連動後に採番される一連番号を呼び出し元の直前の一連番号と関連付けることができ、論理的な呼び出し関係処理順をより正確に再現することが可能になる。
【実施例３】
【００８２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例１及び２以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例３として、本発明に含まれる他の実施例を説明する。
【００８３】
（１）一連番号
例えば、上記の実施例１及び２では、配列要素である一連番号１〜ｎのうち最下位の値から第１及び第２のカウントアップを行う場合を例示したが、必ずしも最下位の値からカウントアップを行う必要はなく、最上位の値から第１及び第２のカウントアップを行う場合にも本発明を同様に適用することができる。
【００８４】
（２）システム構成等
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
また、図１、図４、図１０、図１３に示したサーバ装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８６】
図１５は、実施例１にかかるサーバ装置１０を構成するコンピュータ２００のハードウェア構成を示す図（一例）である。図１５に示すように、このコンピュータ２００は、入力装置２０１、ディスプレイ２０２、信号を復調する復調装置２０３、信号を変調する変調装置２０４、記憶媒体からデータを読み取る媒体読取装置２０５、他の装置（例えば、分散環境に存在する他のサーバ装置）との間でデータの送受信を行う通信装置２０６、ＣＰＵ（Central  Processing  Unit）２０７、メモリ２０８をバス２０９で接続して構成される。
【００８７】
ここで、メモリ２０８には、上記したサーバ装置１０の機能と同様の機能を発揮するサービス処理プログラム２０８ｂが記憶されている。ＣＰＵ２０７が、サービス処理プログラム２０８ｂを読み出して実行することにより、サービス処理プロセス２０７ａが起動される。ここで、サービス処理プロセス２０７ａは、図４に示した、サービス処理部１００が内在する業務アプリ１１０、連動受付部１２０、証跡ログ出力部１３０、連動呼出部１４０に対応する。
【００８８】
また、メモリ２０８は、上述のサーバ装置１０が利用する各種データ２０８ａを記憶する。ＣＰＵ２０７は、メモリ２０８に格納された各種データ２０８ａを読み出し、読み出した各種データ２０８ａを利用して、上述した連動受付処理や連動呼出処理を行う。
【００８９】
ところで、図１５に示したサービス処理プログラム２０８ｂは、必ずしも最初からメモリ２０８に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などにサービス処理プログラム２０８ｂを記憶しておき、コンピュータがこれらからサービス処理プログラム２０８ｂを読み出して実行するようにしてもよい。
【００９０】
以上の実施例１及び２を含む実施形態に関し、更に以下の付記を開示する。
【００９１】
（付記１）分散コンピューティング環境下で動作する情報処理装置であって、
イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を記憶する一連番号記憶手段と、
前記一連番号記憶手段に記憶された一連番号の配列の、空でない、最下位または最上位の少なくともいずれかの要素の値をインクリメントする第１の更新処理を行う第１の一連番号更新手段と、
呼び出し先の処理が復帰を待たない他の処理である場合は、前記一連番号記憶手段に記憶された一連番号の最下位または最上位の少なくともいずれかの要素に隣接する、空である要素の値を１インクリメントする第２の更新処理を行う第２の一連番号更新手段と、
前記第１の一連番号更新手段または前記第２の一連番号更新手段の少なくともいずれか１つによって更新された一連番号を含む電文を生成して、呼び出し先の処理を呼び出す呼び出し手段と
を備えることを特徴とする情報処理装置。
【００９２】
（付記２）呼び出し元から渡された、イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を少なくとも含む依頼電文を追加記憶するログ記憶手段と、
渡された電文を前記ログ記憶手段に出力して該ログ記憶手段に記憶された情報を更新するとともに、前記第１の一連番号更新手段を呼び出す証跡ログ出力手段と、
他の処理からの呼び出しを受け付けるとともに、該呼び出し元からの電文に含まれる一連番号を前記一連番号記憶手段に格納して前記証跡ログ出力手段を呼び出す処理受付手段とをさらに備え、
前記呼び出し手段は、
復帰を待つべき他の処理を呼び出す場合は、前記証跡ログ出力手段を呼び出し、前記一連番号記憶手段に記憶された一連番号を前記第１の更新処理後の一連番号に更新して電文を生成し、該生成した電文を呼び出し先の処理に渡して、該呼び出し先の処理から復帰すると後続処理を呼び出し、
復帰を待たない他の処理を呼び出す場合は、前記第２の一連番号更新手段を呼び出して前記第２の更新処理後の一連番号を含む電文を生成して、前記証跡ログ出力手段を呼び出すことを特徴とする付記１に記載の情報処理装置。
【００９３】
（付記３）呼び出し元から渡された、イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を少なくとも含む依頼電文を追加記憶するログ記憶手段と、
渡された電文を前記ログ記憶手段に出力して該ログ記憶手段に記憶された情報を更新するとともに、前記第１の一連番号更新手段を呼び出す証跡ログ出力手段と、
他の処理からの呼び出しを受け付けるとともに、該呼び出し元からの電文に含まれる一連番号を前記一連番号記憶手段に格納して前記証跡ログ出力手段を呼び出す処理受付手段とをさらに備え、
前記呼び出し手段は、
前記証跡ログ出力手段を呼び出し、前記一連番号記憶手段に記憶された一連番号を前記第１の更新処理後の一連番号に更新して電文を生成し、
復帰を待つべき他の処理を呼び出す場合は、該生成した電文を呼び出し先の処理に渡して、該呼び出し先の処理から復帰すると後続処理を呼び出し、
復帰を待たない他の処理を呼び出す場合は、該生成した電文に含まれる一連番号を、前記第２の一連番号更新手段を呼び出して前記第２の更新処理後の一連番号に更新して、呼び出し先の処理を呼び出すことを特徴とする付記１に記載の情報処理装置。
【００９４】
（付記４）分散コンピューティング環境下で動作する情報処理装置のログ収集プログラムであって、
前記情報処理装置に、
イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を記憶する一連番号記憶手段に記憶された一連番号の配列の、空でない、最下位または最上位の少なくともいずれかの要素の値をインクリメントする第１の更新処理を行う第１の一連番号更新手順と、
呼び出し先の処理が復帰を待たない他の処理である場合は、前記一連番号記憶手段に記憶された一連番号の最下位または最上位の少なくともいずれかの要素に隣接する、空である要素の値を１インクリメントする第２の更新処理を行う第２の一連番号更新手順と、
前記第１の一連番号更新手順または前記第２の一連番号更新手順の少なくともいずれか１つによって更新された一連番号を含む電文を生成して、呼び出し先の処理を呼び出す呼び出し手順と
を実行させることを特徴とする情報処理装置のログ収集プログラム。
【００９５】
（付記５）分散コンピューティング環境下で動作する情報処理装置のログ収集方法であって、
前記情報処理装置が、
イベントを一意に識別可能なイベント識別子と１以上の配列要素で表現される一連番号を記憶する一連番号記憶手段に記憶された一連番号の配列の、空でない、最下位または最上位の少なくともいずれかの要素の値をインクリメントする第１の更新処理を行う第１の一連番号更新工程と、
呼び出し先の処理が復帰を待たない他の処理である場合は、前記一連番号記憶手段に記憶された一連番号の最下位または最上位の少なくともいずれかの要素に隣接する、空である要素の値を１インクリメントする第２の更新処理を行う第２の一連番号更新工程と、
前記第１の一連番号更新工程または前記第２の一連番号更新工程の少なくともいずれか１つによって更新された一連番号を含む電文を生成して、呼び出し先の処理を呼び出す呼び出し工程と
を実行することを特徴とする情報処理装置のログ収集方法。
【図面の簡単な説明】
【００９６】
【図１】実施例１に係るサーバ装置を含む分散コンピューティングシステムのシステム構成を示すシステム構成図である。
【図２】共通ヘッダ上の保有項目の一例を示す図である。
【図３】タイムスタンプまたは一連番号でソートした場合の処理手順再現結果の相違を説明する説明図である。
【図４】実施例１に係るサーバ装置が内在するサービス処理部の構成を示す機能ブロック図である。
【図５】実施例１に係る連動受付処理の手順を示すフローチャートである。
【図６】証跡ログ出力部の処理内容を説明するための説明図である。
【図７】第１のカウントアップの一例を示す図である。
【図８】実施例１に係る連動呼出処理の手順を示すフローチャートである。
【図９】第２のカウントアップの一例を示す図である。
【図１０】依頼元からイベントが呼び出された場合における一連番号の遷移例を示す図である。
【図１１】一連番号による処理手順再現の一例を示す図である。
【図１２】実施例２に係る連動呼出処理の手順を示すフローチャートである。
【図１３】依頼元からイベントが呼び出された場合における一連番号の遷移例を示す図である。
【図１４】一連番号による処理手順再現の一例を示す図である。
【図１５】実施例１にかかるサーバ装置を構成するコンピュータのハードウェア構成を示す図である。
【図１６】従来技術における各アビリティ間で受け渡しされるログ管理情報の一例を示す図である。
【図１７】従来技術における証跡ログの検索要領を説明するための説明図である。
【符号の説明】
【００９７】
１    分散コンピューティングシステム
１０    サーバ装置
１００    サービス処理部
１１０    業務アプリ
１２０    連動受付部
１３０    証跡ログ出力部
１４０    連動呼出部
２００    コンピュータ
２０１    入力装置
２０２    ディスプレイ
２０３    復調装置
２０４    変調装置
２０５    媒体読取装置
２０６    通信装置
２０７    ＣＰＵ
２０７ａ  サービス処理プロセス
２０８    メモリ
２０８ａ  各種データ
２０８ｂ  サービス処理プログラム
２０９    バス
【図１】
0004952635.tif 000002
【図２】
0004952635.tif 000003
【図３】
0004952635.tif 000004
【図４】
0004952635.tif 000005
【図５】
0004952635.tif 000006
【図６】
0004952635.tif 000007
【図７】
0004952635.tif 000008
【図８】
0004952635.tif 000009
【図９】
0004952635.tif 000010
【図１０】
0004952635.tif 000011
【図１１】
0004952635.tif 000012
【図１２】
0004952635.tif 000013
【図１３】
0004952635.tif 000014
【図１４】
0004952635.tif 000015
【図１５】
0004952635.tif 000016
【図１６】
0004952635.tif 000017
【図１７】
0004952635.tif 000018