説明

クラウドベースのアプリケーションのためのエージェントレスなフォローミーサービス

本明細書では、エージェントレスなフォローミーサービスを提供するための技術について一般に述べる。例示的なウェブブラウザは、参照テーブルへの第1のリンクをポータブルトークンから受け取るように構成されてよい。ウェブブラウザは、進行中のウェブアプリケーションへの第2のリンクを参照テーブルから取り出すように構成されてよい。第2のリンクは、進行中のウェブアプリケーションの第1の状態を反映してよい。ウェブブラウザは、第2のリンクに対応する進行中のウェブアプリケーションを開くように構成されてよい。ユーザが進行中のウェブアプリケーションと対話するのに伴って、進行中のウェブアプリケーションは、第1の状態から第2の状態に遷移するように構成されてよい。ウェブブラウザは、進行中のウェブアプリケーションの第2の状態を反映するように、参照テーブル中の第2のリンクを更新するように構成されてよい。

【発明の詳細な説明】
【背景技術】
【0001】
本明細書に別段の指示がない限り、このセクションに記載の題材は、本出願における特許請求の範囲に対する従来技術ではなく、また、このセクションに含めることによって従来技術と認められるものではない。
【0002】
フォローミー(follow−me)サービスは、ユーザがさまざまなコンピューティング環境における複数のコンピューティングデバイス間で移動しているときでも、進行中のセッションを維持することができる。フォローミーサービスはエージェントを介して実施することができるが、エージェントは、進行中のセッションに関係するデータをコンピューティングデバイス間で交換するのを容易にするプログラムである。たとえば、ユーザが、第1のコンピューティングデバイス上でアプリケーションを実行し、それにより第1のコンピューティングデバイス上でセッションを開始する場合がある。アプリケーションが第1のコンピューティングデバイス上でまだ開いている間に、ユーザは、第1のコンピューティングデバイスの近傍から、第2のコンピューティングデバイスの近傍に移動することがある。この場合にエージェントは、進行中のセッションを第1のコンピューティングデバイスから第2のコンピューティングデバイスに移行することができる。このようにして、ユーザは、アプリケーションを依然として第1のコンピューティングデバイス上で実行しているかのように、第2のコンピューティングデバイス上でアプリケーションと対話し続けることができる。
【0003】
進行中のセッションの移行を容易にするために、ユーザは、第1と第2の両方のコンピューティングデバイス上で、エージェントを事前インストールして事前構成することができる。移行に先立ってエージェントをインストールして構成するプロセスは、面倒で時間がかかる可能性がある。さらに、このプロセスは一般に、ユーザが使用していることになるコンピューティングデバイスに関する予備知識をユーザが持っていることを前提とする。
【発明の概要】
【0004】
本開示では一般に、フォローミーサービスを提供するためのコンピュータ実施方法について述べる。いくつかの例示的な方法によれば、プロセッサとメモリとを有するコンピューティングデバイスを、以下の動作の1つまたは複数を実施するように構成することができる。コンピューティングデバイスは、参照テーブルへの第1のリンクを受け取るように構成される。第1のリンクは、進行中のウェブアプリケーションの第1の状態に対応する第2のリンクを含んでよい。コンピューティングデバイスは、第1のリンクを介して参照テーブルから第2のリンクを取り出すように構成される。コンピューティングデバイスは、コンピューティングデバイス上で実行されるように構成されたウェブブラウザ上で、第2のリンクに対応する進行中のウェブアプリケーションを開くように構成される。進行中のウェブアプリケーションをウェブブラウザ上で開くと、コンピューティングデバイスは、進行中のウェブアプリケーションの第2の状態を反映するように、参照テーブル中の第2のリンクを更新するように構成される。
【0005】
本開示では一般に、いくつかのコンピュータ記憶媒体について述べる。いくつかの例示的なコンピュータ記憶媒体には、コンピュータによって実行されたときにフォローミーサービスを提供するようにコンピュータを適合させる方法のためのコンピュータ実行可能命令が記憶されてよい。いくつかの例示的な方法によれば、コンピュータは、以下の動作の1つまたは複数を実施するように構成されてよい。コンピュータは、ポータブルトークンがコンピュータの近傍内にあることを示す指示(indication)を受け取るように構成される。ポータブルトークンがコンピューティングデバイスの近傍内にあることを示す指示を受け取ったとき、コンピュータは、参照テーブルへの第1のリンクをポータブルトークンから受け取るように構成される。参照テーブルは、進行中のウェブアプリケーションの第1の状態に対応する第2のリンクを含んでよい。コンピュータは、第1のリンクを介して参照テーブルから第2のリンクを取り出すように構成される。コンピュータは、コンピュータによって実行されるウェブブラウザ上で、第2のリンクに対応する進行中のウェブアプリケーションを開くように構成される。進行中のウェブアプリケーションが開かれたとき、コンピュータは、進行中のウェブアプリケーションの第2の状態を反映するように、参照テーブル中の第2のリンクを更新するように構成される。コンピュータは、ポータブルトークンがコンピュータの近傍外にあることを示す指示を受け取るように構成される。ポータブルトークンがコンピュータの近傍外にあることを示す指示が受け取られたとき、コンピュータは、ウェブブラウザ上で、進行中のウェブアプリケーションを閉じるように構成される。
【0006】
本開示では一般に、フォローミーサービスを提供するように構成された、いくつかのコンピュータシステムについて述べる。いくつかの例示的なコンピュータシステムは、プロセッサと、プロセッサに結合されたメモリと、メモリからプロセッサで実行されるウェブブラウザとを備えるように構成されてよい。いくつかの例示的なコンピュータシステムはさらに、ウェブブラウザに結合されたウェブブラウザプラグインを備えるように構成されてよい。いくつかの例示的なウェブブラウザプラグインは、メモリからプロセッサで実行されるように適合されてよく、プロセッサによって実行されたとき、コンピュータシステムに、以下の動作の1つまたは複数を実施することによってフォローミーサービスを提供させるように適合されてよい。コンピュータシステムは、ポータブルトークンがコンピュータシステムの近傍内にあることを示す指示を受け取るように構成される。ポータブルトークンがコンピュータシステムの近傍内にあることを示す指示を受け取ると、コンピュータシステムは、参照テーブルへの第1のリンクを受け取るように構成される。参照テーブルは、進行中のウェブアプリケーションの第1の状態に対応する第2のリンクを含んでよい。コンピュータシステムは、第1のリンクを介して参照テーブルから第2のリンクおよび対応するクッキーを取り出すように構成される。コンピュータシステムは、クッキーと、進行中のウェブアプリケーションへのアクセス要求とを、第2のリンクに送信するように構成される。クッキーと、進行中のウェブアプリケーションへのアクセス要求とを第2のリンクに送信すると、コンピュータシステムは、第2のリンクから、進行中のウェブアプリケーションへのアクセス許可を受け取るように構成される。進行中のウェブアプリケーションへのアクセス許可を受け取ると、コンピュータシステムは、ウェブブラウザ上で、第2のリンクに対応する進行中のウェブアプリケーションを更新するように構成される。進行中のウェブアプリケーションを開くと、コンピュータシステムは、進行中のウェブアプリケーションの第2の状態を反映するように、参照テーブル中の第2のリンクを更新するように構成される。コンピュータシステムは、ポータブルトークンがコンピュータシステムの近傍外にあることを示す指示を受け取るように構成される。ポータブルトークンがコンピュータシステムの近傍外にあることを示す指示を受け取ると、コンピュータシステムは、参照テーブルが進行中のウェブアプリケーションの現在状態を反映しているかどうか判定するように構成される。参照テーブルが進行中のウェブアプリケーションの現在状態を反映していないと判定すると、コンピュータシステムは、進行中のウェブアプリケーションの現在状態を反映するように、参照テーブル中の第2のリンクを更新するように構成される。参照テーブルが進行中のウェブアプリケーションの現在状態を反映していると判定すると、または、進行中のウェブアプリケーションの現在状態を反映するように参照テーブル中の第2のリンクを更新すると、コンピュータシステムは、ウェブブラウザ上で、進行中のウェブアプリケーションを閉じるように構成される。
【0007】
以上の概要は例示に過ぎず、決して限定とはしない。前述の例示的な態様、実施形態、および特徴に加えて、図面および後続の詳細な記述を参照することによってさらに他の態様、実施形態、および特徴も明らかになるであろう。
【0008】
本開示に関する前述および他の特徴は、後続の記述および添付の特許請求の範囲を添付の図面と共に読めば、より完全に明らかになるであろう。これらの図面が、本開示によるいくつかの実施形態のみを描いたものであり、したがって本開示の範囲を限定するものとは見なされないとの理解の下に、添付の図面を使用して本開示をさらに具体的かつ詳細に述べる。
【図面の簡単な説明】
【0009】
【図1】提示する少なくともいくつかの実施形態により構成された、エージェントレスなフォローミーサービスのための例示的な動作環境を示す機能ブロック図である。
【図2】提示する少なくともいくつかの実施形態により構成された、例示的な参照テーブルを示すブロック図である。
【図3A】提示する少なくともいくつかの実施形態により構成された、エージェントレスなフォローミーサービスを実施するための例示的なプロセスを示す流れ図である。
【図3B】提示する少なくともいくつかの実施形態により構成された、エージェントレスなフォローミーサービスを実施するための例示的なプロセスを示す流れ図である。
【図4】提示する少なくともいくつかの実施形態により構成された、例示的なコンピューティングシステムを示すブロック図である。
【図5】提示する少なくともいくつかの実施形態により構成された、コンピューティングプログラム製品を示す概略図である。
【発明を実施するための形態】
【0010】
以下の詳細な記述では、本明細書の一部をなす添付の図面を参照する。図面では、コンテキストが別段に定めない限り、同様の記号は通常、同様のコンポーネントを識別する。詳細な記述、図面、および特許請求の範囲において述べる例示的な実施形態は、限定を意味するものではない。本明細書に提示する主題の趣旨または範囲を逸脱することなく、他の実施形態を利用してもよく、他の変更を加えてもよい。本明細書に一般に述べ、図に示す本開示の態様を、さまざまな異なる構成で、配置、置換、結合、分離、および設計することができ、これらが全て本明細書で明示的に企図されることは、容易に理解されるであろう。
【0011】
本開示は一般に、クラウドベースのアプリケーションのために提供されるエージェントレスなフォローミーサービスをとりわけ対象とする。例示的な一実装形態では、ユーザは、クラウドベースのユーザ特有の参照テーブルへのリンク(ユニフォームリソースロケータ(URL)など)を含むポータブルトークンを携帯することができる。ユーザが第1のコンピューティングデバイスの近傍に入ったとき、第1のコンピューティングデバイスは、ポータブルトークンとの論理的接続を確立するように構成されてよい。次いでユーザは、第1のコンピューティングデバイス上で動作する第1のウェブブラウザを通して、1つまたは複数のステートレスなクラウドベースのウェブアプリケーションを開くことができる。ユーザがウェブアプリケーションと対話するのに伴って、対応するウェブアプリケーションのリンクは、ウェブアプリケーションの現在状態を反映するように変化することができる。リンクが変化するのに伴って、第1のウェブブラウザに結合された第1のフォローミーブラウザプラグインが、これらのリンクを、ポータブルトークンによって識別されるユーザ特有の参照テーブルにアップロードして記憶することができる。
【0012】
前述の論理的接続は、第1のコンピューティングデバイスとポータブルトークンとの間の、通信リンクまたは他の何らかのさまざまな論理的関連付けとして確立されてよい。第1のコンピューティングデバイスとポータブルトークンとの間の接続は、必ずしも物理的接続であるとは限らないが、簡単にするために、以下では通信リンクおよび/または論理的関連付けを単に「接続」と呼ぶ。
【0013】
ユーザは、ウェブアプリケーションの少なくともいくつかがまだ開いている状態で、第1のコンピューティングデバイスの近傍を離れる場合がある。これらの開いているウェブアプリケーションを、進行中のウェブアプリケーションと呼ぶことができる。ユーザが第1のコンピューティングデバイスの近傍を離れたとき、第1のコンピューティングデバイスは、ポータブルトークンとの接続を失うことがある。第1のコンピューティングデバイスがポータブルトークンとの接続を失ったとき、第1のフォローミーブラウザプラグインは、進行中のウェブアプリケーションのリンクをユーザ特有の参照テーブルにアップロードして記憶することができ、それにより、進行中のウェブアプリケーションの現在状態をユーザ特有の参照テーブルに保存することができる。次いで、第1のフォローミーブラウザプラグインは、第1のコンピューティングデバイス上で実行されている進行中のウェブアプリケーションを閉じることができる。
【0014】
ユーザは、第1のコンピューティングデバイスの近傍を離れると、第2のコンピューティングデバイスの近傍に入る場合がある。ユーザが第2のコンピューティングデバイスの近傍に入ったとき、第2のコンピューティングデバイスは、ポータブルトークンとの接続を確立することができる。第2のコンピューティングデバイス上で動作する第2のウェブブラウザに結合された第2のフォローミーブラウザプラグインが、ポータブルトークンによって識別されるユーザ特有の参照テーブルからリンクをダウンロードすることができる。第2のフォローミーブラウザプラグインがリンクをダウンロードしたとき、第2のウェブブラウザは、リンクに対応する進行中のウェブアプリケーションを開くことができる。ユーザ特有の参照テーブル中のリンクは進行中のウェブアプリケーションの現在状態を反映しているので、ユーザは、第2のウェブブラウザを介して、現在状態の進行中のウェブアプリケーションを開いてこれと対話することができる。このようにして、ユーザは、第1のデバイス上でウェブアプリケーションを手動で保存して閉じてから第2のデバイス上でウェブアプリケーションを手動で再度開くことなく、第1のコンピューティングデバイスから第2のコンピューティングデバイスにシームレスに移行することができる。さらに、ポータブルトークンおよびフォローミーブラウザプラグインが、エージェントの使用なしでフォローミーサービスを提供することができる。
【0015】
ここで図1に移ると、機能ブロック図100は、本明細書に提示する少なくともいくつかの実施形態による、エージェントレスなフォローミーサービスに関する例示的な動作環境を示す。第1のコンピューティングデバイス102Aが、第1の近傍104A内で動作することができ、第2のコンピューティングデバイス102Bが、第2の近傍104B内で動作することができる。例示を明確にするために、図1では、第1の近傍104Aと第2の近傍104Bとが破線106で分離されている。第1のコンピューティングデバイス102Aおよび第2のコンピューティングデバイス102Bは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットなどのネットワーク110を介して、サーバコンピュータ108およびサーバコンピュータ132に結合されてよい。第1のコンピューティングデバイス102Aは、第1のウェブブラウザ112Aと、第1のウェブブラウザ112Aに結合された第1のフォローミーブラウザプラグイン114Aとを備えてよい。第2のコンピューティングデバイス102Bは、第2のウェブブラウザ112Bと、第2のウェブブラウザ112Bに結合された第2のフォローミーブラウザプラグイン114Bとを備えてよい。サーバコンピュータ108は、進行中のウェブアプリケーションへのリンク118と、リンク118に対応するクッキー120とを含む参照テーブル116を備えてよい。サーバコンピュータ132は、1つまたは複数のウェブアプリケーション134を備えてよい。
【0016】
第1のコンピューティングデバイス102Aと第2のコンピューティングデバイス102Bとは、同様のまたは異なるコンピューティングデバイス中で動作するように構成されてよい。たとえば、第1のコンピューティングデバイス102Aと第2のコンピューティングデバイス102Bとは、異なる動作システムの下で動作してよい。同様に、第1のウェブブラウザ112Aと第2のウェブブラウザ112Bとは、同様のまたは異なるウェブブラウザとすることができる。さらに、第1のフォローミーブラウザプラグイン114Aと第2のフォローミーブラウザプラグイン114Bとは、第1のウェブブラウザ112Aと第2のウェブブラウザ112Bに応じて、異なるものとすることができる。コンピューティングデバイス102A、102Bは、ウェブブラウザ112A、112Bを介してウェブアプリケーション134にアクセスするように適合された、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話機、および他の適切なデバイスを含めた(ただしこれらに限定されない)、任意の適切なコンピューティングデバイスとすることができる。
【0017】
第1のウェブブラウザ112Aおよび第2のウェブブラウザ112Bは、ウェブアプリケーション134など、ステートレスなクラウドベースのウェブアプリケーションを開くように適合されてよい。クラウドベースのウェブアプリケーション中では、サーバコンピュータ132などのサーバコンピュータが、ウェブアプリケーションをホストするように構成されてよい。次いで、クライアントコンピュータ上で動作するウェブブラウザ112A、112Bなどのウェブブラウザが、リンク118などの対応するリンクを介して、サーバコンピュータ上でホストされるウェブアプリケーションを開くことができる。サーバコンピュータがウェブアプリケーションをホストするが、サーバコンピュータからクライアントコンピュータに提供されるウェブコードのいくらかは、クライアントコンピュータ上で記憶できる状態情報を含むことがある。しかし、ステートレスなクラウドベースのウェブアプリケーションでは、状態情報をリンク内でエンコードすることができ、この結果また、リンクは相対的により長くなる場合がある。たとえば、状態情報は、リンク末尾で「?」などの文字の後に含まれる16進文字列としてエンコードすることができる。
【0018】
ユーザ122は、ポータブルトークン124を所持することができ、ポータブルトークン124は、参照テーブル116へのリンク126を記憶するように適合された物理的アイテムとすることができる。参照テーブル116は、ユーザ122に特有とすることができる。いくつかの実施形態では、ポータブルトークン124はまた、参照テーブル116にアクセスするためのアクセス制御データ128を記憶するように構成されてもよい。ポータブルトークン124のいくつかの例としては、ユーザ122が移動しているときでもユーザ122に所持されたままとすることのできる、フラッシュドライブ、携帯電話機、キーフォブ、ハードコードされた無線周波数識別(RFID)タグ、および他の適切なデバイスを挙げることができる。ポータブルトークン124を所持するユーザ122が第1の近傍104Aに入ったとき、ポータブルトークン124は、ユニバーサルシリアルバス(USB)、WI−FI、BLUETOOTH、無線周波数(RF)、または他の適切な通信プロトコルを介して、第1のコンピューティングデバイス102Aへの接続を確立することができる。USBおよび他のプラグ接続可能プロトコルの場合、第1の近傍104Aは、ユーザ122がポータブルトークン124を第1のコンピューティングデバイス102Aにプラグ接続する行為を指すことができる。WI−FI、BLUETOOTH、RF、IR、および他のワイヤレスプロトコルの場合、第1の近傍104Aは、ポータブルトークン124と第1のコンピューティングデバイス102Aとが対応ワイヤレスプロトコルを介して通信できる範囲を指すことができる。ポータブルトークン124がRFIDタグである場合は、第1のコンピューティングデバイス102Aに結合されたRFIDリーダ(図示せず)の範囲内にRFIDタグがあるときに、RFIDリーダがRFIDタグに対して問合せおよび/または読取りを行うように構成されてよい。したがってユーザ122は、RFIDタグをRFIDリーダの範囲内に置いて、ユーザ122が第1の近傍104Aに入ったことを示すことができる。
【0019】
いくつかの実施形態では、ポータブルトークン124は、ポータブルトークン124と第1のコンピューティングデバイス102Aとの間の所与の信号強度に従ってイネーブルおよび/またはディセーブルにされるように、信号強度によってゲート制御されてよい。いくつかの他の実施形態では、ポータブルトークン124は、一定時間が経過した後(たとえばタイムアウト)にイネーブルおよび/またはディセーブルにされるように、時間によってゲート制御されてよい。ポータブルトークン124は、プロセッサおよび/またはデータ記憶デバイスを備える場合もあり、備えない場合もある。
【0020】
説明的な一例では、ポータブルトークン124を所持するユーザ122が、第1の近傍104Aに入る場合がある。第1のコンピューティングデバイス102Aは、ポータブルトークン124との接続を(たとえばワイヤレス通信を介して)確立するように構成されてよい。第1のフォローミーブラウザプラグイン114Aは、参照テーブル116へのリンク126を読み取り、リンク126を介して参照テーブル116にアクセスしようとするように適合されてよい。いくつかの実施形態では、第1のコンピューティングデバイス102Aがポータブルトークン124への接続を確立したとき、ユーザ122は、第1のフォローミーブラウザプラグイン114Aをインストールすることができる。一例では、ユーザ122は、ネットワーク110を介して中央ダウンロードウェブサイトから第1のフォローミーブラウザプラグイン114Aをダウンロードすることができる。別の例では、第1のフォローミーブラウザプラグイン114Aは、ポータブルトークン124に記憶されていてよく、ポータブルトークン124から第1のコンピューティングデバイス102Aにインストールされてよい。いくつかの他の実施形態では、第1のフォローミーブラウザプラグイン114Aは、第1のコンピューティングデバイス102A上に事前インストールされていてよい。さらにいくつかの他の実施形態では、第1のフォローミーブラウザプラグイン114Aは、第1のウェブブラウザ112A上の標準機能であってよい。
【0021】
第1のフォローミーブラウザプラグイン114Aが参照テーブル116にアクセスしようとするとき、サーバコンピュータ108は、参照テーブル116へのアクセス許可を与えるために、ログイン識別子および/またはパスワードなどの証明を要求するように適合されてよい。いくつかの実施形態では、ユーザ122は、第1のコンピューティングデバイス102Aに結合された適切な入力デバイスを介して、手動で証明を入力することができる。いくつかの他の実施形態では、ポータブルトークン124は、証明を含むアクセス制御データ128をサーバコンピュータ108に提供するように適合されてよい。この場合、セキュリティの目的で、ポータブルトークン124はまた、ポータブルトークン124がアクセス制御データ128を共有するかどうかをユーザ122が許可または制限するのを可能にするように適合された機構も備えてよい。サーバコンピュータ108がユーザ122またはポータブルトークン124から証明を受け取ったとき、サーバコンピュータ108は、証明を検証した後で参照テーブル116へのアクセス許可を与えるように適合されてよい。
【0022】
いくつかの実施形態では、ポータブルトークン124は、参照テーブルサービスを識別するウェブアドレス、および/または、個人ログイン識別子で置き換えることができる。このようにすると、ユーザ122は、ポータブルトークン124を携帯しなくても、単にウェブアドレスおよび/または個人ログイン識別子を覚えればよい。ウェブアドレスおよび個人ログイン識別子はまた、ユーザ122がポータブルトークン124を所持していない場合に、ポータブルトークン124に加えて利用することができる。参照テーブルサービスは、参照テーブル116などユーザ特有の参照テーブルを複数のユーザに提供して、各ユーザに異なる個人ログイン識別子を割り当てることができる。したがってユーザ122は、参照テーブル116にアクセスするために、第1のウェブブラウザ112Aを開き、ウェブアドレスを個人ログイン識別子と共に参照テーブルサービスに手動入力することができる。ウェブアドレスが個人ログイン識別子を含んでもよい(たとえば、myreferencetable.com/user4110の場合、「user4110」が個人ログイン識別子を指す)。
【0023】
この説明的な例では、参照テーブル116は、最初は空である。したがって、第1のフォローミーブラウザプラグイン114Aが参照テーブル116にアクセスしたとき、第1のフォローミーブラウザプラグイン114Aは、参照テーブル116からどんなリンクも取り出さなくてよく、したがってウェブアプリケーションが自動的に開かなくてよい。ユーザ122が第1のウェブブラウザ112Aを介してウェブアプリケーション134の1つまたは複数を開いたとき、ウェブアプリケーションに対応するリンク118が、ウェブアプリケーション134の現在状態を反映するように変化することができる。すなわち、ユーザ122がウェブアプリケーション134と対話するのに伴って、リンク118中にエンコードされる状態情報が変化することができる。たとえば、ユーザは、特定のウェブアプリケーション上で文書を編集する場合がある。ユーザが文書を編集して保存した後、URLは、「http://docs.example.com/Doc?docid=01234abcdefg」から「http://docs.example.com/Doc?docid=56789hijklmn」に変化してよく、ここで、変数「docid」は、編集中の文書、および編集中の文書の特定の状態を指す。
【0024】
フォローミーサービスを容易にするために、第1のフォローミーブラウザプラグイン114Aは、ウェブアプリケーション134のリンク118を参照テーブル116にアップロードして記憶し、それによりウェブアプリケーション134の現在状態を保存するように構成されてよい。第1のフォローミーブラウザプラグイン114Aは、所与の時間間隔で、または第1のウェブブラウザ112A上でリンク118が変更されたときに、リンク118をアップロードして記憶するように構成されてよい。いくつかの実施形態では、第1のフォローミーブラウザプラグイン114Aは、リンクが変化したかどうか判定するために、現在のリンクを前のリンクと比較するように適合されてよい。いくつかの他の実施形態では、第1のウェブブラウザ112Aは、リンクが変化したことを示す信号を第1のフォローミーブラウザプラグイン114Aに提供するように構成されてよい。
【0025】
いくつかのウェブアプリケーションは、アクセスを与える前に、ユーザ122の証明を要求し検証するように適合されてよい。ユーザ122が証明を入力してウェブアプリケーションにログオンした後、証明は、第1のコンピューティングデバイス102A上の対応するクッキーに記憶されてよい。ユーザ122がウェブアプリケーションに再アクセスする度に、ウェブアプリケーションは、ユーザ122に証明を再入力させることなく、クッキーに基づいてユーザ122を認証するように構成されてよい。いくつかの実施形態では、第1のフォローミーブラウザプラグイン114Aは、このクッキーを、第1のコンピューティングデバイス102Aから参照テーブル116中のクッキー120にアップロードするように構成されてよい。後でより詳細に述べるが、ユーザ122が第2のコンピューティングデバイス102Bなど別のコンピューティングデバイスに移動したとき、第2のウェブブラウザ112Bは、ユーザ122に証明を再入力させることなく、参照テーブル116からクッキー120を取り出し、クッキー120を利用して、リンク118に対応するウェブアプリケーション134を開くように構成されてよい。ユーザ122がウェブアプリケーションを閉じたとき(たとえばウェブブラウザ112Aの対応するウィンドウを閉じることによって)、第1のフォローミーブラウザプラグイン114Aは、閉じられたウェブアプリケーションに対応するリンクおよびクッキーを参照テーブル116から削除するように適合されてよい。
【0026】
説明的なこの例では、第1のコンピューティングデバイス102A上でウェブアプリケーション134の少なくとも1つが開いたままの状態で、ユーザ122は第1の近傍104Aを離れる場合がある。ユーザ122が第1の近傍104Aを離れたことを第1のフォローミーブラウザプラグイン114Aが検出したとき、第1のフォローミーブラウザプラグイン114Aは、ウェブアプリケーション134のリンク118がウェブアプリケーション134の現在状態を反映していない場合に、必要に応じてリンク118をアップロードして保存するように構成されてよい。次いで、第1のフォローミーブラウザプラグイン114Aは、他者が第1のコンピューティングデバイス102A上でウェブアプリケーション134にアクセスするのを防止するために、ウェブアプリケーション134を閉じるように適合されてよい。
【0027】
第1のフォローミーブラウザプラグイン114Aは、一定時間に基づいて(たとえばタイムアウト)、またはユーザアクションによって、ユーザ122が第1の近傍104Aを離れたことを検出するように構成されてよい。第1の例では、ユーザ122は、ユーザ122が第1の近傍104Aを離れつつあることをフォローミーブラウザプラグイン114Aに明示的に示すことができる。ポータブルトークン124がRFIDタグである場合は、第1のコンピューティングデバイス102Aに結合されたRFIDリーダの範囲内にRFIDタグが再び置かれたときに、RFIDリーダがRFIDタグに対して再問合せおよび/または再読取りを行うように構成されてよい。したがってユーザ122は、第1の場合にRFIDタグをRFIDリーダの範囲内に置いて、第1の近傍104Aに入ったことを示した後、第2の場合にRFIDタグをRFIDリーダの範囲内に置いて、第1の近傍104Aを離れたことを示すことができる。第2の例では、ポータブルトークン124が第1のコンピューティングデバイス102Aにプラグ接続される場合は、第1のフォローミーブラウザプラグイン114Aは、ユーザ122がポータブルトークン124を第1のコンピューティングデバイス102Aから抜いたときに、ユーザ122が第1の近傍104Aを離れたことを検出するように適合されてよい。第3の例では、ポータブルトークン124が第1のコンピューティングデバイス102Aにワイヤレス結合する場合は、第1のフォローミーブラウザプラグイン114Aは、ポータブルトークン124が通信範囲外に移動したために第1のコンピューティングデバイス102Aがポータブルトークン124ともはや通信できないときに、ユーザ122が第1の近傍104Aを離れたことを検出するように適合されてよい。
【0028】
この説明的な例では、ユーザ122は、第1の近傍104Aを離れると、矢印130で示されるように第2の近傍104Bに入る。次いで、第2のコンピューティングデバイス102Bは、ポータブルトークン124との接続を確立するように適合されてよい。第2のコンピューティングデバイス102Bは、必要に応じて、第2のウェブブラウザ112B上で第2のフォローミーブラウザプラグインをダウンロードしてインストールするように構成されてよい。第2のフォローミーブラウザプラグイン114Bはまた、必要に応じて、ユーザ122を認証した後、参照テーブル116へのリンク126を読み取り、リンク126を介して参照テーブル116にアクセスするように構成されてよい。
【0029】
第2のフォローミーブラウザプラグイン114Bが参照テーブル116にアクセスしたとき、第2のフォローミーブラウザプラグイン114Bは、リンク118と、対応するクッキー120とを、参照テーブル116からダウンロードするように構成されてよい。次いで、第2のフォローミーブラウザプラグイン114Bは、第2のウェブブラウザ112Bを介して、リンク118に対応するウェブアプリケーション134を開くように適合されてよい。第2のフォローミーブラウザプラグイン114Bは、ウェブアプリケーション134を開いたとき、クッキー120を利用して既存のセッションへのアクセスを得るように構成されてよい。第2のフォローミーブラウザプラグイン114Bがリンク118を介してウェブアプリケーション134を開いたとき、第2のウェブブラウザ112Bは、ウェブアプリケーション134を、リンク118によって保存されていた現在状態(たとえばユーザ122が第1の近傍104Aを離れたときに第1のコンピューティングデバイス102A上で実行されていたウェブアプリケーションの状態)で提示するように構成されてよい。このようにして、ユーザ122は、依然として第1の近傍104Aにおり第1のコンピューティングデバイス102A上でウェブアプリケーション134にアクセスしているかのように、同じ状態で第2のコンピューティングデバイス102B上でウェブアプリケーション134と対話することができる。
【0030】
ユーザがウェブアプリケーション134と対話するのに伴って、リンク118は、ウェブアプリケーション134の現在状態を反映するように変化することができる。リンク118が変化するのに伴って、第2のフォローミーブラウザプラグイン114Bは、参照テーブル116を更新するように適合されてよい。さらに、ユーザ122が第2の近傍104Bを離れたとき、第2のフォローミーブラウザプラグイン114Bは、ウェブアプリケーション134のリンク118がウェブアプリケーション134の現在状態を反映していない場合に、リンク118を参照テーブル116にアップロードして記憶するように構成されてよい。したがって、ユーザ122が別のコンピューティングデバイスの近傍に入ったとき、ユーザ122は、保存された状態でウェブアプリケーション134と対話し続けることができる。
【0031】
次に図2に移ると、ブロック図が、本明細書に述べる少なくともいくつかの実施形態により構成された例示的な参照テーブル116の例を示す。参照テーブル116は、第1の列202Aおよび第2の列202Bを含んでよい。参照テーブル116はさらに、行204A〜204Nを含んでよい。第1の列202Aの下のエントリ210A〜210Nは、リンク118A〜118Nを記憶してよい。参照テーブル116は、リンク118A〜118Nを、拡張可能マークアップ言語(XML)または他の適切なフォーマットで記憶してよい。第2の列202Bの下のエントリ212A〜212Nは、クッキー120A〜120Nを記憶してよい。クッキー120A〜120Nはそれぞれ、リンク118A〜118Nのうちの1つに対応してよい。クッキー120A〜120Nは、ユーザ122がユーザ122の証明を記憶するのを可能にするように適合されたログインクッキーとすることができる。ウェブブラウザ112A、112Bは、ユーザ122に証明を再入力させることなく、クッキー120A〜120Nを利用して、対応するリンク118A〜118Nにアクセスすることができる。
【0032】
ユーザ122が第1のウェブブラウザ112A上でウェブアプリケーションを開いたとき、第1のフォローミーブラウザプラグイン114Aは、行204A〜204Nのうちの1つをこのウェブアプリケーションに割り当てることができる。たとえば、第1のフォローミーブラウザプラグイン114Aは、第1の行204Aをウェブアプリケーションに割り当てるように構成されてよい。ユーザ122がウェブアプリケーションにログオンし、第1のクッキー120Aなどのクッキーが第1のコンピューティングデバイス102A上で作成された場合、第1のフォローミーブラウザプラグイン114Aは、第1のクッキー120Aを、第2の列202Bの下の、割り当てられた行にアップロードして記憶するように構成されてよい。この例では、第1のフォローミーブラウザプラグイン114Aは、第1のクッキー120Aを、第1の行204Aのエントリ212Aにアップロードして記憶するように適合されてよい。ユーザ122がウェブアプリケーションと対話するのに伴って、第1のフォローミーブラウザプラグイン114Aはまた、第1のリンク118Aなど、ウェブアプリケーションのリンクを、第1の列202Aの下の、割り当てられた行にアップロードして記憶するように適合されてよい。この例では、第1のフォローミーブラウザプラグイン114Aは、第1のリンク118Aを、第1の行204Aのエントリ210Aにアップロードして記憶するように適合されてよい。このようにして、参照テーブル116は、ウェブアプリケーションの現在状態を保存することができる。ユーザ122がウェブアプリケーションを閉じたとき、第1のフォローミーブラウザプラグイン114Aは、エントリ210A、212Aなど、閉じられたウェブアプリケーションに対応する両方のエントリを削除するように構成されてよい。そうでない場合は、参照テーブル116は、ユーザ122が他のコンピューティングデバイスに移行するときにエントリ210A、212Aを維持するように構成されてよい。
【0033】
次に図3Aおよび3Bに移ると、例示的な流れ図が、本明細書に述べる少なくともいくつかの実施形態による、エージェントレスなフォローミーサービスを提供するためのプロセス300A〜300Bを示す。プロセス300A〜300Bは、ブロック302〜330のうちの1つまたは複数で示されるように、さまざまな動作、機能、またはアクションを含むことができる。プロセス300Aは、ブロック302(ポータブルトークンが近傍にあることを示す指示を受け取る)で開始することができるが、このブロックでは、第1のフォローミーブラウザプラグイン114Aや第2のフォローミーブラウザプラグイン114Bなどのフォローミーブラウザプラグインが、ポータブルトークン124が第1のコンピューティングデバイス102Aや第2のコンピューティングデバイス102Bなどのコンピューティングデバイスの近傍にあることを示す指示を受け取るように構成されてよい。ポータブルトークン124がプラグ接続可能デバイスである場合は、ポータブルトークン124は、コンピューティングデバイスにプラグ接続されたときにコンピューティングデバイスの近傍にあると判定されてよい。ポータブルトークン124がワイヤレスデバイスである場合は、ポータブルトークン124は、ワイヤレスプロトコルに従ったコンピューティングデバイスの範囲内にあるときにコンピューティングデバイスの近傍にあると判定されてよい。ポータブルトークン124がRFIDタグである場合は、ポータブルトークン124は、コンピューティングデバイスに結合されたRFIDリーダがポータブルトークン124に対して問合せおよび/または読取りを行うことができるようにRFIDリーダの範囲内に置かれたときに、コンピューティングデバイスの近傍にあると判定されてよい。ブロック302の後に、ブロック304が続くことができる。
【0034】
ブロック304(参照テーブルへのリンクおよびアクセス制御データを受け取る)で、フォローミーブラウザプラグインは、参照テーブル116へのリンク126およびアクセス制御データ128を受け取るように構成されてよい。アクセス制御データ128は、参照テーブル116にアクセスするための証明を含んでよい。ブロック304の後に、ブロック306が続くことができる。
【0035】
ブロック306(参照テーブルにアクセスする)で、フォローミーブラウザプラグインは、リンク126を介して参照テーブル116にアクセスするように構成されてよい。参照テーブル116は、クラウドベースとすることができ、サーバコンピュータ108など、ネットワーク110を介してアクセス可能な集中型サーバコンピュータに記憶されてよい。ブロック306の後に、ブロック308が続くことができる。
【0036】
ブロック308(認証要求を受け取る)で、フォローミーブラウザプラグインは、リンク126に対応するサーバコンピュータ108から認証要求を受け取るように構成されてよい。認証要求は、参照テーブル116へのアクセス許可を与えるために、証明を要求することができる。ブロック308の後に、ブロック310が続くことができる。
【0037】
ブロック310(アクセス制御データを送る)で、フォローミーブラウザプラグインは、認証要求に応答して、アクセス制御データ128をサーバコンピュータ108に送るように構成されてよい。ブロック310の後に、ブロック312が続くことができる。
【0038】
ブロック312(許可を受け取る)で、フォローミーブラウザプラグインは、参照テーブル116へのアクセス許可をサーバコンピュータ108から受け取るように構成されてよい。サーバコンピュータ108は、アクセス制御データ128を検証した後で、参照テーブル116へのアクセス許可をフォローミーブラウザプラグインに送ることができる。ブロック312の後に、ブロック314が続くことができる。
【0039】
ブロック314(ウェブアプリケーションへのリンクを取り出す)で、フォローミーブラウザプラグインは、ウェブアプリケーション134など進行中のウェブアプリケーションへの、リンク118などのリンクを、参照テーブル116から取り出すように構成されてよい。フォローミーブラウザプラグインはまた、クッキー120など、進行中のウェブアプリケーションへのリンクに対応するクッキーを、参照テーブル116から取り出すことができる。進行中のウェブアプリケーションは、ステートレスなクラウドベースのアプリケーションとすることができる。プロセス300A中のブロック314の後に、プロセス300B中のブロック316が続くことができる。
【0040】
ブロック316(クッキーとウェブアプリケーションへのアクセス要求とを送信する)で、フォローミーブラウザプラグインは、クッキーと、進行中のウェブアプリケーションへのアクセス要求とを、進行中のウェブアプリケーションへのリンクに対応するサーバコンピュータ132に送信するように構成されてよい。ブロック316の後に、ブロック318が続くことができる。
【0041】
ブロック318(ウェブアプリケーションへのアクセス許可を受け取る)で、フォローミーブラウザプラグインは、進行中のウェブアプリケーションへのアクセス許可をサーバコンピュータ132から受け取るように構成されてよい。サーバコンピュータ132は、クッキーを検証した後で、進行中のウェブアプリケーションへのアクセス許可をフォローミーブラウザプラグインおよび/またはウェブブラウザに送ることができる。ブロック318の後に、ブロック320が続くことができる。
【0042】
ブロック320(ウェブアプリケーションを開く)で、フォローミーブラウザプラグインは、進行中のウェブアプリケーションへのリンクに対応するウェブアプリケーションを開くように構成されてよい。特に、フォローミーブラウザプラグインは、第1のウェブブラウザ112Aや第2のウェブブラウザ112Bなどのウェブブラウザを介して、ウェブアプリケーションを開くように構成されてよい。ブロック320の後に、ブロック322が続くことができる。
【0043】
ブロック322(参照テーブルを更新する)で、フォローミーブラウザプラグインは、進行中のウェブアプリケーションの現在状態に変化があればそれを反映するように、参照テーブル116を更新するように構成されてよい。進行中のウェブアプリケーションの現在状態は、ユーザ122が進行中のウェブアプリケーションと対話するのに伴って変化することがある。特に、フォローミーブラウザプラグインは、参照テーブル116に記憶された、進行中のウェブアプリケーションへのリンクを更新するように構成されてよい。すなわち、進行中のウェブアプリケーションの前の状態を反映する前リンクを、進行中のウェブアプリケーションの現在状態を反映する現リンクで置き換え、それにより参照テーブル116を変容させることができる。フォローミーブラウザプラグインは、進行中のウェブアプリケーションの状態が変化したときに参照テーブル116を更新するように構成されてよい。フォローミーブラウザプラグインはまた、事前定義済みの時間間隔で参照テーブル116を更新するように構成されてもよい。ブロック322の後に、ブロック324が続くことができる。
【0044】
ブロック324(ポータブルトークンが近傍外にあることを示す指示を受け取る)で、フォローミーブラウザプラグインは、ポータブルトークン124がコンピューティングデバイスの近傍外にあることを示す指示を受け取るように構成されてよい。ポータブルトークン124がプラグ接続可能デバイスである場合は、ポータブルトークン124は、コンピューティングデバイスから抜かれたときにコンピューティングデバイスの近傍外にあると判定されてよい。ポータブルトークン124がワイヤレスデバイスである場合は、ポータブルトークン124は、ワイヤレスプロトコルに従ったコンピューティングデバイスの範囲外にあるときにコンピューティングデバイスの近傍外にあると判定されてよい。ポータブルトークン124がRFIDタグである場合は、ポータブルトークン124は、コンピューティングデバイスに結合されたRFIDリーダがポータブルトークン124に対して再問合せおよび/または再読取りを行うことができるように再びRFIDリーダの範囲内に置かれたときに、コンピューティングデバイスの近傍外にあると判定されてよい。ブロック324の後に、ブロック326が続くことができる。
【0045】
ブロック326(参照テーブルが現在状態を反映しているかどうか判定する)で、フォローミーブラウザプラグインは、参照テーブル116が進行中のウェブアプリケーションの現在状態を反映しているかどうか判定するように構成されてよい。たとえば、進行中のウェブアプリケーションの状態は、ブロック322で参照テーブル116が最後に更新される前に変化した場合がある。参照テーブル116が進行中のウェブアプリケーションの現在状態を反映していないとフォローミーブラウザプラグインが判定した場合は、ブロック326の後にブロック328が続くことができる。参照テーブル116が進行中のウェブアプリケーションの現在状態を反映しているとフォローミーブラウザプラグインが判定した場合は、ブロック326の後にブロック330が続くことができる。
【0046】
ブロック328(現在状態を反映するように参照テーブルを更新する)で、フォローミーブラウザプラグインは、進行中のウェブアプリケーションの現在状態を反映するように、参照テーブル116を更新するように構成されてよい。ブロック328の後に、ブロック330が続くことができる。
【0047】
ブロック330(ウェブアプリケーションを閉じる)で、フォローミーブラウザプラグインは、コンピューティングデバイス上で実行されているウェブアプリケーションを閉じるように構成されてよい。フォローミーブラウザプラグインは、ユーザ122がコンピューティングデバイスの近傍外にいるので、かつ、進行中のウェブアプリケーションの現在状態が参照テーブル116に保存されたので、進行中のウェブアプリケーションを閉じることができる。ユーザ122は、他のコンピューティングデバイスに移行して、これら他のコンピューティングデバイス上で進行中のウェブアプリケーションと対話することができる。ブロック330の後、プロセス300A〜300Bは、繰り返してもよく(たとえば周期的に、継続的に、もしくは必要に応じてオンデマンドで)、または終了してもよい。
【0048】
図4は、本明細書に提示する少なくともいくつかの実施形態を実施することのできる例示的なコンピューティングシステムに関する例示的なコンピュータハードウェアアーキテクチャを示すコンピュータアーキテクチャ図である。図4はコンピュータ400を含み、コンピュータ400は、プロセッサ410と、メモリ420と、1つまたは複数のドライブ430とを備える。コンピュータ400は、従来型コンピュータシステム、組込み制御コンピュータ、ラップトップもしくはサーバコンピュータ、モバイルデバイス、セットトップボックス、キオスク、車両情報システム、携帯電話機、カスタマイズマシン、または他のハードウェアプラットフォームとして実現することができる。
【0049】
ドライブ430およびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶域をコンピュータ400に提供する。ドライブ430は、オペレーティングシステム440、アプリケーションプログラム450、プログラムモジュール460、およびデータベース480を含んでよい。プログラムモジュール460は、ウェブブラウザ112を含んでよい。ウェブブラウザ112は、第1のフォローミーブラウザプラグイン114Aや第2のフォローミーブラウザプラグイン114Bなどのフォローミーブラウザプラグイン114に結合されてよい。ウェブブラウザ112は、フォローミーブラウザプラグインを介して、図3A〜3Bに関してより詳細に上述したようなエージェントレスなフォローミーサービスを提供するためのプロセス300A〜300Bを実行するように適合されてよい。コンピュータ400はさらにユーザ入力デバイス490を備え、ユーザは、ユーザ入力デバイス490を介してコマンドおよびデータを入力することができる。入力デバイスは、電子ディジタイザ、マイクロホン、キーボード、および、マウスやトラックボールやタッチパッドと一般に呼ばれるポインティングデバイスを含んでよい。他の入力デバイスは、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含んでよい。いくつかの実施形態では、入力デバイス490は、トークンリーダ405を含んでもよい。トークンリーダ405は、適切な有線またはワイヤレスインタフェースを介してポータブルトークン124を読み取るように適合されてよい。
【0050】
これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インタフェースを通してプロセッサ410に結合することができるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインタフェースおよびバス構造によって結合してもよい。コンピュータ400などのコンピュータはまた、スピーカなど他の周辺出力デバイスを備えてもよく、これらは出力周辺インタフェース494などを通して結合してよい。
【0051】
コンピュータ400は、ネットワークインタフェース496に結合されたリモートコンピュータなど、1つまたは複数のコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであってよく、コンピュータ400に関して上述した要素の多くまたは全てを備えることができる。ネットワーキング環境は、オフィス、企業ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イントラネット、およびインターネットにおいてよく見られる。
【0052】
LANまたはWLANネットワーキング環境で使用されるときは、コンピュータ400は、ネットワークインタフェース496またはアダプタを通してLANに結合されてよい。WANネットワーキング環境で使用されるときは、コンピュータ400は通常、インターネットやネットワーク408などのWANを介して通信を確立するためのモデムまたは他の手段を備える。WANは、インターネット、図示のネットワーク408、さまざまな他のネットワーク、またはこれらの任意の組合せを含むことができる。コンピュータ間で通信リンク、リング、メッシュ、バス、クラウド、またはネットワークを確立する他の機構を使用してもよいことは、理解されるであろう。
【0053】
いくつかの実施形態によれば、コンピュータ400は、ネットワーキング環境に結合されてよい。コンピュータ400は、ドライブ430または他の記憶デバイスに関連する1つまたは複数の物理的なコンピュータ可読記憶媒体の、1つまたは複数のインスタンスを備えることができる。システムバスは、プロセッサ410がコードおよび/またはデータをコンピュータ可読記憶媒体との間で読み取れるようにすることができる。媒体は、半導体、磁気材料、光学媒体、電気記憶装置、電気化学記憶装置、または他の任意のこのような記憶技術を含めた(ただしこれらに限定されない)任意の適切な技術を使用して実現された記憶要素の形で装置を表すことができる。媒体は、RAM、ROM、フラッシュ、または他のタイプの揮発性もしくは不揮発性メモリ技術のいずれとして特徴付けられようと、メモリ420に関連するコンポーネントを表すことができる。媒体はまた、記憶ドライブ430として実現されようと他の方法で実現されようと、2次記憶装置を表すこともできる。ハードドライブ実装形態は、固体として特徴付けることができ、または、磁気的にエンコードされる情報を記憶する回転媒体を含むことができる。
【0054】
記憶媒体は、1つまたは複数のプログラムモジュール460を備えてよい。プログラムモジュール460は、プロセッサ410にロードされて実行されたときに汎用コンピューティングシステムを専用コンピューティングシステムに変容させるソフトウェア命令を備えてよい。本記述全体を通して詳述したように、プログラムモジュール460は、本明細書で論じたコンポーネント、論理フロー、および/またはデータ構造を使用してコンピュータ400がシステム全体または動作環境全体に参与できるための、さまざまなツールまたは技法を提供することができる。
【0055】
プロセッサ410は、任意の数のトランジスタまたは他の回路要素から構築されてよく、これらの回路要素は、個別にまたは一括して、任意の数の状態をとることができる。より具体的には、プロセッサ410は、状態機械または有限状態機械として動作することができる。このような機械は、プログラムモジュール460内に含まれる実行可能命令をロードすることによって、第2の機械または特定の機械に変容させることができる。これらのコンピュータ実行可能命令は、プロセッサ410がどのように状態間で遷移するかを指定して、それにより、プロセッサ410を構成するトランジスタまたは他の回路要素を第1の機械から第2の機械に変容させることによって、プロセッサ410を変容させることができる。いずれかの機械の状態はまた、1つもしくは複数のユーザ入力デバイス490、ネットワークインタフェース496、他の周辺装置、他のインタフェース、または、1つもしくは複数のユーザもしくは他の動作主から、入力を受け取ることによっても変容させることができる。いずれかの機械はまた、プリンタ、スピーカ、ビデオ表示装置、または他の形など、さまざまな出力デバイスの、状態またはさまざまな物理的特性を変容させることもできる。
【0056】
プログラムモジュール460をエンコードすることによってもまた、記憶媒体の物理的構造を変容させることができる。物理的構造の具体的な変容は、本記述の種々の実装形態においてさまざまな要因によって決まる場合がある。このような要因の例としては、記憶媒体を実現するのに使用される技術、記憶媒体が1次記憶装置として特徴付けられるか2次記憶装置として特徴付けられるか、などを挙げることができるが、これらに限定されない。たとえば、記憶媒体が半導体ベースのメモリとして実現される場合、プログラムモジュール460は、ソフトウェアが半導体メモリ420中にエンコードされたとき、半導体メモリ420の物理的状態を変容させることができる。たとえば、ソフトウェアは、半導体メモリ420を構成するトランジスタ、コンデンサ、または他の個別回路要素を変容させることができる。
【0057】
別の例として、記憶媒体は、ドライブ430など、磁気または光学技術を使用して実現することもできる。このような実装形態では、プログラムモジュール460は、ソフトウェアが磁気または光学媒体中にエンコードされたとき、磁気または光学媒体の物理的状態を変容させることができる。これらの変容は、所与の磁気媒体内の特定場所の磁気特性を改変することを含むことがある。これらの変容はまた、所与の光学媒体内の特定場所の物理的特徴または特性を改変して、これらの場所の光学特性を変更することを含むことがある。本記述の範囲および趣旨を逸脱することなく、物理的媒体のさまざまな他の変容が可能であることを理解されたい。
【0058】
次に図5に移ると、概略図が、本明細書に提示する少なくともいくつかの実施形態により構成された、コンピューティングデバイス上でコンピュータプロセスを実行するためのコンピュータプログラムを含むコンピュータプログラム製品500の部分図を示す。この例示的なコンピュータプログラム製品の例示的な一実施形態は、信号保持媒体502を使用して提供され、504の少なくとも1つの命令を含んでよい。すなわち、ポータブルトークンがコンピューティングデバイスの近傍内および/もしくは近傍外にあることを示す指示を受け取るための1つもしくは複数の命令、参照テーブルへの第1のリンクをポータブルトークンから受け取るための1つもしくは複数の命令、参照テーブルへの第1のリンクをポータブルトークンから受け取るための1つもしくは複数の命令、参照テーブルへの第1のリンクを介して進行中のウェブアプリケーションの第1の状態に対応する第2のリンクを取り出すための1つもしくは複数の命令、進行中のウェブアプリケーションをウェブブラウザ中で開くためおよび/もしくは閉じるための1つもしくは複数の命令、または、進行中のウェブアプリケーションの第2の状態を反映するように参照テーブル中の第2のリンクを更新するための1つもしくは複数の命令である。1つまたは複数の命令は、たとえば、コンピュータ実行可能命令、および/または論理実装命令とすることができる。いくつかの実施形態では、1つまたは複数のコンピュータプログラム製品500の信号保持媒体502は、コンピュータ可読媒体506、記録可能媒体508、および/または通信媒体510を含む。
【0059】
本明細書に述べる主題は、コンピュータシステム上でのオペレーティングシステムおよびアプリケーションプログラムの実行と共に実行されるプログラムモジュールの一般的なコンテキストで提示されるが、他の実装形態を他のタイプのプログラムモジュールと組み合わせて実施してもよいことを当業者なら理解するであろう。一般に、プログラムモジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。さらに、本明細書に述べる主題は、ハンドヘルドデバイス、マルチコアプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含めた、他のコンピュータシステム構成を用いて実践してもよいことを、当業者なら理解するであろう。
【0060】
本開示は、本出願に記載の特定の実施形態に関して限定されるものではなく、これら特定の実施形態は、さまざまな態様の例示とする。当業者には明らかであろうが、本開示の趣旨および範囲を逸脱することなく多くの修正および変形を加えることができる。本明細書に列挙した方法および装置に加えて、本開示の範囲内にある機能的に等価な方法および装置も、以上の記述から当業者には明らかであろう。このような修正および変形は、添付の特許請求の範囲内に入るものとする。本開示は、添付の特許請求の範囲の条件によって、かつ、このような特許請求の範囲が値する均等物の完全な範囲によってのみ限定される。本開示は、特定の方法、試薬、化合物、組成物、または生物系(これらは当然ながら多様である可能性がある)に限定されないことを理解されたい。また、本明細書で使用した用語は、特定の実施形態を記述するためのものに過ぎず、限定とはしないことも理解されたい。
【0061】
本明細書における実質的に全ての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【0062】
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
【0063】
加えて、本開示の特徴または態様がマーカッシュグループで記述される場合、それによって本開示がマーカッシュグループの任意の個別のメンバ、またはメンバのサブグループでも記述されることを、当業者なら理解するであろう。
【0064】
当業者には理解されるであろうが、書面での記述を提供する点からなど、あらゆる目的で、本明細書に開示する全ての範囲は、そのあらゆる可能な下位範囲、および下位範囲の組合せも包含する。列挙されるどんな範囲も、その範囲が少なくとも2等分、3等分、4等分、5等分、10等分などに分解されることを十分に記述し可能にするものとして、容易に理解することができる。非限定的な例として、本明細書に論じる各範囲は、下3分の1、中間3分の1、および上3分の1などに容易に分解することができる。当業者にはやはり理解されるであろうが、「まで」、「少なくとも」、「より大きい」、「より小さい」などの言葉は、列挙される数を含み、また、後で上記の考察のように下位範囲に分解できる範囲を指す。最後に、当業者には理解されるであろうが、範囲は、個別の各数を含む。したがってたとえば、1〜3個の要素を有するグループは、1、2、または3個の要素を有するグループを指す。同様に、1〜5個の要素を有するグループは、1、2、3、4、または5個の要素を有するグループを指し、他も同様である。
【0065】
さまざまな態様および実施形態を本明細書に開示したが、他の態様および実施形態も当業者には明らかであろう。本明細書に開示したさまざまな態様および実施形態は、例示のためのものであって限定とはしない。真の範囲および趣旨は、後続の特許請求の範囲によって示す。

