(57)【特許請求の範囲】
【請求項１】
複数のデバイス間でのデータの同期化の方法であって、
前記複数のデバイスの第１のデバイスからの、データアイテム及び該第１のデバイスで既知のデータアイテムへの最新の変化を特定する、知識ベクトルを受信するステップと、
前記複数のデバイスの第２のデバイスにおいて、前記受信した知識ベクトルと、前記第１のデバイスで知られていない変化に対するローカルの知識ベクトルとを比較するステップと、
前記第１のデバイスへ変化のリストを送信するステップと、
前記変化のリストにおける１つ以上のそれぞれの変化に対応する１つ以上のデータアイテムに対する、前記第１のデバイスからの要求を受信するステップと、
前記要求されたデータアイテムを送信するステップと
を含むことを特徴とする方法。
【請求項２】
前記知識ベクトルは、最新の同期化が発生した時刻を示すローカルランクを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記知識ベクトルは、前記データアイテム及び前記第１のデバイスで既知の最新の変化識別子を特定する、コンパクト表示を含むことを特徴とする請求項１に記載の方法。
【請求項４】
データアイテムに対する前記変化識別子は、前記データアイテムが同期化される前記複数のデバイスの何れかのデバイスによって、前記データアイテムが変更されるたびに増加されることを特徴とする請求項３に記載の方法。
【請求項５】
前記複数のデバイス間の同期化は、前記複数のデバイスの最も小さいデバイス識別子を有する前記第１のデバイスによって開始されることを特徴とする請求項１に記載の方法。
【請求項６】
前記第１のデバイスは、
前記第２のデバイスから同期化するために、データアイテムの第１のバージョンを受信し、
第３のデバイスから同期化するために、前記データアイテムの第２のバージョンを受信し、
前記第１のバージョンと前記第２のバージョンとの間で競合があるか否かを判定し、
競合があれば、競合の勝者を選択し、及び競合の敗者のコピーを格納して、競合を自動的に解決することを特徴とする請求項１に記載の方法。
【請求項７】
前記第１のデバイスは、競合があるか否かを判定するために、
前記データアイテムの前記第１のバージョンと、前記データアイテムの前記第２のバージョンとのそれぞれに対する変化識別子を特定し、
各バージョンの作成時刻が特定の閾値以内であるか否かを判定するためにそれぞれの前記変化識別子を用いることを特徴とする請求項６に記載の方法。
【請求項８】
前記第１のデバイスは、
前記競合を自動的に解決するために、
前記第２のデバイスと前記第３のデバイスとのそれぞれに対するデバイス識別子を特定し、
最も小さい前記デバイス識別子に関連付けられた前記データアイテムの前記第１のバージョン又は前記第２のバージョンを指示して前記競合を解決することを特徴とする請求項６に記載の方法。
【請求項９】
システムであって、
複数のデバイスの第１のデバイスからの、データアイテム及び該第１のデバイスで既知のデータアイテムへの最新の変化を特定する、知識ベクトルを受信するステップと、
前記複数のデバイスの第２のデバイスにおいて、前記受信した知識ベクトルと、前記第１のデバイスで知られていない変化に対するローカルの知識ベクトルとを比較するステップと、
前記第１のデバイスへ変化のリストを送信するステップと、
前記変化のリストにおける１つ以上のそれぞれの変化に対応する１つ以上のデータアイテムに対する、前記第１のデバイスからの要求を受信するステップと、
前記要求されたデータアイテムを送信するステップと
を含む動作を１つ以上のコンピュータデバイスが実行することが可能であることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ同期化に関する。
【背景技術】
【０００２】
ユーザは複数のデバイス間でデータを転送することができる。通常、複数のユーザは、ファイル転送やファイル共有を通じて他のものとデータを共有する。例えば、ユーザは、電子メール又はファイル伝送プロトコルを用いて、他のものへ送信する特有のファイルを特定することができる。ファイル共有は、他のものが例えばネットワーク上でファイルにアクセスすることを許容する一方で、通常は当該ファイルはそれらの元の位置に維持される。代替的に、ファイルは、他の複数のものによってそれらの元の格納位置から確認されることもできるが、通常は、ファイルを変更できるユーザのみが確認したファイルである。
【０００３】
従来のシステムもまた、複数のユーザデバイス（例えば、ラップトップコンピュータ及びモバイルデバイス）間で複数のユーザがデータを同期化することを許容するものである。多くの場合、特定の種類のデータのみが複数のデバイス間で同期化されるか、又は、同期化がユーザによって開始されなければならない。
【発明の概要】
【０００４】
本実施形態では、データ同期化に関する技術について説明する。概して、本明細書で説明される特徴の一態様が本方法に組み込まれ、前記一組のデバイスの第１のデバイスからの、データアイテム及びピアデバイスで既知のデータアイテムへの最新の変化を特定する、知識ベクトルを受信するステップと、前記一組のデバイスの第２のデバイスにおいて、前記受信した知識ベクトルと、前記第１のデバイスで知られていない変化に対するローカルの知識ベクトルとを比較するステップと、前記第１のデバイスへ変化のリストを送信するステップとを含む。本形態の他の実施形態は、上記方法の動作を実行するように構成された、対応するシステム、装置、コンピュータ記憶媒体に記憶されたコンピュータプログラムを含む。
【０００５】
上記実施形態及び他の実施形態は１つ以上の以下の特徴を選択的に含むことができる。本方法は、さらに、前記変化のリストにおいて１つ以上のそれぞれの変化に対応する１つ以上のデータアイテムに対する、前記第１のデバイスからの要求を受信するステップと、前記要求されたデータアイテムを送信するステップとを含む。前記知識ベクトルはローカルランクを含む。前記知識ベクトルは、前記データアイテムと、前記第１のデバイスで既知の最新の変化識別子とを特定するコンパクト表示を含む。データアイテムに対する前記変化識別子は、前記データアイテムが同期化される複数のデバイスの何れかのデバイスによって、前記データアイテムが変更されるたびに増加される。前記一組のデバイス間の同期化は、前記一組のデバイスの最も小さいデバイス識別子を有する前記第１のデバイスによって開始される。
【０００６】
概して、本明細書で説明される主題の一態様は、第１のデバイスから同期化するために、データアイテムの第１のバージョンを特定するステップと、第２のデバイスから同期化するために、前記データアイテムの第２のバージョンを特定するステップと、前記第１のバージョンと前記第２のバージョンとの間で競合があるか否かを判定するステップと、競合があれば、競合の勝者を選択するステップ及び競合の敗者のコピーを格納するステップを含む競合を自動的に解決するステップとを含むことを特徴とする方法として実現されうる。本形態の他の実施形態は、上記方法の動作を実行するように構成された、対応するシステム、装置、コンピュータ記憶媒体に記憶されたコンピュータプログラムを含む。
【０００７】
上記実施形態及び他の実施形態は１つ以上の以下の特徴を選択的に含むことができる。競合があるか否かを判定する前記ステップは、前記データアイテムの前記第１のバージョンと、前記テータアイテムの前記第２のバージョンとのそれぞれに対する変化識別子を特定するステップと、各バージョンの作成時刻が特定の閾値以内であるか否かを判定するためにそれぞれの前記変更識別子を用いるステップとを含む。前記競合を自動的に解決する前記ステップは、前記第１のデバイスと前記第２のデバイスとのそれぞれに対するデバイス識別子を特定するステップと、最も小さい前記デバイス識別子に関連付けられた前記データアイテムの前記バージョンを指示して前記競合を解決するステップとを含む。
【０００８】
概して、本明細書で説明される主題の一態様は、それぞれが固有の数値識別子を有する複数のデバイスを特定するステップと、複数のピアデバイスが、前記それぞれの数値識別子に従って数値順に配置されるように、前記複数のデバイスの論理的な配置を形成するステップと、前記論理的な配置に従って複数の組の隣接デバイス間でデータを同期化するステップとを含む。本形態の他の実施形態は、上記方法の動作を実行するように構成された、対応するシステム、装置、コンピュータ記憶媒体に記憶されたコンピュータプログラムを含む。
【０００９】
上記実施形態及び他の実施形態は１つ以上の以下の特徴を選択的に含むことができる。最も小さい前記数値識別子を有する前記デバイスは、最も大きい前記数値識別子を有するデバイスと隣接して論理的に配置される。前記一組のデバイス間において、同期化する前記ステップは、最も小さい前記数値識別子を有するデバイスによって開始される。
【００１０】
概して、本明細書で説明される主題の一態様は、第１のアイデンティティと関連付けられた複数のデバイスを特定するステップと、１つ以上の第２のアイデンティティに関連付けられた１つ以上のデバイスを特定するステップと、前記第１のアイデンティティに関連付けられた前記複数のデバイスのそれぞれと、第１のデータセットを同期化するステップと、前記第２のアイデンティティに関連付けられた前記１つ以上のデバイスのそれぞれとユーザ特定の第２のデータセットを同期化するステップとを含む。本形態の他の実施形態は、上記方法の動作を実行するように構成された、対応するシステム、装置、コンピュータ記憶媒体に記憶されたコンピュータプログラムを含む。
【００１１】
上記実施形態及び他の実施形態は１つ以上の以下の特徴を選択的に含むことができる。前記第１のデータセットは、第１のユーザ特定のデータ収集物であり、前記第２のデータセットは、異なる第２のユーザ特定のデータ収集物である。
【００１２】
本明細書で説明される主題の特有の実施形態は以下の１つ以上の特徴を実現するように実装される。データ同期化は、変更が発生した場合に行われる。同期化は、単一の識別子（例えば、ユーザのデバイス）を有するデバイス間で発生するだけではなく、異なる識別子を有するデバイス間でも発生しうる（例えば、他のユーザとの特有のデータの同期化）。同期化は、まず、後に又はオンデマンドで実際に同期化されるデータアイテムを特定し、ネットワークデータトラフィックを低減する。競合解決はユーザ入力なしに自動的に実行され、一方で、競合敗者のデータは、後にユーザが取り出せるように格納される。
【００１３】
本明細書で説明される主題の１つ以上の実施形態の詳細については、添付の図面とともに以下で説明する。上記主題の他の特徴、態様、及び利益は以下の説明、図面、及び特許請求の範囲に記載する。
【図面の簡単な説明】
【００１４】
【図１】複数のアイデンティティ内及び複数のアイデンティティ間での同期化の一例を示す図である。
【図２】データ同期化における複数のデバイスのサークル例を示す図である。
【図３】一組のデバイス間でのデータ同期化の例をを示すデータフローである。
【図４】他のデバイスとの同期化を開始する処理例を示すフローチャートである。
【図５】同期化要求に応じた処理例を示すフローチャートである。
【図６】同期化中の競合解決における処理例を示すフローチャートである。
【図７】システム構成の例を示す図である。
【発明を実施するための形態】
【００１５】
データは、同じユーザ識別子に関連付けられた複数のデバイス（例えば、ユーザのラップトップとモバイル電話機）間で同期化されえ、異なる識別子（例えば、異なるユーザ間で同期化データを共有する場合）に関連付けられたデバイス間で同期化されうる。
【００１６】
データが同期化された複数のデバイスのグループは、デバイス識別子の値の順序付けに従ってサークル上に論理的に配置されうる。データは、上記論理サークルで一組のデバイス間で同期化されうる。さらに、同期化情報は、変更識別子のコンパクト表示を用いて、例えば変化ベクトルを用いて送信される。このように、データアイテムの最新のバージョンを表す識別子のみが送信される必要があり、全てのバージョンを送信するよりも同期化を容易にし、同期化中のネットワークトラフィックを低減することができる。
【００１７】
同期化されるデータアイテムの２つのバージョンは、閾値時刻内での作成時刻を有する。これは、データアイテムの２つのバージョン間での競合をもたらす。各バージョンに関連付けられたデバイス識別子に基づき、競合が自動的に解決されうる。競合により更新されなかったデータアイテム（競合の敗者）は、必要であれば取り出すことができるように格納される。
【００１８】
図１は、複数のアイデンティティ内及び複数のアイデンティティ間での同期化の例を示す図１００である。図１００は、第１のアイデンティティに関連付けられたデバイス１０２、１０４と、第２のアイデンティティ１１２に関連付けられたデバイス１０８、１１０とを示す。複数のデバイスは、例えば、デスクトップ若しくはラップトップコンピューティングデバイス、モバイルデバイス、タブレットデバイス、携帯情報端末（ＰＤＡ）、又は、他のコンピューティングデバイスを含むことができる。
【００１９】
デバイス１０２は、デフォルト同期化データ１１４、他の同期化データ１１６、及び、共有同期化データ１１８を含む。デフォルト同期化データ１１４は、デフォルトで（例えば電子メール）、同一のアイデンティティの複数のデバイス間で同期化されるデータを含むことができる。他の同期化データ１１６は、ユーザのアイデンティティ（例えば、音楽）に関連付けられた複数のデバイス間で同期化するユーザが特定された追加のデータを含むことができる。いくつかの実施形態において、ユーザは、他の複数のユーザデバイスと共有されるデータの収集物を特定する。当該収集物は、共有フォルダとして、又は、上記収集物に属するように指定された個別のデータアイテムとして、論理的に表されることができる。
【００２０】
共有同期化データ１１８は、他のアイデンティティに関連付けられた複数のデバイスと共有する、ユーザによって特定されたデータを含むことができる。具体的には、ユーザは、特定のデータ（例えば、第１のアイデンティティ１０６からの画像を第２のアイデンティティ１１２に同期化する）のように、共有データが同期化される特定のアイデンティティを特定することができる。いくつかの実施形態において、異なる同期化データは、異なるアイデンティティに対して特定されうる。例えば、ユーザは、２つのアイデンティティと画像を共有する一方で、単一のアイデンティティでビデオを共有することができる。共有同期化データ１１８は、デフォルトのデータ１１４及び他の同期化データ１１６のいくつか、又は全てを含むことができ、或いは、それらを含まなくてもよい。上記収集物は、共有フォルダとして、又は、当該収集物に属するものとして指定される個別のデータアイテムとして、論理的に表されることができる。
【００２１】
デバイス１０４は、同様に、デフォルト同期化データ１２０、他の同期化データ１２２、及び共有同期化データ１２４を含む。デバイス１０２、１０４は、同一のアイデンティティで関連付けられる。したがって、デバイス１０２、１０４の間での同期化は、それらの全てのデータ（デフォルトデータ、他の同期化データ、及び共有データ）を同期化する。
【００２２】
デバイス１０８は、同様に、デフォルト同期化データ１２６、他の同期化データ１２８、及び共有同期化データ１３０を含む。デバイス１１０は、デフォルト同期化データ１３２、他の同期化データ１３４、及び共有同期化データ１３６を含む。デバイス１０８、１１０は、同一のアイデンティティ（即ち、アイデンティティ１１２）で関連付けられる。したがって、デバイス１０８、１１０の間での同期化は、それらの全てのデータ（デフォルトデータ、他の同期化データ、及び共有データ）を同期化する。
【００２３】
共有アイテムの同期化は、それぞれのアイデンティティの１つ以上のデバイス間で発生しうる。具体的には、図１に示すように、第１のアイデンティティ１０６の共有同期化データ１２４は、第２のアイデンティティ１１２のデバイス１０８の共有同期化データ１３０と同期化される。共有データは、同一のアイデンティティにう関連付けられたデバイス（例えば、デバイス１０２とデバイス１０４）間で同期化されるため、第１のアイデンティティ１０６で関連付けられたデバイスの何れかが第２のアイデンティティ１１２と同期化を行う。このように、データは、同一のアイデンティティのデバイス（例えば、デバイス１０２、１０４）間と、異なるアイデンティティのデバイス（デバイス１０４、１０８）間との両方で同期化される。いくつかの実施形態において、複数のアイデンティティ間で同期化は、同一の指定されたデバイス間で発生する。例えば、第１のアイデンティティ１０６と第２のアイデンティティ１１２との間の同期化は、常にデバイス１０４と、デバイス１０８との間で発生する。
【００２４】
図２は、データ同期化における複数のデバイスのサークル２００の一例を示す図である。複数のデバイスのサークル２００は、８台のデバイス２０２ａ〜ｈがサークル又はリング状に論理的に配置されている様子を示す。物理的な配置は、この論理的な配置には結び付けられない。各デバイス２０２ａ〜ｈは、データが同期化されるデバイスである。同一のアイデンティティ内のデバイス、及び、異なるアイデンティティ間のデバイスの両方を含むことができる。複数のデバイス２０２ａ〜ｈは、他のデバイスと、例えば、１つ以上のネットワークを用いて通信を行うことができる。
【００２５】
論理的なサークルの配置は、デバイス識別子によってデバイスを順序付けることができる。具体的には、各デバイス２０２ａ〜ｈは、固有のデバイス識別子の値を有する。各デバイスは、固有の識別子の値（例えば、デバイスＩＤ）を有する。各デバイスはまた、デバイスが同期化する他のデバイスへ識別子を与えるエイリアスリストを有することができる。当該エイリアスは、実際のデバイス識別子（例えば、他のデバイスから受信した）でもよく、又は、例えば実際のデバイス識別子へのマッピングを維持する一方でローカルユーザに対して当該デバイスによって割り当てられてもよい。このように、複数のデバイスのサークル２００において、第１のデバイス２０２ａは、一番小さいデバイス識別子番号を有する。複数のデバイスは、デバイス番号を、最も大きい識別子番号を有する第８のデバイス２０２ｈまで増加することによって順序付けられる。サークルの配置は、最も小さいデバイス番号のデバイスと、最も大きいデバイス番号のデバイスを隣接させることで行われる。
【００２６】
データ同期化は、複数の隣接デバイス間で行われる。例えば、デバイス２０２ｃは、デバイス２０２ｂと、デバイス２０２ｄとの間で同期化が行われる。同様に、デバイス２０２ｄは、デバイス２０２ｃとデバイス２０２ｅとの間で同期化が行われる。
【００２７】
複数のデバイスは、複数のデバイスの論理的なサークルにおいて隣接していないデバイスとは直接的に同期化は行わない。したがって、デバイス２０２ｂは、デバイス２０２ｆとは直接的に同期化を行わない。しかし、デバイスペア間の同期化を通じて、複数のデバイスのサークル２００において全てのデータが全てのデバイスで同期化される。いくらかの同期遅延時間はあるものの、ネットワークトラフィックは大いに低減される。
【００２８】
いくつかの実施形態において、複数のデバイスのサークル２００での一組のデバイス間のデータ同期化に関して、一方のデバイスはサーバとして考慮され、他方のデバイスクライアントとして考慮される。例えば、最も小さいデバイス識別子を有するデバイスは、サーバとして考慮され、次に小さいデバイス識別子を有するデバイスと同期化を開始する。”サーバ”が任意の要求した同期化データを受信するとすぐに、ペアの他方のデバイスが同期化されるように、その役割は逆転する。
【００２９】
図２に示す複数のデバイスのサークルにおいて、デバイス２０２ｂとデバイス２０２ｃとの間の同期化は、より小さいデバイス識別子を有するデバイス２０２ｂによって開始される。しかしながら、デバイス２０２ｃは、デバイス２０２ｃとデバイス２０２ｄとの間の同期化を開始する。デバイス２０２ｃがより小さいデバイス識別子を有するためである。
【００３０】
デバイス２０２ａとデバイス２０２ｈとの間の同期化は、最も小さいデバイス識別子を有するデバイス２０２ａ（デバイス２０２ｈは最も大きいデバイス識別子を有するため）によって開始される。したがって、デバイス２０２ａは、デバイス２０２ｂとデバイス２０２ｈとの両方に対して同期化を開始する。
【００３１】
図３は、一組のデバイス間でのデータ同期化の一例を示すフローチャート３００である。具体的には、フローチャート３００は、第１のデバイス３０２（デバイスＡ）と第２のデバイス３０４（デバイスＢ）との間の、第１のデバイス３０２によって（例えば、第１のデバイス３０２がより小さいデバイス識別子を有するため）開始される同期化を示す。
【００３２】
第１のデバイス３０２は、変更知識及びローカルランクを第２のデバイスへ送信する（３１０）。当該知識は、第１のデバイスで知られているデータアイテムに対する変更識別子のリストを特定し、ローカルランクは、最新の同期化が発生した時刻を示す。
【００３３】
変更知識は、ベクトルによって表されることができる。当該ベクトルは、デバイスで既知の各データアイテムに対する最新の変更識別子を含むことができる。具体的には、各データアイテム（例えば、ファイル）は、アイテム識別子を有する。アイテム識別子は、変更識別子と同様にアイテムを作成したデバイスをを特定する。いくつかの実施形態において、アイテム識別子は、１６ビットの作成識別子（例えば、データアイテムを作成したデバイスを特定する）及び４８ビットのアイテム識別子を含む６４ビットのアイテム識別子である。これらの識別子は、例えば１６進の値であってもよい。便宜上、ここでは、デバイスＡによって作成されたデータアイテム１０１を［Ａ：１０１］と示す。
【００３４】
データアイテムがデバイスによって変更されると、変更識別子が生成される。例えば、ユーザは新しいバージョンを形成するように、ドキュメントを変更することができる。具体的には、変更識別子は、デバイスによる変更と、当該変更に対する変更識別子とを特定することができる。いくつかの実施形態において、変更識別子は、１６ビットのデバイス識別子（例えば、データアイテムを変更したデバイスの）と、４８ビット変更識別子とを含む６４ビットの変更識別子によって表される。これらの識別子は、例えば、１６進の値であってもよい。便宜上、デバイス識別子と変更識別子との組み合わせは、デバイスＡによって作成されたデータアイテム１０１がデバイスＢによって変更された変更１２７と関連付けられることを示す（例えば、データアイテム１０１の特定のバージョンを表す）＜［Ａ：１０１］，［Ｂ：１２７］＞の形式で表されるであろう。
【００３５】
データアイテムが変更されるたびに、増加する変更識別子がデータアイテムと関連付けられる。データアイテムは、複数回、及び複数のデバイスによって変更されうる。したがって、時間とともに、データアイテム（例えば、［Ａ：１０１］）は、変更識別子［Ａ：１１２］、［Ｂ：１２０］、［Ｃ：１３７］、［Ｂ：１４０］及び、［Ｂ：１４１］と関連付けられ、これらの変更識別子はデバイスＡ、Ｂ、Ｃによって生成され、互いに同期化が行われる、元のデータアイテム［Ａ：１０１］の５つの異なるバージョンを表す。
【００３６】
データアイテムが複数のデバイス間で同期化されるため、一方のデバイスによる変更が他方のデバイスによる変更の前に同期化されていないような、ほぼ同時に２つの異なるデバイスによって変更が行われることが可能である。競合の解決プロセスは、同期化のデータアイテムのバージョンを特定するために使用される。当該競合解決プロセスの詳細については図５を用いて後述する。
【００３７】
特定のデバイスの変更知識は、データアイテムに対する変更のベクトルによって表されることができる。ベクトルは、デバイスで既知の最新の変更のみを含む（つまり、第１のデバイス３０２で既知のデータアイテムの最新のバージョン）。したがって、変更されたアイテムの識別子（データアイテムのバージョン）の全てが変更知識によって提供される必要はなく、各データアイテムの最新のバージョンのような最新の変更がデバイス間で決定されうる。
【００３８】
同期化中にデバイスによって送信される変更知識ベクトル３１２は、複数のアイテム識別子と、当該アイテムに対する最新の変更識別子とのセットである。例えば、
＜［Ａ：１０１］，［Ａ：１２７］＞＜［Ａ：１０３］，［Ｂ：１５２］＞＜［Ｂ：２０２］，［Ｃ：３２１］＞
である。この例示の知識ベクトルは、３つのデータアイテム［Ａ：１０１］、［Ａ：１０３］、及び［Ｂ：２０２］と、それらのデータアイテムのそれぞれの最新の変更とを含む。例えば、データアイテム［Ａ：１０３］は、デバイスによる最新の変更”シーン”（例えば、前回の同期化からの）がデバイスＢによって行われた変更１５２を示す変更識別子［Ｂ：１５２］を含む。
【００３９】
変更知識ベクトル及びローカルランクが第２のデバイス３０４によって受信されると、第２のデバイス３０４は、ローカル知識と変更知識とを比較する（３１４）。具体的には、第２のデバイス３０４のデータベースは、当該第２のデバイス３０４で知られている、アイテム識別子と、変更識別子を格納することができる。変更識別子で特定される各変更に関して、第２のデバイス３０４は、当該データアイテムにおける最新の変更が利用可能であるかどうかを判定するために、変更識別子と、既知の変更識別子とを比較する。或いは、第２のデバイス３０４は、第２のデバイス３０４で既知の全てのアイテム及び変更識別子を特定する知識ベクトルを含むことができる。
【００４０】
例えば、第２のデバイス３０４は、
＜［Ａ：１０１］，［Ａ：１２７］＞＜［Ａ：１０３］，［Ｃ：１６４］＞＜［Ｂ：２０２］，［Ｃ：３３５］＞＜［Ｂ：２０６］，［Ｂ：１０２］＞
の知識を有することができる。
【００４１】
この知識と受信した変更知識ベクトルとを比較することにより、第２のデバイス３０４は、アイテム［Ａ：１０１］が変更されておらず、アイテム［Ａ：１０３］及び［Ｂ：２０２］の最新バージョンがそれらのアイテムの変更識別子に基づき第２のデバイス３０４で既知であることを判定する。例えば、第２のデバイス３０４で既知のアイテムの変更識別子が、第１のデバイス３０２から受信した変更識別子よりも大きい場合がある。追加的に、第２のデバイス３０４は、第１のデバイス３０２で既知でないアイテム［Ｂ：２０６］を既に知っている場合もある。例えば、データアイテム［Ｂ：２０６］は、第２のデバイス３０４（デバイスＢ）によって直近に生成されている可能性があり、したがって第１のデバイス３０２に同期化されていない可能性がある。
【００４２】
第２のデバイス３０４は、上記比較の結果に基づき、データアイテムへの変更のリストを生成する（３１６）。第２のデバイス３０４は、その後、変更メタデータ（３２０）として第１のデバイス３０２へ変更のリストを送信する（３１８）。変更メタデータは、データアイテムが最新のバージョンを有するか、又は、第１のデバイスで既知でないかの情報を含むことができる。変更メタデータは、既知でないアイテムや変化に対する、アイテム識別子及び変更識別子を含むことができる。第１のデータアイテム［Ａ：１０１］が変更されていないため、当該データアイテムに関して情報が戻される必要はない。
【００４３】
第１のデバイス３０２は、変更メタデータにおいて特定されるデータの何れかを要求するかどうか判定する（３２２）。いくつかの実施形態において、第１のデバイス３０２は、１つ以上の特定された変更と関連付けられたデータを要求する（３２４）。いくつかの実施形態において、変更メタデータに関連付けられた全ての変更データ（例えば、データアイテムの最新バージョン）が要求される。いくつかの他の実施形態において、一部のデータが要求され、他のデータは要求されない。例えば、変更メタデータは、転送されるデータのサイズを特定する追加情報を含むことができる。大きいサイズのデータの転送は、後に（例えば、ネットワーク使用率が低いとき、例えば夜に）延期してもよい。したがって、基礎データ同期化されない場合であっても、全体知識は同期化される。
【００４４】
いくつかの実施形態において、転送が延期され、これにより、第１のデバイス３０２が異なるデバイスから同一のデータを取り出すことができる。例えば、第１のデバイスが同期化を行う他のデバイスは、第１のデバイス３０２へより速く接続することができる（例えば、Ｗｉ−Ｆｉ又は優先ネットワーク接続）。第１のデバイス３０２は、より速いデバイスから当該データを取り出すことができる。いくつかの実施形態において、変更知識を送信するために使用されるプロトコルとは異なるプロトコルが特定されたデータアイテムからデータを転送するために使用される。
【００４５】
いくつかの実施形態において、第１のデバイス３０２のユーザからの要求に従ってのみデータが要求される。例えば、データアイテム［Ａ：１０３］へのアクセスを要求するユーザが、第１のデバイス３０２に第２のデバイス３０４又データを有する他のデバイスから、現在のバージョン、例えば、［Ａ：１０３］、［Ｃ：１６４］を取り出させることができる。
【００４６】
第１のデバイス３０２へ転送されるデータに関して、要求が第２のデバイス３０４へ送信される。第２のデバイス３０４は、当該要求に関連付けられたデータを特定する（３２６）。いくつかの実施形態において、要求に対応する全体データアイテムが第１のデバイス３０２に送信される。いくつかの追加の実施形態において、第１のデバイス３０２によるデータアイテムの既知の最新バージョンから変更されたデータアイテムの一部のみが送信される。例えば、データアイテムは、デバイス間での移送及び格納中に、複数のチャンクに分割することができる。使用されるチャンキング技術は、バージョン間で変更されたチャンクの番号を最小化することができる。結果として、それらの新たなチャンク又は変更されたチャンクが、既に変更されていないチャンクを有する第１のデバイス３０２に送信される必要がある。特定されるデータは第１のデバイス３０２に送信される（３２８）。いくつかの実施形態において、データの要求とデータ転送とは、デバイス間で知識の同期化を実行するために使用される、異なるプロトコルを用いて実行される。
【００４７】
図４は、他のデバイスと同期化を開始する例示のプロセス４００をを示すフローチャートである。プロセス４００は、例えば、他のデバイスからの同期化を要求するユーザデバイスによって実行されうる。
【００４８】
同期化が開始される（４０２）。具体的には、第１のデバイスは、他のデバイスと同期化を開始することができる。他のデバイスは、単一のアイデンティティ又は他のアイデンティティと関連付けられている。いくつかの実施形態において、同期化は、同期化されるデバイスに関するデバイス識別子に基づくデバイスによって開始される。例えば、同期化を開始するデバイスは、より小さいデバイス識別子を有する。いくつかの実施形態において、デバイスは、次に大きい（又は、次に最も小さい）デバイス識別子を有するデバイスのみと同期化プロセスを開始する。いくつかの他の実施形態において、デバイスは、より小さいデバイス識別子を有するデバイスと同期化後に、リターン同期化として同期化を開始する。
【００４９】
変更知識がデバイスによって送信される（４０４）。いくつかの実施形態において、変更知識が変更知識ベクトルによって表される。ベクトルはデバイスで既知のデータアイテムに対する変更識別子を含むことができる。具体的には、変更識別子は、デバイスで既知のアイテムに対する最も大きい変更識別子のみを含むことができ、これにより、変更知識のコンパクト表示が生成され、送信される。いくつかの実施形態において、ローカルランクもまた変更知識の一部として送信される。
【００５０】
変更知識に関する１つ以上のアイテムへの変化が受信される（４０６）データアイテムがより新しい変化識別子を有するか又はデバイスで既知でない新たなデータアイテムを有することを示すメタデータ送信の一部として変化が受信される。
【００５１】
受信した変化に関連付けられたデータが選択的に要求される（４０８）。デバイスは、受信した変化に関連付けられたデータの一部又は全てを要求してもよく、要求しなくてもよい。受信した変化に関連付けられたデータは、データアイテムの全体又はデータアイテムの変化の一部（例えば、データアイテムの変化したチャンク又は新たなチャンク）を含むことができる。或いは、デバイスは、同一の又は異なるデバイスから最新のデータを要求することができる（例えば、新たな利用可能なバージョンがあるデータアイテムに対するユーザリクエストに応じて）。
【００５２】
図５は、同期化要求に応答するための例示のプロセス５００を示すフローチャートである。プロセス５００は、例えば、他のデバイスからの同期化の要求を受信するユーザデバイスによって実行されうる。
【００５３】
変更知識がデバイスから受信される（５０２）。例えば、同期化を開始する他のデバイスは、デバイスへ変更知識を送信することができる。変更知識は、上述したように、変更知識ベクトルとして送信されうる。
【００５４】
受信した変更知識は、ローカルの知識と比較される（５０４）。具体的には、デバイスは、全ての変化識別子と、デバイスで既知の同期化されたデータアイテム（例えば、デバイスによって作成されたものと、前回の同期化から受信したものとの両方）とを特定する知識情報を有する。いくつかの実施形態において、知識情報は、デバイスに対する知識ベクトルとして格納される。いくつかの他の実施形態において、知識情報は、検索格納なデータベースに格納される。アイテム識別子及び変化識別子は、データアイテムのより最新のバージョンを示すより大きい変化識別子の値を有するアイテムへの変化を特定するローカル知識と比較される。追加的に、アイテム識別子は、要求デバイスで知られていない新たに作成したアイテムを特定するために比較される。
【００５５】
変化のリストが生成される（５０６）。例えば、変化のリストは、アイテムと、より最新の変化識別子の値又は要求デバイスで知られていない変化識別子の値とのリスト化を含むことができる。変化リストは、要求デバイスへ送信される（５０８）。特定された変化と関連付けられたデータへの要求が選択的に受信され、要求されたデータが送信される（５１０）。要求デバイスは、変化リストと関連付けられたデータに対する変化リストを受信した後に、次の要求を送信することができる。当該データは、完全なデータアイテム（例えば、要求デバイスで知られていない新たなデータアイテム）であるか、又は、変化を反映するデータアイテムの一部（例えば、要求デバイスによって既に処理されたデータアイテムのチャンクに関連して変更されたデータアイテムの特定のチャンク）であってもよい。いくつかの実施形態において、データの要求及び転送は、同期化要求と変化リストの送信と異なるプロトコルを用いて行われる。
【００５６】
図６は、同期化中の競合解決における例示のプロセス６００を示すフローチャートである。プロセス６００は、他のデバイスからの同期化を要求するユーザデバイスによって行われる。
【００５７】
一組のデータアイテムのバージョンからデータアイテムの最新のバージョンが特定される（６０２）。具体的には、同期化される一組のデバイスの各デバイスが同一のデータアイテムのバージョンを有する。それぞれのアイテム対する変化識別子は、一組のアイテムが最新であるかどうかを判定するために使用されうる。具体的には、変化識別子が、以前の同期化からの全ての過去のバージョンの知識に基づいて各新たなバージョンとともに増加するために、データアイテムの最新のバージョンは、より大きい変化識別子の値に従って特定されうる。
【００５８】
データアイテムのバージョンが特定の閾値時刻内で発生する場合に競合が特定される（６０４）。１つのデータアイテムが他のデータアイテムよりも大きい変更識別子を有する一方で、それらの２つの間での差異が閾値量内の値となりうる。例えば、閾値時刻は、それぞれのデバイスで作成されたバージョンが互いに１秒以内であることを意味する、１秒であってもよい。競合が特定されると、同期化されるデータアイテムのバージョンが判定される。
【００５９】
各バージョンに関連付けられたデバイス識別子が特定される（６０６）。各デバイスは、上述したように特有のデバイス識別子を有する。このデバイス識別子は、データアイテムの新たなバージョンをもたらす変更を行うデバイスとして、変更識別子に含まれてもよい。
【００６０】
競合に勝つ方が、各デバイスの識別子に基づき、自動的に選択される（６０８）。具体的には、デバイス識別子が比較される。いくつかの実施形態において、最も小さいデバイス識別子を有するデバイスからのデータアイテムバージョンが競合の勝者として選択される。或いは、より大きいデバイス識別子が使用されてもよい。
【００６１】
競合の敗者が格納される（６１０）。具体的には、競合の敗者は、データアイテムのバージョンとして格納されうる。競合敗者を含む古いバージョンは、当該バージョンを生成した特定のデバイスに格納されるか、全てのデバイスで同期化されるか、及び／又は、１つ以上のデバイスに対するバージョンレポジトリに格納されうる。格納されるデータアイテムは、競合について情報を提供するために、メタデータに関連付けられるか、或いは、タグ付けされる。したがって、ユーザが競合敗者を要求する場合、それらは、競合についての情報を取り出すことができる。
【００６２】
いくつかの実施形態において、共有データ（例えば、同一のアイデンティティのデバイス間で又は異なるアイデンティティのデバイス間の）は、転送する前に確認される。具体的には、データは、データがデータ即ち有効なデータを含むことを保証するために有効であることが確認されてもよい。いくつかの実施形態において、データ一部（例えば、より大きなデータアイテムの複数のチャンク）を共有する場合、チャンクの署名が、チャンクを同期化する前に、有効であるか確認されてもよい。
【００６３】
図７は、システムアーキテクチャ７００を示す図である。システムアーキテクチャ７００は、データアイテムのチャンキングに基づく内容を実行するための動作を行うことができる。アーキテクチャ７００は、１つ以上のプロセッサ７０２（例えば、ＩＢＭ  ＰｏｗｅｒＰＣ、Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ４など）、１つ以上のディスプレイデバイス７０４（例えば、ＣＲＴ、ＬＣＤ）、グラフィック処理部８０６（例えば、ＮＶＩＤＩＡ  ＧｅＦｏｒｃｅなど）、ネットワークインタフェース７０８（例えば、Ｅｔｈｅｒｎｅｔ、ＦｉｒｅＷｉｒｅ、ＵＳＢなど）、入力デバイス７１０（例えば、キーボード、マウスなど）、及び、１つ以上のコンピュータで読み取り可能な媒体７１２を含む。これらのコンポーネントは、１つ以上のバス７１４（例えば、ＥＩＳＡ、ＰＣＩ、ＰＣＩ  Ｅｘｐｒｅｓｓなど）を用いて通信とデータとをやり取りする。
【００６４】
用語「コンピュータで読取可能な媒体」とは、実行時にプロセッサ７０２に指示を提供することに加わる任意の媒体を含む。コンピュータで読み取り可能な媒体７１２は、さらに、オペレーティングシステム７１６（例えば、Ｍａｃ  ＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘなど）、ネットワーク通信モジュール７１８、同期化モジュール７２２、及び他のアプリケーション７２４を含む。
【００６５】
オペレーティングシステム７１６は、マルチユーザ、マルチプロセス、マルチタスク、マルチスレッド、リアルタイムなどであってもよい。オペレーティングシステム７１６は、限定する意図はないが、入力デバイス７１０からの入力を認識し、ディスプレイデバイス７０４への出力を送信し、コンピュータで読み取り可能な媒体７１２（例えば、メモリ又は記憶デバイス）にファイルやディレクトリのトラックを保持し、周辺デバイス（例えば、ディスクドライブ、プリンタなど）を制御し、及び、１つ以上のバス７１４でのトラフィックを管理する、ベーシックタスクを実行する。ネットワーク通信モジュール７１８は、ネットワーク接続（ＴＣＰ／ＩＰ、ＨＴＴＰ、Ｅｔｈｅｒｎｅｔなどの通信プロトコルを実行するソフトウェア）を確立して維持するために種々のコンポーネントを含む。
【００６６】
同期化モジュール７２２は、図１乃至図６を参照して説明したように、デバイス間での同期化を実行する種々の機能を実行するための種々のソフトウェアコンポーネントを提供する。
【００６７】
本明細書で説明した主題及び動作の実施形態は、デジタル電子回路、上述した構造及びそれらの構造の同等物を含むコンピュータソフトウェア、ファームウェア若しくはハードウェア、又は、それらの少なくとも１つの組み合わせに実装されうる。本明細書で記載された主題の実施形態は、１つ以上のコンピュータプログラム、即ち、データ処理装置によって実行されるか或いはデータ処理装置の動作を制御するための、コンピュータ記憶媒体に実装されたコンピュータプログラム命令の１つ以上のモジュールとして実現されうる。代替的に又は追加的に、プログラム命令は、人工的に生成された伝搬信号、例えば、データ処理装置によって実行される適切な受信装置への送信における情報を符号化して生成された、機械生成の電気的な、光学的な、又は電磁的な信号に符号化されてもよい。コンピュータ記憶媒体は、コンピュータで読取可能な記憶デバイス、コンピュータで読取可能な記憶基盤、ランダム若しくはシリアル・アクセス・メモリアレイ、又はそれらの１つ以上の組み合わせであってもよく、或いは、それらに含まれてもよい。さらに、コンピュータ記憶媒体が伝搬信号ではない場合は、当該コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されるコンピュータプログラム命令の発信源又は宛先であってもよい。コンピュータ記憶媒体は、個別の物理的なコンポーネント又はメディア（例えば、複数のＣＤ、複数のディスク、又は他の複数の記憶デバイス）の１つ以上あってもよく、或いは、それらに含まれてもよい。
【００６８】
本明細書に説明された動作は、１つ以上のコンピュータで読取可能な記憶デバイスに格納された又は他の発信源から受信したデータに従って、データ処理装置によって実行される動作として実現されうる。
【００６９】
用語”データ処理装置”は、プログラマブルプロセッサ、コンピュータ、システム・オン・チップ若しくは複数のもの、又は上述したそれらの組み合わせを一例として含む、複数のデータを処理する装置、デバイス、及び機械の全ての種類を包含する。装置は、特定用途の論理回路、例えば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）又はＡＳＩＣ（特定用途向け集積回路）を含むことができる。装置はまた、ハードウェアに加えて、コンピュータプログラム用の実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、又は１つ以上のそれらの組み合わせを構成するコードを含む。装置及び実行環境は、ウェブデバイス、配信コンピューティング、及びグリッドコンピューティング・インフラストラクチャなどの、コンピューティング・モデル・インフラストラクチャを実現することができる。
【００７０】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる）は、コンパイル若しくは解釈された言語、宣言型若しくは手続型の言語を含む、プログラミング言語の任意の形式で記載され、スタンド・アロン・プログラムとして、又は、モジュール、コンポーネント、サブルーチン、オブジェクト、又はコンピュータ環境の使用に適した他のユニットとしての任意の形式で展開されうる。コンピュータプログラムは、ファイルシステムにおいて、必要性はないが、ファイルに対応してもよい。プログラムは、当該プログラムに専用のファイルにおいて、又は、複数の候補ファイルにおいて（例えば、１つ以上のモジュール、サブプログラム、又はコードの一部を格納するファイルにおいて）、単一のファイル他のプログラム又はデータ（例えば、マークアップ言語文書に格納された１つ以上のスクリプト）保持するファイルの一部に格納されてもよい。コンピュータプログラムは、１つの場所に位置する、又は、通信ネットワークによって相互接続された複数の場所にわたって分散された、１台のコンピュータ又は複数台のコンピュータ上で実行されるように展開されうる。
【００７１】
本明細書で説明した処理フロー及び論理フローは、入力データに従って動作し、出力を生成することによって動作を実行する１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブル・プロセッサによって実行されうる。処理フロー及び論理フローはまた、装置が実行するように、特定用途の論理回路、例えば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）又はＡＳＩＣ（特定用途向け集積回路）によって実行される。
【００７２】
コンピュータプログラムの実行に適したプロセッサは、一例として、一般用途及び特定用途のマイクロプロセッサの両方と、任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサとを含む。一般に、プロセッサは、リード・オンリー・メモリ又はランダム・アクセス・メモリ又はその両方から命令及びデータを受信することになる。コンピュータの本質的な要素は、命令及びデータを格納する１つ以上のメモリデバイスや命令に従って動作を実行するためのプロセッサである。一般に、コンピュータはまた、データを格納する１つ以上のマス・ストレージデバイス、例えば、磁性ディスク、磁気光学ディスク又は光学ディスクを含むか、又は、それらのストレージデバイスからデータを受信するか或いはそららのストレージデバイスへデータを転送するように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、他のデバイス、例えば、数例上げると、モバイル電話機、携帯情報端末（ＰＤＡ）、携帯オーディオ又はビデオプレイヤ、ゲームコンソール、グローバル・ポジショニング・システム（ＧＰＳ）受信機、又は携帯記憶デバイス（例えば、ユニバーサル・シリアル・バス（ＵＳＢ）フラッシュデバイス）に実装されてもよい。コンピュータプログラム命令及びデータを格納するのに適したデバイスは、一例として、半導体メモリデバイス例えばＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリデバイスと、磁気ディスク例えば内蔵ハードディスク又はリムーバルディスクと、光磁気ディスクと、ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクとを含む、不揮発性メモリ、メディア及びメモリデバイスの全ての形式を含む。プロセッサ及びメモリは、特定用途の論理回路によって補完されるか、或いは、特定用途の論理回路に組み込まれてもよい。
【００７３】
ユーザとの対話を提供するために、本明細書で説明される主題の実施形態は、ユーザに情報を提示するために、ディスプレイデバイス例えば、ＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタと、ユーザがコンピュータに入力を行うキーボード及びポインティングデバイス例えば、マウス又はトラックボールとを有するコンピュータで実現されうる。他の種類のデバイスは、例えば、ユーザに提供されるフィードバックが感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックの任意の形式であったり、ユーザからの入力が音響入力、音声入力又は触覚入力を含む何れかの形式で受信されるような、ユーザとの対話を提供するために使用されうる。さらに、コンピュータは、ドキュメントを送信したり、デバイスからドキュメントを受信したりすることによって、例えば、ウェブブラウザから受信した要求に応じてユーザのクライアントデバイスでウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【００７４】
本明細書で説明される主題の実施形態は、本明細書で説明した主題の実装とユーザが対話するグラフィカルユーザインタフェース又はウェブブラウザを有する、バックエンド・コンポーネント、例えば、データサーバを含むか、又は、ミドルウェアコンポーネント、例えば、アプリケーションサーバを含むか、又は、フロントエンド・コンポーネント、例えば、クライアントコンピュータを含むか、或いはバックエンド、ミドルウェア又はフロントエンドのコンポーネントの任意の組み合わせを含む、コンピューティングシステムに実装されうる。これらのシステムのコンポーネントは、デジタルデータ通信、例えば通信ネットワークの任意の形式又は媒体によって相互接続されうる。通信ネットワークの一例としては、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネットワーク（例えば、インターネット）、ピアツーピアネットワーク（例えば、アドホックピアツーピアネットワーク）がある。
【００７５】
コンピューティングシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、通常、互いに遠隔に位置し、通信ネットｗ−あくを通じて対話を行う。クライアント及びサーバの関係は、各コンピュータで実行するコンピュータプログラムによって発生し、互いにクライアントサーバ関係を有する。いくつかの実施形態において、サーバは、クライアントデバイスへデータ（例えば、ＨＴＭＬページ）を送信する（例えば、データを表示し、クライアントデバイスと対話するユーザからのユーザ入力を受信する目的で行う）。クライアントデバイスで生成されるデータ（例えば、ユーザインタラクションの結果）は、サーバでクライアントデバイスから受信されうる。
【００７６】
本明細書は多くの特定の実施形態の詳細を含むが、それらは本発明の範囲を限定するものとして、或いは特許請求の範囲を限定するものとして解釈されるべきではなく、特定の発明の特定の実施形態を特定する特徴の説明として解釈されるべきである。上述した種々の実施形態を通じて本明細書で説明された所定の特徴は、単一の実施形態において結合して実現されうる。逆に、単一の実施形態の中で説明した種々の特徴は、複数の実施形態又は任意の適切に組み合わせられた実施形態において、実現されうる。さらに、複数の特徴が所定の組み合わせ、かつ、請求したものとしてで動作するように説明したが、請求した組み合わせからの１つ以上の特徴はいくつかのケースにおいて組み合わせから取り出され、請求した組み合わせはサブコンビネーションやその変形にも及ぶ。
【００７７】
同様に、複数の動作は特定の順序で図面に表したが、これは、そのような複数の動作が示された特定の順序で実行されることを、又は所望の結果を達成するために図示した全ての動作が実行されることを必要とするように理解されるべきではない。所定の状況において、マルチタスキング及び並行処理が有利になりえる。さらに、上述した本実施形態の種々のシステムコンポーネントの区別は、全ての実施形態においてそのような区別が必要であると理解されるべきではなく、所望のプログラムコンポーネント及びシステムが単一のソフトウェア手続又は複数のソフトウェア手続のパッケージとともに実装されてもよいと理解されるべきである。
【００７８】
このように、主題の特定の実施形態について説明した。他の実施形態についても、添付の特許請求の範囲内で可能である。いくつかのケースにおいて、特許請求の範囲に記載した複数の動作は、異なる順序で実行されえ、所望の結果を達成することができる。さらに、添付の図面に描写した複数の処理は、所望の結果を達成するために、図示した順序で行う必要はない。所定の実施形態において、マルチタスキングや並行処理が有利になりえる。
【図１】
0005826287.tif 000002
【図２】
0005826287.tif 000003
【図３】
0005826287.tif 000004
【図４】
0005826287.tif 000005
【図５】
0005826287.tif 000006
【図６】
0005826287.tif 000007
【図７】
0005826287.tif 000008