【手続補正書】
【提出日】平成26年1月7日(2014.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータのオペレーティングシステムの更新を生成する方法であって、
前記オペレーティングシステムの現バージョンのバージョン番号を特定するステップと、
プロセッサを用いて、前記オペレーティングシステムの前記現バージョンを前記オペレーティングシステムの新バージョンに更新する操作の順序付きリストを作成するステップであって、前記プロセッサは、前記オペレーティングシステムの前記新バージョンに対して各通常ファイルにわたり反復を実行して、前記新バージョンに関連付けられた全てのデータブロックの前記順序付きリストを取得する、作成するステップと、
順序付けられたデータブロブの集合を作成するステップであって、前記順序付けられたデータブロブのそれぞれは、対応する操作のための操作の順序付きリストのデータチャンクを示しており、前記順序付けられたデータブロブの集合のそれぞれは、そのデータブロブについての対応する操作のための操作の順序付きリストに基づいて圧縮または非圧縮されるものである、データブロブの集合を作成するステップと、
前記プロセッサを用いて、差分更新ファイルが実際の更新ファイルであることを示すマジックナンバ指示子と、前記オペレーティングシステムの前記新バージョンを特定する新バージョン番号と、前記操作の順序付きリストを含むプロトコルバッファとを含む前記差分更新ファイルを組み立てるステップと
を含んでなる、コンピュータ可読オペレーティングシステムの更新を生成する方法。
【請求項２】
前記差分更新ファイルは、前記マジックナンバ指示子の直後に新バージョン番号が前記オペレーティングシステムの前記新バージョンを特定し、前記新バージョン番号の直後に操作の前記順序付きリストを含む前記プロトコルバッファを特定し、前記プロトコルバッファの直後に前記順序付けられたデータブロブの集合のブロックを特定し、前記順序付きリスト内の１つ以上の前記操作のそれぞれのデータブロブの前記ブロックの直後にファイル終端指示子を特定するように組み立てられるものである、請求項１に記載の方法。
【請求項３】
前記順序付きリスト内の前記各操作は、クライアントデバイスのパーティションの１以上の特定のデータブロックに適用可能であり、前記操作は、前記パーティション内の前記データブロックのうちの少なくとも１つが、前記オペレーティングシステムの前記新バージョンのための前記クライアントデバイスの新しいパーティション内の別のブロックにコピーされることになるコピー操作と、前記データブロックのうちの少なくとも所与の１つがメモリに読み込まれ、前記差分更新ファイルのデータブロブを用いて前記少なくとも１つの所与のデータブロックに対して差分ルーチンが実行される差分操作と、前記差分更新ファイルの選択されたデータブロブが前記新しいパーティション内の指定ブロックに書き込まれるように構成される置換操作と、圧縮されたデータブロブが前記差分更新ファイルに含まれ、前記オペレーティングシステムの前記新バージョンのための前記新しいパーティション内の選択された指定ブロックに書き込まれるように構成される解凍付き置換操作とのうちの１以上のものを含む、請求項１又は２に記載の方法。
【請求項４】
前記順序付きリスト内の前記各操作は、ファイルオブジェクトに関連付けられており、前記方法は、
前記ファイルオブジェクトごとにグラフ内に頂点を作成することと、
前記各ブロックを表すベクトルを作成することと、
を更に含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記各ブロックの前記ベクトルのリーダパラメータ及びライタパラメータを設定するステップと、
異なるリーダ及びライタを有する前記ブロックごとに、該ライタから該リーダへのエッジを前記グラフ内に作成するステップであって、前記エッジは、該エッジに関連付けられたソースファイル操作が開始する前に完了されるファイル操作を指し示すものである、作成するステップと
を更に含む、請求項４に記載の方法。
【請求項６】
前記各エッジは重みを有し、該重みは、そのエッジに関連付けられた前記グラフ内のブロックの数を特定する、請求項５に記載の方法。
【請求項７】
前記グラフがサイクルを含む場合、前記方法は、
前記サイクルのそれぞれを切断するステップを更に含む、請求項５又は６に記載の方法。
【請求項８】
前記サイクルのうちの所与の１つを切断するステップは、
前記所与のサイクルに関連付けられた最小重みのエッジを見つけることと、
前記最小重みのエッジをカットすることと
を含むものである、請求項７に記載の方法。
【請求項９】
前記最小重みのエッジをカットすることは、
エクステントをスクラッチスペースにコピーする操作を表す新しいノードを作成することと、
前記最小重みのエッジのソースノードに前記新しいノードを指し示させることと
を含むものである、請求項８に記載の方法。
【請求項１０】
前記最少重みのエッジのソースノードに前記新しいノードを指し示させることは、操作の前記順序付きリストについての正しい順序で新しいコピー操作が行われることを保証するために、前記最小重みのエッジのデスティネーションノードから新しいエッジを作るものである、請求項９に記載の方法。
【請求項１１】
コンピュータ可読オペレーティングシステムの更新を生成するデバイスであって、
前記オペレーティングシステムに関連付けられた差分更新情報を格納するメモリと、
前記メモリに結合されたプロセッサであって、
前記オペレーティングシステムの現バージョンのバージョン番号を特定し、
前記オペレーティングシステムの前記新バージョンに対して各通常ファイルにわたり反復を実行して、前記新バージョンに関連付けられた全てのデータブロックの前記順序付きリストを取得することを含めて、前記差分更新情報を用いて、前記オペレーティングシステムの前記現バージョンを前記オペレーティングシステムの新バージョンに更新する操作の順序付きリストを作成し、
順序付けられたデータブロブの集合を作成し、ここで、前記順序付けられたデータブロブのそれぞれは、対応する操作のための操作の順序付きリストのデータチャンクを示しており、前記順序付けられたデータブロブの集合のそれぞれは、そのデータブロブについての対応する操作のための操作の順序付きリストに基づいて圧縮または非圧縮されるものであり、
差分更新ファイルが実際の更新ファイルであることを示すマジックナンバ指示子と、前記オペレーティングシステムの前記新バージョンを特定する新バージョン番号と、前記操作の順序付きリストを含むプロトコルバッファと、前記順序付けられたデータブロブの集合とを含む前記差分更新ファイルを組み立て、
前記差分更新ファイルを前記メモリに格納する、ように構成されるプロセッサと
を備えてなる、コンピュータ可読オペレーティングシステムの更新を生成するデバイス。
【請求項１２】
前記順序付きリスト内の前記各操作は、ファイルオブジェクトに関連付けられ、前記プロセッサは、
前記ファイルオブジェクトごとにグラフ内に頂点を作成し、
前記各ブロックを表すベクトルを作成する、
ように更に構成される、請求項１１に記載のデバイス。
【請求項１３】
前記プロセッサは、
前記各ブロックの前記ベクトルのリーダパラメータ及びライタパラメータを設定し、
異なるリーダ及びライタを有する前記ブロックごとに、該ライタから該リーダへのエッジを前記グラフ内に作成し、ここで、前記エッジは、該エッジに関連付けられたソースファイル操作が開始する前に完了されるファイル操作を指し示す、
ように更に構成される、請求項１２に記載のデバイス。
【請求項１４】
前記グラフがサイクルを含む場合、前記プロセッサは、前記サイクルのそれぞれを切断するように更に動作可能である、請求項１３に記載のデバイス。
【請求項１５】
前記サイクルのうちの所与の１つを切断することは、
前記所与のサイクルに関連付けられた最小重みのエッジを見つけることと、
前記最小重みのエッジをカットすることと
を含むものである、請求項１４に記載のデバイス。
【請求項１６】
前記プロセッサは、
エクステントをスクラッチスペースにコピーする操作を表す新しいノードを作成し、
前記最小重みのエッジのソースノードに前記新しいノードを指し示させる、
ことによって、前記最小重みのエッジをカットするように動作可能である、請求項１５に記載のデバイス。
【請求項１７】
前記最少重みのエッジのソースノードに前記新しいノードを指し示させることは、操作の前記順序付きリストについての正しい順序で新しいコピー操作が行われることを保証するために、前記最小重みのエッジのデスティネーションノードから新しいエッジを作るものである、請求項１６に記載のデバイス。
【請求項１８】
コンピュータプログラムのコンピュータ可読命令が格納される有形のコンピュータ可読ストレージ媒体であって、前記命令は、コンピュータによって実行されると、コンピュータ可読オペレーティングシステムの更新を生成する手順を前記コンピュータに実行させ、前記手順は、
前記オペレーティングシステムの現バージョンのバージョン番号を特定する手順と、
プロセッサを用いて、前記オペレーティングシステムの前記現バージョンを前記オペレーティングシステムの新バージョンに更新する操作の順序付きリストを作成する手順であって、前記プロセッサは、前記オペレーティングシステムの前記新バージョンに対して各通常ファイルにわたり反復を実行して、前記新バージョンに関連付けられた全てのデータブロックの前記順序付きリストを取得する、作成する手順と、
順序付けられたデータブロブの集合を作成する手順であって、前記順序付けられたデータブロブのそれぞれは、対応する操作のための操作の順序付きリストのデータチャンクを示しており、前記順序付けられたデータブロブの集合のそれぞれは、そのデータブロブについての対応する操作のための操作の順序付きリストに基づいて圧縮または非圧縮されるものである、データブロブの集合を作成する手順と、
前記プロセッサを用いて、差分更新ファイルが実際の更新ファイルであることを示すマジックナンバ指示子と、前記オペレーティングシステムの前記新バージョンを特定する新バージョン番号と、前記操作の順序付きリストを含むプロトコルバッファと、前記順序付けられたデータブロブの集合とを含む前記差分更新ファイルを組み立てる手順と
を含んでなる、コンピュータプログラムのコンピュータ可読命令が格納される有形のコンピュータ可読ストレージ媒体。
【請求項１９】
前記順序付きリスト内の前記各操作は、ファイルオブジェクトに関連付けられており、
前記ファイルオブジェクトごとにグラフ内に頂点を作成する手順と、
前記各ブロックを表すベクトルを作成する手順と
を更に含む、請求項１８に記載のストレージ媒体。
【請求項２０】
前記各ブロックの前記ベクトルのリーダパラメータ及びライタパラメータを設定する手順と、
異なるリーダ及びライタを有する前記ブロックごとに、該ライタから該リーダへのエッジを前記グラフ内に作成する手順であって、前記エッジは、該エッジに関連付けられたソースファイル操作が開始する前に完了されるファイル操作を指し示す、作成する手順と
を更に含む、請求項１９に記載のストレージ媒体。
【請求項２１】
前記グラフがサイクルを含む場合には、
各所与のサイクルに関連付けられた最小重みのエッジを見つけることと、
前記各サイクルの前記最小重みのエッジをカットすることと
によって前記サイクルのそれぞれを切断する手順を更に含む、請求項２０に記載のストレージ媒体。
【請求項２２】
前記最小重みのエッジをカットすることは、
エクステントをスクラッチスペースにコピーする操作を表す新しいノードを作成することと、
前記最小重みのエッジのソースノードに前記新しいノードを指し示させることと
を含むものである、請求項２１に記載のストレージ媒体。
【請求項２３】
新しいコピー操作が該新しいコピー操作のコンシューマの前に行われることを保証するために、前記最小重みのエッジのデスティネーションノードから新しいエッジが作られる、請求項２２に記載のストレージ媒体。
【請求項２４】
オペレーティングシステムの現バージョンを格納するメモリと、
前記メモリに結合されたプロセッサと
を備えてなる、クライアントデバイスであって、
前記プロセッサは、
前記オペレーティングシステムの前記現バージョンの更新に関して遠隔デバイスに要求を送信し、ここで、該要求は、前記オペレーティングシステムの前記現バージョンを特定するバージョン番号を含み、
前記遠隔デバイスから差分更新ファイルを受信し、ここで、該差分更新ファイルは、該差分更新ファイルが実際の更新ファイルであることを示すマジックナンバ指示子と、前記オペレーティングシステムの前記新バージョンを特定する新バージョン番号と、操作の順序付きリストを含むプロトコルバッファと、順序付けられたデータブロブの集合を含むデータのブロックとを含み、前記順序付けられたデータブロブのそれぞれは、対応する操作のための操作の順序付きリストのデータチャンクを示しており、前記順序付けられたデータブロブの集合のそれぞれは、そのデータブロブについての対応する操作のための操作の順序付きリストに基づいて圧縮または非圧縮されるものであり、
前記マジックナンバを検証し、
前記プロトコルバッファから前記操作の順序付きリストを抽出し、
前記オペレーティングシステムの前記現バージョンを前記オペレーティングシステムの前記新バージョンに更新するために、前記操作の順序付きリストを実行することによって差分更新を実行する、
ように構成されている、クライアントデバイス。
【請求項２５】
前記プロセッサは、前記差分更新ファイルが前記クライアントデバイスにストリーミングされている間に、前記メモリに前記差分更新ファイルを保存することなく、前記オペレーティングシステムの前記新バージョンへの前記オペレーティングシステムの前記差分更新を実行するように動作可能である、請求項２４に記載のクライアントデバイス。