(57)【要約】  本開示は、最近修正されたデータを複数の装置間で自動同期するためのシステム及び方法を記載する。1つの装置が、当該装置に格納された新たに使用されたファイルを識別でき、すると、同期エンジンがこれらファイルを1つ又は複数の追加装置に同期できる。この同期エンジンは、この第1装置上でのそれらファイルの記憶位置を記録し、それらファイルを他の装置の隠しディレクトリでの格納のため送信できる。ファイルは修正されると最初の装置に再度同期できる。最初の装置の同期エンジンは修正されたファイルの記憶位置を取り出し、さらに、元の記憶位置において、このファイルの以前のバージョンを新たに受け取られた修正されたファイルで置換できる。ユーザは最近使用されたファイルを任意装置で閲覧、編集できる一方で、各装置上でそれらの元の記憶位置を維持でき、手動でファイルを管理する必要もない。
2016506580.tif 000002
【特許請求の範囲】
【請求項１】
最近修正されたデータを複数の装置間で自動同期するための方法であって、
第1記憶装置に格納されると共に現在時間の所定期間内に修正時間を備えた第1ファイルを第1装置によって識別する段階と、
現在時間の前記所定期間内に修正時間を備えた前記第1ファイルの前記識別に応答して、前記第1記憶装置内の前記第1ファイルの記憶位置の識別情報を、前記第1装置によって、前記第1記憶装置内の第2ファイルに格納する段階と、
前記第1ファイルを前記第1装置によって第2装置へ送信する段階と、
前記第1ファイルのさらに修正されたバージョンを、前記第2装置から前記第1装置によって後に受信する段階と、
前記第1記憶装置内の前記第1ファイルの前記記憶位置の前記識別情報を、前記第1装置によって、前記第2ファイルから取り出す段階と、
前記第1記憶装置内の前記第1ファイルを、前記第1装置によって、前記第1ファイルの前記さらに修正されたバージョンで置換する段階とを含み、
前記第1ファイルの前記記憶位置の前記識別情報は前記第2装置に送信されず、さらに、前記第1装置は、前記第1ファイルの前記記憶位置の前記識別情報を前記第2装置から受信しない、方法。
【請求項２】
前記第1ファイルを前記第2装置に送信する前記段階は、第2記憶装置の隠しディレクトリ内での前記第2装置による格納のため前記第1ファイルを送信する段階を含む、請求項1に記載の方法。
【請求項３】
前記第1ファイルを識別する前記段階は、前記第1ファイルの名前を含むアクティブウィンドウ・タイトルバー名に応答して、前記第1ファイルを識別する段階をさらに含む、請求項1に記載の方法。
【請求項４】
前記第1装置のファイルシステムから、現在時間の前記所定期間内に修正時間を備えた前記第1ファイルを含む複数のファイルを識別する段階と、前記第1ファイルの前記名前を含む前記アクティブウィンドウ・タイトルバー名に応答して、前記複数のファイルの前記第1ファイルを識別する段階とをさらに含む、請求項3に記載の方法。
【請求項５】
第2ファイルの修正されたバージョンの識別情報を、前記第2装置から前記第1装置によって受信する段階と、
同期方針に応答して、前記第2ファイルを取り出さないことを決定する段階と、
前記第2ファイルが修正されたという指示を前記第1装置によってユーザに表示する段階とをさらに含む、請求項1に記載の方法。
【請求項６】
前記同期方針は、取り出されるべきでないファイルタイプを識別する、請求項5に記載の方法。
【請求項７】
前記同期方針はファイルサイズ閾値を識別し、前記閾値を上回るサイズを備えたファイルは取り出されるべきでない、請求項5に記載の方法。
【請求項８】
前記第2ファイルの前記修正されたバージョンを、前記ユーザの要求に応答して、前記第1装置によって前記第2装置から後に取り出す段階をさらに含む、請求項5に記載の方法。
【請求項９】
最近修正されたデータを複数の装置間で自動同期するための方法であって、
第2装置によって維持される第2記憶装置に格納されると共に現在時間の第1所定期間内に修正時間を備えた第1ファイルを、第1記憶装置を維持する第1装置によって受信する段階と、
前記第1ファイルを、前記第1装置によって維持される前記第1記憶装置の隠しディレクトリに、前記第1装置によって格納する段階と、
前記第1ファイルの識別情報及び前記修正時間を前記第1装置によってユーザに表示する段階とを含み、
前記第1装置は、前記第2記憶装置内の前記第1ファイルの記憶位置の識別情報を受信しない、方法。
【請求項１０】
前記第1記憶装置の前記隠しディレクトリ内の前記第1ファイルを、前記第1装置によって後に修正する段階と、
前記修正された第1ファイルを、前記第2記憶装置に格納された前記第1ファイルを置換するため前記第1装置によって前記第2装置へ送信する段階とをさらに含み、
前記第1装置は、前記第2記憶装置内の前記第1ファイルの前記記憶位置を前記第2装置へ送信しない、請求項9に記載の方法。
【請求項１１】
前記第1ファイルの名前を含むアクティブウィンドウ・タイトルバー名に応答して、前記第1ファイルの前記修正を識別する段階をさらに含む、請求項9に記載の方法。
【請求項１２】
前記第1装置のファイルシステムから、現在時間の第2所定期間内に修正時間を備えた前記第1ファイルを含む複数のファイルを識別する段階と、前記第1ファイルの前記名前を含む前記アクティブウィンドウ・タイトルバー名に応答して、前記複数のファイルの第1ファイルの前記修正を識別する段階とをさらに含む、請求項11に記載の方法。
【請求項１３】
前記第1ファイルの識別情報及び前記修正時間を表示する前記段階は、前記第1ファイルの識別情報を、前記第1装置及び第2装置の最近修正されたファイルのリストに表示する段階を含む、請求項9に記載の方法。
【請求項１４】
第2ファイルの修正又は作成されたバージョンの識別情報を、前記第2装置から前記第1装置によって受信する段階と、
同期方針に応答して、前記第2ファイルを取り出さないことを決定する段階と、
前記第2ファイルが修正又は作成されたという表示を前記第1装置によってユーザに示す段階とをさらに含む、請求項9に記載の方法。
【請求項１５】
前記第2ファイルの前記修正又は作成されたバージョンを、前記ユーザの要求に応答して、前記第1装置によって前記第2装置からに取り出す段階をさらに含む、請求項14に記載の方法。
【請求項１６】
最近修正されたデータを複数の装置間で自動同期するための方法であって、
第2装置によって維持される第1記憶装置に格納されると共に現在時間の第1所定期間内に修正時間を備えた第1ファイルを、第1装置によって前記第2装置から受信する段階と、
前記第1ファイルを、第3装置によって維持される第2記憶装置の隠しディレクトリでの格納のため、前記第1装置によって前記第3装置へ送信する段階とを含み、
前記第1装置は、前記第1記憶装置における前記第1ファイルの記憶位置の識別情報を受信しない、方法。
【請求項１７】
前記第1ファイルのさらに修正されたバージョンを、前記第3装置から前記第1装置によって後に受信する段階と、
前記第1ファイルの前記さらに修正されたバージョンを、前記第1記憶装置内の前記第1ファイルを置換するため、前記第1装置によって前記第2装置へ送信する段階とをさらに含み、
前記第1装置は、前記第1記憶装置内の前記第1ファイルの前記記憶位置を前記第2装置へ送信しない、請求項16に記載の方法。
【請求項１８】
前記第1ファイルが前記第2装置により所有されているという指示を、前記第1装置によって格納する段階をさらに含む、請求項16に記載の方法。
【請求項１９】
第2ファイルの修正されたバージョンの識別情報を、前記第2装置から前記第1装置によって受信する段階と、
同期方針に応答して、前記第2ファイルは前記第3装置へ送信すべきでないことを決定する段階と、
前記決定に応答して、前記第2ファイルを前記第3装置へ送信することなく、前記第2ファイルが修正されたという識別情報を前記第3装置に表示のため送信する段階とをさらに含む、請求項16に記載の方法。
【請求項２０】
前記同期方針は、前記第3装置へ送信されるべきでないファイルタイプを識別する、請求項19に記載の方法。
【請求項２１】
前記同期方針は、所定のファイルサイズ閾値を上回るサイズを備えたファイルは、前記第3装置へ送信されるべきでないと認定する、請求項19に記載の方法。
【請求項２２】
前記同期方針は、前記第1装置と前記第3装置との間の接続が、所定の接続速度閾値を下回る速度を備えていれば、ファイルは前記第3装置へ送信されるべきでないと認定する、請求項19に記載の方法。
【請求項２３】
前記第3装置のユーザからの前記修正された第2ファイルへの要求を、前記第3装置から前記第1装置によって受信する段階と、
前記要求に応答して、前記修正された第2ファイルを前記第1装置によって前記第3装置へ送信する段階とをさらに含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、「最近修正されたデータを自動同期するためのシステム及び方法」と題した2012年12月31日付けで提出された米国仮特許出願第61/747,660号の優先権及び利益を主張し、その全体はここに引用して援用する。
【０００２】
技術分野
本発明は、最近修正されたデータを複数の装置間で自動同期するためのシステム及び方法に関する。
【背景技術】
【０００３】
典型的なオンラインバックアップ又は同期システムは、複数装置のそれぞれの所定フォルダ内でデータの同期を実現する。ユーザは、ファイルを第1装置の指定のフォルダに配置でき、このファイルは、インターネットなどのネットワークを介して1つ又は複数の追加装置上の類似の指定フォルダにコピーできる。ユーザは、任意の装置でこのファイルを編集し、編集箇所が保存されると、この修正ファイルは互いの装置にコピー又は同期できる。
【０００４】
これらシステムにより、ユーザは様々な位置で実質的に同一のファイルに作業ができる一方で、ユーザは、ファイルを指定フォルダに付加又はそこから除去することによって、どのファイルが同期されるかをなお手動で管理しなければならない。例えば、多くの登録制の同期システムはデータ上限があるので、ユーザは、新規ファイル用の領域を空けるため指定のフォルダから古いファイルを手動で除去することがある。ユーザはこれら古いファイルで作業する必要があれば、これを逆の手順で繰り返さなければならないこともある。従って、どのファイルを同期するかに関する管理は、煩雑で時間がかかることがある。
【０００５】
さらに、ユーザは指定された同期フォルダへ手動でファイルを移動させたり、そこから移動させたりしなければならないので、1つのファイルの多数のバージョンを意図せず作成してしまうことがある。例えば、ユーザがワークフォルダからのファイルを移動するのでなく、そのファイルを同期フォルダにコピーした場合、ユーザはそのファイルの別個のコピーを持つことになり、後にどちらのファイルが最新バージョンかを判断しなければならないこともある。さらに、指定された同期フォルダは、異なるオペレーティングシステム又は異なるバージョンのオペレーティングシステム上の異なる位置に存在することもあるので、ユーザは、同一ファイルに関して複数の記憶パスを憶える必要が生じる場合がある。
【０００６】
さらに、一旦、1つのファイルが多数の装置に同期されると、そのファイルが最初にどの装置で作成されたかが明確でなくなることがある。これは、ファイルを名前とパスとでなく「土曜日に家で作成した文書」として憶えるユーザには混乱をきたすことがある。
【０００７】
他のシステムのなかには、データに関するアプリケーション固有ライブラリを作成することによって、指定フォルダの使用時に必要となる管理を回避しようとするものもある。例えば、画像は写真閲覧アプリケーションと関連付けられ、そのアプリケーション専用のライブラリに格納されることがある。このライブラリは、ユーザの他の装置上のライブラリと同期することができ、ユーザは、各装置上の写真閲覧アプリケーションで同じ画像を閲覧できるようになる。これによってフォルダに基づいた同期管理を避けることはできるが、同期対象の各ファイルタイプは、システム製造者によって手動で構成される必要があり、さらに、ファイルはこのアプリケーション専用ライブラリのみに格納できるので、それらファイルはそのアプリケーションを介してしかアクセスできないことがある。従って、単一のアプリケーションによる異なるファイルタイプの使用は、このアプリケーションが多数のライブラリを使用するよう明確に構成されていなければ、複雑又は不可能である場合がある。例えば、ワードプロセシング・アプリケーションは、画像を挿入するため写真ライブラリにアクセスするよう明確に構成できるが、3D作図アプリケーションのレンダリングされた画像にアクセスするよう構成されていないことがある。こうしたライブラリに基づいたシステムでは、ユーザは、レンダリングされた画像にアクセスするためディレクトリ構造を移動できないので、これら画像をワードプロセシング文書に付加できない場合がある。
【０００８】
従って、これらシステムの何れも、ユーザが、ファイルタイプ又は記憶場所に関わらず、任意の装置で最近修正又は作成されたすべてのファイルにアクセスできる簡単で直感的に操作できるシステムを提供しない。
【発明の概要】
【０００９】
本開示は、最近修正されたデータを複数の装置間で自動同期するためのシステム及び方法を記載する。1つの装置上のファイルシステムウォッチャが、当該装置に格納された新たに作成、修正、又はアクセスされたファイルを識別でき、すると、同期エンジンが、これら新たに作成、修正、又はアクセスされたファイルの、1つ又は複数の追加装置への同期を開始できる。前記同期エンジンは、前記第1装置上での前記ファイルの記憶位置の識別情報を記録又は格納でき、前記ファイルを前記他の装置の隠しフォルダ又はディレクトリでの格納のため送信できる。前記他の装置それぞれの同期エンジンは、前記送信されたファイルの識別情報を、同一ユーザ又は異なるユーザなどの前記他の装置のユーザに表示できる。前記他の装置のいずれかのユーザがファイルを更新又は修正するか、或いは、同一ユーザが前記他の装置のいずれかで前記ファイルを更新又は修正すると、前記修正されたファイルは、前記最初の装置に再度送信又は同期できる。前記最初の装置の前記同期エンジンは、前記修正されたファイルの前記記憶位置の前記識別情報を取り出し、前記ファイルの元の記憶位置において、前記ファイルの以前のバージョンを新たに受け取られた修正されたファイルで置換できる。従って、前記ユーザは、最近作成、修正、又はアクセスされたファイルを任意装置で閲覧、編集できる一方で、各装置上でそれらの元の記憶位置を維持でき、手動でファイルを管理する必要もない。
【００１０】
一側面では、本開示は、最近修正されたデータを複数の装置間で自動同期するための方法に関する。この方法は、第1装置が、第1記憶装置に格納されると共に現在時間の所定期間内に修正時間を備えた第1ファイルを識別する段階を含む。前記第1装置は、現在時間の前記所定期間内に修正時間を備えた前記第1ファイルの前記識別に応答して、前記第1記憶装置内の前記第1ファイルの記憶位置の識別情報を、前記第1記憶装置内の第2ファイルに格納できる。前記第1装置は前記第1ファイルを第2装置に送信でき、この装置は同じ又は別のユーザにより使用される別の装置でもよいし、記憶装置及び/又は同期プロバイダにより運営される中間装置でもよい。前記方法は、前記第1装置が、前記第1ファイルのさらに修正されたバージョンを、前記第2装置から後に受信する段階も含む。前記第1装置は、前記第1記憶装置内の前記第1ファイルの前記記憶位置の前記識別情報を、前記第2ファイルから取り出すことができる。前記方法は、前記第1装置が、前記第1記憶装置内の前記第1ファイルを、前記第1ファイルの前記さらに修正されたバージョンで置換する段階をさらに含む。前記第1ファイルの前記記憶位置の前記識別情報は前記第2装置へ送信されず、さらに、前記第1装置は、前記第1ファイルの前記記憶位置の前記識別情報を前記第2装置から受信しない。
【００１１】
一実施形態では、前記方法は、前記第1ファイルを、前記第2装置による第2記憶装置の隠しディレクトリ内での格納のために送信する段階を含む。別の実施形態では、前記方法は、前記第1ファイルの名前を含むアクティブウィンドウ・タイトルバー名に応答して、前記第1ファイルを識別する段階を含む。別の実施形態では、前記方法は、前記第1装置のファイルシステムから、現在時間の前記所定期間内に修正時間を備えた前記第1ファイルを含む複数のファイルを識別する段階と、前記第1ファイルの前記名前を含む前記アクティブウィンドウ・タイトルバー名に応答して、前記複数のファイルの前記第1ファイルを識別する段階とを含む。
【００１２】
幾つかの実施形態では、前記方法は、第2ファイルの修正されたバージョン又は新たに作成されたバージョンの識別情報を、前記第2装置から前記第1装置によって受信する段階を含む。前記方法は、同期方針に応答して、前記第2ファイルを取り出さないことを決定する段階も含む。前記方法は、前記第2ファイルが修正されたという指示を、前記第1装置によってユーザに表示する段階とをさらに含む。別の実施形態では、前記同期方針は、取り出されるべきでないファイルタイプを識別する。さらに別の実施形態では、前記同期方針がファイルサイズ閾値を識別し、前記閾値を上回るサイズを備えたファイルは取り出されるべきでない。さらに別の実施形態では、前記方法は、前記第2ファイルの前記修正されたバージョンを、前記ユーザの要求に応答して、前記第1装置によって前記第2装置から後に取り出す段階を含む。
【００１３】
別の側面では、本開示は、最近修正されたデータを複数の装置間で自動同期するための方法に関する。前記方法は、第2装置によって維持される第2記憶装置に格納されると共に現在時間の第1所定期間内に修正時間を備えた第1ファイルを、第1記憶装置を維持する第1装置によって受信する段階を含む。前記方法は、前記第1ファイルを、前記第1装置によって維持される前記第1記憶装置の隠しディレクトリに、前記第1装置によって格納する段階も含む。前記方法は、前記第1ファイルの識別情報及び前記修正時間を前記第1装置によってユーザに表示する段階をさらに含む。前記第1装置は、前記第2記憶装置内の前記第1ファイルの記憶位置の識別情報を受信しない。
【００１４】
一実施形態では、前記方法は、前記第1記憶装置の前記隠しディレクトリ内の前記第1ファイルを、前記第1装置によって後に修正する段階を含む。前記方法は、前記修正された第1ファイルを、前記第2記憶装置に格納された前記第1ファイルを置換するため前記第1装置によって前記第2装置へ送信する段階をさらに含む。一実施形態では、前記第1装置は、前記第2記憶装置内の前記第1ファイルの前記記憶位置を前記第2装置へ送信しない。
【００１５】
別の実施形態では、前記方法は、前記第1ファイルの名前を含むアクティブウィンドウ・タイトルバー名に応答して、前記第1ファイルの前記修正を識別する段階を含む。別の実施形態では、前記方法は、前記第1装置のファイルシステムから、現在時間の第2所定期間内に修正時間を備えた前記第1ファイルを含む複数のファイルを識別する段階と、前記第1ファイルの前記名前を含む前記アクティブウィンドウ・タイトルバー名に応答して、前記複数のファイルの第1ファイルの前記修正を識別する段階を含む。
【００１６】
さらに別の実施形態では、前記方法は、前記第1ファイルの識別情報を、前記第1装置及び第2装置の最近修正されたファイルのリストに表示する段階を含む。さらに別の実施形態では、前記方法は、第2ファイルの修正された又は新たに作成されたバージョンの識別情報を、前記第2装置から前記第1装置によって受信する段階を含む。前記方法は、同期方針に応答して、前記第2ファイルを取り出さないことを決定する段階も含む。前記方法は、前記第2ファイルが修正又は作成されたという指示を前記第1装置によって前記ユーザに表示する段階とをさらに含む。さらに別の実施形態では、前記方法は、前記第2ファイルの前記修正又は作成されたバージョンを、前記ユーザの要求に応答して、前記第1装置によって前記第2装置からに取り出す段階を含む。
【００１７】
さらに別の側面では、本開示は、最近修正されたデータを複数の装置間で自動同期するための方法に関する。前記方法は、第2装置によって維持される第1記憶装置に格納されると共に現在時間の第1所定期間内に修正時間を備えた第1ファイルを、第1装置によって前記第2装置から受信する段階を含む。前記方法は、前記第1ファイルを、第3装置によって維持される第2記憶装置の隠しディレクトリでの格納のため、前記第1装置によって前記第3装置へ送信する段階も含む。幾つかの実施形態では、前記送信は、前記第3装置による前記第1ファイルへの要求に応答して実行されてもよいし、前記第3装置が、前記第1ファイルを前記第1装置から取り出してもよい。前記第1装置は、前記第1記憶装置内の前記第1ファイルの記憶位置の識別情報を受信しない。
【００１８】
一実施形態では、前記方法は、前記第1ファイルのさらに修正されたバージョンを、前記第3装置から前記第1装置によって後に受信する段階を含む。前記方法は、前記第1ファイルの前記さらに修正されたバージョンを、前記第1記憶装置内の前記第1ファイルを置換するため、前記第1装置によって前記第2装置へ送信する段階も含む。そうした実施形態では、前記第1装置は、前記第1記憶装置内の前記第1ファイルの前記記憶位置を前記第2装置へ送信しない。
【００１９】
一実施形態では、前記方法は、前記第1ファイルが前記第2装置により所有されているという指示を、前記第1装置によって格納する段階をさらに含む。別の実施形態では、前記方法は、第2ファイルの修正されたバージョンの識別情報を、前記第2装置から前記第1装置によって受信する段階を含む。前記方法は、同期方針に応答して、前記第2ファイルは前記第3装置へ送信すべきでないことを決定する段階も含む。この決定を行うのは、前記第1装置でも、前記第2装置でも、又は前記第3装置でもよい。前記方法は、前記決定に応答して、前記第2ファイルを前記第3装置へ送信することなく、前記第2ファイルが修正されたという識別情報を前記第3装置に表示のため送信する段階をさらに含む。
【００２０】
別の実施形態では、前記同期方針は、前記第3装置に送信されるべきでないファイルタイプを識別する。さらに別の実施形態では、前記同期方針は、所定のファイルサイズ閾値を上回るサイズを備えたファイルは、前記第3装置へ送信されるべきでないと認定する。さらに別の実施形態では、前記同期方針は、前記第1装置と前記第3装置との間の接続が、所定の接続速度閾値を下回る速度を備えていれば、ファイルは前記第3装置へ送信されるべきでないと認定する。さらに別の実施形態では、前記方法は、前記第1装置が、前記第3装置のユーザからの前記修正された第2ファイルへの要求を受信する段階と、前記要求に応答して、前記修正された第2ファイルを前記第3装置に送信する段階とをさらに含む。
【図面の簡単な説明】
【００２１】
【図１】図1Aは、最近修正されたデータを複数の装置間で自動同期するための代表的なシステムのブロック図である。  図1Bは、最近修正されたデータの同期の代表的な実施形態を示すブロック図である。
【図２】図2は、同期エンジンの一実施形態のブロックダイヤグラムである。
【図３】図3は、最近修正されたデータを複数の装置間で自動同期するための代表的なデータベース構造の図である。
【図４】図4A-4Cは、複数装置上のファイルの自動同期及び修正の実施形態のフローチャートである。
【図５】図5A-5Qは、複数装置上のファイルの自動同期及び修正用のユーザインターフェースの代表的な実施形態のスクリーンショットである。
【図６】図6は、本明細書で記載された方法及びシステムを実施するのに有用な代表的な計算装置のブロック図である。
【００２２】
図面において、類似の参照番号は、同一の、機能的に類似の、及び/又は構造的に類似の要素を概して示す。
【発明を実施するための最良の形態】
【００２３】
上述の図面と組み合わされた次の説明は、例示目的で様々な実施形態を記載しているが、これらは記載された方法又はシステムの範囲を限定する意図はない。当業者であれば、記載された方法及びシステムの最も広い範囲から逸脱することなく、記載された方法及びシステムを様々な態様で修正できる。従って、本明細書に記載した方法及びシステムの範囲は、例示的な何れの実施形態によっても限定されるべきでなく、添付の特許請求の範囲及びそれらの均等物に従って限定されるべきである。
【００２４】
図1Aを先ず参照すると、最近修正されたデータを複数の装置間で自動同期するための代表的なシステムのブロック図が示されている。図示したように、概して1つ又は複数の装置100と呼ぶ1つ又は複数の装置100A-100Cは、1つ又は複数のネットワーク118を介して接続されている。装置100は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、サーバ、コンピュータクラスタ、又は他の任意種類及び形式の1つ又は複数の計算装置を含むことができる。ネットワーク118は、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、又はそれらネットワークの任意の組合せを含むことができる。装置100は、セルラー方式データ接続及び/又はWiFi接続を含む有線又は無線接続を介してネットワーク118に接続できる。
【００２５】
図示したように、各装置100は、概してデータベース102と呼ぶデータベース102A-102Cを維持できる。図3に関連して詳述するデータベース102は、同期されたファイルの識別情報、並びにファイル及び一意の識別子、タグ、コメント、親子関係、及び記憶位置の間の関連付けを維持できる。
【００２６】
装置100は、概して1つ又は複数のファイルシステム104と呼ぶユーザがアクセス可能なファイルシステム104A-104Bを含むことができる。ユーザがアクセス可能なファイルシステムは、ユーザが容易に維持且つ修正できるディレクトリ構造を備えたファイルシステム、又はユーザが、それを介してユーザ作成フォルダ階層内にファイルを格納できるファイルシステムを含む。こうしたシステムの例には、ユーザがフォルダを作成し且つファインダーアプリケーションを介してフォルダ間でファイルを移動できる、カリフォルニア州キューパーティーノ所在のアップル社によるマッキントッシュ・オペレーティングシステムの様々なバージョンのディレクトリ構造や、ユーザがウィンドウズ（登録商標）・エクスプローラアプリケーションを介して類似のタスクを実行できる、ワシントン州レッドモンド所在のマイクロソフト社によるウィンドウズ（登録商標）・オペレーティングシステムの様々なバージョンが含まれる。
【００２７】
対照的に、装置100は、概して1つ又は複数のライブラリ112と呼ぶ1つ又は複数のアプリケーション固有ライブラリ112A-112Bを含みうるライブラリに基づくファイルシステムを含むことができる。ライブラリ112は、アプリケーションによるアクセスが可能なファイルのディレクトリを含むことができ、このアプリケーション内のユーザインターフェースを介してユーザに提示される。これらファイルの記憶位置は、ユーザ対話なしでアプリケーション又はオペレーティングシステムにより維持できる。そうしたシステムの一例は、フォルダ階層又は位置に対するユーザ制御なしで、アプリケーションがデータファイルにアクセスできる、アップル社により製造されるiOSオペレーティングシステムを含む。別々に説明されているが、ライブラリに基づくファイルシステムは、フォルダに基づくファイルシステムに基づくこともできるが、通常はユーザによって維持又は編集されない。例えば、多くの写真アルバム又はメディアプレーヤアプリケーションは、フォルダをアプリケーションが生成した命名体系で生成し、ファイルをそうしたフォルダ内に配置できる。しかし、このアプリケーションは、フォルダパスを明示することなく単にこのライブラリをユーザに表示できる。従って、ユーザは、システム104の幾つかの実施形態では、ファイル記憶位置及びパスを知っているが、ライブラリに基づくファイルシステム112の幾つかの実施形態ではそれを知らないこともある。
【００２８】
ファイル106A-106Cは、概して1つ又は複数のファイル106と呼ばれ、画像、ビデオ、音声ファイル、テキストファイル、データベースファイル、スプレッドシート、又は他の任意種類のファイルを含む任意種類及び形式のデータファイルを含むことができる。ファイルは、実行可能ファイル、圧縮ファイル、ファイルの集成体、又は他の任意種類のデータを含むこともできる。
【００２９】
上述のように、ファイル106は、１つの装置上のユーザアクセス可能なファイルシステム104A-104Bに格納でき、且つ/又は１つの装置上のライブラリに基づくファイルシステム内のライブラリ112A-112Bに格納できる。さらに、ファイルは、概して1つ又は複数の隠しディレクトリ108と呼ばれる隠しディレクトリ108A-108Bに格納してもよい。隠しディレクトリ108は、他の装置で作成された同期ファイルを格納できる装置のユーザには見えない記憶位置を含むことができ、且つ図2に関連して詳述するが、この装置の同期エンジンにより維持できる。
【００３０】
ファイルは任意の装置上で作成でき、これはそのファイルの「所有者」と呼ばれる。例えば、ファイル106Aは第1装置100A上で作成でき、これをそのファイルの所有者と見なすことができるファイル106Aは、付加的な装置100B-100Cに同期できる。このファイルは、この装置上でアプリケーションによるアクセスのため、隠しディレクトリ108Bに格納するか、又はライブラリ112に入れることができる。同様に、第2装置100B上で作成されたファイル106B又は第3装置100C上で作成されたファイル106Cも、他の装置に同期し、隠しディレクトリ108A-108B及び/又はライブラリ112A-112Bに置くことができる。従って、ファイルは、それらが作成された装置上のユーザアクセス可能なファイルシステムでは見えるが、他の装置では見えない。
【００３１】
その代わりに、各装置は、概して最近ファイルインターフェース110と呼ばれる最近ファイルインターフェース110A-110Cを含むことができる。最近ファイルインターフェース110は、作成されたものか最初から格納されていたものかにかかわらず、最近作成、修正、若しくはアクセスされたファイルをデバイスのユーザに表示するためのアプリケーション、サービス、ユーティリティ、ウィジェット、デーモン、又は他の実行可能ロジックを含むことができる。
【００３２】
幾つかの実施形態では、ファイル106は、同期時に1つの装置100から別の装置に直接送信すればよい。他の実施形態では、オンライン同期又はバックアップ記憶プロバイダ114が仲介者として機能できる。例えば、各装置100は、同期するためのファイルを、バックアップ記憶プロバイダ114により維持される1つ又は複数の記憶装置116を含むオンライン記憶リポジトリに送信できる。各装置100は、他の装置100によりアップロードされたファイル106をバックアップ記憶プロバイダ114から受け取ることもできる。
【００３３】
ここで図1Bを参照すると、最近修正されたデータの同期の代表的な実施形態を示すブロック図が図示されている。図示したように、多くの実施形態では、複数の装置100A-100Bは通信し、且つバックアップ記憶プロバイダ114及び/又は同期サービスプロバイダ120などの1つ又は複数の仲介者によって同期できる。別々に示されているが、多くの実施形態では、バックアップ記憶プロバイダ114と同期サービスプロバイダ120は同一のシステムを構成してもよい。バックアップ記憶プロバイダ114と同様に、同期サービスプロバイダ120は、ファイル、メタデータ、及び/又は暗号化キーの同期を装置100A-100B間で実現するための、サーバファーム又はサーバクラウドなどの1つ又は複数のサーバを含むことができる。
【００３４】
多くの実施形態では、ファイル名、タイプ、所有者、作成時間及び日付、サイズ、一意のID、バージョンの識別子、又は他のそうした識別子などのファイル106のメタデータ122は、ファイル106とは別に同期できる。メタデータ122は、アレイ、テーブル、データ構造、1つ若しくは複数のデータ列、ファイルヘッダ、又はファイル106に関する情報を含む他の任意種類及び形式のデータ構造を含むことができる。ステップ1で示したように、多くの実施形態では、装置100Aは、ファイル106のメタデータ122を同期サービスプロバイダ120に送信することができる。メタデータ122は定期的に送信してもよいし、ファイル作成、ファイル修正、ファイル削除、ファイルアクセス、ファイル名変更、ファイルタギングなどの装置100Aによる動作、又は他の任意のそうした動作の実行に応答して送信してもよい。幾つかの実施形態(図示しない)では、同期サービスプロバイダ120が更新されたファイルメタデータ122を要求し、装置100Aが、それに応答してそのファイルメタデータ122を送信してもよい。同期サービスプロバイダ120はファイルメタデータ122を格納し、以前に格納されたファイルメタデータを更新若しくは置換し、且つ/又は本明細書で説明し且つ図3に示したように、このメタデータ情報でメタデータデータベース102を更新できる。
【００３５】
ステップ2で、装置100Aは、ファイル106を、上述したように同期サービスプロバイダ120と同一の装置又はシステムでもよいし異なる装置又はシステムでもよいバックアップ記憶プロバイダ114に送信できる。幾つかの実施形態(図示しない)では、メタデータ122を受信すると、ステップ2で、同期サービスプロバイダ120は、装置100Aからファイル106を取り出すか又は要求するための要求をバックアップ記憶プロバイダ114に送信できる。
【００３６】
幾つかの実施形態では、ファイル106は装置100Aにより暗号化できる。幾つかのそうした実施形態では、ステップ3において、装置100Aは、暗号化キー124を同期サービスプロバイダ120に送信できる。暗号化キー124は、任意種類のAES-128などの先進暗号化規格(AES)、データ暗号化規格(DES)、又は他の任意種類及び形式の暗号化アルゴリズムを含む任意種類の私用キー又は公開キー暗号化方式を使用する、任意種類及び形式の暗号化キーを含むことができる。多くの実施形態では、暗号化キー124は、ファイル専用及び/又はファイルのバージョン専用としてもよいし、他の実施形態では、暗号化キー124は装置且つ/又はユーザ専用としてもよい。
【００３７】
ステップ4において、同期サービスプロバイダ120は、メタデータ122を装置B 100Bに送信できる。メタデータ122は定期的に送信してもよいし、装置Bによる更新メタデータの要求に応答して送信してもよい。幾つかの実施形態では、メタデータ122は、図3に関連して説明するようにメタデータデータベースの一部として送信してもよいし、別個に送信してもよい。
【００３８】
ステップ5では、幾つかの実施形態では、装置100Bはバックアップ記憶プロバイダ114からのファイル106の送信を要求できる。装置100Bは、このファイルの送信を要求してもよいし、更新されたメタデータ122の受信に応答してそのファイルを取り出してもよい。多くの実施形態では、装置100Bは、ファイル106を取り出すべきか要求すべきかを決定するための同期方針を更新されたメタデータ122に適用できる。例えば、装置100Bは、ファイルタイプ、ファイルサイズ、ネットワーク帯域幅、空き記憶空間、又は他の任意留意事項に応答してそのファイルを取り出し又は要求しないことを決定してもよい。他の実施形態では、装置100Bは、装置100Bのユーザのコマンドに応答してこのファイルを取り出すか要求してもよい。例えば、装置100Bは、メタデータ122をユーザに表示でき、ユーザはファイル106を取り出すことを選択してもよい。ステップ6では、バックアップ記憶プロバイダ114が、この要求に応答してファイル106を装置100Bに送信できる。
【００３９】
ファイル106が暗号化された幾つかの実施形態では、ステップ107において、装置100Bは暗号化キー124を同期サービスプロバイダ120から要求でき、これはステップ8で送信できる。バックアップ記憶プロバイダ114及び同期サービスプロバイダ120が異なるシステムである幾つかの実施形態では、これは、暗号化キー及びファイルが同一の仲介システムによって格納されないことを意味するので安全性が向上することを意味する。さらに、キー124が同期サービスプロバイダ120を通過することが図示されているが、多くの実施形態では、キーの格納及び送信は別のサービスが実行してもよい。
【００４０】
ここで図2を参照すると、装置100か、バックアップ記憶プロバイダ114か、同期サービスプロバイダ120か、装置100の間のそうした他の仲介者かによって実行できる同期エンジン200が示されている。同期エンジン200は、装置上のファイルへのアクセス又は修正をモニタし且つリモート装置にファイルを送信又はリモート装置からファイルを取り出すアプリケーション、サービス、サーバ、デーモン、又は他の実行可能論理を含むことができる。
【００４１】
同期エンジン200は、この装置により所有される又はこの装置上で作成されたファイルの識別情報を含むことができるデータベース102を維持できる。例えば、図3を参照すると、複数の装置間で最近修正されたデータを自動同期するための代表的なデータベース構造の図を示す。このデータベースは、ファイル名と、ファイルへの階層パスを含むファイル位置と、一意のファイル識別子と、ルートファイル識別子と、親ファイル識別子とを含み、それらを関連付けることができる。ファイルが修正されると、ファイルのバージョン追跡を維持するため、新たな一意のファイル識別子をそのファイルのために生成できる。すると、このファイルは、以前のバージョンの識別子又は親ファイル識別子と関連付けることができる。このファイルが続けて修正されると、同期エンジン200は、新たなファイルIDを生成し、親ファイルIDをデータベースに加える。各ファイルは、ルートファイルID又は最初のファイルの識別子に関連付けることもできる。従って、このデータベースの各項目は、このファイルと、このファイルの直前バージョンと、このファイルの最初のバージョンとを識別でき、よって、内部を移動することでこのファイルの任意のバージョンをその作成に至るまで識別できるツリーが生成される。これは、異なる装置における1つのファイルへの同時修正(各修正済みファイルは、新たなファイルIDを持つが、同一の親ID及びルートIDを持つ)を矛盾無く一致させるために使用でき、さらにファイルの以前のバージョンのジャーナリング及び回復にも使用できる。
【００４２】
幾つかの実施形態では、このデータベースは、ファイルのルートID項目を含まなくてもよい。そうした実施形態では、同期エンジン200は、親IDのみを介してファイルの異なるバージョンを識別できる。ファイルが複数のユーザにより共有できる他の実施形態では、任意ファイルの各バージョンは同一のルートIDを備えるので、ルートIDを用いてこのファイルへのアクセスを管理できる。例えば、任意ユーザには指定されたルートIDを備えたファイルへのアクセスが許可でき、そして、このユーザ又は他のユーザによる修正を介してこのファイルの新たなバージョンが作成されても、このユーザは、ルートIDを介してこれら新たなバージョンにもなおアクセスできる。
【００４３】
さらに、データベース102は、ファイル作成及び/又は修正時間、このファイルの1つ又は複数のタグ、並びにこのファイルの1つ又は複数のコメントを識別できる。タグはユーザが作成したものでもアプリケーションが作成したものでもよく、アプリケーション、ファイルタイプ、又はコンテンツフラグを識別できる。例えば、ユーザは、任意ファイルを仕事に関連したもの又は個人的なものとしてユーザインターフェースを介して認定すると、同期エンジンは対応するタグをデータベースに加えることができる。同様に、ユーザがコメントをファイルに付加してもよい。又、タグはアプリケーションにより付加されることもでき、時間、日付、アプリケーションタイプ、写真が撮影された地理的位置、又は他のそうした任意の情報を識別する。タグ及び/又はコメントは、自動共有及び/又はアクセス制御に使用してもよい。例えば、ユーザは、指定されたタグを備えた項目は特定の装置に同期すべきでこと又は一名以上の追加ユ―ザと共有でき且つそれらユーザの装置に同期できること、を指定できる。
【００４４】
図2に戻ると、同期エンジン200は、最近ファイルインターフェース110を含むか又はそれと通信できる。最近ファイルインターフェースは、グラフィカルユーザインターフェースをユーザに提示するアプリケーション、サービス、又は他の実行可能論理を含むことができ、これによりユーザは、任意の装置100上で最近修正、作成、又はアクセスされたファイルを閲覧し、選択できる。最近ファイルインターフェース110は、最近修正、作成、又はアクセスされたファイルを、当該修正又はアクセスの時系列順に、作成日の時系列順に、アルファベット順に、又はサイズ、タイプ、装置、若しくはそれらの順序の任意組み合わせで表示できる。例えば、最近アクセスされたファイルはアクセスの時系列順に表示し、ファイルがアクセスされた装置によりグループ化してもよい。
【００４５】
幾つかの実施形態では、この最近ファイルインターフェースは、ファイルの転送状況又は同期状況を示すことができる。例えば、一実施形態では、プログレスバーを各ファイルの隣に表示し、これらファイルの装置との間での転送を示すことができる。一実施形態では、このプログレスバーは垂直に配向して、下向きなど一方向で満たしていって装置へのファイルのダウンロードの進捗を示してもよく、上向きなど反対の方向で満たしていってこの装置から第2装置又はオンライン記憶プロバイダへのこのファイルのアップロードの進捗を示してもよい。幾つかの実施形態では、最近修正された又はアクセスされたファイルのメタデータは、それらファイルのダウンロードが完了する前に又は幾つかの実施形態では開始される前に、インターフェース110によってダウンロードされ且つ表示できる。例えば、メタデータは比較的小さくできるので、装置は、例え限定された帯域幅又はセルラー式接続を介していても、他の装置上で最近修正されたファイルのリストを使って迅速に更新できる。すると、ユーザは、リストアップされたファイルの1つを開くか閲覧し、選択されたファイルは必要に応じてダウンロードでき、ユーザが必要としない大量のデータの不要な転送を減らすことができる。
【００４６】
同期エンジン200は、ファイルシステムウォッチャ202を実行又は含むことができる。ファイルシステムウォッチャは、アプリケーション・プログラミング・インターフェース(API)へのコマンドをモニタし、フックし、インターセプトし、又はファイルシステムの動作をその他の態様でモニタするサービス、デーモン、ルーチン、又は他の実行可能論理を含むことができる。例えば、マイクロソフトウィンドウズ（登録商標）・オペレーティングシステムを用いた装置上で、ファイルシステムウォッチャ202は、作成、変更、削除、名前変更、移動、又はその他の様態でアクセスされたファイルを検出するため、オペレーティングシステムにより更新されたFileSystemWatcherイベントをモニタできる。同様に、アップルマッキントッシュOSXオペレーティングシステムを使用する装置上で、ファイルシステムウォッチャ202はFSEvents APIを使用するか、FSEventsログをモニタできる。他のオペレーティングシステム上の実装例も類似の処理又はログをモニタでき、又はフォルダ又はライブラリ内のファイルのメタデータの変更を検出するため、1つ又は複数のフォルダ又はライブラリの定期的なスキャンを実行できる。幾つかの実施形態では、ファイルシステムウォッチャ202は、装置上の、指定されたドライブ上の、又は1つ又は複数のフォルダ内のすべてのファイル作業をモニタするよう構成できる。
【００４７】
幾つかの実施形態では、ファイルシステムウォッチャ202はリモートファイルモニタ203を含むか、それと通信できる。ファイルシステムウォッチャ202と同様に、リモートファイルモニタ203は、リモートシステム上のファイル作成、修正、削除又はアクセスをモニタするためのアプリケーション、サービス、サーバ、デーモン、ルーチン、又は他の実行可能論理を含むことができる。例えば、リモートファイルモニタ203は、カリフォルニア州マウンテンビュー所在のグーグル社により提供されるグーグルドライブ、カリフォルニア州キューパーティーノ所在のアップル社により提供されるアイクラウド、ワシントン州レッドモンド所在のマイクロソフト社により提供されるスカイドライブ、又は同時オンラインバージョニング・システム、クラウド記憶システム、若しくはネットワーク記憶装置を含む他の任意種類及び形式の遠隔記憶、共有、若しくは同期システムとインターフェースを取るAPIと通信できる。同様に、リモートファイルモニタ203は、カリフォルニア州メンローパーク所在のフェイスブック社により提供されるインスタグラム又はカリフォルニア州サニーベール所在のヤフー！社により提供されるFlickrなどソーシャルネットワーキング又は共有サイトに関連付けられたオンライン記憶装置からファイルをモニタ且つ/又は取り出すことができる。リモートファイルモニタ203は、ファイルメタデータ及び/又はファイルの更新をこうしたサービスプロバイダにより提供されるAPIを介して定期的に要求したり、又は、公開又は私的アクセス可能なウェブサイト、ＦＴＰサイト、又は他のサービスをモニタしたりできる。例えば、リモートファイルモニタ203は、ウェブページのHTTP GET要求を実行してソーシャルネットワーキングサイト上でユーザのファイルを特定し、取り出されたページをこのページのキャッシュされたバージョンと比較することで新たなファイルを識別でき、すると新たなファイルは別個に取り出し可能となる。
【００４８】
オペレーティングシステムの多くの実施形態では、多数のファイルが、オペレーティングシステムによってユーザの介在なしで修正且つ/又はアクセスできる。例えば、様々なロギング処理、プログラム内のサブルーチンの動作、様々なアプリケーションライブラリ又はデータファイルの読み出しなどによって、ユーザが単一のアプリケーションを実行したり1つのファイルを開いたりすると、数百のファイルがアクセスされ又は修正されることがある。しかし、ユーザにとって重要である可能性が最も高いファイルは、ワードプロセシングプログラムにより表示される文書又は画像編集プログラムにより表示される画像などの、ユーザに表示されるウィンドウに関連付けられたものである。対照的に、特に表示を目的として開かれない限り(従って、表示されたウィンドウに関連付けられていない限り)、ログファイル又は基本設定ファイルはウィンドウを表示しなくても更新でき、よってユーザにとって重要である可能性は低い。従って、こうしたユーザ指示によらないファイルへのアクセスを最近使用したファイルのリストから除去するため、同期エンジン200はプロセスモニタ204を実行できる。プロセスモニタ204は、処理又はウィンドウの実行をモニタし、ウィンドウのタイトルと最近修正されたファイルのリストとを比較するアプリケーション、サービス、デーモン、ルーチン、又は他の実行可能論理を含むことができる。プロセスモニタ204は、ファイルが任意のプロセスによって修正、アクセス、又はその他の様態で使用されたことをファイルシステムイベントのモニタリングを介して確認すると、そのプロセスに関連付けられたウィンドウのウィンドウタイトルを識別できる。ウィンドウタイトルがファイル名の一部又はすべてに一致すれば、そのファイルはユーザにとって重要である可能性が高く、最近使用されたファイルのリストに含め且つ/又はそのリストのより高い優先度に置かれるか、或いは他のファイルよりもより高い優先度で他の装置に同期できる。どのプロセスのウィンドウもそのファイルに一致するタイトルを備えていなければ、そのファイルは最近使用されたファイルのリストから除くことができる。
【００４９】
幾つかの実施形態では、同期エンジン200は、ネットワーク同期モジュール206を実行できる。ネットワーク同期モジュール206は、他の装置の同期をモニタし且つ/又はオンライン記憶プロバイダと通信するためのアプリケーション、サービス、ルーチン、デーモン、又は他の実行可能論理を含むことができる。ネットワーク同期モジュール206は、装置100上で最近修正されたファイルの定期的な更新を送信し、且つ/又は他の装置又はオンライン記憶プロバイダ上で最近修正されたファイルの更新を定期的に要求できる。幾つかの実施形態では、ネットワーク同期モジュール206は、修正されたファイル又は新たに作成されたファイルを要求且つ受信でき、別の実施形態では、ネットワーク同期モジュール206は、修正されたファイル又は新たに作成されたファイルのメタデータをまず受け取って、方針に基づいて又はユーザによる要求に応答して、そのファイルをリモート装置から取り出すのか又はオンライン記憶プロバイダから取り出すかを決定できる。これらすべてのファイルのメタデータは、これらファイル自体が取り出されなくても、最近使用したファイルのリストに受け取られ表示できる。同期エンジン200により維持される方針データベース208と組み合わせて、ネットワーク同期モジュール206は、サイズ閾値未満のファイル、又は指定されたタイプのファイル、又は特定の装置で作成されたファイル、又はネットワーク接続が第2閾値未満の帯域幅を備えている場合はサイズ閾値未満のサイズのファイルのみを取り出す決定をしてもよいし、又は他のそうした方針若しくは方針の組み合わせに応答して取り出す決定をしてもよい。例えば、ユーザは、自分のスマートフォンの5ＭＢ未満のサイズの写真又は職場のコンピュータでなく自宅のコンピュータで作成した文書のみの取り出しを望むことを指定できる。同期方針は、記憶位置、装置、ファイルタイプ、関連付けられたアプリケーション、修正した日付若しくは時間、サイズ、ネットワーク帯域幅、ユーザ名、タグ若しくはコメント、又はファイルに関連付けられた他のそうした任意情報の1つ又は複数に基づくことができる。
【００５０】
この同期エンジンは、装置100で作成されたファイルに関連付けられたメタデータをデータベース102に格納することに加え、他の装置又は記憶プロバイダから受信したメタデータをデータベース102に格納できる。多くの実施形態では、ファイルの記憶位置は、共有メタデータの一部として他の装置と共有されないことがある。例えば、ユーザは、任意装置上で第1ファイルを生成し、そのファイルをファイルシステム104のフォルダ階層内のフォルダに格納できる。同期エンジン200は、そのファイルのレコードを、対応するファイル識別子とともにデータベース102内で生成できる。同期エンジン200は、そのファイルの位置をデータベース102の1つの項目内に記録でき、そのファイル及び/又はそのファイルのメタデータを他の装置又は記憶プロバイダに送信でき、そのメタデータは、ファイル名、タイプ、サイズ、作成又は修正日、タグ、コメント、サムネイル、又はそのファイルに固有の類似の情報を含む一方、その装置上の当該ファイルの記憶位置は含まない。第2装置は、このメタデータを第2データベース102に格納でき、そのファイルを隠しディレクトリ108内に格納できる。第2装置のユーザは、そのファイルの位置を見つけるために第2装置のファイルシステムを移動することなく、最近ファイルインターフェースを介してそのファイルにアクセスできるが、それには任意アプリケーションでそのファイルを開くこと、そのファイルのコメント又はタグを編集すること、そのファイルのプレビューを閲覧すること、そのファイルの共有許可又は他の属性を変更することが含まれる。
【００５１】
第2装置でそのファイルが修正されると、第1装置の同期エンジン200は、第2装置から又はオンライン記憶プロバイダを介して、そのファイルの更新済みバージョンを受け取ることができる。同期エンジン200は、このファイルの元々の記憶位置をデータベース102から識別でき、そのファイルの以前のバージョンを上書きすることで、そのファイルの修正バージョンを同じ位置に保存できる。従って、ユーザはこのファイルを、それが他の装置上で修正又は閲覧されていても且つフォルダの同期を手動で行うことなく、第1装置上の最初の位置に見つけることができる。さらに、このシステムは、該当しないかもしれない第1装置上のファイルパスに対応させるため、追加フォルダを他の装置上に生成する必要はない。
【００５２】
さらに、上述のように、ライブラリに基づくファイルシステムを備えた装置の実施形態では、ファイルは、必要に応じて各装置のアプリケーション固有ライブラリに格納され、さらに、ユーザによる作業なしで最初の記憶位置に再同期されることがある。同様に、ファイルがライブラリに基づくファイルシステムを利用する装置上で作成される場合、このファイルは他の装置に同期され且つ隠しフォルダに格納できるので、ユーザに混乱をきたしかねないような様態で第1装置上の各アプリケーションに対応したフォルダを生成する必要性を回避できる。
【００５３】
ここで図4Aを参照すると、複数装置上のファイルの自動同期及び修正の一実施形態のフローチャートが図示されている。ステップ400では、第1装置の同期エンジンは、最近使用された第1記憶装置に格納された第1ファイルを識別できる。上述のように、同期エンジンは、最近作成され、名前が変更され、移動され、修正され、コメントされ、タグ付けされ、閲覧され、開かれ、アクセスされ、書き込まれ、又はその他の態様でユーザに使用されたファイルを識別できる。例えば、一実施形態では、そのファイルは、現在時間の所定期間内に修正時間を備えているかもしれない。別の実施形態では、そのファイルは、同期エンジンが最後に更新ファイルの存在をチェックした時点からの中間期間内に修正時間を備えているかもしれない。上述のように、この同期エンジンは、ファイルシステム更新ログをスキャンして更新されたファイルを探し、ファイルが更新されるとファイルシステムウォッチャから通知を受け取り、ファイルシステムコマンドをインターセプトし、且つ/又はディレクトリをスキャンしてメタデータ変更を探すことができる。幾つかの実施形態では、上述のように、このシステムは、修正又はアクセスされたファイルが、実行中のプロセスのアクティブウィンドウに対応するか、又はウィンドウの名前若しくはウィンドウタイトルバーに表示された名前に一致又は部分的に一致するファイル名を持つことを識別できる。従って、幾つかの実施形態では、この所定期間は、システムが最近修正されたファイルの存在をチェックする定期頻度、同期エンジンの最後の起動からの時間、ファイルシステムの最後の更新からの時間、又は任意のそうした時間を表すことができる。
【００５４】
ステップ402では、この同期エンジンは、識別されたファイルの位置の識別情報をデータベースに格納できる。この位置は、ディレクトリ構造における絶対若しくは相対パスとして、記憶位置として、又は他の任意のそうした手段として格納できる。図示したように、幾つかの実施形態では、ステップ400-404は繰り返してもよい。多くのそうした実施形態では、ファイルが後に使用されるときに、同期エンジンが、ステップ402で必要に応じて識別されたファイルの位置を更新でき、或いは、そのファイルが移動されていなければステップ402を飛ばすことができる。
【００５５】
ステップ404では、同期エンジンは、このファイルを第2装置及び/又はオンライン記憶装置又はバックアッププロバイダに同期できる。このファイルの同期は、このファイルを第2装置又はオンライン記憶プロバイダに送信すること、又はこのファイルのメタデータ若しくはこのメタデータの修正の通知を第2装置又はオンライン記憶プロバイダに送信することを含むことができる。幾つかのそうした実施形態では、第2装置は、そのファイルの送信を例えば第2装置の同期方針に基づいて要求できる。幾つかの実施形態では、第2装置又はオンライン記憶プロバイダは、ファイルの送信を定期的に要求でき、又は第1装置と第2装置又はオンライン記憶プロバイダとの間のネットワーク接続が十分な帯域幅を備えていることに応答してファイルの送信を要求できる。同期されると、このファイルは第2装置の隠しディレクトリに格納でき、ユーザに最近のファイルインターフェースを介して表示できる。
【００５６】
ステップ406では、第1装置は、このファイルの修正されたバージョンを第2装置から又はオンライン記憶プロバイダを介して受信できる。幾つかの実施形態では、第1装置は、ファイルの更新若しくは同期及び/又はメタデータをそのリモート装置若しくはプロバイダから定期的に要求できる一方、別の実施形態では、このリモート装置又はプロバイダが、ファイルが修正されたという通知を送信できる。一実施形態では、このリモート装置又はプロバイダは、メタデータを第1装置に送信でき、第1装置は、このリモート装置又はプロバイダから修正されたファイルを要求できる。
【００５７】
ステップ408において、第1装置は、ファイル位置の格納された識別情報をデータベースから取り出すことができ、ステップ410では、第1装置は、受信した修正されたファイルをその位置に格納して、そのファイルの以前のバージョンを修正されたバージョンと置き換えることができる。幾つかの実施形態では、第1装置は、受信したファイルをそのファイルの新しいバージョンとして格納できるが、他の実施形態では、第1装置は単にそのファイルを上書きできる。一実施形態では、第1装置は、そのファイルの修正されたバージョンをオンライン記憶又はバックアッププロバイダから受け取ることができ、このプロバイダは、回復又は変更の復元を可能とするためそのファイルの前のバージョンを保存できる。幾つかの実施形態では、第1装置はステップ406の前にステップ408を実行してもよく、例えばその場合、第1装置がメタデータ又はこのファイルへの修正の通知を受け取り、そのファイルの記憶位置を取り出し、次にそのファイルの送信をリモート装置から要求する。
【００５８】
従って、上述の方法によれば、ファイルは異なる装置に同期されて、最近ファイルインターフェースでの表示及びユーザによるアクセスが可能となる一方で、そのファイルの最初の記憶位置を維持し且つそのファイルの修正を最初の記憶位置に再同期できる。この方法の利点は、ファイル構造に関する情報をリモート装置に知らせることが無く、これが悪意あるソフトウェアに対して一定の安全性を確保できることである。
【００５９】
ここで図4Bを参照すると、最近修正されたファイルを複数の装置間で同期するための方法の別の実施形態のフローチャートが図示されている。ステップ420で、１つの装置が、第2装置上で又はオンライン記憶プロバイダにより格納されている1つ又は複数の修正されたファイルの通知又は識別情報を受信できる。一実施形態では、この装置は、1つ又は複数のファイルが更新されているという通知を受け取ることができ、するとこの更新されたファイルのメタデータを要求できる。他の実施形態では、この装置は、任意の更新されたファイルのメタデータを要求し、そのメタデータを受け取ることができる。上述したように、リモート装置上で生成された又は所有されているファイルに関して、そのメタデータ及び/又は通知は、リモート装置上のそのファイルの記憶位置を識別しない。
【００６０】
ステップ422で、この装置はそのファイルを取り出すかどうかを決定できる。上述したように、この装置は、このファイルの当該装置への送信を要求するかどうかを決定するための1つ又は複数の同期方針を適用できる。変数には、このファイルの共有方針、このファイルの名前、このファイルのファイルタイプ若しくはこのファイルの関連付けられたアプリケーション、このファイルの作成若しくは修正日、このファイルのサイズ、このファイルのタグ又はコメント、この装置の空き記憶の量、帯域幅、待ち時間、この装置の接続の誤り率、このファイルの表示された優先度、又は他のそうした情報が含まれうる。幾つかの実施形態では、この装置は、ユーザコマンドに応答してこのファイルを取り出すことを決定できる。例えば、この装置は、あるファイルが修正されていることをユーザに最近ファイルインターフェースを介して表示でき、するとユーザは、そのファイルのダウンロード又は閲覧を選択できる。
【００６１】
ステップ424では、この装置は、このファイルを第2装置又はオンライン記憶プロバイダから受信できる。このファイルの取り出しは、このファイルの送信を要求すること、又はこのファイルをリモート装置からダウンロードすることを含むことができる。このファイルを受信すると、ステップ426で、この装置は、そのファイルを当該装置上の隠しディレクトリに格納できる。この隠しディレクトリは、ユーザアクセス可能ファイルシステムには見えないようにフラグを立ててもよいし、ファイルシステムのユーザアクセス不能な又はユーザに見えないパーティション内に格納してもよいし、或いはその他の態様でユーザがアクセスできないようにしてもよい。例えば、ライブラリに基づくファイルシステムでは、この隠しディレクトリは、最近ファイルインターフェースアプリケーションに専用のライブラリを含むことができる。
【００６２】
ステップ428では、この装置は、このファイルの識別情報をユーザに最近ファイルインターフェースを介して表示できる。上述したように、この装置は、このファイルを他のファイルと共にリストで表示でき、これらは時系列に沿って、アルファベット順に、タイプ若しくはアプリケーションによって、タグによって、共有された状態によって、所有者によって、又はこれら若しくは他の識別子の任意組み合わせを介して配列できる。上述したように、幾つかの実施形態では、ステップ428はステップ422-426の前に実行してもよく、このファイルの識別情報を受信したメタデータに基づいてユーザに提示することになる。
【００６３】
ステップ430では、ユーザはこのファイルを修正できる。このファイルの修正には、共有許可の変更などのこのファイルのメタデータの修正、コメント若しくはタグのこのファイルへの付加、このファイルの内容の修正、又はその他の態様でこのファイルと相互作用することが含まれうる。幾つかの実施形態では、このファイルの修正には、このファイルを開き又はアクセスしてこのファイルのメタデータのアクセス時間が更新されることが含まれうる。上述のように、幾つかの実施形態では、この装置はそのファイルが修正されていることを、修正された又はアクセスされたファイルのファイル名と、その装置上で実行中のプロセスのウィンドウタイトルバーとを比較することに応答して特定でき、ユーザが関与することなくシステムによりアクセスされたファイルを除去できる。
【００６４】
この修正に応答して、ステップ432において、この装置は、修正されたファイル及び/又は修正されたファイルのメタデータを第2装置に又はオンライン記憶若しくはバックアッププロバイダに送信できる。この装置は、このファイルの所有権を持つ装置上のこのファイルの記憶位置の識別情報を受け取っていないので、その記憶位置のそうした識別情報を第2装置又はオンライン記憶又はバックアッププロバイダに送ることはない。
【００６５】
ここで図4Cを参照すると、最近使用されたファイルを複数装置に同期するための方法の別の実施形態のフローチャートが図示されている。ステップ450において、オンライン記憶若しくはバックアッププロバイダにより提供された装置又はそうした装置は、第2装置により維持されている記憶装置上の位置に格納されているファイルを第2装置から受信できる。このファイルは、上述したように、最近修正、作成、又はアクセスされたものでよい。ステップ452では、幾つかの実施形態において、この装置はそのファイルを、長期保存、以前のバージョンの回復、又はそうした他のタスクのために記憶リポジトリに格納できる。
【００６６】
ステップ454では、幾つかの実施形態において、この装置は、第3装置がこのファイルを受信すべきかを決定できる。上述したように、この装置は、このファイルのサイズ、ネットワーク接続の帯域幅、ファイルタイプ、このファイルに関連付けられたアプリケーション、このファイルのタグ若しくはコメント、このファイルに関連付けられたユーザ、又は他のそうした任意情報に応答して、このファイルを第3装置に同期すべきか否かを指定できる同期方針を適用できる。この装置が、このファイルを第3装置に同期又は送信すべきでないと決定した場合、幾つかの実施形態では、ステップ456において、この装置は、このファイルのメタデータ又はこのファイルの類似の識別情報を、最近ファイルインターフェースでの表示のため第3装置に送信できる。そうでなければ、ステップ458において、この装置は、このファイルを第3装置の隠しディレクトリに格納するためこの装置に送信できる。
【００６７】
ステップ460では、この装置は、このファイルの修正されたバージョンを第3装置から受信できる。幾つかの実施形態では、この装置は、このファイルが修正されたという通知を受信するか又はこの修正されたファイルのメタデータを受信でき、次にそのファイルの送信を要求できる。他の実施形態では、この装置は、更新又は修正されたファイルの同期を定期的に要求でき、更新又は修正されたファイルの通知の受信に応答して、そのファイルの送信を要求できる。同様に、ステップ462で、この装置はこのファイルを第2装置に送信してもよいし、又はそのファイルの修正の通知及び/又は修正されたファイルのメタデータを第2装置に送信し、第2装置がそのファイルの送信を要求してもよい。
【００６８】
図5A-5Qは、複数装置上のファイルの自動同期及び修正用のユーザインターフェースの代表的な実施形態のスクリーンショットである。図5Aを先ず参照すると、主インターフェースウィンドウ500aの一実施形態の代表的なスクリーンショットが示されている。図示したように、幾つかの実施形態では、インターフェースウィンドウ500aは、最近作成、アクセス、共有、且つ/又は修正されたファイルのリスト502aと、プレビューウィンドウ又はフレーム504aとを含む2つのパネル又はフレームを含むことができる。多くの実施形態では、リスト502aで項目をユーザが選択すると、このシステムは、プレビューフレーム504a内で、画像、テキスト文書、ビデオ、オーディオファイル、又は他の文書のプレビューを表示する。例えば、図5Bを参照すると、リスト502aで別の項目を選択すると、このインターフェースは、フレーム504aに異なる対応するプレビューを表示することになる。多くの実施形態では、ユーザは「開く」ボタン又は類似の要素をクリックして、そのファイルを編集又は閲覧のために開くか、或いは関連付けられたアプリケーションを起動できる。幾つかの実施形態では、図示したように、リスト502a内で、他人と共有されるファイルの横にアイコンを表示できる。多くの実施形態では、そのファイルの物理的な位置又はそのファイルのディレクトリ内の位置は表示されないが、それはこの情報が重要ではない又は必要ないからである。
【００６９】
幾つかの実施形態では、図5A及び5Bに示したように、このユーザインターフェースはトグルボタン506aを含み、これによりユーザが、ファイルのリスト502aを、アクセス、作成、及び/又は修正(共有権の修正又はコメントの付加を含む)の時系列順に閲覧するか、或いは図5Fに関連して後に詳述するように、作成者若しくは修正ユーザ別にグループ分けされた共有ファイルのリストを閲覧するかを選択できる。さらに、多くの実施形態では、このユーザインターフェースはアイコン508aを含み、これによってユーザは、基本設定の共有を設定若しくは修正でき、ファイルの古いバージョン若しくはこのファイルの修正履歴を閲覧し、且つ/又はこのファイルのコメントを閲覧若しくは加えることができる。このユーザインターフェースは、ユーザが、名前、内容、メタデータ、作成若しくは修正日、ユーザ名、又は他の基準によってファイルを検索できる検索要素510aも含むことができる。
【００７０】
ここで図5Cを参照すると、ファイルを閲覧する且つ/又はファイルにコメントを加えるためのユーザインターフェース512aの代表的な実施形態を示す。多くの実施形態では、ユーザインターフェース512aは、ユーザがコメントアイコン508aを選択するとインターフェース500a上に表示されるポップアップウィンドウ又は新たなウィンドウを含むことができる。図示したように、多くの実施形態では、コメントウィンドウ512aは、１つのファイルに関する複数ユーザによるコメントを時系列順に表示できる。各コメントは、このファイルのユーザ名、時間、及び/又はバージョンにより識別できる。これは、このファイルに対する修正の提案など、コメントが前のバージョンに関連するような場合に有用となることがある。多くの実施形態では、ファイルの前のバージョンの識別は、そのファイルの当該前のバージョンへのリンクを含むことができ、そのコメントを閲覧するユーザが対応するバージョンを取り出し且つ/又は閲覧できる。
【００７１】
ここで図5Dを参照すると、ファイルの閲覧履歴内の前のバージョンを閲覧する且つ/又は前のバージョンに戻るためのユーザインターフェース514aの代表的な実施形態を示す。図示したように、多くの実施形態では、このバージョン履歴は、修正の時間及び/又は日付、その修正を実行したユーザを識別でき、さらにファイルの以前のバージョンを閲覧又はそれに戻るための機能を提供できる。
【００７２】
図5Eには、ファイルのアクセス及び共有制御を閲覧且つ/又は修正若しくは設定するためのユーザインターフェース516aの代表的な実施形態を示す。ファイルの作成者を所有者に指定でき、すると他の者は協力者となり且つそのファイルを修正し又は閲覧できる。幾つかの実施形態では、ファイルの所有者のみがそのファイルを削除できる。同様に、幾つかの実施形態では、ファイル所有者のみが、他のユーザを共有リストに追加でき又は他のユーザに許可を与えることができる。多くの実施形態では、ファイルの所有者は、所有権を他のユーザに譲り渡すことができる。
【００７３】
上述し且つ図5Fに示したように、幾つかの実施形態では、ユーザインターフェース518aは、ユーザによって共有され且つ所有者別にグループ分けされたファイルのリスト520aを示すことができる。幾つかの実施形態では、そうしたユーザインターフェースは、図示したようにトグル506aを介してアクセスできる。幾つかの実施形態では、図示したように、ユーザはユーザが所有するファイルを展開又は折り畳むことができる。
【００７４】
図5Gは、図5A及び5Bに示したものと似たユーザインターフェース500bの別の実施形態の図である。図示したように、ユーザインターフェース500bは、ファイルのリスト502bと、プレビューウィンドウ504bと、時系列順の又は所有者によりグループ分けされたファイルを閲覧するためのトグルボタン506aと、コメント/バージョン履歴/共有アイコン508bと、検索ボックス510bとを含むことができる。図5Hに示したように、1つのアイコン508bを選択すると、ユーザインターフェースが、コメント512b、バージョン514b、又は共有制御516b用の対応するポップアップ又はフローティングウィンドウを表示する。幾つかの実施形態では、図5Iに示したように、所有者によりグループ分けされたファイルを表示するようユーザによりトグルボタン506bが選択されると、複数の所有者が第1リスト518bで識別できる。ユーザが1人の所有者を選択すると、選択した所有者により共有されたファイルの第2リスト520bが表示できる。
【００７５】
図5Jは、上述のユーザインターフェース500a及び500bに似たユーザインターフェース500cの別の実施形態である。図示したように、ユーザインターフェース500cは、ファイルのリスト502cと、プレビューウィンドウ504cと、時系列順の又は所有者によりグループ分けされたファイルを閲覧するためのトグルボタン506ｃと、コメント/バージョン履歴/共有アイコン508cとを含むことができる。幾つかの実施形態では、検索ボックス又はフィールドを表示するのでなく、このユーザインターフェースは、当該ユーザインターフェースに検索ダイアログ(図示しない)を表示させる検索アイコン510cを含むことができる。同様に、幾つかの実施形態では、コメント512c、共有制御514c、及びバージョン履歴(図示しない)をポップアップ又はフローティングウィンドウに表示するのでなく、図5K及び図５Lの実施形態で示したように、ユーザインターフェースは、これらのリストや制御を別のウィンドウで表示してもよい。
【００７６】
タブレット又はデスクトップ若しくはラップトップコンピュータ用のスケーリング及びレイアウトで示したが、このユーザインターフェースの他の実施形態は、スマートフォンなどのより小型の装置で使用できる。例えば、図5Mを参照すると、スマートフォン用のユーザインターフェース500dの一実施形態を示す。図示したように、ユーザインターフェース500dは、ファイルのリスト502bと、トグルボタン506dと、検索ボックス510dとを含むことができる。ユーザがファイルを選択すると、表示装置は、プレビューウィンドウ504dを示すことができ、これは、図5Nに示した対応するウィンドウ512d、514d、及び516dに表示できるコメントと、共有設定と、バージョン履歴とにアクセスするためのアイコン508dを備えている。上述し且つ図5Oに示したように、幾つかの実施形態では、このユーザインターフェースは、ユーザとファイルを共有する所有者のリスト518dを表示でき、1人の所有者を選択すると、選択された所有者520dによって所有されたファイルのリストを表示できる。
【００７７】
同様に、図5Pは、ファイルのリスト502eと、トグルボタン506eと、検索ボックス510eと、プレビューウィンドウ504eと、アイコン508eとを含むスマートフォン又は類似の装置用のユーザインターフェース500eの別の実施形態を示す。上述したように、ファイルのコメント512e又は共有制御516eは、図5Qの例示的な実施形態で示したように専用ウィンドウ内で示してもよい。
【００７８】
図6は、本明細書で記載された方法及びシステムを実施するのに有用な代表的な計算装置のブロック図である。様々な装置100及び114は、任意種類及び形式のネットワーク上で通信し且つ本明細書に記載した動作を実行可能な、コンピュータ、ネットワークデバイス、又はアプライアンスなどの任意種類及び形式の計算装置として配置でき且つ/又はそうした装置上で実行できる。この計算装置は、ラップトップコンピュータ、デスクトップコンピュータ、物理的なコンピュータにより実行される仮想マシン、アップル社により製造されるアイパッド（登録商標）タブレット又はサムソン社若しくはモトローラ社により製造されるもののようなアンドロイドに基づくタブレットなどのタブレットコンピュータ、アップル社により製造されるアイフォンブランド/ｉOSに基づくスマートフォン、サムソンギャラクシー又はHTCドロイドスマートフォンなどアンドロイドに基づくスマートフォンなどのスマートフォン若しくはPDA、又は他の任意種類及び形式の計算装置を含むことができる。図6は、ユーザ装置100又はオンライン記憶若しくはバックアッププロバイダ114の装置の一実施形態を実現するのに有用な計算装置600のブロック図を示す。計算装置600は、中央演算処理装置601と、主メモリユニット602と、視覚表示装置624と、仮想キーボードでも物理キーボードでもよいキーボード626及び/又はマウス、タッチパッド、容量型若しくは抵抗型の単一若しくは複数タッチ入力装置などのポインティングデバイス627などの1つ又は複数の入出力装置630a-630b(概して、参照番号630を用いて参照する)と、中央演算処理装置601と通信するキャッシュメモリ640とを含むことができる。
【００７９】
中央演算処理装置601は、主メモリユニット602且つ/又は記憶装置628から取り出した命令に応答し、それらを処理する任意の論理回路でよい。この中央演算処理装置は、カリフォルニア州サンタクララ所在のインテル社により製造されるもの、イリノイ州シャウムブルク所在のモトローラ社により製造されるもの、カリフォルニア州キューパーティーノ所在のアップル社により製造されるもの、他の任意のシングル若しくはマルチコアプロセッサ、本明細書で記載した動作が可能な任意の他のプロセッサ、又は2つ以上のシングル又はマルチコアプロセッサの組み合わせなどのマイクロプロセッサユニットにより実現できる。主メモリユニット602は、データを格納できる1つ又は複数のメモリチップであって、任意の記憶位置がマイクロプロセッサ601により直接アクセスできる任意種類のランダムアクセスメモリなどの1つ又は複数のメモリチップでよい。幾つかの実施形態では、主メモリユニット602は、キャッシュメモリ又は他の種類のメモリを含むことができる。
【００８０】
計算装置600は、フロッピー（登録商標）ディスクドライブ、CD-ROMドライブ、CD-R/RWドライブ、DVD-ROMドライブ、様々なフォーマットのテープドライブ、USB/フラッシュデバイス、ハードドライブ、又は任意のクライアントエージェント620若しくはその一部などのソフトウェア及びプログラムのインストールに適した他の任意適切な装置などの任意適切なインストール装置616をサポートできる。計算装置600は、オペレーティングシステム及び他の関連したソフトウェアを記憶したり、クライアントエージェント620に関連した任意プログラムなどのアプリケーション・ソフトウェアプログラムを記憶したりするための1つ又は複数のハードディスドライブ又は独立ディスクの冗長アレイのような記憶装置628をさらに含んでもよい。
【００８１】
さらに、計算装置600は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、又はインターネットに、標準電話回線、LAN又はWANリンク(例えば、イーサネット（登録商標）、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、ISDN、フレームリレー、ATM)、ワイヤレス接続(例えば、802.11a/b/g/n/ac、ブルートゥース)、セルラー式接続、又は上述のいずれかの組み合わせ或いはすべてを含むがそれらに限定されない様々な接続を介してインターフェースをとるネットワークインターフェース618を含むことができる。ネットワークインターフェース618は、計算装置600を、通信能力を備え且つ本明細書に記載した動作を実行できる任意種類のネットワークにインターフェース接続するのに適した内蔵式ネットワークアダプタ、ネットワーク・インターフェースカード、PCMCIAネットワークカード、カードバス・ネットワークアダプタ、ワイヤレスネットワークアダプタ、USBネットワークアダプタ、セルラー式モデム若しくは他の任意装置を含むことができる。
【００８２】
多種多様な入出力装置630a-630nが、計算装置600に含まれることがある。入力装置には、キーボードと、マウスと、トラックパッドと、トラックボールと、マイクロフォンと、シングル又はマルチタッチパッドと、作図タブレットとが含まれる。出力装置には、ビデオ表示装置と、スピーカと、ヘッドホンと、インクジェットプリンタと、レーザプリンタと、昇華型プリンタとが含まれる。入出力装置630は、図6に示したように入出力制御装置623により制御できる。この入出力制御装置は、キーボード626及びマウス、光学ペン又はマルチタッチスクリーンのようなポインティングデバイス627などの1つ又は複数の入出力装置を制御できる。さらに、入出力装置は、計算装置600に記憶機構628及び/又はインストール媒体616を提供できる。計算装置600は、カリフォルニア州ロスアラミトス所在のツインテックインダストリ社により製造されるUSBフラッシュドライブ装置などの手持ちUSB記憶装置を収容するUSB接続部を備えている。
【００８３】
計算装置600は、それぞれが同一又は異なる種類及び/又は形式でよい多数の表示装置624a-624nを含んでいてもよいし、或いはそれらに接続されていてもよい。従って、任意の入出力装置630a-630n及び/又は入出力制御装置623は、計算装置600による多数の表示装置624a-624nの接続又は使用をサポートし、そうした接続又は使用を可能とし、実現するための任意種類及び/又は形式の適切なハードウェア、有形媒体上で実現されたソフトウェア、又はハードウェアとソフトウェアの組合せを含むことができる。例えば、計算装置600は、表示装置624a-624nとインターフェースをとり、通信し、接続し、それ以外の様態でそれら装置を使用する任意種類及び/又は形式のビデオアダプタ、ビデオカード、ドライバ、及び/又はライブラリを含むことができる。ビデオアダプタは、多数の表示装置624a-624nとインターフェースをとるための多数のコネクタを含むことができる。他の実施形態では、計算装置600は、多数のビデオアダプタを含むことができ、それぞれのビデオアダプタが表示装置624a-624nのうち1つ又は複数に接続される。計算装置600のオペレーティングシステムの任意部分は、多数の表示装置624a-624nを使用するために構成できる。さらに、表示装置624a-624nのうちの1つ又は複数は、例えばネットワークを介して計算装置600に接続された計算装置600a及び600bなどの1つ又は複数の他の計算装置が提供してもよい。これら実施形態は、別のコンピュータの表示装置を計算装置600の第2表示装置624aとして使用するよう設計且つ構成された任意種類の有形媒体上で実現されたソフトウェアを含むことができる。通常の技能を備えた当業者であれば、多数の表示装置624a-624nを備えるように計算装置600を構成できる様々な方法及び実施形態を認め且つ理解するはずである。
【００８４】
図５に示した計算装置600は、マイクロソフトウィンドウズ(登録商標)オペレーティングシステムの任意バージョン、ユニックス及びリナックス（登録商標）オペレーティングシステムの様々なリリース、マッキントッシュコンピュータ用のMacOS(登録商標)の任意バージョン、任意の埋込オペレーティングシステム、任意のリアルタイム・オペレーティングシステム、任意のオープンソース・オペレーティングシステム、任意の所有権を主張できるオペレーティングシステム、モバイル計算装置用の任意のオペレーティングシステム、又は当該計算装置上で実行可能且つ本明細書に記載する動作を実行可能な他の任意のオペレーティングシステムなどのオペレーティングシステムの制御下で典型的には動作する。
【００８５】
計算装置600は、当該装置と整合性がある異なるプロセッサ、オペレーティングシステム、及び入力装置を備えることができる。例えば、一実施形態では、計算装置600は、アップルアイフォン若しくはモトローラドロイド・スマートフォン又はマルチ入力タッチスクリーンを組み込んだアップルアイパッド（登録商標）若しくはサムソンギャラクシー・タブレットコンピュータである。さらに、計算装置600は、通信能力を備えると共に本明細書に記載した動作を実行するのに十分なプロセッサ能力及び記憶容量を備えたワークステーション、デスクトップコンピュータ、ラップトップ若しくはノートブックコンピュータ、サーバ、手持ち式コンピュータ、携帯電話、任意の他のコンピュータ、若しくは他の形式の計算装置若しくは通信装置でよい。
【００８６】
本明細書で説明されたシステムは、それらの構成要素のいずれか又はそれぞれの多数個を提供でき、これら構成要素は独立型マシンに設けることができ、或いは幾つかの実施形態では、分散システムにおける多数のマシンに設けることができることは理解すべきである。上述したシステム及び方法は、有形媒体上で実現されたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを提供するためのプログラミング技法及び/又は工学技法を用いる方法、装置、又は製品として実装できる。さらに、上述したシステム及び方法は、1つ又は複数の製品に実装された1つ又は複数のコンピュータ可読プログラムとして提供できる。本明細書に記載した「製品」という用語は、1つ又は複数のコンピュータ可読装置、ファームウェア、プログラム可能論理、記憶装置(例えば、EEPROM、ROM、PROM、RAM、SRAMなど)、ハードウェア(例えば、集積回路チップ、書替え可能ゲートアレイ（FPGA）又は特定用途向けIC（ASIC）など)、電子装置、コンピュータ可読不揮発性記憶ユニット(例えば、CD-ROM、フロッピー（登録商標）ディスク、ハードディスク装置など)からアクセス可能な又はそれに埋め込まれたコード又は論理を包含することを意図している。この製品は、ネットワーク通信線、無線通信媒体、空間を伝搬する信号、無線波、赤外線信号などを介してこのコンピュータ可読プログラムへのアクセスを実現するファイルサーバからアクセスできる。この製品は、フラッシュメモリカード又は磁気テープでもよい。この製品は、プロセッサに実行されるコンピュータ可読媒体に埋め込まれたソフトウェア又はプログラム可能コードに加えてハードウェア論理も含む。一般に、こうしたコンピュータ可読媒体は、LISP、PERL、C、C++、C#、PROLOGのような任意のプログラミング言語、又はJAVA（登録商標）のような任意のバイトコード言語で実装すればよい。このソフトウェアプログラムは、1つ又は複数の製品にオブジェクトコードとして格納できる。
【図１Ａ】
2016506580.tif 000003
【図１Ｂ】
2016506580.tif 000004
【図２】
2016506580.tif 000005
【図３】
2016506580.tif 000006
【図４Ａ】
2016506580.tif 000007
【図４Ｂ】
2016506580.tif 000008
【図４Ｃ】
2016506580.tif 000009
【図５Ａ】
2016506580.tif 000010
【図５Ｂ】
2016506580.tif 000011
【図５Ｃ】
2016506580.tif 000012
【図５Ｄ】
2016506580.tif 000013
【図５Ｅ】
2016506580.tif 000014
【図５Ｆ】
2016506580.tif 000015
【図５Ｇ】
2016506580.tif 000016
【図５Ｈ】
2016506580.tif 000017
【図５Ｉ】
2016506580.tif 000018
【図５Ｊ】
2016506580.tif 000019
【図５Ｋ】
2016506580.tif 000020
【図５Ｌ】
2016506580.tif 000021
【図５Ｍ】
2016506580.tif 000022
【図５Ｎ】
2016506580.tif 000023
【図５Ｏ】
2016506580.tif 000024
【図５Ｐ】
2016506580.tif 000025
【図５Ｑ】
2016506580.tif 000026
【図６】
2016506580.tif 000027
【国際調査報告】
2016506580.tif 000028
2016506580.tif 000029