【特許請求の範囲】
【請求項1】
フォローミーサービスを提供する方法であって、
プロセッサとメモリとを有するコンピューティングデバイスを通して参照テーブルへの第1のリンクを受け取ることであって、前記参照テーブルが、進行中のウェブアプリケーションの第1の状態に対応する第2のリンクを含むものであること、
前記コンピューティングデバイスを通して前記第1のリンクを介して前記参照テーブルから前記第2のリンクを取り出すこと、
前記コンピューティングデバイス上で実行されるように構成されたウェブブラウザ上で、前記第2のリンクに対応する前記進行中のウェブアプリケーションを開くこと、および、
前記進行中のウェブアプリケーションを前記ウェブブラウザ上で開くと、前記コンピューティングデバイスを通して、前記進行中のウェブアプリケーションの第2の状態を反映するように前記参照テーブル中の前記第2のリンクを更新することを含む方法。
【請求項2】
プロセッサとメモリとを有するコンピューティングデバイスを通して参照テーブルへの第1のリンクを受け取ることが、前記コンピューティングデバイスを通してポータブルトークンから前記参照への前記第1のリンクを受け取ることを含む、請求項1に記載の方法。
【請求項3】
プロセッサとメモリとを有するコンピューティングデバイスを通して参照テーブルへの第1のリンクを受け取ることが、前記ポータブルトークンが前記コンピューティングデバイスの近傍内にあるときに前記コンピューティングデバイスにおいて前記参照テーブルへの前記第1のリンクを受け取ることを含む、請求項2に記載の方法。
【請求項4】
前記コンピューティングデバイスを通して、前記ポータブルトークンが前記コンピューティングデバイスの前記近傍外にあることを示す指示を受け取ること、
前記ポータブルトークンが前記コンピューティングデバイスの前記近傍外にあることを示す前記指示を受け取ると、前記コンピューティングデバイスを通して、前記参照テーブルが前記進行中のウェブアプリケーションの現在状態を反映しているかどうか判定すること、
前記参照テーブルが前記進行中のウェブアプリケーションの前記現在状態を反映していないと判定すると、前記コンピューティングデバイスを通して、前記進行中のウェブアプリケーションの前記現在状態を反映するように前記参照テーブル中の前記第2のリンクを更新すること、および、
前記参照テーブルが前記進行中のウェブアプリケーションの前記現在状態を反映していると判定すると、または、前記進行中のウェブアプリケーションの前記現在状態を反映するように前記参照テーブル中の前記第2のリンクを更新すると、前記ウェブブラウザ上で前記進行中のウェブアプリケーションを閉じることをさらに含む、請求項3に記載の方法。
【請求項5】
プロセッサとメモリとを有するコンピューティングデバイスを通して参照テーブルへの第1のリンクを受け取ることが、前記コンピューティングデバイスを通して前記参照テーブルへの前記第1のリンクとアクセス制御データとを受け取ることを含み、前記コンピューティングデバイスを通して前記第1のリンクを介して前記参照テーブルから前記第2のリンクを取り出すことが、
前記コンピューティングデバイスを通して前記参照テーブルへの前記第1のリンクにアクセスすること、
前記第1のリンクにアクセスすると、前記コンピューティングデバイスを通して認証要求を前記第1のリンクから受け取ること、
前記認証要求を受け取ると、前記コンピューティングデバイスを通して前記アクセス制御データを前記第1のリンクに送ること、
前記コンピューティングデバイスを通して前記参照テーブルへのアクセス許可を前記第1のリンクから受け取ること、および、
前記許可を受け取ると、前記コンピューティングデバイスを通して前記参照テーブルから前記第2のリンクを取り出すことを含む、請求項1に記載の方法。
【請求項6】
前記コンピューティングデバイスを通して前記第1のリンクを介して前記参照テーブルから第2のリンクを取り出すことが、前記コンピューティングデバイスを通して、前記第2のリンクと、対応するクッキーとを前記参照テーブルから取り出すことを含み、前記メモリから前記プロセッサ上で実行されるように構成されたウェブブラウザ上で前記第2のリンクに対応する前記進行中のウェブアプリケーションを開くことが、
前記コンピューティングデバイスを通して前記クッキーと前記進行中のウェブアプリケーションへのアクセス要求とを前記第2のリンクに送信すること、
前記クッキーと前記進行中のウェブアプリケーションへの前記アクセス要求とを前記第2のリンクに送信すると、前記コンピューティングデバイスを通して前記進行中のウェブアプリケーションへのアクセス許可を前記第2のリンクから受け取ること、および、
前記進行中のウェブアプリケーションへの前記アクセス許可を受け取ると、前記ウェブブラウザ上で前記第2のリンクに対応する前記進行中のウェブアプリケーションを開くことを含む、請求項1に記載の方法。
【請求項7】
前記コンピューティングデバイスを通して、前記進行中のウェブアプリケーションが閉じられたことを示す指示を受け取ること、および、
前記進行中のウェブアプリケーションが閉じられたことを示す前記指示を受け取ると、前記コンピューティングデバイスを通して前記第2のリンクを前記参照テーブルから除去することをさらに含む、請求項1に記載の方法。
【請求項8】
前記コンピューティングデバイスを通して、前記進行中のウェブアプリケーションの第2の状態を反映するように前記参照テーブル中の前記第2のリンクを更新することが、前記コンピューティングデバイスを通して、前記参照テーブル中の前記第2のリンクを、前記進行中のウェブアプリケーションの前記第2の状態に対応する第3のリンクで置き換えることを含む、請求項1に記載の方法。
【請求項9】
前記コンピューティングデバイスを通して、前記進行中のウェブアプリケーションの第2の状態を反映するように前記参照テーブル中の前記第2のリンクを更新することが、前記コンピューティングデバイスを通して、事前定義済みの時間間隔で、前記進行中のウェブアプリケーションの前記第2の状態を反映するように前記参照テーブル中の前記第2のリンクを更新することを含む、請求項1に記載の方法。
【請求項10】
前記ウェブアプリケーションがステートレスなクラウドベースのウェブアプリケーションを含む、請求項1に記載の方法。
【請求項11】
コンピュータ実行可能命令が記憶されたコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が、コンピュータによって実行されたとき、
前記コンピュータを通して、ポータブルトークンが前記コンピュータの近傍内にあることを示す指示を受け取ること、
前記ポータブルトークンが前記コンピューティングデバイスの前記近傍内にあることを示す前記指示が受け取られたとき、前記コンピュータを通して参照テーブルへの第1のリンクを前記ポータブルトークンから受け取ることであって、前記参照テーブルが、進行中のウェブアプリケーションの第1の状態に対応する第2のリンクを含むものであること、
前記コンピュータを通して前記第1のリンクを介して前記参照テーブルから前記第2のリンクを取り出すこと、
前記コンピュータによって実行されるウェブブラウザ上で前記第2のリンクに対応する前記進行中のウェブアプリケーションを開くこと、
前記進行中のウェブアプリケーションが開かれたとき、前記コンピュータを通して、前記進行中のウェブアプリケーションの第2の状態を反映するように前記参照テーブル中の前記第2のリンクを更新すること、
前記コンピュータを通して、前記ポータブルトークンが前記コンピュータの前記近傍外にあることを示す指示を受け取ること、および、
前記ポータブルトークンが前記コンピュータの前記近傍外にあることを示す前記指示が受け取られたとき、前記ウェブブラウザ上で前記進行中のウェブアプリケーションを閉じること、を前記コンピュータに行わせる、コンピュータ可読記憶媒体。
【請求項12】
前記ポータブルトークンがプラグ接続可能デバイスであり、前記ポータブルトークンが、前記コンピューティングデバイスにプラグ接続されたときに前記ポータブルトークンが前記コンピューティングデバイスの前記近傍内にある、請求項11に記載のコンピュータ可読記憶媒体。
【請求項13】
前記ポータブルトークンが前記コンピューティングデバイスから抜かれたときに前記ポータブルトークンが前記コンピューティングデバイスの前記近傍外にある、請求項12に記載のコンピュータ可読記憶媒体。
【請求項14】
前記ポータブルトークンがワイヤレスデバイスを含み、前記ポータブルトークンがワイヤレスプロトコルに従った前記コンピューティングデバイスの範囲内にあるときに前記ポータブルトークンが前記コンピューティングデバイスの前記近傍内にある、請求項11に記載のコンピュータ可読記憶媒体。
【請求項15】
前記ポータブルトークンが前記ワイヤレスプロトコルに従った前記ワイヤレスデバイスの前記範囲外にあるときに前記ポータブルトークンが前記コンピューティングデバイスの前記近傍外にある、請求項14に記載のコンピュータ可読記憶媒体。
【請求項16】
前記ポータブルトークンが無線周波数識別タグを含み、前記ポータブルトークンが、前記コンピューティングデバイスに結合された無線周波数識別リーダの範囲内に置かれたときに、前記ポータブルトークンが前記コンピューティングデバイスの前記近傍内にあり、前記範囲で前記無線周波数識別リーダと前記ポータブルトークンとの間の通信が可能である、請求項11に記載のコンピュータ可読記憶媒体。
【請求項17】
前記ポータブルトークンが、前記コンピューティングデバイスに結合された前記無線周波数識別受信機の前記範囲内に再び置かれたときに、前記ポータブルトークンが前記コンピューティングデバイスの前記近傍外にある、請求項16に記載のコンピュータ可読記憶媒体。
【請求項18】
前記第1のリンクおよび前記第2のリンクがユニフォームリソースロケータを含む、請求項11に記載のコンピュータ可読記憶媒体。
【請求項19】
フォローミーサービスを提供するためのコンピュータシステムであって、
プロセッサと、
前記プロセッサに結合されたメモリと、
前記メモリから前記プロセッサで実行されるウェブブラウザと、
前記ウェブブラウザに結合されたウェブブラウザプラグインとを備え、前記ウェブブラウザプラグインが、前記メモリから前記プロセッサで実行されるように適合され、前記プロセッサによって実行されたとき、
ポータブルトークンが前記コンピュータシステムの近傍内にあることを示す指示を受け取ること、
前記ポータブルトークンが前記コンピュータシステムの前記近傍内にあることを示す前記指示を受け取ると、参照テーブルへの第1のリンクを受け取ることであって、前記参照テーブルが、進行中のウェブアプリケーションの第1の状態に対応する第2のリンクを含むものであること、
前記第1のリンクを介して前記参照テーブルから前記第2のリンクおよび対応するクッキーを取り出すこと、
前記クッキーと前記進行中のウェブアプリケーションへのアクセス要求とを前記第2のリンクに送信すること、
前記クッキーと前記進行中のウェブアプリケーションへの前記アクセス要求とを前記第2のリンクに送信すると、前記第2のリンクから前記進行中のウェブアプリケーションへのアクセス許可を受け取ること、
前記進行中のウェブアプリケーションへの前記アクセス許可を受け取ると、前記ウェブブラウザ上で前記第2のリンクに対応する前記進行中のウェブアプリケーションを開くこと、
前記進行中のウェブアプリケーションを開くと、前記進行中のウェブアプリケーションの第2の状態を反映するように前記参照テーブル中の前記第2のリンクを更新すること、
前記ポータブルトークンが前記コンピュータシステムの前記近傍外にあることを示す指示を受け取ること、
前記ポータブルトークンが前記コンピュータシステムの前記近傍外にあることを示す前記指示を受け取ると、前記参照テーブルが前記進行中のウェブアプリケーションの現在状態を反映しているかどうか判定すること、
前記参照テーブルが前記進行中のウェブアプリケーションの前記現在状態を反映していないと判定すると、前記進行中のウェブアプリケーションの前記現在状態を反映するように前記参照テーブル中の前記第2のリンクを更新すること、ならびに、
前記参照テーブルが前記進行中のウェブアプリケーションの前記現在状態を反映していると判定すると、または、前記進行中のウェブアプリケーションの前記現在状態を反映するように前記参照テーブル中の前記第2のリンクを更新すると、前記ウェブブラウザ上で前記進行中のウェブアプリケーションを閉じること、によって前記コンピュータシステムに前記フォローミーサービスを提供させる、コンピュータシステム。
【請求項20】
前記進行中のウェブアプリケーションに関する状態情報が前記第2のリンク中にエンコードされる、請求項19に記載のコンピュータシステム。
【請求項21】
前記参照テーブルが前記第2のリンクを拡張可能マークアップ言語で記憶する、請求項19に記載のコンピュータシステム。
【請求項22】
前記参照テーブルがユーザ特有である、請求項19に記載のコンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2013−520745(P2013−520745A)
【公表日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2012−554977(P2012−554977)
【出願日】平成22年6月4日(2010.6.4)
【国際出願番号】PCT/US2010/037433
【国際公開番号】WO2011/152833
【国際公開日】平成23年12月8日(2011.12.8)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
【出願人】(509348786)エンパイア テクノロジー ディベロップメント エルエルシー (117)
【Fターム(参考)】