(57)【特許請求の範囲】
【請求項１】
指令を含むコンピュータ読取可能な記憶媒体であって、その指令は実行されるとき、第１のクライアント・デバイスのプロセッサに対して、
第１のクライアント・デバイスにおいてアプリケーションを実行させ、
前記アプリケーションの現在のアプリケーション状態を定期的に決定させ、その現在のアプリケーション状態は、前記アプリケーションの現在の視覚的表現の少なくとも一部を含み、
それぞれの現在のアプリケーション状態の決定の後、第１のクライアント・デバイスからサーバー・デバイスへ、前記それぞれの決定された現在のアプリケーション状態の指標を送信させ、その決定された現在のアプリケーション状態の指標は、前記アプリケーションの前記現在の視覚的表現の少なくとも一部を再現するための情報を含み、
異なるクライアント・デバイスが他のアプリケーション状態の指標を前記サーバー・デバイスへ送信しようと試みているという指標を受信することに応じて、第１のクライアント・デバイスに、前記サーバー・デバイスへ送信される前記現在のアプリケーション状態の後続の指標の送信を停止させて、第１のクライアント・デバイスからのアプリケーション状態アップデートと前記異なるクライアント・デバイスからのアプリケーション状態アップデートの間の衝突を防止し、
それぞれの決定された現在のアプリケーション状態の後続の指標の送信を停止させた後、第１のクライアント・デバイスにおいてアプリケーションの実行を継続させるコンピュータ読取可能な記憶媒体。
【請求項２】
請求項１のコンピュータ読取可能な記憶媒体において、前記現在のアプリケーション状態が第２のアプリケーション状態を含むと共に、最も最近送信された指標は第２のアプリケーション状態に関連する第２の指標を含み、コンピュータ読取可能な記憶媒体は更に指令を含み、この指令は前記プロセッサに対して、
第２のアプリケーション状態を決定するのに先だって、前記アプリケーションの第１のアプリケーション状態を決定させ、この第１のアプリケーション状態の第１の指標を前記サーバー・デバイスへ送信させ、
第１の指標を送信した後に、タイマーを実行させ、
前記プロセッサに第２のアプリケーション状態を決定させる前記指令は、前記プロセッサに前記タイマーの満了の後に第２のアプリケーション状態を決定させる指令を含むコンピュータ読取可能な記憶媒体。
【請求項３】
請求項１のコンピュータ読取可能な記憶媒体において、前記アプリケーションは、マルチメディア・データを提示するマルチメディア・アプリケーションからなり、前記マルチメディア・データは、オーディオとビデオとのデータの少なくとも一方を含むと共に、前記現在のアプリケーション状態は、前記現在のアプリケーション状態が決定されたときに再生されていた前記マルチメディア・データ内の時間的位置を含むコンピュータ読取り可能な記憶媒体。
【請求項４】
請求項１のコンピュータ読取可能な記憶媒体において、前記アプリケーションは、ウェブ・ページを表示するウェブ・ブラウザからなると共に、前記現在のアプリケーション状態は、表示されている前記ウェブ・ページのユニフォーム・リソース・ロケーター（ＵＲＬ）を更に含むコンピュータ読取可能な記憶媒体。
【請求項５】
請求項４のコンピュータ読取可能な記憶媒体において、前記ウェブ・ブラウザは、複数のウィンドウを保持し、複数のウィンドウの各々は、各ウェブ・ページに対応すると共に、前記現在のアプリケーション状態は、前記複数のウィンドウについての各ウェブ・ページの各々についてのＵＲＬを含むコンピュータ読取可能な記憶媒体。
【請求項６】
請求項４のコンピュータ読取可能な記憶媒体において、前記現在の視覚的表現の前記の少なくとも一部は、前記ウェブ・ブラウザによって表示されている前記ウェブ・ページの位置を含むコンピュータ読取可能な記憶媒体。
【請求項７】
請求項１のコンピュータ読取可能な記憶媒体において、前記アプリケーションは、電子メール文書を表示する電子メール・アプリケーションからなると共に、前記現在のアプリケーション状態は、前記表示された電子メール文書の指標を含むコンピュータ読取可能な記憶媒体。
【請求項８】
請求項７のコンピュータ読取可能な記憶媒体において、前記現在の視覚的表現の前記少なくとも一部は、前記電子メール・アプリケーションによって表示されている前記電子メール文書の位置を含むコンピュータ読取可能な記憶媒体。
【請求項９】
請求項１のコンピュータ読取可能な記憶媒体において、第１のクライアント・デバイスは携帯電話からなると共に、前記異なるクライアント・デバイスはパーソナル・コンピュータ・デバイスからなるコンピュータ読取可能な記憶媒体。
【請求項１０】
請求項１のコンピュータ読取可能な記憶媒体において、前記プロセッサに前記それぞれの決定された現在のアプリケーション状態の指標を送らせる指令は、前記プロセッサに、ユーザーが介在することなく、前記それぞれの決定された現在のアプリケーション状態の指標を前記サーバー・デバイスへ送らせる指令からなるコンピュータ読取可能な記憶媒体。
【請求項１１】
請求項１のコンピュータ読取可能な記憶媒体において、前記異なるクライアント・デバイスが他のアプリケーション状態の指標を前記サーバー・デバイスへ送信しようと試みているという前記受信された指標は、第１のクライアント・デバイスから前記サーバー・デバイスへ前記それぞれの決定された現在のアプリケーション状態の指標を送信することを停止させる前記サーバー・デバイスからの指標を含むコンピュータ読取可能な記憶媒体。
【請求項１２】
請求項１のコンピュータ読取可能な記憶媒体において、前記指標は第１の指標を含むと共に、更に指令を含み、この指令は実行されるときに、第１のクライアント・デバイスのプロセッサに対し、
前記異なるクライアント・デバイスが他のアプリケーション状態の指標を前記サーバー・デバイスへ送信しようとはもはや試みていないという第２の指標の受信に応じて、現在のアプリケーション状態の後続の指標の前記サーバー・デバイスへの送信を再開させるコンピュータ読取可能な記憶媒体。
【請求項１３】
請求項１のコンピュータ読取可能な記憶媒体において、第１のクライアント・デバイスのプロセッサにそれぞれの現在のアプリケーション状態の指標を決定させて送信させる前記指令は、指令を含み、この指令は第１のクライアント・デバイスのプロセッサに対して、
それぞれの決定された現在のアプリケーション状態の前記指標の一つを送信した後に、第１のクライアント・デバイスにおいてタイミング・モジュールを実行させ、このタイミング・モジュールは、前記それぞれの決定された現在のアプリケーション状態の後続の指標を送信させた後の時間の量を決定し、
前記指標の前記一つを送信した後の前記決定した時間量において、それぞれの現在のアプリケーション状態を決定し、
第１のクライアント・デバイスによって、それぞれの決定された現在のアプリケーション状態の後続の指標を前記サーバー・デバイスへ送らせるコンピュータ読取可能な記憶媒体。
【請求項１４】
クライアント・デバイスであって、
ディスプレイと、
データを外部デバイスと交換するように構成されたインターフェースと、
アプリケーションを実行するように構成された制御ユニットであり、前記ディスプレイに前記アプリケーションの現在の視覚的表現を表示させ、前記アプリケーションの現在のアプリケーション状態を定期的に決定し、前記現在のアプリケーション状態は、前記アプリケーションの前記現在の視覚的表現の少なくとも一部を含む制御ユニットと、
前記制御ユニットがそれぞれの現在のアプリケーション状態を決定した後に、前記それぞれの決定された現在のアプリケーション状態の指標をインターフェースを介して前記クライアント・デバイスからサーバー・デバイスへ送信するように構成された状態アップデート・モジュールであり、前記それぞれの決定された現在のアプリケーション状態の前記指標は、前記アプリケーションの現在の視覚的表現の少なくとも一部を再現するための情報を含む状態アップデート・モジュールとを備え、
前記制御ユニットは、異なるデバイスが他のアプリケーション状態の指標を前記サーバー・デバイスへ送信しようと試みているという指標に応じて、前記サーバー・デバイスへ送られる前記それぞれの現在のアプリケーションの後続の指標の送信を停止させて、第１のクライアント・デバイスからのアプリケーション状態アップデートと前記異なるクライアント・デバイスからのアプリケーション状態アップデートとの間の衝突を防止すると共に、前記それぞれの決定された現在のアプリケーション状態の前記後続の指標の送信を停止させた後に、第１のクライアント・デバイスにおいて前記アプリケーションの実行を続行するように構成されているクライアント・デバイス。
【請求項１５】
請求項１４のクライアント・デバイスにおいて、前記制御ユニットは更に、前記異なるクライアント・デバイスが他のアプリケーション状態の指標を前記サーバー・デバイスへ送信しようとはもはや試みていないという第２の指標の受信に応じて、現在のアプリケーション状態の前記後続の指標の前記サーバー・デバイスへの送信を再開させるように構成されているクライアント・デバイス。
【請求項１６】
請求項１４のクライアント・デバイスにおいて、
タイミング・モジュールを更に備え、このタイミング・モジュールは、前記状態アップデート・モジュールにそれぞれの決定された現在のアプリケーション状態の後続の指標を送信させた後の時間の量を決定し、前記指標の一つを送信した後の時間量の前記決定において、それぞれの現在のアプリケーション状態を決定し、前記状態アップデート・モジュールに前記それぞれの決定された現在のアプリケーション状態を前記サーバー・デバイスへ送信させるように構成されているクライアント・デバイス。
【請求項１７】
第１のクライアント・デバイスによりアプリケーションを実行し、
前記アプリケーションの現在のアプリケーション状態を定期的に決定させ、その現在のアプリケーション状態は、前記アプリケーションの現在の視覚的表現の少なくとも一部を含み、
それぞれの現在のアプリケーション状態の決定の後、第１のクライアント・デバイスからサーバー・デバイスへ、前記それぞれの決定された現在のアプリケーション状態の指標を送信させ、その決定された現在のアプリケーション状態の指標は、前記アプリケーションの前記現在の視覚的表現の少なくとも一部を再現するための情報を含み、
異なるクライアント・デバイスが他のアプリケーション状態の指標を前記サーバー・デバイスへ送信しようと試みているという指標を受信することに応じて、第１のクライアント・デバイスに、前記サーバー・デバイスへ送信される前記現在のアプリケーション状態の後続の指標の送信を停止させて、第１のクライアント・デバイスからのアプリケーション状態アップデートと前記異なるクライアント・デバイスからのアプリケーション状態アップデートの間の衝突を防止し、
それぞれの決定された現在のアプリケーション状態の後続の指標の送信を停止させた後、第１のクライアント・デバイスにおいてアプリケーションの実行を継続させることを含む方法。
【請求項１８】
請求項１７の方法において、
前記異なるクライアント・デバイスが他のアプリケーション状態の指標を前記サーバー・デバイスへ送信しようとはもはや試みていないという第２の指標の受信に応じて、第１のクライアント・デバイスにより、現在のアプリケーション状態の後続の指標の前記サーバー・デバイスへの送信を再開させる方法。
【請求項１９】
請求項１７の方法において、
それぞれの決定された現在のアプリケーション状態の前記指標の一つを送信した後に、第１のクライアント・デバイスにおいてタイミング・モジュールを実行させ、このタイミング・モジュールは、前記それぞれの決定された現在のアプリケーション状態の後続の指標を送信させた後の時間の量を決定し、
前記指標の前記一つを送信した後の前記決定した時間量において、それぞれの現在のアプリケーション状態を決定し、
第１のクライアント・デバイスによって、それぞれの決定された現在のアプリケーション状態の後続の指標を前記サーバー・デバイスへ送らせる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示事項は、コンピュータ・デバイス、例えばパーソナル・コンピュータ、タブレット型コンピュータ、ラップトップ、及び携帯電話に関する。
【発明の背景】
【０００２】
様々なコンピュータ・デバイスは、アプリケーションを受け取って、実行することができる。モバイル機器、例えばタブレット型コンピュータ及びスマートフォンは、アプリケーションをダウンロードして実行する能力によって、そのようなモバイル機器の機能を拡張する能力もあって益々普及してきている。それらのアプリケーションの或るものは、他のコンピュータ・デバイス、例えばパーソナル・コンピュータ、ワークステーション、又はその他のそのようなコンピュータ・デバイスにより実行できるアプリケーションと類似している。
【概要】
【０００３】
一つの例では、コンピュータ読取可能な記憶媒体は、実行されるときに、コンピュータ・デバイスのプロセッサが第１のクライアント・デバイスによりアプリケーションを実行させて、アプリケーションの現在のアプリケーション状態を決定する指令を含み、その現在のアプリケーション状態は、アプリケーションの現在の視覚的表現の少なくとも一部を含み、第１のクライアント・デバイスからサーバー・デバイスへ決定された現在のアプリケーション状態の指標を送信し、この決定された現在のアプリケーション状態の指標は、アプリケーションの現在の視覚的表現の少なくとも一部を再現させる情報を含み、別のクライアント・デバイスが他のアプリケーション状態の指標をサーバー・デバイスへ送信しようと試みている指標を受信すると、これに応答して、第１のクライアント・デバイスに現在のアプリケーション状態の後続の指標の送信をサーバー・デバイスへ送るのを止めて、第１のクライアント・デバイスからアップデートされるアプリケーション状態と別のクライアント・デバイスからアップデートされるアプリケーション状態との間の衝突を防止する。
【０００４】
他の例では、クライアント・デバイスはディスプレイと、データを外部デバイスと交換するように構成されたインターフェースと、ディスプレイにアプリケーションの現在の視覚の表現を表示させるようにアプリケーションを実行し、アプリケーションの現在の状態を決定するように構成され、その現在のアプリケーション状態はアプリケーションの現在の視覚的表現の少なくとも一部を含む制御ユニットと、決定された現在のアプリケーション状態の指標をこのデバイスからサーバー・デバイスへインターフェースを介して送信する手段とを含み、その決定された現在のアプリケーション状態の指標は、アプリケーションの現在の視覚的表現の少なくとも一部を再現するための情報からなる。制御ユニットは、別のクライアント・デバイスが他のアプリケーション状態の指標をサーバー・デバイスへ送信しようと試みいるのに応答して、現在のアプリケーション状態の後続の指標の送信をサーバー・デバイスへ送信することを停止して、第１のクライアント・デバイスからアップデートされるアプリケーション状態と別のクライアント・デバイスからアップデートされるアプリケーション状態との間の衝突を防止する。
【０００５】
他の例では、コンピュータ読取可能な記憶媒体は指令を含み、この指令は実行されるときに、第１のクライアント・デバイスのプロセッサが第１のクライアント・デバイスにアプリケーションを実行させ、アプリケーションの現在のアプリケーション状態を決定し、その現在のアプリケーション状態は、アプリケーションの現在の視覚的表示の少なくとも一部を再現させる情報を含み、決定された現在のアプリケーション状態の指標をコンピュータ・デバイスから第２の別のクライアント・デバイスへ送信し、この第２の別のクライントに、コンピュータ・デバイスにより実行されたアプリケーションの現在の視覚的表示の少なくとも一部を再現させることにより、現在のアプリケーション状態におけるアプリケーションの実行を再開させる。
【０００６】
他の例では、サーバー・デバイスは、一つ以上の外部デバイス・インターフェースを含み、これは、二つ以上のクライアント・デバイスからアプリケーションの指標を受信して、このアプリケーション状態の指標を二つ以上のクライアント・デバイスへ与えるように構成されており、そのアプリケーション状態の指標は、アプリケーション状態に対応するアプリケーションの現在の視覚的表示の少なくとも一部を再現させるための情報を含み、サーバー・デバイスは更に、制御ユニットを含み、これは、グループとしての二つ以上のクライアント・デバイスに関連して、グループの第１のクライアント・デバイスからアプリケーション状態の指標を受信し、グループの第２のクライアント・デバイスが、第１のクライアント・デバイスからのアプリケーション状態の受信した指標に対応するアプリケーションの実行を開始したことを決定し、この第２のクライアント・デバイスがアプリケーションの実行を開始したという決定に応じて、アプリケーション状態の指標を第２のクライアント・デバイスへ与えるように構成されている。
【０００７】
他の例では、方法は、サーバー・デバイスにより、二つ以上の関連するクライアント・デバイスのグループの第１のクライアント・デバイスからアプリケーション状態の指標を受信し、そのアプリケーション状態の指標は、第１のクライアント・デバイスにより実行されたアプリケーションの現在の視覚的表現の少なくとも一部を再現させるための情報を含み、前記方法は更に、二つ以上の関連するデバイスのグループの第２の別のクライアント・デバイスが、第１のクライアント・デバイスから受信したアプリケーション状態の指標に対応するアプリケーションの実行を開始したことを決定し、第２のクライアント・デバイスがアプリケーションの実行を開始したという決定に応じて、サーバー・デバイスにより、第１のクライアント・デバイスから受信されたアプリケーション状態の指標を第２のクラインアント・デバイスへ与えることを含む。
【０００８】
この開示事項の技術は、一つ以上の利点を与え得る。例えば、この開示事項の技術は、ユーザーが二つ以上のデバイスの間でアプリケーションの実行を続けることを可能とするであろう。即ち、ユーザーは第１のデバイスにより第１の実行をなし、次いで第２のデバイスへ切り替えて、第１のデバイスにより実行されたアプリケーションの状態から第２のデバイスを用いてアプリケーションの実行を続ける。このように、ユーザーはアプリケーション内の継続性が損なわれることを回避し、例えば、ウェブ・ページ、Ｅメール文書、又は他のテキスト文書を閲覧したり、マルチメディア・ファイル、例えば歌又はビデオを再生したり、ゲームで遊んだり、或いは、さもなければ、一つ以上のデバイスにより実行できるアプルケーションを用いる間、ユーザーの状況を損なうことを回避する。
【０００９】
一つ以上の例の詳細は、添付の図面及び以下の説明に記載される。他の特徴、目的及び利点は、説明及び図面から、そして特許請求の範囲から明らかである。
【図面の簡単な説明】
【００１０】
【図１Ａ】図１Ａは例示的システムを示すブロック図であり、ここではモバイル機器及びコンピュータ・デバイスは、／アプリケーション状態サーバーを介して様々なアプリケーションについてのアプリケーション状態の指標を提供し及び／又は受信し得る。
【００１１】
【図１Ｂ】図１Ｂはモバイル機器及びコンピュータ・デバイスを含む他の例示的システムを示すブロック図である。
【００１２】
【図２】図２は、アプリケーション状態情報を外部デバイス、例えばアプリケーション状態サーバー又は遠隔コンピュータ・デバイスへ与える例示的モバイル機器を示すブロック図である。
【００１３】
【図３】図３は、アプリケーション状態サーバーの構成要素の例示的構成を示すブロック図である。
【００１４】
【図４】図４は定期的なアプリケーション状態アップデートをアプリケーション状態サーバーへ与えるための例示的な方法を示すフローチャートである。
【００１５】
【図５】図５は、アプリケーション状態情報を、アプリケーション状態サーバーを介して、モバイル機器とコンピュータ・デバイスとの間で交換するための例示的方法を示すフローチャートである。
【００１６】
【図６】図６は、アプリケーション状態情報を、アプリケーション状態サーバーを介して、モバイル機器とコンピュータ・デバイスとの間で交換するための他の例示的方法を示すフローチャートである。
【００１７】
【図７】図７は、二つのデバイスの間でアプリケーション状態を交換するための他の例示的方法を示すフローチャートである。
【詳細な説明】
【００１８】
一般に、この開示事項は、ユーザーに二つ以上のデバイスの間の、例えばモバイル機器（例えば携帯電話）とコンピュータ・デバイスとの間の切り換えを可能として、一つのデバイスで使用されているアプリケーションを他のデバイスにおいてユーザーがアプリケーションにおけるユーザーの状況を損なうことなく再開可能とする技術を意図している。例えばユーザーがモバイル機器上で特定のウェブ・ページを閲覧していて、次いでコンピュータ・デバイスを使い始めて、ウェブ・ブラウザを実行するならば、モバイル機器はウェブ・ページのユニフォーム・リソース・ロケーター（ＵＲＬ）の指標とモバイル機器に表示されるウェブ・ページの現在の部分（例えば現在のパラグラフ）をコンピュータ・デバイスへ与え得る。コンピュータ・デバイスは、モバイル機器により表示されている現在のウェブ・ページの指標とウェブ・ページの現在の部分を受信して、次いで自動的に（即ち、ユーザーが介在することなく）ウェブ・ページを表示して、モバイル機器により表示されていたウェブ・ページの部分を自動的にスクロールし得る。
【００１９】
モバイル機器は、実行中のアプリケーションについてのアプリケーション状態を定期的に保存して、このアプリケーション状態を外部デバイス（本明細書ではアプリケーション状態サーバーと称する）にアップロードし得る。或る例では、アプリケーション状態サーバーは、アプリケーションを再開するコンピュータ・デバイスと同一のデバイスである場合がある。即ち、或る例では、コンピュータ・デバイスはアプリケーション状態サーバーの機能を実装し得る。或る例では、アプリケーション状態サーバーは、モバイル機器とコンピュータ・デバイスとの両方と交信する別個のデバイスとし得る。何れの場合でも、モバイル機器は一つ以上の実行中のアプリケーションの現在のアプリケーション状態の指標をアプリケーション状態サーバーに定期的に送信し得る。
【００２０】
モバイル機器は、他のデバイスがアプリケーションの実行を開始したという指標を、アプリケーション状態サーバーから受信し得る。他のデバイスがアプリケーションを実行しているという指標を受信することに応じて、モバイル機器は現在のアプリケーション状態の以降の指標をモバイル機器からアプリケーション状態サーバーへ送信されるのを阻止し得る。例えば、モバイル機器は、コンピュータ・デバイスがアプリケーションの実行を開始したという指標を、例えばアプリケーション状態サーバー及び／又はコンピュータ・デバイスから受信して、それに応じて、アプリケーションについての将来のアプリケーション状態交信を防止し得る。他の例として、モバイル機器は、ユーザーがアプリケーションを実行するためにモバイル機器をもはや使用していないという指標をユーザーから受け取り得る。次いでモバイル機器はアプリケーションの現在のアプリケーション状態の将来の指標をアプリケーション状態サーバーに送信することを防止し得る。
【００２１】
更に、アプリケーション状態サーバーは、アプリケーションの実行が開始されたコンピュータ・デバイスに現在の（例えば最近の）アプリケーション状態の指標をー与え得る。コンピュータ・デバイスは、アプリケーション状態の指標を用いて、モバイル機器が最後にアプリケーション状態をアップデートさせた時点におけるアプリケーションの実行を再開し得る。このように、共に同一のアプリケーション、例えば、ウェブ・ブラウザ、電子メール・アプリケーション、マルチメディア・アプリケーション（例えば動画プレーヤー又は音楽プレーヤー）、ゲーム・アプリケーション又は他のアプリケーションを実行することができる二つのデバイスの間で切り換えるときに、ユーザーはアプリケーション実行の比較的に途切れのない移行を体験するであろう。
【００２２】
図１Ａは、例示的システム１０を示すブロック図であり、ここではモバイル機器１６とコンピュータ・デバイス１８が様々なアプリケーションについてのアプリケーション状態の指標を与え及び／又は受信し得る。特に、図１Ａの例では、モバイル機器１６及びコンピュータ・デバイス１８は、アプリケーション状態アップデートをアプリケーション状態サーバー１２へネットワーク１４を介して与えるように構成されている。例えば、ユーザーが、モバイル機器１６により実行されるアプリケーションとやりとりする間、モバイル機器１６はアプリケーション状態アップデートをアプリケーション状態サーバー１２へ定期的に与え得る。その後、ユーザーは、コンピュータ・デバイス１８にアプリケーションを実行するために切り換えて、コンピュータ・デバイス１８は最も最近のアプリケーション状態をアプリケーション状態サーバー１２から取得して、コンピュータ・デバイス１８は、最も最近のアプリケーション状態アップデートからアプリケーションの実行を再開し得る。同様に、コンピュータ・デバイス１８は、モバイル機器１６によっても実行され得るアプリケーションを実行しながら、アプリケーション状態アップデートをアプリケーション状態サーバー１２へ与えるように構成し得る。
【００２３】
このように、複数のデバイス間、例えばモバイル機器１６とコンピュータ・デバイス１８との間で切り換えるとき、システム１０は連続的なアプリケーション体験をユーザーに提供し得る。例示の目的のための一つのアプリケーションについて主に述べたが、この開示事項の技術はモバイル機器１６で実行されて、次いでコンピュータ・デバイスで続いて実行される多数のアプリケーションに適用し得ることを理解されたい。更に、例示の目的でモバイル機器及びコンピュータ・デバイスに関して再び説明するが、この開示事項の技術は、同一若しく類似したアプリケーションを実行できる任意の２台以上のデバイスに適用し得ることを理解されたい。例えば、システム１０の複数のデバイスは、２台以上の定置コンピュータ・デバイス、二台以上のモバイル機器、或いは定置及び／又はモバイル機器の任意の組合せに対応し得る。任意の２台以上のデバイスは、例えば、パーソナル・コンピュータ、ワークステーション・コンピュータ、ラップトップ・コンピュータ、タブレット型コンピュータ、携帯電話、スマートフォン、携帯情報端末、或いはアプリケーション実行の能力がある他の任意のデバイスに対応し得る。
【００２４】
この開示事項の技術は、様々な異なるアプリケーションに適用し得る。一般に、これらの技術は、モバイル機器１６及びコンピュータ・デバイス１８で実行しうるアプリケーションに適用し得る。例えば、この技術は、ウェブ・ブラウザ、電子メール・リーダー、ドキュメント・リーダー、マルチメディア・プレイヤー（例えばビデオ及び音楽プレーヤー）、ゲーム、又は他のアプリケーションに適用し得る。一般に、モバイル機器１６で実行されるアプリケーションは、コンピュータ・デバイス１８で実行されるアプリケーションとは異なる場合もあるが、同一の形式のアプリケーション、例えば、同一の目的のために使用されるアプリケーションもあり得る。従って、モバイル機器１６とコンピュータ・デバイス１８（又は任意の他の二つのデバイス）で実行されるアプリケーションに対する言及は、モバイル機器１６及びコンピュータ・デバイス１８で実行される異なったアプリケーションを含むが、これらは同一の目的のために実行されることを理解されたい。例えば、モバイル機器１６により実行されるウェブ・ブラウザは、コンピュータ・デバイス１８により実行されるウェブ・ブラウザとは異なるが、両方のウェブ・ブラウザがハイパー・テキスト・プロコトル（ＨＴＴＰ）を実行するように意図されており、インターネット・ウェブ・サイト等を検索及びレンダリングする能力があるという点で、依然として同一のアプリケーションと見做し得る。
【００２５】
アプリケーション状態サーバー１２へ与えられた状態アップデートは、２台以上のデバイス、例えば、モバイル機器１６及びコンピュータ・デバイス１８により実行することができるアプリケーションに特有である場合がある。一例として、モバイル機器１６とコンピュータ・デバイス１８との各々は、それぞれのウェブ・ブラウザを実行することがある。例えば、ユーザーは、モバイル機器１８のウェブ・ブラウザとやりとりして特定のユニフォーム・リソース・ロケーター（ＵＲＬ）でウェブ・ページを閲覧するであろう。この開示事項の技術によれば、モバイル機器１６はアプリケーション状態アップデートをアプリケーション状態サーバー１２に定期的に提供し得る。アプリケーション状態アップデートは、ウェブ・ブラウザの例に関して、例えば、現在モバイル機器１２のウェブ・ブラウザで閲覧されているウェブ・ページのＵＲＬの指標を含み得る。或る例では、ウェブ・ブラウザは、例えばウェブ・ブラウザのために複数のウィンドウ又はタブを開くことにより、複数のＵＲＬを閲覧する能力を持つ場合がある。従って、アプリケーション状態アップデートは、複数のＵＲＬを含み得る。
【００２６】
更に、アプリケーション状態の指標は、アプリケーションの現在の視覚的表現の少なくとも一部を再現するための情報を含み得る。ウェブ・ブラウザの例に関しては、例えば、現在の視覚的表現は、現在のパラグラフ、単語、センテンス、行番号、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）アンカー・タグ、画像、セクション、リンク、又はウェブ・ブラウザにより表示されているウェブ・ページの現在の部分の他の指標に対応し得る。このように、ユーザーがモバイル機器１６を使用した後にコンピュータ・デバイス１８へ切り換えるとき、コンピュータ・デバイス１８は、モバイル機器１６で既に表示されたのと実質的に同一の情報を表示し得る。例えば、コンピュータ・デバイス１８は、ユーザーがモバイル機器１６からコンピュータ・デバイス１８へ切り換える前に、モバイル機器１６により表示されていたウェブ・ページの一部に自動的にスクロールするであろう。
【００２７】
他の例として、モバイル機器１６とコンピュータ・デバイス１８とは、各々がそれぞれの電子メール・アプリケーションを実行するように構成され得る。そのような例では、ユーザーがモバイル機器１６からコンピュータ・デバイス１８へ切り換えたとき、アプリケーション状態の指標は、電子メール・アプリケーションにより現在表示されている特定の電子メール及び現在の段落、行、文、又は電子メール内の位置の他の表現を記述し得る。このように、モバイル機器１６は、アプリケーション状態アップデートについて、モバイル機器１６により表示されている現在の電子メール及び現在表示されている電子メール内の位置を示すアプリケーション状態の指標を生成し得る。
【００２８】
他の例として、アプリケーションはマルチメディア・プレイヤー、例えば音楽又は動画プレーヤーに対応し得る。この例では、アプリケーション状態は、歌又はビデオ内の現在の時間的な位置と同様に、再生されている現在の歌又はビデオを記述し得る。ー現在の時間的な位置は、アプリケーション状態が決定されたとき、再生されていたマルチメディアのデータの範囲内で、現在の時間的な位置を定め得る。従って、現在の視覚的表示は、再生されている歌又はビデオの現在の時間的な位置を視覚的に表すステータス・バーに相当し得る。モバイル機器１６は、アプリケーション状態アップデートについて、歌/ビデオの内の時間的な位置のみならず、モバイル機器１６により再生されている現在の歌又はビデオを示すアプリケーション状態の指標を生成し得る。或る例においては、そのような移行は、適用される著作権法及び法令によって認容されるものと仮定すれば、モバイル機器１６は歌又はビデオをアプリケーション状態サーバー１２へ、又は直接にコンピュータ・デバイス１８へ移行させることができる。
【００２９】
図１Ｂは、モバイル機器２２及びコンピュータ・デバイス２４を含む他の例示的なシステム２０を示すブロック図である。この例では、図１Ａにおけるように、アプリケーション状態の指標をサーバーへ送信するのではなく、モバイル機器２２はアプリケーション状態の指標を直接にコンピュータ・デバイス２４へ送信し得る。即ち、ユーザーは、暫くの間、モバイル機器２２を用いてアプリケーションを実行し得る。次いでユーザーは、コンピュータ・デバイス２４でアプリケーションの実行を開始し得る。
【００３０】
コンピュータ・デバイス２４は、モバイル機器２２へ、コンピュータ・デバイス２４がアプリケーションの実行を開始したという指標を送信して、モバイル機器２２により実行されるアプリケーションについて、現在のアプリケーション状態を要求し得る。モバイル機器２２から現在のアプリケーション状態の指標を受信した後に、コンピュータ・デバイス２４は、モバイル機器２２から受信された現在のアプリケーション状態でアプリケーションの実行を再開し得る。
【００３１】
モバイル機器２２及びコンピュータ・デバイス２４は、モバイル機器２２とコンピュータ・デバイス２４とを交信するように結合させる接続２６を確立する。モバイル機器２２は、様々な方式でコンピュータ・デバイス２４に交信するように結合させ得る。例えば、コンピュータ・デバイス２４は、モバイル機器２２をＵＳＢケーブル（例えばマイクロＵＳＢケーブル）でコンピュータ・デバイス２４へ結合させる一般的なシリアル・バス（ＵＳＢ）ポートを含み得る。ＵＳＢケーブルは、モバイル機器２２をコンピュータ・デバイス２４と交信させることに加えて、モバイル機器２２のバッテリーを充電するために用い得る。他の例として、モバイル機器２２は、コンピュータ・デバイス２４も結合されているネットワークの無線スイッチ又は無線ルータ（図示せず）に無線で結合し得る。
【００３２】
接続２６を確立した後、モバイル機器２２はアプリケーション状態の指標をコンピュータ・デバイス２４へ様々な方式で送信し得る。一つの例では、モバイル機器２２は一つ以上のアプリケーション状態の指標をコンピュータ・デバイス２４へ自動的に送信し得る。即ち、モバイル機器２２はアプリケーション状態情報をコンピュータ・デバイス２４へ転送し得る。他の例では、コンピュータ・デバイス２４が接続２６を経てモバイル機器２２へ結合されたとき、及び、ユーザーが、モバイル機器２２にもインストールされたアプリケーション（若しくはモバイル機器２２にインストールされた類似のアプリケーション）を実行するとき、コンピュータ・デバイス２４はモバイル機器２２からアプリケーション状態情報を要求し得る。即ち、コンピュータ・デバイス２４はアプリケーション状態情報をモバイル機器２２から取り出し得る。或る例では、モバイル機器２２とコンピュータ・デバイス２４とは、それぞれ、データを転送して引き出すように構成し得る。
【００３３】
或る例では、モバイル機器２２及びコンピュータ・デバイス２４は、モバイル機器２２にアプリケーション状態情報をコンピュータ・デバイス２４へ送信させるように、それぞれのアプリケーションを実行するように構成し得る。例えば、コンピュータ・デバイス２４により実行されるアプリケーションは、モバイル機器２２がコンピュータ・デバイス２４との接続２６を確立したときを認識するようにして、それに応じて、コンピュータ・デバイス２４とモバイル機器２２との両方により実行することができる一つ以上のアプリケーションについてのアプリケーション状態情報をモバイル機器２２から要請する。他の例として、モバイル機器２２により実行されるアプリケーションは、接続２６が確立されるときを認識するようにして、それに応じて、アプリケーション状態情報をコンピュータ・デバイス２４へ送信する。モバイル機器２２は、アプリケーション状態をデバイス２４へ送信すると、即座に、アプリケーションの実行を停止（例えば、歌又はビデオの再生を停止）し得る。
【００３４】
この開示事項の技術が、アプリケーション状態情報の交換を可能とするアプリケーションとして実装されるとき、モバイル機器２２とコンピュータ・デバイス２４との間でのアプリケーション状態情報を交換させるアプリケーションは、ユーザーがアプリケーション状態情報の交換を構成することを可能とする構成的設定を提供し得る。例えば、ユーザーには、アプリケーション状態情報の交換を自動的になし、他のデバイスがアプリケーション状態情報を要請した指標を提示して、ユーザーがデバイスにアプリケーション状態を送信させることを許すように積極的に応答したときのみにアプリケーション状態情報を送信するか、或いは、一つ以上の（又は全ての）アプリケーションについてのアプリケーション状態情報交換を完全に無効にさせるオプションを与え得る。このように、ユーザーは、二つのデバイス（例えばモバイル機器２２とコンピュータ・デバイス２４）の間のアプリケーション状態情報の交換を、いつでも有効又は無効にし得る。ユーザーには、図１Ａの例示的システム１０における同様な構成オプションを与え得る。
【００３５】
例示目的として、図１Ｂはアプリケーション・アップデート情報をコンピュータ・デバイス２４へ提供するモバイル機器２２として説明されているが、コンピュータ・デバイス２４がアプリケーション・アップデート情報をモバイル機器２２へ同様に提供し得ることを理解されたい。このように、ユーザーは、最初にコンピュータ・デバイス２４を用いてアプリケーションを実行し、次いで、その後にモバイル機器２２でアプリケーションの実行を続行することを望むかもしれない。従ってコンピュータ・デバイス２４は、アプリケーションについての現在のアプリケーション状態を決定して、この現在のアプリケーション状態をモバイル機器２２へ送信し得る。次いでユーザーは、モバイル機器２２でアプリケーションの実行を再開し得る。更に、図１Ｂに関して説明される技術は、二つ以上の類似したデバイス（例えば、二つ以上のモバイル機器、二つ以上の定置コンピュータ・デバイス、又はモバイルと定置とのデバイスの任意の組合せ）に実装し得る。
【００３６】
更に、図１Ａ及び１Ｂに関して説明される技術は、或る例では組み合わせ得る。即ち、或る例において、モバイル機器はアプリケーション状態アップデートを、様々な構成データに基づいて、アプリケーション状態サーバーへ及び／又はコンピュータ・デバイスへ与えるように構成し得る。例えば、第１のアプリケーションについては、モバイル機器はアプリケーション状態情報をコンピュータ・デバイスへ直接に与えるように構成でき、一方、他のアプリケーションについては、モバイル機器はアプリケーション状態情報をアプリケーション状態サーバー（例えば図１Ａのアプリケーション状態サーバー１２）へ与えるように構成し得る。
【００３７】
図２は、アプリケーション状態情報を外部デバイス、例えばアプリケーション状態サーバー又は遠隔コンピュータ・デバイスへ与える例示的モバイル機器３０を示すブロック図である。図２の例において、モバイル機器３０は、ディスプレイ３２、制御ユニット３４、及び外部デバイス・インターフェース４４を含む。制御ユニット３４は、状態決定モジュール３６、状態アップデート・モジュール３８、タイミング・モジュール４０、及び一つ以上のアプリケーション４２を含む。モバイル機器３０はモバイル機器１６（図１Ａ）又はモバイル機器２２（図１Ｂ）に相当することがあり、或る例では、モバイル機器１６及びモバイル機器２２に類似した機能を含み得る。
【００３８】
ディスプレイ３２は、液晶ディスプレイ（ＬＣＤ）スクリーン、タッチスクリーン・ディスプレイ、又はテキスト及び／又は画像をユーザーに提示することができる他のディスプレイに相当し得る。ディスプレイ３２は、モバイル機器３０のユーザ・インタフェースの少なくとも一部を形成し得る。タッチスクリーンに対応する場合、例えばユーザーがタッチスクリーンの領域を選択するとき、ディスプレイ３２はタッチスクリーンを介してユーザーから入力を付加的に受け取るであろう。外部デバイス・インターフェース４４は、外部デバイスと交信するためのインターフェースに相当し得る。外部デバイス・インターフェース４４は、ミニ若しくはマイクロＵＳＢポート、ネットワーク・インターフェイス・カード、無線ネットワーク・インタフェース、例えば無線ＬＡＮ（ＷＬＡＮ）又は第三世代パートナーシップ・プロジェクト（３ＧＰＰ）ネットワークに接続するためのインターフェース、又は他のインターフェースに相当し得る。或る例では、モバイル機器３０は、様々な方式で外部デバイスと交信するための一つ以上の外部デバイス・インターフェース４４を含み得る。
【００３９】
制御ユニット３４は、一つ以上のプロセッサ又は処理ユニット、例えばマイクロ・プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、フィールド・プログラム可能なゲート・アレイ（ＦＰＧＡ）又は他の処理ユニットを含み得る。制御ユニット３４は、例えば、状態決定モジュール３６、状態アップデート・モジュール３８、タイミング・モジュール４０、及びアプリケーション４２のための指令を記憶し得るコンピュータ読取り可能記憶媒体（例えばフラッシュメモリ）を更に含み得る。従って、一つ以上の処理ユニットは、状態決定モジュール３６、状態アップデート・モジュール３８、タイミング・モジュール４０、及びアプリケーション４２に帰属する機能を実行する指令を実行し得る。或る例では、状態決定モジュール３６、状態アップデート・モジュール３８、タイミング・モジュール４０、及びアプリケーション４２の何れか又は全ては、個々のハードウェア・ユニットに対応し得る。状態決定モジュール３６、状態アップデート・モジュール３８、タイミング・モジュール４０、及びアプリケーション４２の何れか又は全ては、機能的に集積し得るか、及び／又は更なるモジュール若しくはユニットに分離し得る。
【００４０】
アプリケーション４２は、制御ユニット３４で実行可能一つ以上のアプリケーションを含む場合があり、これは他のデバイスにより実行することもできる（或いは、それについて機能的に類似するものを実行できる）。例えば、アプリケーション４２は、ウェブ・ブラウザ、電子メール・クライアント、ゲーム、ドキュメント・リーダー、表計算プログラム、テキスト・エディタ、マルチメディア・プレイヤー（例えばビデオ及び／又は音楽プレーヤー）、又は他のアプリケーションの一つ以上を含み得る。上述のように、アプリケーション４２の何れか又は全てのための指令は、制御ユニット３４のコンピュータ読取り可能な記憶媒体に記憶し得る。この指令は、制御ユニット３４の一つ以上のプロセッサ又は処理ユニットによって実行し得る。
【００４１】
状態決定モジュール３６は、アプリケーション４２が制御ユニット３４により実行される間、一つ以上のアプリケーション４２のアプリケーション状態を決定するように構成し得る。アプリケーション４２の実行は一般に、例えばユーザーからの入力受け取りを含み、これに応じて、アプリケーション４２は出力、例えば視覚的表示、を生成する。一般に、現在のアプリケーション状態は、アプリケーション４２の一つの実行に関する情報に対応しており、これは、同一のユーザー入力を受け取ることなく、同一又は異なるデバイスに視覚的表現の少なくとも一部を提示するようにアプリケーションを実行させるのに充分である。
【００４２】
一例として、ウェブ・ブラウザ・アプリケーションに関して、ウェブ・ブラウザは、ユーザーから望ましいウェブ・ページのユニフォーム・リソース・ロケーター（ＵＲＬ）の形式で、入力を受け取っ得る。それに加えて、ウェブ・ブラウザは、ウェブ・ページの特定の部分をスクロールする型式で、ユーザー入力を受け取っ得る。ウェブ・ブラウザのための例示的なアプリケーション状態は、ＵＲＬと、或る例では、一連のスクロール又はユーザーによる入力としての他の動作の結果として現在表示されているＵＲＬに対応するウェブ・ページの一部とを含み得る。即ち、状態決定モジュール３６は、ＵＲＬと、ディスプレイ３２によって表示されているＵＲＬに対応するウェブ・ページの現在の位置とを決定して、ＵＲＬ及びウェブ・ページの位置の表現を含むアプリケーション状態を構成し得る。従って、ウェブ・ブラウザを実行している他のデバイスは、外部デバイス・インターフェース４４を介してモバイル機器３０からアプリケーション状態を受け取って、ウェブ・ブラウザをＵＲＬへ移動させて、次いで、モバイル機器３０から受け取られるアプリケーション状態情報に基づいて、モバイル機器３０により表示されていたウェブ・ページの一部を自動的にスクロールし得る。
【００４３】
他の例として、電子メール・クライアント・アプリケーションに関して、電子メール・クライアントは、選択された電子メール文書の形式で入力を受け取るであろう。それに加えて、電子メール・クライアントは、電子メール文書の特定の部分にスクロールする形式でユーザー入力を受け取るであろう。制御ユニット３４が電子メール・クライアントを実行する間、状態決定モジュール３６はディスプレイ３２により表示されている現在の電子メール文書と、また或る例では、表示される電子メール文書の現在の部分とを決定し、現在の電子メール文書と、表示されている電子メール文書の現在の部分とを表すアプリケーション状態情報を構成し得る。従って、電子メール・クライアントを実行している他のデバイスは、この他のデバイスがユーザーの電子メール・サーバにアクセスできると仮定すれば、外部デバイス・インターフェース４４を介してモバイル機器３０からアプリケーション状態を受け取って、電子メール・クライアントに同じ電子メール文書を表示させて、次いで、モバイル機器３０から受け取ったアプリケーション状態情報に基づいて、モバイル機器３０により表示されていた３-メール文書の分部に自動的にスクロールさせ得る。
【００４４】
他の例において、アプリケーション状態は、制御ユニット３４により実行されている特定のアプリケーションに基づいて他の情報を含み得る。例えば、制御ユニット３４により実行されるゲーム・アプリケーションは、遊戯板に残っているピース、デックに残っているカード及びそのデック中のカードの順序、遊戯に残っている牌及びそれらの位置（例えば麻雀用）、得点、タイミング情報又はゲームの視覚的表現の少なくとも一部を再現するための他のデータを表すアプリケーション状態を有し得る。他の例として、ドキュメント・リーダーは、現在表示されている開かれた文書及びその文書の一部を表すアプリケーション状態を有し得る。更に他の例として、マルチメディア・アプリケーション（例えばビデオ又はオーディオ・プレーヤー）は、再生されている歌又はビデオと、再生されている歌又はビデオについての現在の時間とを表すアプリケーション状態を有し得る。マルチメディア・アプリケーションの例では、視覚的表現の一部は、歌又はビデオの現在の時間的位置に対応する水平スクロールバーに相当し得る。
【００４５】
或る例では、例えば、図１Ｂで示すように、状態決定モジュール３６は、外部デバイスからの要請によって制御ユニット３４により実行される一つ以上のアプリケーション４２についての現在のアプリケーション状態を決定し得る。他の例では、状態決定モジュール３６は、例えば、状態アップデート・モジュール３８からの要請に応じて制御ユニット３４によりーー実行される一つ以上のアプリケーション４２についての現在のアプリケーション状態を定期的に決定し得る。状態アップデート・モジュール３８は、例えば、図１Ａに示すように、アプリケーション４２についての現在のアプリケーション状態を定期的に要請して、アプリケーションについてのアップデートを、外部アプリケーション状態サーバーへ与えるように構成し得る。そのような例では、状態アップデート・モジュール３８は、一つ以上のアプリケーション４２についての状態アップデートをアプリケーション状態サーバーへ定期的に与えるように構成し得る。
【００４６】
状態アップデート・モジュール３８は、状態決定モジュール３６から一つ以上のアプリケーション４２についての現在のアプリケーション状態の指標を受け取っ得る。次いで状態アップデート・モジュール３８は、アプリケーション状態情報をアプリケーション状態サーバーへ与え得る。状態アップデート・モジュール３８は、状態アップデートについての文脈上の情報、例えばモバイル機器３０を一意的に特定するモバイル機器３０についての固有の識別子をアプリケーション状態サーバーへ与え得る。状態アップデート・モジュール３８は、タイミング・モジュール４０と相互作用して、状態アップデートをアプリケーション状態サーバーへ与える時間を決定するようにし得る。例えば、状態アップデート・モジュール３８は、アプリケーション状態アップデートをアプリケーション状態サーバーへ漸進的な時間で、例えばＸ分又はＸ時間ごとに、与えるように構成し得る。従って、タイミング・モジュール４０が、時間は期限切れになったことを示すとき、状態アップデート・モジュール３８は、現在のアプリケーション状態を状態決定モジュール３６から読み出して、この現在のアプリケーション状態をアプリケーション状態サーバーに送信し得る。
【００４７】
他のコンピュータ・デバイスがアプリケーションの実行を開始したことの外部デバイスからの指標（例えば、アプリケーション状態サーバー又はコンピュータ・デバイス自体からのメッセージ）に応じて、状態アップデート・モジュール３８は、将来のアプリケーション状態アップデートを停止し得る。例えば、状態アップデート・モジュール３８は、タイミング・モジュール４０を無効にするか、アップデート状態フラグを偽に設定して（ここでは、状態アップデート・モジュール３８がアップデート状態フラグを検査して、タイミング・モジュール４０が満了になるときに、アプリケーション状態アップデートアプリケーション状態サーバーへ送るか否かを決定し得る）、アプリケーションの実行を停止して、又は将来のアプリケーション状態アップデートがモバイル機器３０から送られることを阻止し得る。外部コンピュータ・デバイスがアプリケーションをもはや実行していないという指標に応じて、状態アップデート・モジュール３８は、アプリケーション状態アップデートを送ることを再開し得る。
【００４８】
或る例では、モバイル機器３０は、ユーザーがもはやアプリケーション状態アップデートをアプリケーション状態サーバーに与えたくないことを表すユーザーからの入力を受け取るであろう。或る例では、モバイル機器３０はアプリケーション状態アップデートを送るのを停止するための指標を単に受け取って、これは、コンピュータ・デバイスがモバイル機器３０により実行されていた一つ以上のアプリケーションの実行を開始したという決定に応じて、送信デバイスが生成してモバイル機器３０へ送るようにし得る。何れの場合でも、モバイル機器３０に関連した他のデバイスが、状態アップデート・モジュール３８がアプリケーション状態アップデートを生成したアプリケーションの実行を開始したときに、状態アップデート・モジュール３８は、アプリケーション状態アップデートを通常は阻止するであろう。
【００４９】
モバイル機器の例に関して説明したが、他の複数のデバイスは、モバイル機器３０のそれに類似する構成要素を含むであろう。例えば、ラップトップ・コンピュータ、タブレット・コンピュータ、パーソナル・コンピュータ、ワークステーション・コンピュータ、又はその他のそのようなコンピュータ・デバイスは、モバイル機器３０に関して説明したものに類似した構成要素を含むであろう。
【００５０】
図３は、アプリケーション状態サーバー１２の構成要素の例示的配置を示すブロック図である。図３の例において、アプリケーション状態サーバー１２は、制御ユニット５２及び外部デバイス・インターフェース６０を含む。外部デバイス・インターフェース４４は、外部デバイスと交信するためのインターフェースに相当し得る。外部デバイス・インターフェース４４は、ＵＳＢポート、ネットワーク・インターフェイス・カード、無線ネットワーク・インタフェース（例えば無線ＬＡＮ（ＷＬＡＮ）に接続するためのインターフェース）又は他のインターフェースに相当し得る。或る例では、アプリケーション状態サーバー１２は、様々な方式で外部デバイスと交信するための一つ以上の外部デバイス・インターフェースを含み得る。
【００５１】
図３の例では、制御ユニット５２は、状態アップデート・モジュール５４、状態検索モジュール５６、状態データ５８、及びデバイス分類モジュール６２を含む。制御ユニット５２は、一つ以上のプロセッサ若しくは処理ユニット、例えばマイクロ・プロセッサ、ＡＳＩＣ、ＤＳＰ、ＦＰＧＡ又は他の処理ユニットを含み得る。制御ユニット５２は、コンピュータ読取り可能な記憶媒体、例えばフラッシュ・メモリを更に含むことがあり、これは、例えば、状態アップデート・モジュール５４、状態検索モジュール５６、及びデバイス分類モジュール６２のための指令を記憶し得る。従って、一つ以上の処理ユニットは、状態アップデート・モジュール５４、状態検索モジュール５６、及びデバイス分類モジュール６２に帰属する機能を実行させる指令を実行し得る。或る例では、状態アップデート・モジュール５４、状態検索モジュール５６、及びデバイス分類モジュール６２の一部又は全ては、個々のハードウェア・ユニットに対応し得る。状態アップデート・モジュール５４、状態検索モジュール５６、及びデバイス分類モジュール６２の一部又は全ては、機能的に集積し得るか、及び／又は更なるモジュール又はユニットに分離し得る。
【００５２】
状態データ５８は、様々な異なるデバイスにより実行されるアプリケーションについてのアプリケーション状態から成るデータベースに対応し得る。他の例では、状態データ５８は、単層ファイル、一つ以上のデータ構造又は他の組織的計画として体系化し得る。一般に、状態データ５８は、多数の関連デバイスの何れでも実行することができるアプリケーションについて現在のアプリケーション状態を記憶する。例えば、一つのグループのデバイスは、ユーザーのパーソナル・コンピュータ及びユーザーの携帯電話を含み得る。状態データ５８は、アプリケーション（例えば、ウェブ・ブラウザ、電子メール・クライアント、ゲーム、マルチメディア・アプリケーションなど）についての現在のアプリケーション状態を、一つのグループ内の一つのデバイスにより実行されたように記憶するようにして、例えば、ユーザーがグループ内の他のデバイスへ切り換えてアプリケーションを実行するときに、グループ内の他のデバイスがアプリケーション状態を取得して、アプリケーションの実行を再開するようにし得る。
【００５３】
状態データ５８は、一つのグループのデバイスに関連した多数のアプリケーションの現在のアプリケーション状態を記憶し得る。更に、状態データ５８は、多数のグループのデバイスについての現在のアプリケーション状態を記憶し得る。デバイス分類モジュール６２は、デバイスを関連付けてグループを形成させ得る。管理者又は他のユーザーは、一緒にグループを形成するためにデバイスを関連付けるための情報を与え得る。例えば、グループに加えるべきデバイスを使用している間、ユーザーはログイン証明（例えばユーザー名及びパスワード）をアプリケーション状態サーバー１２へ与えて、その使用されるデバイスがユーザーのログイン証明に関連付けされたグループに加えねばならないことを示し得る。ユーザーは、複数のグループを作成し得る。各々のグループは、グループの任意のデバイスにより実行することができる一つ以上のアプリケーションに関連し得る。デバイス分類モジュール６２は、状態データ５８内にデバイスの間の関係を記憶し得る。
【００５４】
状態アップデート・モジュール５４は、グループのデバイスから、外部デバイス・インターフェース６０を介してアプリケーション状態アップデートを受け取っ得る。アプリケーション状態アップデートを受け取ると、状態アップデート・モジュール５４は状態データ５８に問い合わせて、アプリケーション状態アップデートが受け取られたデバイスを含むグループを決定し得る。次いで状態アップデート・モジュール５４は、アップデートが受け取られたデバイスを含むグループに関連して、状態データ５８内の対応するアプリケーションについての現在のアプリケーション状態を記憶し得る。
【００５５】
状態検索モジュール５６は、特定のグループのデバイスから、特定のアプリケーションについての現在のアプリケーション状態のための要請を受け取っ得る。それに応じて、状態検索モジュール５６は、アプリケーションについて、及び要請されたデバイスを含むグループについて状態データ５８に問い合わせて、現在のアプリケーション状態を取得して、この現在のアプリケーションを、要請を送ったデバイスへ、外部デバイス・インターフェース６０を介して与え得る。更に、状態検索モジュール５６は、メッセージを生成して、このメッセージを、外部デバイス・インターフェース６０を介してアプリケーション・サーバー１２へ現在の状態アップデートを送ったグループのデバイスへ送信し、このデバイスにアプリケーション状態アップデートを送信することを停止させるようにし得る。
【００５６】
或る例においては、制御ユニット５２は、グループの一つのデバイスだけが「トークン（ｔｏｋｅｎ）」を与えられ得るトークン・パッシング計画を実行し得る。トークンを有するデバイスは、アプリケーション状態アップデートを送信する権利を受けるようにし得る。従って、状態アップデート・モジュール５４は、アプリケーション状態アップデートを受信すると、アップデートを与えるデバイスがトークンを有しているか否か（例えば、デバイスがアプリケーション状態アップデートを与えることを許可されているか否か）を決定して、デバイスがトークンを有している（或いは、さもなければ現在のアプリケーション状態をアップデートすることを許可されている）ときだけ、現在のアプリケーション状態をアップデートするようにし得る。トークンを許可されたデバイス以外のグループのデバイスはトークンを要請して、その場合には、トークンを現在のデバイスから取り除いて、要請しているデバイスに渡し得る。一般に、トークンを有するデバイスは、特定のアプリケーションを実行するためにユーザーにより現在使用されているデバイスに相当し得る。
【００５７】
図４は、定期的なアプリケーション状態アップデートをアプリケーション状態サーバーへ与える例示的方法を示すフローチャートである。例示の目的でモバイル機器３０（図２）に関して説明するが、任意の適宜なデバイスを用いて、図４の例示的方法を実装して実行し得ることを理解されたい。
【００５８】
先ず、モバイル機器３０はアプリケーションの実行（８０）を開始し得る。例えば、制御ユニット３４はアプリケーション４２の一つの実行を開始し得る。制御ユニット３４は、例えば、実行を開始するアプリケーション４２の一つの選択をユーザーから受け取っ得る。例えば、ユーザーはモバイル機器３０のタッチスクリーンとやりとりして、アプリケーションに対応するアイコンを選択して、制次いで、アプリケーションのために実行指令を取得して開始し得る。
【００５９】
状態決定モジュール３６は、実行されたアプリケーションについての現在のアプリケーション状態を決定し得る（８２）。例えば、ウェブ・ブラウザ・アプリケーションについては、状態決定モジュール３６は、現在のウェブ・ページＵＲＬと、表示されているウェブ・ページの位置とを決定し得る。他の例として、電子メール・アプリケーションについては、状態決定モジュール３６は、読まれている現在の電子メール文書と、表示されている電子メール文書の位置を決定し得る。他の例として、ゲーム・アプリケーションについては、状態決定モジュール３６は、ゲームの現在の状態、例えば、デック内のカードとそれらの順序、遊戯中ーのカードとそれらの位置（例えば、ソリティア・ゲーム用）、遊戯場における牌の位置（例えば、麻雀用）、又は他の位置及びゲーム・ピースの存在/不存在を決定し得る。また他の例として、マルチメディア・アプリケーションについては、状態決定モジュール３６は、再生されるマルチメディア・データ内の現在の時間的位置のみならず、マルチメディア・アプリケーションにより再生される現在のマルチメディア・ファイル（例えば、歌又はビデオ）を決定し得る。
【００６０】
次いで状態アップデート・モジュール３８は、アプリケーション状態アップデートをアプリケーション状態サーバー、例えばアプリケーション状態サーバー１２（図１）へ与え得る（８４）。或る例においては、状態アップデート・モジュール３８はアプリケーション状態アップデートを、制御ユニット３４により実行されているアプリケーションを実行することができるデバイスへ直接に与え得る。アプリケーション状態アップデートを与えた後、図４の例において、状態アップデート・モジュール３８は、例えば、後続のアプリケーション状態アップデートを与える前に所定の時間を待つために、タイミング・モジュール４０を実行（８６）し得る。
【００６１】
所定の時間が満了した（９０）という指標を待っている間、状態アップデート・モジュール３８は、アプリケーション状態アップデートを与えるのを停止する（８８）ために、指標（例えば、メッセージ又は信号）についてのチェックをなし得る。そのようなメッセージが受信されなかった（８８の「ＮＯ」の枝）ならば、制御ユニット３４はタイミング・モジュール４０（８６）の実行を続行し得る。先行するアプリケーション状態アップデートから所定の時間が満了した（９０の「ＹＥＳ」の枝）ならば、状態決定モジュール３６は、実行されるアプリケーションについての現在のアプリケーション状態を再び決定し（８２）、状態アップデート・モジュール３８は、アプリケーション状態アップデートを例えばアプリケーション状態サーバーへ与えて（８４）、次いで、タイミング・モジュール４０を再初期化し得る（８６）。所定の時間が未だ満了していない（９０の「ＮＯ」の枝）ならば、状態アップデート・モジュール３８はタイミング・モジュール４０の実行（８６）を続行し得る。
【００６２】
他方、状態アップデート・モジュール３８がアプリケーション状態アップデートを送るのを停止するためにメッセージを受信した（８８の「ＹＥＳ」の枝）ならば、状態アップデート・モジュール３８は将来の状態アップデートを送信することを阻止し得る（９２）。或る例では、制御ユニット３４はアプリケーションの実行するのを停止するであろう。これに代えて、制御ユニット３４は、アプリケーション状態アップデートを送信することなく、アプリケーションの実行を続行し得る。
【００６３】
図４の方法は、以下のように要約されるであろう。即ち、第１のデバイスによりアプリケーションを実行し、アプリケーションの現在の状態を決定し、ここで現在のアプリケーション状態はアプリケーションの現在の視覚的表現の少なくとも一部を含み、ユーザーが介在することなく、決定された現在のアプリケーション状態の指標を第１のデバイスから第２の異なるデバイスへ送信し、ここで決定された現在のアプリケーション状態の指標は、アプリケーションの現在の視覚的表現の少なくとも一部を再生させるための情報を含み、第３のデバイスがアプリケーションを実行するという指標を受け取ることに応じて、現在のアプリケーション状態の後続の指標が第１のデバイスから第２のデバイスへ送られることを阻止する。図２に関して説明されるモバイル機器３０の例示的構成要素に関して上述したが、他のデバイスが図４の方法を実行し得ることを理解されたい。
【００６４】
図５は、モバイル機器とコンピュータ・デバイスの間でアプリケーション状態サーバーを介してアプリケーション状態情報を交換するための例示的方法を示すフローチャートである。モバイル機器及びコンピュータ・デバイスの例に関して説明したが、図５の方法は様々な形式の二つ以上のデバイス、例えば、二つ以上のモバイル機器、二つ以上の定置コンピュータ・デバイス、及び／又はモバイルと定置とのデバイスの任意の組合せにより実行し得ることを理解されたい。或る例では、コンピュータ・デバイスに対応するデバイスは、アプリケーション状態サーバーに帰属する機能を付加的に実行し得る。
【００６５】
図５の例において、モバイル機器、例えば、モバイル機器１６（図１Ａ）はアプリケーションを実行する（１００）。アプリケーションを実行している間、モバイル機器１６は、現在のアプリケーション状態を示すアプリケーション状態アップデートをアプリケーション状態サーバー１２に定期的に送信（１０２）し、アプリケーション状態サーバー１２は現在のアプリケーション状態を記憶する（１０４）。例えば、アプリケーション状態サーバー１２はモバイル機器１６についての識別子を決定し、受信したアプリケーション状態を、モバイル機器１６についての識別子を含むデバイスのグループに関連させてデータベースに記憶し得る。
【００６６】
アップデートを送信することを停止するメッセージが受信されない（１０６の「ＮＯ」の枝）間、モバイル機器１６はアプリケーションの実行（１００）を続行して、アプリケーション状態アップデートを定期的にアプリケーション状態サーバー１２へ送信（１０２）し得る。コンピュータ・デバイス１８が、例えば、アプリケーション（又は類似のアプリケーション）の実行を開始した（１０８）後、コンピュータ・デバイス１８はアプリケーション状態サーバー１２からのアプリケーションについての現在のアプリケーション状態を要請（１１０）し得る。この例に示されるように、アプリケーション状態サーバーがアプリケーションについての現在のアプリケーション状態を記憶するならば、アプリケーション状態サーバー１２は記憶されたアプリケーション状態を取得（１１２）して、新たなデバイス（この例では、コンピュータ・デバイス１８）がアプリケーションの実行を開始したという指標をモバイル機器１６へ送信（１１４）し得る。従って、モバイル機器１６は、アプリケーション状態サーバー１２からの指標を受け取ること（１０６の「ＹＥＳ」の枝）に応じて、モバイル機器１６は将来の状態アップデートを阻止（１１６）し得る。
【００６７】
更に、アプリケーション状態サーバー１２は、現在のアプリケーション状態の指標をコンピュータ・デバイス１８へ送信（１１８）し得る。現在のアプリケーション状態の指標を受け取った（１２０）後に、コンピュータ・デバイス１８は、アプリケーョン状態の受け取った指標により示される点からアプリケーションの実行を再開（１２２）し得る。例えば、ウェブ・ブラウザ・アプリケーションについては、コンピュータ・デバイス１８は現在のアプリケーション状態の指標によって示されるＵＲＬからウェブ・ページを検索して、ウェブ・ページを表示し、現在のアプリケーション状態の指標によって示される位置へ自動的にスクロールし得る。電子メール・クライアント・アプリケーションについては、他の例として、コンピュータ・デバイス１８はアプリケーション状態の指標の電子メール文書を提示して、アプリケーション状態によって示される位置へ自動的にスクロールし得る。ゲーム・アプリケーションについては、コンピュータ・デバイス１８は、アプリケーション状態の指標によって示されるように、ゲームの状態を再現し得る。マルチメディア・アプリケーションについては、コンピュータ・デバイス１８は、現在のアプリケーション状態によって示されるマルチメディアのデータ・ファイル（例えば、歌又はビデオ）をロードして、アプリケーション状態の指標によって示される時間的位置からマルチメディアのデータ・ファイルの再生を開始し得る。
【００６８】
図６は、モバイル機器とコンピュータ・デバイスとの間でアプリケーション状態サーバーを介してアプリケーション状態情報を交換する他の例示的方法を示すフローチャートである。図６の例では、アプリケーション状態の指標を定期的に与えるのではなく、モバイル機器１６が、例えばアプリケーション状態サーバー１２からの要請に応じて、オンデマンドで現在のアプリケーション状態の指標を与える。この場合もやはり、図１Ａの例の要素に関して説明したが、図６の方法は任意の適宜なデバイス、例えば、二つ以上のモバイル機器、二つ以上の定置コンピュータ・デバイス、又はモバイルと定置とのデバイスの任意の組合せにより実行し得ることを理解されたい。
【００６９】
図６の例では、モバイル機器１６はアプリケーションを実行（１４０）し、例えば、アプリケーション状態サーバー１２から現在のアプリケーション状態を送る要請の受信（１４２）までアプリケーションの実行を続行し得る。アプリケーションの実行の間の或る点で、コンピュータ・デバイス１８はアプリケーションの実行を開始（１４４）し得る。従って、コンピュータ・デバイス１８は、アプリケーション状態サーバー１２から、現在のアプリケーション状態を要請（１４６）し得る。現在のアプリケーション状態の要請に応じて、アプリケーション状態サーバー１２は、コンピュータ・デバイス１８に関連して、アプリケーションを実行することができるデバイス（この例ではモバイル機器）を決定し得る。従って、アプリケーション状態サーバー１２は、モバイル機器１６から現在のアプリケーション状態を要請（１４８）し得る。
【００７０】
現在のアプリケーション状態についての要請に応じて、モバイル機器１６は、現在のアプリケーション状態の指標をアプリケーション状態サーバー１２へ送信（１５０）し得る。アプリケーション状態サーバー１２は、現在のアプリケーション状態の指標を受信（１５２）して、次いで現在のアプリケーション状態の指標をコンピュータ・デバイス１８へ送信（１５４）し得る。現在のアプリケーション状態の指標を受信（１５６）した後に、コンピュータ・デバイス１８は現在のアプリケーション状態においてアプリケーションの実行を再開（１５８）し得る。
【００７１】
図７は、二つのデバイス、例えば、モバイル機器２２とコンピュータ・デバイス２４（図１Ｂ）との間でアプリケーション状態を交換する他の例示的方法を示すフローチャートである。図７の例示的方法では、モバイル機器２２とコンピュータ・デバイス２４とは、アプリケーション状態サーバーの使用を伴うことなく、現在のアプリケーション状態の指標を交換する。例示の目的でモバイル機器２２及びコンピュータ・デバイス２４に関して説明するが、任意の二つのデバイス、例えば、二つ以上のモバイル機器、二つ以上の定置コンピュータ・デバイス、又はそれらの任意の組合せで、図７の技術を実行し得ることを理解されたい。
【００７２】
図７の例では、モバイル機器２２はアプリケーションを実行（１８０）し、現在のアプリケーション状態についての要請の受信（１８２）を待つ。モバイル機器２２によるアプリケーションの実行の間の或る点で、コンピュータ・デバイス２４はアプリケーションの実行を開始し得るか、或いは、例えばユーザーから、アプリケーションの実行を開始する（１８４）要請を受け取っ得る。これに応じて、コンピュータ・デバイス１８は、モバイル機器２２により実行される現在のアプリケーション状態の指標の要請をモバイル機器２２から送信し得る（１８６）。
【００７３】
この要請に応じて、モバイル機器２２は現在のアプリケーション状態の指標をコンピュータ・デバイス１８へ送信（１８８）し得る。モバイル機器２２から現在のアプリケーション状態の指標を受信（１９０）した後に、コンピュータ・デバイス１８は、現在のアプリケーション状態の指標によって示される状態から、アプリケーションの実行を再開（１９２）し得る。
【００７４】
この開示事項において説明された技術は、少なくとも部分的には、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組合せに実装し得る。例えば、説明された技術の様々な態様は、一つ以上のマイクロ・プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、アプリケーション特定集積回路（ＡSIC）、フィールド・プログラム可能なゲート・アレイ（ＦＰＧＡ）、又はそのような構成要素の任意の組み合わせのみならず、他の均等な集積又はディスクリート論理回路を含むも一つ以上のプロセッサ内に実装し得る。用語「プロセッサ」語又は「処理回路」は一般に、上述の論理回路、単独又は他の論理回路との組み合わせ、又は任意の他の均等な回路の何れかを指し得る。ハードウェアから成る制御ユニットは、この開示事項の技術の一つ以上を実行し得る。
【００７５】
このようなハードウェア、ソフトウェア、及びファームウェアは、この開示事項において説明された様々な操作及び機能を支援するために、同一のデバイス内又は個別のデバイス内に実装し得る。更に、説明されたユニット、モジュール又は構成要素の何れも、一緒に実装し得るか、又は離散的であるが相互利用可能な論理デバイスとして実装し得る。モジュール又はユニットとしての異なる特徴の説明は、異なる機能的態様を強調することを目的としており、そのようなモジュール又はユニットが個別のハードウェア又はソフトウェア構成要素によって実現されねばならないことを必ずしも示唆するものではない。むしろ、一つ以上のモジュール又はユニットに関連した機能は、個別のハードウェア又はソフトウェア構成要素によって実行し得るか、或いは、共通の又は個別のハードウェア又はソフトウェア構成要素内に集積し得る。
【００７６】
この開示事項において説明された技術は、指令を包含するコンピュータ読取り可能な媒体、例えばコンピュータ読取可能な記憶媒体に実施又はコード化し得る。コンピュータ読取可能な媒体に埋設若しくはコード化された指令は、例えば、指令が実行されるときに、プログラム可能なプロセッサ、又は他のプロセッサに方法を実行させ得る。コンピュータ読取可能な記憶媒体は、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、プログラム可能型読取専用メモリ（ＰＲＯＭ）、消去可能・プログラム可能型読取専用メモリ（ＥＰＲＯＭ）、電子的消去可能・プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ハードディスク、ＣＤ−ＲＯＭ、フロッピー・ディスク、カセット、磁気媒体、光学式媒体又は他のコンピュータ読取可能な記憶媒体を含み得る。用語「コンピュータ読取可能な記憶媒体」とは、物理的記憶媒体を意味するのであって、信号、搬送波、又は他の一時的媒体を意味するものではないことを理解されたい。このように、コンピュータ読取可能な記憶媒体は、非一時的な物理的媒体として理解されねばならない。
【００７７】
様々な例について説明した。これら及びその他の例は、以下の請求項の範囲内にある。
【図１】
0005435833.tif 000002
【図２】
0005435833.tif 000003
【図３】
0005435833.tif 000004
【図４】
0005435833.tif 000005
【図５】
0005435833.tif 000006
【図６】
0005435833.tif 000007
【図７】
0005435833.tif 000008