説明

ネットワークを介して1つのデバイスから別のデバイスへファイルを送信すること

【課題】ネットワークを介してファイルをソースデバイスから1以上の送信先デバイスに送信するようにするための技術を提供する。
【解決手段】仲介デバイスがファイルの通知を受信して、どの送信先デバイスが当該ファイルを読出すかを決定する。仲介デバイスは1以上のファイル属性に基づき送信先デバイスを決定することができる。仲介デバイスは、別個の記憶サービスによって維持される固定記憶媒体にそのファイルが記憶されるようにできる。仲介デバイスは、所定の期間後にそのファイルを削除するようにできる。ソースデバイスは、複数のバージョンのファイルを前記仲介デバイスに送信し、仲介デバイスはどの送信先デバイスがどのバージョンを受信するかを決定する。ファイルはデジタル画像であり得るし、送信先デバイスは、ネットワークを介してデジタル画像を受信しながら、そのデジタル画像のスライドショーを表示するデバイスであり得る。

【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願との相互参照:特許請求の範囲の利益〕
本出願は、2011年6月3日に出願された既に出願済みの米国仮特許出願第61/493,214号の利益を主張するものであり、35U.S.C.119条(e)の下、本願明細書で述べるが如く、上記特許出願は引用により本明細書に組み入れられる。
【0002】
本発明は、デジタル写真などのデジタル品目を、ネットワークを介して1つのコンピュータデバイスから別のコンピュータデバイスへ送信することに関する。
【背景技術】
【0003】
スマートフォン、デスクトップコンピュータ、ラップトップコンピュータなど、ますます、人々は複数のコンピュータ装置を所有するのが普通になってきている。複数のコンピュータ装置を所有する多くの人は、それら装置の各々に記憶されるファイルの少なくとも幾つかを持っていることを望む。これを実現する1つのアプローチとしては、ユーザが、彼らの装置の一つ(“ソース”デバイス)から、eメイルアカウントなどのオンラインアカウントへファイルをeメイルすることである。次に、ユーザは別の彼らの装置(“送信先”デバイス)を操作することにより、オンラインアカウントにアクセスしてそのファイルを送信先デバイスにダウンロードすることを開始すればよい。ユーザは、彼らの装置の各々でこの一連の処理を実行する。
【0004】
他のステップとしては、2つの装置を物理的に接続し(例えば、各装置のUSBポートを介して)、ソースデバイスにアクセスするよう送信先デバイスに指令し、そしてソースデバイスからファイルのコピーを読出す。ユーザは各送信先デバイスでこの一連の処理を実行しなければならないだろう。
【0005】
上記2つのアプローチは、重要、且つ多くの時間と労力を要する相互作用を要求する。また、ユーザが複数の送信先デバイスに転送されるファイルを望むという点において、この2つのアプローチは、オンラインアカウントにアクセスすること又は2つのデバイスを(例えば、USBなどの)コードで接続するといった、反復的な(または、少なくとも非常に類似する)処理を要求する。
【0006】
このセクションに記載したアプローチは達成されることができたであろうアプローチであるが、必ずしも以前に考え出されたり達成されたアプローチであるというわけではない。したがって、特に示唆がない限り、このセクションに記載されるアプローチのどれも、単に本セクションに含まれているという理由で先行技術となり得ると仮定すべきではない。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施例に従い、1つの装置(デバイス)から他の1以上の装置へ発生する、ファイルを転送するための例示的なシステムを示したブロック図である。
【図2】本発明の一実施例に従い、ソースデバイスから受信したファイルを格納すること、及び送信先デバイスに対するそれらのファイルの通知を管理する仲介によって維持される異なるタイプのデータを示したブロック図である。
【図3A】本発明の一実施例に従い、ファイルがソースデバイスから他の1以上の送信先デバイスへ送られることを生じさせるプロセスを示す図である。
【図3B】本発明の一実施例に従い、ファイルがソースデバイスから他の1以上の送信先デバイスへ送られることを生じさせるプロセスを示す図である。
【図4】コンピュータシステム400を示すブロック図であり、ここで本発明の一実施例が実行され得る。
【発明を実施するための形態】
【0008】
以下の記載において、例示の目的で、本発明の包括的な理解を提供するための特定の詳細が多数述べられる。しかしながら、本発明がこれらの特定の詳細無しでも実行され得ることは明らかであろう。他の例においては、本発明を不必要に不明瞭にすることを避けるため、よく知られた構造及びデバイスがブロック図形式で示される。
【0009】
全体の概要
ユーザは、1つの装置(“ソース”デバイス)で記憶されるファイルを他の1以上の装置(“送信先”デバイス)へネットワークを介して送られることを生じさせることができ、その場合、ソースデバイスからファイルが送信されると、送信先デバイスでそのファイルを取得するのに送信先デバイスで特段のオペレーティングを何ら実行することを要しない。ソースデバイスからのファイルを受信するのに1以上の仲介デバイスが用いられ、ファイルを受信する1以上の送信先デバイスを識別し、そしてファイルをその1以上の送信先デバイスに送る。その結果、ソースデバイスと1以上の送信先デバイスとの間の物理的コネクションが要求されない。
【0010】
一実施例において、ソースデバイスからのファイルのコピーを取得した後、仲介デバイスはそのファイルのテンポラリー(一時)コピーを記憶する。仲介シデバイスでファイルのテンポラリーコピーを記憶することによって、ソースデバイスが利用可能であってファイルを配信するのと同時に、送信先デバイスがそのファイルを受信するのに利用可能な状態である必要はなくなる。例えば、仲介デバイスがソースデバイスからのファイルコピーを取得する間、送信先デバイスが仲介デバイスに対して利用不可能であり、そしてソースデバイスが仲介デバイスに対して利用不可能なときに仲介デバイスは送信先デバイスにファイルを転送する。一実施例において、一つの仲介サービスが送信先デバイスを識別し通知する役割がある一方で、別の仲介サービスはファイルのテンポラリーコピーを記憶する役割がある。
【0011】
したがって、各送信先デバイスがそのコピーを読出す若しくは幾つかの他の削除基準が満たされるまで、ファイル(又はそのコピー)がソースデバイス及び送信先デバイスとは離れて、少なくとも一時的には、記憶される。例えば、一つのアプローチでは、送信先デバイスのすべてがファイルを受信していなかったとしても、ファイルのテンポラリーコピーは、或る一定期間記憶された後、遠隔記憶装置で削除されたりアクセスできなくされる。
【0012】
一つのアプローチでは、ファイルの複数バージョンがソースデバイスから送信され、遠隔で記憶される。仲介エンティティは、どの送信先デバイスがどのバージョンを受信するかを決定する。その結果、或る送信先デバイスが(例えば、同一ファイルの第2のバージョンをそれまで受信することなしに)第1のバージョンを受信し、そして別の送信先デバイスが(そのファイルの第1のバージョンをそれまで受信することなしに)第2のバージョンを受信したりする。
【0013】
一つのアプローチでは、(ソースデバイスからの)ファイル属性は、どの送信先デバイスがファイルを受信するかを決定するのに用いられる。例えば、デジタル画像で検出された人の識別(アイデンティティ)は、そのデジタル画像が1以上の送信先デバイスの特別な組に送信されるべきであることを決定するのに用いられたりする。
【0014】
一つのアプローチでは、ネットワークを介してソースデバイスから送信されるデジタル画像は送信先デバイスに送られ、その間、送信先デバイスはスライドショーを実演している。送信先デバイスがそのスライドショーを中断することなく実演しながら、デジタル画像がスライドショーに追加される。
【0015】
システムの概観
図1は、本発明の実施例に従い、ファイルが1つのコンピュータデバイスから他の1以上のコンピュータデバイスへ発生するように生じさせる例示的なシステムを示したブロック図である。図1は、ソースデバイス110、ネットワーク120、転送サーバ130、サードパーティ記憶サービス140、送信先デバイス150A−Cを描画している。これに関連する実施例の場合、サードパーティ記憶サービス140は存在しない。そのかわり、転送サーバ130がサードパーティ記憶サービス140(本明細書は記載される)の機能を実行する。
【0016】
ソースデバイス110及び送信先デバイス150A−Cは、ネットワーク120を介して転送サーバ130と通信することができるコンピュータ装置である。ソースデバイス110及び送信先デバイス150A−Cの非限定的な例として、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、PDA、及び他の携帯型電子端末を含む。また、本発明の実施例は、ソースデバイス110と転送サーバ130との間、並びに、転送サーバ130と送信先デバイス150A−Cとの間のデータ及びメッセージを伝達するために用いられる特定の通信プロトコルに限定されるものではない。図1に示すエンティティによって用いられ得る通信プロトコルの非制限的な例として、ハイパーテキスト転送プロトコル(HTTP)がある。
【0017】
簡略さのため、1つのソースデバイスだけ、そして3つの送信先デバイスだけを図1に示す。しかしながら、ソースデバイス110がネットワーク120を介して送信し、サードパーティ記憶サービス140により(又は転送サーバ130により)記憶されるファイルコピーを各々受信する送信先デバイスは、これよりもさらに多く又はさらに少なく(少なくとも1つ)存在し得る。また、転送サーバ130は、多くのソースデバイスをサポートするよう構成され、その各々は異なる組の送信先デバイスに関連する。
【0018】
一実施例において、仮に、ソースデバイス(例えば、ソースデバイス110)はどの送信先デバイスに関連していなくとも、サードパーティ記憶サービス140(又は転送サーバ130)により記憶されるファイルをネットワーク120を介して送信する。例えば、ソースデバイスから送信されたファイルを受信するどの送信先デバイスも登録されていなかったり、ソースデバイスが送信するファイルを受け取る機器としての送信先デバイスを、ソースデバイスが(例えば、転送サーバ130と共に)登録していなかったりする。しかしながら、ソースデバイスにより送信される1以上のファイルがサードパーティ記憶サービス140により(又は転送サーバ130により)記憶された後、送信先デバイスはソースデバイスからのファイルを受信するために登録されるようになる。その後、転送サーバ130により、サードパーティ記憶サービス140又は転送サーバ130により記憶される1以上のファイルが送信先デバイスに送られることになる。この場合、1以上のファイルは、ソースデバイスがそれらのファイルを送信するときに送信先デバイスがその受信のために登録されることを要求することなく、“クラウド(the cloud)の中に蓄積される。
【0019】
ソースデバイス110はネットワーク120を介してメッセージを送信するよう構成される。メッセージの少なくとも幾つかはファイルを含む。メッセージの幾つかは、転送サーバ130によって受信され、1以上のファイルがソースデバイス110からアップロード(又は送信)されることの通知を含むことができる。ファイルは任意のタイプのものであってよい。ファイルタイプの非制限的な例として、実行ファイル、ワード処理ファイル、テキストファイル、音楽ファイル、ビデオファイルを含む。さらに各ファイルタイプの各ファイルは、多くの異なるタイプフォーマットの一つで構成され得る。例えば、画像ファイルのフォーマットとして、JPEG、TIFF、RAW、PNG、GIF、BMP、及びWebPを含む。
【0020】
送信先デバイス150A−Cは、ソースデバイス110から送信されたファイルを受信し且つ記憶するよう構成される。一実施例において、送信先デバイス150A−Cは、様々なタイプのファイルを消費するためのソフトウェアを有する。例えば、ファイルが画像ファイルの場合、送信先デバイス150A−Cは表示スクリーン上で対応する画像を表示することのできるソフトウェアを有する。また、ファイルがビデオファイルの場合、送信先デバイス150A−Cは対応するビデオを再生するソフトウェアを有する。
【0021】
ソースデバイスからのメッセージ送信
本発明の一実施例に従い、ソースデバイス110は、或るイベントが発生したことの検出に応じて、ネットワーク120上でメッセージを自動的に送信するよう構成される。デバイスがアクションを遂行する能力があるソフトウェアを実行する場合、そのアクションを遂行するように“構成(configured)される”と言われる。ソースデバイス110によりメッセージを転送サーバ130に自動的に送信させるようにするイベントは、メッセージ・トリガーイベントとしてここでは称する。
【0022】
特定のメッセージ・トリガーイベントがあらゆるインプリメンテーションを変化させ得る。例えば、一実施例において、ソースデバイス110上でデジタル画像を新たに生成することはメッセージ・トリガーイベントである。そのような実施例において、新たなデジタル画像がソースデバイス110に存在することを検出すると、ソースデバイス110はメッセージを転送サーバ130に送信するよう構成される。例えば、ソースデバイス110に組み込まれているカメラが写真を撮ったことを検出することによって、新たな画像が検出される。
【0023】
別の一実施例においては、ソースデバイス110で新たなファイルが生成された後、或るタイプのコネクションを確立することがメッセージ・トリガーイベントとなる。例えば、ソースデバイス110がEdgeコネクション、3Gコネクション、及びWi-Fiコネクションを用いてインターネット上で通信可能なモバイルフォンであると仮定する。このような実施例において、1以上の新たな画像がソースデバイス110で作り出された後に、インターネットによりWi-Fiコネクションを確立することは、Wi-Fiコネクションを介してメッセージを転送サーバ130に送信するようソースデバイスを自動的にトリガーすることである。例えば、そのメッセージは、1以上の新たなファイルがアップロードされること、送信先デバイス150A−Cに再送信されることを教示することができる。
【0024】
ソースデバイス110から転送サーバ130へメッセージを自動的に送信されるようにするメッセージ・トリガーイベントの非限定的な一覧を以下に示す。
・ソースデバイス110が転送サーバ130へのコネクションを有しながら、特定のファイルタイプをもつ新たなファイルがソースデバイス110上で生成されること;
・ソースデバイス110が転送サーバ130へのコネクションを有しながら、特定のタイプのファイルがソースデバイス110上で特定のディレクトリに移動されること;
・ソースデバイス110が転送サーバ130へのコネクションを有しながら、特定のタイプのファイルがソースデバイス110上で特定のタグ(tag)でタグ付けされること;
・ソースデバイス110が転送サーバ130へのコネクションを有しながら、新たな送信先デバイスが指定されること;
・ソースデバイス110が転送サーバ130に対して第1のタイプのコネクションを有しながら、第2のタイプのコネクションがソースデバイス110と転送サーバ130との間で確立されること;
・ソースデバイス110が転送サーバ130とのコネクションを解除した後、任意のタイプのコネクションがソースデバイス110と転送サーバ130との間で確立されること。
【0025】
なお、これらは、ファイルのテンポラリーコピーがソースデバイス110から記憶サービス140へ自動的に転送されるようにする処理を開始するのに用いられる様々なメッセージ・トリガーイベントの幾つかの例示にすぎない。
【0026】
送信先デバイスへの通知
本発明の一実施例に従い、ファイルが送信先デバイス150A−Cに向けて宛先指定されたことを、転送サーバ130により送信先デバイス150A−Cに通知する。上述したように、そのような通知は、仲介の記憶装置にファイルを送信することに比べて、非同期的に発生する。例えば、送信先デバイスが転送サーバとのコネクションを確立したことを検出する転送サーバ130に応じて前記通知が発生し、それはファイルコピーがソースデバイス110から仲介デバイスに送信された後のある時に発生する。仲介デバイスがファイルのテンポラリーコピーを記憶する実施例の場合、この通知は、ソースデバイス110自体がオフラインの期間中であっても発生する。
【0027】
転送サーバ130からの通知は、ファイル自体を含むことができる。或いはまた、通知はファイルが記憶される場所を教示する記憶ロケーションデータを含む。通知を受信することに応じて、各送信先デバイス150A−Cは、記憶ロケーションデータ又はファイルを識別するデータを含むリクエストを、適切な記憶サービス(例えば、サードパーティ記憶サービス140)へ送信する。サードパーティ記憶サービス140は、(リクエスト内の)記憶ロケーションデータ又はファイル識別子を使用して、ファイルを探し出し、そしてリクエストを送信した送信先デバイスにファイルを送る。その結果、送信先デバイスのユーザは、ソースデバイスからファイルを受信するために(その送信先デバイスをパワーオンさせる以外の)どのようなアクションも実行することが要求されない。
【0028】
暗号化
一実施例において、再送信に関するソースデバイス110から送信先デバイスへ送られるファイルは、サードパーティ記憶サービス140で記憶される前に暗号化される、この暗号は、ソースデバイス110又は転送サーバ130により実行され得る。ファイルを暗号化する任意の技術が用いられる。また、暗号化及び復号化を実行するのに任意の鍵(キー)が用いられる。1以上のファイルを暗号化するための非制限的な暗号キーの例として、ソースデバイス110に関するデータ、ソースデバイス110のユーザに関するデータ、又はユーザパスワードに関するデータを含む。
【0029】
1以上の暗号ファイルを復号するために、送信先デバイス150A−C(又は転送サーバ130)は暗号キーへのアクセスを必要とするだろう。その結果、一実施例において、送信先デバイスがサードパーティ記憶サービス140から暗号ファイルを受信したとき、転送サーバ130は暗号キーを送信先デバイス150A−Cに送信する。或いはまた、送信先デバイス150A−Cは、1以上のファイルを暗号化する前に送信先デバイス150A−Cに記憶されている暗号キーに対するアクセスを既に有している。いずれの場合であっても、サードパーティ記憶サービス140で暗号ファイルを記憶しながら、記憶サービス140によって、若しくは暗号ファイルに対する未承認のアクセスをし得る別のエンティティによって、サードパーティ記憶サービス140によりその暗号ファイルが記憶されている間は、その暗号ファイルを復号化することができない。
【0030】
ネットワーク
転送サーバ130と、ソースデバイス110、サードパーティ記憶サービス140及び送信先デバイス150A−Cとの間の通信は、ネットワーク120を介して可能となる。様々なコンピュータデバイス間でデータ交換を可能にする任意の記憶媒体又はメカニズムによってネットワーク120は具体化される。そのようなネットワークの例として、これに限定するものではないが、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イーサネット(R)若しくはインターネット、又は1以上の地上波や衛星や無線リンクを含む。ネットワークとして、これらの組み合わせも含む。ネットワークは、通信制御プロトコル(TCP)、ユーザ・データグラム・プロトコル(UDP)及び/又はインターネットプロトコル(IP)に従いデータを送信する。
【0031】
転送サーバ及びサードパーティ記憶サービス
転送サーバ130は、ソースデバイス110から送信されたファイルが(ソースデバイス110及び送信先デバイス150A−Cと比べて)遠隔に記憶され、そして最終的にはこれを1以上の送信先デバイス150A−Cに送信することを保証するという役割がある。言い換えると、(サードパーティ記憶サービス140に接続する)転送サーバ130はリモートキャッシュとして機能し、ファイルはソースデバイス110から転送サーバ130に転送され、且つ、転送サーバ130から送信先デバイス150A−Cに転送される。最後に、転送サーバ130は図2に示す或るタイプのデータを保持する。
【0032】
転送サーバ130は、1以上のファイルがソースデバイス110から送信されるという通知をソースデバイス110から受け取るように構成される。このような通知があると、転送サーバ130は、1以上のファイルがどこに送信されるかを教示する記憶ロケーションデータをソースデバイス110に送信する。記憶ロケーションデータはサードパーティ記憶サービス140に関連するデータであり得る。ソースデバイス110は記憶ロケーションデータを用いて、この1以上のファイルをサードパーティ記憶サービス140に送信する。
【0033】
例えば、転送サーバ130からソースデバイス110へ送信される記憶ロケーションデータは、URL(Uniform Resource Locator)を含むことができる。URLは、転送サーバ130によって生成される1以上の値を含み、それはソースデバイス110から送信される1以上のファイルに関連する。この1以上の値はファイル識別子を含み、ソースデバイス110(及び/又は他のソースデバイス)がサードパーティ記憶サーバ140に送信する他のすべてのファイルから1以上のファイルを一義的に識別する。これらの値は1以上のファイルに関連するサードパーティ記憶サービス140によって記憶される。後に、サードパーティ記憶サービス140は、送信先デバイス150A−Cの一つから、1以上の値を含むリクエストを受け取る。サードパーティ記憶サービス140は、この1以上の値を用いて、対応する1以上のファイルを識別し、サードパーティ記憶サービス140はそれを送信先デバイスに送信する。
【0034】
サードパーティ記憶サービス
サードパーティ記憶サービス140は、ソースデバイス110(及び図1に描画していない他のソースデバイス)から送られるファイルの記憶を提供するため、転送サーバ130を操作するエンティティが連絡をとりあう記憶サービスである。したがって、転送サーバ130により、ソースデバイス110から送信されたファイルや、それらのファイルをどこに送信(すなわち、転送)されるかに関する情報が管理される一方で、サードパーティ記憶サービス140はファイルを単に記憶するだけである。サードパーティ記憶サービス140により管理された固定記憶装置内のロケーションをファイルの識別子に関連づけるデータをサードパーティ記憶サービス140は記憶する。そして、サードパーティ記憶サービス140があるファイルに関する識別子を含むリクエストを受け取るとき、サードパーティ記憶サービス140は記憶装置からそのファイルを読出し、ファイルを要求装置(すなわち、送信先デバイス150A-Cの一つ)に送信する。
【0035】
サードパーティ記憶サービス140がシステムの一部ではない一実施例において、ソースデバイス110はファイルを転送サーバ130に送る。転送サーバ130はファイルを記憶する役割がある。したがって、この実施例の場合、転送サーバ130が記憶ロケーションデータを生成しソースデバイス110或いは送信先デバイス150A−Cのいずれかに送信する必要はない。
【0036】
デバイス関連データ
図2に従い、転送サーバ130はデバイス関連データ210、送信先デバイス選択基準220、及びファイル読出しデータ230を記憶する。デバイス関連データ210はソースデバイス110を送信先デバイス150A−Cに関連づける。デバイス関連データ210は事前ソースデバイス基準で論理的に体系化されることができる。例えば、デバイス関連データ210は(例えば、テーブル内の)エントリの組を含み、そこでは各エントリはソースデバイスを1以上の送信先デバイスに関連づける。各エントリは、2つのフィールド、すなわちソースデバイスフィールド及び送信先デバイスフィールドを含む。適切なエントリに対して比較的早いアクセスができるようにするため、ソースデバイスフィールドに基づいてインデックスが作られるようにしてもよい。
【0037】
2つのデバイス間の関連は、一方向若しくは双方向である。一方向関連の場合、第1のデバイスで作られる或るファイルは自動的に第2のデバイスに転送されるが、第2のデバイスで作られる同じタイプのフィールドは第1のデバイスに自動的に転送されない。双方向関連の場合、第1のデバイスで作られるファイルは第2のデバイスへ、第2のデバイスで作られるファイルは第1のデバイスへ転送される。なお、単一のソースデバイスは幾つかのデバイスとの一方向関連、及び他のデバイスとの双方向関連を有する。
【0038】
一実施例において、デバイス関連データ210内の各エントリは単純に複数のデバイスをあらわす。その結果、適切なソースデバイスに関する識別子を識別するために、各エントリをチェックする必要はない。ソースデバイスの識別子が見つけ出されると、エントリ内の他のデバイス識別子は対応する送信先デバイスを識別するために用いられる。
【0039】
デバイス関連データ210は、ソースデバイス110、又はユーザが異なれば送信先デバイス150A−Cの一つのユーザによって確立される。ユーザは、ソースデバイス110又は送信先デバイス150A−C(又は別のデバイス)の一つを操作してデバイス関連データ210を確立し、そしてデバイスがデバイス関連データ210を転送サーバ130に送信されることをもたらす。デバイス関連データ210は、任意のデバイスからのユーザ入力に基づきいつでも更新され得る。
【0040】
或いはまた、ソースデバイス110及び送信先デバイス150A−Cが同じユーザで若しくはオンラインアカウントで登録されているすべてのデバイスであるということを転送サーバ130が検出するとき、デバイス関連データ210は転送サーバ130によって確立される。その結果、ユーザがデバイスを購入した後、ユーザはそのデバイスを転送サーバ130又は転送サーバ130に関連する別のエンティティで登録する。同一ユーザが複数のデバイスを登録していたこと(又は複数のデバイスが同じアカウントで登録され、そのアカウントが複数のユーザに関連していること)が判明したら、転送サーバ130はすべての登録デバイスを互いに関連づけるデータを記憶する。
【0041】
その結果、ソースデバイスのユーザは、転送サーバ130に送信される各ファイルに関し、ファイルを受信するのがどの送信先デバイスであるかを指定する必要がない。その代わり、転送サーバ130により、どの送信先デバイスがファイルを受信するかを(例えば、以前にユーザから提供された情報)に基づき決定し、そしてファイルが適切な送信先デバイスに送信されることを保証するように構成されている。
【0042】
遅れて来た送信先デバイス
上述したように、ファイルはソースデバイス110から、当該ソースデバイス110に関連する送信先デバイス150A−Cへと自動的に転送される。この方法で、ファイルがソースデバイス110から送信先デバイス150A−Cへと転送された後、ソースデバイス110に関連する送信先デバイスに対して追加的な送信先デバイスを追加することが可能である。
【0043】
この状況は、例えば、ソースデバイス110及び送信先デバイス150A−Cにすでに関連しているアカウントでユーザが別のコンピュータデバイスを購入し登録するときに生じる。したがって、新たに登録されたデバイスは、すべてのファイルがソースデバイス110及び送信先デバイス150A−Cの何れか一つから今までにアップロードされた全てのファイル、又は或る一定期間(例えば、最後の30日)アップロードされたすべてのファイルを受信することができる。
【0044】
この状況は、ユーザがソーシャルネットワーク内で新たな“友人(friend)”を追加し、その友人がソースデバイス110の所有者から転送されたファイルを受信することを望むことを指定していたときにも生じる。これらの状況下では、転送サーバ130はソースデバイス110により転送されていたすべてのファイル、又は特定の一定期間内に転送サーバ130により転送されていたすべてのファイルを新たな友人のデバイスに転送することができる。
【0045】
送信先デバイス選択基準
一実施例において、デバイス関連データ210は、所与のソースデバイスに関し、複数の異なる送信先デバイスの組を指し示す。例えば、デバイス関連データ210は、(1)ソースデバイス110がすべての画像ファイルのための送信先デバイス150A−Cに関連づけられていること、(2)ソースデバイス110が他のタイプのファイルすべてのための送信先デバイス150A及び150B(送信先デバイス150Cではない)に関連づけられていること、を示す。送信先デバイスの適切な組を識別するために、転送サーバ130は送信先デバイス選択基準(又は単なる“選択基準220”)を用いる。選択基準220の非制限的な例として、以下のものを含む。
・時間(例えば、ソースデバイス110が転送サーバ130にファイルを通知する時、又はファイルが作られる時など)、
・ファイルのタイプ、
・ファイルの著作者又はクリエータ、
・ファイルのコンテンツ(内容)、
・他のデータ(例えば、ソースデバイス110から送信され、且つ、(a)ファイル若しくは(b)ファイル通知に関するソースデバイス110からの送信に関連する、明示的な示唆。
【0046】
明示的な示唆の一例は、ソースデバイス110からの送信に含まれるデバイス識別データであり、そのデバイス識別データは送信先デバイス150A及び150C(送信先デバイス150Bではない)を(直接的又は間接的のいずれかで)識別する。
【0047】
したがって、特定のファイルは送信先デバイスのどの組に転送されるべきかを指示するために、当該特定のファイルの時間、タイプ、著作者、又はコンテンツが用いられる。更なる例として、午後10時以降で午前5時前にソースデバイス110から送信された任意のファイルは送信先デバイス150A及び150Bに送信される一方で、ジョージ スミスによって創られたファイルが送信先デバイス150Aに送信されるというようなものがある。
【0048】
選択基準220は、デバイス関連データ210の一部として記憶されてもよいし、されなくてもよい。例えば、選択基準220はデバイス関連データ210内の各エントリに関する別のフィールドに記憶されることができる。別の例としては、選択基準220はデバイス関連データ210内の各エントリのソースデバイスフィールドに記憶されることができる。したがって、複数のエントリがソースデバイス110のために存在しながら、各エントリは異なる選択基準の組を含むことができる。
【0049】
デバイス関連データ210と同様に、選択基準220はソースデバイス110又は送信先デバイス150A−C(若しくは他のデバイス)の何れかを操作するユーザによって確立されることができる。
【0050】
未処理ファイル
サードパーティ記憶サービス140によって(又は転送サーバ130によって)記憶され、且つ各送信先デバイスのすべてに未だ送信されていないファイルは、送信先デバイスに未だ転送されていないことに関して、本明細書では“未処理ファイル”と称される。例えば、ファイルA及びファイルBがサードパーティ記憶サービス140に記憶され、送信先デバイス150Aがサードパーティ記憶サービス140からファイルA及びファイルBを読出し、送信先デバイス150Bがサードパーティ記憶サービス140からファイルA(ファイルBではない)を読出し、送信先デバイス150Cがサードパーティ記憶サービス140からファイルA、ファイルBのいずれも未だ読出していない。このとき、ファイルAは送信先デバイス150Cに関して“未処理ファイル”とされ、ファイルBは送信先デバイス150B及び150Cに関して“未処理ファイル”とされる。
【0051】
送信先デバイスが、或る一定期間、未処理ファイルを通知されなかったことの理由の一つとして、送信先デバイスが転送サーバ130と所定のタイプのコネクションを有していないことを挙げることができる。したがって、転送サーバ130が送信先デバイスに、その送信先デバイスに関する1以上の未処理ファイルを通知する方法が(少なくとも当該一定期間の間)ない。転送サーバ130と送信先デバイスとの間でコネクションが再確立されると、送信先デバイスと比べて遠隔で記憶されその送信先デバイスに向けて宛先指示される1以上のファイルを見つけ出すために、転送サーバ130は送信先デバイスに対し、送信先デバイスが転送サーバ130にクエリーすべきである通知を送信するよう構成されている。
【0052】
ファイル読出しデータ
未処理ファイルが適切な送信先デバイスに送信されることを保証するため、転送サーバ130は図2に示すファイル読出しデータ230内に未処理ファイルについてのデータを保持する。ファイル読出しデータ230は1以上の未処理ファイルを1以上の送信先デバイスに関連づける。ファイル読出しデータ230は送信先デバイス基準ごとの情報を含むことができる。例えば、ファイル読出しデータ230は送信先デバイス150AをファイルA及びBに関連づけるエントリを含んでいたとしよう。ファイル読出しデータ230内にそのエントリが存在することは、送信先デバイス150AがファイルA及びBに未だ通知(又はファイルA及びBを読出し)していないことを意味する。別の例として、ファイル読出しデータ230は送信先デバイス150BをファイルA及びCに関連づける別のエントリを含んでいたとしよう。ファイル読出しデータ230内にそのエントリが存在することは、送信先デバイス150BがファイルA及びCに未だ通知(又はファイルA及びCを読出し)していないことを意味する。
【0053】
転送サーバ130が、(1)ソースデバイス110が特定のファイルを記憶している知らせをソースデバイス110から受信すること、及び(2)(例えば、デバイス関連データ210を用いて)その特定のファイルを受信することになる1以上の送信先デバイスを識別することに応じて、転送サーバ130はファイル読出しデータ230に新たなエントリ(又はレコード)を生成することができる。1以上の未処理ファイルを1以上の送信先デバイスに関連づけることに加え、転送サーバ130はファイル記憶ロケーションデータを1以上の未処理ファイルに関連づけることも行うことができる。転送サーバ130が1以上の未処理ファイルについての1以上の送信先デバイスを通知するとき、その通知はファイル記憶ロケーションデータを含み、サードパーティ記憶サービス140を識別する。上記通知は、サードパーティ記憶サービス140に関連し、且つ、サードパーティ記憶サービス140が1以上のファイルを識別するのに用いるファイル識別データを有するURLを含むことができる。このアプローチの場合、サードパーティ記憶サービス140はファイルID−記憶ロケーション間マッピングを保持する。サードパーティ記憶サービス140は、適切なマッピングを識別するためにファイル識別データを用い、対応するロケーションから1以上のファイルを読出し、そして要求する送信先デバイスにその1以上のファイルを送信する。
【0054】
追加的又は代替的に、ファイル読出しデータ230はソース基準ごとの情報を含むことができる。例えば、各ソースデバイスは、2つの欄(ファイル識別欄とタイムスタンプ欄)を有する“ソース”テーブルに関連づけられる。転送サーバ130はソースデバイスから受信した各ファイルに関するソーステーブルに行を追加する。転送サーバ130は、受信したファイルの識別子を指し示す行と、ファイルが受信されたタイムスタンプを更新する。送信先デバイスにより、1以上のファイルについての情報に関するリクエストが転送サーバ130に送信されるとき、転送サーバ130はどのソースデバイスが送信先デバイスに関連しているかを決定し、そして“最後に閲覧された”タイムスタンプに関するリクエストを解析する。最後に閲覧されたタイムスタンプは、最後に閲覧されたタイムスタンプより後のタイムスタンプに関連する各ファイルをソーステーブル内で識別するために用いられる。
【0055】
ファイル読出しデータ230がソース基準ごとの情報を含む実施例の場合、転送サーバ130は送信先デバイスを可能性のあるあらゆるソースデバイスに関連づける送信先−ソース間マッピングを保持することができる。送信先−ソース間マッピングは、特定の送信先デバイスに関し、どのファイルが当該特定の送信先デバイスに送信されるべきであるかを決定するためにどのソーステーブルが解析されるべきであるかを判断する上で使用される。
【0056】
また、ソーステーブルは、対応のファイルがサードパーティ記憶サービス140から削除されることになる時、又は少なくとも、対応のファイルを未だ受信していない送信先デバイスがその対応するファイルをもはや受信することができない時を示す期限切れ欄を含むことができる。期限切れ欄の入力によって示される日時が現在の日時に一致するとき、ソーステーブルは更新され、対応する行をソーステーブルから移動したり削除したりする。
【0057】
あるシナリオでは、幾つかの状況(他の状況ではない)において、送信先デバイスがソースデバイス110からファイルを受信するように予約することができる。例えば、送信先デバイス150Bは、ソースデバイス110からすべての画像ファイル(どんな非画像ファイルでもない)を受信するとしよう。ソースデバイス110が転送サーバ130に非画像ファイルを通知するとき、転送サーバ130は送信先デバイス150Bがその非画像ファイルを受信しないことを保証する必要はない。したがって、一実施例において、ソーステーブルは、ソースデバイス110からのファイルを受信するかもしれない各送信先デバイスに対して“受信すべき”欄を含むことができる。この“受信すべき”欄は、送信先デバイスが対応のファイルを受信すべきであるか否かを指し示すものである。これにより、送信先デバイスが1以上のファイルについての情報をリクエストするとき、転送サーバ130は、どのソースデバイスが送信先デバイスに関連するかを決定し、そして送信先デバイスが対応のファイルを受信すべきであるか否かを判断するために“受信すべき”欄を分析する。送信先デバイスの“最後に閲覧された”タイムスタンプが対応のファイルのタイムスタンプより前の日時であり、且つ送信先デバイスは対応のファイルを受信すべきであることを“受信すべき”欄が指し示している場合であれば、転送サーバ130は対応のファイルについての情報を送信先デバイスに送信する。
【0058】
転送処理
図3A−Bは、本発明の一実施例に従い、転送サーバ130を用いてソースデバイス110から送信先デバイス150A−Cへファイルを転送する処理300を示している。
【0059】
ステップ305で、ソースデバイス110は特定のファイルを記憶する。ソースデバイス110はその特定のファイルを作成していたかもしれない。或いはまた、ソースデバイス110はその特定のファイルを他のデバイス(例えば、カメラ、別のコンピュータデバイス、スマートフォン、ラップトップ又はタブレットなど)から受信してもよい。さらに別の実施例として、ソースデバイス110上の或るロケーションから別のロケーションへ特定のファイルをユーザが移動させることによって、又は特定のファイルに特定のタグでタグ付けすることによって、ステップ305を引き起こすようにしてもよい。
【0060】
ステップ310で、ソースデバイス110は1以上の他のデバイスに自動的に転送されるファイルを有しているという知らせ(indication)を、ソースデバイス110はネットワーク120を介して転送サーバ130へ送信する。この知らせは、メッセージ・トリガー・イベントを検出すると送信されるものであるが、メッセージ・トリガー・イベントの直後には生じないかもしれない。例えば、メッセージ・トリガー・イベントが発生するときにソースデバイス110がオフラインであれば、ステップ310はソースデバイス110がネットワーク120に接続する次の時に当該知らせが生じることができる。
【0061】
或る一実施例では、ステップ310においてソースデバイス110によって送信される知らせは特定のファイルを含む。しかしながら、処理300の以下の記載は、ソースデバイス110から特定のファイルが送信されない実施例であり、その代わりに、ソースデバイス110からサードパーティ記憶サービス140へ特定のファイルが送信される。
【0062】
ステップ310で送られる知らせは、特定のファイルを識別する識別データを含むことができる。或いはまた、転送サーバ130はその特定のファイルの識別子を生成する。特定ファイルの識別子は1以上の基準に基づくことができ、具体的には例えば、特定ファイルの名前、ソースデバイス110の識別(名前など)、特定ファイルが生成された日時、及び/又は転送サーバ130で知らせが受信された日時などである。特定ファイルの識別は、ソースデバイス110から送信されるすべてのファイルの中で、又はどの転送サーバ130がすべてのソースデバイスから通知されるかに関するあらゆるファイルの中で唯一な値を示す。
【0063】
ソースデバイス110における特定ファイルの生成(又は記憶)は、ステップ310の実行のトリガーとなる。例えば、ユーザがカメラを備えたスマートフォンを用いてデジタル画像を撮るとする。このスマートフォンで実行されるソフトウェアは、デジタル画像が生成されたことを検出し、そして実行されるべきステップ310を生じさせる。
【0064】
ステップ310の実行をもたらす可能性としてあり得る別のトリガーは、ソースデバイス110と転送サーバ130との間のコネクション確立である。例えば、ソースデバイス110は、スマートフォンで写真を撮るときにWi-Fi信号のエリアに入っていないスマートフォンを利用できるようにするWi-Fiである。スマートフォンがWi-Fi信号のエリアにあり、コネクションがWi-Fi能力を使用してメッセージを送るのに十分な強さであるとき、スマートフォンで実行される処理はステップ310を開始する。同様な例として、ステップ310を実行する前にセル式電話ネットワークからの信号範囲に入るまでスマートフォンは待つことができる。
【0065】
ステップ310の実行をもたらす可能性としてあり得る別のトリガーは、ソースデバイス110上の特定のフォルダ、ライブラリー、又は記憶ロケーションにファイルを記憶することである。ソースデバイス110のユーザは、ソースデバイス110に関連する他のデバイス(例えば、送信先デバイス150A−C)の特定フォルダに記憶される全てのファイルを共有するように指定したとしよう。ファイルがそのファイルに記憶されると、ソースデバイス110はファイルの通知を転送サーバ130に送信する。
【0066】
ステップ315で、転送サーバ130は、ソースデバイス110が特定のファイルをどこへ送信すべきであるかを示すファイルロケーションデータをソースデバイス110に送る。ファイルロケーションデータはURL(Uniform Resource Locator)であってもよく、サードパーティ記憶サービス140により保持される記憶媒体内の記憶場所を特定ファイルに関連づけるために用いるデータを含む。その後、サードパーティ記憶サービス140が例えば送信先デバイス150Bから特定ファイルを識別するデータを含むリクエストを受信するとき、サードパーティ記憶サービス140はそのデータを使って記憶媒体内で特定ファイルを識別し、その特定ファイルを送信先デバイス150Bに転送する。
【0067】
ステップ320で、ソースデバイス110は、特定ファイルを、ファイルロケーションデータ内で識別されたロケーションへ送信する。例えば、転送サーバ130からのファイルロケーションデータがURLを含む場合、ソースデバイス110は、URL、特定ファイル、その特定ファイルを識別する識別データを含むHTTP POSTリクエストを送信する。
【0068】
ステップ325で、サードパーティ記憶サービス140は、特定ファイルを記憶し、そして(1)特定ファイルを識別する(ステップ320で送信されるような)識別データを、(2)サードパーティ記憶サービス140によって保持される固定記憶媒体内のロケーションに一致させるマッピングを管理(維持)する。
【0069】
ステップ330で、転送サーバ130はどの送信先デバイスが特定ファイルを通知されるべきであるかを決定する。ソースデバイス110が複数の送信先デバイスに関連づけられている場合、転送サーバ130はソースデバイス110に関連する選択基準220を分析し、デバイス関連データ210において指示された1以上の送信先デバイスの適当な組を決定する。
【0070】
ステップ335で、転送サーバ130は、どのファイルがどの送信先デバイスに行く必要があるかを指し示すデータを記憶する。このステップは、ステップ330で識別された各送信先デバイスに関連するファイル読出しデータを更新することによって実行され、これにより、ステップ310で識別した特定のファイルをその送信先デバイスが未だ受信していない(又は通知されていない)ことが反映されることになる。例えば、転送サーバ130により、特定ファイルが通知されることになる送信先デバイス150A−Cが決定されると、送信先デバイスがその特定ファイルの通知を未だされていないことを示すために、転送サーバ130は各送信先デバイス150A−Cに関連するファイル読出しデータを更新(又はそのファイル内に新たなエントリを作成)する。1以上の送信先デバイス150A−Cのそれぞれに関し新たなエントリが既にファイル読出しデータに230存在する場合、そのエントリは特定ファイルについてのデータ(例えば、その特定ファイルを一義的に識別する識別子など)を含むように更新することができる。
【0071】
ステップ340で、転送サーバ130はステップ330で識別した各送信先デバイスへ、1以上のファイルが送信先デバイスによる読出しのために用意が整っているという通知を送信する。例えば、送信先デバイス150A−Cがステップ330で識別された場合、各送信先デバイス150A−Cは上記通知を受信する。その通知は、ファイル名やタイプやファイルのソースなど、読出すにあたりファイルの詳細に関する情報を含んでいてもよいし、含んでいなくてもよい。通知が読出されるファイルについてのデータを含む場合、その通知はどこに1以上のファイルが位置付けられるかを示すファイルロケーションデータを含むことができる。通知は、サードパーティ記憶サービス140に対して、読出されることになる特定ファイルを識別するデータを含むURLを有することができる。そのデータは、サードパーティ記憶サービス140によって記憶される他のファイルのうりその特定ファイルを一義的に識別する1以上の値を含む。
【0072】
ステップ340における通知は、転送サーバ130と送信先デバイスとの間に或るタイプのコネクションが確立されたことが決定された後にのみ、送信先デバイスへ送信されるようにすることができる。例えば、転送サーバ130と送信先デバイス150Bとの間にコネクションがない場合、転送サーバ130は、通知を送信先デバイス150Bに送信する前に、送信先デバイス150Bとのコネクションが再確立するまで待つ。送信先デバイス150Nと転送サーバ130との間にコネクションがない間、転送サーバ130は、送信先デバイス150Bへ送信されるはずのファイルについてソースデバイス110(及び/又は他のソースデバイス)から膨大な通知を受信するであろう。これらの通知に応じて、転送サーバ130は、送信先デバイス150Bに向けて宛先指示されるそれらファイルを反映するために、送信先デバイス150Bに関連するファイル読出しデータを更新する。例えば、転送サーバ130は、1以上のファイルをそれぞれに識別する膨大なエントリを生成し、そしてそれらエントリを送信先デバイス150Bに関連づける。他の例として、転送サーバ130は、それらファイルのすべてを識別するデータを、ファイル読出しデータ230内の単一エントリに追加する。
【0073】
特定の送信先デバイスに通知が送信されるか否かの決定の際の他の要因として、転送サーバ130上の作業負荷がある。例えば、転送サーバ130は、ソースデバイスからの知らせ/通知を処理すたり、他の送信先デバイスとの通信に忙しい。いつ特定の送信先デバイスに知らせるかを決めるにあたり、コネクション・バンド幅、最新の作業負荷、及び/又は他の要因が考慮される。例えば、転送サーバ130の全体のコネクション・バンド幅が所定の閾値以下に入っている場合に、転送サーバ130は通知を特定の送信先デバイスに送信するだろう。
【0074】
追加的に或いは代替的に、送信先デバイスのユーザは、転送サーバ130がいつ転送できるかを指示した1以上のパラメータを確立することができる。例えば、ユーザは、すべての転送通知が一日の或る時間の間(例えば、午前2時と午前5時の間)に生じるように指定することができる。そのとき、ユーザの送信先デバイスの使用量は所定の閾値よりも下(例えば、50%CPU)であるか、若しくは、送信先デバイスが所定の期間(例えば、30分)以上アイドル状態のままである。
【0075】
ステップ345で、ステップ340で送られた通知が、サードパーティ記憶サービス140への特定ファイルを識別するのにどんなデータも使用しない場合、ステップ340で通知された各送信先デバイスは、送信先デバイスへ転送されるファイルの識別に関するリクエストを転送サーバ130に送信する。
【0076】
ステップ350で、ステップ345で受信したリクエストに応じて、転送サーバ130は、リクエストしている送信先デバイスが特定ファイルをどこで読出すことができるかを示すファイルロケーションデータを、リクエストしている送信先デバイスに送信する。ファイルロケーションデータは、特定のファイル及びリクエストしている送信先デバイスに転送される他の任意のファイルを識別するデータを含むことができる。ファイルロケーションデータは、サードパーティ記憶サービス140に関連づけられ(又は識別する)、且つ、リクエストしている送信先デバイスが特定ファイルを読出すのに使用するURLを含むことができる。ステップ350は、適当なエントリ若しくはファイル読出しデータ230内のエントリを探し、そして特定のファイル及びリクエストしている送信先デバイスに送信される他の任意のファイルを識別するデータを特定するために、リクエストしている送信先デバイスの識別を用いる転送サーバ130を含むことができる。
【0077】
ステップ355で、転送サーバ130は送信先デバイスに関連するファイル読出しデータを更新し、その送信先デバイスが(特定のファイルを含む)1以上のファイルの通知がなされたことを示す。この更新は、送信先デバイスに関連するエントリにおいて、1以上のファイルを識別するデータを削除することを含む。本ステップにおけるファイル読出しデータ230の更新は、転送サーバ130により(a)ステップ340における通知、又は(b)ステップ350における識別を送信する転送サーバ130が行われることに応じて実行される。或いはまた、転送サーバ130は、送信先デバイスが(a)ステップ340における通知、又は(b)ステップ350における識別を実際に受信したということを示すデータを、(例えば、送信先デバイスから)受け取ると、送信先デバイスに関連するファイル読出しデータを更新する。或いはまた、転送サーバ130は、送信先デバイスが1以上のファイルを首尾良く受信したということを示すデータを、(例えば、サードパーティ記憶サービス140から又は送信先デバイスから)受け取ると、送信先デバイスに関連するファイル読出しデータを更新する。特定のファイルを未だ受信していない若しくは通知されていない他の任意の送信先デバイスに関連するファイル読出しデータは、少なくともその特定のファイルに関しては未変更のままである。
【0078】
関連する実施例において、転送サーバ130は、送信先デバイスに関する未処理のファイルに関して或るアクションが実行されたかを転送サーバ130が決定するたびごとに、送信先デバイスに関連するファイル読出しデータを更新する。例えば、転送サーバ130はファイル読出しデータ230内にエントリ(又はレコード)を生成し、そのエントリは送信先デバイス150Bに関連する。そのエントリにより、転送サーバ130がファイルAを送信先デバイス150Bに未だ通知していないことが示される。その後、転送サーバ130はエントリを更新して、転送サーバ130がファイルAを送信先デバイス150Bに送信したことを示すようにする。その後、転送サーバ130は送信先デバイス150Bがその通知を受信したことを示すためにエントリを更新する。その後、転送サーバ130は送信先デバイス150BがファイルAに関するリクエストをサードパーティ記憶サービス140に送信したことを示すためにエントリを更新する。その後、転送サーバ130は、サードパーティ記憶サービス140が送信先デバイス150BにファイルAを送信したことを示すためにエントリを更新する。その後、転送サーバ130は、送信先デバイス150BがファイルAを受信したことを示すためにエントリを更新する。その後、転送サーバ130はエントリを削除することができる。
【0079】
ステップ360で、通知を受けた送信先デバイスのそれぞれは、ファイルロケーションデータを用いて、ファイルに関するリクエストを系統立ててサードパーティ記憶サービス140へ送信する。例えば、そのリクエストは、ファイルを識別するためにサードパーティ記憶サービス140によって用いられる識別データを含むURLを有するHTTP GETリクエストである。
【0080】
ステップ365で、サードパーティ記憶サービス140は、送信先デバイスからリクエストを受信することに応じて、リクエスト内で示された1以上のファイル(特定ファイルを含む)を識別し、そしてその1以上のファイルを送信先デバイスに送信する。
【0081】
ステップ370で、特定ファイルを受信する各送信先デバイスは、その特定ファイルを、例えば、当該特定ファイルを処理するよう構成されているアプリケーションにアクセス可能な特別なライブラリの中に記憶する。例えば、特定ファイルがデジタル画像であれば、そのデジタル画像は送信先デバイスにインストールされるフォト管理アプリケーションにアクセス可能な画像ライブラリに記憶することができる。フォト管理アプリケーションは、デジタル画像ライブラリにデジタル画像が記憶されるとき、送信先デバイス上で実行中でもよいし、実行中でなくてもよい。
【0082】
一実施例において、特定ファイルを受信する送信先デバイス上で実行する処理(例えば、特定ファイルを処理するよう構成されるアプリケーション)は、或るファイルが最近送信先デバイスで受信されたかを示すメッセージを送信先デバイスに表示させるようにする。このようなメッセージにより、送信先デバイスのユーザは新たなファイルが送信先デバイスに追加されたかを直ちに知ることができる。メッセージは短い期間(例えば、送信先デバイスのユーザを現在の仕事の大きな邪魔にならないよう2秒程度など)表示される。メッセージは特定ファイルの名称及び/又は特定ファイルの画像を含むことができる。例えば、特定ファイルがデジタル画像の場合、メッセージはデジタル画像のサムネイル画像及びデジタル画像名を含むことができる。他の例としては、特定ファイルがビデオファイルの場合、メッセージはビデオファイルからのフレームのサムネイル画像を含むことができる。また、特定ファイルがPDFファイルの場合、メッセージはPDFファイルからのページのサムネイル画像を含むことができる。
【0083】
一実施例において、サードパーティ記憶サービス140から特定ファイルを受信する送信先デバイスで実行される処理は、特定ファイルを解析して送信先デバイスのどこにその特定ファイルを記憶するかを決定する。この決定は、特定ファイルのタイプ(例えば、画像、ビデオ、テキストなど)に基づくものであってよい。例えば、特定ファイルが画像ファイルの場合、その処理はデジタル画像のライブラリ内に画像ファイルを記憶し、フォト管理アプリケーションはそこにアクセスするよう構成される。特定ファイルがビデオファイルの場合、その処理はビデオファイルに対するライブラリ内にそのビデオファイルを記憶し、フォト管理アプリケーションはそこにアクセスするよう構成される。
【0084】
本発明の実施例は図3に示した正確なステップ又はステップの順序に限定されるものではない。例えば、1以上の送信先デバイス150A−Cが未処理ファイルのために転送サーバ130を規則的にポーリングするよう構成されるのであれば、ステップ340はオプションである。別の例として、ステップ330及び335は、ステップ325の前、又はステップ320の前でも生じうるものである。
【0085】
ファイルの一時的記憶
一実施例において、ソースデバイス110からのファイルは一定の期間、サードパーティ記憶サービス140(又は転送サーバ130)によって記憶され、その後、ファイルは削除される。その結果、1以上の送信先デバイス150A−C(すなわち、それらファイルを受信するものと思われていたデバイス)が未だファイルを受信していないとしても、もはや送信先デバイス150A−Cにアクセスすることができない。言い換えると、一定の期間経過後は、未だファイルを読出ししていない送信先デバイスは、送信先デバイスが適当なリクエストをサードパーティ記憶サービス140(又は転送サーバ130)に送信する場合であっても、そのファイルを読出すことができなくなるであろう。
【0086】
1以上の削除基準に基づき、ファイルごとに一定時間は変えてもよい。例えば、ソースデバイス110からの或るファイルに関する一定期間が30日であるのに対して、(ソースデバイス110又は別のソースデバイスからの)他のファイルに関連する一定期間は10日であるというように。削除基準の非制限的例には、ファイルのタイプ、ファイルの著作者、ファイルのサイズ、画像ファイルの画像内で識別される人々、特定のソースデバイス、及びファイルに関連するデバイス関連データに示されるデバイスなどを含む。例えば、ソースデバイス110から送信される未処理の画像ファイルすべてが30日間の記憶後に削除される。別の例としては、ソースデバイス110から送信される未処理の画像ファイルすべてが削除されない(つまり、画像でないファイルが削除された後では一定期間は存在しないこと)。言い換えると、画像でないファイルは無制限に記憶されるが、画像ファイルは一定期間経過後には送信先デバイスに対してアクセス不可能になるということである。別の例としては、ソースデバイス110から送信される未処理の画像ファイルすべてが20日間後に削除される一方で、別のソースデバイスから送信される未処理の画像ファイルすべては30日間後に削除される。さらに別の例として、送信先デバイス150Aに関する未処理の画像ファイルすべてが20日間後に削除される一方で、送信先デバイス150Bに関する未処理の画像ファイルすべては5日間後に削除される。
【0087】
ファイルがサードパーティ記憶サービス140に記憶されてから一定期間が経過した後に、サードパーティ記憶サービス140はそのファイルを自動的に削除するよう構成することができる。一定期間はサードパーティ記憶サービス140で予め、すなわちサードパーティ記憶サービス140でファイルを受信する前に、設定(プリセット)しておいてもよいし、或いは、例えば、ソースデバイス110の送信に付随したデータにおいて示すように構成してもよい。その結果、ファイルに関連する一定期間は転送サーバ130又はソースデバイス110により確立され、そしてサードパーティ記憶サービス140によって実施される。例えば、転送サーバ130は削除時間データをサードパーティ記憶サービス140に送信し、サードパーティ記憶サービス140はこの削除時間データに基づき特定ファイルをいつ削除するかを決定する。或いはまた、転送サーバ130は、サードパーティ記憶サービス140がファイルを直ちに削除することを示す指令をサードパーティ記憶サービス140に送信する。このような方法の場合、サードパーティ記憶サービス140は、ファイルをいつ削除すべきか(そうでなければ、送信先デバイスに対するアクセスをできないようにする)の追跡を維持しておくことが要求されない。
【0088】
一実施例において、転送サーバ130はサードパーティ記憶サービス140によって記憶される1以上のファイルに関して削除時間データを記憶する。削除時間データは、1以上のファイルのそれぞれについて、そのファイルが送信先デバイスにもはやアクセスできない時間をあらわしている。削除時間データは、送信先デバイス150A−Cに関連するファイル読出しデータ230内に記憶するようにできる。例えば、ファイル読出しデータ230内の各エントリは特定の送信先デバイスに関する未処理ファイルを示す。エントリは、対応するファイルがアクセスできないようにされる(例えば、削除される等)日にち、そしてオプションとして時間である削除時間データを含む。
【0089】
一実施例において、転送サーバ130は、送信先デバイスが(当該送信先デバイスに関する)未処理ファイルを未だ受信していなかったか否かの通知をソースデバイスに送信する。例えば、転送サーバ130はファイル読出しデータ230内の削除時間データを分析し、対応するファイルに関連した一定期間がまさに期限切れ(例えば、1〜2日のうちに)となるかを決定する。もしそうであれば、転送サーバ130はファイルが送信先デバイスによって受信されていなかったことをソースデバイス110(ファイルの発信元)に通知する(ソースデバイスの識別において手助けとなるよう、ファイル読出しデータ230は未処理ファイルに関し、どのソースデバイスが未処理ファイルを送信したかを示すソースデバイスデータを含んでいる)。例えば、ソースデバイス110は、ユーザが送信先デバイスの電源をONしたり、送信先デバイスと転送サーバ130間のコネクション(接続)が確立するようにWi-Fi若しくはセルラー信号の受信エリアに移動する必要があるかを決定する。コネクション(接続)が確立した後で、送信先デバイスはファイルを受信するために、ファイルに関する情報のリクエストを転送サーバ130に送信する。このリクエストは、送信先デバイスの1以上の未処理ファイルに関して転送サーバ130と連絡するために、転送サーバ130からのメッセージに応答して送信される。
【0090】
上述したように、デバイス関連データ210は他の送信先デバイスを示すよう修正され得る。例えば、ソースデバイス110及び送信先デバイス150A−Cを所有するユーザは、別の送信先デバイスを購入し、ユーザのアカウントにその送信先デバイスを登録する。新たな送信先デバイスの登録により、デバイス関連データ210はソースデバイス110、送信先デバイス150A−C、及び新たな送信先デバイスのすべてが互いに関連していることを反映するように更新される。送信先デバイス150A−Cが未処理のファイルについて転送サーバ130が通知していた場合、新たな送信先デバイスはその未処理のファイルが通知される。例えば、未処理ファイルAが30日間送信先デバイス150A−Cによってアクセス可能であり、新たな送信先デバイスがその30日期間に5日の関連を追加した場合、未処理ファイルAは25日間、新たな送信先デバイスによってアクセス可能である。転送サーバ130は、(例えば、デバイス関連データ210が更新後の関連を反映するために更新されるやいなや)新たな送信先デバイスに未処理ファイルAを通知する。
【0091】
ファイルの属性に基づく転送
一実施例において、どの送信先デバイスにファイルを送信するかを決定するために1以上のファイル属性が使用される。ファイル属性の一例は、送信先デバイスの選択基準220である。さらに、他のデバイス選択基準220を用いて特定の組の送信先デバイスを決定しながら、(ファイル内容を含む)1以上のファイル属性を、その特定の組の送信先デバイスの狭義のサブセットを識別するのに用いることができる。
【0092】
ファイル属性の非制限的な例として、ファイルのタイプ、ファイルのサイズ、ファイルがどこで作られたか(例えば、写真を撮ったり/生成した地理的な場所など)、ファイルが特定のデータを含んでいるか否か(例えば、ファイルは、“Geronimo”という語を含むテキストファイル等である)、特定の人若しくは物体の画像がファイル内で検出され認識されたか否か(例えば、検出/認識された場合、そのファイルは画像ファイルである)。
【0093】
例えば、ソースデバイス110から送信されるどんな画像ファイルも送信先デバイス150Aと150Cのみに送信される一方で、ソースデバイス110から送信されるどんなビデオファイルも送信先デバイス150Aへのみ送信される。別の例として、“Grandma Jane”の画像が削除された画像ファイルは送信先デバイス150Bにのみ送信される一方で、他のすべてのファイルは送信先デバイス150A−Cのそれぞれに送信される。
【0094】
別の例として、ソースデバイス110は、Aさんの顔とBさんの顔に関する第1の写真を有しているとしよう。この第1の写真が通知されたことを受けて、転送サーバ130は、第1の写真がAさんのデバイス及びBさんのデバイスに転送されるようにする。その後、ソースデバイス110はBさんの顔及びCさんの顔に関する第2の写真を有するとする。この第2の写真が通知されたことを受けて、転送サーバ130は、第2の写真がBさんのデバイス及びCさんのデバイスに転送されるようにする。
【0095】
一実施例において、多くのソースデバイスが或るファイルを特定の記憶場所に送信されるよう構成することができる。例えば、野球チームの少年の母親のカメラは、特定の野球場で撮った写真を、そのチームのウェブサイトに関連する記憶場所へ自動的に転送するよう構成される。その結果、特定の野球場でそのカメラで撮ったどんな写真もサードパーティ記憶サービス140に転送され、結局はその記憶場所に転送されることになる。この方法では、写真を撮った後にチームのウェブサイトにアクセスするユーザはその写真を閲覧することができる。
【0096】
別の例として、Georgeがパーティを開催し、パーティ会場で大きなディスプレイにスライドショーを進行させているとする。Georgeは、ディスプレイに接続された特定のデバイスの識別についてあらゆるパーティ出席者に通知する。パーティ中、パーティ会場の付近で撮られたすべての写真がその特定デバイスに転送され、パーティで進行されているスライドショーに自動的に追加される。
【0097】
ソースデバイス110から転送サーバ130へ送信される属性データにおいて、1以上の属性がファイル通知の一部として認識されるようにできる(図3のステップ310参照のこと)。例えば、ソースデバイス110から転送サーバ130への通知は、ファイルのタイプ、ファイルのサイズ、及び/又は画像がファイル内で検出された人の識別を教示する。或いはまた、転送サーバ130がファイルを受信する場合、転送サーバ130は1以上のファイル属性を用いて、ファイルが通知される1以上の送信先デバイスの組を決定する。
【0098】
ファイルの転送バージョン
一実施例において、ソースデバイス110は、サードパーティ記憶サービス140(転送サーバ130)へ2つのバージョンのファイルを送信する。例えば、ソースデバイス110からの1つのバージョンの画像ファイルが第1の解像度をもち、別のバージョンの画像ファイルが第1の解像度よりも低い第2の解像度をもっている。別の例としてはソースデバイス110からのワード処理ファイルが第1のフォーマット(例えば、.doc)で作成され、そのファイルの別のバージョンが第1のフォーマットとは区別される第2のフォーマット(例えば、.txt)で作成されている。転送サーバ130は、宛先が片方又は両方のバージョンであるとして送信先デバイス150A−Cを識別する。その結果、送信先デバイス150Aが或るバージョンのファイルを受信し、送信先デバイス150B及び150Cが別のバージョンのファイルを受信する。
【0099】
或るデバイスに送信される或るバージョンのファイルと、別のデバイスに送信されるその別のバージョンのファイルを生じされることは、例えば、送信先デバイスの能力に応じて、バージョンが適切なデバイスに送信されるようにできる。例えば、送信先デバイス150Aが比較的大きなディスプレイ画面(例えば、18インチスクリーン)をもつラップトップコンピュータである一方で、送信先デバイス150Bは比較的小さなディスプレイ画面(例えば、4インチスクリーン)をもつスマートフォンである。高解像度バージョンの画像よりも低解像度バージョンの画像は、スマートフォンにおける小さなスクリーンサイズによく適している。
【0100】
一実施例において、ソースデバイス110は第2のバージョンのファイル(ファイルは“第1のバージョン”である)を生成する。ソースデバイス110は、ネットワーク200を介して、第1のバージョンのファイルのみ、又は第1のバージョンファイルと第2のバージョンファイルの両方を送信する。或いはまた、転送サーバ130などの他のエンティティが第1のバージョンのファイルから第2のバージョンのファイルを生成する。
【0101】
一実施例において、転送サーバ130は、送信先デバイスに関連するバージョンデータに基づき、どの送信先デバイスがバージョンを受信するかを決定する。1以上の送信先デバイスに関し、バージョンデータは、どの送信先デバイスが特定のバージョンのファイルを受信するかを示している。例えば、送信先デバイス150Aに関連するバージョンデータは、送信先デバイス150Aがソースデバイス110から送信される高解像度の画像を受信する一方で、送信先デバイス150Bに関連するバージョンデータは、送信先デバイス150Bが低解像度の画像を受信するということを指し示す。
【0102】
進行中のスライドショーに写真を転送する
一実施例において、送信先デバイス150A−Cの一つは画像のスライドショーを表示するデバイスであり、そのとき、そのデバイスはサードパーティ記憶サービス140(又は転送サーバ130)から画像ファイルを読出す。画像ファイルを受信すると、送信先デバイスはスライドショーにその画像ファイルを含むように更新する。例えば、送信先デバイス150Aは、1以上のファイルについての通知を転送サーバ130から受信するとき、3秒毎に100個のデジタル画像のスライドショーの中から異なるデジタル画像を表示する。
【0103】
スライドショーを表示しながら、送信先デバイス150Aは、(1)1以上のファイルについてのリクエストをサードパーティ記憶サービス140に送信する、(2)その1以上のファイルをサードパーティ記憶サービス140から受信する、(3)スライドショーがその1以上のファイルからのデジタル画像を含むように更新する。送信先デバイス150Aは、デジタル画像を受信するやいなや、そのデジタル画像が表示されるように構成されるようにすることができる。或いはまた、送信先デバイス150Aは、スライドショー内の他のデジタル画像の表示順の或る位置にそのデジタル画像を含むように構成することができる。表示順は、各デジタル画像に関連するタイムスタンプや、他の基準(例えば、ソースデバイスや、デジタル画像コンテンツの地理的ロケーション若しくは他の特徴など)に基づくことができる。
【0104】
ハードウェア概観
一実施例によれば、ここで述べる技術は1以上の特定目的用のコンピュータデバイスによって実装される。特定目的用のコンピュータデバイスは本技術を実行するために配線で接続されたり、又は1以上の特定用途向け集積回路(ASIC)や本技術を実行するよう固定的にプログラムされるフィールド・プログラマブル・ゲート・アレイ(FPGA)などのデジタル電子デバイスを含む。或いは、ファームウェア、メモリ、若しくはこれらの組み合わせにあるプログラム命令に従い本技術を実行するようプログラムされた1以上の汎用目的ハードウェアプロセッサを含むことができる。特定用途向け集積回路は、カスタム配線ロジック、ASIC、若しくはFPGAを、本技術を達成するためのカスタムプログラミングを組み合わせることもできる。汎用目的コンピュータデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯型デバイス、ネットワーキングデバイス、又は本技術を実行する配線接続及び/又はプログラムロジックを組み込んだ他の任意のデバイスである。
【0105】
例えば、図4は、コンピュータシステム400を示したブロック図であり、これにより本発明の実施例が実行される。コンピュータシステム400は、バス402又は情報を通信する他の通信メカニズム、及びバス402と接続する情報処理用ハードウェアプロセッサ404を含む。ハードウェアプロセッサ404は、例えば、汎用目的マイクロプロセッサである。
【0106】
コンピュータシステム400は、ランダムアクセスメモリ(RAM)などのメインメモリ406、又は情報及びプロセッサ404で実行される命令を記憶するためにバス402と接続された他のダイナミック記憶デバイスも含む。また、メインメモリ406は、プロセッサ404により実行される命令の演算中に一時変数若しくは他の中間情報を記憶するために用いられる。このような命令は、プロセッサ404にアクセス可能な持続性記憶媒体に記憶されるとき、コンピュータシステム400を、命令で特定されたオペレーションを実行するようにカスタマイズされた特定用途マシーンにする。
【0107】
コンピュータシステム400は、さらに、リードオンリーメモリ(ROM)408又は静的情報及びプロセッサ404用の命令を記憶するためにバス402に結合された他のスタティック記憶デバイスを含む。磁気ディスク又は光ディスクなどの記憶デバイス410は、情報及び命令を記憶するために提供され、バス402に接続される。
【0108】
コンピュータシステム400は、コンピュータユーザに対して情報を表示するため、バス402を介して、ブラウン管(CRT)などのディスプレイ412と接続されている。アルファベット及び他のキーを含む入力デバイス414は、プロセッサ404と情報及びコマンド選択をやりとりするためにバス402に接続している。ユーザの入力デバイスの他のタイプとしてはカーソルコントロール416であり、例えば、マウス、トラックボール、送信先情報及びコマンド選択をプロセッサ404とやりとりしてディスプレイ412上でカーソルの動きを制御するためのカーソル矢印キーがある。この入力デバイスは、典型的には、2軸上で2自由度、すなわち第1軸(例えば、X)と第2軸(例えば、Y)をもち、当該入力デバイスが平面上の位置を特定できるようにする。
【0109】
カスタマイズされた配線接続のロジック、1以上のASIC若しくはFPGA、コンピュータシステム400と一緒になって生じさせるファームウェア及び/又はプログラムロジック、又は汎用目的のマシーンとなるプログラムコンピュータシステム400を用いながら、コンピュータシステム400はここで述べた技術を実装することができる。一実施例によれば、ここで述べた技術は、メインメモリ406に含まれる1以上の命令の1以上のシーケンスをプロセッサ404が実行することに呼応して、コンピュータシステム400によって実行される。このような命令は、記憶デバイス410などの記憶媒体からメインメモリ406へと読出される。メインメモリ406に含まれる命令のシーケンスを実行することにより、プロセッサ404はここで述べる処理ステップを実行する。別の実施例においては、配線接続された回路がソフトウェア命令に代わり、若しくはソフトウェア命令と組み合わせて使用される。
【0110】
“記憶媒体”という用語は、ここでは、マシーンが特定の様式でオペレーションするような命令及び/又はデータを記憶する任意の固定的媒体を指す。このような記憶媒体は、不揮発性及び/又は揮発性媒体を含むことができる。不揮発性媒体は、例えば、記憶デバイス410などの光ディスクや磁気ディスクを含む。揮発性媒体は、メインメモリ406などのダイナミックメモリを含む。通常の形式の記憶媒体は、例えば、フロッピー(R)ディスク、フレキシブルディスク、ハードディスク、固定ドライブ、磁気テープ、他の任意の磁気データ記憶媒体、CD−ROM、他の任意の光データ記憶媒体、ホールパターンを有する任意の物理媒体、RAM、PROM、EPROM、FLASH−EPROM、NVRAM、他の任意のチップ若しくはカートリッジを含む。
【0111】
記憶媒体ごとに形式は異なるが、どれも伝送媒体と一緒に用いられる。伝送媒体は、記憶媒体間で情報を送信することに参加する。例えば、伝送媒体は、同軸ケーブル、銅線、及び光ファイバー、バス402を含む線、を含む。また、伝送媒体は、電波及び赤外線通信の間に生成される音響波又は光波の形式をとり得る。
【0112】
様々な形式の媒体が、実行プロセッサ404に対して、1以上の命令の1以上のシーケンスを伝搬することに関係し得る。例えば、当初、リモートコンピュータの磁気ディスク又は固定状態ドライブ上に命令が運ばれる。リモートコンピュータは、そのダイナミックメモリ内に命令をロードし、モデムを使って電話線上に命令を送信する。コンピュータシステム400に対してローカルなモデムは、その電話線上のデータを受信し、赤外線送信機を使ってデータを赤外線信号に変換する。赤外線検出器は赤外線信号で運ばれてきたデータを受信し、そして適当な回路によってバス402上にデータを置くことができる。バス402は、メインメモリ406にデータを運搬し、そこからプロセッサ404は命令を読出して実行する。メインメモリ406により受信された命令は、オプション的に、プロセッサ404による実行の前又は後のいずれかに、記憶デバイス410上に記憶されることができる。
【0113】
また、コンピュータシステム400は、バス402に接続された通信インタフェース418を含む。通信インタフェース418は、ローカルね422に接続されるネットワークリンク420へつながる双方向送信する通信を提供する。例えば、通信インタフェース418は、総合デジタル通信網(ISDN)カード、ケーブルモデム、衛星モデム、又は電話線の対応するタイプに対してデータ通信コネクションを提供するモデムである。別の例としては、通信インタフェース418は、互換性のあるLANにデータ通信コネクションを提供するローカルエリアネットワーク(LAN)カードである。無線リンクもまた実装され得る。このような実装において、通信インタフェース418は、様々なタイプの情報をあらわすデジタルデータストリームを運搬する電気、電磁気、又は光信号を送受信する。
【0114】
ネットワークリンク420は、典型的には、1以上のネットワークを介して他のデータデバイスに対してデータ通信を提供する。例えば、ネットワークリンク420は、ローカルネットワーク422を介してホストコンピュータ424若しくはインターネットサービスプロバイダー(IPS)426により操作されるデータ設備に至るコネクションを提供する。ISP426は、今度は、今では“インターネット”と呼ばれているワールドワイドのパケットデータ通信ネットワークを介したデータ通信サービスを提供する。ローカルネットワーク422及びインターネット428は、共に、デジタル送信するストリームを運搬する電気、電磁気、又は光信号を用いる。様々なネットワークを介した信号、並びにネットワークリンク420上及び通信インタフェース418を介した信号は、コンピュータシステム400へ及びコンピュータシステム400からデジタルデータを運搬するのであるが、伝送媒体の形式の一例である。
【0115】
コンピュータシステム400は、1以上のネットワーク、ネットワークリンク420、通信インタフェース418を介して、メッセージを送信したりプログラムコードを含むデータを受信する。インターネットの例の場合、サーバ430は、アプリケーションプログラムのためのリクエストされたコードを、インターネット428、ISP426、ローカルネットワーク422、及び通信インタフェース418を介して送信する。
【0116】
受信されたコードは、それが受信されたときにプロセッサ404によって実行されたり、及び/又は記憶デバイス410若しくは後の実行のために不揮発性媒体に記憶されたりする。
【0117】
上述したように、本発明の実施例はあらゆる実装に対応し得る多くの特定の詳細を参照して説明されてきた。本明細書及び図面は、制限的に用いられるのはなく、例示としてみなされるものである。本発明の範囲の完全及び排他的な意味合い、そして本願出願人が本発明の範囲をどのように規定するかは、特許請求の範囲及びその均等の範囲に記載されている。

【特許請求の範囲】
【請求項1】
1以上のコンピュータデバイスで実行される方法であって、
第1のデバイス及び1以上の送信先デバイスを含む複数のデバイスに関連するデータを記憶する処理と、
前記第1のデバイスに記憶されたファイルが1以上の他のデバイスに送信される指示を、前記複数のデバイスからネットワークを介して受信する処理と、
前記指示を受信したことに応じて、前記ファイルが前記複数のデバイスのすべてに対して遠隔の固定記憶媒体に記憶されるようにする処理と、
前記ファイルが所与のデバイスに送信されるようにする処理と、
前記1以上の送信先デバイスのうちの任意のデバイスが当該ファイルを受信したかに関係なく、所定の期間が経過したことに応じて、前記ファイルが前記複数のデバイスのいずれによってもアクセスできないようにする処理と、
を含む方法。
【請求項2】
前記ファイルが前記第1のデバイスに新たに記憶されるときには、前記第1のデバイスとサーバとの間に特定のタイプのコネクションが確立されず、
前記特定のタイプのコネクションが確立されると、前記指示が前記第1のデバイスから前記サーバへ自動的に送信されることを特徴とする、請求項1に記載の方法。
【請求項3】
前記指示は前記ファイルを含まず、
前記ファイルは、前記第1のデバイスにより前記ファイルがどこに送信されるかを示す第1の記憶ロケーションデータを前記第1のデバイスに送信させることが含まれるよう前記ファイルを記憶し、
前記所与のデバイスにより前記ファイルがどこで読出されるかを示す第2の記憶ロケーションデータを含む前記ファイルを、前記所与のデバイスに送信することを生じさせる、請求項1に記載の方法。
【請求項4】
前記所与のデバイスに送信されるファイルは、前記ファイルのコピー又は前記第1のデバイスに記憶されるファイル形式とは異なる形式のファイルバージョンである、請求項1に記載の方法。
【請求項5】
第2の複数デバイスに関連する第2のデータを記憶する処理と、
前記第1のファイルとは異なる第2のファイルであって、前記第2の複数デバイスのいずれかに記憶されていなかった当該第2のファイルが、前記第2の複数デバイスのうちの特定デバイスに記憶されるという第2の指示を、前記ネットワークを介して前記特定デバイスから受信する処理と、
前記第2の指示を受信したことに応じて、前記第2のファイルが前記第2の複数デバイスのすべてに対して遠隔の固定記憶媒体に記憶されるようにする処理と、
前記第2の複数デバイスのうちの前記第2のデバイス以外の任意のデバイスが前記サーバとのコネクションを確立することが検出されると、前記第2のファイルが前記所与のデバイスに送信されるようにする処理と、
前記第2の複数デバイスのうちの前記特定デバイスとは異なる任意のデバイスが前記第2のファイルを受信したかに関係なく、前記所定の期間とは異なる第2の期間が経過したことに応じて、前記第2のファイルが前記第2の複数デバイスのいずれによってもアクセスできないようにする処理と、
を更に含む、請求項1に記載の方法。
【請求項6】
前記特定の期間は、前記ファイルのタイプ、前記指示を送信したデバイス、前記指示に含まれるデータ、前記指示が送信された日時、前記ファイルが生成された日時、又は前記ファイルを作成した人物の識別データのうちの少なくとも1つに基づき決定される、請求項1に記載の方法。
【請求項7】
前記複数デバイスは同一ユーザアカウントに関連する、請求項1に記載の方法。
【請求項8】
前記ファイルを前記複数デバイスの少なくとも1つに送信されるようにした後で、
前記特定デバイスを含まない前記複数デバイスに特定デバイスが関連していることを指示するために関連データを修正する処理と、
前記ファイルが前記特定デバイスに送信されるようにする処理と、
を更に含む、請求項1に記載の方法。
【請求項9】
前記特定デバイスのうち前記第1のデバイスとは異なる任意の所与のデバイスを検出すると、前記ファイルが前記固定記憶媒体に記憶させるようにするサーバとのコネクション確立を実行する、請求項1に記載の方法。
【請求項10】
1以上のコンピュータデバイスで実行される方法であって、
送信先デバイスと属性とを関連づける関連データを記憶する処理と、
ソースデバイスから、(a)前記第1のデバイスに記憶されたファイルが1以上の他のデバイスに送信される指示と、(b)前記ファイルの属性を識別する属性データとをネットワークを介して受信する処理と、
前記指示及び前記属性データを受信すると、
前記指示及び前記属性データに基づき前記関連データを識別する処理と、
前記関連データに基づき、複数のデバイスのうち前記第1のデバイスとは異なる第2のデバイスを識別する処理と、
前記ファイルを前記第2のデバイスに送信することを生じさせる処理と、
を含む方法。
【請求項11】
前記属性は、前記ファイルのタイプ、前記ファイルのサイズ、前記ファイルの作成者、前記ファイルのフォーマット、又は前記ファイルのコンテンツの属性のいずれかである、請求項10に記載の方法。
【請求項12】
前記ファイルはデジタル画像であり、前記属性は前記デジタル画像で検出されるオブジェクトの識別である、請求項10に記載の方法。
【請求項13】
前記オブジェクトは人物の顔である、請求項12に記載の方法。
【請求項14】
前記ファイルが前記第2のデバイスに送信されるようにする処理は、前記第2のデバイスに前記ファイルを送信することを含む、請求項10に記載の方法。
【請求項15】
前記ファイルが前記第2のデバイスに送信されるようにする処理は、
前記第1のデバイスが前記ファイルをどこに送信するかを示す第1の記憶ロケーションデータを、前記ネットワークを介して前記第1のデバイスに送信すること、
前記第2のデバイスが前記ファイルをどこで読出すかを示す第2の記憶ロケーションデータを、前記ネットワークを介して前記第2のデバイスに送信すること、
を含む、請求項10に記載の方法。
【請求項16】
1以上のコンピュータデバイスで実行される方法であって、
複数のデバイスに関連するデータを記憶する処理と、
第1のデバイスに記憶されたファイルが1以上の他のデバイスに送信される指示を、前記複数のデバイスのうちの前記第1のデバイスからネットワークを介して受信する処理と、
前記指示を受信したことに応じて、前記複数のデバイスのうちの他の各デバイスのために、
(i)1以上の基準に基づき、複数のファイルバージョンの中から1つのバージョンを決定する処理と、
(ii)前記バージョンが前記他の各デバイスに送信されるようにする処理と、
を含む方法。
【請求項17】
前記第1のデバイスは前記複数のバージョンのうちの少なくとも1つのバージョンを生成する、請求項16に記載の方法。
【請求項18】
前記複数のデバイスは、前記第1のデバイスとは異なる第2のデバイス及び第3のデバイスを含み、
前記決定する処理は、
前記第2のデバイスのために、前記複数のバージョンの中から第1のバージョンを決定し、
前記第3のデバイスのために、前記複数のバージョンの中から、前記第1のバージョンとは異なる第2のバージョンを決定し、
前記バージョンが前記他の各デバイスに送信されるようにする処理は、
前記第1のバージョンを前記第2のデバイスに送信されるようにする処理と、
前記第2のバージョンを前記第3のデバイスに送信されるようにする処理と、
を含む、請求項16に記載の方法。
【請求項19】
前記第1のバージョンのファイルは第1のフォーマットであり、前記第2のバージョンのファイルは前記第1のフォーマットとは異なる第2のフォーマットである、請求項18に記載の方法。
【請求項20】
前記ファイルはデジタル画像であり、
前記第1のバージョンのデジタル画像は第1の解像度であり、前記第2のバージョンのデジタル画像は第1の解像度とは異なる第2の解像度である、請求項18に記載の方法。
【請求項21】
前記バージョンが前記他の各デバイスに送信されるようにする処理は、前記他の各デバイスに前記バージョンを送信することを含む、請求項16に記載の方法。
【請求項22】
前記バージョンが前記他の各デバイスに送信されるようにする処理は、
前記第1のデバイスが前記バージョンをどこに送信するかを示す第1の記憶ロケーションデータを、前記ネットワークを介して前記第1のデバイスに送信すること、
前記他の各デバイスのデバイスが前記バージョンをどこで読出すかを示す第2の記憶ロケーションデータを、前記ネットワークを介して前記他の各デバイスに送信すること、
を含む、請求項16に記載の方法。
【請求項23】
第1のデバイスを、複数のデジタル画像のスライドショーを連続して表示する第2のデバイスを含む1以上の他のデバイスに関連づける関連データを記憶する処理と、
第1のデバイスに記憶されたデジタル画像が1以上の他のデバイスに送信される指示を、前記複数のデバイスのうちの前記第1のデバイスからネットワークを介して受信する処理と、
前記指示を受信したことに応じて、
(i)前記関連データに基づき、前記第2のデバイスを識別する処理と、
(ii)前記第2のデバイスが前記スライドショーを表示しながら、前記デジタル画像が前記第2のデバイスに送信されるようにする処理であって、前記第2のデバイスは前記デジタル画像を受信すると前記スライドショーに当該デジタル画像が含まれるようにする当該処理と、
を含む方法。
【請求項24】
前記指示を受信する処理は、前記デジタル画像を受信することを含み、
前記デジタル画像が送信されるようにする処理は、前記デジタル画像を第2のデバイスに送信することを含む、請求項23に記載の方法。
【請求項25】
前記デジタル画像が前記第2のデバイスに送信されるようにする処理は、
前記第1のデバイスが前記デジタル画像をどこに送信するかを示す第1の記憶ロケーションデータを、前記ネットワークを介して前記第1のデバイスに送信すること、
前記第2のデバイスが前記デジタル画像をどこで読出すかを示す第2の記憶ロケーションデータを、前記ネットワークを介して前記第2のデバイスに送信すること、
を含む、請求項23に記載の方法。
【請求項26】
1以上のコンピュータデバイスで実行される方法であって、
複数のデバイスを関連づける関連データを特定のエンティティによって記憶する処理と、 前記複数のデバイスのうちの第1のデバイスに記憶されたファイルが1以上の他のデバイスに送信される指示を、前記特定のエンティティがネットワークを介して前記第1のデバイスから受信する処理と、
前記特定のエンティティが、前記指示を受信すると前記第1のデバイスに第1のロケーションデータを送信する処理であって、前記第1のデバイスは前記第1のロケーションデータを用いて前記特定のエンティティとは異なる第2のエンティティに前記ファイルを送信し、前記第2のエンティティは前記第1のデバイスから前記ファイルを受信すると当該ファイルを記憶する処理と、
前記特定のエンティティが、前記複数のデバイスから、前記第1のデバイスとは異なる第2のデバイスを前記関連データに基づき識別する処理と、
前記特定のエンティティが第2のロケーションデータを前記ネットワークを介して前記第2のデバイスに送信する処理であって、前記第2のデバイスは前記第2のロケーションデータを用いて前記第2のエンティティから前記ファイルを要求し、前記第2のエンティティは前記第2のデバイスからリクエストを受信すると前記ファイルを前記第2のデバイスに送信することを含む当該処理と、
を含む方法。
【請求項27】
前記第1のロケーションデータは、(a)前記ファイルを識別する識別データを含み、(b)前記第2のエンティティと関連づけられる、請求項26に記載の方法。
【請求項28】
前記第2のロケーションデータを送信する処理は、前記特定のエンティティが前記指示を受信すると、前記第2のデバイスから1以上のファイルについての情報要求を実行する、請求項26に記載の方法。
【請求項29】
前記第2のデバイスを識別する処理の後、通知を前記第2のデバイスに送信する処理を更に含み、前記第2のデバイスは、前記通知を受信すると1以上のファイルについての前記情報要求を送信する、請求項28に記載の方法。
【請求項30】
前記特定のエンティティが前記第2のデバイスを識別するとき、前記第2のデバイスは、前記特定のデバイスと通信できない第1の状態であり、
前記特定のエンティティが前記第2のロケーションデータを送信するとき、前記第2のデバイスは、前記特定のデバイスと通信できる第2の状態である、請求項26に記載の方法。
【請求項31】
1以上のプロセッサが実行するとき、請求項1に記載した方法が実行される命令を記憶した1以上の記憶媒体。
【請求項32】
1以上のプロセッサが実行するとき、請求項10に記載した方法が実行される命令を記憶した1以上の記憶媒体。
【請求項33】
1以上のプロセッサが実行するとき、請求項16に記載した方法が実行される命令を記憶した1以上の記憶媒体。
【請求項34】
1以上のプロセッサが実行するとき、請求項23に記載した方法が実行される命令を記憶した1以上の記憶媒体。
【請求項35】
1以上のプロセッサが実行するとき、請求項26に記載した方法が実行される命令を記憶した1以上の記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate


【公開番号】特開2012−252709(P2012−252709A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−138206(P2012−138206)
【出願日】平成24年6月1日(2012.6.1)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】