(57)【特許請求の範囲】
【請求項１】
第１サブシステムが処理したデータに所定の処理を実行し、第３サブシステムのデータ処理の対象となるデータを生成する第２サブシステムを含む計算機システムを管理する管理装置であって、  前記第１、第２及び第３サブシステムの各々で処理するデータの入力元サブシステム及び出力先サブシステムを示す情報が含まれた処理履歴情報並びに該入力元及び出力先サブシステムのデータ入出力の契機を示す情報が含まれた契機情報を取得し、  前記処理履歴情報から、前記第１、第２及び第３サブステムにおけるデータ入出力の依存関係を検出し、  前記依存関係に基づいて、入力元が存在しないサブシステムの次のサブシステム以降の夫々について、前記契機情報を参照して、該次のサブシステム以降のサブシステムの複製契機を演算し、  前記複製契機に応じて、前記計算機システムと異なる他の計算機システム内に前記次のサブシステム以降のサブシステム夫々の複製を生成させる管理装置。
【請求項２】
請求項１に記載の管理装置であって、  前記依存関係を用いて、前記第１、第２及び第３サブシステムのうち、データ入力元が、他のサブシステムのデータ出力先の関係にあるサブシステムがあるかを判定し、  判定の結果、データ入力元が他のサブシステムのデータ出力先の関係にあるサブシステムがある場合、前記複製契機を演算しない管理装置。
【請求項３】
請求項２に記載の管理装置であって、  判定の結果、データ入力元が他のサブシステムのデータ出力先の関係にあるサブシステムがある場合、その旨を出力する管理装置。
【請求項４】
請求項１に記載の管理装置であって、  前記契機情報及び複製契機における契機を時間とする管理装置。
【請求項５】
請求項１に記載の管理装置であって、  前記複製契機に応じて前記次のサブシステム以降のサブシステム夫々の複製を生成させる場合、  該複製前に、複製開始が可能な状態に有る旨を出力し、  複製開始指示があるまで、前記複製を待機する管理装置。
【請求項６】
第１サブシステムが処理したデータに所定の処理を実行し、第３サブシステムのデータ処理の対象となるデータを生成する第２サブシステムを含む計算機システムを管理する方法であって、  前記計算機システムの管理部が、  前記第１、第２及び第３サブシステムの各々で処理するデータの入力元サブシステム及び出力先サブシステムを示す情報が含まれた処理履歴情報並びに該入力元及び出力先サブシステムのデータ入出力の契機を示す情報が含まれた契機情報を取得し、  前記処理履歴情報から、前記第１、第２及び第３サブステムにおけるデータ入出力の依存関係を検出し、  前記依存関係に基づいて、入力元が存在しないサブシステムの次のサブシステム以降の夫々について、前記契機情報を参照して、該次のサブシステム以降のサブシステムの複製契機を演算し、  前記複製契機に応じて、前記計算機システムと異なる他の計算機システム内に前記次のサブシステム以降のサブシステム夫々の複製を生成させる管理方法。
【請求項７】
第１サブシステムが処理したデータに所定の処理を実行し、第３サブシステムのデータ処理の対象となるデータを生成する第２サブシステムを含む計算機システムを管理するコンピュータに、  前記第１、第２及び第３サブシステムの各々で処理するデータの入力元サブシステム及び出力先サブシステムを示す情報が含まれた処理履歴情報並びに該入力元及び出力先サブシステムのデータ入出力の契機を示す情報が含まれた契機情報を取得させるステップと、  前記処理履歴情報から、前記第１、第２及び第３サブステムにおけるデータ入出力の依存関係を検出させるステップと、  前記依存関係に基づいて、入力元が存在しないサブシステムの次のサブシステム以降の夫々について、前記契機情報を参照して、該次のサブシステム以降のサブシステムの複製契機を演算させるステップと、  前記複製契機に応じて、前記計算機システムと異なる他の計算機システム内に前記次のサブシステム以降のサブシステム夫々の複製を生成させるステップとを実行させるプログラムを格納するコンピュータ読取可能な非一時的記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、各サブシステム間でデータ伝播を行う計算機システムにおいて、各サブシステムの複製を行う際に、サブシステム間のデータ整合性を管理する管理装置、管理方法及びプログラムを格納する記録媒体に関する。
【背景技術】
【０００２】  従来からシステムの冗長化や拡張等を目的とし、計算機の構成をイメージデータとして複製して、新たな計算機システムを作成する技術が知られている。例えば、特許文献１には、時刻指定または定期的にサーバのスナップショットを作成し、サーバに障害が生じた場合に、スナップショットから新たなサーバを構築し、システムを復旧することができる技術が開示されている。【０００３】  近年のクラウド環境やビッグデータ処理等を実現する大規模計算機システムは、システム構成が大規模且つ複雑化する傾向にある。単に、システムを構成する物理計算機の数が増加するばかりではなく、仮想化技術の発達もあり、特定の処理を行うサーバ（仮想サーバを含む。サブシステムとして構成されることもある。）が互いに連携しあって一つの処理結果を出力する計算機システムを構成すること実現されており、その構成は複雑さが益々高くなってきている。【０００４】  このような互いに連携して処理を行うシステムの一例として、データ形式が異なる構造化、半構造化及び非構造化データを管理し、これらの関係性を動的に導き出し、クライアント等からの要求に対する応答結果として出力する計算機システムがある。【０００５】  このシステムでは、例えば、上述のような種々のデータを格納するデータソースから所定のデータを収集して所定のデータ形式への変換等が行われた処理後データを生成するＥＴＬ（Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ）と、ＥＴＬが生成した処理後データ間の関連性等を検索又は分析等するための元となる処理後データを生成するＤＷＨ（Ｄａｔａ  ＷａｒｅＨｏｕｓｅ）と、ＤＷＨに格納された処理後データを検索や分析し、その結果としての処理後データを生成する検索及び分析サーバといった解析用機能部等から構成される場合もある。ＥＴＬによってデータソースから収集されたデータは、所定契機（例えば、所定時刻）に、ＥＴＬからＤＷＨに伝播（クローリング等）され、その後、ＤＷＨから検索サーバや分析サーバに伝播（クローリング等）されるようになっている。  そして、データソースに発生した更新を各機能サーバ（機能部）に反映させるため、所定の契機（例えば、所定時間間隔）で、データソースから検索及び分析サーバへのデータ伝播を順次繰り返すようになっている。即ちデータソースからクローリングされたデータが検索及び分析サーバに伝播し終わった時点で、計算機システム内の各機能サーバ（部）が保持するデータの整合性が確保されるといえる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−６００５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】  さて、上述のように構成される計算機システムの複製を作成する場合、特許文献１に開示されるような単一の計算機の複製技術では実現し得ない種々の課題がある。【０００８】  データソースから各機能サーバ（部）を経由してデータが伝播途中である場合には、各機能サーバ（部）に保持されたデータの整合性を欠く虞がある。例えば、データソースが更新され、その更新後データを収集したＥＴＬ及びＤＷＨ間でデータのクローリングが実施されているとき、その時点で検索サーバや分析サーバに保持されているデータは、ＥＴＬとＤＷＨでクローリング処理されている更新後データより前のデータである（即ちデータソースの方針が反映される前のデータを保持する）。【０００９】  このようなタイミングで、特許文献１の技術を利用して計算機システムの複製を行うと、複製されたシステムの各機能サーバ（部）には整合性のないデータが保持されることとなる。即ち複製システムの運用を開始する場合に、先ず複製システム内の各機能サーバ間でデータの整合を図らなければならないという問題を招来する。【００１０】  複製システムの用途は、単に予備系システムを構築することだけに留まらず、現用系の障害発生時の切替先としてや、現用系の負荷増大に対処するシステム拡張用というスケールアウト先として利用する場合もある。複製システム内の運用開始前にデータの整合性を図ることは利便性を欠くと共に即時運用の面でも大きな課題となる。【００１１】  また、複製システムを処理動作のテスト目的で利用することも一般的に行われているが、処理テストを行う場合にも各機能サーバ（部）が保持するデータの整合性が保証されていなければ、テスト結果の検証は困難である。特に、大量データを処理対象とする計算機システムであればあるほど、データの整合性を保証するための処理もその分時間を要するため、著しく利便性を欠くという課題もある。【００１２】  これら例のように、データに処理を施して次の機能サーバ（サブシステム）に伝播して利用する計算機システムの複製を行う場合、各機能サーバ（サブシステム）間でのデータの整合性を考慮した複製契機を管理する必要がある。
【課題を解決するための手段】
【００１３】  上記課題を解決するために、例えば、請求項１に記載の発明を適用する。即ち第１サブシステムが処理したデータに所定の処理を実行し、第３サブシステムのデータ処理の対象となるデータを生成する第２サブシステムを含む計算機システムを管理する管理装置であって、前記第１、第２及び第３サブシステムの各々で処理するデータの入力元サブシステム及び出力先サブシステムを示す情報が含まれた処理履歴情報並びに該入力元及び出力先サブシステムのデータ入出力の契機を示す情報が含まれた契機情報を取得し、前記処理履歴情報から、前記第１、第２及び第３サブステムにおけるデータ入出力の依存関係を検出し、前記依存関係に基づいて、入力元が存在しないサブシステムの次のサブシステム以降の夫々について、前記契機情報を参照して、該次のサブシステム以降のサブシステムの複製契機を演算し、前記複製契機に応じて、前記計算機システムと異なる他の計算機システム内に前記次のサブシステム以降のサブシステム夫々の複製を生成させる管理装置である。
【発明の効果】
【００１４】  本発明の一側面によれば、データが伝播される各サブシステム（機能部）間でデータ整合性が保証された複製契機を決定することができる。  本発明の他の課題や効果は、以下の実施形態の説明から、より明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】本発明を適用した第１実施形態である計算機システムの概要を示す模式図である。
【図２】本実施形態における計算機システムの構成例を示すブロック図である。
【図３】本実施形態におけるサーバ構成情報の例を示す模式図である。
【図４】本実施形態における処理情報の例を示す模式図である。
【図５】本実施形態における処理スケジュール情報の例を示す模式図である。
【図６】本実施形態における有向グラフ表の例を示す模式図である。
【図７】本実施形態における計算機システムのデータ伝播（クローリング等）の順を概念的に示した概念図である。
【図８】本実施形態における複製順序表の例を示す模式図である。
【図９】本実施形態における複製時刻表の例を示す模式図である。
【図１０】本実施形態におけるサーバの複製手順の全体処理例を示すフロー図である。
【図１１】本実施形態における有向グラフ表を作成する処理例を示すフロー図である。
【図１２】本実施形態における探索開始サーバを決定する処理例を示すフロー図である。
【図１３】本実施形態における有向グラフ表で閉路の存在有無を確認する処理例を示すフロー図である。
【図１４】図１３に示す閉路の存在有無を確認する処理において、再帰関数を用いた処理例を示すフロー図である。
【図１５】本実施形態におけるサーバ複製順序導出の処理例を示すフロー図である。
【図１６】図１５に示すサーバ複製順序導出の処理において、サーバ番号付け関数を用いる処理を示すフロー図である。
【図１７】本実施形態における複製処理時刻導出の処理例を示すフロー図である。
【図１８】本発明を適用した第２実施形態である計算機システムの全体処理例を示すフロー図である。
【発明を実施するための形態】
【００１６】  〔第１実施形態〕  以下、図面を用いて発明を実施するための形態について説明する。先ず、本実施形態の概要について説明する。  図１に、本発明を適用した計算機システム1の概要を模式的に示す。  計算機システム1には、第１システム１００及びその複製である第２システム２００が含まれる。第１システム１００には、有線又は無線のネットワーク１０が接続され、クライアント１９０群と通信可能に接続される。クライアント１９０から送信された各種の要求に対し、処理結果を応答するようになっている。また、第２システム２００にもネットワーク１０が接続され、現用として稼動する際には、クライアント１９０群と通信が行われ、種々の処理を行うようになっている。
【００１７】  第１システム１００には、種々のサブシステムを含む。サブシステムは、特定の処理を実行する機能部を意味するものとする。例えば、所定のアプリ、ミドルウェアやＯＳを物理的又は論理的（例えば仮想システム）に構築し、所定の入力に対し、所定の出力を実行する単位である。本実施形態では、分析サーバ１１０、検索サーバ１２０、ＤＷＨ１３０及びＥＴＬ１４０といった機能サーバがサブシステムの例として含まれるものとする。以下、各機能サーバをサブシステムと呼ぶ場合がある。
【００１８】  システム外部のデータソース１５０（サブシステムに含まれる。）に格納されたデータは、所定の契機（本例では、所定の時刻とする。）で、ＥＬＴ１４０にクローリングされ、次いで、所定の時刻にＤＷＨ１３０にクローリングされ、その後、所定の時刻に、分析サーバ１１０及び検索サーバ１２０にそれぞれクローリングされて伝播されるようになっている。分析サーバ１１０及び／又は検索サーバ１２０では、クライアント１９０群からの要求に応じ、伝播されたデータに対して検索及び／又は分析処理が実行され、処理結果が、応答されるようになっている。
【００１９】  各機能サーバでは、データ伝播順序が前である機能サーバから取得したデータに対し、データ形式の変換や種々の加工処理が施された処理後データが生成される。生成された処理後データは次の機能サーバ内の処理対象として伝播されるようになっている。例えば、ＥＴＬ１４０が収集するデータは、テキストデータ、イメージデータ及びそれらのメタデータであり、これらが所定のデータ形式に加工される。それら加工されたデータはＤＷＨ１３０で所定の保存形式に加工されて保存される。分析サーバ１１０や検索サーバ１２０は、ＤＷＨ１３０に保存されたデータをクロールし、所定の分析対象データの抽出・分析や、インデックスの作成といった加工が施され、ＡＰサーバ１８０を介したクライアント１９０からのリクエスト応答に利用されるようになっている。
【００２０】  第２システム２００は、第１システム１００の複製システムである。複製は、第１システム１００の各機能サーバにおいて、それぞれが保持するデータの反映が完了した後の実行が可能になっている。
【００２１】  同図において、先ずＥＴＬ１５０によって、時刻「００:００」にデータソース１５０からのクローリング（円状の矢印で示す。）が開始され、「００:１０」に完了することが示されている。その後「００:１５」に、ＥＴＬ１４０が、ＥＴＬ２４０として第２システムに複製されるようになっている。
【００２２】  同様に、「００：３０」に、ＤＷＨ１３０によって、ＥＴＬ１４０が「００:１０」にクローリングを完了したデータのクローリングが開始される。「００:４５」には、同クローリング及び処理後データの生成が完了し、その後、「００:５０」に、ＤＷＨ２３０として、ＤＷＨ１３０が複製されるようになっている。
【００２３】  分析サーバ１２０では、ＤＷＨ１３０の同一データに対して「０１：００〜０１：２０」にクローリングが実行され、その後、「０１：２５」に第２システム２００に複製されるようになっている。  検索サーバ１２０では、「０１：５０〜２：００」にＤＷＨ１３０からクローリングが行われ、「０２：０５」に検索サーバ２２０として第２システム２００に複製されるようになっている。
【００２４】  なお、機能サーバのクローリング処理は、同一データに対して複数回実行される場合もある。例えば、図１において、分析サーバ１１０は、「０１：００〜０１：２０」の１回目のクローリング処理の後、「０１：４０-０１：５０」に２回目のクローリング処理を実行するように設定することもできる。分析サーバ１１０の一回目の分析処理結果を、ＥＴＬ１４０がクロールし、このクロールしたデータを用いて再度分析サーバ１１０が分析を実行するような場合もある。このようにデータの伝播途中でクロール処理が実行される閉路が存在する場合、全ての機能サーバ間でのデータ整合性は保証できない。このような閉路が存在する場合は、分析サーバ１１０については整合性を保証しない条件で、複製を生成するようになっている。閉路の検索処理及び閉路が有る場合の複製処理については後述する。
【００２５】  以上のように、計算機システム１を構成する各サブシステムは、他のサブシステムからのデータのクローリング等が終了した後に、データが伝播される順番に沿って各サブシステムの複製が生成されるようになっていることから、サブシステム間で整合性が保証されたデータを保持する複製システム（第２システム２００）を生成することができる。
【００２６】  第２システム２００を待機系システムとして利用する場合であっても、拡張系システムとして利用する場合であっても又はテスト系システムとして利用する場合であっても、利用開始時に第２システム２００内の各サブシステム間のデータ整合性を保証する処理を必要とすることがなく、早期運用開始を行うことが可能となる。  以上が、計算機システム１の概要である。
【００２７】  以下、計算機システム１について詳細に説明する。  図２に、計算機システム１の構成を詳細に示す。計算機システム１は、第１システム１００と、１又は複数のクライアント１８０とが、ネットワーク１０を介して接続される。第１システム１００と、クライアント１８０との間には、セッションやプロセスの制御を行うアプリケーションサーバ（以下、「ＡＰサーバ」という。）１９０が設けられた構成となっている。
【００２８】  ＡＰサーバ１９０は、Ｗｅｂサーバとしての機能を包含し、計算機システム１をＳＯＡ（Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）環境に適用させることを可能とする。例えば、クライアント１８０からの要求に対し、ＳＯＡＰメッセージによって分析サーバ１１０及び検索サーバ１２０と通信を行い、結果をクライアント１８０に送信する。
【００２９】  データソース１５０及び２５０は、第１システムの外部に設けられた汎用のサーバ装置であり、単一又は複数の物理計算機やストレージ装置から構成される。データソース１５０及び２５０では、ＨＤＤ、ＳＳＤ（Solid State Drive）等のストレージ装置内に、構造化データ、半構造化データ及び非構造化データ等、データソースが接続される種々の外部システム（不図示）によって利用されるデータが格納されるようになっている。
【００３０】  第１システム１００は、機能サーバとして、分析サーバ１１０、検索サーバ１２０、ＤＷＨ１３０及びＥＴＬ１４０を有し、また、これらの管理を実行する運用管理サーバ１６０を有する。本実施形態において、これらのサーバはＣＰＵ、メモリ及び補助記憶装置を有する汎用のサーバ装置を適用する例について説明する。但し、本発明はこの例に限定されるものではなく、各機能サーバの全部又は一部が同一物理計算機上の仮想サーバとして提供されてもよい。
【００３１】  分析サーバ１１０では、プログラムとＣＰＵとの協働により、情報抽出部１１１と情報参照部１１２が実現される。分析サーバ１１０では、ＤＷＨ１３０からスケジュールに沿ってデータが読み出され、そのデータコンテンツが解析されることによって得た情報をメタデータとして保持し、この情報への参照を可能にするサーバである。具体的には、情報抽出部１１１によって画像データの内容が解析され、画像内に含まれる物体名などの情報がメタファイルとして生成される。クライアント１８０からのメタファイル参照要求に対し、情報参照部１１２によって、生成されたメタファイルが参照できるようになっている。
【００３２】  検索サーバ１２０では、プログラムとＣＰＵとの協働によりインデックス作成部１２１と、検索部１２２とが実現される。検索サーバ１２０では、クライアント１８０からのデータ検索要求に対し、その要求に含まれるキーワードに合致するデータの所在（パス等）を送信するようになっている。具体的には、インデックス作成部１２１によって、ＤＷＨ１３０のデータに対するインデックスがスケジュールに沿って作成される。検索部１２２では、クライアント１８０からのデータ検索要求を受け、生成されたインデックスを参照して、キーワードを含むデータの所在（パス等）が応答結果として送信されるようになっている。
【００３３】  ＤＷＨ１３０は、ファイルサーバである。ＤＷＨ１３０では、スケジュールに沿ってＥＴＬ１４０からデータがクローリングされ、ファイル形式で格納される。ＤＷＨ１３０には、ＣＰＵとプログラムによって、分析サーバ１１０や検索サーバ１２０に対するファイル共有機能を提供するファイル共有部１３１が実現され、格納されたファイルに対するアクセスを可能とさせる。
【００３４】  ＥＬＴ１４０は、第１システム１００外部のデータソース１５０からスケジュールに沿ってデータを収集（クローリング）する。データソース１５０から収集されたデータは、その後、所定のスケジュールでＤＷＨ１３０に出力されるようになっている。
【００３５】  運用管理サーバ１６０は、システム管理者の管理端末（不図示）から、第１システムの各機能サーバの構成情報変更や処理設定変更を受付け、変更処理を行うサーバである。更に、運用管理サーバ１６０は、後述する複製管理サーバ３００と通信し、第１システムの構成情報、処理状況及び処理スケジュールを提供する機能を有する。
【００３６】  運用管理サーバ１６０では、ＣＰＵと、プログラムとの協働により運用管理部１６１が実現される。運用管理部１６１は、管理端末から入力された構成情報を記録すると共にそれに基づいて各機能サーバの構成設定を行う機能部である。運用管理サーバ１６０の記憶部（不図示）には、第１システム１００の各機能サーバの構成情報が記録されるサーバ構成情報１６５と、処理情報１６６と、処理スケジュール１６７とが保持される。
【００３７】  図３に、サーバ構成情報１６５の一例を模式的に示す。サーバ構成情報１６５は、第１システムを構成する各機能サーバのＩＤ（名称）を保持するサーバ欄１６５ａと、各機能サーバのＩＰアドレスを保持するＩＰアドレス欄１６５ｂとからなり、これらが対応付けられて管理される。サーバ欄１６５ａと、ＩＰアドレス欄１６５ｂとの両者に値が保持されている場合、第１システム１００にその機能サーバが存在することを示す。
【００３８】  図４に、処理情報１６６の一例を模式的に示す。処理情報１６６は、各機能サーバが実行した処理内容を保持する処理欄１６６ｂ、その処理の対象となったデータの転送元ＩＤを保持する転送元サーバ欄１６６ｃ、その処理によって生成したデータの転送先ＩＤを保持する転送先サーバ欄１６６ｄとからなり、夫々の機能サーバが処理を実行する際に、これらを対応付けて管理するようになっている。  例えば、１行目は、『ＥＴＬ１４０が、データの転送元であるデータソース１５０から、データ収集処理を実行し、その収集処理により取得した処理後データを、転送先であるＤＷＨ１３０に出力』したことを表す。
【００３９】  なお、検索サーバ１２０や分析サーバ１１０については、転送先サーバ欄１６６ｄが、『なし』となっている。これは、ＤＷＨ１３０に反映されたデータを基に生成した処理後データであるインデックスやメタデータを、ＡＰサーバ１８０（クライアント側）に出力したことを表す。
【００４０】  図５に、処理スケジュール情報１６７の一例を模式的に示す。処理スケジュール情報１６７では、第１システムの各機能サーバ名を保持するサーバ欄１６７ａ、実行対象の処理名を保持する処理欄１６７ｂ、その処理の開始時刻を保持する開始時刻欄１６７ｃ及びその処理の終了時刻を保持する終了時刻欄１６７ｄが対応付けて管理される。  運用管理部１６１では、処理スケジュール情報１６７に設定されたスケジュールに従って、各機能サーバに対して対象の処理の実行が指示されるようになっている。なお、実行対象サーバ、実行対象処理名、開始時刻及び終了時刻は、管理者端末（不図示）を介して適宜変更可能なようになっている。
【００４１】  図２に戻り、複製管理サーバ３００について説明する。複製管理サーバ３００では、第１システム１００の各種情報が取得され、各機能サーバの処理の順番、処理状況及び処理スケジュールに基づいて、第１システム１００の複製である第２システム２００の生成が管理されるようになっている。  なお、本実施形態において、複製管理サーバ３００を、ネットワーク１０を介して第１システム１００及び第２システム２００との通信を可能とする物理計算機とする例を用いるが、第１システムの何れかの機能サーバの一部若しくは運用管理サーバ１６０の一部として実現してもよい。
【００４２】  複製管理サーバ３００では、プログラムとＣＰＵとの協働により、複製手順管理部３１０と複製制御部３３０が実現される。  複製手順決定部３１０では、第１システム１００の運用管理サーバ１６０から、サーバ構成情報１６５、処理情報１６６及び処理スケジュール１６７が取得され、これらの情報から第１システム１００の各機能サーバの複製を行う手順が生成される。具体的には、取得されたサーバ構成情報１６５及び処理情報１６６から、各機能サーバの依存関係等を分析し、これを示す有向グラフ表１６８を生成する。有向グラフ表１６８では、クローリング時のデータの転送元及び転送先がデータ伝播の順番に対応付けられて管理されるようになっている。
【００４３】  図６に、有向グラフ表１６８の一例を模式的に示す。有向グラフ表１６８には、データの転送元欄１６８ａと、転送先欄１６８ｂとの項目が設けられ、これらが対応付けて記録されるようになっている。例えば、サーバ構成情報１６５（図３）には、ＥＴＬと、ＤＷＨと、検索サーバと、分析サーバと、運用管理サーバとが登録されている。次に、これらの機能サーバについて、処理情報１６６（図４）の転送元欄１６６ｃ及び転送先サーバ欄１６６ｄが参照され、有向グラフ表１６８の転送元欄１６８ａ並びに転送先欄１６８ｂに順番に登録されるようになっている。運用管理サーバについては、転送元及び転送先がない。このような場合は、有向グラフ表１６８に登録されないようになっている。
【００４４】  図７に、有向グラフ表１６８の作成によって導かれた各機能サーバのデータ伝播の依存関係を模式的に示す。同図に示すように、データは、先ずデータソース１５０からＥＴＬ１４０に伝播し、次いで、ＤＷＨ１３０に伝播され、その後、分析サーバ１１０及び検索サーバ１２０に伝播されていることが把握できる。
【００４５】  ここで、複製手順管理部３１０では、データの伝播経路（各機能サーバ間でのデータ伝播順）において、閉路が存在するか否かをチェックする閉路確認処理が行われるようになっている。閉路とは、計算機システム１においてデータ伝播の順番が後の機能サーバで実行された機能サーバの処理データを、データ伝播の順番が先の機能サーバがクロールするような関係にあるデータ伝播の経路をいう。例えば、分析サーバ１１０が、ＤＷＨ１３０からクロールしたデータについてデータ分析処理を実行することで分析結果が生成される。分析の種別によっては、分析結果が要求に応じてクライアント１９０群に出力されることもあるが、再度、ＥＴＬ１４０によって、クロールされるようなシステム構成をとることもできる。
【００４６】  この場合、データの伝播経路は、ＥＴＬ→ＤＷＨ→分析サーバ→ＥＴＬ→ＤＷＨ→分析サーバ・・・と、いった具合にループ状になり、計算機システム１において、データ伝播に依存関係のある他の機能サーバ（ここでは、検索サーバ）との関係では、データの整合性を保証することができないこととなる。
【００４７】  そこで、複製手順管理部３１０では、閉路確認処理によって閉路が検出された場合には、サーバの複製順序の導出が不可能であると判定され、各機能サーバにおいて整合性が保証されたシステムの複製は不可である旨が管理端末（不図示）に出力されるようになっている。
【００４８】  次いで、複製手順管理部３１０では、処理スケジュール情報１６７（図５）が参照され、有向グラフ表１６８の複製処理順に沿って、夫々の機能サーバの複製の順序及び複製の時刻が決定され、複製スケジュール表１７０（図８）が生成される。具体的には、有向グラフ表１６８等から複製処理の順序が決定され、複製スケジュール表１７０に登録される。そして、処理情報１６７の終了時刻欄１６７ｂに記録された時刻から夫々の機能サーバの複製開始時刻が算出される。即ち第１システム１００の各機能サーバにおいてデータ取得先の機能サーバからデータ取得（クローリング）が完了した時刻から、その機能サーバの複製が開始される時刻が算出され、複製時刻欄１７０ｂに登録される。
【００４９】  図８に、「サーバ複製順序導出処理」で生成される複製順序表１６９の一例を模式的に示す。複製順序表１６９には、サーバ名欄１６９ａと、複製処理順欄１６９ｂとが設けられ、サーバ複製順序導出処理によって算出された各機能サーバの複製順序が対応付けて記録されるようになっている。
【００５０】  図９に、「複製処理時刻導出処理」で生成される複製時刻表１７０の一例を模式的に示す。複製時刻表１７０は、サーバ名欄１７０ａと、複製時刻欄１７０ｃとが設けられ、複製順序表１６９と、処理スケジュール情報１６７とを用いて算出された各機能サーバの複製開始時刻が、各機能サーバ名と対応付けて記録されるようになっている。
【００５１】  図２に戻り、複製制御部３３０では、複製時刻導出処理に基づいて、第１システム１００の各機能サーバの複製処理を実行される。複製時刻表１７０に登録された時刻に従って、順次複製処理を開始するようになっている。複製は、第１システム１００の該当する機能サーバのイメージをスナップショットで取得し、第２システム１００に反映する等の種々の方法を適用するものとする。  以上が、計算機システム１の構成である。
【００５２】  次に、複製管理サーバ３００の処理動作を、図１０〜図１７に示すフローチャートを用いて詳細に説明する。なお、以下の処理の説明では、主体を各機能部等として説明するが、本発明は、これら機能部に限定されるものではなく、一部又は全部の処理を、その趣旨を逸脱することのない範囲において変更することができるものである。  図１０に、複製管理サーバ３００の全体動作の概要を示す。
【００５３】  Ｓ１０１で、複製管理サーバ３００の複製手順管理部３１０は、第１システム１００の運用管理サーバ１６０に、サーバ構成情報１６５、処理情報１６６及び処理スケジュール１６７の取得要求を送信し、これを取得する。
【００５４】  Ｓ１０３で、複製手順管理部３１０は、取得したサーバ構成情報１６５及び処理情報１６６を参照して、有向グラフ表１６８を生成し、第１システム１００の各機能サーバ間のデータ伝播に関する依存関係を管理する（有向グラフ作成処理／図１１）。
【００５５】  Ｓ１０５で、複製手順決定部３１０は、生成した有向グラフ表１６８を用いて、探索開始サーバ一覧を生成し、第１システム１００で発生した一連のデータ伝播の起点となる機能サーバを決定する処理を行う（探索開始サーバ決定処理／図１２）。
【００５６】  Ｓ１０７で、複製手順管理部３１０は、生成した探索開始サーバ一覧を用いて、閉路があるか否かの処理を行う（閉路確認処理／図１３及び図１４）。
【００５７】  Ｓ１０９で、複製手順管理部３１０は、閉路が有ると判断する場合（S109：YES）、複製手順決定分３１０は、S１１７に進み、複製順序の導出が不可である旨を複製制御部３３０に通知する。閉路が無いと判断する場合（S109：NO）、S１１１に進む。
【００５８】  Ｓ１１１で、複製手順管理部３１０は、探索開始サーバ一覧を参照し、第１システム１００の各機能サーバを複製する順序を決定し、複製スケジュール表１７０の該当するサーバ名に対応付けて登録する（複製順序決定処理／図１５及び図１６）。
【００５９】  Ｓ１１３で、複製手順管理部３１０は、各機能サーバの複製処理開始時刻を決定し、これを複製時刻表１７０の該当するサーバ名に対応付けて登録する（複製開始時刻決定処理／図１７）。
【００６０】  他方、Ｓ１１５で、複製手順管理部３１０は、Ｓ１０９で閉路が存在するとの判断に基づき、複製順序の導出が不可である旨を複製制御部３３０に通知する。
【００６１】  Ｓ１１７で、複製制御部３３０は、複製時刻表１７０に登録された複製開始時刻を計時し、該当時刻の検出時に、該当する機能サーバを第２システム２００に複製する。なお、Ｓ１１５の処理において、複製順序の導出が不可である旨の通知を受けた場合、複製制御部３１０は、その旨を管理端末等に通知する（ユーザ操作によって、データ整合性を保証しないシステム複製を行うようになっている。）。  以下に上述した各処理について更に詳細に説明する。
【００６２】  図１１に、「有向グラフ作成処理」のフローを示す。  Ｓ２０１で、複製手順管理部３１０は、処理情報表１６６を先頭行から参照し、その参照行の転送元サーバ欄１６６ｃに機能サーバ名の登録があるか否かをチェックする。登録が有る場合（S201：YES）Ｓ２０３に進み、登録が無い場合（S201：NO）、Ｓ２０９の処理に進む。
【００６３】  Ｓ２０３で、複製手順管理部３１０は、参照行の転送元サーバ欄１６６ｃに登録されている「転送元サーバ名」と、サーバ欄１６６ａに登録されている「サーバ名」とを、有向グラフ表１６８の転送元欄１６８ａと、転送先欄１６８ｂとに夫々登録する。
【００６４】  Ｓ２０５で、複製手順管理部３１０は、Ｓ２０１で参照した行の転送先サーバ欄１６６ｄに、サーバ名が登録されているか否かをチェックする。登録されている場合（S205：YES）、Ｓ２０７の処理に進み、登録されていない場合（S205：NO）、Ｓ２１５の処理に進む。
【００６５】  Ｓ２０７で、複製手順管理部３１０は、参照行のサーバ欄１６６ａに登録されている「サーバ名」と、転送先サーバ欄１６６ｄに登録されている「転送先サーバ名」とを、有向グラフ表１６８の次の行の転送元欄１６８ａと、転送先欄１６８ｂとに夫々登録する。その後、Ｓ２１５の処理に進む。
【００６６】  ここで、Ｓ２０９からの流れについて説明する。  Ｓ２０９で、複製手順管理部３１０は、Ｓ２０１で参照した行の転送先サーバ欄１６６ｄに機能サーバ名の登録があるか否かをチェックする。登録されている場合（S209：YES）、S２１１に進み、登録されていない場合（S209：NO）、Ｓ２１３の処理に進む。
【００６７】  S２１１で、複製手順管理部３１０は、参照行の転送先サーバ欄１６６ｄに登録されている「転送先サーバ名」と、サーバ欄１６６ａに登録されている「サーバ名」とを、有向グラフ表１６８の転送元欄１６８ａと、転送先欄１６８ｂとに夫々登録する。その後、Ｓ２１５の処理に進む。
【００６８】  他方、Ｓ２１３で、参照行の転送先サーバ欄１６６ｄに「転送先サーバ名」が登録されていないと判定した場合、参照行のサーバ欄１６６ａに登録されているサーバは、「任意複製可」として、有向グラフ表１６８には登録せずに、これとは別にその情報を管理（記録）する。即ち処理情報表１６６において、転送元サーバ欄１６６ｃ及び転送先サーバ欄１６６ｄの何れにも登録が無い機能サーバは、データ伝播に直接的には関連性のない機能サーバであり、任意のタイミングで、第２システム２００に複製を作成することができるものとなる。別に管理した後、複製手順管理部３１０は、Ｓ２１５の処理に進む。
【００６９】  Ｓ２１５で、複製手順管理部３１０は、処理情報表１６６に未参照の行があるかチェックする。未参照の行が有る場合（S215：YES）、Ｓ２０１に戻って処理を繰り返し、無い場合（Ｓ215；NO）、処理を終了する。以上が、「有向グラフ作成処理」である。
【００７０】  図１２に、「探索開始サーバ決定処理」のフローを示す。本処理では、上述の「有向グラフ表作成処理」で作成された有向グラフ表１６８を利用して、探索開始サーバ一覧（不図示）を生成すると共にこれを用いてデータ伝播の起点となる機能サーバを決定する処理である。
【００７１】  Ｓ３０１で、複製手順管理部３１０は、有向グラフ表１６８を先頭から一行ずつ参照し、転送元欄１６８ａに登録された「サーバ名」群から「サーバ名」を抽出する。  Ｓ３０３で、複製手順管理部３１０は、抽出した転送元欄の「サーバ名」が、探索開始サーバ一覧に登録済みであるか否かを判断する。登録済みである場合（S303:Yes）は、Ｓ３０７に進み、登録がない場合（S303：No）は、Ｓ３０５に進み、探索開始サーバ一覧に当該転送元欄の「サーバ名」を登録する。  Ｓ３０７で、複製手順管理部３１０は、有向グラフ表１６８で未抽出の行が無いかチェックし、有る場合（S307：YES）にはＳ３０１に戻り処理を繰り返し、無い場合（S307：NO）にはＳ３０９に進む。
【００７２】  Ｓ３０９で、複製手順管理部３１０は、今度は、有向グラフ表１６８の転送先欄１６８ｂに登録された「サーバ名」を先頭から一行分抽出する。  Ｓ３１１で、複製手順管理部３１０は、Ｓ３０１〜Ｓ３０７の処理で探索開始サーバ一覧に登録した転送元欄１６８ａの「サーバ名」群の中に、Ｓ３０９で抽出した転送先欄１６８ｂの「サーバ名」と一致するものが有るか否かを判定する。有る場合（S311：YES）にはS３１３に進み、無い場合（S311：NO）にはS３１５に進む。
【００７３】  Ｓ３１３で、複製手順管理部３１０は、転送先欄の「サーバ名」と一致した、転送元欄の「サーバ名」を、探索開始サーバ一覧から除外（例えばnullを登録）する。
【００７４】  Ｓ３１５で、複製手順管理部３１０は、有向グラフ表１６８で未参照の行が有るか否かを判定し、ある場合（S315：YES）にはＳ３０９に戻って処理を繰り返し、無い場合（S315：YES）には本処理を終了する。以上が、「探索開始サーバ決定処理」である。
【００７５】  例えば、図６に示す有向グラフ表１６８を例にすると、転送元欄１６８ａに登録された転送元のサーバ名は「データソース」、「ＥＴＬ」、「ＤＷＨ」、「ＤＷＨ」の４つであり、このうち、探索開始サーバ一覧に登録されるのは、「データソース」、「ＥＴＬ」、「ＤＷＨ」の３つである（「DWH」は重複するため１つだけ登録される）。この内、転送先欄１６８ｂに登録されているサーバ名と一致するのは「ＥＴＬ」と、「ＤＷＨ」とである。これらを除外すると残るのは「データソース」である。このように探索開始サーバ決定処理によって、第１システム１００でのデータ伝播の起点となるサーバが、「データソース」であると決定することができる。
【００７６】  図１３に、「閉路確認処理」のフローを示す。本処理は、探索開始サーバ一覧に登録された内容を用いて、閉路が存在するか否かを確認する処理である。  なお、本フローチャートは、サーバを引数とした再帰関数となっており、フロー内の関数は新たなサーバを引数として再度同様のフローを実行する。サーバを格納しておく領域としてスタックを利用し、全ての閉路検出関数で参照可能となっている。スタックは、閉路検出関数が呼び出されるごとにサーバを格納し、関数の処理が終わると当該サーバを削除する動作にて使用する。このようなスタックを用意しておくことで、再帰関数を用いて深さ優先探索をしている間にスタックを参照し、既にスタックに登録されているサーバを再度参照していないかを確認できる。再度参照している場合は、ループ構造になっているため、閉路検出と出力する。
【００７７】  Ｓ４０１で、複製手順管理部３１０は、探索開始サーバ一覧を取得し、先頭行に登録されたサーバ名を読出す。  Ｓ４０３で、複製手順管理部３１０は、Ｓ４０１で抽出したサーバを１つ読出し（ここでは先頭行）、閉路検出関数を用いて閉路の存在有無を求める（「閉路検出関数処理」）。具体的には、そのサーバを引数として、探索したサーバを記録するスタック中に引数としたサーバが存在するか否かをチェックする。詳細は後述する。
【００７８】  Ｓ４０５で、複製手順管理部３１０は、閉路が存在すると判定する場合には（S405：YES）、Ｓ４１１の処理に進み、「閉路有り」の記録を保持し、存在しないと判断する場合（S405：NO）、Ｓ４０７の処理に進む。
【００７９】  Ｓ４０７で、複製手順管理部３１０は、探索開始サーバ一覧に未参照行があるか判定し、有る場合には（S407：YES）Ｓ４０１に戻って未参照行について処理を繰り返し、無い場合には（S407：NO）、Ｓ４０９に進む。  Ｓ４０９で、複製手順管理部３１０は、「閉路無し」の記録を保持する。
【００８０】  図１４に、上述した「閉路検出関数処理」の詳細フローを示す。閉路存在確認のフローチャート内で使用する再帰関数である。本関数は、サーバを引数として使用する。
【００８１】  Ｓ４２１で、複製手順管理部３１０は、探索したサーバを記録するスタック中に、引数のサーバが存在するか否かを、再帰関数によってチェックする。スタックに引数のサーバが存在する場合（S421:YES）、Ｓ４３９に進み、関数の戻り値として「閉路検出」を出力する。スタックに引数のサーバが存在しない場合（S421：NO）、Ｓ４２３に進む。
【００８２】  Ｓ４２３で、複製手順管理部３１０は、関数の引数のサーバをスタックに追加する。  Ｓ４２５で、複製手順管理部３１０は、有向グラフ表を1行ずつ参照し、転送元欄１６８ａのサーバ名を抽出する。  Ｓ４２７で、複製手順管理部３１０は、抽出したサーバ名と、引数のサーバ名とが同一であるか否かを判定する。抽出したサーバ名と、引数のサーバ名とが同一である場合（S427:YES）、Ｓ４２９に進む。抽出したサーバ名と、引数のサーバ名とが同一でない場合（S427：NO）、Ｓ４３３に進む。
【００８３】  Ｓ４２９で、複製手順管理部３１０は、Ｓ４２５で参照した有向グラフ表１６８の行の転送先欄１６８ｂに登録されているサーバ名を引数として閉路検出関数を実行する。  Ｓ４３１で、複製手順管理部３１０は、閉路が検出されたかを判定し、閉路を検出した場合（S431:YES）、Ｓ４３９に進み、関数の戻り値として「閉路検出」を出力する。閉路を検出しなかった場合（S431:NO）、Ｓ４３３に進む。
【００８４】  Ｓ４３３で、複製手順管理部３１０は、有向グラフ表１６８に未参照行があるか否かをチェックし、未参照行が有る場合（S433:YES）、S４２５に戻り処理を繰り返す。未参照行が無い場合（S433:NO）、Ｓ４３５に進み、スタックから引数のサーバを削除する。  その後、Ｓ４３７で、複製手順管理部３１０は、関数の戻り値として「閉路なし」を出力する。
【００８５】  図１５に、複製順序決定処理のフローを示す。本処理は、トポロジカルソートを用いて、データ伝播の依存関係の順にサーバを順序付けるものである。即ちサーバ番号付け関数が深さ優先探索を行い、各関数が終了する時に、順に番号付けを行う。本番号付け処理により各サーバに付けた番号は、サーバ複製順と逆順となるため、最後に番号が降順になるよう各サーバをソートする。
【００８６】  Ｓ５０１で、複製手順管理部３１０は、変数ｉを０（ゼロ）に初期化する。なお、変数ｉは、全てのサーバ番号付け関するから参照可能な変数である。  Ｓ５０３で、複製手順管理部３１０は、探索開始サーバ一覧を取得する。  Ｓ５０５で、複製手順管理部３１０は、取得した探索開始サーバ一覧のレコードを１行参照する（ここでは先頭行）。
【００８７】  Ｓ５０７で、複製手順管理部３１０は、参照行のサーバを引数としてサーバ番号付け関数処理を実行する。詳細は後述する。  Ｓ５０９で、複製手順管理部３１０は、未参照行が有るか否かを判定し、有る場合（S509:YES）、Ｓ５０５に戻り処理を繰り返し、無い場合（S509:NO）、処理を終了する。
【００８８】  図１６に、サーバ番号付け関数処理のフローを示す。本関数はサーバを引数として使用する。  Ｓ５２１で、複製手順管理部３１０は、引数のサーバを巡回済みサーバ一覧に追加する処理である。なお、巡回済みサーバ一覧は全てのサーバ番号付け関数から参照可能である。  Ｓ５２３で、複製手順管理部３１０は、有向グラフ表１６８を1行ずつ参照し、転送元欄１６８ａのサーバ名及び転送先欄１６８ｂのサーバ名を抽出する。
【００８９】  Ｓ５２５で、複製手順管理部３１０は、抽出した「転送元欄１６８ａのサーバ名及び引数のサーバ名が同一」であり且つ「当該行の転送先欄１６８ｂのサーバ名が巡回済みサーバ一覧に登録されていない」という2つの条件を満たしているか否かをチェックする。2つの条件を満たしている場合（S525:YES）、Ｓ５２７に進み、２つの条件を満たしていない場合（S525：NO）、Ｓ５２９に進む。
【００９０】  Ｓ５２７で、複製手順管理部３１０は、当該行の転送先欄１６８ｂのサーバ名を引数としてサーバ番号付け関数を実行する。  Ｓ５２９で、複製手順管理部３１０は、有向グラフ表１６８に未参照の行があるかどうかチェックし、未参照の行がある場合（Ｓ529:YES）、Ｓ５２３に戻り処理を繰り返す。未参照行がない場合（S529:NO）、Ｓ５３１に進む。
【００９１】  Ｓ５３１で、複製手順管理部３１０は、変数iに1を加え、Ｓ５３３で、変数iを引数のサーバの番号として付けて出力する。  以上の「閉路確認処理」及び「サーバ番号付け処理」によって、複製順序表１６９（図８）が生され、各機能サーバの複製順序が決定される。  以上の図１５及び図１６の処理により、複製順序表（図８）が作成される。
【００９２】  図１７に、複製開始時刻算出処理のフローを示す。本処理は、各サーバの複製時刻を算出する処理であり、複製順序表１６９及び処理スケジュール表１６７を用いて複製開始時刻を算出する。なお、複製順序表１６９に存在しているが、処理スケジュール情報１６７には存在しないサーバに対しては、複製順序表１６７にて当該サーバの前に複製するサーバと同じ時刻に複製するとしている。
【００９３】  Ｓ６０１で、複製手順管理部３１０は、複製順序表１６９を取得し、Ｓ６０３で、処理スケジュール表１６７を取得する。複製手段管理部３１０は、取得した複製順序表１６９を１行ずつ参照する。
【００９４】  Ｓ６０７で、複製順序表１６９の参照行の「サーバ名」が、処理スケジュール情報１６７に存在するか否かをチェックする。参照行のサーバ名が、処理スケジュール情報１６７に存在する場合（S607:YES）、Ｓ６０９に進み、処理スケジュール情報１６７に存在しない場合（S607:NO）、Ｓ６１３に進む。
【００９５】  Ｓ６０９で、複製手順管理部３１０は、処理スケジュール情報１６７の該当するサーバ名の終了時刻（機能サーバの処理が終了した時刻を意味する。）を基調として、当該サーバの複製開始時刻を算出する。その機能サーバの処理が終了した時刻を複製開始時刻としてもよいが、そこから任意の時間後（例えば数分後）を複製開始時刻としてもよい。
【００９６】  Ｓ６１１で、複製手順管理部３１０は、更に、処理スケジュール情報１６７の該当するサーバ名の終了時刻を変数Ｘとして格納する。  他方、Ｓ６１３では、複製手順管理部３１０は、変数Ｘの時刻を当該サーバの複製開始時刻として出力する。
【００９７】  Ｓ６１５で、複製手順管理部３１０は、複製順序表１６９に未参照行があるかのチェックを行い、有る場合（S615:YES）、Ｓ６０５に戻り処理を繰り返し、無い場合（S615:NO）、処理を終了する。  これらの処理により、複製時刻表１７０（図９）が生成され、各機能サーバの複製開始時刻を導出することができる。複製手順管理部３１０によって導出された複製開始時刻に基づいて、その後、複製制御部３３０が、第１システム１００の各機能サーバを第２システム２００に複製する。
【００９８】  以上のように、本実施形態の計算機システム１によれば、データの伝播関係にある機能サーバ群について、それらのデータ整合性が確保された複製システムを生成することができる。これにより、複製された各機能サーバからなるシステムを用いて、早期に運用開始という効果がある。
【００９９】  また、本実施形態の計算機システム１によれば、機能サーバ間のデータ伝播経路に閉路があることを検出することができる。機能サーバ間のデータ整合性をより保証することができる。更に、閉路が有る場合には、複製順序の導出が不可である旨を報知し、通常の複製処理も実施することができるようになっている。
【０１００】  〔第２実施形態〕  第１実施形態では、第１システム１００を構成する各機能サーバ間でのデータ整合性を保証した複製システム（第２システム２００）を生成等するものであった。本第２実施形態の計算機システムでは、複製時刻表１７０（図９）の複製開始時刻に沿って特定の機能サーバの複製を第２システムに生成した後であって、他の後続する機能サーバの複製が生成されるまでの間に、その複製サーバの動作テストを実施する計算機システムについて説明する。
【０１０１】  複数の機能サーバから構成される計算機システムの複製システムを生成する際、２以上又は全ての機能サーバの複製を構成した後に実運用又はテストを実施したとする。その結果、不具合が生じたとした場合、その原因となった機能サーバを特定するのは煩雑である。
【０１０２】  不具合要因としては、例えば、運用システムに対して、新しいデータ形式の新データソースを追加する際に、検索サーバにて新しいデータ形式が検索できないという不都合が生じる可能性がある。このような不都合が原因として、ＥＴＬが正しく新データソースからのデータの取り込むプロトコルに対応していない、ＤＷＨが新しいデータ形式の格納に対応していない、検索サーバが新しいデータ形式のデータから検索対象とするテキストデータを抽出できない等が考えられる。  よって、複製システムを構成する一部の機能サーバの複製を生成した時点でテストを実行すれば、不具合の原因となるサーバを特性しやすいという利点がある。以下に、第２実施形態の計算機システムについて説明する。
【０１０３】  第２実施形態の計算機システムでは、機能サーバの部分的なテストを制御する部分テスト部（不図示）を、複製管理サーバ３００に有する。部分テスト部では、管理端末等（不図示）を介して、ユーザが動作テストを所望する機能サーバの指定を受けつけるようになっている。更に、第２システム２００側に機能サーバ複製した後に、その機能サーバがテスト対象サーバである場合に、管理端末等を介して、当該機能サーバがテスト可能になった旨を報知するとともに、ユーザによる当該機能サーバのテストが完了した旨の入力を受け付けるようになっている。複製管理サーバ３００は、ユーザによるテスト完了の入力を受け付けるまでは、その後の機能サーバの複製処理を一時的に中断するようになっている。他の構成は、第１実施形態の計算機システムと同様の構成を有する。
【０１０４】  図１８に、第２実施形態の計算機システムの処理フローを示す。  Ｓ７０１で、部分テスト部は、複製手順管理部３１０によって導出された複製順序表１６９（図８）及び複製時刻表１７０（図９）を取得する。  Ｓ７０３で、部分テスト部は、管理端末等を介して、ユーザからの部分テスト対象サーバの指定を受け付け、これを記憶する。
【０１０５】  Ｓ７０５で、部分テスト部は、複製順序表１６９を一行ずつ参照する（ここでは先頭行）。  Ｓ７０７で、部分テスト部は、複製時刻表１７０を参照し、読み出した行のサーバ名の複製開始時刻まで待機する。  Ｓ７０９で、部分テスト部は、現在時刻が複製開始時刻なった時に、当該サーバ名を有するサーバの複製指示を、複製制御部に通知する。
【０１０６】  Ｓ７１１で、部分テスト部は、複製指示を通知したサーバが、Ｓ７０３で受け付けたテスト対象サーバであるか否かを判定し、テスト対象サーバである場合（S711:YES）、Ｓ７１３に進み、テスト対象サーバでない場合（S711:NO）、Ｓ７１７に進む。
【０１０７】  Ｓ７１３で、部分テスト部は、管理端末にテスト対象サーバがテスト可能な状態になったことを通知する。通知に応じて、ユーザは当該複製サーバのテストを実行することとなる。  Ｓ７１５で、部分テスト部は、管理端末からテスト対象サーバのテストが終了した旨の通知を受信するまで待機する。
【０１０８】  Ｓ７１７で、部分テスト部は、テスト終了の通知を受けた後、複製順序表１６９に未参照行があるか否かをチェックし、有る場合には、Ｓ７０５に戻り処理を繰り返し、無い場合には処理を終了する。  以上が、第２実施形態における計算機システムの説明である。
【０１０９】  第２実施形態の計算機システムによれば、各機能サーバを複製したタイミングでテストを実施することができ、不具合箇所の特定を容易にするという効果がある。
【０１１０】  以上、本発明を実施するための形態を説明したが、本発明はこれらの例に限定されるものではなく、その趣旨を変更することのない範囲で種々の構成や動作を適用可能であることは言うまでもない。
【０１１１】  例えば、機能サーバの複製では、複製元のイメージをスナップショットする方法を適用したが、複製方法は、機能サーバの主記憶領域と補助記憶領域の両方のデータを複製する方法（仮想マシンのスナップショット作成機能等）や、補助記憶領域のデータのみが複製する方法（Writable Snapshot機能等）を適用することができる。
【０１１２】  また、実施形態における各機能部は、プログラムとＣＰＵの協働によって実現する例について説明したが、これらの一部や全部をハードウェアとして実現することも可能である。  なお、実施形態において各機能部を実現するためのプログラムは、電気・電子及び／又は磁気的な非一時的な記録媒体に格納可能であることはいうまでもない。
【符号の説明】
【０１１３】  １００…第１システム、１１０…分析サーバ、１２０…検索サーバ、１３０…ＤＷＨ、１４０…ＥＴＬ、１５０…データソース、１６８…有向グラフ表、１６９…複製順序表、１７０…複製時刻表、２００…第２システム、３１０…複製手順管理部、３３０…複製制御部
【図１】
0005905122.tif 000002
【図２】
0005905122.tif 000003
【図３】
0005905122.tif 000004
【図４】
0005905122.tif 000005
【図５】
0005905122.tif 000006
【図６】
0005905122.tif 000007
【図７】
0005905122.tif 000008
【図８】
0005905122.tif 000009
【図９】
0005905122.tif 000010
【図１０】
0005905122.tif 000011
【図１１】
0005905122.tif 000012
【図１２】
0005905122.tif 000013
【図１３】
0005905122.tif 000014
【図１４】
0005905122.tif 000015
【図１５】
0005905122.tif 000016
【図１６】
0005905122.tif 000017
【図１７】
0005905122.tif 000018
【図１８】
0005905122.tif 000019