説明

データ送信方法、システム及びサーバ

【課題】リカバリ処理等のためのデータ送信が中断された場合に、データ送信にかかる時間を従来よりも短縮する。
【解決手段】サーバは、複数のデータブロックの各々に固有な第1固有情報を生成して記憶した後に、各データブロックを順次、情報処理装置へ送信する。情報処理装置は、サーバから送信された各データブロックを順次受信する。情報処理装置は、サーバがデータブロックの送信を中断した場合には、サーバからデータブロックの送信再開指示を受けた後に、サーバから第1固有情報を取得し、受信済みのデータブロックの各々に固有な第2固有情報を生成し、データブロックを受信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信をサーバに要求する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置のシステム環境のリストア処理、リカバリ処理、又はバックアップ処理を行う際に用いられる情報処理技術に関する。
【背景技術】
【0002】
パーソナルコンピュータ等の情報処理装置に対して、システム環境の構築やリカバリ処理等のサービスを提供するサーバ(デプロイメント・サーバ)がネットワークを介して通信可能に接続されているシステムが知られている。このシステムでは、デプロイメント・サーバが、情報処理装置のシステム環境を記録したファイルを記憶媒体や記憶装置から読み出し、リカバリ対象となる情報処理装置に送信する。そして、リカバリ対象となる情報処理装置は、受信したファイルを用いてシステム環境を復元する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−77249号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ネットワークのシステム環境が複雑になるにつれ、ネットワークを介してリカバリ処理を行うために必要となる時間が長くなり、例えば、10時間以上の時間を要する場合がある。従来のシステムでは、何らかの理由でリカバリ処理が中断された場合、リカバリ処理が中断されている間にシステム環境が変更されたか否かを確認する手段がなかった。そのため、従来のシステムでは、リカバリ処理を再開する際、リカバリ処理が中断される前に送信したファイルを最初から全て送信する必要があった。その結果、一度リカバリ処理を中断すると、リカバリ処理が終了するまでに長い時間がかかることが課題となっていた。
【0005】
そこで、リカバリ処理等のためのデータ送信が中断された場合に、中断後のデータ送信にかかる時間を従来よりも短縮することを目的とする。
【課題を解決するための手段】
【0006】
第1の観点では、情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するデータ送信方法が提供される。前記サーバは、前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、情報処理装置へ送信し、前記情報処理装置は、前記サーバから送信された各データブロックを順次受信する。前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、受信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを受信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する。
また、第2の観点では、上記データ送信方法の各工程の処理を行うシステムが提供される。
【0007】
第3の観点では、情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するデータ送信方法が提供される。前記情報処理装置は、前記ファイルを構成する複数のデータブロックを順次、サーバへ送信する。前記サーバは、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶する。前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、送信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを送信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する。
また、第4の観点では、上記データ送信方法の各工程の処理を行うシステムが提供される。
【発明の効果】
【0008】
開示のデータ送信方法、システム及びサーバによれば、リカバリ処理等のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【図面の簡単な説明】
【0009】
【図1】本発明に係るシステムの概略構成の一例を示す図である。
【図2】本発明に係るデータ送信方法の一例を示す図である。
【図3】(a)は、サーバがデータブロック送信中断前に保持するデータの一例を示し、(b)は、情報処理装置がデータブロック受信中断時に保持するデータの一例を示し、(c)は、サーバがデータブロック送信再開後に保持するデータの一例を示す。
【図4】本発明に係るシステムの一例を示す図である。
【図5】(a)は、サーバがデータを送信するフローを示すフローチャートであり、(b)は、情報処理装置がデータを受信するフローを示すフローチャートである。
【図6】(a)は、データの送信を再開する際のサーバのフローを示すフローチャートであり、(b)は、データの受信を再開する際の情報処理装置のフローを示すフローチャートである。
【図7】ハッシュ値比較処理の一例を示すフローチャートである。
【図8】ハッシュ値比較処理の他の例を示すフローチャートである。
【図9】本発明に係るシステムの概略構成の一例を示す図である。
【図10】本発明に係るデータ送信方法の一例を示す図である。
【図11】(a)は、サーバがデータブロック受信中断前に保持するデータの一例を示し、(b)は、情報処理装置がデータブロック送信中断時に保持するデータの一例を示し、(c)は、サーバがデータブロック受信再開後に保持するデータの一例を示す。
【図12】本発明に係るシステムの一例を示す図である。
【図13】(a)は、サーバがデータを受信するフローを示すフローチャートであり、(b)は、情報処理装置がデータを送信するフローを示すフローチャートである。
【図14】(a)は、データの受信を再開する際のサーバのフローを示すフローチャートであり、(b)は、データの送信を再開する際の情報処理装置のフローを示すフローチャートである。
【図15】ハッシュ値比較処理の一例を示すフローチャートである。
【図16】ハッシュ値比較処理の他の例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、データ送信方法、システムの一例を、実施形態に基づいて説明する。
<第1の実施形態>
本実施形態では、ネットワークを介して情報処理装置のリカバリ処理やリストア処理を行うためのデータ送信方法について説明する。
まず、図1を参照して、本実施形態のシステムの概略構成を説明する。図1に示すように、本実施形態のシステムでは、サーバ100と、情報処理装置300と、記憶装置400と、がネットワーク200を介して接続されている。
サーバ100は、ネットワーク200を介して、情報処理装置300のリカバリ処理やリストア処理を行う。記憶装置400は、情報処理装置300のシステム環境を記録したファイルを記憶する。情報処理装置300は、例えば、パーソナルコンピュータである。サーバ100が、記憶装置400に記憶されたファイルを情報処理装置300に送信することで、情報処理装置300のリカバリ処理やリストア処理を行うことができる。
記憶装置400に記憶されたファイルのデータ量が大きいとき、サーバ100がファイルを一度に読み出し、一度に送信することが困難となる場合がある。そのため、サーバ100は、記憶装置400に記憶されたファイルを複数のデータブロックに分け、データブロックの単位で読み出し、データブロックを情報処理装置に順次、送信する。
【0011】
次に、図2を参照して、本実施形態のデータ送信方法の概要を説明する。図2は、本実施形態のデータ送信方法において、サーバ100と情報処理装置300との間で行われる処理のフローを示す。
まず、サーバ100は、情報処理装置300のシステム環境を記録したファイルを構成する複数のデータブロックの各々に固有な情報を、所定の規則により生成する(ステップS1)。サーバ100が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第1固有情報と呼ぶ。生成された第1固有情報は、順次、サーバ100の記憶部に記憶される。そして、サーバ100は、複数のデータブロックを、順次、情報処理装置300に送信する(ステップS2)。そして、サーバ100は、次に送信するデータブロックに固有な情報を、所定の規則により生成する(ステップS3)。生成された第1固有情報は、サーバ100の記憶部に記憶される。
【0012】
以下、説明の便宜上、自然数kを用いて、k番目に送受信されるデータブロックをD(k)と表す。また、サーバ100が所定の規則により生成する、k番目のデータブロックD(k)に固有な情報(第1固有情報)をH(k)と表す。
また、以下の説明では、自然数pを用いて、1番目からp−1番目までのデータブロックの送受信は正常に行われ、p番目のデータブロックの送受信を行っている間に、何らかの理由でデータブロックの送受信が中断された場合(ステップS4)の例を説明する。データブロックの送受信が中断される場合の例として、ネットワークに障害が発生した場合が挙げられる。
【0013】
ここで、図3(a)を参照して、サーバ100がデータブロックの送信を中断する前に保持するデータの一例を説明する。サーバ100は、p番目のデータブロックD(p)を情報処理装置300に送信するまでに、D(1)〜D(p)の各データブロックに対して、所定の規則により、第1固有情報H(1)〜H(p)を、各データブロックを送信する毎に生成する。生成された第1固有情報H(1)〜H(p)は、順次、サーバ100の記憶部に記憶される。
【0014】
図2の説明に戻り、ネットワークに発生した障害が復旧するなど、データブロックの送受信を再開できる状況になると、サーバ100は情報処理装置300に送信再開指示を送信する(ステップS5)。
情報処理装置300は、送信再開指示を受けると、データブロックの送受信が中断されるまでにサーバ100により生成された第1固有情報を、サーバ100から取得する(ステップS6)。また、情報処理装置300は、データブロックの送受信が中断されるまでに情報処理装置300が受信したデータブロックの各々に固有な情報を、所定の規則により生成する(ステップS7)。情報処理装置300が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第2固有情報と呼ぶ。そして、情報処理装置300は、データブロックを受信した順に、サーバ100から取得した第1固有情報と、情報処理装置300が生成した第2固有情報とを比較する(ステップS8)。
【0015】
ここで、図3に示すように、説明の便宜上、情報処理装置300が所定の規則により生成する、k番目のデータブロックD(k)に固有な情報(第2固有情報)をH(k)と表す。なお、サーバが第1固有情報を生成するための所定の規則と、情報処理装置が第2固有情報を生成するための所定の規則とは、同一の規則とする。
【0016】
ここで、図3(b)を参照して、情報処理装置300がデータブロックの受信を中断している間に保持するデータの一例を説明する。情報処理装置300は、データブロックの受信を中断するまでに、D(1)、D(2)、…、D(p)の順に、データブロックを受信する。そして、情報処理装置300は、D(1)〜D(p)の各データブロックに対して、所定の規則により、第2固有情報H(1)〜H(p)を生成する。また、情報処理装置300は、データブロックの送受信が中断されるまでにサーバ100により生成された第1固有情報H(1)〜H(p)を、サーバ100から取得する。そして、情報処理装置300は、k=1、2、…、pの順に、順次、H(k)とH(k)を比較する。
【0017】
ここで、H(k)は、サーバ100が送信したデータブロックD(k)に固有な情報であり、H(k)は、情報処理装置300が受信したデータブロックD(k)に固有な情報である。そのため、サーバ100が送信したデータブロックD(k)と情報処理装置300が受信したデータブロックD(k)が同一であれば、それぞれに固有な情報であるH(k)とH(k)も同一となる。したがって、情報処理装置300がH(k)とH(k)を比較した結果、H(k)とH(k)が一致することは、k番目のデータブロックD(k)が正しく受信されたことを意味する。
これに対し、情報処理装置300がH(k)とH(k)を比較した結果、H(k)とH(k)が一致しないことは、k番目のデータブロックD(k)が正しく受信されなかったことを意味する。
【0018】
このように、情報処理装置300がH(k)とH(k)を比較することにより、データブロックの送受信が中断された場合に、情報処理装置300が正しく受信することができなかったデータブロックを特定することができる。すなわち、図3(b)に示した例においては、k=1から順にH(k)とH(k)を比較すると、k=1、2、…、p−1でH(k)とH(k)は一致し、送受信が中断されたk=pのとき、H(k)とH(k)は一致しない。このため、情報処理装置300は、データブロックD(p)を正しく受信できなかったことが分かる。
【0019】
図2の説明に戻り、情報処理装置300が正しく受信することができなかったデータブロックとしてデータブロックD(p)を特定すると、情報処理装置300は、データブロックD(p)以降のデータブロックの再送を、サーバ100に要求する(ステップS9)。
サーバ100は、情報処理装置300からデータブロックの再送要求を受けると、データブロックD(p)以降のデータブロックの各々に固有な情報を、所定の規則により生成する(ステップS10)。生成された第1固有情報は、順次、サーバ100の記憶部に記憶される。そして、サーバ100は、データブロックD(p)以降のデータブロックを、順次、情報処理装置300に送信する(ステップS11)。
【0020】
ここで、図3(c)を参照して、サーバ100がデータブロックの送信を再開した後に保持するデータの一例を説明する。サーバ100は、p番目のデータブロックD(p)以降の各データブロックに対して、所定の規則により、第1固有情報H(p)、H(p+1)、…を、順次、生成する。生成された第1固有情報H(p)、H(p+1)、…は、順次、サーバ100の記憶部に記憶される。
【0021】
以上説明したように、本実施形態のデータ送信方法では、サーバ100が各データブロックを順次送信する際に、データブロックの各々に固有な情報(第1固有情報)を保持する。また、情報処理装置300は、データブロックの送受信が中断された場合に、受信済みのデータブロックの各々に固有な情報(第2固有情報)を生成する。そして、情報処理装置300は、第1固有情報と第2固有情報を比較することにより、データブロックの送受信が中断されることにより正しく受信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置300が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、リカバリ処理やリストア処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【0022】
<第2の実施形態>
本実施形態では、第1の実施形態で説明したデータ送信方法を実現するためのシステムの具体的な構成の一例を説明する。
【0023】
(システムの概略構成)
まず、図4を参照して、本実施形態のシステムの構成を説明する。図4は、本実施形態のシステムで用いられるサーバ100と情報処理装置300の具体的構成の一例を示すものである。
図4に示されるように、サーバ100は、制御部102と、記憶部104と、通信部106と、を備える。これらはデータバス150によって接続されている。
また、情報処理装置300は、通信部302と、記憶部304と、制御部306と、を備える。これらはデータバス350によって接続されている。
【0024】
また、情報処理装置300のシステム環境を記録したファイルを記憶した記憶装置400は、サーバ100の外部に設けられている。そして、記憶装置400は、ネットワーク200に接続されている。記憶装置400に記憶されるファイルの大きさは、情報処理装置300のシステム環境に依存するが、例えば、数GB(ギガバイト)程度に達することがある。なお、この記憶装置400は、サーバ100の内部に備えられていてもよい。
サーバ100は、記憶装置400に記憶されたデータを、例えば、大きさが256KB(キロバイト)であるデータブロックに分け、データブロックを情報処理装置300に送信する。
以下、サーバ100と情報処理装置300の構成を詳細に説明する。
【0025】
まず、サーバ100の構成について説明する。
制御部102は、CPU(コンピュータ)を主体として構成される。また、制御部102は、記憶装置400から読み出されたデータブロックの各々に固有な第1固有情報を、所定の規則により生成する。第1固有情報を生成するための所定の規則としては、例えば、ハッシュ関数やCRC(Cyclic Redundancy Check)を用いることができる。そのため、第1固有情報として、例えば、ハッシュ値やCRC値を用いることができる。本実施形態では、第1固有情報としてハッシュ値を用いる場合の例を説明する。
【0026】
記憶部104は、制御部102によって生成された第1固有情報を記憶する。記憶部104が第1固有情報を記憶する過程の詳細は後述するが、記憶部104は、1番目のデータブロックに固有な第1固有情報から順に、累積的に記憶する。
【0027】
通信部106は、情報処理装置300との通信を確立するための通信インターフェースを備える。そして、通信部106は、記憶装置400から読み出されたデータブロックを情報処理装置300に順次、送信する。また、通信部106は、データブロックの送受信が中断された後、データブロックの送受信を再開できる状況になると、情報処理装置300に送信再開指示を送信する。
なお、本実施形態では、通信部106は、256KBのデータブロックを、更に、例えば256個に分割し、1KBの大きさに分割されたデータを順次、情報処理装置300に送信する。
【0028】
続いて、情報処理装置300の構成について説明する。
通信部302は、サーバ100との通信を確立するための通信インターフェースを備える。そして、通信部302は、サーバ100から送信されたデータブロックを順次、受信する。上述したように、256KBのデータブロックは、例えば、1KB単位の256個のデータに分割されて順次、サーバ100から送信されるため、通信部302は、1KB単位の256個のデータを順次、受信する。
また、通信部302は、データブロックの送受信が中断された場合には、データブロックの送受信を再開できる状況になった後、サーバ100から送信再開指示を受ける。そして、通信部302は、送信再開指示を受けた後に、サーバ100の記憶部104に記憶された送信済みの各データブロックの第1固有情報を取得する。また、通信部302は、正しく受信されなかったデータブロックを特定した後、正しく受信されなかったデータブロックの再送をサーバ100に要求する。
【0029】
記憶部304は、1KB単位の256個のデータを、256KBの大きさのデータブロックに再構築し、再構築されたデータブロックを記憶する。
制御部306は、CPU(コンピュータ)を主体として構成される。また、制御部306は、データブロックの送受信が中断されるまでに情報処理装置300の通信部302が受信したデータブロックの各々に固有な第2固有情報を、所定の規則により生成する。また、制御部306は、通信部302がデータブロックを受信した順に、順次、サーバ100から取得した第1固有情報と、情報処理装置300が生成した第2固有情報とを比較する。また、制御部306は、第1固有情報と第2固有情報とが一致しないデータブロックの再送を、サーバ100に要求する。
以上が、本実施形態のシステムの構成である。
【0030】
(データ送信フローの説明)
続いて、図5から図7を参照して、上述したシステムを用いてリカバリ処理やリストア処理を行う方法を説明する。
まず、図5(a)のフローチャートを参照して、サーバ100がデータブロックを正常に送信する場合のフローを説明する。
【0031】
まず、サーバ100が1番目のデータブロックD(1)を読み出すために、制御部102は、データブロックを送信する順番を示すパラメータkを、k=1とする(ステップS101)。そして、通信部106は、k番目のデータブロックD(k)を取得し、制御部102は、データブロックD(k)のハッシュ値H(k)を生成する(ステップS102)。そして、記憶部104は、生成されたハッシュ値H(k)を記憶する(ステップS103)。そして、通信部106は、データブロックD(k)を1KB単位のデータに分割し、分割されたデータを順次、情報処理装置300に送信することにより、データブロックD(k)を送信する(ステップS104)。
【0032】
そして、制御部102は、記憶装置400に記憶された全てのデータブロックの送信が終了したか否かを判断する(ステップS105)。全てのデータブロックの送信が終了していない場合、制御部102は、kを1増加させる(ステップS106)。そして、サーバ100は、全てのデータブロックの送信が終了するまで、ステップS102〜S106の処理を繰り返す。ステップS105において、全てのデータブロックの送信が終了した場合、リカバリ処理やリストア処理を行うためのサーバ100の処理は終了する。
以上が、サーバ100がデータブロックを送信するフローである。
【0033】
続いて、図5(b)を参照して、情報処理装置300がデータブロックを正常に受信する場合のフローを説明する。
まず、通信部302は、1KB単位のデータを順次、受信することにより、データブロックD(k)を受信する(ステップS201)。そして、1KB単位の256個のデータは、256KBの大きさのデータブロックD(k)に再構築され、記憶部304は、再構築されたデータブロックD(k)を記憶する(ステップS202)。
以上が、情報処理装置300がデータブロックを受信するフローである。
【0034】
続いて、図6を参照して、データブロックの送受信が中断された後、データブロックの送受信を再開する際のサーバ100と情報処理装置300のフローを説明する。図6(a)は、データブロックの送信を再開する際のサーバ100のフローを示し、図6(b)は、データブロックの受信を再開する際の情報処理装置300のフローを示す。
【0035】
データブロックの送受信を再開できる状況になると、通信部106は、リカバリ処理やリストア処理を再開することを示す信号(送信再開指示)を、情報処理装置300に送信する(ステップS107)。情報処理装置300は、サーバ100から送信された送信再開指示を受信する(ステップS203)。そして、情報処理装置300は、送信再開指示を受信すると、ハッシュ値比較処理を行う(ステップS204)。
【0036】
ここで、図7を参照して、ハッシュ値比較処理(ステップS204)の詳細を説明する。
まず、情報処理装置300が受信済みの1番目のデータブロックD(1)を読み出すために、制御部306は、データブロックを受信した順序を示すパラメータkを、k=1とする(ステップS301)。そして、通信部302は、記憶部104に記憶された各データブロックの第1固有情報(ハッシュ値)を取得する(ステップS302)。本実施形態では、データブロックの送受信が中断されるまでに生成された第1固有情報(ハッシュ値)を、全て同時に取得する例を説明するが、複数回に分けて、データブロックの送受信が中断されるまでに生成された第1固有情報(ハッシュ値)を取得してもよい。そして、制御部306は、記憶部304に記憶されたk番目のデータブロックD(k)の第2固有情報(ハッシュ値)としてH(k)を生成する(ステップS303)。そして、制御部306は、H(k)とH(k)の比較を行う(ステップS304)。
【0037】
ここで、サーバ100と情報処理装置300とで別々に生成されたH(k)とH(k)が一致することは、k番目のデータブロックD(k)が正しく受信されたことを意味する。H(k)とH(k)が一致した場合、制御部306は、kを1増加させる(ステップS305)。そして、情報処理装置300は、H(k)とH(k)が一致しなくなるまで、ステップS303〜305を繰り返す。
一方、H(k)とH(k)が一致しない場合、ハッシュ値比較処理は終了する。H(k)とH(k)が一致しないkを特定することにより、情報処理装置300が正しく受信することができなかったデータブロックを特定することができる。本実施形態では、p番目のハッシュ値H(p)とH(p)が一致しない場合の例を説明する。
【0038】
図6に戻り、ハッシュ値比較処理(ステップS204)が終了した後に、データブロックの送受信を再開する際のサーバ100と情報処理装置300のフローを説明する。
通信部302は、第1固有情報と第2固有情報が一致しないデータブロックD(p)以降のデータブロックの再送をサーバ100に要求する(ステップS205)。
【0039】
サーバ100が情報処理装置300からの再送要求を受けると、p番目のデータブロックD(p)以降のデータブロックを送信するために、制御部102は、データブロックを送信する順番を示すパラメータkを、k=pとする(ステップS108)。
p番目以降のデータブロックを送信する処理は、図5(a)のステップS102〜S106と同じである。すなわち、通信部106は、k番目のデータブロックD(k)を取得し、制御部102は、データブロックD(k)のハッシュ値H(k)を生成する(ステップS109)。そして、記憶部104は、生成されたハッシュ値H(k)を記憶する(ステップS110)。そして、通信部106は、データブロックD(k)を1KB単位のデータに分割し、分割されたデータを順次、情報処理装置300に送信することにより、データブロックD(k)を送信する(ステップS111)。
【0040】
そして、制御部102は、記憶装置400に記憶された全てのデータブロックの送信が終了したか否かを判断する(ステップS112)。全てのデータブロックの送信が終了していない場合、制御部102は、kを1増加させる(ステップS113)。そして、サーバ100は、全てのデータブロックの送信が終了するまで、ステップS109〜S113の処理を繰り返す。ステップS112において、全てのデータブロックの送信が終了した場合、リカバリ処理やリストア処理を行うためのサーバ100の処理は終了する。
以上が、サーバ100が情報処理装置300に、p番目のデータブロックD(p)以降のデータブロックを送信するフローである。
【0041】
また、図6(b)に戻り、情報処理装置300において、通信部302は、1KB単位のデータを順次、受信することにより、データブロックD(k)を受信する(ステップS206)。そして、1KB単位の256個のデータは、256KBの大きさのデータブロックD(k)に再構築され、記憶部304は、再構築されたデータブロックD(k)を記憶する(ステップS207)。
以上が、情報処理装置300が、p番目のデータブロックD(p)以降のデータブロックを受信するフローである。
【0042】
以上説明したように、本実施形態のシステムでは、サーバ100で生成された各送信データブロックのハッシュ値と、情報処理装置300で生成された各受信データブロックのハッシュ値とを情報処理装置300が比較する。そのため、データブロックの送受信が中断されることにより正しく受信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置300が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、リカバリ処理やリストア処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【0043】
なお、データブロックの送受信が中断される場合の例としては、ネットワークに障害が発生した場合に限られるものではない。例えば、リカバリ処理やリストア処理を急いで行う必要がない場合に、情報処理装置300を使用していない時間帯(例えば、夜間)にリカバリ処理やリストア処理を行い、それ以外の時間帯については、リカバリ処理やリストア処理を意図的に中断する構成としてもよい。
【0044】
<第3の実施形態>
上述した実施形態においては、中断より前に情報処理装置300が受信したデータブロックは、全て、最新のシステム環境を記録したものという前提であった。しかし、データブロックの送受信が中断されている間に、情報処理装置300のシステム環境が変更されると、受信済みの最後のデータブロック以外のデータブロックに対する第1固有情報と第2固有情報が一致しない場合も生じ得る。
この場合、情報処理装置300のシステム環境が変更されたとしても、必ずしもデータブロックの送受信が中断されるまでに受信された全てのデータブロックが変更されるのではなく、一部のデータブロックのみ変更される場合がある。例えば、100番目のデータブロックを送受信している間に、データブロックの送受信が中断されたとする。データブロックの送受信が中断されている間に、情報処理装置300のシステム環境が変更された結果、例えば、2番目のデータブロックのみ変更される場合がある。この場合、第2の実施形態の構成では、2番目以降のデータブロックを全て送信することになるが、3番目から99番目のデータブロックは変更されないため、これらのデータブロックの再送は省略することがより好ましい。
そこで、本実施形態では、データブロックの送受信が中断されている間に、情報処理装置300のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することを目的とする。
【0045】
本実施形態のシステムで用いられるサーバ100と情報処理装置300の構成は、上述した第2の実施形態と同様である。
本実施形態では、図6(b)を参照して説明したハッシュ値比較処理(ステップS204)の詳細なステップが、第2の実施形態と異なる。以下、図8を参照して、本実施形態のハッシュ値比較処理(ステップS204)の詳細を説明する。
【0046】
まず、制御部306は、受信済みの1番目のデータブロックD(1)を読み出すために、データブロックを受信した順序を示すパラメータkを、k=1とする(ステップS401)。そして、通信部302は、記憶部104に記憶された各データブロックの第1固有情報(ハッシュ値)を取得する(ステップS402)。そして、制御部306は、記憶部304に記憶されたk番目のデータブロックD(k)の第2固有情報(ハッシュ値)としてH(k)を生成する(ステップS403)。そして、制御部306は、データブロックを受信した順に、H(k)とH(k)の比較を行う(ステップS404)。
【0047】
(k)とH(k)が一致した場合、制御部306は、kを1増加させる(ステップS405)。そして、制御部306は、H(k)とH(k)が一致しなくなるまで、ステップS403〜S405の処理を繰り返す。
一方、H(k)とH(k)が一致しない場合、制御部306は、データブロックD(k)が受信済みの最後のデータブロックであるかどうかを判断する(ステップS406)。
【0048】
(k)とH(k)が一致しないにもかかわらず、データブロックD(k)が受信済みの最後のデータブロックでないことは、データブロックの送受信が中断されている間に、情報処理装置300のシステム環境が変更されたことを意味する。この場合、情報処理装置300は、k番目のデータブロックD(k)のみの送信をサーバ100に要求する(ステップS407)。サーバ100は、情報処理装置300からk番目のデータブロックD(k)のみの再送の要求を受けると、k番目のデータブロックD(k)を情報処理装置300に送信する。
【0049】
そして、制御部306は、kを1増加させる(ステップS408)。そして、情報処理装置300は、ステップS406において、H(k)とH(k)が一致しないデータブロックD(k)が受信済みの最後のデータブロックとなるまで、ステップS403〜S408の処理を繰り返す。データブロックD(k)が受信済みの最後のデータブロックである場合、ハッシュ値比較処理を終了する。そして、図6(b)を参照して説明したステップS205以降の処理を行う。
【0050】
以上説明したように、本実施形態では、情報処理装置300は、第1固有情報と第2固有情報とが一致しないデータブロックが、受信済みの最後のデータブロックであるかどうかを判断する。そして、情報処理装置300は、第1固有情報と第2固有情報とが一致しないデータブロックが受信済みの最後のデータブロックでない場合、そのデータブロックの再送を要求する。これにより、第2の実施形態と比較して、データブロックの送受信が中断されている間に、情報処理装置300のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することができる。
【0051】
<第4の実施形態>
上述した実施形態は、リカバリ処理やリストア処理のためのデータ送信が中断された場合に、中断後のデータ送信にかかる時間を従来よりも短縮するものであった。
ところで、ネットワークのシステム環境が複雑になるにつれ、ネットワークを介してバックアップ処理を行うために必要となる時間が長くなり、例えば、10時間以上の時間を要する場合がある。従来のシステムでは、何らかの理由でバックアップ処理が中断された場合、バックアップ処理が中断されている間にシステム環境が変更されたか否かを確認する手段がなかった。そのため、従来のシステムでは、バックアップ処理を再開する際、バックアップ処理が中断される前に送信したファイルを最初から全て送信する必要があった。その結果、一度バックアップ処理を中断すると、バックアップ処理が終了するまでに長い時間がかかることが課題となっていた。
そこで、本実施形態では、バックアップ処理のためのデータ送信が中断された場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができるデータ送信方法について説明する。
【0052】
まず、図9を参照して、本実施形態のシステムの概略構成を説明する。図9に示すように、本実施形態のシステムでは、サーバ500と、情報処理装置700と、記憶装置800と、がネットワーク600を介して接続されている。
サーバ500は、ネットワーク600を介して、情報処理装置700のバックアップ処理を行う。記憶装置800は、情報処理装置700から送信された、情報処理装置700のシステム環境を記録したファイルを記憶する。情報処理装置700は、例えば、パーソナルコンピュータである。情報処理装置700が、情報処理装置700のシステム環境を記録したファイルをサーバ500に送信し、記憶装置800がこのファイルを記憶することで、情報処理装置700のバックアップ処理を行うことができる。
情報処理装置700のシステム環境を記録したファイルのデータ量が大きいとき、情報処理装置700がファイルを一度に送信することが困難となる場合がある。そのため、情報処理装置700は、情報処理装置700のシステム環境を記録したファイルを複数のデータブロックに分け、データブロックの単位で情報処理装置に順次、送信する。
【0053】
次に、図10を参照して、本実施形態のデータ送信方法の概要を説明する。図10は、本実施形態のデータ送信方法において、サーバ500と情報処理装置700との間で行われる処理のフローを示す。
まず、情報処理装置700は、情報処理装置700のシステム環境を記録したファイルを構成する複数のデータブロックを、順次、サーバ500に送信する(ステップS51)。そして、サーバ500は、受信した複数のデータブロックの各々に固有な情報を、所定の規則により生成する(ステップS52)。サーバ500が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第1固有情報と呼ぶ。生成された第1固有情報は、順次、サーバ500の記憶部に記憶される。
【0054】
以下、説明の便宜上、自然数kを用いて、k番目に送受信されるデータブロックをD(k)と表す。また、サーバ500が所定の規則により生成する、k番目のデータブロックD(k)に固有な情報(第1固有情報)をH(k)と表す。
また、以下の説明では、自然数pを用いて、1番目からp−1番目までのデータブロックの送受信は正常に行われ、p番目のデータブロックの送受信を行っている間に、何らかの理由でデータブロックの送受信が中断された場合(ステップS53)の例を説明する。データブロックの送受信が中断される場合の例として、ネットワークに障害が発生した場合が挙げられる。
そして、サーバ500は、p番目に受信したデータブロックに固有な情報を、所定の規則により生成する(ステップS54)。
【0055】
ここで、図11(a)を参照して、サーバ500がデータブロックの受信を中断する前に保持するデータの一例を説明する。サーバ500は、p番目のデータブロックD(p)を情報処理装置700から受信するまでに、D(1)〜D(p)の各データブロックに対して、所定の規則により、第1固有情報H(1)〜H(p)を、各データブロックを受信するごとに生成する。生成された第1固有情報H(1)〜H(p)は、順次、サーバ500の記憶部に記憶される。
【0056】
図10の説明に戻り、ネットワークに発生した障害が復旧するなど、データブロックの送受信を再開できる状況になると、サーバ500は情報処理装置700に送信再開指示を送信する(ステップS55)。
情報処理装置700は、送信再開指示を受けると、データブロックの送受信が中断されるまでにサーバ500により生成された第1固有情報を、サーバ500から取得する(ステップS56)。また、情報処理装置700は、データブロックの送受信が中断されるまでに情報処理装置700が送信したデータブロックの各々に固有な情報を、所定の規則により生成する(ステップS57)。情報処理装置700が所定の規則により生成したデータブロックの各々に固有な情報を、以下、第2固有情報と呼ぶ。そして、情報処理装置700は、データブロックを送信した順に、サーバ500から取得した第1固有情報と、情報処理装置700が生成した第2固有情報とを比較する(ステップS58)。
【0057】
ここで図11に示すように、説明の便宜上、情報処理装置700が所定の規則により生成する、k番目のデータブロックD(k)に固有な情報(第2固有情報)をH(k)と表す。なお、サーバが第1固有情報を生成するための所定の規則と、情報処理装置が第2固有情報を生成するための所定の規則とは、同一の規則とする。
【0058】
ここで、図11(b)を参照して、情報処理装置700がデータブロックの送信を中断している間に保持するデータの一例を説明する。情報処理装置700は、データブロックの送信を中断するまでに、D(1)、D(2)、…、D(p)の順に、データブロックを送信する。そして、情報処理装置700は、D(1)〜D(p)の各データブロックに対して、所定の規則により、第2固有情報H(1)〜H(p)を生成する。また、情報処理装置700は、データブロックの送受信が中断されるまでにサーバ500により生成された第1固有情報H(1)〜H(p)を、サーバ500から取得する。そして、情報処理装置700は、k=1、2、…、pの順に、順次、H(k)とH(k)を比較する。
【0059】
ここで、H(k)は、サーバ500が受信したデータブロックD(k)に固有な情報であり、H(k)は、情報処理装置700が送信したデータブロックD(k)に固有な情報である。そのため、サーバ500が受信したデータブロックD(k)と情報処理装置700が送信したデータブロックD(k)が同一であれば、それぞれに固有な情報であるH(k)とH(k)も同一となる。したがって、情報処理装置700がH(k)とH(k)を比較した結果、H(k)とH(k)が一致することは、k番目のデータブロックD(k)が正しく送信されたことを意味する。
これに対し、情報処理装置700がH(k)とH(k)を比較した結果、H(k)とH(k)が一致しないことは、k番目のデータブロックD(k)が正しく送信されなかったことを意味する。
【0060】
このように、情報処理装置700がH(k)とH(k)を比較することにより、データブロックの送受信が中断された場合に、情報処理装置700が正しく送信することができなかったデータブロックを特定することができる。すなわち、図11(b)に示した例においては、k=1から順にH(k)とH(k)を比較すると、k=1、2、…、p−1でH(k)とH(k)は一致し、送受信が中断されたk=pのとき、H(k)とH(k)は一致しない。このため、情報処理装置700は、データブロックD(p)を正しく送信できなかったことが分かる。
【0061】
図10の説明に戻り、情報処理装置700が、正しく送信することができなかったデータブロックとしてデータブロックD(p)を特定すると、情報処理装置700は、データブロックD(p)以降のデータブロックを、順次、サーバ500に送信する(ステップS59)。サーバ500は、データブロックD(p)以降のデータブロックの各々に固有な情報を、所定の規則により生成する(ステップS60)。生成された第1固有情報は、順次、サーバ500の記憶部に記憶される。
【0062】
ここで、図11(c)を参照して、サーバ500がデータブロックの受信を再開した後に保持するデータの一例を説明する。サーバ500は、p番目のデータブロックD(p)以降の各データブロックに対して、所定の規則により、第1固有情報H(p)、H(p+1)、…を、順次、生成する。生成された第1固有情報H(p)、H(p+1)、…は、順次、サーバ500の記憶部に記憶される。
【0063】
以上説明したように、本実施形態のデータ送信方法では、サーバ500が各データブロックを順次受信する際に、データブロックの各々に固有な情報(第1固有情報)を保持する。また、情報処理装置700は、データブロックの送受信が中断された場合に、送信済みのデータブロックの各々に固有な情報(第2固有情報)を生成する。そして、情報処理装置700は、第1固有情報と第2固有情報を比較することにより、データブロックの送受信が中断されることにより正しく送信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置700が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、バックアップ処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【0064】
<第5の実施形態>
本実施形態では、第4の実施形態で説明したデータ送信方法を実現するためのシステムの具体的な構成の一例を説明する。
【0065】
(システムの概略構成)
まず、図12を参照して、本実施形態のシステムの構成を説明する。図12は、本実施形態のシステムで用いられるサーバ500と情報処理装置700の具体的構成の一例を示すものである。
図12に示されるように、サーバ500は、制御部502と、記憶部504と、通信部506と、を備える。これらはデータバス550によって接続されている。
また、情報処理装置700は、通信部702と、記憶部704と、制御部706と、を備える。これらはデータバス750によって接続されている。
【0066】
情報処理装置700には、情報処理装置700のシステム環境を記録したファイルが記録されている。情報処理装置700のシステム環境を記録したファイルの大きさは、情報処理装置700のシステム環境に依存するが、例えば、数GB程度に達することがある。情報処理装置700は、情報処理装置700のシステム環境を記録したファイルを、例えば、大きさが256KBであるデータブロックに分け、データブロックをサーバ500に送信する。
また、記憶装置800は、情報処理装置700から送信される、情報処理装置700のシステム環境を記録したファイルを記憶する。本実施形態では、記憶装置800は、サーバ500とネットワーク600を介して、サーバ500の外部に設けられている。しかし、この記憶装置800は、サーバ500の内部に備えられていてもよい。
以下、サーバ500と情報処理装置700の構成を詳細に説明する。
【0067】
まず、サーバ500の構成について説明する。
制御部502は、CPU(コンピュータ)を主体として構成される。また、制御部502は、サーバ500が受信したデータブロックの各々に固有な第1固有情報を、所定の規則により生成する。第1固有情報を生成するための所定の規則としては、例えば、ハッシュ関数やCRC(Cyclic Redundancy Check)を用いることができる。そのため、第1固有情報として、例えば、ハッシュ値やCRC値を用いることができる。本実施形態では、第1固有情報としてハッシュ値を用いる場合の例を説明する。
【0068】
記憶部504は、制御部502によって生成された第1固有情報を記憶する。記憶部504が第1固有情報を記憶する過程の詳細は後述するが、記憶部504は、1番目のデータブロックに固有な第1固有情報から順に、累積的に記憶する。
また、記憶部504は、後述するように、情報処理装置700から受信する1KB単位の256個のデータを、256KBの大きさのデータブロックに再構築し、再構築されたデータブロックを一時的に記憶する。
【0069】
通信部506は、情報処理装置700との通信を確立するための通信インターフェースを備える。そして、通信部506は、情報処理装置700から送信されたデータブロックを順次、受信する。なお、本実施形態では、通信部506は、256KBのデータブロックを、更に、例えば256個に分割し、1KBの大きさに分割されたデータを順次、情報処理装置700から受信する。
また、通信部506は、データブロックの送受信が中断された後、データブロックの送受信を再開できる状況になると、情報処理装置700に送信再開指示を送信する。また、通信部506は、記憶部504が一時的に記憶した256KBの大きさのデータブロックを、記憶装置800に送信する。
【0070】
続いて、情報処理装置700の構成について説明する。
通信部702は、サーバ500との通信を確立するための通信インターフェースを備える。そして、通信部702は、情報処理装置700のシステム環境を記録したファイルを構成する複数のデータブロックを順次、サーバ500に送信する。本実施形態では、256KBのデータブロックは、例えば、1KB単位の256個のデータに分割されて順次、送信されるため、通信部702は、1KB単位の256個のデータを順次、送信する。
また、通信部702は、データブロックの送受信が中断された場合には、データブロックの送受信を再開できる状況になった後、サーバ500から送信再開指示を受ける。そして、通信部702は、送信再開指示を受けた後に、サーバ500の記憶部504に記憶された第1固有情報を取得する。
【0071】
記憶部704は、情報処理装置700のシステム環境を記録したファイルを記憶する。
制御部706は、CPU(コンピュータ)を主体として構成される。また、制御部706は、データブロックの送受信が中断されるまでに情報処理装置700が送信したデータブロックの各々に固有な第2固有情報を、所定の規則により生成する。また、制御部706は、通信部702がデータブロックを送信した順に、順次、サーバ500から取得した第1固有情報と、情報処理装置700が生成した第2固有情報とを比較する。
以上が、本実施形態のシステムの構成である。
【0072】
(データ送信フローの説明)
続いて、図13から図15を参照して、上述したシステムを用いてバックアップ処理を行う方法を説明する。
まず、図13(b)のフローチャートを参照して、情報処理装置700がデータブロックを正常に送信する場合のフローを説明する。
【0073】
まず、制御部706は、情報処理装置700がデータブロックを送信する順番を示すパラメータkを、k=1とする(ステップS501)。そして、通信部702は、データブロックD(k)を1KB単位のデータに分割し、分割されたデータを順次、サーバ500に送信することにより、データブロックD(k)を送信する(ステップS502)。
【0074】
そして、制御部706は、記憶部704に記憶された、情報処理装置700のシステム環境を記録したファイルを構成する全てのデータブロックの送信が終了したか否かを判断する(ステップS503)。全てのデータブロックの送信が終了していない場合、制御部706は、kを1増加させる(ステップS504)。そして、情報処理装置700は、全てのデータブロックの送信が終了するまで、ステップS502〜S504の処理を繰り返す。ステップS503において、全てのデータブロックの送信が終了した場合、バックアップ処理を行うための情報処理装置700の処理は終了する。
以上が、情報処理装置700がデータブロックを送信するフローである。
【0075】
続いて、図13(a)を参照して、サーバ500がデータブロックを正常に受信する場合のフローを説明する。
まず、通信部506は、1KB単位のデータを順次、受信することにより、データブロックD(k)を受信する(ステップS601)。そして、1KB単位の256個のデータは、256KBの大きさのデータブロックD(k)に再構築され、記憶部504は、再構築されたデータブロックD(k)を記憶する(ステップS602)。そして、制御部502は、データブロックD(k)のハッシュ値H(k)を生成する(ステップS603)。そして、記憶部504は、生成されたハッシュ値H(k)を記憶する(ステップS604)。
以上が、サーバ500がデータブロックを受信するフローである。
【0076】
続いて、図14を参照して、データブロックの送受信が中断された後、データブロックの送受信を再開する際のサーバ500と情報処理装置700のフローを説明する。図14(a)は、データブロックの受信を再開する際のサーバ500のフローを示し、図14(b)は、データブロックの送信を再開する際の情報処理装置700のフローを示す。
【0077】
データブロックの送受信を再開できる状況になると、通信部506は、バックアップ処理を再開することを示す信号(送信再開指示)を、情報処理装置700に送信する(ステップS605)。情報処理装置700は、サーバ500から送信された送信再開指示を受信する(ステップS505)。そして、情報処理装置700は、送信再開指示を受信すると、ハッシュ値比較処理を行う(ステップS506)。
【0078】
ここで、図15を参照して、ハッシュ値比較処理(ステップS506)の詳細を説明する。
まず、情報処理装置700が送信済みの1番目のデータブロックD(1)を読み出すために、制御部706は、データブロックの送信した順序を示すパラメータkを、k=1とする(ステップS701)。そして、通信部702は、記憶部504に記憶された各データブロックの第1固有情報(ハッシュ値)を取得する(ステップS702)。本実施形態では、データブロックの送受信が中断されるまでに生成された第1固有情報(ハッシュ値)を、全て同時に取得する例を説明するが、複数回に分けて、データブロックの送受信が中断されるまでに生成された第1固有情報(ハッシュ値)を取得してもよい。そして、制御部706は、記憶部704に記憶された、情報処理装置700のシステム環境を記録したファイルを構成する、送信済みのk番目のデータブロックD(k)の第2固有情報(ハッシュ値)としてH(k)を生成する(ステップS703)。そして、制御部706は、H(k)とH(k)の比較を行う(ステップS704)。
【0079】
ここで、サーバ500と情報処理装置700とで別々に生成されたH(k)とH(k)が一致することは、k番目のデータブロックD(k)が正しく送信されたことを意味する。H(k)とH(k)が一致した場合、制御部706は、kを1増加させる(ステップS705)。そして、情報処理装置700は、H(k)とH(k)が一致しなくなるまで、ステップS703〜S705を繰り返す。
一方、H(k)とH(k)が一致しない場合、ハッシュ値比較処理は終了する。H(k)とH(k)が一致しないkを特定することにより、サーバ500が正しく受信することができなかったデータブロックを特定することができる。本実施形態では、p番目のハッシュ値H(p)とH(p)が一致しない場合の例を説明する。
【0080】
図14に戻り、ハッシュ値比較処理(ステップS506)が終了した後に、データブロックの送受信を再開する際のサーバ500と情報処理装置700のフローを説明する。
制御部706は、ハッシュ値比較処理が終了すると、p番目のデータブロックD(p)以降のデータブロックを送信するために、データブロックを送信する順番を示すパラメータkを、k=pとする(ステップS507)。
【0081】
p番目以降のデータブロックを送信する処理は、図13(b)のステップS502〜S504と同じである。すなわち、通信部702は、データブロックD(k)を1KB単位のデータに分割し、分割されたデータを順次、サーバ500に送信することにより、データブロックD(k)を送信する(ステップS508)。そして、制御部706は、記憶部704に記憶された、情報処理装置700のシステム環境を記録したファイルを構成する全てのデータブロックの送信が終了したか否かを判断する(ステップS509)。
全てのデータブロックの送信が終了していない場合、制御部706は、kを1増加させる(ステップS510)。そして、情報処理装置700は、全てのデータブロックの送信が終了するまで、ステップS508〜S510の処理を繰り返す。ステップS509において、全てのデータブロックの送信が終了した場合、バックアップ処理を行うための情報処理装置700の処理は終了する。
以上が、情報処理装置700がサーバ500に、p番目のデータブロックD(p)以降のデータブロックを送信するフローである。
【0082】
また、図14(a)に戻り、サーバ500において、通信部506は、1KB単位のデータを順次、受信することにより、データブロックD(k)を受信する(ステップS606)。そして、1KB単位の256個のデータは、256KBの大きさのデータブロックD(k)に再構築され、記憶部504は、再構築されたデータブロックD(k)を記憶する(ステップS607)。そして、制御部502は、データブロックD(k)のハッシュ値H(k)を生成する(ステップS608)。そして、記憶部504は、生成されたハッシュ値H(k)を記憶する(ステップS609)。
以上が、サーバ500が、p番目のデータブロックD(p)以降のデータブロックを受信するフローである。
【0083】
以上説明したように、本実施形態のシステムでは、サーバ500で生成された各受信データブロックのハッシュ値と、情報処理装置700で生成された各送信データブロックのハッシュ値とを情報処理装置700が比較する。そのため、データブロックの送受信が中断されることにより正しく送信することができなかったデータブロックを特定することができる。よって、本実施形態のデータ送信方法では、情報処理装置700が特定したデータブロックから送受信を再開すればよく、最初のデータブロックから全てのデータブロックを送信し直す必要がない。そのため、バックアップ処理のためのデータ送信を中断した場合に、中断後のデータ送信にかかる時間を従来よりも短縮することができる。
【0084】
なお、データブロックの送受信が中断される場合の例としては、ネットワークに障害が発生した場合に限られるものではない。例えば、バックアップ処理を急いで行う必要がない場合に、情報処理装置700を使用していない時間帯(例えば、夜間)にバックアップ処理を行い、それ以外の時間帯については、バックアップ処理を意図的に中断する構成としてもよい。
【0085】
<第6の実施形態>
上述した実施形態においては、中断より前にサーバ500が受信したデータブロックは、全て、最新のシステム環境を記録したものという前提であった。しかし、データブロックの送受信が中断されている間に、情報処理装置700のシステム環境が変更されると、送信済みの最後のデータブロック以外のデータブロックに対する第1固有情報と第2固有情報が一致しない場合も生じ得る。
この場合、情報処理装置700のシステム環境が変更されたとしても、必ずしもデータブロックの送受信が中断されるまでに送信された全てのデータブロックが変更されるのではなく、一部のデータブロックのみ変更される場合がある。例えば、100番目のデータブロックを送受信している間に、データブロックの送受信が中断されたとする。データブロックの送受信が中断されている間に、情報処理装置700のシステム環境が変更された結果、例えば、2番目のデータブロックのみ変更される場合がある。この場合、第5の実施形態の構成では、2番目以降のデータブロックを全て送信することになるが、3番目から99番目のデータブロックは変更されないため、これらのデータブロックの再送は省略することがより好ましい。
そこで、本実施形態では、データブロックの送受信が中断されている間に、情報処理装置700のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することを目的とする。
【0086】
本実施形態のシステムで用いられるサーバ500と情報処理装置700の構成は、上述した第5の実施形態と同様である。
本実施形態では、図14(b)を参照して説明したハッシュ値比較処理(ステップS506)の詳細なステップが、第5の実施形態と異なる。以下、図16を参照して、本実施形態のハッシュ値比較処理(ステップS506)の詳細を説明する。
【0087】
まず、制御部706は、送信済みの1番目のデータブロックD(1)を読み出すために、データブロックの送信した順序を示すパラメータkを、k=1とする(ステップS801)。そして、通信部702は、記憶部504に記憶された各データブロックの第1固有情報(ハッシュ値)を取得する(ステップS802)。そして、制御部706は、記憶部704に記憶された、情報処理装置700のシステム環境を記録したファイルを構成する、送信済みのk番目のデータブロックD(k)の第2固有情報(ハッシュ値)、H(k)を生成する(ステップS803)。そして、制御部706は、H(k)とH(k)の比較を行う(ステップS804)。
【0088】
(k)とH(k)が一致した場合、制御部706は、kを1増加させる(ステップS805)。そして、制御部706は、H(k)とH(k)が一致しなくなるまで、ステップS803〜S805を繰り返す。
一方、H(k)とH(k)が一致しない場合、制御部706は、データブロックD(k)が送信済みの最後のデータブロックであるかどうかを判断する(ステップS806)。
【0089】
(k)とH(k)が一致しないにもかかわらず、データブロックD(k)が送信済みの最後のデータブロックでないことは、データブロックの送受信が中断されている間に、情報処理装置700のシステム環境が変更されたことを意味する。この場合、情報処理装置700は、k番目のデータブロックD(k)のみをサーバ500に送信する(ステップS807)。
【0090】
そして、制御部706は、kを1増加させる(ステップS808)。そして、情報処理装置700は、ステップS806において、H(k)とH(k)が一致しないデータブロックD(k)が送信済みの最後のデータブロックとなるまで、ステップS803〜S808の処理を繰り返す。データブロックD(k)が送信済みの最後のデータブロックである場合、ハッシュ値比較処理を終了する。そして、図14(b)を参照して説明したステップS507以降の処理を行う。
【0091】
以上説明したように、本実施形態では、情報処理装置700が、第1固有情報と第2固有情報とが一致しないデータブロックが、送信済みの最後のデータブロックであるかどうかを判断する。そして、情報処理装置700は、第1固有情報と第2固有情報とが一致しないデータブロックが送信済みの最後のデータブロックでない場合、そのデータブロックの再送を要求する。これにより、第5の実施形態と比較して、データブロックの送受信が中断されている間に、情報処理装置700のシステム環境が変更された場合に、中断後のデータ送信にかかる時間をより短縮することができる。
【0092】
(付記)なお、本実施形態は、以下の付記に記載されるように構成することができる。
【0093】
(付記1)
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するデータ送信方法であって、
前記サーバは、前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、前記情報処理装置へ送信し、
前記情報処理装置は、前記サーバから送信された各データブロックを順次受信し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、受信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを受信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【0094】
(付記2)
第1固有情報及び第2固有情報は、ハッシュ値、またはCRC値である、付記1に記載のデータ送信方法。
【0095】
(付記3)
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するシステムであって、
前記サーバは、
前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信する通信部と、を備え、
前記情報処理装置は、
前記サーバから送信された複数のデータブロックを順次受信し、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得する通信部と、
受信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを受信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【0096】
(付記4)
情報処理装置のシステム環境を記録したファイルを、ネットワークを介して前記情報処理装置に送信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信するとともに、データブロックの送信を中断した場合には、データブロックの送信再開を行う前に、前記情報処理装置に対して第1固有情報を送信し、該第1固有情報に応じて前記情報処理装置により特定されるデータブロックの送信を行う通信部と、
を備えるサーバ。
【0097】
(付記5)
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信する処理を実行させるプログラムであって、
前記サーバが、前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、前記情報処理装置へ送信する手順と、
前記情報処理装置が、前記サーバから送信された各データブロックを順次受信する手順と、
前記情報処理装置が、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、受信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを受信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する手順と、
をコンピュータに実行させるプログラム。
【0098】
(付記6)
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するデータ送信方法であって、
前記情報処理装置は、前記ファイルを構成する複数のデータブロックを順次、前記サーバへ送信し、
前記サーバは、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、送信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを送信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【0099】
(付記7)
第1固有情報及び第2固有情報は、ハッシュ値、またはCRC値である、付記6に記載のデータ送信方法。
【0100】
(付記8)
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するシステムであって、
前記サーバは、
前記情報処理装置から送信された、前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、を備え、
前記情報処理装置は、
前記複数のデータブロックを順次、サーバへ送信するとともに、データブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得する通信部と、
送信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを送信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【0101】
(付記9)
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置からネットワークを介して受信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置から受信するとともに、データブロックの受信を中断した場合には、データブロックの受信再開を行う前に、前記情報処理装置に対して第1固有情報を送信し、該第1固有情報に応じて前記情報処理装置により特定されるデータブロックの受信を行う通信部と、
を備えるサーバ。
【0102】
(付記10)
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信する処理を実行させるプログラムであって、
前記情報処理装置が、前記ファイルを構成する複数のデータブロックを順次、前記サーバへ送信する手順と、
前記サーバが、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶する手順と、
前記情報処理装置が、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、送信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを送信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する手順と、
をコンピュータに実行させるプログラム。
【符号の説明】
【0103】
100,500 サーバ
102,502 制御部
104,504 記憶部
106,506 通信部
150,550 データバス
200,600 ネットワーク
300,700 情報処理装置
302,702 通信部
304,704 記憶部
306,706 制御部
350,750 データバス
400,800 記憶装置

