(57)【要約】  電子データを送信するための方法、システム及び装置であって、コンピュータ記憶媒体上にエンコードされたコンピュータプログラムを含む。一般に、本明細書に記載の発明の主題の一側面は、チャンクされるべきデータアイテムを識別し、前記データアイテムのタイプを判定し、前記データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定し、前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当しないと判定された場合に、前記データアイテムの第１のチャンキングを実行し、前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第２のチャンキングを実行する動作を含む方法（３００、４００、７００）として実現できる。【選択図】図３
2014508990.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置が実行する方法であって、
チャンクされるべきデータアイテムを識別する工程と、
前記データアイテムのタイプを判定する工程と、
前記データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当しないと判定された場合に、前記データアイテムの第１のチャンキングを実行する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第２のチャンキングを実行する工程と
を備えることを特徴とする方法。
【請求項２】
前記第２のチャンキングを実行する工程は、
前記データアイテムを検査する工程と、
前記検査に基づき前記データアイテム内のコンテンツ部分のデータマップを作成する工程と、
前記データマップに基づいて前記データアイテムをチャンキングする工程と
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のチャンキングを実行する工程は、コンテンツベースのチャンキング境界を定義するために前記生成されたデータマップを利用する工程を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記データマップを作成する工程は、前記データアイテム内の異なるタイプのコンテンツを識別する工程を含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記データアイテムのタイプを識別する工程は、前記データアイテムと関連づけられた拡張子を識別する工程を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記データマップに基づいて前記データアイテムをチャンキングする工程は、異なるタイプのコンテンツを個別にチャンキングする工程を含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記チャンクを宛先に送信する工程を更に備えることを特徴とする請求項２に記載の方法。
【請求項８】
送信の前に各チャンクを暗号化する工程を更に備えることを特徴とする請求項６に記載の方法。
【請求項９】
前記データアイテムの要求を受信したのに応じて、
各チャンクがチャンク識別子を有するチャンクリストを要求元に送信する工程と、
前記チャンクリストからの前記データアイテムの１以上のチャンクの要求を受信する工程であって、該要求された１以上のチャンクは前記データアイテムの以前のバージョンから変更されたチャンクである、工程と、
前記要求された１以上のチャンクを送信する工程と
を更に備えることを特徴とする請求項１に記載の方法。
【請求項１０】
データ処理装置が実行する方法であって、
チャンクすべきデータアイテムを受信する工程と、
前記データアイテムのタイプを識別する工程と、
前記データアイテムのデータを検査し、前記データアイテムのコンテンツベースのマップを作成するために前記識別されたタイプを利用する工程と、
前記データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、前記コンテンツベースのマップを利用する工程と、
前記データアイテム内の前記コンテンツに基づいて前記データアイテムをチャンキングする工程と
を備えることを特徴とする方法。
【請求項１１】
前記コンテンツベースのマップの作成には、前記データアイテム内の異なるタイプのコンテンツの識別が含まれることを特徴とする請求項９に記載の方法。
【請求項１２】
前記データアイテムをチャンキングする工程は、前記データアイテム内の識別されたコンテンツの１以上のタイプについて個別のチャンキング動作を実行する工程を含むことを特徴とする請求項９に記載の方法。
【請求項１３】
コンピュータプログラムを格納したコンピュータ記憶媒体であって、前記プログラムは命令を含み、該命令がデータ処理装置により実行されると、該データ処理装置は、
チャンクされるべきデータアイテムを識別する工程と、
前記データアイテムのタイプを判定する工程と、
前記データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当しないと判定された場合に、前記データアイテムの第１のチャンキングを実行する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第２のチャンキングを実行する工程と
を実行することを特徴とする、コンピュータ記憶媒体。
【請求項１４】
コンピュータプログラムを格納したコンピュータ記憶媒体であって、前記プログラムは命令を含み、該命令がデータ処理装置により実行されると、該データ処理装置は、
チャンクすべきデータアイテムを受信する工程と、
前記データアイテムのタイプを識別する工程と、
前記データアイテムのデータを検査し、前記データアイテムのコンテンツベースのマップを作成するために前記識別されたタイプを利用する工程と、
前記データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、前記コンテンツベースのマップを利用する工程と、
前記データアイテム内の前記コンテンツに基づいて前記データアイテムをチャンキングする工程と
を実行することを特徴とする、コンピュータ記憶媒体。
【請求項１５】
システムであって、１以上のコンピューティング装置を備え、該コンピューティング装置が、
チャンクされるべきデータアイテムを識別し、
前記データアイテムのタイプを判定し、
前記データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定し、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当しないと判定された場合に、前記データアイテムの第１のチャンキングを実行し、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第２のチャンキングを実行する
ように動作することを特徴とするシステム。
【請求項１６】
前記第２のチャンキングの実行には、
前記データアイテムを検査し、
前記検査に基づき前記データアイテム内のコンテンツ部分のデータマップを作成し、
前記データマップに基づいて前記データアイテムをチャンキングする
ことが含まれることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記第２のチャンキングの実行には、コンテンツベースのチャンキング境界を定義するための前記生成されたデータマップの利用が含まれることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記データマップの作成には、前記データアイテム内の異なるタイプのコンテンツの識別が含まれることを特徴とする請求項１６に記載のシステム。
【請求項１９】
前記データアイテムのタイプの識別には、前記データアイテムと関連づけられた拡張子の識別が含まれることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記データマップに基づく前記データアイテムのチャンキングには、異なるタイプのコンテンツの個別にチャンキングが含まれることを特徴とする請求項１８に記載のシステム。
【請求項２１】
前記チャンクを宛先に送信するようにさらに動作することを特徴とする請求項１６に記載のシステム。
【請求項２２】
送信の前に各チャンクを暗号化するように更に動作することを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記データアイテムの要求を受信したのに応じて、
各チャンクがチャンク識別子を有するチャンクリストを要求元に送信し、
前記チャンクリストからの前記データアイテムの１以上のチャンクであって、前記データアイテムの以前のバージョンから変更されたチャンクの要求を受信し、
前記要求された１以上のチャンクを送信する
ように更に動作することを特徴とする請求項１５に記載のシステム。
【請求項２４】
システムであって、１以上のコンピューティング装置を備え、該コンピューティング装置が、
チャンクすべきデータアイテムを受信し、
前記データアイテムのタイプを識別し、
前記データアイテムのデータを検査し、前記データアイテムのコンテンツベースのマップを作成するために前記識別されたタイプを利用し、
前記データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、前記コンテンツベースのマップを利用し、
前記データアイテム内の前記コンテンツに基づいて前記データアイテムをチャンキングする
ように動作することを特徴とするシステム。
【請求項２５】
前記コンテンツベースのマップの作成には、前記データアイテム内の異なるタイプのコンテンツの識別が含まれることを特徴とする請求項２４に記載のシステム。
【請求項２６】
前記データアイテムのチャンキングには、前記データアイテム内の識別されたコンテンツの１以上のタイプについての個別のチャンキング動作の実行が含まれることを特徴とする請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子データの送信及び格納に関する。
【背景技術】
【０００２】
例えばファイルのようなデータアイテムは、しばしば異なる装置へ送信される。例えば、それらは他の装置（例えば、ピア装置）との間で共有されたり、或いは、（例えば、データアイテムのバックアップ或いは遠隔ストレージとして）サーバや他の格納装置へ送信される。サイズの大きいデータアイテムの送信はネットワークのリソースを消費することになり、送信完了前に送信が中断すると問題が発生する。結果として、従来的なシステムでは典型的に、宛先装置へデータアイテムを送信する前にサイズの大きなデータアイテムを複数のチャンクに分割している。
【発明の概要】
【０００３】
本発明は、電子データの送信及び格納に関する。
【０００４】
一般的に、本明細書に記述される発明の主題の一側面は、チャンクされるべきデータアイテムを識別する工程と、データアイテムのタイプを判定する工程と、データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定する工程と、データアイテムのタイプが、特定の１以上のタイプのうちの１つに該当しないと判定された場合に、データアイテムの第１のチャンキングを実行する工程と、データアイテムのタイプが、特定の１以上のタイプのうちの１つに該当すると判定された場合に、データアイテムの特定のコンテンツ部分に基づくデータアイテムの第２のチャンキングを実行する工程とを実行する方法として実現できる。当該側面の他の実施形態は、対応するシステム、装置、及び、コンピュータ記憶装置上に記憶されたコンピュータプログラムであって、それぞれが上記方法の動作を実行するように構成されている。
【０００５】
これら及び他の実施形態は、それぞれ任意に以下の特徴を含むことができる。第２のチャンキングを実行する工程は、データアイテムを検査する工程と、検査に基づきデータアイテム内のコンテンツ部分のデータマップを作成する工程と、データマップに基づいてデータアイテムをチャンキングする工程とを含む。第２のチャンキングを実行する工程は、コンテンツベースのチャンキング境界を定義するために生成されたデータマップを利用する工程を含む。データマップを作成する工程は、データアイテム内の異なるタイプのコンテンツを識別する工程を含む。データアイテムのタイプを識別する工程は、データアイテムと関連づけられた拡張子を識別する工程を含む。データマップに基づいてデータアイテムをチャンキングする工程は、異なるタイプのコンテンツを個別にチャンキングする工程を含む。当該方法は、チャンクを宛先に送信する工程を更に備える。当該方法は更に、データアイテムの要求を受信したのに応じて、各チャンクがチャンク識別子を有するチャンクリストを要求元に送信する工程と、チャンクリストからのデータアイテムの１以上のチャンクの要求を受信する工程であって、該要求された１以上のチャンクはデータアイテムの以前のバージョンから変更されたチャンクである、工程と、要求された１以上のチャンクを送信する工程とを備える。
【０００６】
一般的に、本明細書に記述される発明の主題の一側面は、チャンクすべきデータアイテムを受信する工程と、データアイテムのタイプを識別する工程と、データアイテムのデータを検査し、データアイテムのコンテンツベースのマップを作成するために識別されたタイプを利用する工程と、データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、コンテンツベースのマップを利用する工程と、データアイテム内のコンテンツに基づいてデータアイテムをチャンキングする工程とを実行する方法として実現できる。当該側面の他の実施形態は、対応するシステム、装置、及び、コンピュータ記憶装置上に記憶されたコンピュータプログラムであって、それぞれが上記方法の動作を実行するように構成されている。
【０００７】
これら及び他の実施形態は、それぞれ任意に以下の特徴を含むことができる。コンテンツベースのマップの作成には、データアイテム内の異なるタイプのコンテンツの識別が含まれる。データアイテムをチャンキングする工程は、データアイテム内の識別されたコンテンツの１以上のタイプについて個別のチャンキング動作を実行する工程を含む。
【０００８】
本明細書に記載する発明の主題の特定の実施形態は、１つ以上の以下の効果を実現するために実装することができる。データアイテムのコンテンツベースのチャンキングにより、データアイテムの変化がないままの部分について同一のチャンクを維持することができる。これにより、データアイテムのその後のバージョンのためのチャンクの重複除外を向上させることができる。結果として、格納、送信するチャンク数を削減して、処理コストやネットワーク利用も減らすことができる。
【０００９】
本明細書に記載する発明の主題の１つ以上の実施形態の詳細は、添付の図面及び以下の発明の詳細な説明を参照して説明される。発明の主題の他の特徴、側面及び利点は発明の詳細な説明、図面及び特許請求の範囲の記載から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】チャンク・データアイテムを送信するためのピアシステムの一例を示すブロック図。
【図２】チャンク・データアイテムを送信するためのクライアント・サーバ・システムの一例を示すブロック図。
【図３】チャンク・データアイテムを送信するための処理の一例を示すフロー図。
【図４】コンテンツベース・チャンキングの処理の一例を示すフロー図。
【図５】プレゼンテーションファイルのコンテンツベースのマッピングの一例を示す図。
【図６】音声ファイルのコンテンツベースのマッピングの一例を示す図。
【図７】データアイテムの要求に応答してチャンクを提供するための処理の一例を示すフロー図。
【図８】システム構成の一例を示す図。  なお、図面中の類似の参照番号や記号は、類似の要素を示すものである。
【発明を実施するための形態】
【００１１】
データアイテムは、例えばピア装置や他の宛先位置（例えば、遠隔の格納装置やバックアップサーバ）への送信のために２つ以上のチャンクに分割される。特定のタイプのデータアイテムは、データアイテムのコンテンツに基づいて複数のチャンクに分割することができる。特定のタイプではない他のデータアイテムは、データアイテムのコンテンツを利用しないチャンキング処理に従い複数のチャンクに分割することができる。
【００１２】
コンテンツベースのチャンキングにより、バージョン間で不変のデータの量を増加させることができる。データアイテムのより新しいバージョンのチャンクを、宛先位置に格納されているデータアイテムのそれ以前のバージョンのチャンクと比較することができる。変更があったチャンクのみが宛先位置に送信される。これにより、送信される及び／又は格納されるデータアイテムのバージョンからコンテンツの重複が減る。このことを、本明細書では「重複除外（de-duplication）」という。
【００１３】
図１及び２は、チャンクデータアイテムを送信可能なシステムの例を示す。図１はチャンクデータアイテムを送信するためのピアシステム１００の一例を示すブロック図である。ピアシステム１００は、ネットワーク１１０を介して結合される装置１０２及びピア装置１０４、１０６及び１０８を含む。装置１０２及びピア装置１０４、１０６及び１０８は、様々なタイプのコンピューティング装置であってもよく、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット装置、移動体装置、ＰＤＡ等を含むがこれらに限定されるものではない。ネットワーク１１０はローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはインターネットの一部であってもよい。
【００１４】
装置１０２はデータ１１２及びデータチャンカ１１４を含むものとして示される。データ１１２は、装置に格納されている様々なタイプのデータアイテムを含む。例えば、電子メール、写真、ドキュメントなどである。データチャンカ１１４は、図３及び図４との関連で後述するように、データ１１２に格納されている１以上のタイプのデータアイテムを分割することができる。分割されたデータアイテムは、例えば、（例えば電子メールの）同期、或いは、特定データアイテム（例えば、特定のプレゼンテーション・ドキュメント）の送信のために、装置１０２から１以上のピア装置１０４、１０６及び１０８へ送信することができる。所定のピア装置はデータアイテムを再構成するためにチャンクを結合することができ、また、必要となるまでチャンクを格納しておくことができる。
【００１５】
図２はチャンクデータアイテムを送信するためのクライアント・サーバ・システム２００の一例を示すブロック図である。クライアント・サーバ・システム２００はクライアント装置２０２、クライアント装置２０４、サーバ２０６及びネットワーク２０８を含む。クライアント装置２０２及び２０４は様々なタイプのコンピューティング装置であってもよく、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット装置、移動体装置、ＰＤＡ等を含むがこれらに限定されるものではない。ネットワーク２０８はローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはインターネットの一部であってもよい。
【００１６】
クライアント装置２０２はデータ２１０及びデータチャンカ２１２を含む。同様に、クライアント装置２０４はデータ２１８及びデータチャンカ２２０を含む。データチャンカ２１２及び２２０は、図３及び図４との関連で後述するように、データ１１２に格納されている１以上のタイプのデータアイテムを分割することができる。クライアント装置２０２及び２０４は単一の個人（例えば、特定ユーザのデスクトップ装置や移動体装置）と関連づけられてもよいし、或いは、特定のユーザに帰属してもよい。例えば、２人のユーザが同一のバックアップ・ストレージサーバを利用してもよい。
【００１７】
サーバ２０６は、クライアント装置２０２及び２０４から受信した格納データ２１４を含む。サーバ２０６はクライアント装置２０２及び２０４からチャンクとして格納するためにデータアイテムを受信することができる。いくつかの実装においては、データアイテムは、例えばチャンクストレージ内にチャンクとして格納され、例えばチャンクを格納するピア装置によりデータアイテムが開かれる場合のような、必要とされる場合に再構成される。他の実装例では、必要に応じて、例えばデータアイテムが要求される場合やデータアイテムの一部のみが必要とされる場合に、格納されたチャンクがフェッチされる。更に他の実装例では、チャンクは、格納データ２１４として格納するために、各データアイテムに再構成される。いくつかの実装例では、サーバ２０６はデータチャンカ２１６を含む。サーバ２０６は、該サーバ２０６上に格納されている要求されたデータアイテムを、例えば要求元クライアント装置へ送信する前にチャンキングすることができる。
【００１８】
図３はチャンク・データアイテムを送信するための処理３００の一例を示すフロー図である。処理３００は、例えば１つ以上のコンピューティング装置を含むシステム、例えば１以上のコンピュータ、移動体装置、タブレット装置又はサーバにより実行することができる。
【００１９】
ステップ３０２において送信すべきデータアイテムが識別される。送信すべきデータアイテムは、例えば特定の受信者へデータアイテムを送信するのに備えて識別することができる。例えば、データアイテムの要求を別の装置から受信することができる。別の例では、例えば、スケジュールや他の基準に従い、データアイテムを別の装置に格納するために送信することができる。データアイテムは、ファイル、フォルダ又は他のデータであってもよい。例えば、データアイテムは、ドキュメント、メディアファイル（例えば、画像、音声又は動画）、電子メール又は他のタイプのファイルデータであってもよい。
【００２０】
ステップ３０４では、データアイテムが特定のタイプのものであるかどうかが判定される。データアイテムのタイプは、例えばデータアイテムの拡張子を利用して識別することができる。他の実装例では、データのタイプは他のデータ、例えばファイルヘッダ、マジックナンバ、又は、データアイテムの特定のタイプを示す他のデータパターンを用いて識別することができる。データアイテムのタイプは特定タイプのリストと比較して、一致するかどうかを判定することができる。特定タイプのリストは、例えば特定のチャンキング処理が行われたタイプに従って生成することができる。例えば、コンテンツベースのチャンキング処理が、ＭＰ３音声ファイル（即ち、ＭＰＥＧ１又はＭＰＥＧ２のオーディオ・レイヤー３フォーマットでエンコードされた音声ファイル）について行われた場合、このタイプはタイプのリストに含まれる。
【００２１】
ファイルが特定タイプのいずれかではないと判定された場合、ステップ３０６で第１のタイプのチャンキングがデータアイテムに対して実行される。第１のタイプのチャンキングはデータ長に基づくものであり、データアイテムの特定のコンテンツ部分に基づくものではない。データアイテムを特定のチャンクサイズ及びチャンクするデータ量に基づいて一連のチャンクにチャンキングする、様々なチャンキング技術を利用することができる。第１のタイプのチャンキングは、データアイテムのサイズに基づく固定長または可変長のチャンキングであってもよい。固定長チャンキングは、固定サイズのチャンクを生成する。その一方、可変長チャンキングは特定のチャンキング基準に従った範囲内のチャンクサイズを許容する。
【００２２】
第１のタイプのチャンキングの従来的な処理工程は、まず、チャンキングすべきデータ量が最小チャンクサイズよりも大きいかどうかの判定を含む。もし、データ量が最小チャンクサイズよりも大きくない場合、チャンキングは不要である。もしチャンキングすべきデータの量が最小チャンクサイズよりも大きい場合、データの各チャンクのチャンク端が識別される。当該処理には、チャンキングする特定のバイト数のデータアイテムを定義するために１以上のチェックサム処理（例えば、Rabinチェックサムのようなローリングチャックサム）を含むことができる。特に、固定サイズチャンクを使用せず、ある範囲のチャンクサイズを許容する場合、チャンク端を識別する場合には、ローリングチェックサムの結果に応じて最小チャンクサイズから始まって、最大チャンクサイズまで増加させていく。よって、各チャンクサイズは最小チャンク≦チャンク≦最大チャンクの範囲内に収まる。
【００２３】
各チャンクには、例えば、チャンクデータのハッシュから得られる特定のチャンク識別子が割り当てられる。特に、ある実装例では、セキュア・ハッシュ・アルゴリズム（ＳＨＡ）を利用してチャンク識別子を生成することができる。当該処理は、チャンクされる残りのデータが最小チャンクサイズより小さくなるまで、データアイテムのうちの残りのデータについて後続チャンクを生成するために繰り返される。
【００２４】
ステップ３１２においてチャンクは宛先に送信される。チャンクが生成されると、特定の遅延後、或いは、データアイテムの全てのチャンクが生成された後にそれを送信することができる。いくつかの実装例では、ネットワーク帯域が判定され、チャンクをいつ、どんな速度で送信するかを決定するための要素として利用される。
【００２５】
データが特定のタイプを有する場合、ステップ３０８において、データアイテム内のデータの特定部分を識別するためにデータアイテムが検査(introspect)される。例えば、プレゼンテーションファイル（例えば、スライドプレゼンテーション）の場合、当該検査では、例えば、スライドインデックス、画像、スライドテキストといったコンテンツのタイプ毎にファイルの部分を識別することができる。識別されたコンテンツ部分は、ステップ３１０でコンテンツベースのチャンキングをデータアイテムに対して実行するために利用することができる。
【００２６】
コンテンツベースのチャンキングの更なる詳細は、図４を参照して以下に記述される。第１のタイプのチャンキングと同様に、ステップ３１２においてコンテンツベースのチャンキングにより生成されるチャンクは宛先に送信される。
【００２７】
図４はコンテンツベースのチャンキングの処理４００の一例を示すフロー図である。処理４００は、例えば１つ以上のコンピューティング装置を含むシステム、例えば１以上のコンピュータ、移動体装置、タブレット装置又はサーバにより実行することができる。
【００２８】
ステップ４０２においてチャンキングすべきデータアイテムが識別される。チャンキングすべきデータアイテムは例えば、図３との関連で上述するように別の装置からの特定のデータアイテムの要求や、別の装置（例えば、バックアップ、遠隔ストレージ又はピア）へ特定のデータアイテムを送信するコマンドに基づいて識別することができる。データアイテムは、特定サイズを超える場合に、チャンキングのために識別することができる。当該特定サイズはチャンキングサイズと同一か、又は、それより大きいサイズである。
【００２９】
ステップ４０４では、データアイテムについてコンテンツベースのチャンキングを実行すべきかどうかが判定される。コンテンツベースのチャンキングを実行すべきかどうかの判定は、特定タイプのグループのいずれかのタイプと、データアイテムのタイプとが一致するかどうかに基づいて行うことができる。特に、データアイテムのタイプを識別し、コンテンツベースのチャンキングが利用可能なリストと比較する。
【００３０】
ステップ４０６で、データアイテムを検査するためにデータアイテムのタイプが利用される。データアイテムの検査により、データアイテム内のコンテンツの異なるタイプを識別することができる。例えば、スライドプレゼンテーションは、スライドインデックス、画像、テキストなどを含むことができる。同様に、音声ファイルは、音声データ（例えば、歌、或いは、他の音声コンテンツ）に加えてメタデータタグを含む。
【００３１】
ステップ４０８では、当該検査に基づいてデータアイテムについてコンテンツベースのマップを作成する。特に、コンテンツの異なるタイプに対応するデータアイテムの部分（異なるコンテンツ部分）が順に識別される。よって、例えば、音声データアイテムを単純に識別するのではなく、音声データに対応する音声ファイルの部分と、タグに対応する部分とを個別に識別することができる。
【００３２】
ステップ４１０において、コンテンツベースのマップはデータアイテムのチャンキングに利用される。コンテンツベースのマップは特に、データアイテムのバージョン間で変化しにくいコンテンツ部分を識別するために利用することができる。例えば、音声ファイルであれば、タグは音声が再生される度に変更されうる。例えば、再生回数は更新されるし、最後の再生日も更新される。しかし、音声コンテンツ自体に対応するデータ（例えば、歌そのもの）は典型的には不変のままである。コンテンツベースのチャンキングでは、バージョン間或いは利用の間に変化しにくいコンテンツがデータアイテムがチャンキングされる度に同一チャンクを有するように、データアイテム内の異なるタイプのコンテンツを個別にチャンキングすることができる。
【００３３】
実行される処理或いはチャンキングのタイプは、コンテンツが変化しやすいかどうかに依存しえる。例えば、データアイテム内の異なるタイプのコンテンツの間にチャンキング境界（例えば、それを超えてチャンキングできない境界）を設定することができる。また、実行されるチャンキングタイプは、特定のコンテンツに応じて変化させることができる。
【００３４】
例えば、プレゼンテーションファイル内の画像は固定サイズチャンクにチャンキングすることができる。特に、各画像は個別にチャンクすることができる。また、画像データ及びタグデータは個別にチャンクすることができる。特に、画像データとタグデータの双方を、例えば固定サイズチャンクにおいて個別にチャンクすることができる。固定サイズチャンクは、最終チャンクまでそれぞれ同一サイズを有するが、最終チャンクは残存データのサイズに応じてより小さくてもよい。例えば、アイテムが１．６メガバイト（ＭＢ）のサイズを有し、固定チャンクサイズが１ＭＢの場合、１ＭＢの第１のチャンクと０．６ＭＢの第２のチャンクの２個のチャンクが生成される。写真は変化しにくいため、これらの固定サイズチャンクは、当該データアイテムを再チャンキングする場合でも変化しにくい。チャンク境界により、固定サイズチャンクを埋めるために他のコンテンツから追加のデータ（例えば、プレゼンテーションファイル内で当該画像の後に続くデータ）が付加されることもない。よって、その後のバージョンでコンテンツの一部が変更された場合であっても、それらが他のコンテンツ部分へ入り込んできてそのチャンクを変化させることはない。
【００３５】
別の例では、所与の修正のために変化するチャンク数を減らすために、変化しやすい部分について、（例えば、図３と関連して記述したような）より可変なチャンクサイズを使ってチャンキングを行うことができる。よって、音声ファイルの再生回数における変化により、音声データアイテムのタグ部分の全てのチャンクを変更する必要はない。
【００３６】
各チャンクには、上述のように例えば生成されたチャンクに適用されるハッシュ関数に従ってチャンク識別子が割り当てられる。
【００３７】
ステップ４１２では、チャンキングされたデータが宛先に送信される。例えばチャンクは、要求を行った装置やストレージサーバへ送信することができる。いくつかの実装例では、いくつかのチャンクのみを送信することもできる。例えば、データの最新バージョンが要求された場合、図７を参照して以下で詳述するように、以前のバージョンから変更されたチャンクのみを送信することができる。例えば、音声タイプのデータアイテムについてタグに関連するチャンクのみが変更された場合、データアイテムの大半を構成する音声データのチャンクを送信する必要はない。
【００３８】
いくつかの実装例ではコンテンツベースのチャンキングがコンテンツに応じて再帰的に実行されてもよい。特に、データアイテムが１つ以上の追加のタイプのコンテンツを有するコンテナ（例えば、ＭＳワード、zip, jar等）である場合、検査により埋め込まれたコンテンツの束、或いはコンテンツを識別し、埋め込まれたコンテンツの各タイプについて１以上の対応するコンテンツベースのチャンキングを識別する。例えば、これにより他のファイルフォーマットに埋め込まれた写真を認識して、ファイルの当該部分に対して適切なコンテンツベースのチャンカ（例えば、画像用のチャンカ）を適用することができる。
【００３９】
図５は、プレゼンテーションファイルのコンテンツベースのマッピング５００及び対応するコンテンツベースのチャンキング部分の一例を示す。特に図５の例はプレゼンテーションデータアイテム（例えば、スライドプレゼンテーション）の例を示す。検査により、コンテンツベースのマッピング５００に示されるような構成の異なるコンテンツが識別される。図５に示すプレゼンテーションファイルの例では、スライドインデックスの後にスライドテキスト、画像、注釈、２以上の画像が続く。一緒にチャンキングすべきデータアイテムの部分はコンテンツベースのマッピングに基づいて識別される。
【００４０】
例えば、図５に示すように、スライドインデックスとスライドテキストは、例えば可変長チャンク（図３との関連で上述）として一緒にチャンキングすることができる。プレゼンテーションファイルにおいて、直近のチャンクが画像に侵入してこないように、チャンキング部分は第１の画像により境界が設定される。これにより、不変のコンテンツについてバージョンをまたがって同一チャンクを保持できるように、異なるタイプのコンテンツについて個別のチャンクを利用することが可能となる。データアイテムを宛先に送信する際に変化したチャンクのみが送信されるので、チャンクの重複除外を実現できる。
【００４１】
画像は固定サイズのチャンクを有するものとして示される。各画像は個別にチャンキングされる。さらに、各画像について画像データを画像タグデータとは別個にチャンキングすることができる。図解のために、図５は画像において画像タグデータと画像データとを分離する一例を示す。また、いくつかの実装例では、タグデータを図示する固定サイズチャンクの代わりに可変長チャンクでチャンキングすることができる。
【００４２】
いくつかの実装例では、特定コンテンツ内で更にチャンキングを改良してもよい。例えば、画像がＪＰＥＧ画像の場合、画像のメタデータ部分に対する小固定サイズのチャンキングと、残りの画像データに対する異なる固定サイズのチャンキングとを含む、タイプ特有のコンテンツベースのチャンキングを実行することができる。
【００４３】
図６は、音声ファイルのコンテンツベースのマッピング６００の一例を示す。コンテンツベースのマッピングには、２つのタブ部分で挟まれた音声部分が含まれる。これらの部分のそれぞれは、例えば固定サイズのチャンクにより個別にチャンキングされてもよい。よって、もしも最新バージョンにおいてタグが変更されたり追加されたりした場合であっても、タグ部分のチャンクが変化するだけである。
【００４４】
対照的に、コンテンツベースではないチャンキング技術を使用すると、例えば、図３との関連で後述するように、いくつかのチャンクが不変となる。例えば、音声データアイテムの冒頭の第１のタグ部分に修正或いは追加を行うと、チャンク境界がデータアイテム全体を通じて変化してしまう。特に、チャンク境界がないので、チャンクはタグデータ及び音楽データを含むようにまたがって形成されうる。結果として、新バージョンが要求されれば、チャンクの全セットを送信しなければならなくなる。これは、生成されたチャンクの先頭の方の変化（例えば、追加データのためにチャンク境界が修正される）がデータアイテム全体に波及するためであって、結果としてチャンクの重複除外はわずかに行えるか、あるいは全く行えなくなる。
【００４５】
いくつかの実装例では、暗号化されたチャンクが生成される。例えば、収束暗号化(convergent encryption)を利用することができる。収束暗号化は、非セキュアなチャンクストレージを許容する。チャンク識別子を有する個々のチャンクは、例えばＡＳＥ暗号化で、チャンクのハッシュ識別子に対応する鍵により暗号化することができる。暗号化されたチャンクのハッシュを実行することで、新しいチャンク識別子が各チャンクについて生成される。他の暗号化手法を利用することもできる。例えば、共有鍵暗号化手法や、秘密鍵／公開鍵暗号化手法を利用してもよい。図７は、データアイテムの要求に応じてチャンクを提供する処理７００の一例を示すフロー図である。ステップ７０２では、新バージョンのデータアイテムの要求を受信する。例えば、同期処理の間に、最新バージョンのデータアイテムがピア装置に存在しないと識別することができる。ピア装置は、データアイテムの最新バージョンを要求することができる。また、コンピューティング装置は（最後のアックアップや格納イベントからの）全ての変更データアイテムを、バックアップサーバにアップロードするために要求することができる。
【００４６】
ステップ７０４でデータアイテムがチャンキングされる。データアイテムは、そのタイプに応じて上述のようにチャンキングされる。いくつかの実装例では、図４から図６との関連で説明したように、コンテンツベースのチャンキングがデータアイテムに対して実行される。
【００４７】
ステップ７０６では、（例えば、チャンク識別子又は暗号化チャンク識別子に従う）チャンクのリストが生成される。例えば、各チャンクは適用されるハッシュ関数に従う識別子を有することができる。よって、もし特定チャンクのデータが従前のバージョンから変更されていない場合、ハッシュも変更されていない。いくつかの実装例ではチャンクのリストが、たとえば当該データアイテムを要求したピア装置といった要求元装置に対して送信される。他のいくつかの実装例では、チャンクのリストがバックアップサーバや、データアイテム（或いはその一部）が送信される他の装置に提供される。チャンクのリストを、要求元装置内に既に存在するチャンクと比較することができる。
【００４８】
ステップ７０８では、リストからの１以上のチャンクの要求を受信する。例えば、装置は、同一のままで装置内で既に利用が可能なチャンクではなく、データアイテムの新しいチャンクのみの要求を送信することができる。よって、冗長なチャンクを送信し、格納装置上で重複して保持する必要が無い。ステップ７１０では要求されたチャンクが送信される。送信されないチャンクは格納しておくか或いは破棄することができる。
【００４９】
いくつかの実装例では、格納されたチャンクを複数ユーザ間で共有することができる。例えば特定の音声ファイルは、各ユーザについて一意なタグ情報（例えば、再生回数）を含むことができるが、音声コンテンツは同一のままであろう。よって、もし複数ユーザが同一の音声ファイルを遠隔の格納場所に格納する場合、共通の音声データのコピーを複数格納しておく必要はない。
【００５０】
特に、同一コンテンツにチャンキング技術を適用する複数ユーザについては、音声ファイルの音声部分のチャンク識別子は各ユーザについて一致すべきである。よって、チャンクのリストを遠隔の格納場所に送信する場合、音声ファイルを既に格納している別のユーザからも共通のチャンクは識別可能である。その結果、ユーザに固有のチャンク（例えば、タグ情報についてのもの）のみが格納場所に送信されればよいことになる。
【００５１】
いくつかの実装例では、チャンクは必要に応じてフェッチされる。例えば、別の場所からデータをストリーミングする場合、ストリーミングデータのチャンクは必要に応じてフェッチされてもよい。例えば、もしデータアイテムが映画ファイルであるならば、チャンクは必要に応じて、例えば再生の進行に合わせてフェッチされればよい。チャンクは連続的、或いは、ランダムに要求されてもよいが、全てのチャンクが同時に送信される必要はない。別の例では、クライアントはデータにインデクシングする。例えば、音楽再生アプリケーションは全ファイルのインデックスを生成するために音声ファイルのタグデータのみフェッチすることができるが、実際の音声データ（例えば、音声データに対応するチャンク）はファイルが実際に再生されるまで要求しないであろう。
【００５２】
いくつかの実装例では、ポリシー、ライセンシング条項等により、該当データをユーザが実際に所有していることを証明するために、各ユーザが特定のタイプのデータアイテムの全チャンクを遠隔の格納場所へ送信する必要があるかもしれない。しかしながら、例えば同一の識別子を有しておりそれらが同一であると判断されるので、遠隔の格納場所では依然としてチャンクの単一のコピーのみを保持することができる。
【００５３】
図８は、システム８００の構成例を示す。システム構成８００は、データアイテムのコンテンツベースのチャンキングを実行する能力を有している。構成８００は、ゼロ個以上のプロセッサ８０２（例えば、ＩＢＭパワーＰＣ、インテルペンティアム４、ＡＲＭ等）、ゼロ個以上の表示装置８０４（例えば、ＣＲＴ、ＬＣＤ）、ゼロ個以上のグラフィック処理ユニット８０６（例えばＮＶＩＤＩＡ  ＧｅＦｏｒｃｅ等）、ゼロ個以上のネットワークインタフェース８０８（例えば、イーサネット、ファイヤワイヤ、ＵＳＢ等）、ゼロ個以上の入力装置８１０（例えば、キーボード、マウス等）、及び、ゼロ個以上のコンピュータで読み取り可能な媒体８１２を含む。これらのコンポーネントは１以上のバス８１４（例えば、ＥＩＳＡ、ＰＣＩ、ＰＣＩエクスプレスなど）を介して通信及びデータ交換を行う。いくつかの実装例では、いくつかの遠隔ストレージ及び／又はチャンキングシステムは表示装置や周辺機器を含んでいなくてもよい。また、チャンクはネットワーク上、或いは、データチャンクを処理し格納する１以上の他のシステムとインタラクトする遠隔の格納装置に格納されてもよい。
【００５４】
「コンピュータで読み取り可能な媒体」の語は、実行のためにプロセッサ８０２に命令を提供するためのあらゆる媒体をいう。コンピュータで読み取り可能な媒体８１２はオペレーティングシステム８１６（Mac OS（登録商標）, iOS（登録商標）, ウィンドウズ（登録商標）、リナックス（登録商標）など）、ネットワーク通信モジュール８１８、コンテンツベース・チャンカ８２２、及び、他のアプリケーション８２４をさらに含む。
【００５５】
オペレーティングシステム８１６は、マルチユーザ、マルチ処理、マルチタスク、マルチスレッド、実時間のものであってもよい。オペレーティングシステム８１６は、入力装置８１０からの入力の認識、表示装置８０４への出力の送信、コンピュータで読み取り可能な媒体８１２（例えば、メモリや格納装置）上でのファイル及びディレクトリの把握、周辺装置（例えば、ディスクドライブ、プリンタ等）の制御、１以上のバス８１４上でのトラヒック制御を含む基本的なタスクを実行する。ネットワーク通信モジュール８１８は、ネットワーク接続を確立し維持するための様々なコンポーネント（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、イーサネット等の通信プロトコルを実施するためのソフトウェア）を含む。
【００５６】
コンテンツベース・チャンカ８２２は、図１から７との関連で説明したコンテンツベースのチャンキングを実行する様々な機能を実現する様々なソフトウェアコンポーネントを提供する。
【００５７】
本明細書に記載した発明の主題及び動作の実施形態は、本明細書に記載される構造やそれら構造の均等物、或いはそれらの一つ以上の組み合わせを含むデジタル電子回路、或いは、コンピュータソフトウェア、ファームウェア、或いは、ハードウェア等において実現することができる。本明細書に記載した発明の主題の実施形態は、データ処理装置による実行のため、或いは、データ処理装置の動作を制御するためにコンピュータ記憶媒体上にエンコードされた１以上のコンピュータプログラム、即ち、コンピュータプログラム命令の１つ以上のモジュールとして実現することができる。また、プログラム命令は、データ処理装置による実行のために、適切な受信装置への送信用に情報をエンコードするために生成される、例えばマシン生成した電気的信号、光学的信号、或いは、電磁的信号のような人工的に生成された伝搬信号上にエンコードすることができる。コンピュータ記憶媒体は、コンピュータで読み取り可能な記憶装置、コンピュータで読み取り可能な記憶基板、ランダムアクセス又はシリアルアクセスのメモリアレイ又はメモリ装置、或いは、それらの１つ以上の組み合わせであるか、或いは、それらを含むことができる。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号内にエンコードされたコンピュータプログラム命令のソース又は宛先であってもよい。コンピュータ記憶媒体はまた、１つ以上の個別の物理的コンポーネント又は媒体（例えば、複数CD、ディスク、他の格納装置）であっても良いし、それらを含んでもよい。
【００５８】
本明細書で記述した動作は、１以上のコンピュータで読み取り可能な記憶装置に格納されたデータ、又は、他のソースから受信したデータに対する、データ処理装置によって実行される動作として実現されてもよい。
【００５９】
「データ処理装置」との語は、データ処理のためのあらゆる種類の装置、デバイス、マシンを含み、プログラム可能なプロセッサ、コンピュータ、システム・オン・チップ、或いは、それらの複数、或いは組み合わせを例として含む。当該装置は、例えば、FPGA（field programmable gate array）やASIC(application-specific integrated circuit)のような特定用途論理回路を含むことができる。当該装置はまた、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、或いは、それらの１つ以上の組み合わせのような、ハードウェアの他に対応コンピュータプログラムのための実行環境を生成するコードを含むこともできる。当該装置及び実行環境により、ウェブサービス、分散コンピューティング、グリッドコンピューティングのインフラのような、様々な異なるコンピューティングモデルのインフラを実現することができる。
【００６０】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる）は、コンパイル済、インタープリタ型言語、宣言型言語、或いは、手続的言語を含むどんな形式のプログラミング言語で記述されてもよく、また、スタンドアロン・プログラムとして、或いはモジュール、コンポーネント、サブルーチン、オブジェクト、或いは、コンピューティング環境での利用に適した他のユニットとしてのものを含め、どのような形態で用意されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応していてもよいが、必ずしもそうでなくてもよい。プログラムは、他のプログラムやデータ（例えば、マークアップ言語ドキュメント内に格納された１以上のスクリプト）を保持するファイルの一部として、当該プログラム専用の単一ファイル内に、或いは、複数連携ファイル（例えば、１つ以上のモジュール、サブプログラム或いはコートの一部を格納するファイル）内に格納されてもよい。コンピュータプログラムは、１つのコンピュータ或いは複数のコンピュータで実行されるように用意されてもよく、複数のコンピュータは、１箇所にまとめて配置されていてもよいし、或いは、複数の場所に分散され通信ネットワークによって相互接続されていてもよい。
【００６１】
本明細書に記載した処理及びロジックフローは、入力データを処理して出力を生成することにより動作を実行するために１以上のコンピュータプログラムを実行する１以上のプログラム可能なプロセッサにより実行されてもよい。処理及びロジックフローは、FPGAやASICといった特定用途論理回路により実行されてもよいし、装置が当該特定用途論理回路として実装されてもよい。
【００６２】
コンピュータプログラムを実行するのに適したプロセッサは、例えば、汎用マイクロプロセッサ、特定用途マイクロプロセッサの双方を含むと共に、あらゆる種類のデジタルコンピュータの１以上のプロセッサを含むことができる。一般的に、プロセッサはリード・オンリ・メモリ又はランダム・アクセスメモリ、或いはその両方から命令とデータを受け取る。コンピュータの本質的要素は、命令に従って動作を実行するプロセッサと、命令及びデータを格納する１以上のメモリ装置である。一般に、コンピュータはまた、例えば、磁気ディスク、光磁気ディスク、光ディスクのようなデータを格納するための１以上の大型格納装置を含むことができるが、或いは、そこからデータを受信したり、そこへデータを送信したりできるように当該大型格納装置と動作可能に結合されてもよい。しかしながら、コンピュータはそのような装置を有していなくてもよい。さらに、コンピュータは、例えばいくつかを挙げると、携帯電話、PDA、携帯オーディオプレーヤ、携帯ビデオプレーヤ、ゲームコンソール、GPS受信機、或いは、携帯型格納装置（例えば、USBフラッシュドライブ）等の他の装置に埋め込まれてもよい。コンピュータプログラム命令及びデータを格納するのに適したデバイスは、不揮発性のメモリ、媒体及びメモリデバイスの全ての形態を含み、一例として、例えばEPROM、EEPROM及びフラッシュメモリデバイスのような半導体メモリデバイス、例えば内部ハードディスクや取り外し可能なディスクのような磁気ディスク、光磁気ディスク、及びCD-ROMディスク、DVD-ROMディスクを含む。プロセッサ及びメモリは特定用途論理回路により強化されたり、或いは、その一部となったりしてもよい。
【００６３】
ユーザがシステムと直接にインタラクトするような実装例では、本明細書に記述された発明の主題の実施形態が、例えば、ユーザに情報を提示するためのCRTモニタやLCDモニタといった表示装置と、キーボード及び例えばユーザがコンピュータに対して入力を提供するためのマウス、トラックボールといったポインティングデバイスとを有するコンピュータ上で実行される。他の種類の装置も、ユーザとのインタラクションを提供するために利用が可能である。例えば、ユーザへのフィードバックはあらゆる形態のセンサフィードバック、例えば、視覚的なフィードバック、音声フィードバック或いは触覚フィードバックであっても良い。また、ユーザからの入力は、音響、音声又は触覚入力を含むどのような形態で受領されてもよい。さらに、コンピュータは、ユーザが利用する装置との間でドキュメントを送受信することによりユーザとインタラクトすることができる。例えば、ユーザのクライアント装置上のウェブブラウザから受信した要求に応じて、当該ウェブブラウザへウェブページを送信することができる。
【００６４】
本明細書に記載した発明の主題の実施形態は、例えばデータサーバのようなバックエンドコンポーネント、或いは、例えばアプリケーションサーバのようなミドルウェアコンポーネント、或いは、例えば本明細書に記載した発明の主題を実装したものとユーザがインタラクトできるグラフィカル・ユーザインタフェースやウェブブラウザを有するクライアントコンピュータのようなフロントエンドコンポーネント、或いは、そのようなバックエンド、ミドルウェア、或いはフロントエンドのコンポーネントの１以上の組み合わせを含むコンピューティングシステムにより実現されてもよい。システムのコンポーネントは、例えば通信ネットワークのような、いかなる形態、媒体のデジタルデータ通信によって相互接続されていてもよい。通信ネットワークの例には、ローカル・エリア・ネットワーク（LAN）、ワイド・エリア・ネットワーク（WAN）、インターネットワーク（例えば、インターネット）ピアツーピア・ネットワーク（例えば、アドホック・ピアツーピア・ネットワーク）が含まれる。
【００６５】
コンピューティングシステムはクライアント及びサーバを含むことができる。クライアント及びサーバは、一般に互いに離れており、典型的には通信ネットワークを介してインタラクトする。クライアント及びサーバの関係は、各コンピュータ上で実行されるコンピュータプログラムにより発生し、クライアント・サーバ関係を互いに有することとなる。実施形態によっては、サーバはデータ（例えば、HTMLページ）を（例えば、データを表示させ、暗い暗闘装置とインタラクトしているユーザからユーザ入力を受信するために）クライアント装置へ送信する。クライアント装置側で生成されたデータ（例えば、ユーザインタラクションの結果）は、サーバがクライアント装置から受信することができる。
【００６６】
本明細書は数多くの特定の実装方法の詳細を包含しているが、これらはクレームされた発明の範囲を限定するものとして解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特化した特徴を記述したものに過ぎない。個々の実施形態の文脈において本明細書に記載した所定の特徴は、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈で記載した様々な特徴を、複数の実施形態において個別に実装したり、任意に部分的に組み合わせて実装したりすることも可能である。更に、特徴はいくつかの組み合わせにおいて動作するように上述し、また当初そのように発明をクレームしてもいるが、クレームした組み合わせから得られる１以上の特徴は、別の場合では当該組み合わせから除外されてもよい。また、クレームした組み合わせは、部分的な組み合わせやその変形となってもよい。
【００６７】
同様に、動作は特定の順序で図面に示されているが、所望の結果を得るために図示する特定の順序或いは連続順において動作が実行されること、また、図示した全ての動作が実行されることを要求するものとして理解すべきではない。所定の状況では、マルチタスク処理や並列処理は利益がある。さらに、上述の実施形態内の様々なシステムコンポーネントを分離することにつき、全ての実施形態に対してそのような分離を必要とするものとして理解されるべきではない。また、説明に係るプログラムコンポーネント及びシステムは、一般に単一のソフトウェア製品に統合されてもよいし、或いは、複数のソフトウェア製品にパッケージ化されてもよい。
【００６８】
このように、発明の主題に関して特定の実施形態について記述した。他の実施形態は特許請求の範囲に記載する発明の範囲に属する。場合によって、クレームに記載された動作を異なる順序で実行し、その上で所望の結果を実現することができる。さらに、添付の図面に示す処理は、所望の結果を達成するために図示する特定の順序、或いは、連続順で実行されなくてもよい。特定の実装例では、マルチタスク処理や並列処理の採用が有利である。
【図１】
2014508990.tif 000003
【図２】
2014508990.tif 000004
【図３】
2014508990.tif 000005
【図４】
2014508990.tif 000006
【図５】
2014508990.tif 000007
【図６】
2014508990.tif 000008
【図７】
2014508990.tif 000009
【図８】
2014508990.tif 000010
【手続補正書】
【提出日】平成25年9月12日(2013.9.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理装置が実行する方法であって、
チャンクされるべきデータアイテムを識別する工程と、
前記データアイテムのタイプを判定する工程と、
前記データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当しないとの判定に応じて、前記データアイテムの第１のチャンキングを実行する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当するとの判定に応じて、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第２のチャンキングを実行する工程と
を備えることを特徴とする方法。
【請求項２】
前記第２のチャンキングを実行する工程は、
前記データアイテムを検査する工程と、
前記検査に基づき前記データアイテム内のコンテンツ部分のデータマップを作成する工程と、
前記データマップに基づいて前記データアイテムをチャンキングする工程と
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のチャンキングを実行する工程は、コンテンツベースのチャンキング境界を定義するために前記生成されたデータマップを利用する工程を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記データマップを作成する工程は、前記データアイテム内の異なるタイプのコンテンツを識別する工程を含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記データアイテムのタイプを識別する工程は、前記データアイテムと関連づけられた拡張子を識別する工程を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記データマップに基づいて前記データアイテムをチャンキングする工程は、異なるタイプのコンテンツを個別にチャンキングする工程を含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記チャンクを宛先に送信する工程を更に備えることを特徴とする請求項２に記載の方法。
【請求項８】
送信の前に各チャンクを暗号化する工程を更に備えることを特徴とする請求項７に記載の方法。
【請求項９】
前記データアイテムの要求を受信したのに応じて、
各チャンクがチャンク識別子を有するチャンクリストを要求元に送信する工程と、
前記チャンクリストからの前記データアイテムの１以上のチャンクの要求を受信する工程であって、該要求された１以上のチャンクは前記データアイテムの以前のバージョンから変更されたチャンクである、工程と、
前記要求された１以上のチャンクを送信する工程と
を更に備えることを特徴とする請求項１に記載の方法。
【請求項１０】
システムであって、
チャンクされるべきデータアイテムを識別する手段と、
前記データアイテムのタイプを判定する手段と、
前記データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定する手段と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当しないとの判定に応じて、前記データアイテムの第１のチャンキングを実行する手段と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当するとの判定に応じて、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第２のチャンキングを実行する手段と
を備えることを特徴とするシステム。
【請求項１１】
前記第２のチャンキングを実行する手段は、
前記データアイテムを検査する手段と、
前記検査に基づき前記データアイテム内のコンテンツ部分のデータマップを作成する手段と、
前記データマップに基づいて前記データアイテムをチャンキングする手段と
を含むことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記第２のチャンキングを実行する手段は、コンテンツベースのチャンキング境界を定義するために前記生成されたデータマップを利用する手段を含むことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記データマップを作成する手段は、前記データアイテム内の異なるタイプのコンテンツを識別する手段を含むことを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記データアイテムのタイプを識別する手段は、前記データアイテムと関連づけられた拡張子を識別する手段を含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記データマップに基づいて前記データアイテムをチャンキングする手段は、異なるタイプのコンテンツを個別にチャンキングする手段を含むことを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記チャンクを宛先に送信する手段をさらに備えることを特徴とする請求項１１に記載のシステム。
【請求項１７】
送信の前に各チャンクを暗号化する手段を更に備えることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記データアイテムの要求を受信したのに応じて、
各チャンクがチャンク識別子を有するチャンクリストを要求元に送信する手段と、
前記チャンクリストからの前記データアイテムの１以上のチャンクであって、前記データアイテムの以前のバージョンから変更されたチャンクの要求を受信する手段と、
前記要求された１以上のチャンクを送信する手段と
を更に備えることを特徴とする請求項１０に記載のシステム。
【請求項１９】
コンピュータプログラムを格納したコンピュータ記憶媒体であって、前記プログラムは命令を含み、該命令がデータ処理装置により実行されると、該データ処理装置は、
チャンクされるべきデータアイテムを識別する工程と、
前記データアイテムのタイプを判定する工程と、
前記データアイテムのタイプが、特定の１以上のタイプのうちの１つであるかを判定する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当しないとの判定に応じて、前記データアイテムの第１のチャンキングを実行する工程と、
前記データアイテムのタイプが、前記特定の１以上のタイプのうちの１つに該当するとの判定に応じて、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第２のチャンキングを実行する工程と
を実行することを特徴とする、コンピュータ記憶媒体。
【請求項２０】
前記第２のチャンキングを実行する工程は、
前記データアイテムを検査する工程と、
前記検査に基づき前記データアイテム内のコンテンツ部分のデータマップを作成する工程と、
前記データマップに基づいて前記データアイテムをチャンキングする工程と
を含むことを特徴とする請求項１９に記載のコンピュータ記憶媒体。
【国際調査報告】
2014508990.tif 000011
2014508990.tif 000012
2014508990.tif 000013