以下、この発明の実施の形態について、下記の順序に従って説明する。
1.発明の各実施形態に適用されるシステムについて
1−1.発明の各実施形態に適用可能な記録装置または記録再生装置の一例の使用形態について
1−2.発明の各実施形態に適用可能なビデオカメラ装置の一例の構成
1−3.発明の各実施形態に適用可能なファイルシステムについて
1−4.発明の各実施形態に適用可能なファイル管理形態について
2.発明の実施の形態
2−1.発明の実施の第1の形態について
2−1−1.実施の第1の形態によるバックアップ処理について
2−1−2.実施の第1の形態および他の実施形態に適用される差分情報の検出方法について
2−1−3.実施の第1の形態によるバックアップ処理のより詳細な説明
2−2.発明の実施の第2の形態について
2−2−1.実施の第2の形態によるバックアップ処理および復元処理について
2−2−2.実施の第2の形態による復元処理のより詳細な説明
2−3.発明の実施の第3の形態について
2−3−1.実施の第3の形態によるバックアップ処理について
2−3−2.実施の第3の形態によるバックアップ処理のより詳細な説明
2−4.発明の実施の第4の形態について
2−4−1.実施の第4の形態によるバックアップ処理について
2−4−2.実施の第4の形態によるバックアップ処理のより詳細な説明
2−5.発明の実施の第5の形態について
2−5−1.実施の第5の形態によるバックアップ処理および復元処理について
2−5−2.実施の第5の形態による復元処理のより詳細な説明
2−6.発明の実施の第6の形態について
2−6−1.実施の第6の形態によるバックアップ処理について
2−6−2.実施の第6の形態によるバックアップ処理のより詳細な説明
2−6−3.実施の第6の形態の変形例について
3.発明の各実施の形態に対する変形例について
1.発明の各実施形態に適用されるシステムについて
1−1.発明の各実施形態に適用可能な記録装置または記録再生装置の一例の使用形態について
先ず、理解を容易とするために、この発明の各実施形態に適用可能な記録装置または記録再生装置について概略的に説明する。図1用いて、この発明が適用された記録装置または記録再生装置としてのビデオカメラ装置100の一例の使用形態について説明する。
図1において、ビデオカメラ装置100は、筐体12内に記録媒体13を内蔵すると共に、着脱可能な記録媒体15を装填するためのドライブ装置14を有する。記録媒体13は、例えばハードディスクからなる。記録媒体15は、記録可能なタイプのDVD(Digital Versatile Disc)やBlu−ray Disc(登録商標)といったデータの書き込みが可能とされた光ディスク、光磁気ディスク、不揮発性の半導体メモリ、着脱可能なタイプのハードディスクなど、様々に考えられる。記録媒体15として磁気テープを用いることも考えられる。
なお、記録媒体13および記録媒体15の種類は、上述に限定されない。また、上述では記録媒体13が筐体12に内蔵されるように説明したが、記録媒体15と共に記録媒体13も着脱可能としてもよい。
このビデオカメラ装置100は、被写体からの光が光学系11に入射され、この光をCCD(Charge Coupled Device)やCMOS(Complementary Metal-Oxide Semiconductor)イメージセンサといった撮像素子で受光して、受光された光を光電変換により電気信号に変換し所定の処理を施して、ディジタルビデオデータとする。このディジタルビデオデータは、例えば記録媒体13に記録される。記録媒体13に記録されたディジタルビデオデータは、出力端(図示しない)を介して外部に出力したり、ビデオカメラ装置100が有する表示素子(図示しない)に映出したりできる。
このビデオカメラ装置100は、記録媒体13に記録されたディジタルビデオデータをドライブ装置14に転送し、ドライブ装置14に装填された記録媒体15に記録することができるようにされている。また、ビデオカメラ装置100は、ドライブ装置14に装填された記録媒体15に記録されたデータを、記録媒体13に記録することができるようにされている。この機能を利用することで、ビデオカメラ装置100は、記録媒体13に記録されたディジタルビデオデータのバックアップをとることができると共に、記録媒体15にバックアップされたディジタルビデオデータを用いて、記録媒体13の記録内容を復元することができる。
例えば、記録媒体13をハードディスク、記録媒体15を記録可能なタイプのDVDとした場合、記録媒体13に記録されたディジタルビデオデータのバックアップを記録媒体15に取っておき、記録媒体15を別途、保存する。例えばビデオカメラ装置100に対して強い衝撃や振動が加わり、この衝撃や振動により記録媒体13に記録されたディジタルビデオデータが失われても、記録媒体15に記録されたバックアップデータを用いることで、記録媒体13の記録内容を、バックアップを行った時点まで復元することができる。
1−2.発明の各実施形態に適用可能なビデオカメラ装置の一例の構成
図2は、発明の各実施形態に適用可能なビデオカメラ装置100の一例の構成を示す。CPU(Central Processing Unit)120は、ROM123に予め記憶されたプログラムデータに基づき、RAM121をワークメモリとして用いてこのビデオカメラ装置100の全体を制御する。CPU120は、ROM123からプログラムデータを読み出しRAM121上に展開して当該プログラムを実行する。なお、図2では、CPU120とビデオカメラ装置100を構成する各部とが直接的に接続されるように示されているが、これはこの例に限らず、各部がバスに接続され、バスを介してコマンドやデータのやりとりを行うようにしてもよい。
光学レンズ部110は、上述した光学系11を構成し、被写体からの光を光電変換部111が有する撮像素子に導くためのレンズ系、絞り調整機構、フォーカス調整機構、ズーム機構、シャッタ機構などを備え、被写体からの光を集光し光電変換部111に入射させる。絞り調整機構、フォーカス調整機構、ズーム機構、シャッタ機構は、CPU120の制御に基づきカメラ機能部115により制御される。光電変換部111は、例えばCCDやCMOSイメージセンサといった撮像素子を有し、光学レンズ部110を介して入射された光を光電変換により電気信号に変換し、さらに所定の信号処理を施し撮像信号として出力する。
画像信号処理部112は、例えば、光電変換部111から出力された撮像信号をディジタル信号に変換する撮像信号処理部と、撮像信号処理部で撮像信号が変換されたディジタル信号に対して所定の信号処理を施すと共にベースバンドのディジタルビデオデータに変換するビデオ信号処理部と、ビデオ信号処理部で得られたベースバンドのディジタルビデオデータを所定の方式で圧縮符号化する圧縮符号化部とを有する。
撮像信号処理部は、例えば光電変換部111から出力された撮像信号に対して、CDS(Correlated Double Sampling)回路により画像情報を有する信号だけをサンプリングすると共に、ノイズを除去し、AGC(Auto Gain Control)回路によりゲインを調整する。そして、A/D変換によりディジタル信号に変換する。また、撮像信号処理部は、光電変換部111から出力された撮像信号の情報をCPU120に送る。CPU120は、この情報に基づき光学レンズ部110を制御するための制御信号を生成し、フォーカス調整機構や絞り調整機構などの制御を行う。
ビデオ信号処理部は、撮像信号処理部で得られたディジタル信号に対して所定の信号処理を施す。例えば、ビデオ信号処理部は、ディジタル信号に対して検波系の信号処理を施し、R(赤色)、G(緑色)およびB(青色)各色の成分を取り出す。そして、取り出された各色成分に基づきγ補正やホワイトバランス補正などの処理を行い、最終的に1本のベースバンドのディジタルビデオデータとして出力する。
圧縮符号化部は、ビデオ信号処理部から出力されたベースバンドのディジタルビデオデータを、例えばMPEG2(Moving Pictures Experts Group 2)方式に従い圧縮符号化する。この例に限定されず、例えばH.264|AVCすなわちITU−T(International Telecommunication Union-Telecommunication Standarization Sector)勧告H.264あるいはISO(International Organization for Standarization)/IEC(International Electrotechnical Commission)国際標準14496−10(MPEG−4パート10)Advanced Video Codingに準じた圧縮符号化方式を用いることも考えられる。
表示部114は、例えばLCD(Liquid Crystal Display)を表示素子として用い、画像信号処理部112から供給されたディジタルビデオデータに基づく表示を行うことができる。表示部114は、撮影時には撮影画像のモニタとして用いられ、再生時には、再生画像を映出させることができる。
画像入出力部113は、画像信号処理部112から出力されたディジタルビデオデータを外部に出力する。外部から供給されたディジタルビデオデータを画像信号処理部112に供給することもできる。また、画像入出力部113にA/D変換部やD/A変換部を持たせ、画像信号処理部112から出力されたディジタルビデオデータをアナログビデオ信号に変換して出力したり、外部から供給されたアナログビデオ信号をディジタルビデオデータに変換して画像信号処理部112に供給するようにしてもよい。
音声入出力部116は、マイクロフォン、スピーカといった音声の入出力手段を有し、外部の音声を音声信号に変換したり、音声信号を音声に変換する。また、音声入出力部116は、音声信号の入出力手段も有する。音声処理部117は、音声入出力部116から供給されるアナログ音声信号をA/D変換してディジタルオーディオデータとし、ノイズ除去や音質補正など所定の音声信号処理を施してベースバンドのディジタルオーディオデータとして出力する。ベースバンドのディジタルオーディオデータを所定の方式で圧縮符号化してもよい。また、音声信号処理部117は、供給されるディジタルオーディオデータに対して音質補正や音量調整などの所定の音声信号処理を施してD/A変換してアナログ音声信号とし、増幅処理などを行い音声入出力部116に供給する。
操作入力部124は、このビデオカメラ装置100の動作をユーザが操作するための操作子が所定に設けられ、操作子に対する操作に応じた制御信号を出力するこの制御信号は、CPU120に供給される。CPU120は、ユーザ操作に応じて操作入力部124から供給された制御信号に基づきなされるプログラムの処理により、ビデオカメラ装置100の各部の動作を制御する。また、操作入力部124に、簡易的な表示部を設け、ビデオカメラ装置100の動作に関する所定の表示を行うようにしてもよい。
コントローラ部126は、少なくとも上述した記録媒体13に対応するハードディスク127と、上述したドライブ装置14に対応するドライブ装置128が接続され、CPU120からの命令に基づきこれらハードディスク127およびドライブ装置128によるデータの記録、再生の制御を行う。
例えば、コントローラ部126は、CPU120の命令に基づき、光電変換部111の撮像素子で撮像され画像信号処理部112で所定に圧縮符号化されたディジタルビデオデータをハードディスク127に記録するように制御を行う。また例えば、コントローラ部126は、CPU120の命令に基づき、ハードディスク127からデータを読み出し、読み出されたデータをドライブ装置128に装填された記録媒体130に記録するように制御を行う。
ドライブ装置128に対して適用可能な記録媒体130は、ディジタルデータの記録が可能であれば特に種類を問わないが、記録可能なタイプのDVD(Digital Versatile Disc)やCD(Compact Disc)、Blu−ray Disc(登録商標)といった光ディスク、光磁気ディスクといったディスク状記録媒体、書き換え可能で不揮発性の半導体メモリが用いて好適である。着脱可能なハードディスクをドライブ装置128に適用可能な記録媒体130として用いることもできる。
通信部125は、CPU120の制御に基づき、所定のプロトコルを用いて、有線および/または無線により外部機器との通信を行う。有線および/または無線通信のインターフェイスは、ディジタル通信が可能であれば特に種類を問わないが、有線通信としては、USB、IEEE1394、イーサネット(登録商標)などによるLAN(Local Area Network)などが考えられる。また、無線通信としては、IEEE802.11a/b/g、bluetoothなどが考えられる。また、USBやIEEE1394といったインターフェイスで、パーソナルコンピュータなどのホスト機能を有する外部機器と、このビデオカメラ装置100とを接続することで、ビデオカメラ装置100のコントローラ部126に接続されるハードディスク127やドライブ装置128に装填される記録媒体を、外部機器に対してマウントすることができる。
電源部131は、例えばバッテリからなり、このビデオカメラ装置100の各部に対して電源を供給する。電源部131による電源の供給のON/OFFは、例えば操作入力部124に対する所定の操作に応じて、CPU120により制御される。
CPU120に対して、電源の供給が無くても記憶内容の保持が可能な不揮発性メモリ129が接続される。CPU120は、この不揮発性メモリ129に対して、このビデオカメラ装置100に対する設定情報や、所定の管理情報を記憶し保持させることができる。
1−3.発明の各実施形態に適用可能なファイルシステムについて
この発明の各実施形態に適用可能な記録装置として図2に例示したビデオカメラ装置100は、主として、撮像および収音により得られるディジタルビデオデータおよびディジタルオーディオデータからなるコンテンツファイルFctを、上述したように、HDD127に対して記録させるようにされている。
ここでは、ビデオカメラ装置100において、コンテンツファイルFctは、ハードディスク127に対してFAT(File Allocation Table)ファイルシステムにより管理され、記録されるものとする。FATファイルシステムは、周知のように、ツリー型のディレクトリ構造によりファイルを管理するものとされている。また、データの書き込みおよび読み出しについては、クラスタといわれる論理的な最小データ管理単位により行うものとされている。クラスタは、記録媒体における物理的なデータ書き込みおよび読み出しの最小単位であるセクタを所定数にまとめたものが1単位となる。
図3は、FATファイルシステムの一般的なシステム構成を階層モデルにより示す。先ず、この階層モデルとしては、ソフトウェア層と、その下層となるハードウェア層とに大別される。ソフトウェア層は、記録媒体に対してホスト側となるCPU(図2の例ではCPU120)が実行するプログラムおよび各種ファームウェア、ミドルウェアなどにより実現されるソフトウェア処理が対応する。この場合のソフトウェア層は、図示するように、アプリケーション50、ファイルシステム51の上位にアプリケーション50が位置する構成となっている。ハードウェア層には、記録媒体そのものの物理的な記録領域が位置するものとして考えることができる。
アプリケーション50は、例えばファイルの記録再生機能などを有して記録媒体52を使用するアプリケーションソフトウェアが対応し、ファイルレベルでのアクセス要求をファイルシステム51に対して行う。
ファイルシステム51は、ファイルシステムとしての機能を実現するソフトウェアが対応する。この例ではファイルシステムとしてFATファイルシステムを用いているので、ファイルシステム51の機能を提供するソフトウェアとしても、FATファイルシステムに対応して構成される。このファイルシステム51では、アプリケーション50からのアクセス要求に従い、記録媒体52へのアクセス要求を行う。
記録媒体52は、論理的にはFATファイルシステムに従ってフォーマット(初期化)されたものとなる。図2ではハードディスク127がこの記録媒体52に相当する。
また、図2において、ドライブ装置128に装填される記録媒体130も、この記録媒体52に相当する。なお、記録媒体130が記録可能なタイプのDVDや、Blu−ray Discであった場合には、記録媒体130に適用されるファイルシステムは、UDF(Universal Disk Format)とされる。UDFは、ISO(International Organization for Standarization)9660によるフォーマットを含んでおり、コンピュータ装置に用いられる様々なファイルシステムでアクセス可能なようになっており、FATファイルシステムを包含する。この場合、CPU120は、ファイルシステム51の機能を提供するソフトウェアとして、UDFに対応した構成をさらに持つ必要がある。
記録媒体52は、ファイルシステム51からのアクセス要求に応答して、指定されたアドレスからデータを読み出して、ファイルシステム51に返すことで、アクセス応答を実行する。ファイルシステム51は、記録媒体52からのアクセス応答としてのデータの受け取りを行い、この受け取ったデータをアプリケーション50に受け渡すようにされる。アプリケーション50は、受け取ったデータファイルについて、例えばユーザによる操作入力などに応じたアプリケーションレベルでの所要の処理を実行する。
また、FATファイルシステムは、ファイルをツリー型のディレクトリ構造により管理し、また、ファイルをクラスタ単位の集合として管理するようにされている。このようなファイル管理、データ管理は、周知のようにしてディレクトリエントリおよびFATとしてのテーブル情報(管理情報)を備えることにより実現される。ディレクトリエントリは、記録媒体52上におけるファイルやディレクトリ、サブディレクトリの所在をクラスタレベルで示す情報であり、FATは、ディレクトリおよびファイルをなす、クラスタレベルでのリンクを示す情報である。
図4は、ハードディスク127に記録されるファイルの一例の管理構造を示す。ファイルは、ディレクトリ構造により階層的に管理される。ハードディスク127上には、インデックスファイルディレクトリおよびコンテンツファイルディレクトリの2のディレクトリが、少なくとも形成される。コンテンツファイルディレクトリの配下には、コンテンツファイルFctが格納される。インデックスファイルディレクトリの配下には、インデックスファイルFindexが格納される。
インデックスファイルFindexは、FATとは別の方法でコンテンツファイルFctを管理する管理情報が格納される。インデックスファイルFindexは、この場合は静止画や動画などによるコンテンツに特化して、その管理を効率的に行うための管理情報が格納される。このように、FATファイルシステムとは別に、コンテンツファイルFctに特化した専用の管理情報を用いた管理を行うことで、近年において記録媒体の大記憶容量化に伴い記録可能なコンテンツの数が増えたことや、ファイルシステムが持つコンテンツ関連情報(例えばファイル名や更新日時の情報など)以外にもさらに多くの関連情報を効率的に管理するなどの要請に対応可能とされる。
例えば、動画再生時には、各コンテンツファイルをそれぞれ代表するサムネイル画像を用いたインデックス表示を行う場合がある。このような場合、専用の管理情報を用いることで、インデックス表示に対応させて、予め各コンテンツファイルに対応するサムネイル画像を埋め込むようにすることが考えられる。すなわち、このようにサムネイル画像を管理情報側に格納することで、インデックス表示を効率的に行うことが可能とされる。
また、このようにコンテンツファイル管理に特化した管理情報を別途用いることで、例えばファイルの作成日時順などの所定の区分けでコンテンツファイルディレクトリ配下にディレクトリを作成し、対応するコンテンツファイルを当該ディレクトリに格納するような管理も可能となる。このように専用の管理情報を用いた管理を別途行うことで、汎用のファイルシステムにはなかった管理形態を実現することができる。
1−4.発明の各実施形態に適用可能なファイル管理形態について
次に、この発明の各実施形態に適用可能な一例のファイル管理形態について説明する。図5は、この発明の各実施形態に適用可能な、専用の管理情報としてのインデックスファイルFindexを用いた一例のファイル管理形態を示す。図4を用いて説明したように、インデックスファイルディレクトリ配下には、インデックスファイルFindexが格納される。このインデックスファイルFindexは、図示されるように、管理ファイルスロットSmを複数格納する。各管理ファイルスロットSmは、ファイル名部60、ファイル更新日時部61、エントリID部62、エントリ更新日時部63、コンテンツID部64、コンテンツ更新日時部65、ファイルパス部66などから成る。なお、以下では各管理ファイルスロットSmに格納されるデータのことをエントリデータと称する。
図5において、ファイル名部60は、その管理ファイルスロットSmに対応付けられるコンテンツファイルFctのファイル名の情報が格納される。またファイル更新日時部61は、その管理ファイルスロットSmに対応付けられるコンテンツファイルFct自体を作成および/または更新した日時を示す情報が格納される。
エントリID部62は、その管理ファイルスロットSmへのエントリデータを一意に識別するための識別情報(エントリIDと呼ぶ)が格納される。エントリIDは、新たなコンテンツファイルFctの生成に応じて新たなエントリデータが管理ファイルスロットSmにエントリされる毎に付される。エントリ更新日時部63は、その管理ファイルスロットSmへのエントリデータがエントリされた日時または更新された日時を示す情報が格納される。このエントリ更新日時部63に格納される情報は、コンテンツファイルFctの内容が更新されたとしても変更の有無に関わらず、エントリデータの更新に応じて変更される。エントリ更新日時部63に格納される情報が更新される例としては、例えばコンテンツファイルFctに対応付けられるべきメタデータ(図示しない)が更新された場合などが挙げられる。
コンテンツID部64は、その管理ファイルスロットSmに対応付けられた、換言すれば、エントリIDに対応付けられたコンテンツファイルFctを一意に識別するように割り振られたコンテンツIDが格納される。このコンテンツIDは、例えば当該コンテンツIDが対応するコンテンツファイルFctの所在を示すファイルパスの情報とファイル生成日時とを組み合わせて生成することができる。このコンテンツIDがこの発明でいうファイル識別子に相当する。
コンテンツ更新日時部65は、コンテンツファイルFctを作成および/または更新した日時を示す情報が格納される。このコンテンツ更新日時部65に格納される情報は、対応するコンテンツファイルFctの複製または移動で変化しない。一方、上述のファイル更新日時部61に格納される情報は、コンテンツファイルFctを複製または移動した場合に更新される点で、コンテンツ更新日時部65に格納される情報と異なる。
ファイルパス部66は、その管理ファイルスロットSmと対応付けられるコンテンツファイルFctへのパスの情報が格納される。すなわち、この場合はFATファイルシステム管理下におけるコンテンツファイルFctの所在を示す情報が格納される。
ここで、インデックスファイルFindexにおける管理ファイルスロットSmに対し、ファイルシステム51によるハードディスク127上におけるコンテンツファイルFctの生成に応じて、新たなエントリデータが追加される。追加されたエントリデータにおいては、ファイルパス66部に対して、生成されたコンテンツファイルFctのFATファイルシステム管理下での所在を示す情報が格納される。これにより、当該管理ファイルスロットSmと、コンテンツファイルディレクトリ配下にて生成されたコンテンツファイルFctとの対応付けが行われる。また、この場合、図5において破線矢印により示すように、コンテンツID部64に格納されるコンテンツIDによっても、コンテンツファイルディレクトリ配下にて生成されたコンテンツファイルFctを特定することができる。
2.発明の実施の形態
以下に、この発明の実施の形態としてのデータのバックアップ方法およびバックアップされたデータの復元方法について、実施の第1〜第6の形態の各実施形態により説明する。
この発明の実施の形態としては、上述したように、ビデオカメラ装置100において、ハードディスク127上に記録されたコンテンツファイルFctを、ドライブ装置128に装填された記録媒体130にバックアップしようとするものである。また、記録媒体130にバックアップされたコンテンツファイルFctを、ビデオカメラ装置100においてハードディスク127に書き戻し、ハードディスク127の記録内容をある時点まで復元しようとするものである。
このとき、このようなバックアップとして、単にハードディスク127上に記録されたコンテンツファイルFctをドライブ装置128に装填された記録媒体130にそのまま上書きコピーしたのでは、ハードディスク127に記録される全てのコンテンツファイルFctについてコピー処理を行う必要があり、その分バックアップに要する時間が長くなってしまう。特に、ビデオカメラ装置100の場合には、コンテンツファイルFctは、動画データが主となり、静止画データ等の他のデータがコンテンツファイルFctとして記録される場合と比較して、コピー処理には多くの時間を要することになり、効率が悪い。
そこで、この発明の実施の各形態では、バックアップ処理の際に、ビデオカメラ装置100において、ハードディスク127上の現在のファイル管理状態を示す管理情報と、記録媒体130に保持される過去にバックアップされた際の管理情報とを比較する。そして、比較結果に基づき現在のハードディスク127のファイル格納状態と、当該過去にバックアップされた時点におけるハードディスク127のファイル格納状態との差分情報を検出し、この差分情報に基づいて、コンテンツファイルFctのバックアップを行うようにする。
より具体的には、バックアップ処理の際に、ハードディスク127に記録されているインデックスファイルFindexと、過去のバックアップ処理時に記録媒体130に記録されたインデックスファイルFindexとを比較し、比較結果に基づき差分情報を検出する。
2−1.発明の実施の第1の形態について
先ず、この発明の実施の第1の形態について説明する。この発明の実施の第1の形態では、バックアップ処理として、ハードディスク127上のファイル格納状態と、バックアップ先である記録媒体130上でのファイル格納状態とを同期させる同期処理を行うようにしている。
2−1−1.発明の実施の第1の形態によるバックアップ処理について
図6は、この発明の実施の第1の形態による、ビデオカメラ装置100における一例の同期処理を模式的に示す。この実施の第1の形態では、この同期処理により、ハードディスク127に記録されたコンテンツファイルFctの、ドライブ装置128に装填された記録媒体130へのバックアップを行う。図6Aは、ハードディスク127上に記録されるインデックスファイルFindex、コンテンツファイルFctについて、時間軸tに沿った一例の状態遷移を示す。図6Bは、ドライブ装置128により記録媒体130上に記録されるインデックスファイルFindex、コンテンツファイルFctおよび管理情報30bについて、同様に時間軸tに沿った一例の状態遷移を示す。
図6Aに例示されるように、バックアップ元であるハードディスク127には、初期状態においてコンテンツファイルFctとしてコンテンツファイルFct「A」、コンテンツファイルFct「B」およびコンテンツファイルFct「C」が記録され、インデックスファイルFindexとしては、その格納状態に応じた内容「1」を有するファイルが記録されていたとする。また、ドライブ装置128には、ファイルのバックアップ先として所定の記録媒体130が装填されているものとする。
初期状態後の時点t1において、例えばビデオカメラ装置100の操作部124に対して所定の操作がなされ、ハードディスク127の記録内容と、記録媒体130の記録内容との初回の同期処理が行われる。
時点t1における初回の同期処理の時点では、記録媒体130上には、ハードディスク127上のコンテンツファイルFctが記録媒体130に対してバックアップされていない状態にある。例えばCPU120は、このように記録媒体130上にハードディスク127からバックアップしたコンテンツファイルFctが存在しないことを、記録媒体130上にインデックスファイルFindexがバックアップされているか否かに基づき検出することができる。すなわち、後述もするように、同期処理が行われたのであれば、記録媒体130上にインデックスファイルFindexが保存された状態となるからである。
CPU120は、記録媒体130上にコンテンツファイルFctが存在しないことを検出すると、ハードディスク127上に記録される全てのコンテンツファイルFct(コンテンツファイルFct「A」、「B」および「C」)と、これらハードディスク127上のコンテンツファイルFctを管理する、内容「1」を有するインデックスファイルFindexとをハードディスク127から読み出してドライブ装置128に転送し、記録媒体130に記録する処理を行う。これにより、ハードディスク127におけるコンテンツファイルFctの格納状態と、記録媒体130におけるコンテンツファイルFctの格納状態とが同期される。
次に、CPU120は、記録媒体130に記録されたコンテンツファイルFctを管理するために、管理情報30bの内容を更新する。すなわち、CPU120は、管理情報30bの内容を、記録媒体130上にこれらのコンテンツファイルFct「A」、「B」および「C」が格納されているとして管理するための内容「α」に更新する。管理情報30bによるファイル管理は、例えばコンテンツファイルFctに付されたコンテンツIDにより行うことができる。
続いて、この時点t1における初回の同期処理後となる時点t2において、例えばビデオカメラ装置100側で新たな動画が撮影され、撮影に基づくコンテンツファイルFct「D」が生成され、ハードディスク127に記録されるものとする。このコンテンツファイルFct「D」の生成および記録に応じて、インデックスファイルFindexは、時点t1における内容「1」が、このコンテンツファイルFct「D」が記録された旨の情報が記述された内容「2」に更新される。
この時点t2では、記録媒体130のファイル格納状態は、時点t1に対して変化していない。そのため、図6Aと図6Bとを比較して分かるように、このコンテンツファイルFct「D」の追加により、ハードディスク127上のファイル格納状態と、記録媒体130上のファイル格納状態とが異なるものとなる。
続く時点t3において、例えば操作部124に対する所定の操作により、CPU120に対して同期指示がなされたものとする。時点t3では、記録媒体130上に、バックアップしたコンテンツファイルFctが既に存在している。このような場合、CPU120は、同期指示に応じてハードディスク127上のインデックスファイルFindexと、記録媒体130上のインデックスファイルFindexとを比較し、ハードディスク127と記録媒体130とのコンテンツファイルFctの格納状態の差分を検出する。
この図6の例では、時点t3において、時点t1の同期処理により記録媒体130に保存された、内容「1」を有するインデックスファイルFindexと、時点t2によりコンテンツファイルFct「D」が記録され更新された内容「2」を有するインデックスファイルFindexとが比較される。この比較により、ハードディスク127側に、記録媒体130上に存在しないコンテンツファイルFct「D」が記録されていることが検出され、このハードディスク127側におけるコンテンツファイルFct「D」の存在が、差分情報として検出される。
CPU120は、検出されたこの差分情報に基づき、ハードディスク127上のコンテンツファイルFctのバックアップ処理を行う。この実施の第1の形態では、バックアップ処理は同期処理として行われるので、CPU120は、差分情報が指し示すコンテンツファイルFct「D」をハードディスク127から読み出して、記録媒体130に記録するように制御を行う。CPU120は、このコンテンツファイルFct「D」の記録と共に、ハードディスク127に記録される、内容「2」を有するインデックスファイルFindexを、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録するように制御する。さらに、管理情報30bについては、時点t1における内容「α」から、記録媒体130にこのコンテンツファイルFct「D」が追加されたものとして管理されるようにされた内容「β」に変更し、管理情報30bを更新する。
時点t3の同期処理後、次の時点t4において、図6Aに例示されるように、ハードディスク127からコンテンツファイルFct「B」が削除されたものとする。この削除に応じて、インデックスファイルFindexが、内容「2」からコンテンツファイルFct「B」の削除を反映された内容「3」へと更新される。
この時点t4では、ハードディスク127側のファイル格納状態は、コンテンツファイルFct「A」、「C」および「D」が格納された状態とされ、インデックスファイルFindexがコンテンツファイルの格納状態に対応して内容「3」とされている。一方、バックアップ先の記録媒体130は、コンテンツファイルFctの格納状態がコンテンツファイルFct「A」、「B」、「C」および「D」が格納された状態となっており、対応するインデックスファイルFindexの内容は、前回の同期処理の内容「2」のままとされている。
続く時点t5で、例えば操作部124に対する所定の操作により、CPU120に対して同期指示がなされたものとする。時点t5でも、上述の時点t3と同様に、記録媒体130上に、バックアップしたコンテンツファイルFctが既に存在している。そこで、CPU120は、同期指示に応じてハードディスク127上のインデックスファイルFindexと、記録媒体130上のインデックスファイルFindexとを比較し、ハードディスク127と記録媒体130とのコンテンツファイルFctの格納状態の差分を検出する。
この図6の例では、時点t5において、時点t3の同期処理により記録媒体130に保存された、内容「2」を有するインデックスファイルFindexと、時点t4によりコンテンツファイルFct「B」が削除され更新された内容「3」を有するハードディスク127上のインデックスファイルFindexとが比較される。この比較により、記録媒体130側に、ハードディスク127上には存在しないコンテンツファイルFct「B」が格納されていることが検出され、この記録媒体130側におけるコンテンツファイルFct「B」の存在が、差分情報として検出される。
このように、記録媒体130側に、ハードディスク127側に存在しないコンテンツファイルFct「B」が存在することを示す差分情報に対して、CPU120は、記録媒体130上に存在する、当該差分情報が指し示すコンテンツファイルFct「B」を削除するように制御する。それと共に、ハードディスク127に記録される、内容「3」を有するインデックスファイルFindexを、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録するように制御する。さらに、管理情報30bについては、時点t3における内容「β」から、記録媒体130上のコンテンツファイルFct「B」を削除した旨を反映した内容「γ」に変更し、管理情報30bを更新する。
次の時点t6において、操作部124に対する所定の操作に応じてハードディスク127に記録されているコンテンツファイルFct「C」に修正が加えられ、当該コンテンツファイルFctがコンテンツファイルFct「C’」に更新されたものとする。このコンテンツファイルFctの更新に伴い、ハードディスク127上のインデックスファイルFindexの内容が内容「3」からコンテンツファイルFctの更新を反映した内容「4」へと変更される。
続く時点t7において、操作部124に対する所定の操作により、CPU120に対して同期指示がなされたものとする。時点t7では、記録媒体130上にバックアップしたコンテンツファイルFctが既に存在している。そこで、CPU120は、同期指示に応じてハードディスク127上のインデックスファイルFindexと、記録媒体130上のインデックスファイルFindexとを比較し、ハードディスク127と記録媒体130とのコンテンツファイルFctの格納状態の差分を検出する。
この図6の例では、時点t7において、時点t5の同期処理により記録媒体130に保存された、内容「3」を有するインデックスファイルFindexと、時点t4によりコンテンツファイルFct「C」が修正されたコンテンツファイルFct「C’」を示す情報を含む内容「4」を有するハードディスク127上のインデックスファイルFindexとが比較される。この比較により、ハードディスク127上のコンテンツファイルFct「C’」が修正されたファイルであることが検出される。なお、コンテンツファイルFctが修正などにより更新されたか否かは、ハードディスク127と記録媒体130との間で、インデックスファイルFindex内の対応する管理ファイルスロットSmにおけるコンテンツ更新日時部65に格納された情報を比較することで、知ることができる。コンテンツファイルFctが修正などにより更新された場合、当該コンテンツファイルFctに対応するコンテンツIDは、変化しない。
このように、ハードディスク127側であるコンテンツファイルFct「C」が更新されたということは、記録媒体130側には存在しないコンテンツファイルFct「C’」がハードディスク127側に存在し、且つ、ハードディスク127側に存在しないコンテンツファイルFct「C」が記録媒体130側に存在するという状態となる。すなわち、この場合の差分情報は、コンテンツファイルFct「C」およびコンテンツファイルFct「C’」の情報を含むことになる。
CPU120は、時点t5の同期処理により記録媒体130に保存された、内容「3」を有するインデックスファイルFindexと、時点t4により修正されたコンテンツファイルFct「C’」を示す情報を含む内容「4」を有するハードディスク127上のインデックスファイルFindexとを比較した結果の差分情報が指し示すコンテンツIDに対応するコンテンツファイルFct(この例ではコンテンツファイルFct「C」)を、記録媒体130上から削除するように制御する。
さらにこの場合、CPU120は、ハードディスク127に格納される、当該差分情報が指し示すコンテンツIDに対応するコンテンツファイルFct「C’」を、記録媒体130に記録するように制御する。それと共に、CPU120は、ハードディスク127上の内容「4」のインデックスファイルFindexを、記録媒体130に記録するように制御する。さらに、管理情報30bについては、時点t5の内容「γ」から、記録媒体130からコンテンツファイルFct「C」を削除し、記録媒体130にコンテンツファイルFct「C’」を格納した旨を反映した内容「δ」に変更し、管理情報30bを更新する。すなわち、内容「δ」の管理情報は、記録媒体130にコンテンツファイルFct「A」、「C’」および「D」が格納されていることを示す内容とされる。
この発明の実施の第1の形態によれば、上述のような処理を行うことで、バックアップ処理毎に、バックアップ元のハードディスク127におけるコンテンツファイルFctの格納状態と、バックアップ先の記録媒体130におけるコンテンツファイルFctの格納状態とを同期させることができる。
このようにして、差分情報に基づきバックアップ処理を行うようにすれば、実際に記録媒体130に記録するのは差分のファイルのみとすることができ、全コンテンツを上書きコピーする場合と比較してバックアップ処理をより高速化することができる。また、記録すべきコンテンツファイルが減ることで、処理負担としても軽減することができる。
また、上述では、バックアップ元における現在のインデックスファイルFindexと、バックアップ先における、前回のバックアップ処理時に保存したインデックスファイルFindexとを比較することで、ハードディスク127のコンテンツファイルFctの格納状態と、記録媒体130のコンテンツファイルFctの格納状態との差分を検出している。このように、バックアップ元とバックアップ先のインデックスファイルFindex同士の内容を比較して差分情報を得るようにしたことで、例えば実際に格納される全てのコンテンツファイルFindexについてそのヘッダ情報(コンテンツIDやコンテンツ更新日時など)を検出し、それらの比較を行って差分情報を得る方法よりも、より高速に差分情報を得ることができ、この点でもバックアップ処理の高速化が図られる。
ここで、この実施の形態では、各コンテンツファイルFctを管理するインデックスファイルFindexにおいて、コンテンツID(ファイル識別子)の他にも、コンテンツ更新日時やエントリ更新日時といった他のファイル関連情報がコンテンツファイルFctに対して対応付けられている。
これに対して、インデックスファイルFindexにおいて、コンテンツファイルFctを識別するためのコンテンツIDのみを対応付けて管理を行うことも考えられる。この場合には、ハードディスク127側と記録媒体130側とで管理情報同士、すなわちインデックスファイルFindex同士を比較することで、ハードディスク127側における、前回のバックアップ処理時からのコンテンツファイルFctの追加および削除について、判別を行うことが可能である。
コンテンツファイルFctの追加および削除以外の差分の判別のバックアップ処理を行うためには、例えばコンテンツファイルFctに対応付けられる、必要な関連情報を別途、取得する処理が必要となり、差分情報の取得に要する時間が増大し、それに伴い、差分情報に基づくバックアップ処理が完了するまでの時間が像出してしまう。
この実施形態においては、インデックスファイルFindexに対し、コンテンツ更新日時など、ファイル識別子以外の他のファイル関連情報もエントリデータとしてエントリされるようにされているので、「コンテンツ更新」や「エントリ更新」などの他の差分タイプについても、管理情報同士を比較するのみで取得することができる。これにより、コンテンツの追加および削除以外の差分タイプを判別する際にも、管理情報同士の比較でそれらの差分タイプを判別することができ、このようなコンテンツの追加および削除以外の差分のタイプに応じたバックアップ処理についても高速化が実現される。
2−1−2.実施の第1の形態および他の実施形態に適用される差分情報の検出方法について
ここで、この実施の第1の形態および後述する実施の他の形態においてなされる、インデックスファイルFindexの差分検出方法について説明する。図7は、差分検出を行うための相違検出用情報リストLDdの一例の構造を示す。この相違検出用情報リストLDdは、図示するようにして相違検出用情報Ddがリストアップされる。1つの相違検出用情報Ddは、インデックスファイルFindexにエントリされた1つのエントリデータ(すなわち1つのコンテンツファイルFct)に対応する。
すなわち、1つの相違検出用情報Ddは、インデックスファイルFindexにエントリされた1つのエントリデータ毎に、管理ファイルスロットSm中のコンテンツID部64、エントリ更新日時部63、コンテンツ更新日時部65、エントリID部62のそれぞれに格納された情報を抽出した情報からなる。相違検出用情報リストLDdは、インデックスファイルFindexにエントリされる全てのエントリデータについて生成した相違検出用情報Ddをリストアップした情報となる。なお、図7に例示される相違検出用情報リストLDdでは、相違検出用情報DdがコンテンツIDの昇順でソートされてリストアップされている。
この図7に例示される相違検出用情報リストLDdは、新たなバックアップ処理を行う際に、CPU120が、バックアップ先の記録媒体130に保存されているインデックスファイルFindexと、ハードディスク127に保持されているインデックスファイルFindexとの双方についてそれぞれ生成する。
実際には、バックアップ先の記録媒体130に保存されているインデックスファイルFindexは、前回のバックアップ処理時に保存されたものとなる。また、実施の第1の形態の場合、バックアップ処理は、同期処理と同義となる。
図8は、CPU120がバックアップ処理時に生成する2つの相違検出用情報リストLDdを対比して示す。なお、図8において、バックアップ先の記録媒体130に保存されているインデックスファイルFindexに基づき生成された相違検出用情報リストLDpを、相違検出用情報リストLDd-psとして示している。また、ハードディスク127に保持されているインデックスファイルFindexに基づき生成された相違検出用情報リストLDpを、相違検出用情報リストLDd-prとして示している。
以下、適宜、バックアップ先の記録媒体130に保存されているインデックスファイルFindexに基づき生成された相違検出用情報リストLDd-psを、前回バックアップ時の相違検出用情報リストLDdと呼び、ハードディスク127に保持されているインデックスファイルFindexに基づき生成された相違検出用情報リストLDd-prを、今回バックアップ時の相違検出用情報リストLDdと呼ぶ。
図8の例では、記録媒体130上のインデックスファイルFindex、すなわち、前回バックアップ時の相違検出用情報リストLDd-psに、コンテンツIDの値が値「4」、値「23」、値「34」、値「35」、値「50」および値「56」となる相違検出用情報Ddがリストアップされている。これは、前回バックアップ時には、ハードディスク127にコンテンツIDの値が値「4」、値「23」、値「34」、値「35」、値「50」および値「56」のコンテンツファイルFctが格納されていたことを示している。
一方、図8において、ハードディスク127上のインデックスファイルFindex、すなわち、今回バックアップ時の相違検出用情報リストLDd-prに、コンテンツIDの値が値「4」、値「23」、値「35」、値「47」、値「50」、値「56」および値「64」となる相違検出用情報Ddがリストアップされている例が示されている。これは、今回バックアップ時には、ハードディスク127にコンテンツIDの値が値「4」、値「23」、値「35」、値「47」、値「50」、値「56」および値「64」のコンテンツファイルFctが格納されていることを示している。
CPU120は、これら相違検出用情報リストLDd-psと相違検出用情報リストLDd-prとを、図8に例示されるように、差分情報生成用情報Rdyとして保持しておく。例えば、CPU120は、操作部124に対する所定の操作によりハードディスク127内に記録されたコンテンツファイルFctをバックアップするような指示がなされると、ハードディスク127に記録されているインデックスファイルFindexと、バックアップ先である記録媒体130上に記録されているインデックスファイルFindexとをそれぞれ読み出し、読み出された情報に基づき差分情報生成用情報Rdyを生成し、RAM121に記憶する。
CPU120は、この差分情報生成用情報Rdyを用いて、実際の差分情報の検出を行う。図9は、この差分情報生成用情報Rdyを用いた差分情報の検出動作について模式的に示す。なお、図9においては、図8に示した相違検出用情報リストLDd-psと相違検出用情報リストLDd-prとによる差分情報生成用情報Rdyが示されている。また、この図9では、相違検出用情報リストLDd-psと相違検出用情報リストLDd-prとにおいて、それぞれ内容が相違している相違検出用情報Dd内の項目を影を付して示す。
差分情報生成用情報Rdyにおいて、相違検出用情報Ddの項目としてコンテンツIDが含まれる。これにより、前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報Ddと、今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報DdとでそれぞれのコンテンツIDを比較することで、ハードディスク127におけるコンテンツの追加およびコンテンツの削除を検出することができる。
すなわち、図9の例では、前回バックアップ時の相違検出用情報リストLDd-psには、コンテンツID=「34」の相違検出用情報Ddが存在し、今回バックアップ時の相違検出用情報リストLDd-prにはこれが存在しない。したがって、ハードディスク127において、コンテンツIDの値が値「34」であるコンテンツファイルFctが削除されたということを検出できる。
また、図9を参照し、例えば今回バックアップ時の相違検出用情報リストLDd-prにはコンテンツID=「64」の相違検出用情報Ddが存在し、前回バックアップ時の相違検出用情報リストLDd-psにはこれが存在しない。したがって、ハードディスク127において、コンテンツIDの値が値「64」であるコンテンツファイルFctが追加されたということを検出できる。
さらに、相違検出用情報Ddの項目としてエントリ更新日時が含まれる。これにより、ハードディスク127に記録されているコンテンツファイルFctのうちエントリが更新されたコンテンツファイルFctを検出することができる。例えば、図9の例では、前回バックアップ時の相違検出用情報リストLDd-psと、今回バックアップ時の相違検出用情報リストLDd-prとにおいて、コンテンツID=「23」である相違検出用情報Ddは、それぞれエントリ更新日時の情報内容が異なっていることが示されている。これにより、このコンテンツID=「23」のコンテンツファイルFctについて、ハードディスク127においてエントリが更新されたことを検出できる。
さらにまた、相違検出用情報Ddの項目としてコンテンツ更新日時の情報が含まれる。これにより、ハードディスク127に記録されたコンテンツファイルFctのうち、更新が行われたコンテンツファイルFctを検出することができる。つまり、図9の例では、前回バックアップ時の相違検出用情報リストLDd-psと、今回バックアップ時の相違検出用情報リストLDd-prとにおけるコンテンツID=「50」である相違検出用情報Ddは、それぞれコンテンツ更新日時の情報内容が異なっていることが示されている。これにより、このコンテンツID=「50」のコンテンツファイルFctがハードディスク127上で更新されたことを検出できる。
また、相違検出用情報Ddの項目としてエントリIDの項目が含まれる。エントリIDの項目を相違検出用情報Ddの項目として含むことで、差分検出の対象としているコンテンツファイルFctがどのコンテンツファイルFctであるかを特定することができる。その意味で、この相違検出用情報DdにおけるエントリIDの情報は、同じく相違検出用情報Ddに設けられたコンテンツIDの項目と同等の役割を果たす。なお、これによれば、バックアップ処理の目的に対しては、相違検出用情報DdにおけるエントリIDの項目は、不要とすることができる。
エントリIDは、例えばこのビデオカメラ装置100におけるアプリケーションや、ハードディスク127から外部にコンテンツファイルFctを転送した際に外部のアプリケーションがエントリデータにアクセスする際に、用いるようにされている場合がある。そのため、相違検出用情報Ddに対して、エントリIDの項目を加えてある。
また、この説明からも理解されるように、相違検出用情報DdにおけるエントリIDは、その相違を検出するために設けられた項目ではない。そのため、図09におけるコンテンツID=「56」のように、相違検出用情報リストLDd-psと相違検出用情報リストLDd-prとでエントリIDが相違する場合にも、これらの相違は検出しないようにされている。
図9において、差分情報生成用情報Rdyを用いた各相違検出用情報Ddの情報内容の比較結果から、差分情報リストLSBが生成される。この差分情報リストLSBは、図9の右側に例示されるように、差分情報SBをリストアップした情報となる。各差分情報SBは、項目「差分タイプ」、項目「前回エントリID」および項目「今回エントリID」の3つの項目が設けられる。
項目「前回エントリID」および項目「今回エントリID」は、差分情報生成用情報Rdyにおける前回バックアップ時の相違検出用情報リストLDd-psと今回バックアップ時の相違検出用情報リストLDd-prとの情報内容についての比較結果から、それぞれ相違があるとされた相違検出用情報リストLDd-psにおける相違検出用情報DdのエントリIDと、相違検出用情報リストLDd-prにおける相違検出用情報DdのエントリIDとが格納される。
項目「差分タイプ」は、差分の種類を示す情報が格納される。この場合の差分タイプとしては、「コンテンツ追加」、「コンテンツ削除」、「コンテンツ更新」、「エントリ更新」の4種類が存在する。
差分情報SBは、例えば以下のようにして生成する。先ず、前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報Ddと今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報Ddとについて、先頭の相違検出用情報Dd同士から順に、それぞれの情報内容を比較していく。
このとき、それぞれの相違検出用情報DdにおけるコンテンツIDが同じであれば、コンテンツの追加、コンテンツの削除は行われていないということがわかる。この場合は、当該コンテンツIDに対応するエントリ更新日時、コンテンツ更新日時について比較を行う。
比較の結果、エントリ更新日時が異なっていれば、差分タイプは「エントリ更新」となる。これに応じて、差分情報リストLSBに対して差分タイプとして「エントリ更新」を示す情報が格納される。それと共に、相違検出用情報リストLDd-ps内の相違検出用情報DdにおけるエントリIDが前回エントリIDとして、相違検出用情報リストLDd-pr内の相違検出用情報DdにおけるエントリIDが今回エントリIDとして、それぞれ差分情報SBにリストアップされる。
また、比較の結果、コンテンツ更新日時が異なっていれば、差分タイプは「コンテンツ更新」となる。これに応じて、差分情報リストLSBに対して差分タイプ「コンテンツ更新」を示す情報が格納される。それと共に、相違検出用情報リストLDd-ps内の相違検出用情報DdにおけるエントリIDが前回エントリIDとして、相違検出用情報リストLDd-pr内の相違検出用情報DdにおけるエントリIDが今回エントリIDとして、それぞれ差分情報SBにリストアップされる
一方、比較の結果、コンテンツIDが異なる場合は、コンテンツ追加およびコンテンツ削除の何れが行われたかを判別する。
例えば、前回バックアップ時の相違検出用情報リストLDd-ps内における相違検出用情報DdのコンテンツIDの値それぞれと、今回バックアップ時の相違検出用情報リストLDd-pr内における相違検出用情報DdのコンテンツIDの値のそれぞれとを比較する。
比較の結果、前回バックアップ時の相違検出用情報リストLDd-ps内にあって、今回バックアップ時の相違検出用情報リストLDd-pr内に無いコンテンツIDの値に対応するコンテンツファイルFctは、前回のバックアップ時から今回のバックアップ時の間にハードディスク127から削除されたと判別できる。一方、今回バックアップ時の相違検出用情報リストLDd-pr内にあって、前回バックアップ時の相違検出用情報リストLDd-ps内に無いコンテンツIDの値に対応するコンテンツファイルFctは、前回のバックアップ時から今回のバックアップ時の間にハードディスク127に追加されたと判別できる。
より具体的には、前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報Ddと今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報Ddとについて、先頭の相違検出用情報Dd同士から順に比較した結果、前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報DdのコンテンツIDの方が値が小さければ、ハードディスク127上に記録されていた、この前回バックアップ時の相違検出用情報DdのコンテンツIDに対応するコンテンツファイルFctが削除されたことがわかる。
したがって、この場合の差分タイプは、「コンテンツ削除」となる。これに応じて、差分情報リストLSBに対して「コンテンツ削除」を示す情報が格納される。それと共に、前回バックアップ時の相違検出用情報リストLDd-psにおける相違検出用情報DdのエントリIDを前回エントリIDとして格納した差分情報SBをリストアップする。差分タイプが「コンテンツ削除」の場合は、今回エントリIDは存在しないことになるので、今回エントリIDの項目には情報が格納されない。
図9の例では、相違検出用情報リストLDd-ps内における第3番目の相違検出用情報DdのコンテンツIDの値が値「34」であるのに対して、相違検出用情報リストLDd-pr内における第3番目の相違検出用情報DdのコンテンツIDの値が値「35」であって、前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報DdのコンテンツIDの方が値が小さい。これにより、相違検出用情報リストLDd-ps内に示される、コンテンツIDの値が「34」に対応するコンテンツファイルFctが削除されたことが分かる。
この「コンテンツ削除」が検出された後の比較処理は、今回バックアップ時の相違検出用情報リストLDd-prにおいて今回比較された相違検出用情報Ddを再度対象とし、前回バックアップ時の相違検出用情報リストLDd-psにおける次のコンテンツIDを有する相違検出用情報Ddとの比較を行うことでなされる。
より具体的な例として、図9を参照し、例えば前回バックアップ時の相違検出用情報リストLDd-psにおけるコンテンツID=「34」である相違検出用情報Ddと、今回バックアップ時の相違検出用情報リストLDd-prにおけるコンテンツID=「35」である相違検出用情報Ddとの比較が行われて「コンテンツ削除」が検出された後は、今回バックアップ時の相違検出用情報リストLDd-prにおけるコンテンツID=「35」である相違検出用情報Ddを再度対象として、前回バックアップ時の相違検出用情報リストLDd-psにおけるコンテンツID=「35」の相違検出用情報Ddとの比較が行われる。このようにすることで、「コンテンツ削除」が検出された以降も、適正に差分タイプの検出を行うことができる。
また、上述とは逆に、前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報Ddと今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報Ddとについて、先頭の相違検出用情報Dd同士から順に比較していった結果、今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報DdのコンテンツIDの方が値が小さければ、ハードディスク127に記録されたコンテンツファイルFctに対して、当該コンテンツIDに対応するコンテンツファイルFctが追加されたことが分かる。
したがって、この場合の差分タイプは、「コンテンツ追加」となる。これに応じて、差分情報リストLSBに対して「コンテンツ追加」を示す情報が格納される。それと共に、今回バックアップ時の相違検出用情報リストLDd-psにおける相違検出用情報DdのエントリIDを今回エントリIDとして格納した差分情報SBをリストアップする。コンテンツ追加の場合は、前回エントリIDは存在しないことになるので、前回エントリIDの項目には情報が格納されない。
この「コンテンツ追加」が検出された後の比較処理については、上述の「コンテンツ削除」の場合とは逆に、今回比較された前回バックアップ時の相違検出用情報リストLDd-psの相違検出用情報Ddを再度対象とし、今回バックアップ時の相違検出用情報リストLDd-prにおける次のコンテンツIDを有する相違検出用情報Ddとの比較を行うことでなされる。
より具体的な例として、図9を参照し、例えば前回バックアップ時の相違検出用情報リストLDd-psにおけるコンテンツID=「50」である相違検出用情報Ddと、今回バックアップ時の相違検出用情報リストLDd-prにおけるコンテンツID=「47」の相違検出用情報Ddとの比較が行われて「コンテンツ追加」が検出された後は、前回バックアップ時の相違検出用情報リストLDd-psにおけるコンテンツID=「50」の相違検出用情報Ddを再度対象として、今回バックアップ時の相違検出用情報リストLDd-prにおけるコンテンツID=「50」の相違検出用情報Ddとの比較が行われる。このようにすることで、「コンテンツ追加」が検出された以降も、適正に差分タイプの検出を行うことができる。
また、コンテンツファイルFctの追加や削除が行われた場合の相違検出用情報リストLDdにおいて、比較対象のない相違検出用情報Ddが存在する場合も有り得る。すなわち、前回バックアップ時の相違検出用情報リストLDd-ps側と今回バックアップ時の相違検出用情報リストLDd-ps側とで、相違検出用情報Ddのリストアップ数が異なる場合には、このように比較対象の無い相違検出用情報Ddが存在するようになる。図9の例では、今回バックアップ時の相違検出用情報リストLDd-prにおけるコンテンツID=「64」である相違検出用情報Ddがこれに相当する。
この場合は、比較対象の無い相違検出用情報Ddが、前回バックアップ時の相違検出用情報リストLDd-ps側と今回バックアップ時の相違検出用情報リストLDd-ps側との何れで存在しているかを判別することで、コンテンツ追加であるかコンテンツ削除であるかを特定することができる。
例えば、上述のようにして、前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報Ddと今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報Ddとについて、先頭の相違検出用情報Dd同士から順に比較した結果、前回バックアップ時の相違検出用情報リストLDd-ps側で先に比較対象の相違検出用情報Ddが無くなれば、それ以降に今回バックアップ時の相違検出用情報リストLDd-pr側に残っている相違検出用情報Ddは、全て追加されたコンテンツファイルFctを表していることになる。したがって、その場合は、これら今回バックアップ時の相違検出用情報リストLDd-pr側に残るそれぞれの相違検出用情報Ddについては、差分情報SBとして差分タイプを「コンテンツ追加」とし、今回エントリIDにそのコンテンツIDを格納した情報を差分情報リストLSBにリストアップする。
逆に、相違検出用情報リストLDd-ps内の相違検出用情報Ddと相違検出用情報リストLDd-pr内の相違検出用情報Ddとの比較の結果、今回バックアップ時の相違検出用情報リストLDd-pr側の相違検出用情報Ddが先に無くなれば、それ以降に前回バックアップ時の相違検出用情報リストLDd-ps側に残っている相違検出用情報Ddは、全て削除されたコンテンツファイルFctを表しているものとなる。したがって、その場合、これら前回バックアップ時の相違検出用情報リストLDd-ps側に残るそれぞれの相違検出用情報Ddについては、差分情報SBとして差分タイプを「コンテンツ削除」とし、前回エントリIDにそのコンテンツIDを格納した情報を差分情報リストLSBにリストアップする。
以上のような動作により、インデックスファイルFindexの突き合わせによる差分情報の検出を行うことができる。そして、上記のような差分情報SBが得られれば、以降はこの差分情報SBの内容に従ってハードディスク127や、バックアップ先の記録媒体130に対するコンテンツファイルFctの追加や削除などの処理を行うことで、同期処理を実現することができる。
つまり、差分タイプが「コンテンツ追加」である差分情報SBについては、その今回エントリIDに格納されるエントリIDの値により特定されるコンテンツファイルFctを、ハードディスク127から読み出し、記録媒体130に記録する。差分タイプが「コンテンツ削除」である差分情報SBについては、その前回エントリIDに格納されるエントリIDにより特定されるコンテンツファイルFctを、記録媒体130上から削除する。
また、差分タイプが「コンテンツ更新」である差分情報SBについては、その前回エントリIDに格納される値により特定されるコンテンツファイルFctがハードディスク127上で修正されるなどして、今回バックアップ時には内容が更新されたコンテンツファイルFctとなっている。そのため、前回エントリIDの値により特定されるコンテンツファイルFctを記録媒体130上から削除し、今回エントリIDの値により特定されるコンテンツファイルFctを、ハードディスク127から記録媒体130に対してコピーする。これにより、バックアップ元であるハードディスク127側と、バックアップ先である記録媒体130との間で、コンテンツファイルFctの格納状態を同期させることができる。
なお、差分タイプが「エントリ更新」となる差分情報SBが得られた場合、第1の実施の形態では、特段の対応動作は行わないものとする。但し、「エントリ更新」は、エントリデータの更新が行われたことを示すもので、具体的には、例えばコンテンツファイルFctに付属するメタデータが更新されたことを示していることになる。したがって、例えば記録媒体130に記録される各コンテンツファイルFctのメタデータの管理を、管理情報30bを用いてハードディスク127側と同様に行うようにしている場合、この「エントリ更新」に応じて、管理情報30bによってそのコンテンツファイルFctと対応付けて管理しているメタデータを、ハードディスク127側のインデックスファイルFindex内のメタデータに基づいて更新する処理を行うように構成してもよい。
2−1−3.実施の第1の形態によるバックアップ処理のより詳細な説明
次に、この実施の第1の形態によるバックアップ処理のより詳細な動作を、図10〜図12のフローチャートを用いて説明する。図10は、実施の第1の形態のバックアップ処理、すなわち、同期処理の全体的な動作を示す一例のフローチャートである。なお、図10の処理に先立って、バックアップ先の記録媒体130がドライブ装置128に装填され、アクセス可能な状態とされているものとする。また、図10に示される各制御および判断処理などは、CPU120により、所定のプログラムに従いなされる。
最初のステップS101で、CPU120は、バックアップ元であるハードディスク127上に記録されたコンテンツファイルFctと、バックアップ先の記録媒体130の記録内容とを同期する同期処理を行う旨の指示を待機する。例えば、CPU120は、操作部124に対して当該同期処理を行うことを指示する所定の操作がなされたか否かを監視する。同期処理を行う旨の指示がなされと判断されたら、処理はステップS102に移行される。
ステップS102では、バックアップ先の記録媒体130上に、バックアップにより作成されたインデックスファイルFindexが存在するか否かが判断される。若し、インデックスファイルFindexが記録媒体130上に存在しないと判断されれば、処理はステップS107に移行される。
ステップS107および続くステップS108において、ハードディスク127上に記録されているコンテンツファイルFctの全てと、インデックスファイルFindexとを記録媒体130に記録する処理がなされる。例えば、CPU120において、アプリケーション50からファイルシステム51に対して、ハードディスク127上に記録されている全てのコンテンツファイルFctおよびインデックスファイルFindexを、記録媒体130に記録するように要求が出される(ステップS107)。ファイルシステム51は、この要求に応じて、ハードディスク127から、記録されている全てのコンテンツファイルFctとインデックスファイルFindexとを読み出し、記録媒体130に記録し保存する(ステップS108)。ステップS108による処理が完了すると、処理はステップS109に移行される。
ステップS109では、記録媒体130上のコンテンツファイルFctの格納状態に応じて、管理情報30bの更新がなされる。この場合には、先のステップS108にて記録媒体130に記録されたコンテンツファイルFctの情報が反映されるように、管理情報30bが更新される。
なお、管理情報30bは、例えばバックアップ先の記録媒体である記録媒体130に記録され、保持される。これに限らず、管理情報30bを一旦RAM121上に作成し、記録媒体130がイジェクトされる際や、ビデオカメラ装置100の電源が切断されるときに記録媒体130に記録するようにしてもよい。
以上のステップS101、ステップS102、ステップS107、ステップS108、ステップS109の順に処理がなされることにより、初回の同期処理時に、バックアップ元であるハードディスク127に記録される全てのコンテンツファイルFctと、当該コンテンツファイルFctの管理状態を示すインデックスファイルFindexとが、バックアップ先である記録媒体130にバックアップされる(図6の時点t1参照)。
一方、上述のステップS102において、記録媒体130上に、既にインデックスファイルFindexが存在すると判断された場合には、処理はステップS103に移行される。ステップS103では、図8を用いて説明した、差分情報生成用情報Rbyを生成する。
例えば、CPU120は、ハードディスク127からインデックスファイルFindexを読み出し、RAM121に一時的に保持する。同様に、CPU120は、記録媒体130からインデックスファイルFindexを読み出し、RAM121に一時的に保持する。CPU120は、ハードディスク127からのインデックスファイルFindexと、記録媒体130からのインデックスファイルFindexとについて、それぞれ所定の項目(例えばコンテンツID、エントリ更新日時、コンテンツ更新日時およびエントリID)を抽出する。そして、抽出された各項目の情報に基づき相違検出用情報Ddを生成し、生成された相違検出用情報Ddをそれぞれリストアップすることで、先の図9にて示したような、今回バックアップ時の相違検出用情報リストLDd-prと、前回バックアップ時の相違検出用情報リストLDd-psとを生成する。これら相違検出用情報リストLDd-prと相違検出用情報リストLDd-psとにより、差分情報生成用情報Rdyが形成される。
なお、上述したように、各相違検出用情報リストLDdの生成にあたっては、相違検出用情報DdをコンテンツIDの値の昇順にソートしてリストアップするようにされる。これにより、図9を用いて説明したような手法による差分タイプの検出を適正に行うことができる。
次のステップS104では、ステップS103で得られた差分情報生成用情報Rdyに基づき、差分情報SBを生成し、生成された差分情報SBをリストアップすることで、差分情報リストLSBを生成する。差分情報リストLSBの生成処理の詳細については、後述する。差分情報リストLSBが生成されると、処理は次のステップS105に移行される。
ステップS105では、差分ファイル群処理を行う。このステップS105では、上述したようにして差分情報SBの差分タイプに応じてコンテンツファイルFctの追加および/または削除を行うことで、バックアップ元であるハードディスク127と、バックアップ先である記録媒体130との間での、コンテンツファイルFctの格納状態を同期させる。このステップS105における差分ファイル群処理の詳細については、後述する。
次のステップS106では、バックアップ元であるハードディスク127上に記録されるインデックスファイルFindexを、バックアップ先である記録媒体130に対して記録する。このように、ハードディスク127に記録されるインデックスファイルFindexを記録媒体130に記録することで、次回の同期処理時における「前回バックアップ時のインデックスファイルFindexが保存されたことになる。
インデックスファイルFindexの保存が終了すると、処理はステップS109に移行され、上述しように、コンテンツファイルFctの格納状態に応じて管理情報30bを更新する。ステップS103〜ステップS106を経てこのステップS109に到達した場合には、上述のステップS105における差分ファイル群処理によって、結果的に、記録媒体130上に記録されているコンテンツファイルFctの情報を反映するように、管理情報30bの情報内容が更新される。
図11は、図10のステップS104として説明した、差分情報SBの一例の生成処理を示すフローチャートである。先ず、ステップS201において、ポインタ値[i]、ポインタ値[j]をリセットし、それぞれ値を「0」とする。
なお、ポインタ値[i]は、前回バックアップ時の相違検出用情報リストLDd-psにリストアップされる相違検出用情報Ddについて、比較対象とする相違検出用情報Ddを指し示すポインタとして用いられる。このポインタ値[i]がインクリメントされる毎に、前回バックアップ時の相違検出用情報リストLDd-ps内において、比較対象とする相違検出用情報Ddが順次シフトされる。同様に、ポインタ値[j]は、今回バックアップ時の相違検出用情報リストLDd-prにリストアップされる相違検出用情報Ddについて、比較対象とする相違検出用情報Ddを指し示すポインタとして用いられる。このポインタ値[j]がインクリメントされる毎に、今回バックアップ時の相違検出用情報リストLDd-pr内において比較対象とする相違検出用情報Ddが順次シフトされる。
ステップS202では、ポインタ値[i]が前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報Ddのリストアップ数と一致したか否かについて判別する。これは、前回バックアップ時の相違検出用情報リストLDd-ps内の全ての相違検出用情報Ddについて比較が完了したか否かについて判別していることに相当する。一致していないと判別されたら、処理はステップS203に移行される。
ステップS203では、ポインタ値[j]が今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報Ddのリストアップ数と一致したか否かについて判別する。これは、今回バックアップ時の相違検出用情報リストLDd-pr内の全ての相違検出用情報Ddについて比較が完了したか否かについて判別していることに相当する。一致してないと判別されたら、処理はステップS204に移行される。
ステップS204では、前回バックアップ時の相違検出用情報リストLDd-ps内におけるポインタ値[i]が指し示す相違検出用情報Ddと、今回バックアップ時の相違検出用情報リストLDd-pr内におけるポインタ値[j]が指し示す相違検出用情報Ddとが等しいか否かが判別される。このS204の判別処理により、ハードディスク127上に記録されているコンテンツファイルFctについて、前回のバックアップ処理から今回のバックアップ処理の間に追加および/または削除が行われたか否かが判別される。ステップS204において、両者のコンテンツIDが等しいと判別された場合は、処理はステップS205に移行する。
なお、以下では、繁雑さを避けるために、「前回バックアップ時の相違検出用情報リストLDd-ps内におけるポインタ値[i]が指し示す相違検出用情報Dd」を「前回情報[i]」と呼び、「今回バックアップ時の相違検出用情報リストLDd-pr内におけるポインタ値[j]が指し示す相違検出用情報Dd」を「今回情報[j]」と呼ぶ。また、「前回バックアップ時の相違検出用情報リストLDd-ps内の相違検出用情報Ddのリストアップ数」を「前回リストアップ数」と呼び、「今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報Ddのリストアップ数」を「今回リストアップ数」と呼ぶ。
ステップS205では、前回情報[i]と今回情報[j]のエントリ更新日時が等しいか否かが判別される。すなわち、これによってエントリの更新が行われたか否かについて判別が行われる。エントリ更新日時が等しいと判別された場合は、処理はステップS206に移行される。
ステップS206では、前回情報[i]と今回情報[j]のコンテンツ更新日時が等しいか否かが判別される。つまり、これによってコンテンツの更新が行われたか否かについて判別が行われる。コンテンツ更新日時が等しいと判別されれば、コンテンツの更新が行われていないと判断することができ、処理はステップS214に移行される。
ステップS214では、ポインタ値[i]、ポインタ値[j]をそれぞれ1だけインクリメントした後、処理がステップS202に戻される。すなわち、ステップS206でコンテンツ更新が行われていないと判断された場合には、ハードディスク127上に記録されたコンテンツファイルFctは、前回のバックアップ処理時から今回のバックアップ処理時の間に、削除および/または追加、エントリの更新、ならびに、コンテンツの更新の何れも行われていないと判断できる。そこで、ステップS214でポインタ値[i]、ポインタ値[j]をそれぞれインクリメントして前回バックアップ時の相違検出用情報リストLDd-ps側、今回バックアップ時の相違検出用情報リストLDd-pr側で共に比較対象の相違検出用情報Ddをシフトさせ、さらに処理をステップS202に戻すことで、これらの相違検出用情報Ddについてそれぞれの項目(コンテンツID、エントリ更新日時、コンテンツ更新日時)についての比較を行うようにされる。
上述のように、比較対象のコンテンツファイルFctについて差分が無いとされた場合、ステップS202、ステップS203、ステップS204、ステップS205およびステップS206の処理が循環的に繰り返される。このことから、ポインタ値[i]、jによりそれぞれ比較対象とされたコンテンツファイルFctについて差分がない場合には、差分情報リストLSBへの差分情報SBの追加が行われないことが分かる。
一方、上述のステップS204で、前回情報[i]と今回情報[i]のコンテンツIDが等しいと判別された場合、処理はステップS207に移行される。ステップS207では、前回情報[i]より今回情報[j]の方がコンテンツIDが大きいか否かについて判別される。すなわち、このステップS207において、差分タイプが「コンテンツ追加」であるのか「コンテンツ削除」であるかの判別が行われる。若し、前回情報[i]よりも今回情報[j]の方がコンテンツIDの値が大きいと判別されれば、図9を用いて既に説明したように差分タイプは「コンテンツ削除」であって、処理はステップS208に移行される。
ステップS208では、差分タイプを「コンテンツ削除」とした差分情報を差分情報リストSBに追加する処理がなされる。差分タイプが「コンテンツ削除」の場合は、差分情報リストLSBにおいて今回エントリIDが存在しないので、ここでは差分タイプとして「コンテンツ削除」を示す情報を格納すると共に、前回エントリIDに前回情報[i]のエントリIDを格納した差分情報SBを、差分情報リストLSBに追加するようにされる。
次のS209で、ポインタ値[i]のみを1だけインクリメントし、処理はステップS202に戻される。
このステップS209の処理により、図9を用いて説明した、前回バックアップ時の相違検出用情報リストLDd-ps内におけるコンテンツID=「34」の相違検出用情報Ddと、今回バックアップ時の相違検出用情報リストLDd-pr内におけるコンテンツID=「35」の相違検出用情報Ddとの比較が行われて「コンテンツ削除」が検出された後に、今回バックアップ時の相違検出用情報リストLDd-pr内におけるコンテンツID=「35」の相違検出用情報Ddを再度対象として、前回バックアップ時の相違検出用情報リストLDd-ps内におけるコンテンツID=35の相違検出用情報Ddとの比較を行うようにし、「コンテンツ削除」が検出された以降の差分タイプの検出を適正に実行可能とする。
一方、上述したステップS207において、今回情報[j]よりも前回情報[i]の方がコンテンツIDが大きいと判別された場合は、差分タイプが「コンテンツ追加」と判断され、処理はステップS210に移行される。
ステップS210では、差分タイプを「コンテンツ追加」とした差分情報SBを差分情報リストLSBに追加する処理がなされる。差分タイプが「コンテンツ追加」の場合は、前回エントリIDは存在しないので、ここでは差分タイプとして「コンテンツ追加」を示す情報を格納すると共に、今回エントリIDに今回情報[j]のエントリIDを格納した差分情報SBを、差分情報リストLSBに追加するようにされる。
ステップS210の処理が終了すると、次のステップS211で、ポインタ値[j]のみを1だけインクリメントし、処理がステップS202に戻される。
このステップS211の処理により、図9を用いて説明した、前回バックアップ時の相違検出用情報リストLDd-ps内におけるコンテンツID=「50」の相違検出用情報Ddと、今回バックアップ時の相違検出用情報リストLDd-pr内におけるコンテンツID=「47」の相違検出用情報Ddとの比較により「コンテンツ追加」が検出された後の、前回バックアップ時の相違検出用情報リストLDd-ps内におけるコンテンツID=「50」の相違検出用情報Ddを再度対象として行う、今回バックアップ時の相違検出用情報リストLDd-pr内におけるコンテンツID=「50」の相違検出用情報Ddとの比較処理が可能となる。これにより、「コンテンツ追加」が検出された以降の差分タイプの検出を適正に実行可能とする。
一方、上述のステップS205において、エントリ更新日時が等しくないと判別された場合は、差分タイプが「エントリ更新」と判断され、処理はステップS212に移行される。
差分タイプが「エントリ更新」のときは、図9を用いて説明したように、差分情報リストLSBにおいて、前回エントリIDおよび今回エントリIDが共に存在する。したがって、このステップS212では、差分タイプとして「エントリ更新」を示す情報を格納すると共に、前回エントリIDには前回情報[i]のエントリIDを、今回エントリIDには今回情報[j]のエントリIDをそれぞれ格納した差分情報SBが差分情報リストLSBに追加される。
ステップS212の処理が終了すると、処理は上述したステップS214に移行され、ポインタ値[i]およびポインタ値[j]をそれぞれ1だけインクリメントした後、処理がステップS202に戻される。すなわち、これによって次の比較対象の相違検出用情報Ddについての比較が行われることになる。
一方、上述のステップS206において、コンテンツ更新日時が等しくないと判別された場合は、差分タイプが「コンテンツ更新」とされ、処理はステップS213に移行される。
差分タイプが「コンテンツ更新」のときは、図9を用いて説明したように、差分情報リストLSBにおいて、前回エントリIDおよび今回エントリIDが共に存在する。したがって、このステップS213では、差分タイプとして「コンテンツ更新」を示す情報を格納すると共に、前回エントリIDには前回情報[i]のエントリIDを、今回エントリIDには今回情報[j]のエントリIDをそれぞれ格納した差分情報SBが差分情報リストLSBに追加される。
そして、処理は上述したステップS214に移行され、ポインタ値[i]およびポインタ値[j]をそれぞれ1だけインクリメントした後、処理がステップS202に戻される。
ここで、図9を用いて説明したように、コンテンツの追加や削除が行われた場合には、前回バックアップ時の相違検出用情報リストLDd-psと、今回バックアップ時の相違検出用情報リストLDd-prとのうちの何れかで、先に比較対象の相違検出用情報Ddが無くなる場合がある。このような場合に対応した検出動作として、上述したステップS202およびステップS203による判別処理と、後述するステップS215による判別処理が設けられる。
ステップS202において、ポインタ値[i]が前回リストアップ数と一致したと判別された場合には、処理はステップS215に移行する。ステップS215では、ポインタ値[j]が今回のリストアップ数と一致したか否かについて判別処理を行う。すなわち、ステップS215は、ポインタ値[j]が、今回バックアップ時の相違検出用情報リストLDd-pr内の相違検出用情報Ddのリストアップ数と一致したか否かについて判別する。
これらステップS202およびS215の判別処理により、前回バックアップ時の相違検出用情報リストLDd-ps内における比較対象の相違検出用情報Ddが無くなったときに、今回バックアップ時の相違検出用情報リストLDd-pr内に未だ比較対象の相違検出用情報Ddが残っているか否かが判別されることになる。
図9を用いて説明したように、前回バックアップ時の相違検出用情報リストLDd-ps内に比較対象の相違検出用情報Ddが無くなって、今回バックアップ時の相違検出用情報リストLDd-pr内に比較対象の相違検出用情報Ddが残っているときは、今回バックアップ時の相違検出用情報リストLDd-pr内に残っている相違検出用情報DdのコンテンツIDが示すコンテンツは、全て追加されたコンテンツであることになる。
したがって、ステップS215においてポインタ値[j]が今回のリストアップ数と一致していないと判別されれば、処理はステップS216に移行され、上述のステップS210と同様にして、差分情報タイプを「コンテンツ追加」とした差分情報SBを差分情報リストLSBに追加する。そして、処理はステップS217に移行され、ポインタ値[j]のみを1だけインクリメントし、処理がステップS202に戻される。
このような、ステップS202、ステップS215、ステップS216、ステップS217およびステップS202の循環処理により、前回バックアップ時の相違検出用情報リストLDd-ps内において比較対象の相違検出用情報Ddが無くなった場合に、今回バックアップ時の相違検出用情報リストLDd-pr内に残っている相違検出用情報Ddについて全て「コンテンツ追加」が検出され、それに応じた差分情報SBが差分情報リストLSBに追加されることになる。
一方、上述したステップS203において、ポインタ値[j]が今回のリストアップ数と一致したと判別された場合には、上述とは逆に、今回バックアップ時の相違検出用情報リストLDd-pr内の比較対象の相違検出用情報Ddが無くなり、前回バックアップ時の相違検出用情報リストLDd-ps内に比較対象の相違検出用情報Ddが未だ残っている状態となる。図9を用いて説明したように、この場合、前回バックアップ時の相違検出用情報リストLDd-ps内に残っている相違検出用情報のコンテンツIDにより示されるコンテンツは、全て削除されたものとなる。
したがって、ステップS203において、ポインタ値[j]が今回のリストアップ数と一致したと判別された場合には、処理はステップS218に移行され、上述したステップS208と同様に、差分タイプを「コンテンツ削除」とした差分情報SBを差分情報リストLSBに追加する。そして、処理はステップS219に移行され、ポインタ値[i]のみをインクリメントし、処理はステップS202に戻される。
このような、ステップS203、ステップS218、ステップS219、ステップS202およびステップS203の循環処理により、今回バックアップ時の相違検出用情報リストLDd-pr内で比較対象の相違検出用情報Ddが無くなった場合において、前回バックアップ時の相違検出用情報リストLDd-ps内に残っている相違検出用情報Ddについて、全て「コンテンツ削除」が検出され、それに応じた差分情報SBが差分情報リストLSBに追加されることになる。
そして、前回バックアップ時の相違検出用情報リストLDd-psと、今回バックアップ時の相違検出用情報リストLDd-prとの双方の相違検出用情報Ddについて全て差分情報SBの検出が行われた場合は、上述のステップS215において、ポインタ値[j]が今回のリストアップ数と一致していると判別される。これにより、図11に例示されるフローチャートによる一連の処理が終了され、処理が上述した図10のステップS105に移行される。
図12は、上述した図10のステップS105における差分ファイル群処理をより詳細に示す一例のフローチャートである。先ず、ステップS301においてポインタ値[k]をリセットし、値「0」とする。このポインタ値[k]は、差分情報リストLSB内にリストアップされた差分情報SBのうち、対象とする差分情報SBを指し示すためのポインタとしての役割を果たす。
次のステップS302は、ポインタ値[k]が、差分情報リストLSBにおける差分情報SBのリストアップ数と一致したか否かについて判別する。若し、一致していないと判別された場合は、処理はステップS303に移行され、差分情報リストLSB中の[k]番目の差分情報SBを取得する。すなわち、差分情報リストLSB内のポインタ値[k]により示される差分情報SBを取得する。
次のステップS304は、取得された差分情報SBに基づき差分タイプが判別される。すなわち、ステップS304では、取得された差分情報SBに基づき、差分タイプが「コンテンツ追加」、「コンテンツ削除」、「コンテンツ更新」および「エントリ更新」のうち何れであるかを判別し、判別結果に応じて処理を分岐させる。
ステップS304で、差分タイプが「コンテンツ追加」であると判別されれば、処理はステップS305に移行される。ステップS305および次のステップS306により、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctが記録媒体130に記録される。
例えば、ステップS305で、CPU120からファイルシステム51に対して、ハードディスク127から当該コンテンツファイルFctを読み出し、記録媒体130に記録するように要求がなされる。この要求に応じて、ステップS306で、当該コンテンツファイルFctがハードディスク127から読み出され、記録媒体130に記録される。「今回エントリID」のエントリに相当するコンテンツファイルFctの記録媒体130への記録が完了すると、処理はステップS311に移行される。
ステップS311では、ポインタ値[k]が1だけインクリメントされ、処理はステップS302に戻される。
ステップS304において、差分タイプが「コンテンツ更新」であると判別されれば、処理はステップS307に移行される。ステップS307では、「前回エントリID」のエントリに相当するコンテンツファイルFctを、記録媒体130上から削除する。そして、処理はステップS308に移行され、ステップS308および次のステップS309により、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctが記録媒体130に記録される。
例えば、ステップS308で、CPU120からファイルシステム51に対して、ハードディスク127から当該コンテンツファイルFctを読み出し、記録媒体130に記録するように要求がなされる。この要求に応じて、ステップS309で、当該コンテンツファイルFctがハードディスク127から読み出され、記録媒体130に記録される。「今回エントリID」のエントリに相当するコンテンツファイルFctの記録媒体130への記録が完了すると、処理はステップS311に移行され、ポインタ値[k]が1だけインクリメントされ、処理がステップS302に戻される。
ステップS304において、差分タイプが「コンテンツ削除」であると判別されれば、処理はステップS310に移行される。ステップS310では、記録媒体130に記録されている、「前回エントリID」のエントリに相当するコンテンツファイルを削除する。当該コンテンツファイルFctが記録媒体130上から削除されると、処理はステップS311に戻され、ポインタ値[k]が1だけインクリメントされ、処理がステップS302に戻される。
なお、この実施の第1の形態においては、ステップS304で差分タイプが「エントリ更新」であると判別された場合、処理はそのままステップS311に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS302に戻される。すなわち、差分タイプが「エントリ更新」の場合は、特段の処理を実行せずに次の差分情報SBに基づく処理を実行するようにされる。
但し、上述したように、例えば記録媒体130に記録される各コンテンツファイルFctのメタデータの管理を、管理情報30bを用いてハードディスク127側と同様に行うようにしている場合、この「エントリ更新」に応じて、管理情報30bによってそのコンテンツファイルFctと対応付けて管理しているメタデータを、ハードディスク127側のインデックスファイルFindex内のメタデータに基づいて更新する処理を行うように構成してもよい。
具体的には、管理情報30bによって「前回エントリID」により特定されるコンテンツファイルFctと対応付けられて管理されるメタデータの内容が、新たにハードディスク127から読み出され記録媒体130に記録されたインデックスファイルFindex内における「今回エントリID」が格納されたエントリデータ内(管理ファイルスロットSm内)のメタデータの内容となるように更新処理を行う。
また、上述したステップS302において、ポインタ値[k]がリストアップ数と一致したと判別されれば、この図12のフローチャートによる一連の処理が終了され、処理は上述した図10におけるステップS106に移行される。
なお、上述の図10〜図12のフローチャートを用いて説明した処理によれば、一度、差分情報SBをリスト化して差分情報リストLSBを生成した後に、逐次、差分情報SBに基づくコンテンツファイルFctの追加や削除といった処理を行うように説明したが、これはこの方法に限定されるものではない。例えば、差分情報SBを1つ生成する毎に、当該差分情報SBに基づくコンテンツファイルFctの処理を行うように構成してもよい。
また、上述では、図10のステップS106において、次回のバックアップ処理用にインデックスファイルFindexを保存する際に、上述のようにバックアップ先である記録媒体130に当該ファイルを保存するように説明しているが、これはこの例に限定されない。当該インデックスファイルFindexは、例えばRAM121に一時的に保持するようにできる。RAM121に保持されたインデックスファイルFindexは、記録媒体130がこのビデオカメラ装置100からイジェクトされる際や、当該ビデオカメラ装置100の電源がOFFとされるときなどに、記録媒体130に書き込まれるようにすることが考えられる。これに限らず、当該インデックスファイルFindexを、不揮発性メモリ129に記憶させるようにもできる。この場合、不揮発性メモリ129に記憶されたインデックスファイルFindexと、記録媒体130との対応関係をさらに不揮発性メモリ129などに記憶しておくとよい。
2−2.発明の実施の第2の形態について
次に、この発明の実施の第2の形態について説明する。この実施の第2の形態は、上述の実施の第1の形態による同期処理によるパックアップ処理に加えて、バックアップされたコンテンツファイルFctをバックアップ元に復元するようにしたものである。
なお、ここでいう復元処理とは、バックアップ元であるハードディスク127におけるコンテンツファイルFctの格納状態を、バックアップ先である記録媒体130にバックアップされた過去のコンテンツファイルFctの格納状態に戻す処理をいう。特に、この実施の第2の形態においては、復元処理により、前回の同期状態の復元、すなわち、直前のバックアップ時におけるコンテンツファイルFctの格納状態に戻す処理を行うものとする。
ここで、このような復元処理を、単に記録媒体130上にバックアップされたコンテンツファイルFct群を、ハードディスク127にそのまま上書きコピーしたのでは、記録媒体130上に記録される全てのコンテンツファイルFctについてコピー処理を行う必要があり、その分多くの時間を要することになってしまう。そこで、この実施の第2の形態においては、バックアップ処理の場合と同様にして、ハードディスク127側と記録媒体130側とのコンテンツファイルFctの格納状態の差分を検出した結果に基づき、復元処理を行うようにしている。
2−2−1.実施の第2の形態によるバックアップ処理および復元処理について
図13は、この発明の実施の第2の形態による一例の同期処理および復元処理を模式的に示す。図13Aは、バックアップ元となるハードディスク127に記録されたコンテンツファイルFctについて、時間軸tに沿った一例の状態遷移を示す。図13Bは、ドライブ装置128により記録媒体130上に記録されるインデックスファイルFindex、コンテンツファイルFctおよび管理情報30bについて、同様に時間軸tに沿った一例の状態遷移を示す。
図13Aに例示されるように、バックアップ元であるハードディスク127には、初期状態においてコンテンツファイルFctとしてコンテンツファイルFct「A」、「B」および「C」が記録され、インデックスファイルFindexとしては、その格納状態に応じた内容「1」を有するファイルが記録されていたとする。また、ドライブ装置128には、ファイルのバックアップ先として所定の記録媒体130が装填されているものとする。
初期状態後の時点t1において、例えばビデオカメラ装置100の操作部124に対して所定の操作がなされ、ハードディスク127の記録内容と、記録媒体130の記録内容との初回の同期処理が行われる。時点t1における初回の同期処理については、上述の実施の第1の形態で説明した内容と同一であるので、ここでの詳細な説明を省略する。
時点t1における初回の同期処理後、時点t2において、コンテンツファイルFct「D」が新たにハードディスク127に対して追加され、さらに時点t3でにおいて、コンテンツファイルFct「B」がハードディスク127上から削除され、次いで時点t4では、コンテンツファイルFct「C」の内容が修正されてコンテンツファイルFct「C’」に更新されたものとする。したがって、この時点t4におけるハードディスク127は、コンテンツファイルFct「A」、「C’」および「D」が格納された状態となる。それに伴い、インデックスファイルFindexの内容が、時点t1、時点t2および時点t3の遷移に応じて、内容「2」、内容「3」および内容「4」と遷移している。
ここで、上述の時点t4後の時点t5において、例えばビデオカメラ装置100の操作部124に対する所定の操作により、CPU120に対して、記録媒体130にバックアップされた記録内容に基づく復元指示がなされたものとする。
CPU120は、この復元指示に応じて、上述した同期処理の場合と同様にして、バックアップ元であるハードディスク127に記録されるインデックスファイルFindexと、バックアップ先である記録媒体130に記録されるインデックスファイルFindexとに基づき、前回バックアップ時の相違検出用情報リストLDd-psと今回バックアップ時の相違検出用情報リストLDd-psとを生成する。そして、前回バックアップ時の相違検出用情報リストLDd-ps側と今回バックアップ時の相違検出用情報リストLDd-ps側とで相違検出用情報Ddの比較を行い、比較結果に基づき、差分情報リストLSBを生成する。生成された差分情報リストLSBは、例えばRAM121に一時的に保持される。
この実施の第2の形態においても、差分情報リストLSB内の各差分情報SBに基づいて差分ファイル群の処理を行う。この実施の第2の形態では、復元処理として、同期処理のときとは逆に、記録媒体130側のコンテンツファイルFctの格納状態をハードディスク127側に反映させることになるので、差分情報SBに基づく処理は、上述の実施の第1の形態による同期処理時とは逆の処理を行うようにされる。
図13を参照しながら、より具体的に説明する。図13における時点t5で復元処理が行われる直前では、ハードディスク127は、コンテンツファイルFct「A」、「C’」および「D」が格納された状態となっている。これに対し、記録媒体130上のコンテンツファイルFctの格納状態は、時点t1における同期処理時のまま変化しておらず、記録媒体130上には、コンテンツファイルFct「A」、「B」および「C」が記録されている。
これによると、コンテンツファイルFct「B」については差分タイプが「コンテンツ削除」、コンテンツファイルFct「C」および「C’」については差分タイプが「コンテンツ更新」、コンテンツファイルFct「D」については差分タイプが「コンテンツ追加」を示す各差分情報SBが、差分情報リストLSBにリストアップされることになる。
この場合の差分ファイル群処理は、以下のようになされる。先ず、差分タイプが「コンテンツ削除」であるコンテンツファイルFctについては、当該コンテンツファイルFctを記録媒体130から読み出してハードディスク127に記録させる。図13の例では、差分タイプが「コンテンツ削除」とされたコンテンツファイルFct「B」を、記録媒体130から読み出しハードディスク127に記録することで、ハードディスク127側において削除されたコンテンツファイルFct「B」を復元することができる。
差分タイプが「コンテンツ更新」であるコンテンツファイルFctについては、「今回エントリID」により特定されるコンテンツファイルFctをハードディスク127から削除すると共に、記録媒体130上に記録され「前回エントリID」により特定されるコンテンツファイルFctを、記録媒体130から読み出してハードディスク127に記録させる。
図13の例では、差分タイプが「コンテンツ更新」とされたコンテンツファイルFct「C」およびコンテンツファイルFct「C’」について、ハードディスク127側にてコンテンツファイルFct「C’」が削除され、記録媒体130上に記録されるコンテンツファイルFct「C」が記録媒体130から読み出されてハードディスク127に記録される。これにより、ハードディスク127側において時点t1で保持されていたコンテンツファイルFct「C」を復元することができる。
差分タイプが「コンテンツ追加」であるコンテンツファイルFctについては、当該そのコンテンツファイルFctをハードディスク127から削除する。図13の例では、差分タイプが「コンテンツ追加」とされたコンテンツファイルFct「D」について、これをハードディスク127から削除することで、ハードディスク127上にこのコンテンツファイルFct「D」が存在しなかった時点t1の同期処理時の状態を復元することができる。
上述のようにして、コンテンツファイル群の処理が行われると、ハードディスク127側のインデックスファイルFindexを、前回の同期処理時に記録媒体130にバックアップしたインデックスファイルFindexに置き換える処理がなされる。すなわち、図13の時点t5に示すように、ハードディスク127側のインデックスファイルFindexは、前回同期時である時点t1にハードディスク127から読み出されて記録媒体130に記録された、内容「1」のインデックスファイルFindexに置き換えられる。
これにより、復元されたコンテンツファイルFctの格納状態に合致した情報内容によるインデックスファイルFindexを、ハードディスク127に記録させることができ、復元されたコンテンツファイル群がハードディスク127上に記録されたものとして適正に管理することができるようになる。
なお、図13の例では、時点t1の同期処理後が行われてから時点t5で復元処理が行われるまでの間、記録媒体130上のコンテンツファイルFctの格納状態が変化していないので、管理情報30bの情報内容も、内容「α」から変化しない。
上述したようにして、この発明の実施の第2の形態では、差分情報SBに基づく差分ファイル群処理により復元処理を行うようにしている。これにより、実際に転送を行うのは差分のコンテンツファイルFctのみとすることができ、バックアップ先の記録媒体130上に格納される全てのコンテンツファイルFctをハードディスク127に対して上書きコピーして復元処理を行う場合と比較して、復元処理をより高速化することができる。また、このように転送すべきコンテンツファイルFctが減ることで、処理負担についても軽減することができる。
さらに、この実施の第2の形態においても、バックアップ元における現在のインデックスファイルFindexと、バックアップ先における、前回のバックアップ処理時に保存したインデックスファイルFindexとを比較することで、ハードディスク127のコンテンツファイルFctの格納状態と、記録媒体130のコンテンツファイルFctの格納状態との差分を検出している。このように、バックアップ元とバックアップ先のインデックスファイルFindex同士の内容を比較して差分情報を得るようにしたことで、例えば実際に格納される全てのコンテンツファイルFindexについてそのヘッダ情報(コンテンツIDやコンテンツ更新日時など)を検出し、それらの比較を行って差分情報を得る方法よりも、より高速に差分情報を得ることができ、この点でも復元処理の高速化が図られるものとなる。
さらにまた、この実施の第2の形態においても、インデックスファイルFindexに対し、コンテンツ更新日時など、ファイル識別子以外の他のファイル関連情報もエントリデータとしてエントリされるようにされているので、「コンテンツ更新」や「エントリ更新」などの他の差分タイプについても、管理情報同士を比較するのみで取得することができる。これにより、コンテンツの追加および削除以外の差分タイプを判別する際にも、管理情報同士の比較でそれらの差分タイプを判別することができ、このようなコンテンツの追加および削除以外の差分のタイプに応じた処理(この場合では「コンテンツ更新」とされたファイルについての復元処理)についても高速化が図られている。
なお、差分タイプが「エントリ更新」であるコンテンツファイルFctについては、この実施の第2の形態では、特段の処理は行わないものとしている。但し、この実施の第2の形態のような復元処理を行う場合、この差分タイプの「エントリ更新」は、前回の同期処理時から今回の同期処理時までの間に、ハードディスク127上で当該コンテンツファイルFctのメタデータが更新されたことを意味する情報となる。
このことを考慮すると、このようにハードディスク127側でメタデータが更新された場合には、それについても前回同期時状態に復元するということも考えられる。そこで、例えば記録媒体130側においてもメタデータを管理している場合であって、このようなメタデータについても復元するとした場合は、ハードディスク127側の該当するメタデータを、記録媒体130側が保持する前回同期時点でのメタデータの内容に更新するように構成することもできる。
2−2−2.実施の第2の形態によるび復元処理のより詳細な説明
次に、この実施の第2の形態による復元処理のより詳細な動作を、図14および図15のフローチャートを用いて説明する。図14は、この実施の第2の形態による復元処理の全体的な動作を示す一例のフローチャートである。なお、図14の処理に先立って、ドライブ装置128にはバックアップ先である記録媒体130が装填され、当該記録媒体130には、バックアップ元であるハードディスク127の記録内容が、上述した実施の第1の形態による処理に従って既にバックアップされているものとする。
最初のステップS401で、CPU120は、記録媒体130上にバックアップされた記録内容に基づき、ハードディスク127の記録内容を復元する復元処理を行う旨の指示を待機する。例えば、CPU120は、操作部124に対して当該復元処理を行うことを指示する所定の操作がなされたか否かを監視する。復元処理を行う旨の指示がなされたと判断されたら、処理はステップS402に移行される。
ステップS402では、差分情報生成用情報Rdyの生成処理が行われる。この処理は、上述の図10のフローチャートにおけるステップS103の処理と同様にして行われる。
すなわち、CPU120により、ハードディスク127からインデックスファイルFindexが読み出されると共に、記録媒体130からインデックスファイルFindexが読み出され、それぞれRAM121に一時的に保持される。CPU120は、RAM121に保持されたこれらのインデックスファイルFindexのそれぞれについて、コンテンツID、エントリ更新日時、コンテンツ更新日時およびエントリIDを抽出し、各項目の情報に基づき相違検出用情報Ddを生成する。そして、生成された相違検出用情報Ddをそれぞれリストアップすることで、今回バックアップ時の相違検出用情報リストLDd-prと、前回バックアップ時の相違検出用情報リストLDd-psとが生成され、これら相違検出用情報リストLDd-prと相違検出用情報リストLDd-psとにより、差分情報生成用情報Rdyが形成される。
ステップS402で差分情報生成用情報Rdyが生成されると、処理はステップS403に移行され、差分情報生成用情報Rdyに基づき差分情報SBが生成され、差分情報SBがリストアップされて差分情報リストLSBが生成される。
ステップS403によるこの処理は、上述の図10のフローチャートにおけるステップS104すなわち上述の図11に示したフローチャートの処理と同様にして行われる。すなわち、ステップS403における処理は、差分情報生成用情報Rdyにおいて相違検出用情報リストLDd-prと相違検出用情報リストLDd-psとのそれぞれについて、相違検出用情報Ddを所定にシフトさせながらコンテンツID、エントリ更新日時およびコンテンツ更新日時に基づく比較を行い、差分タイプと、前回エントリIDおよび今回エントリIDとを求める。
次のステップS404で、ステップS403で生成された差分情報リストLSBに基づき、差分ファイル群処理が行われる。すなわち、このステップS404において、前回同期時の状態の復元のために、差分情報リストLSBに基づきハードディスク127および/または記録媒体130に対するコンテンツファイルFctの追加や、ハードディスク127および/または記録媒体130からのコンテンツファイルFctの削除を行う。
ステップS404で差分ファイル群の処理がなされ、前回同期時の状態が復元されたら、次のステップS405において、バックアップ先である記録媒体130に記録される、前回同期時にバックアップされたインデックスファイルFindexを、バックアップ元であるハードディスク127上に記録し、ハードディスク127上のインデックスファイルFindexを記録媒体130上のインデックスファイルFindexで置き換える。
これにより、復元されたコンテンツファイルFctの格納状態に合致した情報内容によるインデックスファイルFindexをハードディスク127に記録させることができる。ハードディスク127側において、復元されたコンテンツ群がハードディスク127上に記録されたものとして適正に管理することができるようになる。
図15は、上述したステップS404における差分ファイル群処理をより詳細に示す一例のフローチャートである。先ず、ステップS501においてポインタ値[k]をリセットし、値「0」とする。このポインタ値[k]は、差分情報リストLSB内にリストアップされた差分情報SBのうち、対象とする差分情報SBを指し示すためのポインタとしての役割を果たす。
次のステップS502は、ポインタ値[k]が、差分情報リストLSBにおける差分情報SBのリストアップ数と一致したか否かについて判別する。若し、一致していないと判別された場合は、処理はステップS503に移行され、差分情報リストLSB中の[k]番目の差分情報SBを取得する。すなわち、差分情報リストLSB内のポインタ値[k]により示される差分情報SBを取得する。
次のステップS504は、取得された差分情報SBに基づき差分タイプが判別される。すなわち、ステップS504では、取得された差分情報SBに基づき、差分タイプが「コンテンツ追加」、「コンテンツ削除」、「コンテンツ更新」および「エントリ更新」のうち何れであるかを判別し、判別結果に応じて処理を分岐させる。なお、差分タイプにより分岐される処理のそれぞれは、差分タイプが「エントリ更新」の場合を除き、上述した実施の第1の形態の場合と逆の処理となる。
ステップS504で、差分タイプが「コンテンツ追加」であると判別されれば、処理はステップS505に移行される。ステップS505では、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctを削除する。これにより、前回の同期処理時にはハードディスク127上に存在しなかったコンテンツファイルFctがハードディスク127から削除されることになり、ハードディスク127上の前回の同期処理時の状態が復元される。ステップS504の処理が終了すると、処理はステップS509に移行される。
ステップS509では、ポインタ値[k]が1だけインクリメントされ、処理はステップS502に戻される。
ステップS504で、差分タイプが「コンテンツ更新」であると判別されれば、処理はステップS506に移行される。ステップS506では、「今回エントリID」のエントリに相当するコンテンツファイルFctをハードディスク127から削除する。そして、処理はステップS507に移行され、「前回エントリID」のエントリに相当するコンテンツファイルFctを記録媒体130から読み出し、ハードディスク127に記録する。この処理により、前回の同期処理から今回の復元処理までの間に更新されたハードディスク127上に記録されるコンテンツファイルFctが、前回の同期処理時の内容に復元される。ステップS507の処理が終了すると、処理はステップS509に移行され、ポインタ値[k]が1だけインクリメントされ、処理がステップS502に戻される。
ステップS504において、差分タイプが「コンテンツ削除」であると判別されると、処理はステップS508に移行される。ステップS508では、記録媒体130から「前回エントリID」に相当するコンテンツファイルFctを読み出し、ハードディスク127に記録する。これにより、前回の同期処理時から今回の復元処理までの間にハードディスク127から削除されたコンテンツファイルFctが復元される。ステップS508の処理が終了すると、処理はステップS509に移行され、ポインタ値[k]が1だけインクリメントされ、処理がステップS502に戻される。
ステップS504において、差分タイプが「エントリ更新」であると判別された場合には、処理はそのままステップS509に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS502に戻される。すなわち、差分タイプが「エントリ更新」の場合は、特段の処理を実行せずに次の差分情報SBに基づく処理を実行するようにされる。
但し、上述したように、例えば記録媒体130に記録される各コンテンツファイルFctのメタデータの管理を、管理情報30bを用いてハードディスク127側と同様に行うようにしている場合、この「エントリ更新」に応じて、ハードディスク127側のインデックスファイルFindex内のメタデータを、管理情報30bによってそのコンテンツファイルFctと対応付けて管理しているメタデータに基づいて更新する処理を行うように構成してもよい。
また、上述したステップS502において、ポインタ値[k]がリストアップ数と一致したと判別されれば、この図15のフローチャートによる一連の処理が終了され、処理は上述した図14におけるステップS405に移行される。
2−3.発明の実施の第3の形態について
次に、この発明の実施の第3の形態について説明する。この実施の第3の形態によるバックアップ処理は、上述した実施の第1の形態とは異なり、ハードディスク127側で記録され、且つ、過去においてバックアップ先である記録媒体130への保存対象とされた全てのコンテンツファイルFctを、記録媒体130に保存しておくようにしている。以下、このような保存形式を、全コンテンツファイル保存と呼ぶ。
2−3−1.実施の第3の形態によるバックアップ処理について
図16は、この実施の第3の形態による一例のバックアップ処理を模式的に示す。図16Aは、バックアップ元となるハードディスク127に記録されたコンテンツファイルFctについて、時間軸tに沿った一例の状態遷移を示す。図16Bは、ドライブ装置128により記録媒体130上に記録されるインデックスファイルFindex、コンテンツファイルFctおよび管理情報30bについて、同様に時間軸tに沿った一例の状態遷移を示す。
なお、図16Aに例示される、ハードディスク127側の処理は、図6Aを用いて説明した実施の第1の形態によるバックアップ処理の場合と同様なので、重複する部分については、詳細な説明を省略する。
すなわち、図16Aに例示されるように、バックアップ元であるハードディスク127には、初期状態においてコンテンツファイルFctとしてコンテンツファイルFct「A」、「B」および「C」が記録され、インデックスファイルFindexとしては、その格納状態に応じた内容「1」を有するファイルが記録されていたとする。初期状態の後、時点t2でコンテンツファイルFct「D」が追加され、インデックスファイルFindexの内容が内容「1」から内容「2」に更新される。また、時点t4で、コンテンツファイルFct「B」が削除されてインデックスファイルFindexの内容が内容「2」から内容「3」に更新される。さらに、時点t6でコンテンツファイルFct「C」が修正されてコンテンツファイルFct「C’」に更新され、インデックスファイルFindexの内容が内容「3」から内容「4」に更新される。
一方、図16の例では、バックアップ処理は、例えばビデオカメラ装置100の操作部124に対してなされる所定の操作に応じて、時点t1、時点t3、時点t5および時点t7で行われる。
時点t1における初回のバックアップ処理時において、CPU120は、例えば記録媒体130におけるインデックスファイルFindexのバックアップの有無により記録媒体130上にハードディスク127からバックアップしたコンテンツファイルFctが存在しないことを検出すると、ハードディスク127内に記録されている各ファイルの記録媒体130に対するバックアップが行われる。すなわち、ハードディスク127上に記録される全てのコンテンツファイルFct「A」、「B」および「C」をハードディスク127から読み出して記録媒体130に記録する。また、これらハードディスク127上のコンテンツファイルFctを管理する、内容「1」を有するインデックスファイルFindexをハードディスク127から読み出して記録媒体130に記録する。
さらに、CPU120は、記録媒体130に記録されたコンテンツファイルFctを管理するために、管理情報30bの内容を、記録媒体130上にこれらのコンテンツファイルFct「A」、「B」および「C」が格納されているとして管理するための内容「α」に更新する。
時点t3のバックアップ処理は、コンテンツファイルFctの追加後の処理の例である。時点t3では、バックアップ先である記録媒体130上に既にインデックスファイルFindexが存在するので、CPU120は、バックアップ元であるハードディスク127に記録されるインデックスファイルFindexと、バックアップ先である記録媒体130に記録されるインデックスファイルFindexとに基づき差分情報リストLSBを生成する。この差分情報リストLSBに基づき、ハードディスク127上のコンテンツファイルFct「D」の差分タイプを「コンテンツ追加」であると判別し、当該コンテンツファイルFct「D」を記録媒体130に保存する保存対象ファイルであると判断する。
したがって、この時点t3におけるバックアップ処理においては、ハードディスク127からコンテンツファイルFct「D」を読み出し、読み出されたこれらのファイルをそれぞれ記録媒体130に記録する。また、ハードディスク127からインデックスファイルFindexを読み出して、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録する。
それと共に、管理情報30bは、上述した内容「α」から、コンテンツファイルFct「A」、「B」、「C」および「D」の格納状態に応じた内容「β」に変更される。
時点t5のバックアップ処理は、コンテンツファイルFctの削除後の処理の例である。時点t5では、上述の時点3と同様、バックアップ先である記録媒体130上に既にインデックスファイルFindexが存在するので、CPU120は、先ず、ハードディスク127上のインデックスファイルFindexの内容と、記録媒体130上のインデックスファイルFindexとの内容に基づき差分情報リストLSBを生成し、生成された差分情報リストLSBに基づきコンテンツファイルFct「B」の差分タイプが「コンテンツ削除」であると判別する。差分タイプが「コンテンツ削除」のみの場合、CPU120は、ハードディスク127上に記録される内容「3」のインデックスファイルFindexを読み出し、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録する処理を行う。記録媒体130におけるコンテンツファイルFctの追加や削除は、行わない。
すなわち、この差分タイプが「コンテンツ削除」に応じて、次回の全コンテンツ保存処理にて前回情報として比較されるべきインデックスファイルFindexのバックアップ処理のみが行われる。これにより、過去に記録媒体130にへの保存対象とされたコンテンツファイルFct「B」を、継続的に記録媒体130に保存しておくことができる。
なお、差分タイプが「コンテンツ削除」のみの場合、上述のように、記録媒体130におけるコンテンツファイルFctの追加や削除が行われないので、管理情報30bの内容も、前回のバックアップ処理の際の内容「β」から変化しない。
時点t7のバックアップ処理は、コンテンツファイルFctの更新後の処理の例である。時点t7では、バックアップ処理を行う旨の指示がなされた場合、CPU120は、上述のようにして差分情報リストLSBを生成し、生成された差分情報リストLSBに基づき、コンテンツファイルFct「C’」の差分タイプが「コンテンツ更新」であると判別する。この場合、CPU120は、ハードディスク127上の更新されたコンテンツファイルFct「C’」を読み出して、記録媒体130に記録する。それと共に、ハードディスク127上のに記録される内容「4」のインデックスファイルFindexを読み出し、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録する処理を行う。
すなわち、この差分タイプが「コンテンツ更新」に応じて、更新されたコンテンツファイルFct「C’」と、次回の全コンテンツ保存処理にて前回情報として比較されるべき内容「4」のインデックスファイルFindexとが記録媒体130にバックアップされる。また、記録媒体130に既に記録されている、更新前のコンテンツファイルFct「C」の削除は行わない。これにより、過去に記録媒体130にへの保存対象とされたコンテンツファイルFct「C」についても、継続的に記録媒体130に保存しておくことができる。
また、この時点t7において、管理情報30bの内容が、前回のバックアップ処理時の内容「β」から、記録媒体130側のコンテンツファイルFct「A」、「B」、「C」、「C’」および「D」の格納状態に応じた内容「ε」に変更される。
なお、この全コンテンツファイル保存処理における差分タイプが「エントリ更新」の場合の処理については、上述した実施の第1の形態の場合に準ずるものとする。
この図16にて説明したような全コンテンツファイル保存処理により、過去に記録媒体130側への保存対象とされた全てのコンテンツファイルFctを、記録媒体130に対して保存しておくことができる。また、この場合でも、実際にハードディスク127から読み出され記録媒体130に記録されるのは、差分のファイルのみとすることができ、全コンテンツファイルFctを上書きコピーして実現する場合と比較すれば、全コンテンツファイル保存処理をより高速化することができる。
さらに、このように記録媒体130に記録すべきコンテンツファイルFctが減ることで、処理負担についても軽減することができる。さらにまた、この場合でも、差分情報SBは、前回のバックアップ時のインデックスファイルFindexと、今回のバックアップ時のインデックスファイルFindexとを突き合わせて生成するので、その分高速に差分情報SBを取得することができ、この点でも全コンテンツ保存処理の高速化が図られている。
また、この場合も、インデックスファイルFindexに対してコンテンツ更新日時などのファイル識別子以外の他のファイル関連情報もエントリされ、このインデックスファイルFindex同士の内容を比較して差分情報SBを取得するので、「コンテンツ更新」や「エントリ更新」などコンテンツファイルFctの追加や削除以外の他の差分タイプについても、管理情報同士を比較するのみで取得することができる。これにより、コンテンツファイルFctの追加や削除以外の差分タイプを判別する際にも、管理情報同士の比較でそれらの差分タイプを判別することができ、このようなコンテンツの追加や削除以外の差分のタイプに応じた処理(この場合では「コンテンツ更新」とされたファイルについてのバックアップ処理)についても高速化が図られている。
2−3−2.実施の第3の形態によるバックアップ処理のより詳細な説明
次に、この実施の第3の形態による全コンテンツファイル保存によるバックアップ処理のより詳細な動作を、図17および図18のフローチャートを用いて説明する。図17は、実施の第3の形態による全コンテンツファイル保存によるバックアップ処理の全体的な動作を示す一例のフローチャートである。なお、図17の処理に先立って、バックアップ先の記録媒体130がドライブ装置128に装填され、アクセス可能な状態とされているものとする。また、図17に示される各制御および判断処理などは、CPU120により、所定のプログラムに従いなされる。
最初のステップS601で、CPU120は、バックアップ元であるハードディスク127上に記録されたコンテンツファイルFctの、バックアップ先の記録媒体130への全コンテンツファイル保存によるバックアップ処理を行う旨の指示を待機する。例えば、CPU120は、操作部124に対して当該同期処理を行うことを指示する所定の操作がなされたか否かを監視する。バックアップ処理を行う旨の指示がなされと判断されたら、処理はステップS602に移行される。
ステップS602では、バックアップ先の記録媒体130上に、バックアップにより作成されたインデックスファイルFindexが存在するか否かが判断される。若し、インデックスファイルFindexが記録媒体130上に存在しないと判断されれば、処理はステップS607に移行される。
ステップS607および続くステップS608において、ハードディスク127上に記録されているコンテンツファイルFctの全てと、インデックスファイルFindexとを記録媒体130に記録する処理がなされる。ステップS608による処理が完了すると、処理はステップS609に移行される。
ステップS609では、記録媒体130上のコンテンツファイルFctの格納状態に応じて、管理情報30bの更新がなされる。この場合には、先のステップS608にて記録媒体130に記録されたコンテンツファイルFctの情報が反映されるように、管理情報30bが更新される。
以上のステップS601、ステップS602、ステップS607、ステップS608、ステップS609の順に処理がなされることにより、初回のバックアップ処理時に、バックアップ元であるハードディスク127に記録される全てのコンテンツファイルFctと、当該コンテンツファイルFctの管理状態を示すインデックスファイルFindexとが、バックアップ先である記録媒体130にバックアップされる(図16の時点t1参照)。
一方、上述のステップS602において、記録媒体130上に、既にインデックスファイルFindexが存在すると判断された場合には、処理はステップS603に移行され、既に説明したようにして差分情報生成用情報Rbyを生成する。
次のステップS604では、ステップS603で得られた差分情報生成用情報Rdyに基づき、差分情報SBを生成し、生成された差分情報SBをリストアップすることで、差分情報リストLSBを生成する。差分情報リストLSBが生成されると、処理は次のステップS605に移行され、差分ファイル群処理が行われる。このステップS605では、上述したようにして差分情報SBの差分タイプに応じてコンテンツファイルFctの追加および/または削除を行い、全コンテンツファイル保存によるバックアップ処理を行う。このステップS605における差分ファイル群処理の詳細については、後述する。
次のステップS606では、バックアップ元であるハードディスク127上に記録されるインデックスファイルFindexを、バックアップ先である記録媒体130に対して記録する。
インデックスファイルFindexの保存が終了すると、処理はステップS609に移行され、上述しように、コンテンツファイルFctの格納状態に応じて管理情報30bを更新する。ステップS603〜ステップS606を経てこのステップS609に到達した場合には、上述のステップS605における差分ファイル群処理によって、結果的に、記録媒体130上に記録されているコンテンツファイルFctの情報を反映するように、管理情報30bの情報内容が更新される。
図18は、上述した図17のステップS605における差分ファイル群処理をより詳細に示す一例のフローチャートである。先ず、ステップS701において、差分情報リストLSB内にリストアップされた差分情報SBのうち、対象とする差分情報SBを指し示すためのポインタ値[k]をリセットし、値「0」とする。次のステップS702は、ポインタ値[k]が、差分情報リストLSBにおける差分情報SBのリストアップ数と一致したか否かについて判別する。若し、一致していないと判別された場合は、処理はステップS703に移行され、差分情報リストLSB中の[k]番目の差分情報SBを取得する。
次のステップS704では、取得された差分情報SBに基づき、差分タイプが「コンテンツ追加」、「コンテンツ削除」、「コンテンツ更新」および「エントリ更新」のうち何れであるかを判別し、判別結果に応じて処理を分岐させる。
ステップS704で、差分タイプが「コンテンツ追加」であると判別されれば、処理はステップS705に移行される。ステップS705および次のステップS706により、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctが記録媒体130に記録される。「今回エントリID」のエントリに相当するコンテンツファイルFctの記録媒体130への記録が完了すると、処理はステップS709に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS702に戻される。
ステップS704において、差分タイプが「コンテンツ更新」であると判別されれば、処理はステップS707に移行される。ステップS707および次のステップS708により、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctが記録媒体130に記録される。
このように、この実施の第3の形態による全コンテンツファイル保存では、上述した実施の第1の形態による同期処理と異なり、記録媒体130に保存されている、更新前のコンテンツファイルFctが削除されないので、過去に保存対象となった当該更新前のコンテンツファイルFctを、継続的に、記録媒体130に保存しておくことができる。
「今回エントリID」のエントリに相当するコンテンツファイルFctの記録媒体130への記録が完了すると、処理はステップS709に移行され、ポインタ値[k]が1だけインクリメントされ、処理がステップS702に戻される。
ステップS704において、差分タイプが「コンテンツ削除」であると判別された場合は、処理はそのままステップS709に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS702に戻される。このように、差分タイプが「コンテンツ削除」の場合に、特段の処理を行わないことで、ハードディスク127側において削除されたコンテンツファイルFctを、記録媒体130側において継続的に保存しておくことができる。
ステップS704において、差分タイプが「エントリ更新」であると判別された場合、処理はそのままステップS709に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS702に戻される。すなわち、差分タイプが「エントリ更新」の場合は、特段の処理を実行せずに次の差分情報SBに基づく処理を実行するようにされる。
また、上述したステップS702において、ポインタ値[k]がリストアップ数と一致したと判別されれば、この図18のフローチャートによる一連の処理が終了され、処理は上述した図17におけるステップS606に移行される。
2−4.発明の実施の第4の形態について
次に、この実施の第4の形態について説明する。この実施の第4の形態によるバックアップ処理は、実施の第1の形態による同期処理と、実施の第3の形態による全コンテンツファイル保存処理とを組み合わせた処理となる。すなわち、ハードディスク127側で記録され、且つ、過去においてバックアップ先である記録媒体130への保存対象とされた全てのコンテンツファイルFctを、記録媒体130に保存しておくと共に、バックアップ処理の時点でのハードディスク127の記録内容と同期が取れるように、記録媒体130に記録されるコンテンツファイルFctの管理を行う。
なお、この実施の第4の形態によるバックアップ処理は、例えば上述した実施の第1の形態による同期処理によるバックアップ処理のオプション機能として付加することができる。例えば、ビデオカメラ装置100において、操作部124に対する所定の操作により、バックアップ処理を、実施の第1の形態による同期処理により行うか、この実施の第4の形態による同期処理および全コンテンツファイル保存処理を組み合わせた方法により行うかを選択的に設定できるようにすることが考えられる。
2−4−1.実施の第4の形態によるバックアップ処理について
図19は、この実施の第4の形態による一例のバックアップ処理を模式的に示す。図19Aは、バックアップ元となるハードディスク127に記録されたコンテンツファイルFctについて、時間軸tに沿った一例の状態遷移を示す。図19Bは、ドライブ装置128により記録媒体130上に記録されるインデックスファイルFindex、コンテンツファイルFctおよび管理情報30bについて、同様に時間軸tに沿った一例の状態遷移を示す。
なお、図19Aに例示される、ハードディスク127側の処理は、図6Aを用いて説明した実施の第1の形態によるバックアップ処理の場合と同様なので、重複する部分については、詳細な説明を省略する。
すなわち、図19Aに例示されるように、バックアップ元であるハードディスク127には、初期状態においてコンテンツファイルFctとしてコンテンツファイルFct「A」、「B」および「C」が記録され、インデックスファイルFindexとしては、その格納状態に応じた内容「1」を有するファイルが記録されていたとする。初期状態の後、時点t2でコンテンツファイルFct「D」が追加され、インデックスファイルFindexの内容が内容「1」から内容「2」に更新される。また、時点t4で、コンテンツファイルFct「B」が削除されてインデックスファイルFindexの内容が内容「2」から内容「3」に更新される。さらに、時点t6でコンテンツファイルFct「C」が修正されてコンテンツファイルFct「C’」に更新され、インデックスファイルFindexの内容が内容「3」から内容「4」に更新される。
一方、バックアップ処理は、図19に例示されるように、例えばビデオカメラ装置100の操作部124に対してなされる所定の操作に応じて、時点t1、時点t3、時点t5および時点t7で行われる。
ここで、この実施の第4の形態では、管理情報30bは、同期用のコンテンツファイルFctと、全コンテンツファイル保存用のコンテンツファイルFctとを識別可能なように構成される。例えば、管理情報30bに対し、同期用のコンテンツファイルFctの情報を格納する領域と、全コンテンツファイル保存用のコンテンツファイルFctの情報を格納する領域とを、それぞれ論理的に設けることが考えられる。これに限らず、管理情報30bにおいて、同期用のコンテンツファイルFctとして管理されるファイルと、全コンテンツファイル保存用のコンテンツファイルFctとして管理されるファイルとに、それぞれ所定の識別子を付与するようにしてもよい。
この実施の第4の形態による管理情報30bでは、同期処理用として管理されるコンテンツファイルFctは、上述した実施の第1の形態で説明した、同期処理に基づくバックアップ処理により記録媒体130上に記録されたコンテンツファイルFctの格納状態に一致する。一方、同期処理に基づくバックアップ処理の際に、実施の第1の形態において記録媒体130から削除されるコンテンツファイルFctの管理情報は、この実施の第4の形態においては、全コンテンツファイル保存用のコンテンツファイルFctとして管理され、記録媒体130からは削除されない。
このように、全コンテンツファイル保存用のコンテンツファイルFctを同期用のコンテンツファイルFctと区別して管理することで、例えば、ハードディスク127から削除されてしまったコンテンツファイルFctを確認することが容易となる。
なお、以下において、「同期用のコンテンツファイルFctとして識別可能に管理される」ことを、適宜『「同期用」として管理される』と呼び、「全コンテンツファイル保存用のコンテンツファイルFctとして識別可能に管理される」ことを、適宜『「全コンテンツファイル保存用」として管理される』と呼ぶ。
時点t1における初回のバックアップ処理時において、CPU120は、例えば記録媒体130におけるインデックスファイルFindexのバックアップの有無により記録媒体130上にハードディスク127からバックアップしたコンテンツファイルFctが存在しないことを検出すると、ハードディスク127内に記録されている各ファイルの記録媒体130に対するバックアップが行われる。すなわち、ハードディスク127上に記録される全てのコンテンツファイルFct「A」、「B」および「C」をハードディスク127から読み出して記録媒体130に記録する。また、これらハードディスク127上のコンテンツファイルFctを管理する、内容「1」を有するインデックスファイルFindexをハードディスク127から読み出して記録媒体130に記録する。
さらに、CPU120は、記録媒体130に記録されたコンテンツファイルFctを管理するために、管理情報30bの内容を更新する。すなわち、CPU120は、管理情報30bの内容を、記録媒体130上にこれらのコンテンツファイルFct「A」、「B」および「C」が格納されているとして管理するための内容「M1」に更新する。内容「M1」において、これらコンテンツファイルFct「A」、「B」および「C」は、「同期用」として管理される。
時点t3のバックアップ処理は、コンテンツファイルFctの追加後の処理の例である。時点t3では、記録媒体130上に既にインデックスファイルFindexが存在するので、CPU120は、バックアップ元であるハードディスク127に記録されるインデックスファイルFindexと、バックアップ先である記録媒体130に記録されるインデックスファイルFindexとに基づき、差分情報リストLSBを所定に生成する。CPU120は、この差分情報リストLSBに基づき、ハードディスク127上のコンテンツファイルFct「D」の差分タイプが「コンテンツ追加」であると判別し、当該コンテンツファイルFct「D」を記録媒体130に保存する保存対象ファイルであると判断する。
したがって、この時点t3におけるバックアップ処理においては、ハードディスク127からコンテンツファイルFct「D」を読み出して、記録媒体130に記録する。また、ハードディスク127から内容「2」のインデックスファイルFindexを読み出して、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録する。
それと共に、管理情報30bは、上述した内容「M1」から、コンテンツファイルFct「A」、「B」、「C」および「D」の格納状態に応じた内容「M2」に変更される。
ここで、ハードディスク127側にコンテンツファイルFctが追加された状態を記録媒体130に対してバックアップした場合、ハードディスク127側におけるコンテンツファイルFctの格納状態と、記録媒体130側におけるコンテンツファイルFctの格納状態とが同期した状態が継続している。したがって、内容「M2」の管理情報30bにおいて、コンテンツファイルFct「A」、コンテンツファイルFct「B」、コンテンツファイルFct「C」およびコンテンツファイルFct「D」は、同期用として管理される。
すなわち、この実施の第4の形態によるバックアップ処理においては、差分タイプが「コンテンツ追加」であるコンテンツファイルFctは、管理情報30bにおいて全て同期用として管理すればよい。これにより、ハードディスク127側と記録媒体130側とで共に保存され、同期しているコンテンツファイルFctについては、適正に「同期用コンテンツファイルFct」として管理される。
時点t5のバックアップ処理は、コンテンツファイルFctの削除後の処理の例である。時点t5では、上述の時点3と同様、バックアップ先である記録媒体130上に既にインデックスファイルFindexが存在するので、CPU120は、先ず、ハードディスク127上のインデックスファイルFindexの内容と、記録媒体130上のインデックスファイルFindexとの内容に基づき差分情報リストLSBを生成し、生成された差分情報リストLSBに基づきコンテンツファイルFct「B」の差分タイプが「コンテンツ削除」であると判別する。
差分タイプが「コンテンツ削除」の場合、全コンテンツファイル保存処理としては、記録媒体130上に記録された、対応するコンテンツファイルFct「B」を削除せずに、継続的に保存しておく必要がある。一方、記録媒体130上のコンテンツファイルFct「B」を削除しないと、ハードディスク127側と記録媒体130側とで記録内容の相違が生じる。
そのため、この実施の第4の形態では、このハードディスク127側で削除されたコンテンツファイルFct「B」を、「全コンテンツファイル保存用」として、管理情報30bにおいて管理する。例えば、CPU120は、上述した時点t3で「同期用」として管理されていたコンテンツファイルFct「B」の情報を、全コンテンツファイル保存用側に移動させ、管理情報30bの内容を、時点t3の内容「M2」からコンテンツファイルFct「B」の情報が反映された内容「M3」に変更され、管理情報30bが更新される。
また、ハードディスク127から内容「3」のインデックスファイルFindexを読み出して、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録する。
時点t7のバックアップ処理は、コンテンツファイルFctの更新後の処理の例である。時点t7では、バックアップ処理を行う旨の指示がなされた場合、CPU120は、上述のようにして差分情報リストLSBを生成し、生成された差分情報リストLSBに基づき、コンテンツファイルFct「C’」の差分タイプが「コンテンツ更新」であると判別する。これに応じて、CPU120は、ハードディスク127上の更新されたコンテンツファイルFct「C’」を読み出して、記録媒体130に記録する。
差分タイプが「コンテンツ更新」の場合も、上述の差分タイプ「コンテンツ削除」の場合と同様に、全コンテンツファイル保存処理としては、記録媒体130上に記録された、更新前のコンテンツファイルFct「C」を削除せずに、継続的に保存しておく必要がある。一方、記録媒体130上のコンテンツファイルFct「C」を削除しないと、ハードディスク127側と記録媒体130側とで記録内容の相違が生じる。
そのため、この実施の第4の形態では、記録媒体130上に記録される、このハードディスク127側で更新されたコンテンツファイルFct「C’」に対する、更新前のコンテンツファイルFct「C」を、「全コンテンツファイル保存用」として、管理情報30bにおいて管理する。例えば、CPU120は、管理情報30bにおいて、更新されたコンテンツファイルFct「C’」の情報を「同期用」として管理すると共に、時点t5で「同期用」として管理されていたコンテンツファイルFct「C」の情報を「全コンテンツファイル保存用」として管理するようにし、管理情報30bの内容を、時点t5の内容「M3」を、これらの情報の変更を反映する内容「M4」に変更され、管理情報30bが更新される。
また、ハードディスク127から内容「4」のインデックスファイルFindexを読み出して、記録媒体130に既に記録されているインデックスファイルFindexに対して上書き記録する。
なお、この全コンテンツファイル保存処理における差分タイプが「エントリ更新」の場合の処理については、上述した実施の第1の形態の場合に準ずるものとする。
この図19にて説明したようなバックアップ処理により、過去に記録媒体130側への保存対象とされた全てのコンテンツファイルFctを、記録媒体130に対して保存しておくことができる。また、記録媒体130においては、管理情報30bによって、ハードディスク127側の記録内容と同期しているコンテンツファイルFctと、全コンテンツファイル保存処理に伴い保存される、同期用以外のコンテンツファイルFctとを、それぞれ管理することができる。
この場合においても、実際にハードディスク127から読み出され記録媒体130に記録されるのは、差分のファイルのみとすることができ、バックアップ処理をより高速化することができる。
さらに、このように記録媒体130に記録すべきコンテンツファイルFctが減ることで、処理負担についても軽減することができる。さらにまた、この場合でも、差分情報SBは、前回のバックアップ時のインデックスファイルFindexと、今回のバックアップ時のインデックスファイルFindexとを突き合わせて生成するので、その分高速に差分情報SBを取得することができ、この点でも全コンテンツ保存処理の高速化が図られている。
また、この場合も、インデックスファイルFindexに対してコンテンツ更新日時などのファイル識別子以外の他のファイル関連情報もエントリされ、このインデックスファイルFindex同士の内容を比較して差分情報SBを取得するので、「コンテンツ更新」や「エントリ更新」などコンテンツファイルFctの追加や削除以外の他の差分タイプについても、管理情報同士を比較するのみで取得することができる。これにより、コンテンツファイルFctの追加や削除以外の差分タイプを判別する際にも、管理情報同士の比較でそれらの差分タイプを判別することができ、このようなコンテンツの追加や削除以外の差分のタイプに応じた処理(この場合では「コンテンツ更新」とされたファイルについてのバックアップ処理)についても高速化が図られている。
2−4−2.実施の第4の形態によるバックアップ処理のより詳細な説明
次に、この実施の第4の形態による、同期処理および全コンテンツファイル保存によるバックアップ処理のより詳細な動作を、図20および図21のフローチャートを用いて説明する。図20は、実施の第4の形態による同期処理および全コンテンツファイル保存処理によるバックアップ処理の全体的な動作を示す一例のフローチャートである。なお、図20の処理に先立って、バックアップ先の記録媒体130がドライブ装置128に装填され、アクセス可能な状態とされているものとする。また、図20に示される各制御および判断処理などは、CPU120により、所定のプログラムに従いなされる。
最初のステップS801で、バックアップ処理を行う旨の指示がなされと判断されたら、処理はステップS802に移行され、バックアップ先の記録媒体130上に、バックアップにより作成されたインデックスファイルFindexが存在するか否かが判断される。若し、インデックスファイルFindexが記録媒体130上に存在しないと判断されれば、処理はステップS808に移行される。
ステップS808および続くステップS809において、ハードディスク127上に記録されているコンテンツファイルFctの全てと、インデックスファイルFindexとを記録媒体130に記録する処理がなされる。ステップS808による処理が完了すると、処理はステップS810に移行され、記録媒体130上のコンテンツファイルFctの格納状態に応じて、管理情報30bの更新がなされる。この場合には、先のステップS809にて記録媒体130に記録されたコンテンツファイルFctの情報が反映されるように、管理情報30bが更新される。
以上のステップS801、ステップS802、ステップS808、ステップS809、ステップS810の順に処理がなされることにより、初回のバックアップ処理時に、バックアップ元であるハードディスク127に記録される全てのコンテンツファイルFctと、当該コンテンツファイルFctの管理状態を示すインデックスファイルFindexとが、バックアップ先である記録媒体130にバックアップされる(図19の時点t1参照)。
一方、上述のステップS802において、記録媒体130上に、既にインデックスファイルFindexが存在すると判断された場合には、処理はステップS803に移行され、既に説明したようにして差分情報生成用情報Rbyを生成し、差分情報生成用情報Rdyに基づき差分情報リストLSBを生成する。
次のステップS805では、差分ファイル群処理を行う。このステップS805では、上述したようにして差分情報SBの差分タイプに応じてコンテンツファイルFctの追加および/または削除を行い、この実施の第4の形態による、同期処理および全コンテンツファイル保存処理によるバックアップ処理を行う。このステップS805における差分ファイル群処理の詳細については、後述する。
次のステップS806では、バックアップ元であるハードディスク127上に記録されるインデックスファイルFindexを、バックアップ先である記録媒体130に対して記録する。そして、次のステップS807で、コンテンツファイルFctが「同期用」と「全コンテンツファイル保存用」とでそれぞれ管理されるように、管理情報30bが更新される。例えば、記録媒体130上に記録されている各コンテンツファイルFctのそれぞれについて、同期用または全コンテンツファイル保存用の属性を所定に設定するように、管理情報30bを更新する。コンテンツファイルFctの更新前Fctに対する「同期用」、「全コンテンツファイル保存用」の属性の設定方法については、図21を用いて後述する。
この実施の第4の形態においては、「同期用」のコンテンツファイルFctと、「全コンテンツファイル保存用」とのそれぞれについて管理可能なように、管理情報30bが更新される。すなわち、記録媒体130上に保持されている各コンテンツファイルFctの属性が、図21を用いて後述する処理によって設定した属性となるように、管理情報30bを更新する。これにより、記録媒体130上に保持されている各コンテンツファイルFctが適正に「同期用」と「全コンテンツ保存用」の別で管理されるようにできる。
図21は、上述した図20のステップS805における差分ファイル群処理をより詳細に示す一例のフローチャートである。先ず、ステップS901において差分情報リストLSB内にリストアップされた差分情報SBのうち、対象とする差分情報SBを指し示すためのポインタ値[k]を値「0」にリセットし、次のステップS902で、ポインタ値[k]が、差分情報リストLSBにおける差分情報SBのリストアップ数と一致したか否かについて判別する。若し、一致していないと判別された場合は、処理はステップS903に移行され、差分情報リストLSB中の[k]番目の差分情報SBを取得する。
次のステップS904は、取得された差分情報SBに基づき、差分タイプが「コンテンツ追加」、「コンテンツ削除」、「コンテンツ更新」および「エントリ更新」のうち何れであるかを判別し、判別結果に応じて処理を分岐させる。
ステップS904で、差分タイプが「コンテンツ追加」であると判別されれば、処理はステップS905に移行される。ステップS905および次のステップS906により、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctが記録媒体130に記録される。
次のステップS907では、記録媒体130に記録されたコンテンツファイルFctが管理情報30bにおいて同期用として管理されるように処理する。例えば、当該コンテンツファイルFctの属性を「同期用」に設定することで、管理情報30bにおいて当該コンテンツファイルFctが同期用として管理される。ステップS907での処理が終了すると、処理はステップS913に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS902に戻される。
ステップS904において、差分タイプが「コンテンツ更新」であると判別されれば、処理はステップS908に移行される。ステップS908では、「前回エントリID」のエントリに相当するコンテンツファイルFctが、管理情報30bにおいて「全コンテンツファイル保存用」として管理されるように処理する。例えば、当該コンテンツファイルFctの属性を「全コンテンツファイル保存用」に設定することで、管理情報30bにおいて当該コンテンツファイルFctが全コンテンツファイル保存用として管理される。
次のステップS909およびステップS910により、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctが記録媒体130に記録される。
次のステップS911では、記録媒体130に記録されたコンテンツファイルFctが管理情報30bにおいて「同期用」として管理されるように処理するステップS911での処理が終了すると、処理はステップS913に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS902に戻される。
ステップS904において、差分タイプが「コンテンツ削除」であると判別されれば、処理はステップS912に移行される。ステップS912では、記録媒体130に記録されている、「前回エントリID」のエントリに相当するコンテンツファイルが、管理情報30bにおいて「全コンテンツファイル保存用」として管理されるように処理する。ステップS912の処理が終了されると、処理はステップS913に移行され、ポインタ値[k]が1だけインクリメントされ、処理がステップS902に戻される。
なお、この実施の第4の形態においては、ステップS904で差分タイプが「エントリ更新」であると判別された場合、処理はそのままステップS913に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS902に戻される。すなわち、差分タイプが「エントリ更新」の場合は、特段の処理を実行せずに次の差分情報SBに基づく処理を実行するようにされる。
また、上述したステップS902において、ポインタ値[k]がリストアップ数と一致したと判別されれば、この図21のフローチャートによる一連の処理が終了され、処理は上述した図20におけるステップS806に移行される。
2−5.発明の実施の第5の形態について
次に、この発明の実施の第5の形態について説明する。この実施の第5の形態は、上述した実施の第4の形態による、同期処理と全コンテンツファイル保存処理とを組み合わせたバックアップ処理を行うと共に、バックアップを行った各時点でのハードディスク127におけるコンテンツファイルFctの格納状態を復元可能とするものである。
より具体的には、上述の実施の第4の形態によるバックアップ処理において、バックアップ処理を実行する各時点で、ハードディスク127側のインデックスファイルFindexを記録媒体130側に記録する際に、記録媒体130上に既に存在するインデックスファイルFindexを上書きせずに、バックアップ処理時の各時点でのインデックスファイルFindexを、バックアップ処理を行った時点と関連付けてそれぞれ保存する。すなわち、インデックスファイルFindexは、バックアップ処理毎に関連付けられて、記録媒体130上に蓄積的に保存される。
復元時には、ハードディスク127に対するコンテンツファイルFctの記録や、ハードディスク127上のコンテンツファイルFctの削除を、復元したい時点に関連付けられたインデックスファイルFindexに基づき行う。これにより、ハードディスク127側に、当該復元したい時点におけるコンテンツファイルFctの格納状態を復元させることができる。
2−5−1.実施の第5の形態によるバックアップ処理および復元処理について
図22は、この実施の第5の形態による一例のバックアップ処理および復元処理を模式的に示す。図22Aは、バックアップ元となるハードディスク127に記録されたコンテンツファイルFctについて、時間軸tに沿った一例の状態遷移を示す。図22Bは、ドライブ装置128により記録媒体130上に記録されるインデックスファイルFindex、コンテンツファイルFctおよび管理情報30bについて、同様に時間軸tに沿った一例の状態遷移を示す。
なお、図22Aに例示される、ハードディスク127側の処理は、図6Aを用いて説明した実施の第1の形態によるバックアップ処理の場合と同様なので、重複する部分については、詳細な説明を省略する。また、この実施の第5の形態でも、上述した実施の第4の形態と同様に、管理情報30bは、同期処理用のコンテンツファイルFctと、全コンテンツファイル保存用のコンテンツファイルFctとを識別可能なように構成される。
図22Aに例示されるように、バックアップ元であるハードディスク127には、初期状態においてコンテンツファイルFctとしてコンテンツファイルFct「A」、「B」および「C」が記録され、インデックスファイルFindexとしては、その格納状態に応じた内容「1」を有するファイルが記録されていたとする。
ハードディスク127側においては、初期状態の後、時点t2でコンテンツファイルFct「D」が追加され、インデックスファイルFindexの内容が内容「1」から内容「2」に更新される。また、時点t4で、コンテンツファイルFct「B」が削除されてインデックスファイルFindexの内容が内容「2」から内容「3」に更新される。さらに、時点t6でコンテンツファイルFct「C」が修正されてコンテンツファイルFct「C’」に更新され、インデックスファイルFindexの内容が内容「3」から内容「4」に更新される。
一方、図22の例では、バックアップ処理は、時点t1、時点t3および時点t5で行われる。時点t1では、ハードディスク127における初期状態の格納状態が記録媒体130にバックアップされ、内容「M1」の管理情報が生成される。時点t3では、時点t2でハードディスク127に追加されたコンテンツファイルFct「D」が記録媒体130に記録され、バックアップされると共に、その旨反映するように、管理情報30bの内容が内容「M1」から内容「M2」に更新される。また、時点t5では、時点t4でコンテンツファイルFct「B」がハードディスク127から削除されたことを反映するように、管理情報30bにおいてコンテンツファイルFct「B」が全コンテンツファイル保存用として管理され、管理情報30bの内容がその旨反映するように、内容「M3」から内容「M4」に更新される。
ここで、この実施の第5の形態においては、時点t1、時点t3および時点t5において、ハードディスク127側から読み出され記録媒体130に記録されるインデックスファイルFindexを、それぞれのバックアップ処理の時点に関連付けて、記録媒体130上に全て保存するようにされる。
ここで、時点t6でハードディスク127側においてコンテンツファイルFct「C」が修正されコンテンツファイルFct「C’」とされた後に、時点t7で、任意のバックアップ時点までの復元が指示された場合について考える。一例として、時点t7において、時点t3でバックアップ処理を行った時点のハードディスク127の記録内容を復元する場合について説明する。
CPU120は、例えば操作部124に対してなされた任意時点復元指示に応じて、記録媒体130に保存されるインデックスファイルFindexのうち、指示された復元対象時点に対応付けられたインデックスファイルFindexを取得し、取得されたインデックスファイルFindexと、現時点でハードディスク127に記録されているインデックスファイルFindexとに基づき、差分情報リストLSBを作成する。そして、CPU120は、差分情報リストLSBに基づき得られた差分タイプに基づき、ハードディスク127についてコンテンツファイルFctの記録および/または削除を行うと共に、記録媒体130において、ハードディスク127上でのコンテンツファイルFctの格納状態に応じて、管理情報30bの変更を行う。
図22の例では、時点3と対応付けられて記録媒体130に保存される、内容「2」のインデックスファイルFindexと、任意時点復元指示がなされた時点t7でハードディスク127に記録されている、内容「4」のインデックスファイルFindexとが比較され、比較結果に基づき差分情報リストLSBが生成される。この差分情報リストLSBによれば、コンテンツファイルFct「B」については、差分タイプが「コンテンツ削除」、コンテンツファイルFct「C」およびコンテンツファイルFct「C’」については、差分タイプが「コンテンツ変更」を示す情報が得られる。
CPU120は、差分タイプの「コンテンツ削除」に応じて、上述した実施の第2の形態による復元処理の場合と同様に、「前回エントリID」により特定されるコンテンツファイルFct(図22の例ではコンテンツファイルFct「B」)を、記録媒体130から読み出してハードディスク127に記録する。
また、CPU120は、差分タイプの「コンテンツ更新」に応じて、上述した実施の第2の形態による復元処理の場合と同様に、「前回エントリID」により特定されるコンテンツファイルFct(図22の例ではコンテンツファイルFct「C」)を記録媒体130から読み出してハードディスク127に記録し、「今回エントリID」により特定されるコンテンツファイルFct(図22の例ではコンテンツファイルFct「C’」)を、ハードディスク127から削除する。
このような処理により、図22Aの時点t7に例示されるように、ハードディスク127側のコンテンツファイルFctの格納状態は、時点t3における格納状態に復元される。
CPU120は、さらに、当該復元対象時点に指定された、記録媒体130上のインデックスファイルFindexを、ハードディスク127に既に存在するインデックスファイルFindexに対して上書き記録する。さらに、ハードディスク127側において置き換えられたインデックスファイルFindexが、さらに記録媒体130において、当該復元対象時点である時点t7と関連付けられて、記録媒体130上に保存される。
この図22の例では、記録媒体130から内容「2」のインデックスファイルFindexが読み出され、ハードディスク127上の内容「4」のインデックスファイルFindexに対して上書き記録される。
また、当該内容「2」のインデックスファイルFindexが、当該復元対象時点である時点t7と対応付けられて、記録媒体130に保存される。すなわち、記録媒体130上では、図22の例では、時点t1、時点t3、時点t5および時点t7のそれぞれの時点におけるハードディスク127上のコンテンツファイルFctの格納状態を示す各インデックスファイルFindexが格納されることになる。
時点t7の復元処理により変化した、ハードディスク127側のコンテンツファイルFctの格納状態に応じて、管理情報30bを更新する必要がある。図22の例では、前回の管理情報30bの更新時に全コンテンツファイル保存用として管理されていたコンテンツファイルFct「B」が、同期用のコンテンツファイルFctとして管理されるように、管理情報30bの更新を行う(図22Bの内容「M2」の管理情報30b」)。
このように、この実施の第5の形態による復元処理において、差分タイプが「コンテンツ削除」とされたコンテンツファイルFctについては、管理情報30bでは、同期用となるように管理される。したがって、差分タイプが「コンテンツ削除」とされたコンテンツファイルFctに関しては、復元処理以前の全コンテンツファイル保存用から、同期用として管理されるように、管理情報30bが更新される。
なお、復元指示がなされた時点と、当該復元指示時点の直前のバックアップ処理時点との間でハードディスク127側においてコンテンツファイルFctが削除された場合、当該コンテンツファイルFctについては、当該コンテンツファイルの削除が記録媒体130上に反映されていない。図22の例では、時点t6でハードディスク127上からコンテンツファイルFct「D」が削除された場合、復元処理が指示された時点t7においては、記録媒体130および管理情報30bに対し、この削除が反映されない。このような場合、当該コンテンツファイルFctは、管理情報30bにおいて同期用のままで管理されていることになる。したがって、この場合には、復元処理に応じてハードディスク127側において当該コンテンツファイルFctが復元されても、管理情報30b内の情報を更新する必要はない。
また、復元指示がなされた際に、差分タイプが「コンテンツ更新」と判別されたコンテンツファイルFctについては、上述の差分タイプが「コンテンツ削除」の場合と同様に、対応する更新前のコンテンツファイルFctが記録媒体130から読み出され、ハードディスク127側に記録されることになる(図22の例では、時点t7におけるコンテンツファイルFct「C」の移動)。すなわち、差分タイプが「コンテンツ更新」と判別された際の対応する更新前のコンテンツファイルFct(すなわち、「前回エントリID」により特定されるコンテンツファイルFct)についても、同様に、記録媒体130において同期用として管理されるように、管理情報30bを更新する。
なお、差分タイプが「コンテンツ更新」と判別されたコンテンツファイルFctの対応する更新後のコンテンツファイルFct(すなわち、「今回エントリID」により特定されるコンテンツファイルFct)に関し、図22AにコンテンツファイルFct「C’」として例示されるように、当該コンテンツファイルFctが記録媒体130に対して反映されていない場合には、管理情報30bにおいて特段の処理は不要である。
勿論、コンテンツファイルFct「C」が修正などされコンテンツファイルFct「C’」に更新されて以降にバックアップ処理がなされている場合には、当該コンテンツファイルFct「C’」は、記録媒体130に記録され、管理情報30bにおいて当該コンテンツファイルFctが同期用として管理されていることになる。このような状態から、当該コンテンツファイルFct「C’」の修正前の時点に復元された場合には、管理情報30bにおいて、当該コンテンツファイルFct「C’」の管理を同期用から全コンテンツファイル保存用に変更する必要があるのは、いうまでもない。
なお、図22では図示されていないが、差分タイプが「コンテンツ追加」であるコンテンツファイルについては、上述した実施の第2の形態の場合と同様に、ハードディスク127側で追加されたコンテンツファイルFct(すなわち、「今回エントリID」で特定されるコンテンツファイルFct)を、ハードディスク127側で削除させるようにすればよい。
そして、この差分タイプが「コンテンツ追加」とされたコンテンツファイルFctについても、復元処理が指示された時点で記録媒体130に当該コンテンツファイルFctがバックアップされているか否かで、処理が異ならされる。
すなわち、例えば、復元処理が指示される直前のバックアップ処理から当該復元処理指示の間に、ハードディスク127側に追加されたコンテンツファイルFctについては、復元処理指示の時点で記録媒体130にバックアップされておらず、また、管理情報30bにも当該コンテンツファイルFctの情報は反映されていない。そのため、当該コンテンツファイルFctに関しては、復元処理を行うに当たって、特段の処理は不要である。
一方、ハードディスク127側に対してコンテンツファイルFctが追加された後にバックアップ処理がなされ、その後、復元処理がなされた場合には、当該コンテンツファイルFctは、既に記録媒体130に記録されていると共に、管理情報30bにおいて同期用として管理されていることになる。その後、当該コンテンツファイルFctのハードディスク127側への記録が行われる前の時点が復元対象時点として指定された場合、当該コンテンツファイルFctは、管理情報30bにより「全コンテンツファイル保存用」として管理されるべきものとなる。
例えば、時点t4〜t5の間でコンテンツファイル「E」が追加された場合には、時点t5のバックアップ時点で当該コンテンツファイル「E」が「同期用」として記録媒体130側で保持されることになる。その場合、時点t7の任意時点復元処理で時点t3の状態への復元が行われると、このコンテンツファイル「E」は、「全コンテンツ保存用」として管理されるべきものとされることが分かる。
なお、この任意時点復元処理における、差分タイプが「エントリ更新」であるコンテンツファイルFctの取り扱いについては、上述した実施の第2の形態で説明した復元処理の場合に準ずるものとする。
上述のように、この発明の実施の第5の形態によれば、過去に行われたバックアップ処理時点のうち任意の時点でのバックアップ元の記録状態を復元することができる。
それと共に、バックアップ先である記録媒体130において、このような復元処理が行われた場合にも、ハードディスク127側と同期しているコンテンツファイルFctと、全コンテンツファイル保存処理に伴って保存される同期用以外のコンテンツファイルFctとを、それぞれ管理することができる。
また、この実施の第5の形態によれば、実際に転送を行うのは差分のファイルのみとすることができ、この点で任意時点復元処理をより高速化することができる。また、転送すべきコンテンツファイルFctが減ることで、処理負担についても軽減することができる。また、差分情報SBは、復元対象時点のインデックスファイルFindexと今回バックアップ時のインデックスファイルFindex同士の内容を突き合わせて生成するので、その分高速に取得することができ、したがってこの点でも任意時点復元処理としての高速化が図られている。
さらに、この実施の第5の形態によれば、インデックスファイルFindexには、コンテンツ更新日時などのファイル識別子以外の他のファイル関連情報もエントリされ、このようなインデックスファイルFindexをハードディスク127側と記録媒体130側とで比較して差分情報SBを取得するようにしている。そのため、ので、差分タイプが「コンテンツ更新」や「エントリ更新」などコンテンツの追加や削除以外の他の差分タイプについても、管理情報同士を比較するのみで差分情報SBを取得することができ、コンテンツの追加や削除以外の差分のタイプに応じた処理(この場合では「コンテンツ更新」とされたファイルについての復元処理)についても高速化が図られている。
2−5−2.実施の第5の形態による復元処理のより詳細な説明
次に、この実施の第5の形態によるバックアップ処理および復元処理のより詳細な動作を、図23〜図25のフローチャートを用いて説明する。図23は、実施の第5の形態によるバックアップ処理の全体的な動作を示す一例のフローチャートである。なお、図23の処理に先立って、バックアップ先の記録媒体130がドライブ装置128に装填され、アクセス可能な状態とされているものとする。また、図23に示される各制御および判断処理などは、CPU120により、所定のプログラムに従いなされる。
なお、図23のフローチャートにおいて、ステップS1006以外の処理は、上述の実施の第4の形態で図20を用いて説明した処理と同一なので、説明を省略する。すなわち、この図23におけるステップS1001〜ステップS1005は、図20のステップS801〜ステップS805の各処理とそれぞれ同一であり、図23のステップS1008〜ステップS1010の処理は、図20のステップS808〜ステップS810の各処理と同一である。また、図23のステップS1007の処理は、図20のステップS807の処理と同一である。
図23において、ステップS1006では、上述の図20で説明したステップS806の処理と同様に、バックアップ元であるハードディスク127上に記録されるインデックスファイルFindexを、バックアップ先である記録媒体130に対して記録する。このとき、この実施の第5の形態においては、ステップS1006で、ハードディスク127側に記録されるインデックスファイルFindexを、今回バックアップ処理を行った時点と対応付けて、記録媒体130に保存する。
すなわち、図22を用いて説明したようにして、任意のバックアップ処理時点でのハードディスク127におけるコンテンツファイルFctの格納状態を復元できるようにするために、図23に示すステップS1003で、差分情報生成用情報Rdyを生成するためにハードディスク127側から読み出され、例えばRAM121などに一時的に記憶されるインデックスファイルFindexを、今回のバックアップ処理の時点に対応付けて保存するようにされている。ハードディスク127から読み出されたインデックスファイルFindexの保存先を、例えば記録媒体130としてもよい。
図24は、この実施の第5の形態による、任意時点における復元処理の一例の動作を示すフローチャートである。なお、図24の処理に先立って、ドライブ装置128にはバックアップ先である記録媒体130が装填され、当該記録媒体130には、バックアップ元であるハードディスク127に対してバックアップ指示がなされた各時点における記録内容が、図22および図23を用いて説明したようにして、既にバックアップされているものとする。
最初のステップS1101で、CPU120により、ハードディスク127の記録内容を、バックアップ処理が行われたいずれかの時点の記録状態に復元する処理を行う指示が待機される。例えば操作部124に対して復元処理を行う指示がなされたと判断されれば、処理は次のステップS1102に移行される。
ステップS1102では、ハードディスク127の記録内容をどの時点の状態に復元するかが選択される。例えば、CPU120は、記録媒体130上に保存されている各時点でのインデックスファイルFindexを参照し、これら各インデックスファイルFindexにそれぞれ対応付けられている、バックアップ処理を行った時点を示す情報を取得する。取得された情報は、例えばビデオカメラ装置100に設けられている表示装置に所定に表示される。この表示に基づき操作部124が操作され、どの時点の状態に復元するかが選択される。
次のステップS1103で、CPU120は、この選択された復元時点の情報に基づ差分情報生成用情報Rdyを生成する。すなわち、CPU120は、記録媒体130に保存されている各時点のインデックスファイルFindexのうち、ステップS1102で選択された復元時点を示す情報に対応するインデックスファイルFindexを読み出し、例えばRAM121に記憶すると共に、ハードディスク127から、現時点で記録されているインデックスファイルFindexを読み出しRAM121に記憶する。そして、CPU120は、復元時点を示す情報に対応するインデックスファイルFindexに基づき前回バックアップ時の相違検出用情報リストLDd-psを生成すると共に、ハードディスク127の現時点でのインデックスファイルFindexに基づき今回バックアップ時の相違検出用情報リストLDd-prを生成する。そして、生成されたこれら相違検出用情報リストLDd-psおよび相違検出用情報リストLDd-prにより、差分情報生成用情報Rdyを生成する。
ステップS1104では、ステップS1103で生成された差分情報生成用情報Rdyに基づき、図11を用いて説明したのと同様にして、差分情報リストLSBが生成される。
次のステップS1105で、ステップS1104で生成された差分情報リストLSBに基づき、差分ファイル群処理が行われる。すなわち、このステップS1105において、ステップS1102で選択された復元時点におけるハードディスク127の格納状態を復元するために、差分情報リストLSBに基づき、記録媒体130上のコンテンツファイルFctのハードディスク127への記録、ハードディスク127からのコンテンツファイルFctの削除を行う。
ステップS1104で差分ファイル群の処理がなされ、ハードディスク127上に、選択された復元時点の格納状態が復元されたら、処理はステップS1106に移行される。ステップS1106では、バックアップ先である記録媒体130に記録される、選択された復元時点にバックアップされたインデックスファイルFindexで、バックアップ元であるハードディスク127上のインデックスファイルFindexを置き換える。
これにより、復元されたコンテンツファイルFctの格納状態に合致した情報内容によるインデックスファイルFindexをハードディスク127に記録させることができる。ハードディスク127側において、復元されたコンテンツ群がハードディスク127上に記録されたものとして適正に管理することができるようになる。
そして、次のステップS1107で、図22を用いて説明したような方法により、コンテンツファイルFctが同期用と全コンテンツファイル保存用とでそれぞれ管理されるように、管理情報30bが更新される。これにより、任意時点への復元処理が行われる場合でも、記録媒体130上に記録されている各コンテンツファイルFctが、同期用と全コンテンツファイル保存用とで区別して管理されるようにできる。
図25は、上述したステップS1105における差分ファイル群処理をより詳細に示す一例のフローチャートである。先ず、ステップS1201において、差分情報リストLSB内の対象とする差分情報SBを指し示すためのポインタ値[k]をリセットし、値「0」とする。次のステップS1202は、ポインタ値[k]が、差分情報リストLSBにおける差分情報SBのリストアップ数と一致したか否かについて判別する。若し、一致していないと判別された場合は、処理はステップS1203に移行され、差分情報リストLSB中の[k]番目の差分情報SBを取得する。
次のステップS1204は、取得された差分情報SBに基づき、差分タイプが「コンテンツ追加」、「コンテンツ削除」、「コンテンツ更新」および「エントリ更新」のうち何れであるかを判別し、判別結果に応じて処理を分岐させる。
ステップS1204で、差分タイプが「コンテンツ追加」であると判別されれば、処理はステップS1205に移行される。ステップS1205では、ハードディスク127上の「今回エントリID」のエントリに相当するコンテンツファイルFctを削除する。そして、処理は次のステップS1206に移行される。
「今回エントリID」に対応するコンテンツファイルFctを既にバックアップしている場合、ステップS1206で、管理情報30bにおいて当該コンテンツファイルFctの属性が「全コンテンツファイル保存用」に設定される。これは、管理情報30bにより同期用および全コンテンツファイル保存用のコンテンツファイルFctをそれぞれ管理しているために、差分タイプが「コンテンツ追加」とされたコンテンツファイルFctが既に記録媒体130にバックアップされている場合に、当該コンテンツファイルFctの属性を、それまでの「同期用」から「全コンテンツファイル保存用」に変更する必要があるからである。
ステップS1206の処理が終了すると、処理はステップS1213に移行される。ステップS1213では、ポインタ値[k]が1だけインクリメントされ、処理はステップS1202に戻される。
ステップS1204で、差分タイプが「コンテンツ更新」であると判別されれば、処理はステップS1207に移行される。ステップS1207では、「今回エントリID」のエントリに相当するコンテンツファイルFctをハードディスク127から削除する。そして、処理はステップS1208に移行され、「前回エントリID」のエントリに相当するコンテンツファイルFctを記録媒体130から読み出し、ハードディスク127に記録する。
次のステップS1209で、管理情報30bにおいて、「前回エントリID」のエントリに相当するコンテンツファイルFctの属性を「同期用」に設定する。さらに、「今回エントリID」のエントリに相当するコンテンツファイルを既にバックアップしている場合は、次のステップS1210で、そのファイルの属性を「全コンテンツ保存用」に設定する。ステップS1210の処理が終了すると、処理はステップS1213に移行され、ポインタ値[k]が1だけインクリメントされ、処理がステップS1202に戻される。
ステップS1204において、差分タイプが「コンテンツ削除」であると判別されると、処理はステップS1211に移行される。ステップS1211では、記録媒体130から「前回エントリID」に相当するコンテンツファイルFctを読み出し、ハードディスク127に記録する。次のステップS1212で、管理情報30bにおいて、「前回エントリID」のエントリに相当するコンテンツファイルの属性を「同期用」に設定する。
ステップS1212の処理が終了すると、処理はステップS1213に移行され、ポインタ値[k]が1だけインクリメントされ、処理がステップS1202に戻される。
ステップS1204において、差分タイプが「エントリ更新」であると判別された場合には、処理はそのままステップS1213に移行され、ポインタ値[k]が1だけインクリメントされ、処理はステップS1202に戻される。すなわち、差分タイプが「エントリ更新」の場合は、特段の処理を実行せずに次の差分情報SBに基づく処理を実行するようにされる。
また、上述したステップS1202において、ポインタ値[k]がリストアップ数と一致したと判別されれば、この図25のフローチャートによる一連の処理が終了され、処理は上述した図24におけるステップS1106に移行される。
なお、これまでで説明した任意時点復元処理では、当該復元処理が行われる時点におけるハードディスク127側のコンテンツファイルFctの格納状態を記録媒体130側に反映させないものとしている。これはこの例に限られず、例えば、図24にて説明した任意時点復元処理を実行する前に、図23に示した同期処理および全コンテンツファイル保存処理によるバックアップ処理を行うように構成すれば、この任意時点復元処理から見た前回バックアップ時から当該復元処理が行われる時点までの間にハードディスク127上で変更されたコンテンツファイルFctの格納状態を、記録媒体130側に反映させるようにすることもできる。
なお、上述では、バックアップを行った任意の時点に対する復元処理を実現するために、実施の第1の形態の同期処理によるバックアップ処理と、実施の第4の形態の全コンテンツファイル保存によるバックアップ処理とを組み合わせたが、これはこの例に限定されない。すなわち、バックアップを行った任意時点への復元を実現するためには、バックアップを行った各時点でのインデックスファイルFindexと、ハードディスク127側で記録され、且つ、過去においてバックアップ先である記録媒体130への保存対象とされた全てのコンテンツファイルFctが記録媒体13に保存されていればよい。したがって、上述した実施の第3の形態による全コンテンツファイル保存によるバックアップ方法でも、バックアップ時点毎のインデックスファイルFindexをそれぞれ記録媒体130に保存することで、バックアップを行った任意の時点に対する復元処理を実現可能である。
また、任意時点復元処理が行われた場合、ハードディスク127側にて復元されたコンテンツファイルFctの格納位置、例えばディレクトリ構造上の格納位置は、バックアップ時点の位置と復元時の位置とで必ずしも同じ位置になるとは限らない。一方、任意時点復元処理によりハードディスク127側で置き換えられるインデックスファイルFindexは、バックアップ時点でのファイル格納状態を反映している。
そのため、復元処理によってハードディスク127側で復元されたコンテンツファイルFctの格納位置が、同じく復元処理によって置き換えられたインデックスファイルFindex内のファイルパスが指し示す位置と一致しなくなっている可能性がある。そのため、ハードディスク127上に置き換えられたインデックスファイルFindexから、復元されたコンテンツファイルFctにアクセスできなくなってしまうおそれがある。
ここで、復元処理により記録媒体130から読み出されたコンテンツファイルFctをハードディスク127に記録する際のファイルパスに基づき、復元処理により置き換えられた、ハードディスク127上のインデックスファイルFindexにおける該当するコンテンツファイルFctのエントリデータ内のファイルパスを更新すれば、その後も各コンテンツファイルFctをファイルパスを参照することで、適正に特定することができるようになる。
別の方法として、インデックスファイルFindexとしては、コンテンツIDによっても各コンテンツファイルFctを特定することができるようにされている。従って任意時点復元処理が行われた以降は、インデックスファイルFindex内のコンテンツIDによって各コンテンツファイルFctを特定するように変更することによっても、上述のような問題は回避することができる。
なお、実施の第5の形態の任意時点復元処理が行われる場合において、コンテンツIDを後述するレコーディングオーダで実現している場合は、復元処理後、新たに作成(追加)されるコンテンツファイルFctに割り振られるレコーディングオーダが、復元対象時点から復元処理が行われるまでに割り振られたレコーディングオーダと重複しないようにするための処理が別途必要となる。なお、これまでの実施の形態のようにコンテンツIDをファイルパスとファイル更新日時との組で実現している場合には、そのような処理は不要である。
2−6.発明の実施の第6の形態について
次に、この発明の実施の第6の形態について説明する。この実施の第6の形態においては、ハードディスク127における記録内容のバックアップ処理自体は、実施の第3の形態で既に説明したような、全コンテンツファイル保存処理による方法で行う。一方、この実施の第6の形態では、バックアップ元であるハードディスク127に対して新たなコンテンツファイルFctが追加される毎にインクリメントされる、レコーディングオーダと呼ばれる値を定義し、このレコーディングオーダを用いてバックアップ処理の制御を簡易的に行うようにしている。
レコーディングオーダは、ハードディスク127に対して新たなコンテンツファイルFctが追加された場合に、所定値、例えば1だけインクリメントされる。また、レコーディングオーダは、ハードディスク127に既に記録されているコンテンツファイルFctが更新された場合にも、所定値、例えば1だけインクリメントされる。すなわち、レコーディングオーダは、コンテンツファイルFctのハードディスク127に対する記録順を示す情報である。
このレコーディングオーダは、図5を用いて説明したインデックスファイルFindex内の各管理ファイルスロットSm、すなわち各エントリデータにおけるコンテンツID部64に格納される。すなわち、レコーディングオーダは、エントリIDに対応付けられたコンテンツファイルFctを一意に識別するコンテンツIDとして扱われる。
この実施の第6の形態においては、バックアップ元であるハードディスク127におけるコンテンツファイルFctの格納状態と、バックアップ先である記録媒体130におけるコンテンツファイルFctの格納状態との差分を、このレコーディングオーダを用いて求めるようにしている。すなわち、ハードディスク127および記録媒体130それぞれのインデックスファイルFindex内に格納されるコンテンツIDのみを互いに比較することで、差分検出を行うようにしている。
なお、コンテンツファイルFctの更新は、例えば対象となるコンテンツファイルFctの全部または一部をRAM121などに一時的に記憶させ、CPU120によりRAM121上で修正等が加えられたコンテンツファイルFctがハードディスク127上の元の位置に書き戻されることで行われる。したがって、コンテンツファイルFctの更新も、ハードディスク127に対して新たなコンテンツファイルFctが記録されたものと見なすことができる。
また、バックアップ処理を行った各コンテンツファイルFctに対応するレコーディングオーダのうち最大の値を有するレコーディングオーダは、当該時点に対して最も新しく記録または更新されたコンテンツファイルFctに対応する。換言すれば、バックアップ処理を行った時点で最大の値を有するレコーディングオーダは、当該時点から遡ってハードディスク127に最後に記録または更新されたコンテンツファイルFctに対応することになる。以下、このバックアップを行った時点で最大の値を有するレコーディングオーダを、最終レコーディングオーダと呼ぶ。
全コンテンツファイル保存処理によりバックアップを行う場合、ハードディスク127側において前回のバックアップ処理の時点から今回のバックアップ処理の時点までの間に追加または更新されたコンテンツファイルFctのみが特定されればよい。
そこで、この実施の第6の形態では、ハードディスク127の記録内容を、ある時点で記録媒体130に全コンテンツファイル保存処理によりバックアップする際に、ハードディスク127上のインデックスファイルFindexを記録媒体130に記録する処理を行わず、当該時点におけるハードディスク127上での最終レコーディングオーダのみを、記録媒体130に記録させ、保持するようにしている。
次回のバックアップ処理の際に、記録媒体130に保持されている最終レコーディングオーダと、ハードディスク127に記録されるインデックスファイルFindex内に格納される各コンテンツファイルFctに対応するコンテンツIDとをそれぞれ比較する。比較の結果、記録媒体130に保持されている最終レコーディングオーダよりも値の大きなレコーディングオーダに対応するコンテンツファイルFctが、追加または更新されたコンテンツファイルFctであることが把握できる。
2−6−1.実施の第6の形態によるバックアップ処理について
図26は、この実施の第6の形態による一例のバックアップ処理を模式的に示す。図26Aは、バックアップ元となるハードディスク127に記録されたコンテンツファイルFctについて、時間軸tに沿った一例の状態遷移を示す。図26Bは、ドライブ装置128により記録媒体130上に記録されるインデックスファイルFindex、コンテンツファイルFctおよび管理情報30bについて、同様に時間軸tに沿った一例の状態遷移を示す。
なお、図26Aに例示される、ハードディスク127側の処理は、図6Aを用いて説明した実施の第1の形態によるバックアップ処理の場合と同様なので、重複する部分については、詳細な説明を省略する。
図26Aに例示されるように、バックアップ元であるハードディスク127には、初期状態においてコンテンツファイルFctとしてコンテンツファイルFct「A」、コンテンツファイルFct「B」およびコンテンツファイルFct「C」が記録され、インデックスファイルFindexとしては、その格納状態に応じた内容「1」を有するファイルが記録されていたとする。
ここで、コンテンツファイルFct「A」、Fct「B」およびFct「C」は、それぞれの記録順に応じてレコーディングオーダの付与され、レコーディングオーダの値がインデックスファイルFindex内の対応する管理ファイルスロットSmにおけるコンテンツID部64にそれぞれ格納される。一例として、コンテンツファイルFct「A」、Fct「B」およびFct「C」のレコーディングオーダの値は、それぞれ値「1」、値「2」および値「3」とする。この場合、最終レコーディングオーダの値は「3」である。
さらに、図26Aの例では、ハードディスク127側において、初期状態の後、時点t2でコンテンツファイルFct「D」が追加され、当該コンテンツファイルFct「D」のレコーディングオーダ値「4」が最終レコーディングオーダとされると共に、インデックスファイルFindexの内容が、初期状態の内容「1」からレコーディングオーダ値「4」を反映した内容「2」に更新される。また、時点t4で、コンテンツファイルFct「B」が削除されてインデックスファイルFindexの内容が内容「2」から内容「3」に更新される。ファイルの削除の場合はレコーディングオーダ値が増加しないので、最終レコーディングオーダの変化は無い。さらに、時点t6でコンテンツファイルFct「C」が修正されてコンテンツファイルFct「C’」に更新され、当該コンテンツファイルFct「C’」のレコーディングオーダ値「5」が最終レコーディングオーダとされると共に、インデックスファイルFindexの内容が、時点t4の内容「3」からレコーディングオーダ値「5」を反映した内容「4」に更新される。
一方、図26の例では、バックアップ処理は、例えばビデオカメラ装置100の操作部124に対してなされる所定の操作に応じて、時点t1、時点t3、時点t5および時点t7で行われる。
時点t1における初回のバックアップ処理では、CPU120は、ハードディスク127からこれらコンテンツファイルFct「A」、「B」および「C」を読み出し、記録媒体130に記録すると共に、最終レコーディングオーダとなるレコーディングオーダ値(例えば値「3」)を、記録媒体130に記録させ保持させる。このように、この実施の第6の形態では、上述した実施の第1〜第5の形態のように、インデックスファイルFindexを記録媒体130に記録させる必要が無い。
時点t3のバックアップ処理は、コンテンツファイルFctの追加後の処理の例である。時点t3では、記録媒体130に保持される、前回のバックアップ処理時すなわち時点t1において最終レコーディングオーダとなるレコーディングオーダ値と、時点t3においてハードディスク127に記録されるインデックスファイルFindexに格納される各レコーディングオーダの値とを比較し、最終レコーディングオーダーよりも値の大きなレコーディングオーダーが対応付けられたコンテンツファイルFctを特定する。
この図26の例では、時点t1にて記録媒体130に保持された最終レコーディングオーダの値が「3」であり、一方、ハードディスク127に記録される各コンテンツファイルFct「A」、「B」、「C」および「D」のレコーディングオーダは、それぞれ値「1」、値「2」、値「3」および値「4」であるとする。これにより、記録媒体130に保持された最終レコーディングオーダより大きなレコーディングオーダが値「4」であり、当該レコーディングオーダに対応付けられたコンテンツファイルFct「D」が、前回のバックアップ処理の時点から追加されたコンテンツファイルFctとして特定される。
ここで、実施の第6の形態においては、ハードディスク127に記録されるコンテンツファイルFctのうち、記録媒体130に保持される最終レコーディングオーダとされるレコーディングオーダ値よりも大きなレコーディングオーダ値を有するコンテンツファイルFctを特定するための情報を、図27に一例が示されるような、簡易差分情報リストLSB-eとして生成する。簡易差分情報リストLSB-eは、このように、最終レコーディングオーダよりも値が大きなレコーディングオーダを有するコンテンツファイルFctに対するアクセス情報がリストアップされる。具体的には、ハードディスク127に記録されるインデックスファイルFindexに格納されるファイルパス部66に格納される、該当する各コンテンツファイルFctのファイルパス情報をリストアップする。
なお、簡易差分情報リストLSB-eの構成は、上述に限らず、例えばファイルパス情報の代わりに、コンテンツIDをリストアップする構成も考えられる。
図26に戻り、時点t3において、上述したような簡易差分情報リストLSB-eに基づき、前回のバックアップ処理の時点から追加されたコンテンツファイルFctが特定されると、CPU120は、ハードディスク127から当該特定されたコンテンツファイルFctを読み出し、記録媒体130に記録するように処理する。
図26の例では、CPU120は、ハードディスク127上に記録されたコンテンツファイルFct「D」を読み出し、記録媒体130に記録する。それと共に、CPU120は、ハードディスク127に記録されるインデックスファイルFindexの内容に基づき、最も値の大きなレコーディングオーダを検索し、検索されたレコーディングオーダを最終レコーディングオーダとして、記録媒体130に記録し保持させる。この例では、最終レコーディングオーダとして、コンテンツファイルFct「D」に対応するレコーディングオーダ値「4」が記録媒体130に保持される。
時点t5のバックアップ処理は、コンテンツファイルFctの削除後の処理の例である。時点t5において、記録媒体130に保持される最終レコーディングオーダは、前回のバックアップ処理が行われた時点t3のバックアップ処理時に記録媒体130に保持されたレコーディングオーダ値「4」である。一方、ハードディスク127では、時点t3から時点t5までの間にコンテンツファイルFctの追加または更新が行われていないので、最大のレコーディングオーダ値は、コンテンツファイルFct「D」に対応する値「4」のまま変わらない。記録媒体130に保持される最終レコーディングオーダの値と、ハードディスク127上のコンテンツファイルFctに対応するレコーディングオーダ値の最大値とが等しいため、簡易差分情報リストLSB-eは、空となり、ハードディスク127上に記録されたコンテンツファイルの記録媒体130への記録は行われない。
この場合、CPU120は、ハードディスク127に記録されるインデックスファイルFindexに基づき、レコーディングオーダ値「4」を最終レコーディングオーダとして記録媒体130に記録し保持させる。
時点t7のバックアップ処理は、コンテンツファイルFctの更新後の処理の例である。この場合、更新されたコンテンツファイルFctに対して新たなレコーディングオーダを付与するか否かによって、処理が異なる。
更新されたコンテンツファイルFctに対して新たなレコーディングオーダを付与しない場合は、当然のことながら、この更新によってハードディスク127に記録されるインデックスファイルFindex内に格納されるレコーディングオーダ値に変化が生じない。したがって、バックアップ処理としては、前回のバックアップ処理の時点から今回の処理の時点の間に、ハードディスク127におけるコンテンツファイルFctの格納状態が変化しなかったと見做される。
一方、更新されたコンテンツファイルFctに対して新たなレコーディングオーダを付与する場合には、新たに付与されたレコーディングオーダ値は、インデックスファイルFindex内に格納される各レコーディングオーダ値に対して最大の値とされる。したがって、記録媒体130に保持される最終レコーディングオーダと、ハードディスク127上のインデックスファイルFindex内に格納される各レコーディングオーダ値とを比較した場合、この更新されたコンテンツファイルFctに対応するレコーディングオーダ値が、最終レコーディングオーダよりも値が大きなレコーディングオーダ値とされ、対応するコンテンツファイルFctがバックアップ対象として特定される。
図26の例では、時点t6で更新されたコンテンツファイルFct「C’」がレコーディングオーダ値「5」とされ、記録媒体130上に最終レコーディングオーダとして保持されるレコーディングオーダ値「4」よりも大きな値となっている。したがって、簡易差分情報リストLSB-eに対し、このコンテンツファイルFct「C’」のファイルパス情報が追加される。そして、この簡易差分情報リストLSB-eに基づき、当該コンテンツファイルFct「C’」をハードディスク127から読み出し、記録媒体130に記録する。さらに、ハードディスク127に記録されるインデックスファイルFindexに基づき、最も値の大きなレコーディングオーダ値「5」を最終レコーディングオーダとして、記録媒体130に記録し保持させる。
なお、以下では、更新されたコンテンツファイルFctに対して新たなレコーディングオーダを付与するものとする。
上述のように、この発明の実施の第6の形態による、最終レコーディングオーダを用いたバックアップ処理によれば、上述した実施の第3の形態の場合と同様に、過去に記録媒体130への保存対象とされたコンテンツファイルFctについては、これらを全て、記録媒体130側において保存しておくことができる。また、この場合に、実際にハードディスク127から読み出して記録媒体130に記録するのは、差分のファイルのみとすることができ、全コンテンツを上書きコピーして実現する場合と比較すれば全コンテンツ保存処理をより高速化することができるさらに、このように転送すべきコンテンツファイルFctが減ることで、処理負担についても軽減することができる。
さらにまた、この実施の第6の形態によるバックアップ処理によれば、差分情報の生成にあたっては、レコーディングオーダのみについての比較を行えばよく、上述した実施の第3の形態のように、ハードディスク127側のインデックスファイルFindexと、記録媒体130側のインデックスファイルFindexとを比較する場合よりも、さらに高速に差分情報を取得することができ、全コンテンツファイル保存処理をさらに高速化できる。
2−6−2.実施の第6の形態によるバックアップ処理のより詳細な説明
次に、この実施の第6の形態によるバックアップ処理のより詳細な動作を、図28〜図30のフローチャートを用いて説明する。図28は、実施の第6の形態による、最終レコーディングオーダを用いたバックアップ処理の全体的な動作を示す一例のフローチャートである。なお、図28の処理に先立って、バックアップ先の記録媒体130がドライブ装置128に装填され、アクセス可能な状態とされているものとする。また、図28に示される各制御および判断処理などは、CPU120により、所定のプログラムに従いなされる。
最初のステップS1301で、CPU120は、バックアップ元であるハードディスク127上に記録されたコンテンツファイルFctの、バックアップ先の記録媒体130への全コンテンツファイル保存処理によるバックアップを行う旨の指示を待機し、当該指示がなされと判断されたら、処理はステップS1302に移行される。
ステップS1302では、バックアップ先の記録媒体130上に、最終レコーディングオーダがバックアップされて記録されているか否かが判別される。若し、最終レコーディングオーダが記録媒体130上に存在しないと判断されれば、処理はステップS1307に移行される。
ステップS1307および続くステップS1308において、ハードディスク127上に記録されているコンテンツファイルFctの全てを記録媒体130に記録する処理がなされる。その後、処理はステップS1309に移行され、記録媒体130に対して最終レコーディングオーダが保存される。すなわち、ステップS1309では、CPU120は、ハードディスク127上に記録されるインデックスファイルFindex内の各エントリデータ、すなわち各管理ファイルスロットSmに含まれるコンテンツID部64に格納される情報に基づき、最も大きな値を持つレコーディングオーダを検索する。検索されたレコーディングオーダを、最終レコーディングオーダとして、記録媒体130に保存する。
ステップS1309で最終レコーディングオーダが記録媒体130に保存されると、処理はステップS1310に移行され、記録媒体130におけるコンテンツファイルの格納状態に応じて、管理情報30bを更新する。この実施の第6の形態による管理情報30bの更新方法などは、上述した実施の第3の形態の例と同様であるので、詳細な説明を省略する。
一方、上述のステップS1302において、記録媒体130上に既に最終レコーディングオーダが保存されていると判別されれば、処理はステップS1303に移行される。
ステップS1303において、CPU120は、バックアップ元であるハードディスク127に記録からインデックスファイルFindexを読み出し、次のステップS1304で、読み出したインデックスファイルFindex内の各エントリデータすなわち各管理ファイルスロットSmに基づき、簡易差分情報リストLSB-eを生成する。
次のステップS1305で、ステップS1304で生成された簡易差分情報リストLSB-eに基づき、差分ファイル群処理が行われる。この差分ファイル群処理により、前回のバックアップの時点から今回のバックアップの時点までの間に、ハードディスク127において追加または更新されたコンテンツファイルFctが、記録媒体130に対して記録される。
なお、ステップS1304における簡易差分情報リストLSB-eの生成方法と、ステップS1305における差分ファイル群処理については、詳細は後述する。
ステップS1305での差分ファイル分処理が終了されると、処理はステップS1306に移行され、記録媒体130上に保存される最終レコーディングオーダが更新される。例えば、CPU120は、ハードディスク127上のインデックスファイルFindex内における各エントリデータ内のコンテンツIDを参照し、最も値の大きいレコーディングオーダを、新たな最終レコーディングオーダとして取得する。取得された新たな最終レコーディングオーダは、記録媒体130に既に保存されている最終レコーディングオーダと置き換えられて、記録媒体130に保存される。
最終レコーディングオーダの更新が終了すると、処理はステップS1310に移行され、上述しように、コンテンツファイルFctの格納状態に応じて管理情報30bを更新する。
図29は、上述したステップS1304における簡易差分情報リストLSB-eの一例の生成処理をより詳細に示すフローチャートである。最初のステップS1401で、CPU120は、記録媒体130にバックアップされている最終レコーディングオーダを取得する。
次のステップS1402で、ポインタ値[j]をリセットし、値「0」とする。このポインタ値[j]は、上述してステップS1303において、ハードディスク127から取得したインデックスファイルFindex内にエントリされる各エントリデータすなわち管理ファイルスロットSmから、対象とするエントリデータを指し示すためのポインタとしての役割を果たす。なお、この意味で、先に説明したような今回バックアップ時の相違検出用情報リストLDd-psについてのポインタ値[j]と同じ符号を付している。
次のステップS1403で、ポインタ値[j]が、ハードディスク127に記録される全コンテンツファイル数と一致したか否かを判別する。すなわち、ポインタ値[j]が、取得したインデックスファイルFindex内にエントリされるエントリデータの数と一致したか否かについて判別する。ポインタ値[j]が、ハードディスク127に記録される全コンテンツファイル数と一致していないと判別されれば、処理はステップS1404に移行する。
ステップS1404では、[j]番目のコンテンツファイルFctのエントリデータからレコーディングオーダを取得する。すなわち、ポインタ値[j]により指し示されるエントリデータ内のコンテンツID部64に格納されるコンテンツIDを取得する。そして、次のステップS1405において、ステップS1404で取得したレコーディングオーダの値が、ステップS1401で取得されたバックアップした最終レコーディングオーダの値よりも大きいか否かを判別する。
ステップS1405で、ステップS1404で取得したレコーディングオーダの値が、ステップS1401で取得されたバックアップした最終レコーディングオーダの値よりも大きいと判別されれば、処理はステップS1406に移行される。これは、換言すれば、記録媒体130にバックアップされたコンテンツファイルFctよりも後に記録されたコンテンツファイルFctがハードディスク127上に存在することを意味する。
ステップS1406において、CPU120は、ポインタ値[j]により示されるエントリデータ内のファイルパス部66を参照し、[j]番目のコンテンツのエントリデータからファイルパスを取得する。そして、次のステップS1407で、取得されたファイルパスの情報を、図27を用いて説明した簡易差分情報リストLSB-eにリストアップする。この簡易差分情報リストLSB-eは、例えばRAM121に一時的に記憶される。
ステップS1407でファイルパスが簡易差分情報リストLSB-eに追加されると、処理はステップS1408に移行され、ポインタ値[j]が1だけインクリメントされ、処理がステップS1403に戻される。
一方、上述のステップS1405において、ステップS1404で取得したレコーディングオーダの値が、ステップS1401で取得されたバックアップした最終レコーディングオーダの値よりも小さいと判別された場合は、処理はステップS1408に移行され、ポインタ値[j]が1だけインクリメントされ、処理がステップS1403に戻される。
これは、換言すれば、ハードディスク127上に存在するコンテンツファイルFctは、全て、記録媒体130にバックアップされたコンテンツファイルFctよりも前に記録されたコンテンツファイルFctであるので、ハードディスク127上に存在するコンテンツファイルFctに対応するファイルパスの情報を、簡易差分情報リストLSB-eに追加しないことを意味する。
なお、ステップS1403において、ポインタ値[j]がハードディスク127に記録される全コンテンツファイル数と一致したと判別されたら、このフローチャートにおける一連の処理が終了され、処理は上述の図28におけるステップS1305に移行される。
図30は、上述の図28におけるステップS1305の、差分ファイル群に対する一例の処理をより詳細に示すフローチャートである。最初のステップS1501において、ポインタ値[m]がリセットされ、値「0」とされる。このポインタ値[m]は、簡易差分情報リストLSB-e内にリストアップされるファイルパスから、対象とするファイルパスを指し示すためのポインタとしての役割を果たす。
次のステップS1502では、ポインタ値[m]が簡易差分情報リストLSB-eにおけるファイルパスのリストアップ数と一致したか否かが判別される。ステップS1502において、ポインタ値[m]が簡易差分情報リストLSB-e内のリストアップ数と一致していないと判別されれば、処理はステップS1503に移行される。
ステップS1503では、CPU120により、簡易差分情報リストLSB-eに示される[m]番目のファイルパスが取得される。[m]番目のファイルパスが取得されると、次のステップS1504で、取得されたファイルパスにより示されるコンテンツファイルFctをハードディスク127から読み出し、記録媒体130に記録する要求がなされる。この要求は、例えば、CPU120によりファイルシステム51に対してなされる。この要求に応じて、次のステップS1505で、ハードディスク127から読み出された当該コンテンツファイルFctが記録媒体130に保存される。
ステップS1505の保存処理が実行されると、ステップS1506にてポインタ値[m]が1だけインクリメントされ、処理はステップS1502に戻される。
一方、上述のステップS1502において、ポインタ値[m]が簡易差分情報リストLSB-eにリストアップされたファイルパスのリストアップ数と一致したと判別されれば、このフローチャートによる一連の処理が終了され、処理は上述した図28のステップS1306に移行される。
なお、この実施の第6の形態では、上述の図28〜図30のフローチャートに例示されるように、簡易差分情報リストLSB-eを生成した上で、当該リストに逐次リストアップされるファイルパス毎に、コンテンツファイルFctのハードディスク127からの読み出しおよび記録媒体130への保存を行うようにしたが、これはこの例に限られない。すなわち、この場合でも、簡易差分情報リストLSB-eを生成せずに、差分のコンテンツファイルFctを1つ特定する毎に、そのコンテンツファイルFctのハードディスク127からの読み出しおよび記録媒体130への保存を行うようにすることもできる。また、この場合において、簡易差分情報リストLSB-eにリストアップされる全てのファイルパスについて、一括してコンテンツファイルFctの記録媒体130への保存を行うように構成することもできる。
さらに、この実施の第6の形態では、ハードディスク127にコンテンツファイルFctが記録される記録順を示す情報を、新たなコンテンツファイルFctの記録毎に値が1ずつインクリメントされるレコーディングオーダを用いて実現する場合について説明したが、これはこの例に限定されない。例えば、上述の実施の第1〜第5の形態で説明した、ファイルパスとファイル更新日時との組み合わせによるコンテンツIDを、記録順を示す情報として用いることができる。
2−6−3.実施の第6の形態の変形例について
次に、この発明の実施の第6の形態の変形例について説明する。上述した実施の第6の形態は、バックアップ先である記録媒体130の記録容量が、バックアップ元であるハードディスク127の記録容量と同等か、若しくはより大きい場合に、特に効果的とされるものである。この実施の第6の形態の変形例では、バックアップ先である記録媒体130の記録容量が、バックアップ先であるハードディスク127の記録容量に対して非常に小さい場合に、用いて好適なバックアップ処理方法を提供するものである。
一例として、ビデオカメラ装置100に内蔵されるハードディスク127は、記録容量が60GB(Giga Byte)であるとする。一方、バックアップ先の記録媒体130は、例えば直径8cmの記録可能なタイプのDVDであるものとする。この直径8cmのDVDは、小型で可搬性に優れる一方、記録容量が略1.5GB程度とされている。このような記録媒体130をバックアップ先として用いる場合、図31に例示されるように、ハードディスク127の記録内容を、複数の記録媒体130A、130B、・・・に順次分散的に記録することで、ハードディスク127のバックアップを行うことになる。
このようなバックアップ処理は、実際的には、例えばユーザの手が空いたときなどに、断続的に行われることがしばしば生じると思われる。この場合、ユーザは、前回のバックアップ処理時に、ビデオカメラ装置100内のハードディスク127に記録されたコンテンツデータFctのバックアップを何処まで行ったかを一々覚えていないと、以前バックアップ処理したコンテンツファイルFctを重複してバックアップしてしまったり、どのコンテンツファイルFctをバックアップすべきかを忘れてしまったりするという事態が生じるおそれがある。
そこで、この発明の実施の第6の形態の変形例では、最終レコーディングオーダを、ビデオカメラ装置100側に保存することで、このような事態を解決している。例えば、実施の第6の形態においては、最終レコーディングオーダをハードディスク127や不揮発性メモリ129に保存するように構成する。以下では、最終レコーディングオーダをハードディスク127に保存するものとして説明を行う。
図32を用いて、実施の第6の形態の変形例によるバックアップ処理について、概略的に説明する。図32の左側に、バックアップ元であるハードディスク127におけるコンテンツファイルFctの一例の格納状態を示す。「×(バツ)」印が付されたコンテンツIDすなわちレコーディングオーダに対応するコンテンツファイルFctは、ハードディスク127から削除されたコンテンツファイルFctを示す。また、図32の右側は、バックアップ先である記録媒体130A、130B、・・・を示す。なお、図32中において、レコーディングオーダを「RO」、最終レコーディングオーダを「LRO」としてそれぞれ記述してある。
ここで、ハードディスク127に対し、レコーディングオーダ値「5」までのコンテンツファイルFctが記録されている時点u1で、ハードディスク127の記録内容を記録媒体130にバックアップする場合について考える。なお、この時点で、レコーディングオーダ値「4」のコンテンツファイルFctは、既にハードディスク127から削除されているものとする。また、初期状態において、ハードディスク127に対して最終レコーディングオーダは、記録されていない。また、バックアップ処理を行うに当たって、ユーザは、バックアップ先となる記録媒体130Aを、ビデオカメラ装置100が内蔵するドライブ装置128に予め装填しておく。
この場合、上述した図28の処理に従い、ハードディスク127に記録されているコンテンツファイルFctを、記録媒体130Aに対して、全コンテンツファイル保存処理によるバックアップ保存処理を行う指示がなされると(ステップS1301)、CPU120は、ハードディスク127に最終レコーディングオーダが保存されているか否かを判断する(ステップS1302)。この時点では、未だハードディスク127に対して最終レコーディングオーダが保存されていないので、CPU120は、ファイルシステム51に対して、ハードディスク127に記録されている全コンテンツファイルFctを、記録媒体130Aに記録するように要求する(ステップS1307)。
ファイルシステム51は、この要求に従い、ハードディスク127からコンテンツファイルFctを順次読み出し、記録媒体130Aに記録する(ステップS1308)。このとき、コンテンツファイルFctをハードディスク127から読み出す順序が、レコーディングオーダ順になるように、読み出し順を制御される。
記録が終了されると、最終レコーディングオーダがハードディスク127に保存される(ステップS1309)。この場合、時点u1においてハードディスク127に記録されているコンテンツファイルFctが全て記録媒体130Aに記録されたので、ハードディスク127に記録されているコンテンツファイルFctのレコーディングオーダ値のうち最大のレコーディングオーダ値「5」が最終レコーディングオーダとされる。
なお、この実施の第6の形態の変形例では、記録媒体130AにおけるコンテンツファイルFctの格納状態を管理するための管理情報は、特に用いられないので、図27のステップSS1310における管理情報の更新処理は、省略することができる。勿論、これに限らず、記録媒体130AにおけるコンテンツファイルFctの格納状態に応じて管理情報の生成または更新を行ってもよい。
次に、ハードディスク127に対してコンテンツファイルFctがさらに記録され、レコーディングオーダ値「11」までのコンテンツファイルFctが記録されている時点u2で、ハードディスク127の記録内容を記録媒体130にバックアップする場合について考える。なお、この時点で、レコーディングオーダ値「6」および値「10」のコンテンツファイルFctは、既にハードディスク127から削除されているものとする。
先ず、ユーザは、バックアップ先となる記録媒体130Bをドライブ装置128に装填する。ハードディスク127に記録されているコンテンツファイルFctを、バックアップ先の記録媒体130Bにバックアップする旨の指示に応じて、CPU120は、ハードディスク127に最終レコーディングオーダが保存されているか否かを判断する。この場合には、レコーディングオーダ値「5」が最終レコーディングオーダとして保存されているので、CPU120は、ハードディスク127に記録されているインデックスファイルFindexを取得する(ステップS1303)。
CPU120は、取得されたインデックスファイルFindexに基づき、簡易差分情報リストLSB-eを生成する(ステップS1304)。この図32の例では、レコーディングオーダ値「5」が最終レコーディングオーダとされているので、当該レコーディングオーダ値「5」より大きいレコーディングオーダ値、すなわちレコーディングオーダ値「6」〜レコーディングオーダ値「11」にそれぞれ対応するコンテンツファイルFctのファイルパスが、簡易差分情報リストLSB-eにリストアップされる。
そして、簡易差分情報リストLSB-eにリストアップされているファイルパスに基づき、ハードディスク127からレコーディングオーダ順にコンテンツファイルFctが順次、読み出され、記録媒体130Bに対して記録される(ステップS1305)。レコーディングオーダ値「11」に対応するコンテンツファイルFctが記録媒体130Bに記録されたら、当該レコーディングオーダ値「11」が最終レコーディングオーダとしてハードディスク127に保存される(ステップS1306)。
以上の説明のように、最終レコーディングオーダを、バックアップ元であるハードディスク127側に記録しておいても、上述した実施の第6の形態によるバックアップ処理は、問題なく行えることが分かる。
ここで、バックアップ先である記録媒体130の記録容量が、バックアップ元であるハードディスク127の記録容量よりも非常に小さい場合、バックアップ処理の途中で記録媒体130における記録可能な容量がコンテンツファイルFctのデータサイズよりも少なくなってしまい、バックアップ処理が中断されてしまうことが考えられる。
この実施の第6の形態の変形例では、このような場合でも、問題なくバックアップ処理を実行できる。一例として、図28のステップS1305の差分ファイル群処理において、ファイルシステム51は、例えば記録するコンテンツファイルFctのファイルサイズと、記録媒体130Aの空き容量とをチェックしながら記録を制御し、次に記録しようとするコンテンツファイルFctが記録媒体130Aに記録できないと判断したら、コンテンツファイルFctの記録を終了することが考えられる。例えば、記録が終了されると、処理をステップS1305から強制的にステップS1306に移行させ、バックアップが完了したコンテンツファイルFctのレコーディングオーダ値のうち最大のものを最終レコーディングオーダとして、ハードディスク127に保存するようにする。
図32の例で、時点u2でバックアップ処理を行っている最中に、レコーディングオーダ値「8」のコンテンツファイルFctを記録し終わった段階で、次のレコーディングオーダ値「9」のコンテンツファイルFctを記録するように十分な空き容量が記録媒体130Bに存在しない場合を考える。この場合、レコーディングオーダ値「8」のコンテンツファイルFctを記録し終わったらバックアップ処理を中断し、当該レコーディングオーダ値「8」を最終レコーディングオーダとして、ハードディスク127に保存する。次のバックアップ処理は、この最終レコーディングオーダに基づき、次のレコーディングオーダ値「9」のコンテンツファイルFctから開始させることができる。
さらに、この方法を応用することで、ハードディスク127に多量に蓄積されたコンテンツファイルFctを、記録容量の比較的小さな記録媒体130A、130B、・・・に分散的にバックアップする処理を、容易に行うことができる。
すなわち、上述のようにしてバックアップ処理を行いながら、ファイルシステム51によりバックアップ先の記録媒体130の空き容量を常時監視し、次のコンテンツファイルFctが記録可能な分の空き容量が記録媒体130に存在しなければ、その時点で記録を終了させ、記録が完了したコンテンツファイルFctに対応するレコーディングオーダ値のうち最大のレコーディングオーダ値を最終レコーディングオーダとしてハードディスク127に保存する。そして、記録媒体130を交換して次のバックアップを再開するときに、この最終レコーディングオーダに基づき、バックアップ処理を制御する。
上述したようにして、バックアップ元であるハードディスク127側に保存された最終レコーディングオーダに基づき、ハードディスク127に記録されるコンテンツファイルFctのバックアップを制御することで、バックアップ元に比べて記録容量の小さいバックアップ先に分散的にバックアップを行う場合でも、漏れや重複のないバックアップ処理を容易に実現できる。
3.発明の各実施の形態に対する変形例について
以上、この発明の実施の形態について説明したが、この発明は、上述した実施の各形態に限定されるべきものではない。例えば、上述では、バックアップ元に記録されるコンテンツファイルFctを管理するための管理情報であるインデックスファイルFindexには、管理されるコンテンツファイルFctを識別するための識別子であるコンテンツID以外のファイル関連情報も、エントリデータとしてエントリされるように説明したが、これはこの例に限定されない。例えば、インデックスファイルFindexを、これらのファイル識別子以外のファイル関連情報がエントリされない管理情報として構成した場合も、この発明を好適に適用することができる。
また、上述した実施の各形態では、バックアップ先である記録媒体130において、バックアップ元であるハードディスク127からバックアップしたコンテンツファイルFctを、インデックスファイルFindexとは別の、管理情報30bにより管理しているが、これはこの例に限定されない。
例えば、このような別途の管理情報を用いずとも、バックアップ元であるハードディスク127からバックアップしたインデックスファイルFindexにより、バックアップ先に格納される各コンテンツファイルFctを管理するように構成することもできる。例えば、上述した実施の第1の形態のように同期処理が行われる場合には、ハードディスク127側と記録媒体130側とで同じディレクトリ構造により各コンテンツファイルFctを格納するように構成することが考えられる。
また、上述した実施の第4の形態による同期処理および全コンテンツファイル保存処理によるバックアップ処理と、実施の第2の形態による前回同期時状態の復元処理とを組み合わせることもできる。この場合、前回同期時状態の復元処理であれば、各バックアップ時点と対応付けてインデックスファイルFindexを保存する処理は、省略可能とされる。これに限らず、例えば実施の第3の形態による全コンテンツファイル保存処理によるバックアップ処理と、実施の第2の形態による前回同期時状態の復元処理とを組み合わせることもできる。
さらに、上述では、バックアップ先である記録媒体130がビデオカメラ装置100に内蔵されるドライブ装置128に対して装填されるような形態であるように説明したが、これはこの例に限定されない。例えば、通信部125を介して所定のインターフェイスで接続されることで、CPU120に、このビデオカメラ装置100の外部ストレージ装置であると認識されるような記録装置を、バックアップ先の記録媒体130として用いることができる。
さらにまた、上述では、この発明が携帯用のビデオカメラ装置に適用されるものとして説明したが、これはこの例に限定されない。すなわち、この発明は、1筐体で異なる2以上の記録媒体を並列的に使用可能であれば、他の種類の電子機器にも適用可能なものである。
例えば、撮像素子を用いて主として静止画像を撮像して記録媒体に記録するようにされたディジタルスチルカメラに対して、この発明を適用することができる。また例えば、近年では、携帯電話端末に撮像素子および記録または記憶媒体を設けて静止画像や動画像の撮像および記録を可能とした製品が広く普及している。記録または記憶媒体として、小型のハードディスクを内蔵した機種も出現している。このような撮像機能付き携帯電話端末に対して、この発明を適用することも可能である。