以下、本発明を図示する実施形態に基づいて説明する。
<<< §1.分散型データアーカイブ装置の構成 >>>
本願発明は、前掲の特許文献1に開示されている分散型データアーカイブ装置において、データファイルに冗長性をもたせて保管する効率的な方法を模索しているうちに着想を得たものである。そこで、ここではまず、着想の発端となった分散型データアーカイブ装置の基本構成を簡単に説明する。
図1は、前掲の特許文献1に開示されている分散型データアーカイブ装置を利用したファイル保管システムの基本構成およびファイルの移動形態を示すブロック図である。分散型データアーカイブ装置10は、パソコンなど、ネットワークに接続可能な通信機能をもった一般的な電子機器に、専用のプログラムを組み込むことによって構成することができる。このシステムのユーザには、予めICカード20が提供される。このICカード20は、分散型データアーカイブ装置10からのアクセスを受けて管理情報Kを格納する機能を有している。
分散型データアーカイブ装置10は、オリジナルファイルF0を、複数の分割ファイルFa〜Fcに分割し、これらをネットワークN(図示の例では、インターネット)を介して、地理的に分散配置された複数のサーバ装置S1〜S3へ送信して保管する保管処理と、逆に、保管されている分割ファイルFa〜Fcをサーバ装置S1〜S3から取り出し、これらを結合してオリジナルファイルF0を復元する復元処理と、を行う機能を有している。
実際には、分散型データアーカイブ装置10には、ファイルの暗号化および復号化を行う機能も備わっており、保管処理時には、分割ファイルFa〜Fcは、暗号化された上で、各サーバ装置S1〜S3へと送信される。したがって、サーバ装置S1〜S3に保管されている分割ファイルFa〜Fcは、暗号化されたファイルということになる。一方、復元処理時には、暗号化された分割ファイルFa〜Fcに対する復号化が行われ、オリジナルファイルF0が復元されることになる。
ICカード20に格納される管理情報Kは、オリジナルファイルF0に対して施された分割方法および暗号化方法を示す情報と、個々の分割ファイルFa〜Fcの預託先となるサーバ装置を示す情報と、によって構成されている。図示の例は、オリジナルファイルF0を3分割して、3つの分割ファイルFa〜Fcを生成する例であるが、分割数や分割規則などは任意であり、「どのような規則に従って、いくつに分割したか」という分割方法を示す情報が、管理情報Kとして、ICカード20内に格納される。同様に、暗号化の方法も任意であり、「どのような暗号キーを用いて、どのようなアルゴリズムで暗号化を行ったか」という暗号化方法を示す情報が、管理情報Kとして、ICカード20内に格納される。
更に、個々の分割ファイルの預託先を示す情報が、管理情報Kとして、ICカード20内に格納される。図示の例の場合、「分割ファイルFaの預託先がサーバ装置S1、分割ファイルFbの預託先がサーバ装置S2、分割ファイルFcの預託先がサーバ装置S3である」という預託先の情報が管理情報Kとして格納されている。結局、図示の例の場合、オリジナルファイルF0の保管に関する管理情報Kとして、分割方法、暗号化方法、預託先を示す情報が、保管処理時に、ICカード20内に格納されることになる。
このように、ICカード20内に格納された管理情報Kは、「オリジナルファイルF0をどのように分割し、どのように暗号化し、個々の分割ファイルをどこに預託したか」という手がかりを与える情報であり、オリジナルファイルF0を取り出すために必須の情報ということになる。復元処理時には、分散型データアーカイブ装置10は、この管理情報Kに基づいて、オリジナルファイルF0を復元する。すなわち、預託先を示す情報に基づいて、預託先となっている各サーバ装置S1,S2,S3から、復元に必要な分割ファイルFa,Fb,Fcを取り出し、暗号化方法を示す情報に基づいて、その逆の論理プロセスによる復号化処理を施し、分割方法を示す情報に基づいて、その逆のプロセスによる合成処理を施せば、オリジナルファイルF0の復元を行うことができる。
このシステムの重大なメリットは、いつでもどこでも、オリジナルファイルF0の出し入れ(サーバ装置への保管と、その取り出し)ができる点である。たとえば、分散型データアーカイブ装置10をノートパソコンなどの携帯型コンピュータで構成しておき、これを携帯していれば、インターネットNへの接続環境がある場所なら、いつでもどこでも、ファイルの出し入れが可能になる。もっとも、ファイルの取り出しには、ICカード20内の管理情報Kが必要になる。逆に言えば、ユーザは、管理情報Kが格納されたICカード20のみを携帯していれば、分散型データアーカイブ装置10が設置された場所であれば、いつでもファイルの出し入れが可能になる。たとえば、世界中の空港、駅、ホテルなどに、分散型データアーカイブ装置10として機能するパソコンを設置しておけば、ユーザは、ICカード20のみを携帯していれば、世界中の各所でファイルの出し入れが可能になる。
このシステムの付随的なメリットは、保管されているデータファイルについて、十分なセキュリティが確保される点である。たとえば、図示の例の場合、サーバ装置S1〜S3は、いずれもインターネットNを介して外部からのアクセスを受けるファイルサーバであるから、ハッキングの被害を受ける可能性がある。ところが、ハッキングによって、たとえば、分割ファイルFaが不正な者の手に渡ったとしても、それだけでは、オリジナルファイルF0を復元することはできない。オリジナルファイルF0を復元するには、他の分割ファイルFb,Fcを入手する必要があるが、これらのファイルの保管場所は、管理情報Kを入手しない限り知ることはできない。そもそも、管理情報Kを入手しない限り、オリジナルファイルF0が3つのファイルFa,Fb,Fcに分割された事実を認識することもできないし、また、暗号化方法がわからないため、これら分割ファイルを不正入手したとしても、正しく復号化することもできない。したがって、サーバ装置S1〜S3が、インターネットNによってアクセスされる環境にあったとしても、オリジナルファイルF0が不正入手される可能性は極めて低く、十分なセキュリティが維持されることになる。
なお、ここでは、ICカード20内に管理情報Kを格納する例を述べたが、ICカード内に直接的に管理情報Kを格納する代わりに、管理情報Kを別な格納場所(たとえば、別なサーバ装置)に格納しておき、ICカード20内は、管理情報Kを入手するための情報(たとえば、当該別なサーバ装置のURLなど)を格納するようにしてもよい。この場合、保管処理時には、分散型データアーカイブ装置10は、管理情報Kを所定の場所に格納する処理を行い、当該場所を示す情報をICカード20内に書き込むようにする。一方、復元処理時には、分散型データアーカイブ装置10は、ICカード20から、管理情報Kの格納場所を示す情報を読み出し、当該格納場所から管理情報Kを読み出した上で、復元処理を行えばよい。
<<< §2.本発明の分散型データアーカイブ装置への適用 >>>
§1で述べた分散型データアーカイブ装置は、契約したユーザからインターネットを介してデータファイルを預かる商用サービスの運営を念頭において開発された技術である。このような商用サービスを提供する上では、セキュリティのみならず、データ復元の信頼性を維持することが不可欠である。たとえば、図1に示す例において、サーバ装置S1に不具合が生じ、分割ファイルFaが失われてしまった場合、もはやオリジナルファイルF0を復元することはできなくなってしまう。そこで、実用上は、個々の分割ファイルFa,Fb,Fcのそれぞれに冗長性をもたせて保管するのが好ましい。
図2は、図1に示すファイル保管システムに、冗長度を確保するための一般的な手法(ミラーリング)を採り入れた場合のファイルの移動形態を示すブロック図である。この例では、各分割ファイルFa,Fb,Fcを、それぞれ異なる2つのサーバ装置へと送信して格納し、常に、同じファイルが異なる2箇所に保管される形態を採っている。具体的には、分割ファイルFaはサーバ装置S1,S3に保管され、分割ファイルFbはサーバ装置S2,S1に保管され、分割ファイルFcはサーバ装置S3,S2に保管されている。このため、ICカード20内の管理情報Kにおける各分割ファイルの預託先も、それぞれ2箇所のサーバ装置を示している。
このような「ミラーリング」の手法を採用すれば、保管対象ファイルに冗長性が付加されるため、サーバ装置に不具合が生じても、オリジナルファイルを復元できる可能性が高まる。たとえば、図2に示す例において、サーバ装置S1に不具合が生じ、分割ファイルFa,Fbが失われてしまった場合でも、これらの分割ファイルは、別なサーバ装置S2,S3にも保管されているため、オリジナルファイルF0は支障なく復元することができる。
しかしながら、冗長性を確保する手段として、図2に示す方法を採った場合、分割ファイルFa,Fb,Fcの保管処理の作業負担が増加することは避けられない。図2に示す例のように、分散型データアーカイブ装置10から個々の分割ファイルFa,Fb,Fcをそれぞれ2箇所のサーバ装置に送信することにすると、分散型データアーカイブ装置10からの送信データ容量は、図1に示す例に比べて2倍に増加する。
ここで、分散型データアーカイブ装置10として、インターネットに対して高速な通信環境をもったコンピュータ(たとえば、光ファイバを利用した通信回線に直接接続されているデスクトップコンピュータなど)であれば、通信容量の増加は大きな問題にはならないであろう。しかしながら、個人や小規模企業などの一般的なユーザが使用する電子機器には、高性能の通信機能や通信環境を期待することが困難である。また、ノートパソコン、携帯電話機、PDA機器などの携帯型電子機器の場合、無線通信を利用してインターネットに接続するのが一般的であり、このような無線通信を利用した機器によって分散型データアーカイブ装置10が構成されていた場合、送信データ容量が増大することは、通信機能に大きな負担を強いる結果になる。
本発明は、このような事情に鑑み、ユーザが使用している電子機器内の保管対象ファイルを、冗長性を確保するために複数箇所のサーバ装置に重複して保管することが可能であり、しかも、当該電子機器の通信負担を低減させる新たな技術を提案するものである。以下、本発明を、図1に示す分散型データアーカイブ装置を用いたファイル保管システムに適用した例を説明する。
図3は、図1に示すファイル保管システムに、冗長度を確保するための本発明に係る手法を採り入れた場合のファイルの移動形態を示すブロック図である。この図3に示す例の場合、図1に示す例と同様に、分散型データアーカイブ装置10からは、個々の分割ファイルFa,Fb,Fcがそれぞれ1箇所のサーバ装置にのみ送信される。すなわち、図に実線で示すルートのとおり、分割ファイルFaはサーバ装置S1へ送信され、分割ファイルFbはサーバ装置S2へ送信され、分割ファイルFcはサーバ装置S3へ送信され、それぞれ保管される。
このように、図3に示す例では、各サーバ装置S1,S2,S3には、分散型データアーカイブ装置10から分割ファイルFa,Fb,Fcが直接送信される。ただ、各サーバ装置S1,S2,S3に対しては、このように分散型データアーカイブ装置10から直接的なファイル送信が行われるだけではなく、別なサーバ装置からのファイル転送も行われる。図の破線は、このようなファイル転送のルートを示している。具体的には、サーバ装置S1は、受信した分割ファイルFaをネットワークNを介してサーバ装置S3へと転送し、サーバ装置S2は、受信した分割ファイルFbをネットワークNを介してサーバ装置S1へと転送し、サーバ装置S3は、受信した分割ファイルFcをネットワークNを介してサーバ装置S2へと転送する。
このように、個々のサーバ装置にファイル転送を行わせるためには、転送先となる別なサーバ装置を特定するための転送先情報を報知する必要がある。図3において、分散型データアーカイブ装置10内の各分割ファイルFa,Fb,Fcには、それぞれ「S3」,「S1」,「S2」という記号が付されているが、これらの記号は、各分割ファイルとともに送信される転送先情報である。
図3に示す分散型データアーカイブ装置10は、分割ファイルFa,Fb,Fcを作成した後、各分割ファイルの預託先として、2箇所のサーバ装置を指定する。ここでは、指定された一方のサーバ装置を直接預託先、他方のサーバ装置を間接預託先と呼ぶことにする。図示の例の場合、分割ファイルFaについては、直接預託先S1と間接預託先S3とが指定され、分割ファイルFbについては、直接預託先S2と間接預託先S1とが指定され、分割ファイルFcについては、直接預託先S3と間接預託先S2とが指定されている。
なお、複数のサーバ装置の中から、どのサーバ装置を直接預託先として指定し、どのサーバ装置を間接預託先として指定するかは、様々なアルゴリズムによって決定することができる。たとえば、乱数などを用いて、その都度、直接預託先および間接預託先となるサーバ装置を、個々の保管対象ファイルごとにランダムに選択することも可能であるし、予め設定された所定の規則に基づいて選択することも可能である。もちろん、管理者が、予め、特定のサーバ装置を直接預託先および間接預託先として設定しておくようにし、当該設定に基づく指定が行われるようにしてもかまわない。また、たとえば、直接預託先として指定可能なサーバ装置を7台用意し、間接預託先として指定可能なサーバ装置も7台用意し、「曜日ごとに、それぞれ特定の1台を直接預託先および間接預託先として指定する」という規則を定めておけば、このような規則に基づく指定も可能になる。公知のミラーリング技術では、冗長性をより高めるための様々なアルゴリズムが知られているので、ここでは、この預託先を指定する具体的なアルゴリズムについての説明は省略する。
分散型データアーカイブ装置10は、こうして、各分割ファイルについて、それぞれ直接預託先と間接預託先とを決定したら、当該分割ファイルとともに、間接預託先を特定するための情報(以下、間接預託先情報という)を、直接預託先となるサーバ装置へと送信する処理を行えばよい。図示されている転送先情報「S3」,「S1」,「S2」は、この間接預託先情報に他ならない。
すなわち、図示の例の場合、分散型データアーカイブ装置10は、分割ファイルFaに間接預託先情報「S3」を添付した上で、これを直接預託先であるサーバ装置S1へ送信し、分割ファイルFbに間接預託先情報「S1」を添付した上で、これを直接預託先であるサーバ装置S2へ送信し、分割ファイルFcに間接預託先情報「S2」を添付した上で、これを直接預託先であるサーバ装置S3へ送信する処理を行うことになる。
なお、以下の実施例では、間接預託先情報を保管対象ファイルに添付して(ファイルに合成して)、「間接預託先情報付きの保管対象ファイル」という形で送信する例を示すが、本発明を実施する上で、間接預託先情報と保管対象ファイルとは、両者の対応関係が認識できる形式で送信することができれば足り、両者は、必ずしも1つのファイルにまとめて送信する必要はない。
たとえば、図3に示す例の場合、転送先情報「S3」は、分割ファイルFaに添付され、分割ファイルFaの付属情報として、サーバ装置S1へと送信されることになるが、転送先情報「S3」と分割ファイルFaとは別々に送信してもかまわない。ただ、別々に送信する場合、サーバ装置S1における受信も別々に行われることになるので、サーバ装置S1側において、両者が対応していることを認識できるような工夫(たとえば、転送先情報「S3」に、対応する分割ファイルFaのファイル名などの情報を付加しておくなどの工夫)を施す必要がある。
各サーバ装置側では、分散型データアーカイブ装置10から、間接預託先情報が添付された保管対象ファイルが送信されてきたら(あるいは、相互に対応づけられた保管対象ファイルと間接預託先情報とが別々に送信されてきたら)、当該保管対象ファイルを自分自身に格納するとともに、当該保管対象ファイルを、添付されている間接預託先情報(あるいは、別送されてきた対応する間接預託先情報)によって特定される別なサーバ装置へと転送する処理を行う。また、各サーバ装置は、別なサーバ装置から保管対象ファイルのみが転送されてきた場合(間接預託先情報が添付されていたり、別送されていたりしない場合)には、これを自分自身に格納する処理を行う。
結局、図3に示す例の場合、サーバ装置S1は、間接預託先情報「S3」が添付された分割ファイルFaを受け取り、このファイルFaを自分自身に格納する処理を行うとともに、当該分割ファイルFaを間接預託先情報「S3」で特定されるサーバ装置S3へ転送する処理を行う。サーバ装置S3は、転送されてきた分割ファイルFaを自分自身に格納する。同様に、サーバ装置S2は、間接預託先情報「S1」が添付された分割ファイルFbを受け取り、このファイルFbを自分自身に格納する処理を行うとともに、当該分割ファイルFbを間接預託先情報「S1」で特定されるサーバ装置S1へ転送する処理を行う。サーバ装置S1は、転送されてきた分割ファイルFbを自分自身に格納する。また、サーバ装置S3は、間接預託先情報「S2」が添付された分割ファイルFcを受け取り、このファイルFcを自分自身に格納する処理を行うとともに、当該分割ファイルFcを間接預託先情報「S2」で特定されるサーバ装置S2へ転送する処理を行う。サーバ装置S2は、転送されてきた分割ファイルFcを自分自身に格納する。
かくして、サーバ装置S1には分割ファイルFa,Fbが保管され、サーバ装置S2には分割ファイルFb,Fcが保管され、サーバ装置S3には分割ファイルFc,Faが保管されることになる。この保管状態は、図2に示す例と全く同じであり、個々の分割ファイルFa,Fb,Fcについてミラーリングが行われ、重複保管による冗長性が確保されたことになる。しかも、ICカード20内の管理情報Kには、各分割ファイルの預託先として、直接預託先と間接預託先との双方の情報が含まれており、この点についても、図2に示す例と全く同じである。したがって、万一、いずれかのサーバ装置に保管していたデータファイルが滅失する事故が生じても、別なサーバ装置に重複して保管されていた同一内容のファイルを代用することができるようになり、データ取り出しの信頼性を向上させることができる。
ここで着目すべき点は、分散型データアーカイブ装置10からの送信データ容量が、図1に示す例とほぼ同じになる点である。もちろん、図3に示す例の場合、各分割ファイルFa,Fb,Fcには、それぞれ間接預託先情報「S3」,「S1」,「S2」が添付されるため、図1に示す例の場合に比べて、送信データ容量は若干増えることになる。しかしながら、間接預託先情報は、間接預託先となるサーバ装置を特定するための情報(たとえば、サーバ装置のURLなど)であるから、そのデータ容量は非常に小さい。したがって、図3に示す例の場合、図1に示す例と比較して、実用上、分散型データアーカイブ装置10の通信機能の負担増加はほとんどない。これは図2に示す例に比較して、大きなメリットである。
既に述べたとおり、一般的なユーザが使用する電子機器の通信機能や通信環境は決して十分なものではなく、送信データ容量はできるだけ抑制するのが好ましい。本発明では、データファイルの保管に冗長度を確保しつつ、ユーザが使用する電子機器からの送信データ容量を低く抑えるメリットが得られることになる。実際、ユーザが使用する電子機器は、直接預託先へのファイル送信が完了した時点で、ファイル保管作業から解放されることになる。
もちろん、図3に示す例の場合、直接預託先として指定された各サーバ装置から、間接預託先として指定された各サーバ装置への分割ファイルの転送が行われるため(図に破線で示すルート)、ネットワークNを流れる情報量自体が節約されるわけではない。しかしながら、サーバ装置S1〜S3は、ファイルを保管する役割を担うために設置された専用のサーバ用コンピュータであり、ネットワークNを介した十分な通信機能を有している。実用上、サーバ装置S1〜S3としては、いずれも光ファイバーを介して直接インターネットに接続された通信環境をもつコンピュータが用いられるのが一般的であり、大容量のデータファイルを高速で送受する能力をもっている。したがって、サーバ装置間におけるデータファイルの転送処理は、それほど大きな負担にはならない。
また、直接預託先から間接預託先へのファイル転送処理は、必ずしもリアルタイムで行う必要はなく、いわゆるバッチ処理として、多少の時間遅れをもって実行しても支障は生じない。したがって、サーバ装置間のトラフィックが輻輳している時間帯を避け、空いている時間帯にファイル転送処理を行うようなことも可能である。
以上、本発明を図1に示す分散型データアーカイブ装置10に適用した実施形態を述べたが、もちろん、本発明は、分散型データアーカイブ装置への適用に限定されるものではない。本発明の基本概念は、預託元装置(図3の例の場合、分散型データアーカイブ装置10)内の保管対象ファイル(図3の例の場合、分割ファイルFa,Fb,Fc)を、預託先となる別な装置(図3の例の場合、サーバ装置S1,S2,S3)へ冗長性をもたせて保管するデータ保管方法において、次のような各段階を実行することにある。
まず、第1段階として、預託元装置が、預託先となる別な装置として、直接預託装置と間接預託装置とを決定し、直接預託装置を特定する直接預託先情報と間接預託装置を特定する間接預託先情報とを所定の場所に格納する処理を行う。図3に示す例の場合、保管対象ファイルとして、たとえば、分割ファイルFaに着目したとすれば、サーバ装置S1が直接預託装置、サーバ装置S3が間接預託装置として決定されることになり、これら預託先を示す直接預託先情報S1および間接預託先情報S3が、管理情報KとしてICカード20へ格納されることになる。
続く第2段階として、預託元装置が、間接預託先情報を添付した保管対象ファイルを、直接預託装置に送信する処理を行う。たとえば、保管対象ファイルとなる分割ファイルFaには、間接預託先情報「S3」を添付して、直接預託装置となるサーバ装置S1へ送信する処理が行われる。
そして第3段階として、直接預託装置が、送信されてきた保管対象ファイルを第1の保管場所に格納するとともに、送信されてきた保管対象ファイルを、添付されている間接預託先情報によって特定される間接預託装置に転送する処理を行う。たとえば、分割ファイルFaに着目したとすれば、分割ファイルFaについての直接預託装置であるサーバ装置S1は、まず、送信されてきた分割ファイルFaを第1の保管場所(すなわち、サーバ装置S1に内蔵された磁気ディスクなどの格納場所)に格納する処理を行う。更に、サーバ装置S1は、送信されてきた分割ファイルFaを、添付されている間接預託先情報「S3」によって特定される間接預託装置、すなわち、サーバ装置S3に転送する処理を行う。
最後に第4段階として、間接預託装置が、転送されてきた保管対象ファイルを、第2の保管場所に格納する処理を行う。たとえば、分割ファイルFaに着目したとすれば、分割ファイルFaについての間接預託装置であるサーバ装置S3は、転送されてきた分割ファイルFaを第2の保管場所(すなわち、サーバ装置S3に内蔵された磁気ディスクなどの格納場所)に格納する処理を行う。
このような一連の段階を実行することにより、預託元装置内の保管対象ファイルを、第1の保管場所と第2の保管場所との双方に保管することが可能になる。もちろん、第1の保管場所は、直接預託装置によってアクセス可能な保管場所であれば任意の場所でよく、第2の保管場所は、間接預託装置によってアクセス可能な保管場所であれば任意の場所でよい。したがって、各サーバ装置は、保管対象ファイルを、必ずしも内蔵の磁気ディスク等に保管する必要はなく、外部に接続された磁気ディスクなどに保管してもかまわない。
なお、実用上は、預託元装置が、直接預託先情報と間接預託先情報とを外部装置へ格納した後に、自分自身から直接預託先情報と間接預託先情報とを消去する段階を実行するようにし、直接預託装置が、保管対象ファイルを間接預託装置に転送した後に、自分自身から間接預託先情報を消去する段階を実行するようにするのが好ましい。
たとえば、図3に示す例の場合、預託元装置として機能する分散型データアーカイブ装置10は、直接預託先情報と間接預託先情報とを、管理情報Kとして、外部装置であるICカード20に格納した後、これらの情報を自分自身から消去する処理を実行すればよい。具体的には、分割ファイルFaについては、直接預託先情報と間接預託先情報「S1&S3」が、管理情報KとしてICカード20に書き込まれることになるが、書込完了後は、分散型データアーカイブ装置10内には、これらの情報は残らないことになる。また、分割ファイルFaについての直接預託装置として機能するサーバ装置S1は、保管対象となる分割ファイルFaを間接預託装置として機能するサーバ装置S3に転送した後、自分自身から当該間接預託先情報「S3」を消去すればよい。
このような消去処理を実行すれば、各保管対象ファイルについての「預託先」を示す情報は、ICカード20内の管理情報Kとしてのみ保管されることになる。別言すれば、預託元装置として機能する分散型データアーカイブ装置10の内部にも、各預託先として機能する個々のサーバ装置S1〜S3の内部にも、各保管対象ファイルについての「預託先」を示す情報(図3において、楕円内に示されたS1〜S3)は残らないことになる。これは、ハッキングを受けた場合のセキュリティ向上を図る上で有益である。
たとえば、図3に示す例において、サーバ装置S1内において、分割ファイルFaに添付されていた間接預託先情報「S3」が残っていると、サーバ装置S1がハッキングを受けた場合、分割ファイルFaが不正者の手に渡るとともに、間接預託先情報「S3」も不正者の手に渡ることになる。その結果、サーバ装置S3がハッキング被害に遭う可能性が出てくる。もし、サーバ装置S3がハッキングを受けた場合、今度は、分割ファイルFcが不正者の手に渡るとともに、間接預託先情報「S2」も不正者の手に渡ることになる。その結果、今後は、サーバ装置S2がハッキング被害に遭う可能性が出てくるので、結局、分割ファイルFa,Fc,Fbが芋づる式に不正者の手に落ちてしまうことになり、オリジナルファイルF0が不正に復元される可能性が高まることになる。上述した消去処理を実行するようにすれば、このような被害を未然に防ぐことができる。
<<< §3.本発明に係るデータ保管システムの基本構成 >>>
さて、§2では、§1で述べた分散型データアーカイブ装置に本発明を適用した実施形態を述べた。ここでは、より一般的なデータ保管システムに本発明を適用した実施形態を述べるとともに、本発明を実施する上で必要な基本構成要素およびその動作を説明する。
図4は、本発明に係るデータ保管システムの基本構成を示すブロック図である。このシステムは、保管対象ファイルF(図3に示す分割ファイルFa、Fb、もしくはFcに対応)を冗長性をもたせて保管するシステムであり、図示のとおり、保管対象ファイルFの預入処理および取出処理を行う保管処理装置100と、この保管処理装置100からのアクセスを受けて管理情報Mを格納する管理情報格納装置200と、ネットワークN(この例では、インターネット)を介して相互に接続され、かつ、ネットワークNを介して保管処理装置100に接続される複数のサーバ装置300,400と、によって構成されている。
ここでは、説明の便宜上、2台のサーバ装置300,400を用いた最小構成のシステムを例示するが、実用上は、より多数のサーバ装置を用いるのが好ましい。図示の例の場合、サーバ装置300は、直接預託装置として機能する直接預託サーバであり、サーバ装置400は、間接預託装置として機能する間接預託サーバである。本発明に係るデータ保管システムでは、複数のサーバ装置のうち、少なくとも1台は直接預託サーバとして指定可能なサーバ装置であり、少なくとも1台は間接預託サーバとして指定可能なサーバ装置である必要がある。
保管処理装置100は、図示のとおり、サーバ指定部110、ファイル預入部120、ファイル取出部130、管理情報書込部140、管理情報読出部150を有する構成要素である。
ここで、サーバ指定部110は、保管対象ファイルFの預託先となるサーバとして、直接預託サーバと間接預託サーバとを、このシステムの構成要素となる複数のサーバ装置の中から指定する機能を有している。この図4に示すシステムは、前述のとおり、直接預託サーバとして指定可能な1台のサーバ装置300と、間接預託サーバとして指定可能な1台のサーバ装置400と、を備えた最小構成のシステムであるため、サーバ指定部110は、常に、サーバ装置300を直接預託サーバとして指定し、サーバ装置400を間接預託サーバとして指定する処理を行う。
もっとも、実用上は、上述したとおり、多数のサーバ装置を含むシステムが構築される。この場合、サーバ指定部110には、これら多数のサーバ装置のリスト(必要に応じて、直接預託サーバとして指定可能か、間接預託サーバとして指定可能か、を示す情報を含むリスト)が用意され、所定のアルゴリズムに基づいて、個々の保護対象ファイルFについて、直接預託サーバと間接預託サーバとを選択する処理を行う。たとえば、§2で述べた実施形態の場合、セキュリティ向上を図る上で、分割ファイルFa,Fb,Fcは、それぞれ異なるサーバ装置に分散して保管されるようにするのが好ましい。そのような場合、分割ファイルFa,Fb,Fcについての直接預託サーバおよび間接預託サーバとしては、それぞれ異なるサーバ装置が指定されることになる。
管理情報書込部140は、サーバ指定部110によって指定された直接預託サーバを特定する直接預託先情報Dと、サーバ指定部110によって指定された間接預託サーバを特定する間接預託先情報Iとを、管理情報格納装置200に管理情報Mとして書き込む処理を行う。上述したとおり、実用上は、個々の保管対象ファイルごとに、それぞれ異なる直接預託先情報Dおよび間接預託先情報Iが指定されることになるので、管理情報書込部140は、保管対象ファイルFを特定するための書誌情報B(たとえば、ファイル名)を含む管理情報Mを書き込むようにする。
図4には、保管対象ファイルFについて、ファイル名を示す書誌情報B(必要に応じて、データ容量、預け主となるユーザのIDやパスワードなどを含ませてもよい)と、直接預託先情報D(この例の場合、サーバ装置300を特定するためのURLなどの情報)と、間接預託先情報I(この例の場合、サーバ装置400を特定するためのURLなどの情報)とが、管理情報Mとして、管理情報格納装置200に書き込まれている。
ファイル預入部120は、保管対象ファイルFと間接預託先情報Iとを対応づけて、ネットワークNを介して、直接預託先情報Dによって示される宛先(図示の例の場合は、直接預託サーバとして指定されたサーバ装置300)へ向けて送信する処理(図に実線の矢印ルートで示す預入処理)を行う。前述したとおり、保管対象ファイルFと間接預託先情報Iとは、両者が対応づけられていれば、別々に送信することも可能である。ただ、ここで述べる実施形態の場合、ファイル預入部120は、保管対象ファイルFに、間接預託先情報Iを添付する処理を行い(何らかのデリミタとなるコードを挟んで、間接預託先情報Iを構成するデータを、保管対象ファイルFとなるデータに付加すればよい)、「間接預託先情報Iを添付した保管対象ファイルF」を、ネットワークNを介して、直接預託先情報Dによって示される宛先へ向けて送信する処理を行う。
一方、管理情報読出部150は、管理情報格納装置200から管理情報Mを読み出す処理を行う。より具体的には、管理情報Mの中の直接預託先情報Dもしくは間接預託先情報I、またはその双方を読み出す処理を行う。ここに示す例の場合、管理情報Mは、個々の保管対象ファイルFごとにそれぞれ格納されており、そこには、ファイル名を示す書誌情報Bが含まれている。したがって、管理情報読出部150は、この書誌情報を利用して、ユーザが取り出しを要求する保管対象ファイルについての管理情報Mの読み出しを行う。たとえば、ユーザが特定の保管対象ファイルFの取り出し要求を行った場合、当該ファイルFのファイル名をもつ書誌情報Bが含まれている管理情報Mを検索し、当該管理情報Mの中から、直接預託先情報Dもしくは間接預託先情報I、またはその双方が読み出されることになる。
ファイル取出部130は、この管理情報読出部150によって読み出された情報で特定される直接預託サーバもしくは間接預託サーバ、またはその双方に対して、預託していた保管対象ファイルを取り出す要求を与え、この要求に応じて返送されてきた保管対象ファイルを取得し、これをユーザに提供する。
続いて、サーバ装置300の構成を説明する。前述したとおり、このサーバ装置300は、直接預託サーバとして指定可能なサーバ装置であり、直接預託処理部310、直接預託ファイル返送部320、直接預託ファイル保管部330によって構成されている。
直接預託処理部310は、ユーザがファイルの預入処理を行ったときに機能する構成要素であり、保管処理装置100内のファイル預入部120から、ネットワークNを介して、「間接預託先情報Iが添付された保管対象ファイルF」が送信されてきたときに(間接預託先情報Iと保管対象ファイルFとを別々に送信する実施形態の場合には、対応関係にある両者が送信されてきたときに)、次の2つの処理を実行する。第1の処理は、送信されてきた保管対象ファイルFを、直接預託ファイル保管部330へ格納する処理である。そして、第2の処理は、送信されてきた保管対象ファイルFを、ネットワークNを介して間接預託先情報Iによって特定される間接預託サーバ(図示の例の場合は、間接預託サーバとして指定されたサーバ装置400)を宛先として転送する処理(図に破線の矢印ルートで示す転送処理)である。
一方、直接預託ファイル返送部320は、ユーザがファイルの取出処理を行ったときに機能する構成要素であり、保管処理装置100内のファイル取出部130から、特定の保管対象ファイルを取り出す要求が与えられたときに、当該取出要求に応じて、直接預託ファイル保管部330に格納されている当該特定の保管対象ファイルFを、ネットワークNを介してファイル取出部130へ返送する処理(図に一点鎖線の矢印ルートで示す取出処理)を実行する。
そして、直接預託ファイル保管部330は、保管対象ファイルFを保管するための構成要素であり、直接預託処理部310による格納処理によって引き渡された保管対象ファイルFを保管する機能を果たす。こうして直接預託ファイル保管部330に保管されている保管対象ファイルFは、必要に応じて、直接預託ファイル返送部320によって読み出され、上述したように、ファイル取出部130へ返送される。
最後に、サーバ装置400の構成を説明する。前述したとおり、このサーバ装置400は、間接預託サーバとして指定可能なサーバ装置であり、間接預託処理部410、間接預託ファイル返送部420、間接預託ファイル保管部430によって構成されている。
間接預託処理部410は、ユーザがファイルの預入処理を行ったときに機能する構成要素であり、直接預託サーバ300内の直接預託処理部310から、ネットワークNを介して、保管対象ファイルFが転送されてきたときに、転送されてきた保管対象ファイルFを、間接預託ファイル保管部430へ格納する処理を実行する。
一方、間接預託ファイル返送部420は、ユーザがファイルの取出処理を行ったときに機能する構成要素であり、保管処理装置100内のファイル取出部130から、特定の保管対象ファイルを取り出す要求が与えられたときに、当該取出要求に応じて、間接預託ファイル保管部430に格納されている当該特定の保管対象ファイルFを、ネットワークNを介してファイル取出部130へ返送する処理(図に一点鎖線のルートで示す取出処理)を実行する。
そして、間接預託ファイル保管部430は、保管対象ファイルFを保管するための構成要素であり、間接預託処理部410による格納処理によって引き渡された保管対象ファイルFを保管する機能を果たす。こうして間接預託ファイル保管部430に保管されている保管対象ファイルFは、必要に応じて、間接預託ファイル返送部420によって読み出され、上述したように、ファイル取出部130へ返送される。
以上、図4のブロック図を参照しながら、本発明の一実施形態に係るデータ保管システムの構成を説明したが、実用上は、図4に示す各構成要素は、コンピュータなどの電子機器によって構成することができる。たとえば、保管処理装置100は、パソコン、携帯電話機、PDA機器などの電子機器によって構成され、管理情報格納装置200は、このような電子機器によるアクセスを受けるICカードなどの記憶装置によって構成される。この場合、管理情報書込部140および管理情報読出部150は、当該記憶装置に対する書き込みおよび読み出しを行うためのハードウエアやソフトウエアによって構成される。同様に、ファイル預入部120およびファイル取出部130は、ネットワークNに対する通信機能をもったハードウエアやソフトウエアによって構成される。また、サーバ指定部110は、この電子機器に組み込まれた専用のソフトウエアによって構成される。
これに対して、サーバ装置300およびサーバ装置400は、一般にデータサーバ装置あるいはファイルサーバ装置と呼ばれているサーバコンピュータによって構成することができる。直接預託ファイル保管部330や間接預託ファイル保管部430は、通常、ハードディスク記憶装置によって構成できる。もちろん、これらファイル保管部330,430としては、光ディスク記憶装置、磁気テープ記憶装置、半導体メモリ記憶装置など、データを保管する機能をもった装置であれば、どのような装置を用いてもかまわない。また、図示の例では、ファイル保管部330,430が、各サーバ装置300,400内に組み込まれている例が示されているが、ファイル保管部330,430は、サーバ装置300,400の外部に接続されたハードディスク記憶装置などによって構成してもかまわない。本発明にいうサーバ装置とは、このような外部装置も含めた概念である。
直接預託処理部310や間接預託処理部410は、ネットワークNを介して受け取ったデータファイルを、ファイル保管部330,430に格納する機能を果たし、直接預託ファイル返送部320や間接預託ファイル返送部420は、ネットワークNを介して要求された特定のファイルを、ファイル保管部330,430から読み出して送信する機能を果たす。このようなデータファイルの送受信機能や書き込み読み出し機能は、一般的なサーバ装置が標準的に備えている基本機能である。したがって、間接預託サーバ400としては、従来から一般的に利用されている通常のファイルサーバ装置をそのまま利用することができる。
一方、直接預託サーバ300も、基本的には、従来から一般的に利用されている通常のファイルサーバ装置を利用して構築することが可能であるが、直接預託処理部310の転送処理機能は本発明に固有の機能であるため、新たに組み込む必要がある。すなわち、ネットワークNを介して、「保管対象ファイルF」が送信されてきた場合に、これをファイル保管部330へ格納する処理は、通常のファイルサーバ装置が備えている基本機能であるが、当該「保管対象ファイルF」に、「間接預託先情報I」が添付されていた場合に(間接預託先情報Iと保管対象ファイルFとを別々に送信する実施形態の場合には、対応関係にある両者が送信されてきた場合に)、当該「保管対象ファイルF」を、「間接預託先情報I」によって特定される別なサーバ装置へ転送する処理機能は、本発明に固有の機能であるため、新たに組み込む必要がある。
結局、本発明に係るデータ保管システムを構築する場合、間接預託サーバとして指定可能なサーバ装置は、従来から一般的に利用されている通常のファイルサーバ装置をそのまま利用して構成することができる。これに対して、直接預託サーバとして指定可能なサーバ装置は、従来から一般的に利用されている通常のファイルサーバ装置に、「間接預託先情報Iが添付された保管対象ファイルF」が送信されてきたときに(間接預託先情報Iと保管対象ファイルFとを別々に送信する実施形態の場合には、対応関係にある両者が送信されてきたときに)、この「保管対象ファイルF」を、ネットワークNを介して、「間接預託先情報Iによって特定される別なサーバ装置」へ転送する処理を行うための専用プログラムを組み込むことによって構成することができる(当該直接預託サーバは、当然、間接預託サーバとしても指定可能なサーバ装置になる)。
なお、図4において、保管処理装置100とネットワークNとを接続する線に比べて、サーバ装置300,400とネットワークNとを接続する線が太く描かれているのは、§2で述べたように、サーバ装置300,400には、一般的なユーザが使用する電子機器(保管処理装置100)に比べて、より高性能の通信機能や通信環境が備わっていることを明示するためである。図に破線で示す転送処理は、このような高性能の通信機能や通信環境を経たデータ伝送処理になるため、サーバ装置300,400にとっては格別大きな負担にはならない。
続いて、ユーザが、図4に示すデータ保管システムを利用して、保管対象ファイルFを預け入れる操作を行ったときの具体的なデータの流れ、および取り出す操作を行ったときの具体的なデータの流れを説明する。
まず、ユーザが、保管処理装置100に対して、保管対象ファイルFを預け入れる操作を行った場合を考えよう。この場合、まず、サーバ指定部110によって、この保管対象ファイルFの預託先となるサーバとして、直接預託サーバ300と間接預託サーバ400とが指定される。図示の例は、2台のサーバ装置300,400のみが備わった最小構成システムであるため、サーバ装置300が直接預託サーバとして指定され、サーバ装置400が間接預託サーバとして指定されることになるが、実際には、複数のサーバ装置の中から所定のアルゴリズムで、保管対象ファイルFについての直接預託サーバと間接預託サーバとが指定される(たとえば、乱数を用いたランダム選択に基づく指定や、管理者によって予め定められた規則に基づく指定)。
管理情報書込部140は、このサーバ指定部110による指定結果を、管理情報Mとして管理情報格納装置200へ格納する処理を行う。具体的には、保管対象ファイルFを特定する書誌情報B(たとえば、ファイル名)と、直接預託サーバ300を特定する直接預託先情報D(たとえば、サーバ装置300のURL)と、間接預託サーバ400を特定する間接預託先情報I(たとえば、サーバ装置400のURL)と、が管理情報Mとして書き込まれることになる。
一方、ファイル預入部120は、保管対象ファイルFに、間接預託先情報Iを添付する処理を行う。たとえば、保管対象ファイルFを構成する第1のデータの末尾に、間接預託先情報Iを構成する第2のデータを付加した合成ファイル「F+I」を作成すればよい。実用上は、第1のデータと第2のデータとの間に何らかのデリミタ(区切り子)となるデータを介挿するか、もしくは第1のデータの容量値を示すデータをヘッダ部に配置するなどの工夫により、合成ファイルに基づいて、2つのデータをそれぞれ独立して認識できるようにしておく必要がある。なお、前述したとおり、間接預託先情報Iと保管対象ファイルFとは、相互の対応関係が維持される形式で別々に送信してもかまわない。
続いて、ファイル預入部120は、この合成ファイル「F+I」を、直接預託先情報Dで示される宛先へ送信する処理を行う。図示の例の場合、合成ファイル「F+I」は、ファイル預入部120によって直接預託サーバ300へ送信されることになる。このような送信処理は、たとえば、FTPなどの送信プロトコルを利用した一般的なファイル送信技術を利用して実行することができる。
さて、合成ファイル「F+I」を受信したサーバ装置300では、次のような処理が実行される。まず、直接預託処理部310によって、合成ファイル「F+I」から、保管対象ファイルFと間接預託先情報Iとが認識され、保管対象ファイルFは、そのまま直接預託ファイル保管部330へ格納される。更に、直接預託処理部310は、この保管対象ファイルFを、間接預託先情報Iで示されている間接預託サーバ、すなわち、サーバ装置400へと転送する。このような転送処理は、たとえば、FTPなどの送信プロトコルを利用した一般的なファイル送信技術を利用して実行することができる。
こうして転送された保管対象ファイルFを受信したサーバ装置400では、次のような処理が実行される。すなわち、間接預託処理部410によって、受信された保管対象ファイルFが、そのまま間接預託ファイル保管部430へ格納される。
以上の処理により、保管対象ファイルFは、サーバ装置300,400の双方に保管された状態になる。このため、万一、いずれか一方のサーバ装置から保管対象ファイルFが滅失する事故が生じても、ファイルの取り出しが可能となる冗長性が得られる。しかも、保管処理装置100からネットワークNへ向けて送信されるデータ容量は、保管対象ファイルFのデータ容量とほぼ同じであるため(間接預託先情報Iのデータ容量は極めて小さい)、保管処理装置100の通信負担は軽くてすむ。
続いて、ユーザが、保管処理装置100に対して、保管対象ファイルFを取り出す操作を行った場合を考えよう。この場合、まず、管理情報読出部150によって、管理情報格納装置200から、当該保管対象ファイルFについての管理情報Mが読み出される。具体的には、たとえば、保管対象ファイルFのファイル名を含む書誌情報Bをもった管理情報Mを検索して読み出すようにすればよい。あるいは、管理情報Mのファイル名の一部に、保管対象ファイルFのファイル名を含ませるような運用を行えば、目的の管理情報Mをそのファイル名で検索することもできる。
ファイル取出部130は、管理情報読出部150によって読み出された管理情報Mに含まれている直接預託先情報Dを用いて、直接預託サーバ300が預託先であることを認識することができるので、直接預託サーバ300に対して、保管対象ファイルFの取り出し要求を行うことができる。この場合、当該要求を受けた直接預託ファイル返送部320によって、直接預託ファイル保管部330に保管されていた保管対象ファイルFが読み出され、ネットワークNを介してファイル取出部130へと返送されることになる。このような取出処理も、たとえば、FTPなどの送信プロトコルを利用した一般的なファイル送信技術を利用して実行することができる。
もちろん、ファイル取出部130は、直接預託先情報Dの代わりに間接預託先情報Iを用いて、間接預託サーバ400が預託先であることを認識することもできる。したがって、間接預託サーバ400に対して、保管対象ファイルFの取り出し要求を行うこともできる。この場合、当該要求を受けた間接預託ファイル返送部420によって、間接預託ファイル保管部430に保管されていた保管対象ファイルFが読み出され、ネットワークNを介してファイル取出部130へと返送されることになる。このような取出処理も、たとえば、FTPなどの送信プロトコルを利用した一般的なファイル送信技術を利用して実行することができる。
このように、保管対象ファイルFは、直接預託サーバ300から取り出すことも、間接預託サーバ400から取り出すことも可能であるが、実用上は、いずれか一方から取り出せば十分である。そこで、実際には、ファイル取出部130は、管理情報読出部150によって読み出される情報で特定される直接預託サーバ300もしくは間接預託サーバ400のいずれか一方を主取得先、他方を副取得先として、まず、主取得先に対して保管対象ファイルFを取り出す要求を与えて保管対象ファイルFの取得を行い、取得に失敗した場合に、副取得先に対して保管対象ファイルFを取り出す要求を与えて保管対象ファイルFの再取得を試みるようにすればよい。
図5は、このような手順で保管対象ファイルFを取り出す際の流れを示すブロック図である。この例では、直接預託サーバ300(直接預託先情報Dで特定されるサーバ装置)を主取得先とし、間接預託サーバ400(間接預託先情報Iで特定されるサーバ装置)を副取得先としている。このため、ファイル取出部130は、まず、主取得先である直接預託サーバ300に対して、保管対象ファイルFを取り出す要求を与えて保管対象ファイルFの主取得を試みる。サーバ装置300が正常に機能していれば、直接預託ファイル返送部320によって、保管対象ファイルFが返送されてくるはずである。
ところが、サーバ装置300側に何らかの異常が発生した場合、保管対象ファイルFの返送が正しく行われないことになる。たとえば、直接預託ファイル保管部330を構成するハードディスク装置の故障により保管中のファイルが滅失する事故が生じたり、直接預託ファイル返送部320の通信機能に障害が生じたり、あるいは、サーバ装置300とネットワークNとの間の通信環境に障害が生じたりすると、保管対象ファイルFの返送が行われない。
そこで、ファイル取出部130には、主取得先に対して取出要求を与えてから、所定時間以内に対象ファイルが返信されなかったときには、主取得先からの取得に失敗したと判断し、副取得先に対する再取得を試みる処理機能を設けておけばよい。この場合、ファイル取出部130は、副取得先である間接預託サーバ400に対して、保管対象ファイルFを取り出す要求を与えて保管対象ファイルFの副取得を試みることになる。サーバ装置400が正常に機能していれば、間接預託ファイル返送部420によって、保管対象ファイルFが返送されてくるはずである。
なお、直接預託ファイル保管部330と間接預託ファイル保管部430とは、いずれも保管対象ファイルFを保管するという同一機能を有する構成要素であり、直接預託ファイル返送部320と間接預託ファイル返送部420とは、いずれも取出要求に応じて保管対象ファイルFを返送するという同一機能を有する構成要素である。このように、直接預託先と間接預託先との間には、ファイルを保管する機能に関して優劣の差はない。したがって、図5に示す例では、直接預託サーバ300を主取得先とし、間接預託サーバ400を副取得先としているが、逆に、間接預託サーバ400を主取得先として先にファイルの取得を試みて、取得に失敗した場合に、副取得先となる直接預託サーバ300から再取得を試みるようにしてもかまわない。
また、上述の例では、管理情報読出部150は、特定の保管対象ファイルFについての管理情報M全体を読み出した上で、そこから必要な直接預託先情報Dや間接預託先情報Iを抽出する処理を行っているが、管理情報格納手段200からデータの読み出しを行う際に、管理情報M内の特定のデータのみを選択的に読み出すことが可能であれば、必要な情報のみを個別に読み出すようにしてもかまわない。たとえば、直接預託先情報Dで特定されるサーバ装置を主取得先とする運用を行う場合、事故が生じた場合を除いて、通常は、直接預託先情報Dのみを読み出せば、取出対象となるファイルを取り出すことができる。したがって、この場合、管理情報読出部150は、取出対象となるファイルに関する管理情報M内の直接預託先情報Dのみを読み出せば足りる。
<<< §4.より実用的な実施例 >>>
§3では、本発明を一般的なデータ保管システムに適用した基本的な実施形態を述べた。ここでは、本発明を実施する上で、より実用的な実施例をいくつか述べることにする。
<4−1:報告処理を付加した実施例>
§3で述べたシステムでは、ファイル預入部120から直接預託サーバ300へ向けて、「間接預託先情報Iと保管対象ファイルF」を送信することにより、各サーバ装置側での保管処理が支障なく行われることが前提となっている。しかしながら、実際には、何らかの事情で、サーバ装置側での正しいファイル保管が行われない可能性もある。そこで、実用上は、サーバ装置から保管処理装置に対して、何らかの確認情報を送信し、保管対象ファイルFが正しく保管されたことを報告する報告処理を付加するのが好ましい。
たとえば、図4に示すシステムにおいて、直接預託処理部310に、ファイル預入部120から送信されてきた「間接預託先情報Iと保管対象ファイルF」を正常に受信し、かつ、当該保管対象ファイルFを直接預託ファイル保管部330へ正常に格納したことを条件として、送信元となるファイル預入部120に対して、受託確認を送信する機能をもたせておくようにする。受託確認として送信する情報としては、たとえば、保管対象ファイルFを特定する情報(ファイル名など)と、当該ファイルFが正常に保管されたことを示すコードとを含んだ情報を用いればよい。一方、ファイル預入部120には、当該受託確認が得られたときに、ユーザに対して保管処理が完了したことを示す情報提示(たとえば、「ファイル○○は、正常に保管されました」のようなメッセージの提示)を行う機能をもたせておくようにする。
そうすれば、ユーザは、保管処理装置100に対して、保管対象ファイルFを預け入れる操作を行った後、上例のようなメッセージを確認することにより、保管処理が正常に終了したことを認識することができる。
また、ファイル預入部120には、「間接預託先情報Iおよび保管対象ファイルF」の送信を行った後、所定時間内に受託確認が得られなかった場合に、ユーザに対して保管処理が失敗したことを示す情報提示(たとえば、「ファイル○○の保管に失敗しました」のようなメッセージの提示)を行う機能をもたせておくようにするのが好ましい。
ところで、上述した受託確認は、あくまでも直接預託処理部310における保管処理が正常に行われたことを示すものであり、間接預託処理部410における保管処理が正常に行われたことを示すものではない。すなわち、上述の実施例では、ユーザに対して保管処理が完了したことを示す情報提示が行われたとしても、当該情報提示は、「少なくとも直接預託先において、保管処理が正常に行われた」ことを示すだけであり、「冗長性を確保するために、直接預託先と間接預託先との双方において、保管処理が正常に行われた」ことを示すものではない。
そこで、実用上は、間接預託処理部410に、直接預託処理部310から転送されてきた保管対象ファイルFを正常に受信し、かつ、当該保管対象ファイルFを間接預託ファイル保管部430へ正常に格納したことを条件として、送信元となる直接預託処理部310に対して、転送確認を送信する機能をもたせておくのが好ましい。転送確認として送信する情報としては、たとえば、保管対象ファイルFを特定する情報(ファイル名など)と、当該ファイルFが正常に保管されたことを示すコードとを含んだ情報を用いればよい。
一方、直接預託処理部310は、間接預託処理部410からの転送確認が得られることを加重条件として、受託確認の送信を行うようにしておく。すなわち、直接預託処理部310は、ファイル預入部120から送信されてきた「間接預託先情報Iおよび保管対象ファイルF」を正常に受信し、当該保管対象ファイルFを直接預託ファイル保管部330へ正常に格納し、かつ、当該保管対象ファイルFに関する転送確認が間接預託処理部410から送られてきたことを条件として、送信元となるファイル預入部120に対して、受託確認の送信を行うことになる。
図6は、このような加重条件を課した運用を行う実施例における確認情報の流れを示すブロック図である。保管処理装置100から、直接預託サーバ300に対して、「間接預託先情報Iおよび保管対象ファイルF」の送信が行われると、直接預託サーバ300内では、保管対象ファイルFを自分自身に保管する処理が行われるとともに、これを間接預託サーバ400へ転送する処理が行われる。間接預託サーバ400は、転送されてきた保管対象ファイルFを自分自身に保管する処理を行い、正常に保管処理が完了すると、直接預託サーバ300に対して転送確認を送信する。直接預託サーバ300は、保管対象ファイルFを自分自身に保管する処理が正常に行われ、かつ、間接預託サーバ400からの転送確認が得られたことを条件として、保管処理装置100に対して受託確認を送信する。
この図6に示すような条件で、保管処理装置100に対する受託確認が行われるようにしておけば、当該受託確認は、直接預託サーバ300と間接預託サーバ400との双方において、保管対象ファイルFが正常に保管されたことを示す報告になる。保管処理装置100が、このような受託確認が得られたときに、「ファイル○○は、正常に保管されました」のようなメッセージを提示するようにすれば、ユーザは、当該メッセージにより、保管対象ファイルFが冗長度をもたせて正常に保管されたことを認識することができる。
なお、上述したように、保管処理装置100に対して受託確認を送信する形態をとる場合には、ファイル預入部120に、受託確認が得られたことを管理情報書込部140に対して報告する機能をもたせておき、管理情報書込部140が、当該報告を待って、管理情報Mの書き込みを行うようにするのが好ましい。そうすれば、管理情報格納装置200には、保管対象ファイルFが実際に各サーバ装置に正常に保管された場合にのみ、当該サーバ装置を示す直接預託先情報Dや間接預託先情報Iが書き込まれることになるので、常に、実際の保管状態との整合性が維持されることになる。
また、所定時間内にファイル預入部120に受託確認が届かなかった場合、ユーザに対して保管処理が失敗したことを示す情報提示を直ちに行う代わりに、別なサーバ装置に対する預入処理を試行することも可能である。図4に示すシステムは、単一の直接預託サーバ300と単一の間接預託サーバ400のみを備えた最小構成システムであるが、実用上は、既に述べたとおり、より多数のサーバ装置を用いた運用を行うのが一般的である。このように、サーバ指定部110による選択枝が複数通りある場合には、所定時間内に受託確認が届かずに保管処理が失敗したとしても、別な選択枝に基づく預入処理を試行すれば、正常に保管処理が行われる可能性が高い。
そこで、保管処理装置100に対して、所定時間内に受託確認が届かなかった場合には、サーバ指定部110に、前回とは異なる新たな指定(選択)を行わせ、ファイル預入部120が、この新たな指定(選択)に基づく間接預託先情報Iおよび保管対象ファイルFを、この新たな指定(選択)に基づく直接預託サーバに向けて送信するようにする。また、管理情報書込部140は、この新たな指定(選択)に基づく管理情報Mを管理情報格納装置200に書き込むようにする。
このような運用を行えば、たまたま特定のサーバ装置に不具合が生じていて、正常な保管処理ができなかった場合でも、別なサーバ装置を用いた正常な保管処理を行うことが可能になり、当該別なサーバ装置からの受託確認を得ることにより、ユーザに対して保管処理が完了したことを示す情報提示を行うことができる。もちろん、新たな指定(選択)に基づく保管処理も失敗した場合には、更に別な指定(選択)に基づく保管処理を試行することもできる。また、新たな指定(選択)を所定回数だけ繰り返し、いずれの保管処理も失敗した場合には、保管処理が失敗したことを示す情報提示を行えばよい。
<4−2:セキュリティ向上を図る実施例>
§2で述べた分散型データアーカイブ装置への適用例では、保管処理が完了した後、直接預託先情報と間接預託先情報とを消去する処理を行う例を述べた。図4に示すデータ保管システムにおいても、セキュリティ向上を図る上で、直接預託先情報Dと間接預託先情報Iとは、可能な限り、無用な場所から消去するのが好ましい。
具体的には、保管処理装置100に関しては、ファイル預入部120が、間接預託先情報と保管対象ファイルとを、ネットワークを介して送信する処理を完了し、管理情報書込部140が、直接預託先情報Dと間接預託先情報Iとを、管理情報Mとして管理情報格納装置200に書き込む処理を完了した後、書き込み済みの直接預託先情報Dと間接預託先情報Iとを、保管処理装置100内から消去する処理を行うようにするのが好ましい。
直接預託先情報Dは、ファイル預入部120が、保管対象ファイルFを送信する宛先を示す情報であり、間接預託先情報Iは、ファイル預入部120が、保管対象ファイルFとともに送信する情報である。したがって、ファイル預入部120による送信が完了し、管理情報書込部140による書き込みが完了すれば、もはや保管処理装置100内に直接預託先情報Dと間接預託先情報Iとを止めておく必要はない。そこで、この時点で、直接預託先情報Dと間接預託先情報Iを保管処理装置100内から消去する処理を行っても何ら支障はない。
一方、直接預託サーバ300に関しては、直接預託処理部310が、保管対象ファイルFを間接預託サーバ400に向けて転送する処理を完了した後、転送済みの保管対象ファイルFに対応する間接預託先情報Iを、直接預託サーバ300内から消去する処理を行うようにするのが好ましい。間接預託先情報Iは、直接預託処理部310が、保管対象ファイルFを転送する宛先を示す情報であるから、転送処理が完了すれば、もはや直接預託サーバ300内に間接預託先情報Iを止めておく必要はない。そこで、この時点で、間接預託先情報Iを直接預託サーバ300内から消去する処理を行っても何ら支障はない。
このような消去処理を実行すれば、保管対象ファイルFについての「預託先」を示す情報は、管理情報格納装置200内の管理情報Kとしてのみ保管されることになる。別言すれば、保管処理装置100の内部にも、個々のサーバ装置300,400の内部にも、保管対象ファイルFについての「預託先」を示す情報は残らないことになる。これは、ハッキングを受けた場合のセキュリティ向上を図る上で有益である。特に、§2で述べた分散型データアーカイブ装置への適用例では、相互に関連のある分割ファイルの預託先が芋づる式に不正者の手に落ちてしまう事態を未然に防ぐことができる。
<4−3:兼用サーバを用いる実施例>
図4に示すシステムは、1台の保管処理装置100と、1台の管理情報格納装置200と、直接預託サーバとして指定可能な1台のサーバ装置300と、間接預託サーバとして指定可能な1台のサーバ装置400と、を用いた最小構成システムである。ただ、実用上は、より多数の保管処理装置,管理情報格納装置,サーバ装置を用いたシステムが利用されることになろう。
図7は、本発明に係るデータ保管システムのより実用的な実施例を示すブロック図である。図の上段には、3台の保管処理装置100A,100B,100CがネットワークN(インターネット)に接続された状態が示されている。これら各保管処理装置100A,100B,100Cには、それぞれ管理情報格納装置200A,200B,200Cが接続されている。
ここで、3台の保管処理装置100A,100B,100Cの仕様を共通にし、3台の管理情報格納装置200A,200B,200Cの仕様を共通にすれば、各保管処理装置100A,100B,100Cと各管理情報格納装置200A,200B,200Cとの接続の組み合わせは任意になる。したがって、各保管処理装置100A,100B,100Cを、多数のユーザの利用に供するために所定の場所に設置された公共の装置とし、各管理情報格納装置200A,200B,200Cを、個々のユーザが利用する個人用装置として各ユーザに配布すれば、各ユーザは、自分用に配布された管理情報格納装置200を、必要に応じて、任意の保管処理装置100A,100B,100Cに接続し、ファイルの預け入れや取り出しを行うことができるようになる。
一方、図7の下段には、5台のサーバ装置500A〜500EがネットワークN(インターネット)に接続された状態が示されている。ここで、この5台のサーバ装置500A〜500Eは、いずれも「直接預託サーバとしても間接預託サーバとしても指定可能な兼用サーバ」である。図では、便宜上、サーバ装置500Aの内部構成のみをブロック図として示しているが、他のサーバ装置500B〜500Eも全く同じ内部構成を有している。
本発明に係るシステムには、原理上、直接預託サーバとして指定可能なサーバ装置が少なくとも1台、間接預託サーバとして指定可能なサーバ装置が少なくとも1台必要になるが、実用上は、システムに用いる複数のサーバ装置の一部もしくは全部を、「直接預託サーバとしても間接預託サーバとしても指定可能な兼用サーバ」によって構成しておくのが好ましい。
図7に示すとおり、兼用サーバ装置500Aは、兼用預託処理部510と、兼用預託ファイル返送部520と、兼用預託ファイル保管部530と、によって構成されている。
ここで、兼用預託ファイル保管部530は、図4に示す直接預託ファイル保管部330および間接預託ファイル保管部430の双方の機能を果たす構成要素である。もっとも、実際には、一般的なサーバ装置に利用されているハードディスク装置などの記憶装置によって構成することができる。
兼用預託処理部510は、図4に示す直接預託処理部310および間接預託処理部410の双方の機能を果たす構成要素である。すなわち、間接預託先情報Iと保管対象ファイルFとの双方が送信されてきたときには、送信されてきた保管対象ファイルFを兼用預託ファイル保管部530へ格納するとともに、この送信されてきた保管対象ファイルFをネットワークを介して間接預託先情報Iによって特定される間接預託サーバに向けて転送する処理を行うことにより直接預託処理部310としての機能を果たす。一方、保管対象ファイルFのみが転送されてきたときには、転送されてきた保管対象ファイルFを兼用預託ファイル保管部530へ格納する処理を行うことにより間接預託処理部410としての機能を果たす。
また、兼用預託ファイル返送部520は、図4に示す直接預託ファイル返送部320および間接預託ファイル返送部420の双方の機能を果たす構成要素である。すなわち、保管処理装置100A〜100C内のファイル取出部130からの要求に応じて、兼用預託ファイル保管部530に格納されている保管対象ファイルFをファイル取出部130へ返送する処理を行う。
§3でも述べたとおり、この兼用サーバ装置500Aが行う処理機能のうち、保管対象ファイルFを別なサーバ装置に向けて転送する処理機能以外は、一般的なファイルサーバが標準的に備えている処理機能である。したがって、この兼用サーバ装置500Aは、従来から用いられている一般的なファイルサーバに、転送処理を行うための専用プログラムを組み込むことにより、実現することができる。
なお、§3では、1つの保管対象ファイルFについて、1台の直接預託サーバと1台の間接預託サーバとを対応づけ、2箇所に同一ファイルを保管する例を述べたが、直接預託サーバや間接預託サーバを、複数指定することも可能である。
たとえば、図7に示す例において、サーバ装置500Aを第1の直接預託サーバとして指定し、ここには、サーバ装置500Bを第1の間接預託サーバとして特定する間接預託先情報を添付したファイルFを送信するようにし、更に、サーバ装置500Cを第2の直接預託サーバとして指定し、ここには、サーバ装置500Dを第2の間接預託サーバとして特定する間接預託先情報を添付したファイルFを送信するようにする。
そうすれば、サーバ装置500Aは、ファイルFを自分自身で保管するとともに、これをサーバ装置500Bへと転送する処理を行う。また、サーバ装置500Cは、ファイルFを自分自身で保管するとともに、これをサーバ装置500Dへと転送する処理を行う。かくして、保管対象ファイルFは、4台のサーバ装置500A,500B,500C,500Dに保管されることになる。
もっとも、上述した方法だと、保管処理装置100から第1の直接預託サーバ500Aと第2の直接預託サーバ500Cとの2箇所にファイルを送信する必要があり、保管処理装置100の通信負担は増大する。そこで、保管処理装置100の通信負担を減少させるためには、サーバ装置500Aのみを直接預託サーバとして指定し、残りの3台のサーバ装置500B,500C,500Dをいずれも間接預託サーバとして指定すればよい。
この場合、保管処理装置100は、3台のサーバ装置500B,500C,500Dを間接預託サーバとして特定する間接預託先情報を添付したファイルFを作成し、これを直接預託サーバとなるサーバ装置500Aのみに送信することになる。当該送信を受けたサーバ装置500Aは、ファイルFを自分自身で保管するとともに、これを3台のサーバ装置500B,500C,500Dへと転送する処理を行う。かくして、保管対象ファイルFは、やはり4台のサーバ装置500A,500B,500C,500Dに保管されることになる。
なお、これまでの実施例では、サーバ装置側に保管されている保管対象ファイルを消去する処理については説明を行っていないが、もちろん、実用上は、各サーバ装置に、必要に応じて保管中のファイルを消去する機能をもたせておくのが好ましい。たとえば、予め保管期間を6ヶ月間と定めておけば、各サーバ装置は、格納後6ヶ月を経過したファイルについては適宜消去することが可能である。あるいは、保管処理装置を操作するユーザからの指示に基づいて、特定のファイルを消去するようにしてもよい。
<4−4:保管処理装置および管理情報格納装置の構成例>
図4に示すデータ保管システムにおいて、ブロック図として示されている保管処理装置100および管理情報格納装置200は、実際には、様々な電子機器によって構成可能である。ここでは、これらの具体的な構成例を述べておく。
図8に示す構成例は、保管処理装置100が、「CPUおよび記憶装置を内蔵し、ユーザからの入力操作に基づいて動作するデータ処理装置600」の一部に組み込まれた装置として構成されており、管理情報格納装置200が、このデータ処理装置600からアクセスを受けるICカード700によって構成されている例である。データ処理装置600は、たとえば、コンピュータ、携帯電話機、PDA機器など、CPUおよび記憶装置を内蔵している電子機器であり、内蔵記憶装置に格納されているファイルを保管対象ファイルFとする預入処理を行う機能を有している。この場合、ICカード700は、コンピュータ、携帯電話機、PDA機器などに接続して用いるメモリカードとして機能する。
たとえば、データ処理装置600としてパソコンを用いる場合、当該パソコンに専用のプログラムを組み込むことにより、当該パソコンを保管処理装置100として機能させることができる。ネットワークNに対する接続処理は、当該パソコンの通信機能を利用して行うことができる。ユーザは、当該パソコンに組み込まれた他の機能(たとえば、ワープロソフト)を用いて保管対象ファイルFを作成し、保管処理装置100の機能を利用して、当該保管対象ファイルFを外部のサーバ装置に保管することができる。この場合、管理情報Mが管理情報格納装置200として機能するICカード700内に書き込まれる。
ユーザは、このICカード700を所持していれば、いつでもどこでも、保管対象ファイルFを取り出すことが可能になる。取り出しを行う際に用いる保管処理装置100は、預け入れを行う際に用いたデータ処理装置600(パソコン)である必要はない。所持しているICカード700を保管処理装置100として機能する任意のデータ処理装置600に接続すれば、保管対象ファイルFの入手が可能である。
なお、管理情報格納装置200を、インターネットを介してアクセス可能な全く別な保管場所(たとえば、任意のサーバ装置)に設け、ICカード700には、当該保管場所を示すURLなどを書き込むようにしてもよい。この場合、管理情報は当該保管場所に格納されることになるが、ICカード700に書き込まれたURLを参照することにより、保管処理装置100は管理情報にアクセス可能になる。
図9に示す構成例は、保管処理装置100が、1台のコンピュータ800によって構成されており、管理情報格納装置200が、当該コンピュータに内蔵された磁気記憶装置、光記憶装置、または半導体記憶装置によって構成されている例である。この場合、単一のコンピュータ800に、専用のプログラムを組み込むことにより、保管処理装置100および管理情報格納装置200が、当該コンピュータ800内に構築されることになる。
なお、管理情報格納装置200が、光記憶装置によって構成されている場合、CD−RやDVD−Rといった媒体は、コンピュータ800から取り出すことが可能であるので、この場合、管理情報格納装置200を構成する記憶媒体の部分は、コンピュータ800から分離した状態で携帯することが可能になる。もちろん、管理情報格納装置200を、コンピュータ800に外付け形式で装着する磁気記憶装置、光記憶装置、または半導体記憶装置によって構成することも可能である。