【特許請求の範囲】
【請求項1】
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するデータ送信方法であって、
前記サーバは、前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶した後に、各データブロックを順次、前記情報処理装置へ送信し、
前記情報処理装置は、前記サーバから送信された各データブロックを順次受信し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、受信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを受信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【請求項2】
第1固有情報及び第2固有情報は、ハッシュ値、またはCRC値である、請求項1に記載のデータ送信方法。
【請求項3】
情報処理装置のシステム環境を記録したファイルを、サーバがネットワークを介して前記情報処理装置に送信するシステムであって、
前記サーバは、
前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信する通信部と、を備え、
前記情報処理装置は、
前記サーバから送信された複数のデータブロックを順次受信し、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得する通信部と、
受信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを受信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【請求項4】
情報処理装置のシステム環境を記録したファイルを、ネットワークを介して前記情報処理装置に送信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置へ送信するとともに、データブロックの送信を中断した場合には、データブロックの送信再開を行う前に、前記情報処理装置に対して第1固有情報を送信し、該第1固有情報に応じて前記情報処理装置により特定されるデータブロックの送信を行う通信部と、
を備えるサーバ。
【請求項5】
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するデータ送信方法であって、
前記情報処理装置は、前記ファイルを構成する複数のデータブロックを順次、前記サーバへ送信し、
前記サーバは、前記情報処理装置から送信された各データブロックを順次受信した後に、受信した複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成して記憶し、
前記情報処理装置は、前記サーバがデータブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得し、送信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを送信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する、ことを特徴とするデータ送信方法。
【請求項6】
第1固有情報及び第2固有情報は、ハッシュ値、またはCRC値である、請求項5に記載のデータ送信方法。
【請求項7】
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置がネットワークを介してサーバに送信するシステムであって、
前記サーバは、
前記情報処理装置から送信された、前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、を備え、
前記情報処理装置は、
前記複数のデータブロックを順次、サーバへ送信するとともに、データブロックの送信を中断した場合には、前記サーバからデータブロックの送信再開指示を受けた後に、前記サーバから第1固有情報を取得する通信部と、
送信済みのデータブロックの各々に固有な第2固有情報を前記所定の規則により生成し、データブロックを送信した順に、第1固有情報と第2固有情報とを比較し、第1固有情報と第2固有情報とが一致しないデータブロックの送信を前記サーバに要求する制御部と、を備えるシステム。
【請求項8】
情報処理装置のシステム環境を記録したファイルを、前記情報処理装置からネットワークを介して受信するサーバであって、
前記ファイルを構成する複数のデータブロックの各々に固有な第1固有情報を所定の規則により生成する制御部と、
第1固有情報を記憶する記憶部と、
各データブロックを順次、前記情報処理装置から受信するとともに、データブロックの受信を中断した場合には、データブロックの受信再開を行う前に、前記情報処理装置に対して第1固有情報を送信し、該第1固有情報に応じて前記情報処理装置により特定されるデータブロックの受信を行う通信部と、
を備えるサーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate