(57)【要約】【課題】リカバリ処理等のためのデータ送信が中断された場合に、データ送信にかかる時間を従来よりも短縮する。【解決手段】サーバは、複数のデータブロックの各々に固有な第１固有情報を生成して記憶した後に、各データブロックを順次、情報処理装置へ送信する。情報処理装置は、サーバから送信された各データブロックを順次受信する。情報処理装置は、サーバがデータブロックの送信を中断した場合には、サーバからデータブロックの送信再開指示を受けた後に、サーバから第１固有情報を取得し、受信済みのデータブロックの各々に固有な第２固有情報を生成し、データブロックを受信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信をサーバに要求する。【選択図】図２
2010277512.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するデータ送信方法であって、
前記サーバは、前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、前記情報処理装置へ送信し、
前記情報処理装置は、前記サーバから送信された各データブロックを順次受信し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、受信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを受信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【請求項２】
第１固有情報及び第２固有情報は、ハッシュ値、またはＣＲＣ値である、請求項１に記載のデータ送信方法。
【請求項３】
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するシステムであって、
前記サーバは、
前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信する通信部と、を備え、
前記情報処理装置は、
前記サーバから送信された複数のデータブロックを順次受信し、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得する通信部と、
受信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを受信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【請求項４】
情報処理装置のシステム環境を記録したファイルを、ネットワークを介して前記情報処理装置に送信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信するとともに、データブロックの送信を中断した場合には、データブロックの送信再開を行う前に、前記情報処理装置に対して第１固有情報を送信し、該第１固有情報に応じて前記情報処理装置により特定されるデータブロックの送信を行う通信部と、
を備えるサーバ。
【請求項５】
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するデータ送信方法であって、
前記情報処理装置は、前記ファイルを構成する複数のデータブロックを順次、前記サーバへ送信し、
前記サーバは、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、送信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを送信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【請求項６】
第１固有情報及び第２固有情報は、ハッシュ値、またはＣＲＣ値である、請求項５に記載のデータ送信方法。
【請求項７】
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するシステムであって、
前記サーバは、
前記情報処理装置から送信された、前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、を備え、
前記情報処理装置は、
前記複数のデータブロックを順次、サーバへ送信するとともに、データブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得する通信部と、
送信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを送信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【請求項８】
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置からネットワークを介して受信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置から受信するとともに、データブロックの受信を中断した場合には、データブロックの受信再開を行う前に、前記情報処理装置に対して第１固有情報を送信し、該第１固有情報に応じて前記情報処理装置により特定されるデータブロックの受信を行う通信部と、
を備えるサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置のシステム環境のリストア処理、リカバリ処理、又はバックアップ処理を行う際に用いられる情報処理技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の情報処理装置に対して、システム環境の構築やリカバリ処理等のサービスを提供するサーバ（デプロイメント・サーバ）がネットワークを介して通信可能に接続されているシステムが知られている。このシステムでは、デプロイメント・サーバが、情報処理装置のシステム環境を記録したファイルを記憶媒体や記憶装置から読み出し、リカバリ対象となる情報処理装置に送信する。そして、リカバリ対象となる情報処理装置は、受信したファイルを用いてシステム環境を復元する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−７７２４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークのシステム環境が複雑になるにつれ、ネットワークを介してリカバリ処理を行うために必要となる時間が長くなり、例えば、１０時間以上の時間を要する場合がある。従来のシステムでは、何らかの理由でリカバリ処理が中断された場合、リカバリ処理が中断されている間にシステム環境が変更されたか否かを確認する手段がなかった。そのため、従来のシステムでは、リカバリ処理を再開する際、リカバリ処理が中断される前に送信したファイルを最初から全て送信する必要があった。その結果、一度リカバリ処理を中断すると、リカバリ処理が終了するまでに長い時間がかかることが課題となっていた。
【０００５】
そこで、リカバリ処理等のためのデータ送信が中断された場合に、中断後のデータ送信にかかる時間を従来よりも短縮することを目的とする。
【課題を解決するための手段】
【０００６】
第１の観点では、情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するデータ送信方法が提供される。前記サーバは、前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、情報処理装置へ送信し、前記情報処理装置は、前記サーバから送信された各データブロックを順次受信する。前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、受信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを受信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する。
また、第２の観点では、上記データ送信方法の各工程の処理を行うシステムが提供される。
【０００７】
第３の観点では、情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するデータ送信方法が提供される。前記情報処理装置は、前記ファイルを構成する複数のデータブロックを順次、サーバへ送信する。前記サーバは、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶する。前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、送信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを送信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する。
また、第４の観点では、上記データ送信方法の各工程の処理を行うシステムが提供される。
【発明の効果】
【０００８】
開示のデータ送信方法、システム及びサーバによれば、リカバリ処理等のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係るシステムの概略構成の一例を示す図である。
【図２】本発明に係るデータ送信方法の一例を示す図である。
【図３】（ａ）は、サーバがデータブロック送信中断前に保持するデータの一例を示し、（ｂ）は、情報処理装置がデータブロック受信中断時に保持するデータの一例を示し、（ｃ）は、サーバがデータブロック送信再開後に保持するデータの一例を示す。
【図４】本発明に係るシステムの一例を示す図である。
【図５】（ａ）は、サーバがデータを送信するフローを示すフローチャートであり、（ｂ）は、情報処理装置がデータを受信するフローを示すフローチャートである。
【図６】（ａ）は、データの送信を再開する際のサーバのフローを示すフローチャートであり、（ｂ）は、データの受信を再開する際の情報処理装置のフローを示すフローチャートである。
【図７】ハッシュ値比較処理の一例を示すフローチャートである。
【図８】ハッシュ値比較処理の他の例を示すフローチャートである。
【図９】本発明に係るシステムの概略構成の一例を示す図である。
【図１０】本発明に係るデータ送信方法の一例を示す図である。
【図１１】（ａ）は、サーバがデータブロック受信中断前に保持するデータの一例を示し、（ｂ）は、情報処理装置がデータブロック送信中断時に保持するデータの一例を示し、（ｃ）は、サーバがデータブロック受信再開後に保持するデータの一例を示す。
【図１２】本発明に係るシステムの一例を示す図である。
【図１３】（ａ）は、サーバがデータを受信するフローを示すフローチャートであり、（ｂ）は、情報処理装置がデータを送信するフローを示すフローチャートである。
【図１４】（ａ）は、データの受信を再開する際のサーバのフローを示すフローチャートであり、（ｂ）は、データの送信を再開する際の情報処理装置のフローを示すフローチャートである。
【図１５】ハッシュ値比較処理の一例を示すフローチャートである。
【図１６】ハッシュ値比較処理の他の例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、データ送信方法、システムの一例を、実施形態に基づいて説明する。
＜第１の実施形態＞
本実施形態では、ネットワークを介して情報処理装置のリカバリ処理やリストア処理を行うためのデータ送信方法について説明する。
まず、図１を参照して、本実施形態のシステムの概略構成を説明する。図１に示すように、本実施形態のシステムでは、サーバ１００と、情報処理装置３００と、記憶装置４００と、がネットワーク２００を介して接続されている。
サーバ１００は、ネットワーク２００を介して、情報処理装置３００のリカバリ処理やリストア処理を行う。記憶装置４００は、情報処理装置３００のシステム環境を記録したファイルを記憶する。情報処理装置３００は、例えば、パーソナルコンピュータである。サーバ１００が、記憶装置４００に記憶されたファイルを情報処理装置３００に送信することで、情報処理装置３００のリカバリ処理やリストア処理を行うことができる。
記憶装置４００に記憶されたファイルのデータ量が大きいとき、サーバ１００がファイルを一度に読み出し、一度に送信することが困難となる場合がある。そのため、サーバ１００は、記憶装置４００に記憶されたファイルを複数のデータブロックに分け、データブロックの単位で読み出し、データブロックを情報処理装置に順次、送信する。
【００１１】
次に、図２を参照して、本実施形態のデータ送信方法の概要を説明する。図２は、本実施形態のデータ送信方法において、サーバ１００と情報処理装置３００との間で行われる処理のフローを示す。
まず、サーバ１００は、情報処理装置３００のシステム環境を記録したファイルを構成する複数のデータブロックの各々に固有な情報を、所定の規則により生成する（ステップＳ１）。サーバ１００が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第１固有情報と呼ぶ。生成された第１固有情報は、順次、サーバ１００の記憶部に記憶される。そして、サーバ１００は、複数のデータブロックを、順次、情報処理装置３００に送信する（ステップＳ２）。そして、サーバ１００は、次に送信するデータブロックに固有な情報を、所定の規則により生成する（ステップＳ３）。生成された第１固有情報は、サーバ１００の記憶部に記憶される。
【００１２】
以下、説明の便宜上、自然数ｋを用いて、ｋ番目に送受信されるデータブロックをＤ（ｋ）と表す。また、サーバ１００が所定の規則により生成する、ｋ番目のデータブロックＤ（ｋ）に固有な情報（第１固有情報）をＨ１（ｋ）と表す。
また、以下の説明では、自然数ｐを用いて、１番目からｐ−１番目までのデータブロックの送受信は正常に行われ、ｐ番目のデータブロックの送受信を行っている間に、何らかの理由でデータブロックの送受信が中断された場合（ステップＳ４）の例を説明する。データブロックの送受信が中断される場合の例として、ネットワークに障害が発生した場合が挙げられる。
【００１３】
ここで、図３（ａ）を参照して、サーバ１００がデータブロックの送信を中断する前に保持するデータの一例を説明する。サーバ１００は、ｐ番目のデータブロックＤ（ｐ）を情報処理装置３００に送信するまでに、Ｄ（１）〜Ｄ（ｐ）の各データブロックに対して、所定の規則により、第１固有情報Ｈ１（１）〜Ｈ１（ｐ）を、各データブロックを送信する毎に生成する。生成された第１固有情報Ｈ１（１）〜Ｈ１（ｐ）は、順次、サーバ１００の記憶部に記憶される。
【００１４】
図２の説明に戻り、ネットワークに発生した障害が復旧するなど、データブロックの送受信を再開できる状況になると、サーバ１００は情報処理装置３００に送信再開指示を送信する（ステップＳ５）。
情報処理装置３００は、送信再開指示を受けると、データブロックの送受信が中断されるまでにサーバ１００により生成された第１固有情報を、サーバ１００から取得する（ステップＳ６）。また、情報処理装置３００は、データブロックの送受信が中断されるまでに情報処理装置３００が受信したデータブロックの各々に固有な情報を、所定の規則により生成する（ステップＳ７）。情報処理装置３００が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第２固有情報と呼ぶ。そして、情報処理装置３００は、データブロックを受信した順に、サーバ１００から取得した第１固有情報と、情報処理装置３００が生成した第２固有情報とを比較する（ステップＳ８）。
【００１５】
ここで、図３に示すように、説明の便宜上、情報処理装置３００が所定の規則により生成する、ｋ番目のデータブロックＤ（ｋ）に固有な情報（第２固有情報）をＨ２（ｋ）と表す。なお、サーバが第１固有情報を生成するための所定の規則と、情報処理装置が第２固有情報を生成するための所定の規則とは、同一の規則とする。
【００１６】
ここで、図３（ｂ）を参照して、情報処理装置３００がデータブロックの受信を中断している間に保持するデータの一例を説明する。情報処理装置３００は、データブロックの受信を中断するまでに、Ｄ（１）、Ｄ（２）、…、Ｄ（ｐ）の順に、データブロックを受信する。そして、情報処理装置３００は、Ｄ（１）〜Ｄ（ｐ）の各データブロックに対して、所定の規則により、第２固有情報Ｈ２（１）〜Ｈ２（ｐ）を生成する。また、情報処理装置３００は、データブロックの送受信が中断されるまでにサーバ１００により生成された第１固有情報Ｈ１（１）〜Ｈ１（ｐ）を、サーバ１００から取得する。そして、情報処理装置３００は、ｋ＝１、２、…、ｐの順に、順次、Ｈ１（ｋ）とＨ２（ｋ）を比較する。
【００１７】
ここで、Ｈ１（ｋ）は、サーバ１００が送信したデータブロックＤ（ｋ）に固有な情報であり、Ｈ２（ｋ）は、情報処理装置３００が受信したデータブロックＤ（ｋ）に固有な情報である。そのため、サーバ１００が送信したデータブロックＤ（ｋ）と情報処理装置３００が受信したデータブロックＤ（ｋ）が同一であれば、それぞれに固有な情報であるＨ１（ｋ）とＨ２（ｋ）も同一となる。したがって、情報処理装置３００がＨ１（ｋ）とＨ２（ｋ）を比較した結果、Ｈ１（ｋ）とＨ２（ｋ）が一致することは、ｋ番目のデータブロックＤ（ｋ）が正しく受信されたことを意味する。
これに対し、情報処理装置３００がＨ１（ｋ）とＨ２（ｋ）を比較した結果、Ｈ１（ｋ）とＨ２（ｋ）が一致しないことは、ｋ番目のデータブロックＤ（ｋ）が正しく受信されなかったことを意味する。
【００１８】
このように、情報処理装置３００がＨ１（ｋ）とＨ２（ｋ）を比較することにより、データブロックの送受信が中断された場合に、情報処理装置３００が正しく受信することができなかったデータブロックを特定することができる。すなわち、図３（ｂ）に示した例においては、ｋ＝１から順にＨ１（ｋ）とＨ２（ｋ）を比較すると、ｋ＝１、２、…、ｐ−１でＨ１（ｋ）とＨ２（ｋ）は一致し、送受信が中断されたｋ＝ｐのとき、Ｈ１（ｋ）とＨ２（ｋ）は一致しない。このため、情報処理装置３００は、データブロックＤ（ｐ）を正しく受信できなかったことが分かる。
【００１９】
図２の説明に戻り、情報処理装置３００が正しく受信することができなかったデータブロックとしてデータブロックＤ（ｐ）を特定すると、情報処理装置３００は、データブロックＤ（ｐ）以降のデータブロックの再送を、サーバ１００に要求する（ステップＳ９）。
サーバ１００は、情報処理装置３００からデータブロックの再送要求を受けると、データブロックＤ（ｐ）以降のデータブロックの各々に固有な情報を、所定の規則により生成する（ステップＳ１０）。生成された第１固有情報は、順次、サーバ１００の記憶部に記憶される。そして、サーバ１００は、データブロックＤ（ｐ）以降のデータブロックを、順次、情報処理装置３００に送信する（ステップＳ１１）。
【００２０】
ここで、図３（ｃ）を参照して、サーバ１００がデータブロックの送信を再開した後に保持するデータの一例を説明する。サーバ１００は、ｐ番目のデータブロックＤ（ｐ）以降の各データブロックに対して、所定の規則により、第１固有情報Ｈ１（ｐ）、Ｈ１（ｐ＋１）、…を、順次、生成する。生成された第１固有情報Ｈ１（ｐ）、Ｈ１（ｐ＋１）、…は、順次、サーバ１００の記憶部に記憶される。
【００２１】
以上説明したように、本実施形態のデータ送信方法では、サーバ１００が各データブロックを順次送信する際に、データブロックの各々に固有な情報（第１固有情報）を保持する。また、情報処理装置３００は、データブロックの送受信が中断された場合に、受信済みのデータブロックの各々に固有な情報（第２固有情報）を生成する。そして、情報処理装置３００は、第１固有情報と第２固有情報を比較することにより、データブロックの送受信が中断されることにより正しく受信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置３００が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、リカバリ処理やリストア処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【００２２】
＜第２の実施形態＞
本実施形態では、第１の実施形態で説明したデータ送信方法を実現するためのシステムの具体的な構成の一例を説明する。
【００２３】
（システムの概略構成）
まず、図４を参照して、本実施形態のシステムの構成を説明する。図４は、本実施形態のシステムで用いられるサーバ１００と情報処理装置３００の具体的構成の一例を示すものである。
図４に示されるように、サーバ１００は、制御部１０２と、記憶部１０４と、通信部１０６と、を備える。これらはデータバス１５０によって接続されている。
また、情報処理装置３００は、通信部３０２と、記憶部３０４と、制御部３０６と、を備える。これらはデータバス３５０によって接続されている。
【００２４】
また、情報処理装置３００のシステム環境を記録したファイルを記憶した記憶装置４００は、サーバ１００の外部に設けられている。そして、記憶装置４００は、ネットワーク２００に接続されている。記憶装置４００に記憶されるファイルの大きさは、情報処理装置３００のシステム環境に依存するが、例えば、数ＧＢ（ギガバイト）程度に達することがある。なお、この記憶装置４００は、サーバ１００の内部に備えられていてもよい。
サーバ１００は、記憶装置４００に記憶されたデータを、例えば、大きさが２５６ＫＢ（キロバイト）であるデータブロックに分け、データブロックを情報処理装置３００に送信する。
以下、サーバ１００と情報処理装置３００の構成を詳細に説明する。
【００２５】
まず、サーバ１００の構成について説明する。
制御部１０２は、ＣＰＵ（コンピュータ）を主体として構成される。また、制御部１０２は、記憶装置４００から読み出されたデータブロックの各々に固有な第１固有情報を、所定の規則により生成する。第１固有情報を生成するための所定の規則としては、例えば、ハッシュ関数やＣＲＣ（Cyclic Redundancy Check）を用いることができる。そのため、第１固有情報として、例えば、ハッシュ値やＣＲＣ値を用いることができる。本実施形態では、第１固有情報としてハッシュ値を用いる場合の例を説明する。
【００２６】
記憶部１０４は、制御部１０２によって生成された第１固有情報を記憶する。記憶部１０４が第１固有情報を記憶する過程の詳細は後述するが、記憶部１０４は、１番目のデータブロックに固有な第１固有情報から順に、累積的に記憶する。
【００２７】
通信部１０６は、情報処理装置３００との通信を確立するための通信インターフェースを備える。そして、通信部１０６は、記憶装置４００から読み出されたデータブロックを情報処理装置３００に順次、送信する。また、通信部１０６は、データブロックの送受信が中断された後、データブロックの送受信を再開できる状況になると、情報処理装置３００に送信再開指示を送信する。
なお、本実施形態では、通信部１０６は、２５６ＫＢのデータブロックを、更に、例えば２５６個に分割し、１ＫＢの大きさに分割されたデータを順次、情報処理装置３００に送信する。
【００２８】
続いて、情報処理装置３００の構成について説明する。
通信部３０２は、サーバ１００との通信を確立するための通信インターフェースを備える。そして、通信部３０２は、サーバ１００から送信されたデータブロックを順次、受信する。上述したように、２５６ＫＢのデータブロックは、例えば、１ＫＢ単位の２５６個のデータに分割されて順次、サーバ１００から送信されるため、通信部３０２は、１ＫＢ単位の２５６個のデータを順次、受信する。
また、通信部３０２は、データブロックの送受信が中断された場合には、データブロックの送受信を再開できる状況になった後、サーバ１００から送信再開指示を受ける。そして、通信部３０２は、送信再開指示を受けた後に、サーバ１００の記憶部１０４に記憶された送信済みの各データブロックの第１固有情報を取得する。また、通信部３０２は、正しく受信されなかったデータブロックを特定した後、正しく受信されなかったデータブロックの再送をサーバ１００に要求する。
【００２９】
記憶部３０４は、１ＫＢ単位の２５６個のデータを、２５６ＫＢの大きさのデータブロックに再構築し、再構築されたデータブロックを記憶する。
制御部３０６は、ＣＰＵ（コンピュータ）を主体として構成される。また、制御部３０６は、データブロックの送受信が中断されるまでに情報処理装置３００の通信部３０２が受信したデータブロックの各々に固有な第２固有情報を、所定の規則により生成する。また、制御部３０６は、通信部３０２がデータブロックを受信した順に、順次、サーバ１００から取得した第１固有情報と、情報処理装置３００が生成した第２固有情報とを比較する。また、制御部３０６は、第１固有情報と第２固有情報とが一致しないデータブロックの再送を、サーバ１００に要求する。
以上が、本実施形態のシステムの構成である。
【００３０】
（データ送信フローの説明）
続いて、図５から図７を参照して、上述したシステムを用いてリカバリ処理やリストア処理を行う方法を説明する。
まず、図５（ａ）のフローチャートを参照して、サーバ１００がデータブロックを正常に送信する場合のフローを説明する。
【００３１】
まず、サーバ１００が１番目のデータブロックＤ（１）を読み出すために、制御部１０２は、データブロックを送信する順番を示すパラメータｋを、ｋ＝１とする（ステップＳ１０１）。そして、通信部１０６は、ｋ番目のデータブロックＤ（ｋ）を取得し、制御部１０２は、データブロックＤ（ｋ）のハッシュ値Ｈ１（ｋ）を生成する（ステップＳ１０２）。そして、記憶部１０４は、生成されたハッシュ値Ｈ１（ｋ）を記憶する（ステップＳ１０３）。そして、通信部１０６は、データブロックＤ（ｋ）を１ＫＢ単位のデータに分割し、分割されたデータを順次、情報処理装置３００に送信することにより、データブロックＤ（ｋ）を送信する（ステップＳ１０４）。
【００３２】
そして、制御部１０２は、記憶装置４００に記憶された全てのデータブロックの送信が終了したか否かを判断する（ステップＳ１０５）。全てのデータブロックの送信が終了していない場合、制御部１０２は、ｋを１増加させる（ステップＳ１０６）。そして、サーバ１００は、全てのデータブロックの送信が終了するまで、ステップＳ１０２〜Ｓ１０６の処理を繰り返す。ステップＳ１０５において、全てのデータブロックの送信が終了した場合、リカバリ処理やリストア処理を行うためのサーバ１００の処理は終了する。
以上が、サーバ１００がデータブロックを送信するフローである。
【００３３】
続いて、図５（ｂ）を参照して、情報処理装置３００がデータブロックを正常に受信する場合のフローを説明する。
まず、通信部３０２は、１ＫＢ単位のデータを順次、受信することにより、データブロックＤ（ｋ）を受信する（ステップＳ２０１）。そして、１ＫＢ単位の２５６個のデータは、２５６ＫＢの大きさのデータブロックＤ（ｋ）に再構築され、記憶部３０４は、再構築されたデータブロックＤ（ｋ）を記憶する（ステップＳ２０２）。
以上が、情報処理装置３００がデータブロックを受信するフローである。
【００３４】
続いて、図６を参照して、データブロックの送受信が中断された後、データブロックの送受信を再開する際のサーバ１００と情報処理装置３００のフローを説明する。図６（ａ）は、データブロックの送信を再開する際のサーバ１００のフローを示し、図６（ｂ）は、データブロックの受信を再開する際の情報処理装置３００のフローを示す。
【００３５】
データブロックの送受信を再開できる状況になると、通信部１０６は、リカバリ処理やリストア処理を再開することを示す信号（送信再開指示）を、情報処理装置３００に送信する（ステップＳ１０７）。情報処理装置３００は、サーバ１００から送信された送信再開指示を受信する（ステップＳ２０３）。そして、情報処理装置３００は、送信再開指示を受信すると、ハッシュ値比較処理を行う（ステップＳ２０４）。
【００３６】
ここで、図７を参照して、ハッシュ値比較処理（ステップＳ２０４）の詳細を説明する。
まず、情報処理装置３００が受信済みの１番目のデータブロックＤ（１）を読み出すために、制御部３０６は、データブロックを受信した順序を示すパラメータｋを、ｋ＝１とする（ステップＳ３０１）。そして、通信部３０２は、記憶部１０４に記憶された各データブロックの第１固有情報（ハッシュ値）を取得する（ステップＳ３０２）。本実施形態では、データブロックの送受信が中断されるまでに生成された第１固有情報（ハッシュ値）を、全て同時に取得する例を説明するが、複数回に分けて、データブロックの送受信が中断されるまでに生成された第１固有情報（ハッシュ値）を取得してもよい。そして、制御部３０６は、記憶部３０４に記憶されたｋ番目のデータブロックＤ（ｋ）の第２固有情報（ハッシュ値）としてＨ２（ｋ）を生成する（ステップＳ３０３）。そして、制御部３０６は、Ｈ１（ｋ）とＨ２（ｋ）の比較を行う（ステップＳ３０４）。
【００３７】
ここで、サーバ１００と情報処理装置３００とで別々に生成されたＨ１（ｋ）とＨ２（ｋ）が一致することは、ｋ番目のデータブロックＤ（ｋ）が正しく受信されたことを意味する。Ｈ１（ｋ）とＨ２（ｋ）が一致した場合、制御部３０６は、ｋを１増加させる（ステップＳ３０５）。そして、情報処理装置３００は、Ｈ１（ｋ）とＨ２（ｋ）が一致しなくなるまで、ステップＳ３０３〜３０５を繰り返す。
一方、Ｈ１（ｋ）とＨ２（ｋ）が一致しない場合、ハッシュ値比較処理は終了する。Ｈ１（ｋ）とＨ２（ｋ）が一致しないｋを特定することにより、情報処理装置３００が正しく受信することができなかったデータブロックを特定することができる。本実施形態では、ｐ番目のハッシュ値Ｈ１（ｐ）とＨ２（ｐ）が一致しない場合の例を説明する。
【００３８】
図６に戻り、ハッシュ値比較処理（ステップＳ２０４）が終了した後に、データブロックの送受信を再開する際のサーバ１００と情報処理装置３００のフローを説明する。
通信部３０２は、第１固有情報と第２固有情報が一致しないデータブロックＤ（ｐ）以降のデータブロックの再送をサーバ１００に要求する（ステップＳ２０５）。
【００３９】
サーバ１００が情報処理装置３００からの再送要求を受けると、ｐ番目のデータブロックＤ（ｐ）以降のデータブロックを送信するために、制御部１０２は、データブロックを送信する順番を示すパラメータｋを、ｋ＝ｐとする（ステップＳ１０８）。
ｐ番目以降のデータブロックを送信する処理は、図５（ａ）のステップＳ１０２〜Ｓ１０６と同じである。すなわち、通信部１０６は、ｋ番目のデータブロックＤ（ｋ）を取得し、制御部１０２は、データブロックＤ（ｋ）のハッシュ値Ｈ１（ｋ）を生成する（ステップＳ１０９）。そして、記憶部１０４は、生成されたハッシュ値Ｈ１（ｋ）を記憶する（ステップＳ１１０）。そして、通信部１０６は、データブロックＤ（ｋ）を１ＫＢ単位のデータに分割し、分割されたデータを順次、情報処理装置３００に送信することにより、データブロックＤ（ｋ）を送信する（ステップＳ１１１）。
【００４０】
そして、制御部１０２は、記憶装置４００に記憶された全てのデータブロックの送信が終了したか否かを判断する（ステップＳ１１２）。全てのデータブロックの送信が終了していない場合、制御部１０２は、ｋを１増加させる（ステップＳ１１３）。そして、サーバ１００は、全てのデータブロックの送信が終了するまで、ステップＳ１０９〜Ｓ１１３の処理を繰り返す。ステップＳ１１２において、全てのデータブロックの送信が終了した場合、リカバリ処理やリストア処理を行うためのサーバ１００の処理は終了する。
以上が、サーバ１００が情報処理装置３００に、ｐ番目のデータブロックＤ（ｐ）以降のデータブロックを送信するフローである。
【００４１】
また、図６（ｂ）に戻り、情報処理装置３００において、通信部３０２は、１ＫＢ単位のデータを順次、受信することにより、データブロックＤ（ｋ）を受信する（ステップＳ２０６）。そして、１ＫＢ単位の２５６個のデータは、２５６ＫＢの大きさのデータブロックＤ（ｋ）に再構築され、記憶部３０４は、再構築されたデータブロックＤ（ｋ）を記憶する（ステップＳ２０７）。
以上が、情報処理装置３００が、ｐ番目のデータブロックＤ（ｐ）以降のデータブロックを受信するフローである。
【００４２】
以上説明したように、本実施形態のシステムでは、サーバ１００で生成された各送信データブロックのハッシュ値と、情報処理装置３００で生成された各受信データブロックのハッシュ値とを情報処理装置３００が比較する。そのため、データブロックの送受信が中断されることにより正しく受信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置３００が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、リカバリ処理やリストア処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【００４３】
なお、データブロックの送受信が中断される場合の例としては、ネットワークに障害が発生した場合に限られるものではない。例えば、リカバリ処理やリストア処理を急いで行う必要がない場合に、情報処理装置３００を使用していない時間帯（例えば、夜間）にリカバリ処理やリストア処理を行い、それ以外の時間帯については、リカバリ処理やリストア処理を意図的に中断する構成としてもよい。
【００４４】
＜第３の実施形態＞
上述した実施形態においては、中断より前に情報処理装置３００が受信したデータブロックは、全て、最新のシステム環境を記録したものという前提であった。しかし、データブロックの送受信が中断されている間に、情報処理装置３００のシステム環境が変更されると、受信済みの最後のデータブロック以外のデータブロックに対する第１固有情報と第２固有情報が一致しない場合も生じ得る。
この場合、情報処理装置３００のシステム環境が変更されたとしても、必ずしもデータブロックの送受信が中断されるまでに受信された全てのデータブロックが変更されるのではなく、一部のデータブロックのみ変更される場合がある。例えば、１００番目のデータブロックを送受信している間に、データブロックの送受信が中断されたとする。データブロックの送受信が中断されている間に、情報処理装置３００のシステム環境が変更された結果、例えば、２番目のデータブロックのみ変更される場合がある。この場合、第２の実施形態の構成では、２番目以降のデータブロックを全て送信することになるが、３番目から９９番目のデータブロックは変更されないため、これらのデータブロックの再送は省略することがより好ましい。
そこで、本実施形態では、データブロックの送受信が中断されている間に、情報処理装置３００のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することを目的とする。
【００４５】
本実施形態のシステムで用いられるサーバ１００と情報処理装置３００の構成は、上述した第２の実施形態と同様である。
本実施形態では、図６（ｂ）を参照して説明したハッシュ値比較処理（ステップＳ２０４）の詳細なステップが、第２の実施形態と異なる。以下、図８を参照して、本実施形態のハッシュ値比較処理（ステップＳ２０４）の詳細を説明する。
【００４６】
まず、制御部３０６は、受信済みの１番目のデータブロックＤ（１）を読み出すために、データブロックを受信した順序を示すパラメータｋを、ｋ＝１とする（ステップＳ４０１）。そして、通信部３０２は、記憶部１０４に記憶された各データブロックの第１固有情報（ハッシュ値）を取得する（ステップＳ４０２）。そして、制御部３０６は、記憶部３０４に記憶されたｋ番目のデータブロックＤ（ｋ）の第２固有情報（ハッシュ値）としてＨ２（ｋ）を生成する（ステップＳ４０３）。そして、制御部３０６は、データブロックを受信した順に、Ｈ１（ｋ）とＨ２（ｋ）の比較を行う（ステップＳ４０４）。
【００４７】
Ｈ１（ｋ）とＨ２（ｋ）が一致した場合、制御部３０６は、ｋを１増加させる（ステップＳ４０５）。そして、制御部３０６は、Ｈ１（ｋ）とＨ２（ｋ）が一致しなくなるまで、ステップＳ４０３〜Ｓ４０５の処理を繰り返す。
一方、Ｈ１（ｋ）とＨ２（ｋ）が一致しない場合、制御部３０６は、データブロックＤ（ｋ）が受信済みの最後のデータブロックであるかどうかを判断する（ステップＳ４０６）。
【００４８】
Ｈ１（ｋ）とＨ２（ｋ）が一致しないにもかかわらず、データブロックＤ（ｋ）が受信済みの最後のデータブロックでないことは、データブロックの送受信が中断されている間に、情報処理装置３００のシステム環境が変更されたことを意味する。この場合、情報処理装置３００は、ｋ番目のデータブロックＤ（ｋ）のみの送信をサーバ１００に要求する（ステップＳ４０７）。サーバ１００は、情報処理装置３００からｋ番目のデータブロックＤ（ｋ）のみの再送の要求を受けると、ｋ番目のデータブロックＤ（ｋ）を情報処理装置３００に送信する。
【００４９】
そして、制御部３０６は、ｋを１増加させる（ステップＳ４０８）。そして、情報処理装置３００は、ステップＳ４０６において、Ｈ１（ｋ）とＨ２（ｋ）が一致しないデータブロックＤ（ｋ）が受信済みの最後のデータブロックとなるまで、ステップＳ４０３〜Ｓ４０８の処理を繰り返す。データブロックＤ（ｋ）が受信済みの最後のデータブロックである場合、ハッシュ値比較処理を終了する。そして、図６（ｂ）を参照して説明したステップＳ２０５以降の処理を行う。
【００５０】
以上説明したように、本実施形態では、情報処理装置３００は、第１固有情報と第２固有情報とが一致しないデータブロックが、受信済みの最後のデータブロックであるかどうかを判断する。そして、情報処理装置３００は、第１固有情報と第２固有情報とが一致しないデータブロックが受信済みの最後のデータブロックでない場合、そのデータブロックの再送を要求する。これにより、第２の実施形態と比較して、データブロックの送受信が中断されている間に、情報処理装置３００のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することができる。
【００５１】
＜第４の実施形態＞
上述した実施形態は、リカバリ処理やリストア処理のためのデータ送信が中断された場合に、中断後のデータ送信にかかる時間を従来よりも短縮するものであった。
ところで、ネットワークのシステム環境が複雑になるにつれ、ネットワークを介してバックアップ処理を行うために必要となる時間が長くなり、例えば、１０時間以上の時間を要する場合がある。従来のシステムでは、何らかの理由でバックアップ処理が中断された場合、バックアップ処理が中断されている間にシステム環境が変更されたか否かを確認する手段がなかった。そのため、従来のシステムでは、バックアップ処理を再開する際、バックアップ処理が中断される前に送信したファイルを最初から全て送信する必要があった。その結果、一度バックアップ処理を中断すると、バックアップ処理が終了するまでに長い時間がかかることが課題となっていた。
そこで、本実施形態では、バックアップ処理のためのデータ送信が中断された場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができるデータ送信方法について説明する。
【００５２】
まず、図９を参照して、本実施形態のシステムの概略構成を説明する。図９に示すように、本実施形態のシステムでは、サーバ５００と、情報処理装置７００と、記憶装置８００と、がネットワーク６００を介して接続されている。
サーバ５００は、ネットワーク６００を介して、情報処理装置７００のバックアップ処理を行う。記憶装置８００は、情報処理装置７００から送信された、情報処理装置７００のシステム環境を記録したファイルを記憶する。情報処理装置７００は、例えば、パーソナルコンピュータである。情報処理装置７００が、情報処理装置７００のシステム環境を記録したファイルをサーバ５００に送信し、記憶装置８００がこのファイルを記憶することで、情報処理装置７００のバックアップ処理を行うことができる。
情報処理装置７００のシステム環境を記録したファイルのデータ量が大きいとき、情報処理装置７００がファイルを一度に送信することが困難となる場合がある。そのため、情報処理装置７００は、情報処理装置７００のシステム環境を記録したファイルを複数のデータブロックに分け、データブロックの単位で情報処理装置に順次、送信する。
【００５３】
次に、図１０を参照して、本実施形態のデータ送信方法の概要を説明する。図１０は、本実施形態のデータ送信方法において、サーバ５００と情報処理装置７００との間で行われる処理のフローを示す。
まず、情報処理装置７００は、情報処理装置７００のシステム環境を記録したファイルを構成する複数のデータブロックを、順次、サーバ５００に送信する（ステップＳ５１）。そして、サーバ５００は、受信した複数のデータブロックの各々に固有な情報を、所定の規則により生成する（ステップＳ５２）。サーバ５００が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第１固有情報と呼ぶ。生成された第１固有情報は、順次、サーバ５００の記憶部に記憶される。
【００５４】
以下、説明の便宜上、自然数ｋを用いて、ｋ番目に送受信されるデータブロックをＤ（ｋ）と表す。また、サーバ５００が所定の規則により生成する、ｋ番目のデータブロックＤ（ｋ）に固有な情報（第１固有情報）をＨ１（ｋ）と表す。
また、以下の説明では、自然数ｐを用いて、１番目からｐ−１番目までのデータブロックの送受信は正常に行われ、ｐ番目のデータブロックの送受信を行っている間に、何らかの理由でデータブロックの送受信が中断された場合（ステップＳ５３）の例を説明する。データブロックの送受信が中断される場合の例として、ネットワークに障害が発生した場合が挙げられる。
そして、サーバ５００は、ｐ番目に受信したデータブロックに固有な情報を、所定の規則により生成する（ステップＳ５４）。
【００５５】
ここで、図１１（ａ）を参照して、サーバ５００がデータブロックの受信を中断する前に保持するデータの一例を説明する。サーバ５００は、ｐ番目のデータブロックＤ（ｐ）を情報処理装置７００から受信するまでに、Ｄ（１）〜Ｄ（ｐ）の各データブロックに対して、所定の規則により、第１固有情報Ｈ１（１）〜Ｈ１（ｐ）を、各データブロックを受信するごとに生成する。生成された第１固有情報Ｈ１（１）〜Ｈ１（ｐ）は、順次、サーバ５００の記憶部に記憶される。
【００５６】
図１０の説明に戻り、ネットワークに発生した障害が復旧するなど、データブロックの送受信を再開できる状況になると、サーバ５００は情報処理装置７００に送信再開指示を送信する（ステップＳ５５）。
情報処理装置７００は、送信再開指示を受けると、データブロックの送受信が中断されるまでにサーバ５００により生成された第１固有情報を、サーバ５００から取得する（ステップＳ５６）。また、情報処理装置７００は、データブロックの送受信が中断されるまでに情報処理装置７００が送信したデータブロックの各々に固有な情報を、所定の規則により生成する（ステップＳ５７）。情報処理装置７００が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第２固有情報と呼ぶ。そして、情報処理装置７００は、データブロックを送信した順に、サーバ５００から取得した第１固有情報と、情報処理装置７００が生成した第２固有情報とを比較する（ステップＳ５８）。
【００５７】
ここで図１１に示すように、説明の便宜上、情報処理装置７００が所定の規則により生成する、ｋ番目のデータブロックＤ（ｋ）に固有な情報（第２固有情報）をＨ２（ｋ）と表す。なお、サーバが第１固有情報を生成するための所定の規則と、情報処理装置が第２固有情報を生成するための所定の規則とは、同一の規則とする。
【００５８】
ここで、図１１（ｂ）を参照して、情報処理装置７００がデータブロックの送信を中断している間に保持するデータの一例を説明する。情報処理装置７００は、データブロックの送信を中断するまでに、Ｄ（１）、Ｄ（２）、…、Ｄ（ｐ）の順に、データブロックを送信する。そして、情報処理装置７００は、Ｄ（１）〜Ｄ（ｐ）の各データブロックに対して、所定の規則により、第２固有情報Ｈ２（１）〜Ｈ２（ｐ）を生成する。また、情報処理装置７００は、データブロックの送受信が中断されるまでにサーバ５００により生成された第１固有情報Ｈ１（１）〜Ｈ１（ｐ）を、サーバ５００から取得する。そして、情報処理装置７００は、ｋ＝１、２、…、ｐの順に、順次、Ｈ１（ｋ）とＨ２（ｋ）を比較する。
【００５９】
ここで、Ｈ１（ｋ）は、サーバ５００が受信したデータブロックＤ（ｋ）に固有な情報であり、Ｈ２（ｋ）は、情報処理装置７００が送信したデータブロックＤ（ｋ）に固有な情報である。そのため、サーバ５００が受信したデータブロックＤ（ｋ）と情報処理装置７００が送信したデータブロックＤ（ｋ）が同一であれば、それぞれに固有な情報であるＨ１（ｋ）とＨ２（ｋ）も同一となる。したがって、情報処理装置７００がＨ１（ｋ）とＨ２（ｋ）を比較した結果、Ｈ１（ｋ）とＨ２（ｋ）が一致することは、ｋ番目のデータブロックＤ（ｋ）が正しく送信されたことを意味する。
これに対し、情報処理装置７００がＨ１（ｋ）とＨ２（ｋ）を比較した結果、Ｈ１（ｋ）とＨ２（ｋ）が一致しないことは、ｋ番目のデータブロックＤ（ｋ）が正しく送信されなかったことを意味する。
【００６０】
このように、情報処理装置７００がＨ１（ｋ）とＨ２（ｋ）を比較することにより、データブロックの送受信が中断された場合に、情報処理装置７００が正しく送信することができなかったデータブロックを特定することができる。すなわち、図１１（ｂ）に示した例においては、ｋ＝１から順にＨ１（ｋ）とＨ２（ｋ）を比較すると、ｋ＝１、２、…、ｐ−１でＨ１（ｋ）とＨ２（ｋ）は一致し、送受信が中断されたｋ＝ｐのとき、Ｈ１（ｋ）とＨ２（ｋ）は一致しない。このため、情報処理装置７００は、データブロックＤ（ｐ）を正しく送信できなかったことが分かる。
【００６１】
図１０の説明に戻り、情報処理装置７００が、正しく送信することができなかったデータブロックとしてデータブロックＤ（ｐ）を特定すると、情報処理装置７００は、データブロックＤ（ｐ）以降のデータブロックを、順次、サーバ５００に送信する（ステップＳ５９）。サーバ５００は、データブロックＤ（ｐ）以降のデータブロックの各々に固有な情報を、所定の規則により生成する（ステップＳ６０）。生成された第１固有情報は、順次、サーバ５００の記憶部に記憶される。
【００６２】
ここで、図１１（ｃ）を参照して、サーバ５００がデータブロックの受信を再開した後に保持するデータの一例を説明する。サーバ５００は、ｐ番目のデータブロックＤ（ｐ）以降の各データブロックに対して、所定の規則により、第１固有情報Ｈ１（ｐ）、Ｈ１（ｐ＋１）、…を、順次、生成する。生成された第１固有情報Ｈ１（ｐ）、Ｈ１（ｐ＋１）、…は、順次、サーバ５００の記憶部に記憶される。
【００６３】
以上説明したように、本実施形態のデータ送信方法では、サーバ５００が各データブロックを順次受信する際に、データブロックの各々に固有な情報（第１固有情報）を保持する。また、情報処理装置７００は、データブロックの送受信が中断された場合に、送信済みのデータブロックの各々に固有な情報（第２固有情報）を生成する。そして、情報処理装置７００は、第１固有情報と第２固有情報を比較することにより、データブロックの送受信が中断されることにより正しく送信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置７００が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、バックアップ処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【００６４】
＜第５の実施形態＞
本実施形態では、第４の実施形態で説明したデータ送信方法を実現するためのシステムの具体的な構成の一例を説明する。
【００６５】
（システムの概略構成）
まず、図１２を参照して、本実施形態のシステムの構成を説明する。図１２は、本実施形態のシステムで用いられるサーバ５００と情報処理装置７００の具体的構成の一例を示すものである。
図１２に示されるように、サーバ５００は、制御部５０２と、記憶部５０４と、通信部５０６と、を備える。これらはデータバス５５０によって接続されている。
また、情報処理装置７００は、通信部７０２と、記憶部７０４と、制御部７０６と、を備える。これらはデータバス７５０によって接続されている。
【００６６】
情報処理装置７００には、情報処理装置７００のシステム環境を記録したファイルが記録されている。情報処理装置７００のシステム環境を記録したファイルの大きさは、情報処理装置７００のシステム環境に依存するが、例えば、数ＧＢ程度に達することがある。情報処理装置７００は、情報処理装置７００のシステム環境を記録したファイルを、例えば、大きさが２５６ＫＢであるデータブロックに分け、データブロックをサーバ５００に送信する。
また、記憶装置８００は、情報処理装置７００から送信される、情報処理装置７００のシステム環境を記録したファイルを記憶する。本実施形態では、記憶装置８００は、サーバ５００とネットワーク６００を介して、サーバ５００の外部に設けられている。しかし、この記憶装置８００は、サーバ５００の内部に備えられていてもよい。
以下、サーバ５００と情報処理装置７００の構成を詳細に説明する。
【００６７】
まず、サーバ５００の構成について説明する。
制御部５０２は、ＣＰＵ（コンピュータ）を主体として構成される。また、制御部５０２は、サーバ５００が受信したデータブロックの各々に固有な第１固有情報を、所定の規則により生成する。第１固有情報を生成するための所定の規則としては、例えば、ハッシュ関数やＣＲＣ（Cyclic Redundancy Check）を用いることができる。そのため、第１固有情報として、例えば、ハッシュ値やＣＲＣ値を用いることができる。本実施形態では、第１固有情報としてハッシュ値を用いる場合の例を説明する。
【００６８】
記憶部５０４は、制御部５０２によって生成された第１固有情報を記憶する。記憶部５０４が第１固有情報を記憶する過程の詳細は後述するが、記憶部５０４は、１番目のデータブロックに固有な第１固有情報から順に、累積的に記憶する。
また、記憶部５０４は、後述するように、情報処理装置７００から受信する１ＫＢ単位の２５６個のデータを、２５６ＫＢの大きさのデータブロックに再構築し、再構築されたデータブロックを一時的に記憶する。
【００６９】
通信部５０６は、情報処理装置７００との通信を確立するための通信インターフェースを備える。そして、通信部５０６は、情報処理装置７００から送信されたデータブロックを順次、受信する。なお、本実施形態では、通信部５０６は、２５６ＫＢのデータブロックを、更に、例えば２５６個に分割し、１ＫＢの大きさに分割されたデータを順次、情報処理装置７００から受信する。
また、通信部５０６は、データブロックの送受信が中断された後、データブロックの送受信を再開できる状況になると、情報処理装置７００に送信再開指示を送信する。また、通信部５０６は、記憶部５０４が一時的に記憶した２５６ＫＢの大きさのデータブロックを、記憶装置８００に送信する。
【００７０】
続いて、情報処理装置７００の構成について説明する。
通信部７０２は、サーバ５００との通信を確立するための通信インターフェースを備える。そして、通信部７０２は、情報処理装置７００のシステム環境を記録したファイルを構成する複数のデータブロックを順次、サーバ５００に送信する。本実施形態では、２５６ＫＢのデータブロックは、例えば、１ＫＢ単位の２５６個のデータに分割されて順次、送信されるため、通信部７０２は、１ＫＢ単位の２５６個のデータを順次、送信する。
また、通信部７０２は、データブロックの送受信が中断された場合には、データブロックの送受信を再開できる状況になった後、サーバ５００から送信再開指示を受ける。そして、通信部７０２は、送信再開指示を受けた後に、サーバ５００の記憶部５０４に記憶された第１固有情報を取得する。
【００７１】
記憶部７０４は、情報処理装置７００のシステム環境を記録したファイルを記憶する。
制御部７０６は、ＣＰＵ（コンピュータ）を主体として構成される。また、制御部７０６は、データブロックの送受信が中断されるまでに情報処理装置７００が送信したデータブロックの各々に固有な第２固有情報を、所定の規則により生成する。また、制御部７０６は、通信部７０２がデータブロックを送信した順に、順次、サーバ５００から取得した第１固有情報と、情報処理装置７００が生成した第２固有情報とを比較する。
以上が、本実施形態のシステムの構成である。
【００７２】
（データ送信フローの説明）
続いて、図１３から図１５を参照して、上述したシステムを用いてバックアップ処理を行う方法を説明する。
まず、図１３（ｂ）のフローチャートを参照して、情報処理装置７００がデータブロックを正常に送信する場合のフローを説明する。
【００７３】
まず、制御部７０６は、情報処理装置７００がデータブロックを送信する順番を示すパラメータｋを、ｋ＝１とする（ステップＳ５０１）。そして、通信部７０２は、データブロックＤ（ｋ）を１ＫＢ単位のデータに分割し、分割されたデータを順次、サーバ５００に送信することにより、データブロックＤ（ｋ）を送信する（ステップＳ５０２）。
【００７４】
そして、制御部７０６は、記憶部７０４に記憶された、情報処理装置７００のシステム環境を記録したファイルを構成する全てのデータブロックの送信が終了したか否かを判断する（ステップＳ５０３）。全てのデータブロックの送信が終了していない場合、制御部７０６は、ｋを１増加させる（ステップＳ５０４）。そして、情報処理装置７００は、全てのデータブロックの送信が終了するまで、ステップＳ５０２〜Ｓ５０４の処理を繰り返す。ステップＳ５０３において、全てのデータブロックの送信が終了した場合、バックアップ処理を行うための情報処理装置７００の処理は終了する。
以上が、情報処理装置７００がデータブロックを送信するフローである。
【００７５】
続いて、図１３（ａ）を参照して、サーバ５００がデータブロックを正常に受信する場合のフローを説明する。
まず、通信部５０６は、１ＫＢ単位のデータを順次、受信することにより、データブロックＤ（ｋ）を受信する（ステップＳ６０１）。そして、１ＫＢ単位の２５６個のデータは、２５６ＫＢの大きさのデータブロックＤ（ｋ）に再構築され、記憶部５０４は、再構築されたデータブロックＤ（ｋ）を記憶する（ステップＳ６０２）。そして、制御部５０２は、データブロックＤ（ｋ）のハッシュ値Ｈ１（ｋ）を生成する（ステップＳ６０３）。そして、記憶部５０４は、生成されたハッシュ値Ｈ１（ｋ）を記憶する（ステップＳ６０４）。
以上が、サーバ５００がデータブロックを受信するフローである。
【００７６】
続いて、図１４を参照して、データブロックの送受信が中断された後、データブロックの送受信を再開する際のサーバ５００と情報処理装置７００のフローを説明する。図１４（ａ）は、データブロックの受信を再開する際のサーバ５００のフローを示し、図１４（ｂ）は、データブロックの送信を再開する際の情報処理装置７００のフローを示す。
【００７７】
データブロックの送受信を再開できる状況になると、通信部５０６は、バックアップ処理を再開することを示す信号（送信再開指示）を、情報処理装置７００に送信する（ステップＳ６０５）。情報処理装置７００は、サーバ５００から送信された送信再開指示を受信する（ステップＳ５０５）。そして、情報処理装置７００は、送信再開指示を受信すると、ハッシュ値比較処理を行う（ステップＳ５０６）。
【００７８】
ここで、図１５を参照して、ハッシュ値比較処理（ステップＳ５０６）の詳細を説明する。
まず、情報処理装置７００が送信済みの１番目のデータブロックＤ（１）を読み出すために、制御部７０６は、データブロックの送信した順序を示すパラメータｋを、ｋ＝１とする（ステップＳ７０１）。そして、通信部７０２は、記憶部５０４に記憶された各データブロックの第１固有情報（ハッシュ値）を取得する（ステップＳ７０２）。本実施形態では、データブロックの送受信が中断されるまでに生成された第１固有情報（ハッシュ値）を、全て同時に取得する例を説明するが、複数回に分けて、データブロックの送受信が中断されるまでに生成された第１固有情報（ハッシュ値）を取得してもよい。そして、制御部７０６は、記憶部７０４に記憶された、情報処理装置７００のシステム環境を記録したファイルを構成する、送信済みのｋ番目のデータブロックＤ（ｋ）の第２固有情報（ハッシュ値）としてＨ２（ｋ）を生成する（ステップＳ７０３）。そして、制御部７０６は、Ｈ１（ｋ）とＨ２（ｋ）の比較を行う（ステップＳ７０４）。
【００７９】
ここで、サーバ５００と情報処理装置７００とで別々に生成されたＨ１（ｋ）とＨ２（ｋ）が一致することは、ｋ番目のデータブロックＤ（ｋ）が正しく送信されたことを意味する。Ｈ１（ｋ）とＨ２（ｋ）が一致した場合、制御部７０６は、ｋを１増加させる（ステップＳ７０５）。そして、情報処理装置７００は、Ｈ１（ｋ）とＨ２（ｋ）が一致しなくなるまで、ステップＳ７０３〜Ｓ７０５を繰り返す。
一方、Ｈ１（ｋ）とＨ２（ｋ）が一致しない場合、ハッシュ値比較処理は終了する。Ｈ１（ｋ）とＨ２（ｋ）が一致しないｋを特定することにより、サーバ５００が正しく受信することができなかったデータブロックを特定することができる。本実施形態では、ｐ番目のハッシュ値Ｈ１（ｐ）とＨ２（ｐ）が一致しない場合の例を説明する。
【００８０】
図１４に戻り、ハッシュ値比較処理（ステップＳ５０６）が終了した後に、データブロックの送受信を再開する際のサーバ５００と情報処理装置７００のフローを説明する。
制御部７０６は、ハッシュ値比較処理が終了すると、ｐ番目のデータブロックＤ（ｐ）以降のデータブロックを送信するために、データブロックを送信する順番を示すパラメータｋを、ｋ＝ｐとする（ステップＳ５０７）。
【００８１】
ｐ番目以降のデータブロックを送信する処理は、図１３（ｂ）のステップＳ５０２〜Ｓ５０４と同じである。すなわち、通信部７０２は、データブロックＤ（ｋ）を１ＫＢ単位のデータに分割し、分割されたデータを順次、サーバ５００に送信することにより、データブロックＤ（ｋ）を送信する（ステップＳ５０８）。そして、制御部７０６は、記憶部７０４に記憶された、情報処理装置７００のシステム環境を記録したファイルを構成する全てのデータブロックの送信が終了したか否かを判断する（ステップＳ５０９）。
全てのデータブロックの送信が終了していない場合、制御部７０６は、ｋを１増加させる（ステップＳ５１０）。そして、情報処理装置７００は、全てのデータブロックの送信が終了するまで、ステップＳ５０８〜Ｓ５１０の処理を繰り返す。ステップＳ５０９において、全てのデータブロックの送信が終了した場合、バックアップ処理を行うための情報処理装置７００の処理は終了する。
以上が、情報処理装置７００がサーバ５００に、ｐ番目のデータブロックＤ（ｐ）以降のデータブロックを送信するフローである。
【００８２】
また、図１４（ａ）に戻り、サーバ５００において、通信部５０６は、１ＫＢ単位のデータを順次、受信することにより、データブロックＤ（ｋ）を受信する（ステップＳ６０６）。そして、１ＫＢ単位の２５６個のデータは、２５６ＫＢの大きさのデータブロックＤ（ｋ）に再構築され、記憶部５０４は、再構築されたデータブロックＤ（ｋ）を記憶する（ステップＳ６０７）。そして、制御部５０２は、データブロックＤ（ｋ）のハッシュ値Ｈ１（ｋ）を生成する（ステップＳ６０８）。そして、記憶部５０４は、生成されたハッシュ値Ｈ１（ｋ）を記憶する（ステップＳ６０９）。
以上が、サーバ５００が、ｐ番目のデータブロックＤ（ｐ）以降のデータブロックを受信するフローである。
【００８３】
以上説明したように、本実施形態のシステムでは、サーバ５００で生成された各受信データブロックのハッシュ値と、情報処理装置７００で生成された各送信データブロックのハッシュ値とを情報処理装置７００が比較する。そのため、データブロックの送受信が中断されることにより正しく送信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置７００が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、バックアップ処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【００８４】
なお、データブロックの送受信が中断される場合の例としては、ネットワークに障害が発生した場合に限られるものではない。例えば、バックアップ処理を急いで行う必要がない場合に、情報処理装置７００を使用していない時間帯（例えば、夜間）にバックアップ処理を行い、それ以外の時間帯については、バックアップ処理を意図的に中断する構成としてもよい。
【００８５】
＜第６の実施形態＞
上述した実施形態においては、中断より前にサーバ５００が受信したデータブロックは、全て、最新のシステム環境を記録したものという前提であった。しかし、データブロックの送受信が中断されている間に、情報処理装置７００のシステム環境が変更されると、送信済みの最後のデータブロック以外のデータブロックに対する第１固有情報と第２固有情報が一致しない場合も生じ得る。
この場合、情報処理装置７００のシステム環境が変更されたとしても、必ずしもデータブロックの送受信が中断されるまでに送信された全てのデータブロックが変更されるのではなく、一部のデータブロックのみ変更される場合がある。例えば、１００番目のデータブロックを送受信している間に、データブロックの送受信が中断されたとする。データブロックの送受信が中断されている間に、情報処理装置７００のシステム環境が変更された結果、例えば、２番目のデータブロックのみ変更される場合がある。この場合、第５の実施形態の構成では、２番目以降のデータブロックを全て送信することになるが、３番目から９９番目のデータブロックは変更されないため、これらのデータブロックの再送は省略することがより好ましい。
そこで、本実施形態では、データブロックの送受信が中断されている間に、情報処理装置７００のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することを目的とする。
【００８６】
本実施形態のシステムで用いられるサーバ５００と情報処理装置７００の構成は、上述した第５の実施形態と同様である。
本実施形態では、図１４（ｂ）を参照して説明したハッシュ値比較処理（ステップＳ５０６）の詳細なステップが、第５の実施形態と異なる。以下、図１６を参照して、本実施形態のハッシュ値比較処理（ステップＳ５０６）の詳細を説明する。
【００８７】
まず、制御部７０６は、送信済みの１番目のデータブロックＤ（１）を読み出すために、データブロックの送信した順序を示すパラメータｋを、ｋ＝１とする（ステップＳ８０１）。そして、通信部７０２は、記憶部５０４に記憶された各データブロックの第１固有情報（ハッシュ値）を取得する（ステップＳ８０２）。そして、制御部７０６は、記憶部７０４に記憶された、情報処理装置７００のシステム環境を記録したファイルを構成する、送信済みのｋ番目のデータブロックＤ（ｋ）の第２固有情報（ハッシュ値）、Ｈ２（ｋ）を生成する（ステップＳ８０３）。そして、制御部７０６は、Ｈ１（ｋ）とＨ２（ｋ）の比較を行う（ステップＳ８０４）。
【００８８】
Ｈ１（ｋ）とＨ２（ｋ）が一致した場合、制御部７０６は、ｋを１増加させる（ステップＳ８０５）。そして、制御部７０６は、Ｈ１（ｋ）とＨ２（ｋ）が一致しなくなるまで、ステップＳ８０３〜Ｓ８０５を繰り返す。
一方、Ｈ１（ｋ）とＨ２（ｋ）が一致しない場合、制御部７０６は、データブロックＤ（ｋ）が送信済みの最後のデータブロックであるかどうかを判断する（ステップＳ８０６）。
【００８９】
Ｈ１（ｋ）とＨ２（ｋ）が一致しないにもかかわらず、データブロックＤ（ｋ）が送信済みの最後のデータブロックでないことは、データブロックの送受信が中断されている間に、情報処理装置７００のシステム環境が変更されたことを意味する。この場合、情報処理装置７００は、ｋ番目のデータブロックＤ（ｋ）のみをサーバ５００に送信する（ステップＳ８０７）。
【００９０】
そして、制御部７０６は、ｋを１増加させる（ステップＳ８０８）。そして、情報処理装置７００は、ステップＳ８０６において、Ｈ１（ｋ）とＨ２（ｋ）が一致しないデータブロックＤ（ｋ）が送信済みの最後のデータブロックとなるまで、ステップＳ８０３〜Ｓ８０８の処理を繰り返す。データブロックＤ（ｋ）が送信済みの最後のデータブロックである場合、ハッシュ値比較処理を終了する。そして、図１４（ｂ）を参照して説明したステップＳ５０７以降の処理を行う。
【００９１】
以上説明したように、本実施形態では、情報処理装置７００が、第１固有情報と第２固有情報とが一致しないデータブロックが、送信済みの最後のデータブロックであるかどうかを判断する。そして、情報処理装置７００は、第１固有情報と第２固有情報とが一致しないデータブロックが送信済みの最後のデータブロックでない場合、そのデータブロックの再送を要求する。これにより、第５の実施形態と比較して、データブロックの送受信が中断されている間に、情報処理装置７００のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することができる。
【００９２】
（付記）なお、本実施形態は、以下の付記に記載されるように構成することができる。
【００９３】
（付記１）
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するデータ送信方法であって、
前記サーバは、前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、前記情報処理装置へ送信し、
前記情報処理装置は、前記サーバから送信された各データブロックを順次受信し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、受信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを受信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【００９４】
（付記２）
第１固有情報及び第２固有情報は、ハッシュ値、またはＣＲＣ値である、付記１に記載のデータ送信方法。
【００９５】
（付記３）
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するシステムであって、
前記サーバは、
前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信する通信部と、を備え、
前記情報処理装置は、
前記サーバから送信された複数のデータブロックを順次受信し、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得する通信部と、
受信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを受信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【００９６】
（付記４）
情報処理装置のシステム環境を記録したファイルを、ネットワークを介して前記情報処理装置に送信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信するとともに、データブロックの送信を中断した場合には、データブロックの送信再開を行う前に、前記情報処理装置に対して第１固有情報を送信し、該第１固有情報に応じて前記情報処理装置により特定されるデータブロックの送信を行う通信部と、
を備えるサーバ。
【００９７】
（付記５）
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信する処理を実行させるプログラムであって、
前記サーバが、前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、前記情報処理装置へ送信する手順と、
前記情報処理装置が、前記サーバから送信された各データブロックを順次受信する手順と、
前記情報処理装置が、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、受信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを受信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する手順と、
をコンピュータに実行させるプログラム。
【００９８】
（付記６）
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するデータ送信方法であって、
前記情報処理装置は、前記ファイルを構成する複数のデータブロックを順次、前記サーバへ送信し、
前記サーバは、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、送信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを送信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【００９９】
（付記７）
第１固有情報及び第２固有情報は、ハッシュ値、またはＣＲＣ値である、付記６に記載のデータ送信方法。
【０１００】
（付記８）
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するシステムであって、
前記サーバは、
前記情報処理装置から送信された、前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、を備え、
前記情報処理装置は、
前記複数のデータブロックを順次、サーバへ送信するとともに、データブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得する通信部と、
送信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを送信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【０１０１】
（付記９）
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置からネットワークを介して受信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成する制御部と、
第１固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置から受信するとともに、データブロックの受信を中断した場合には、データブロックの受信再開を行う前に、前記情報処理装置に対して第１固有情報を送信し、該第１固有情報に応じて前記情報処理装置により特定されるデータブロックの受信を行う通信部と、
を備えるサーバ。
【０１０２】
（付記１０）
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信する処理を実行させるプログラムであって、
前記情報処理装置が、前記ファイルを構成する複数のデータブロックを順次、前記サーバへ送信する手順と、
前記サーバが、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第１固有情報を所定の規則により生成して記憶する手順と、
前記情報処理装置が、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第１固有情報を取得し、送信済みのデータブロックの各々に固有な第２固有情報を前記所定の規則により生成し、データブロックを送信した順に、第１固有情報と第２固有情報とを比較し、第１固有情報と第２固有情報とが一致しないデータブロックの送信を前記サーバに要求する手順と、
をコンピュータに実行させるプログラム。
【符号の説明】
【０１０３】
１００，５００  サーバ
１０２，５０２  制御部
１０４，５０４  記憶部
１０６，５０６  通信部
１５０，５５０  データバス
２００，６００  ネットワーク
３００，７００  情報処理装置
３０２，７０２  通信部
３０４，７０４  記憶部
３０６，７０６  制御部
３５０，７５０  データバス
４００，８００  記憶装置
【図１】
2010277512.tif 000003
【図２】
2010277512.tif 000004
【図３】
2010277512.tif 000005
【図４】
2010277512.tif 000006
【図５】
2010277512.tif 000007
【図６】
2010277512.tif 000008
【図７】
2010277512.tif 000009
【図８】
2010277512.tif 000010
【図９】
2010277512.tif 000011
【図１０】
2010277512.tif 000012
【図１１】
2010277512.tif 000013
【図１２】
2010277512.tif 000014
【図１３】
2010277512.tif 000015
【図１４】
2010277512.tif 000016
【図１５】
2010277512.tif 000017
【図１６】
2010277512.tif 000018