(57)【特許請求の範囲】
【請求項１】
クライアントデバイス間のアプリケーション使用連続性を提供するシステムであって、
アプリケーションの第１インスタンスを実行する第１クライアントデバイスと、
前記アプリケーションの第２インスタンスを実行する第２クライアントデバイスと、
前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含むプライベートドメインを生成するサーバと
を備え、
前記第１クライアントデバイスはさらに、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を受信し、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを生成し、
前記状態情報を前記第２クライアントデバイスへ送信させ、前記第２クライアントデバイスでの前記アプリケーションの前記第２インスタンスをイネーブルとし、前記第１クライアントデバイスからの前記状態情報を用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続させ、
前記サーバは、前記アプリケーションの前記第１および第２インスタンスのそれぞれのアプリケーション暗号化キーＫａと、前記プライベートドメインのドメイン暗号化キーＰとを生成し、前記第１および第２クライアントデバイスのそれぞれに前記ドメイン暗号化キーＰを格納する、システム。
【請求項２】
クライアントデバイス間のアプリケーション使用連続性を提供するシステムであって、
アプリケーションの第１インスタンスを実行する第１クライアントデバイスと、
前記アプリケーションの第２インスタンスを実行する第２クライアントデバイスと
を備え、
前記第１クライアントデバイスはさらに、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を受信し、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを生成し、
前記状態情報を前記第２クライアントデバイスへ送信させ、前記第２クライアントデバイスでの前記アプリケーションの前記第２インスタンスをイネーブルとし、前記第１クライアントデバイスからの前記状態情報を用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続させ、
前記アプリケーションの前記第１および第２インスタンスのそれぞれのアプリケーション暗号化キーＫａと、プライベートドメインのドメイン暗号化キーＰとが、サーバによって生成され、
前記プライベートドメインは、前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含み、
前記第１および第２クライアントデバイスのそれぞれは、前記ドメイン暗号化キーＰを格納する、システム。
【請求項３】
クライアントデバイス間のアプリケーション使用連続性を提供するシステムであって、
アプリケーションの第１インスタンスを実行する第１クライアントデバイスと、
前記アプリケーションの第２インスタンスを実行する第２クライアントデバイスと
を備え、
前記第１クライアントデバイスはさらに、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を受信し、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを生成し、
前記状態情報を前記第２クライアントデバイスへ送信させ、前記第２クライアントデバイスでの前記アプリケーションの前記第２インスタンスをイネーブルとし、前記第１クライアントデバイスからの前記状態情報を用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続させ、
前記アプリケーションの前記第１および第２インスタンスのそれぞれのアプリケーション暗号化キーＫａと、プライベートドメインのドメイン暗号化キーＰとが、前記第１および第２クライアントデバイスの少なくとも一方によって生成され、
前記プライベートドメインは、前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含み、
前記第１および第２クライアントデバイスのそれぞれは、前記ドメイン暗号化キーＰを格納する、システム。
【請求項４】
前記アプリケーションの前記第１インスタンスは、前記アプリケーション暗号化キーＫａを用いて状態ブロブの暗号化または署名を行い、前記アプリケーション暗号化キーＫａで保護された前記アプリケーションの前記第１インスタンスの状態情報を含むアプリケーション暗号化状態ブロブ（状態）Ｋａを形成する、請求項１から３のいずれか１項に記載のシステム。
【請求項５】
前記アプリケーションの前記第２インスタンスは、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを解読または認証し、前記状態情報を前記第２クライアントデバイスに復元する、請求項４に記載のシステム。
【請求項６】
前記第１クライアントデバイスは、前記第１クライアントデバイスおよび前記ドメイン暗号化キーＰを用いて前記アプリケーション暗号化状態ブロブ（状態）Ｋａの暗号化または署名を行い、ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを形成するセキュアプロセッサを有する、請求項４または５に記載のシステム。
【請求項７】
前記第２クライアントデバイスは、前記第２クライアントデバイスを用いて前記ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを解読し、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを形成するセキュアプロセッサを有する、請求項６に記載のシステム。
【請求項８】
前記状態情報は、タイミングカウンタ、動画フレーム、またはページ番号に対応するデータを含む、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記アプリケーションの前記第１インスタンスの動作の前記転送指示はユーザ入力を含む、請求項１から８のいずれか１項に記載のシステム。
【請求項１０】
前記ユーザ入力は、ジェスチャ認識、動作認識、音声認識、音声コマンド、および、近接を考慮した技術からなる群より選択される、請求項９に記載のシステム。
【請求項１１】
アプリケーションの第１インスタンスを持つ第１クライアントデバイスと前記アプリケーションの第２インスタンスを持つ第２クライアントデバイスとの間のアプリケーション使用連続性を提供する方法であり、
サーバにより、前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含むプライベートドメインを生成する段階と、
前記アプリケーションの前記第１および第２インスタンスのそれぞれに対するアプリケーション暗号化キーＫａを生成する段階と、
前記プライベートドメインのドメイン暗号化キーＰを生成し、前記第１および第２クライアントデバイスのそれぞれに前記ドメイン暗号化キーＰを格納する段階と、
前記第１クライアントデバイスで実行中である前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を前記第１クライアントデバイスで受信する段階と、
前記アプリケーションの前記第１インスタンスの動作の前記転送指示に応答し、前記第１クライアントデバイス上の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを前記第１クライアントデバイスにより生成する段階と、
前記第１クライアントデバイスが前記状態情報および前記データを前記第２クライアントデバイスへ送信し、前記第２クライアントデバイスでの前記アプリケーションの前記第２インスタンスをイネーブルとし、前記アプリケーションの前記第２インスタンスと前記第１クライアントデバイスからの前記状態情報とを用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続する段階と
を備える方法。
【請求項１２】
アプリケーションの第１インスタンスを持つ第１クライアントデバイスと前記アプリケーションの第２インスタンスを持つ第２クライアントデバイスとの間のアプリケーション使用連続性を提供する方法であり、
前記第１および第２クライアントデバイスの少なくとも一方を用いて、前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含むプライベートドメインを生成する段階と、
前記アプリケーションの前記第１および第２インスタンスのそれぞれに対するアプリケーション暗号化キーＫａを生成する段階と、
前記プライベートドメインのドメイン暗号化キーＰを生成し、前記第１および第２クライアントデバイスのそれぞれに前記ドメイン暗号化キーＰを格納する段階と、
前記第１クライアントデバイスで実行中である前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を前記第１クライアントデバイスで受信する段階と、
前記アプリケーションの前記第１インスタンスの動作の前記転送指示に応答し、前記第１クライアントデバイス上の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを前記第１クライアントデバイスにより生成する段階と、
前記第１クライアントデバイスが前記状態情報および前記データを前記第２クライアントデバイスへ送信し、前記第２クライアントデバイスでの前記アプリケーションの前記第２インスタンスをイネーブルとし、前記アプリケーションの前記第２インスタンスと前記第１クライアントデバイスからの前記状態情報とを用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続する段階と
を備える方法。
【請求項１３】
前記アプリケーションの前記第１インスタンスと前記アプリケーション暗号化キーＫａとを用いて状態ブロブを暗号化し、前記アプリケーション暗号化キーＫａで保護された前記アプリケーションの前記第１インスタンスの状態情報を含むアプリケーション暗号化状態ブロブ（状態）Ｋａを形成する段階と、
前記第１クライアントデバイスと前記ドメイン暗号化キーＰとを用いて、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを暗号化し、ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを形成する段階と
をさらに備える、請求項１１または１２に記載の方法。
【請求項１４】
前記第２クライアントデバイスを用いて、前記ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを解読し、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを形成する段階と、
前記アプリケーションの前記第２インスタンスを用いて前記アプリケーション暗号化状態ブロブ（状態）Ｋａを解読する段階と
をさらに備え、
前記アプリケーションの前記第２インスタンスは前記第２クライアントデバイスで前記状態情報を復元する、請求項１３に記載の方法。
【請求項１５】
前記状態情報は、タイミングカウンタ、動画フレーム、またはページ番号に対応するデータを含む、請求項１１から１４のいずれか１項に記載の方法。
【請求項１６】
前記アプリケーションの前記第１インスタンスの動作の前記転送指示はユーザ入力を含む、請求項１１から１５のいずれか１項に記載の方法。
【請求項１７】
前記ユーザ入力は、ジェスチャ認識、動作認識、音声認識、音声コマンド、および、近接を考慮した技術からなる群より選択される、請求項１６に記載の方法。
【請求項１８】
１以上のプロセッサにより実行されると前記１以上のプロセッサに、
サーバによって生成されたプライベートドメインのドメイン暗号化キーＰを、第１クライアントデバイスおよび第２クライアントデバイスのそれぞれに格納する手順と、
アプリケーションの第１インスタンスの動作の転送指示に応答し、前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを前記第１クライアントデバイスにより生成する手順と、
前記第１クライアントデバイスが前記状態情報を第２クライアントデバイスへ送信し、前記第２クライアントデバイスでの前記アプリケーションの第２インスタンスをイネーブルとし、前記第１クライアントデバイスからの前記状態情報を用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続する手順と
を実行させ、
前記プライベートドメインは、前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含み、
前記アプリケーションの前記第１および第２インスタンスのそれぞれのアプリケーション暗号化キーＫａと、前記ドメイン暗号化キーＰとは、前記サーバにより生成される、プログラム。
【請求項１９】
１以上のプロセッサにより実行されると前記１以上のプロセッサに、
第１クライアントデバイスでのアプリケーションの第１インスタンスおよび第２クライアントデバイスでの前記アプリケーションの第２インスタンスのそれぞれのアプリケーション暗号化キーＫａと、プライベートドメインのドメイン暗号化キーＰとを、前記第１および第２クライアントデバイスの少なくとも一方により生成する手順と、
前記第１および第２クライアントデバイスのそれぞれに前記ドメイン暗号化キーＰを格納する手順と、
前記アプリケーションの前記第１インスタンスの動作の転送指示に応答し、前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを前記第１クライアントデバイスにより生成する手順と、
前記第１クライアントデバイスが前記状態情報を第２クライアントデバイスへ送信し、前記第２クライアントデバイスでの前記アプリケーションの第２インスタンスをイネーブルとし、前記第１クライアントデバイスからの前記状態情報を用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続する手順と
を実行させ、
前記プライベートドメインは、前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含む、プログラム。
【請求項２０】
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を前記第１クライアントデバイスで受信する手順をさらに前記１以上のプロセッサに実行させる、請求項１８または１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はアプリケーション使用連続性に関し、より詳細には、プラットフォーム間のアプリケーション使用連続性に関する。
【背景技術】
【０００２】
パーソナルコンピューティングは、デスクトップ、ノートブック、ネットブック、タブレット、および／またはスマートデバイスを含む。１以上のデバイス間でドキュメントおよび／またはメディアコンテンツなどの情報を共有する従来の方法においては、ユーザは、第１デバイスの希望するファイルを一時的な転送手段（例えば、フラッシュ記憶装置、Ｅメール転送、および／またはＩＭファイル転送など）に格納し、ファイル全体を宛て先のデバイスに転送する必要がある。転送されたファイルに宛て先のデバイスでアクセスするには、ユーザは、宛て先のデバイスに存在する適切なアプリケーションでファイルを開き、当該ファイルのコンテンツに関するブックマークまたは文脈情報を用いて、保存されたデータから、転送された情報の状態をマニュアルで復元する必要がある。
【図面の簡単な説明】
【０００３】
特許請求する特徴および利点は、添付の図面を参照して検討されるべきである、実施形態に関する以下の詳細な説明から明らかとなるであろう。
【図１】本開示に係る例示的なシステムの実施形態を示す。
【図２】本開示の一実施形態に係るプライベートドメインを設定するための動作を示すフローチャートである。
【図３】本開示の一実施形態に係るプラットフォーム間のアプリケーション使用連続性の動作を示すフローチャートである。
【図４】本開示に係る他の例示的なシステムの実施形態を示す。
【図５】本開示に係るさらに他の例示的なシステムの実施形態を示す。
【図６】本開示の一実施形態に係る動作を示すフローチャートである。
【発明を実施するための形態】
【０００４】
以下の詳細な説明は例示的な実施形態を参照しながら示されるが、それらの多くの代替例、修正例、および変形例が当業者には明らかとなるであろう。
【０００５】
一般的に本開示は、クライアントプラットフォーム間のアプリケーション使用連続性のためのシステム（および方法）を提供する。システムの一例は、アプリケーションの第１インスタンスを実行する第１クライアントデバイス、および当該アプリケーションの第２インスタンスを実行する第２クライアントデバイスを含む。（第１デバイスの）ユーザは、第１クライアントデバイスで実行中のアプリケーションの動作を第２クライアントデバイスへ転送することを決定する。アプリケーションの動作を転送するよう命令するユーザからの指示に応答して、第１クライアントデバイスは、実行されているアプリケーションの動作パラメータに関する状態情報を生成し、当該状態情報を第２クライアントデバイスへ転送する。そして第２クライアントデバイスは、アプリケーションの第２インスタンスを起動し、ユーザが第１デバイスを中止したポイントからアプリケーションを進める。このことによりユーザが、セッションのデータを失うことなくリアルタイムで（またはほぼリアルタイムで）２つの異なるデバイス間で「ライブの」アプリケーション（例えば、動画ストリーム、オーディオストリームなど）を転送出来るようになるので有利である。
【０００６】
いくつかの実施形態において、ユーザは１以上のプライベートドメインを作成し、各ドメイン内のデバイスおよびアプリケーションを登録する。ドメイン内の信頼されたデバイスのみがアプリケーション状態情報の「ライブの」転送に関われるよう暗号化メカニズムを用いてもよい。他の実施形態において、「クラウド」環境でサーバを用い、当該サーバがプライベートドメインを保持し、暗号化キーを提供することにより、プライベートドメイン内のセキュリティ対策を提供し、ドメイン外でコンテンツが共有されることを防ぐ。サーバおよびクライアントデバイスは様々な通信規格を用い、クライアントデバイ間の通信を可能とするよう調整を行ってもよい。
【０００７】
図１は、本開示の様々な実施形態に係るシステム１００を示す。システム１００は使用連続性サーバ１０２（以下、サーバ１０２）、および複数のクライアントデバイス１２０Ａ、１２０Ｂを含む。システム１００の一般的概要として、各クライアントデバイス１２０Ａ、１２０Ｂは、実行中のアプリケーションの動作の一方のデバイスから他方への転送を促すべく互いに通信を行う。サーバ１０２は、クライアントデバイス１２０Ａ、１２０Ｂに対応する識別子を含むプライベートドメイン１１４Ａであり、当該プリベートドメイン１１４Ａ内のクライアントデバイス１２０Ａ、１２０Ｂで実行可能な少なくとも１つのアプリケーション１１８の識別子を含むプライベートドメイン１１４Ａを設定するのに用いられ得る。またサーバ１０２は、アプリケーション毎に、および／またはドメイン毎に暗号化キー（例えば、Ｋａ１０７および／またはＰ１１３）を提供し、クライアントデバイス１２０Ａ、１２０Ｂ間の状態情報のセキュアな転送を可能としてもよい。図１のコンポーネントのそれぞれは、本明細書でより詳細に説明する。
【０００８】
サーバ１０２は、アプリケーション登録エンジン１０４およびプライベートドメインエンジン１０８を含んでよい。アプリケーション登録エンジン１０４は、サーバ１０２に少なくとも１つのアプリケーション１１８を登録し、アプリケーション１１８が第１および第２のクライアントデバイス１２０Ａ、１２０Ｂで実行可能であるかの判断を行ってもよい。クライアントデバイス１２０Ａ、１２０Ｂは互いに独立して、携帯電話、スマートフォン、パーソナルメディアプレーヤ（ＰＭＰ）、パーソナルデジタルアシスタント（ＰＤＡ）、ネットブック、ノートブック、デスクトップ、および／またはハンドヘルド電子機器を含んでよいが、これらに限定されない。加えて、アプリケーション登録エンジン１０４はアプリケーションキー生成部１０６も含んでよい。キー生成部１０６は、サーバ１０２に登録された各アプリケーション１１８のための暗号化キー（以下Ｋａ１０７）を生成する。Ｋａ１０７は、例えば、公開キー、秘密キー、または他の公知の暗号化キーを含んでもよい。
【０００９】
プライベートドメインエンジン１０８は、サーバ１０２上で少なくとも１つのプライベートドメイン１１４Ａを生成してもよい。示される実施形態において、プライベートドメインエンジン１０８は、サーバ上で複数のプライベートドメイン１１４Ａ、１１４Ｂ、...、１１４Ｎを生成する。説明を分かりやすくするべく、複数のプライベートドメインのうちいずれであってもよい個別のプライベートドメインは本明細書において「プライベートドメイン１１４」と呼ぶ。プライベートドメインエンジン１０８は、サーバ１０２、特に特定のプライベートドメイン１１４に対し、第１および第２のクライアントデバイス１２０Ａ、１２０Ｂのうち少なくとも１つを登録するデバイス登録エンジン１１０を含んでもよい。加えて、デバイス登録エンジン１１０はドメインキー生成部１１２も含んでよい。ドメインキー生成部１１２は、サーバ１０２で生成される各プライベートドメイン１１４のドメインキーＰ１１３を生成する。ドメインキーＰ１１３は、例えば、公開キー、秘密キー、または他の公知の暗号化キーを含んでもよい。
【００１０】
示される実施形態において、各プライベートドメイン１１４は、登録済アプリケーションテーブル１１７、登録済ユーザテーブル１１９、および登録済デバイステーブル１２１を含む。登録済アプリケーションテーブル１１７は、サーバ１０２上でプライベートドメイン１１４に登録された各アプリケーションのアイデンティティを含んでよい。登録済ユーザテーブル１１９は、サーバ１０２上でプライベートドメイン１１４に登録された各ユーザのアイデンティティを含んでよい。登録済デバイステーブル１２１は、サーバ１０２に登録された、特定のドメイン１１４に含まれる各クライアントデバイス１２０Ａ、１２０Ｂのアイデンティティを含んでもよい。
【００１１】
各プライベートドメイン１１４のドメインキーＰ１１３が生成されると、サーバ１０２は、サーバ１０２に登録された、登録済デバイステーブル１２１で認められる各クライアントデバイス１２０Ａ、１２０Ｂと通信リンク１３２を介して通信を行う。加えて各クライアントデバイス（例えばクライアントデバイス１２０Ａ）は、通信リンク１３２を介して他のクライアントデバイス（例えばクライアントデバイス１２０Ｂ）と通信を行う。通信リンク１３２は、ＷｉＦｉ、ＷｉＭａｘ、８０２．１ｘ規格の何れか、および／またはＢｌｕｅｔｏｏｔｈ（登録商標）通信を含むがこれらに限定されない有線および／または無線の通信手段を含んでもよい。サーバ１０２はさらに、登録された各クライアントデバイス（例えば、クライアントデバイス１２０Ａ、１２０Ｂ）にドメインキーＰ１１３をセキュアに転送し、各クライアントデバイス１２０Ａ、１２０Ｂのセキュアプロセッサ１２４にドメインキーＰ１１３を提供する。セキュアプロセッサ１２４は、汎用機能、および／またはセキュリティ機能（つまり、キーデータを安全に保持する機能、および高速デジタル署名計算機能）を有するプロセッサを含んでもよい。
【００１２】
一実施形態において、サーバ１０２は、クライアントデバイス１２０Ａ、１２０Ｂが一時的に特定のドメイン１１４に登録されるようにしてもよい。プライベートドメイン１１４へのクライアントデバイス１２０Ａ、１２０Ｂの一時的な登録によりゲストアクセスモードが可能となる。またクライアントデバイス１２０Ａ、１２０Ｂの一時的な登録により、最初は別個のドメイン（例えば、１１４Ａおよび１１４Ｎ）に登録されたデバイス１２０Ａ、１２０Ｂのユーザ間の時間限定的な一時的な情報の共有が可能となり、ユーザ間の即座の協働ネットワークが可能となる。
【００１３】
サーバ１０２は、クライアントデバイス１２０Ａ、１２０Ｂのそれぞれ、および／またはアプリケーション１１８とコマンドおよびデータを交換する任意のタイプの回路を含んでよい。例えば、サーバ１０２は、汎用コンピューティングシステム（例えば、デスクトップＰＣ、ラップトップ、モバイルＰＣ、ハンドヘルドモバイルデバイス、スマートフォンなど）に含まれ得るコモディティ回路（例えば、複数の処理コアおよび算術演算処理ユニット（ＡＬＵ）を含みうる）マルチコアＣＰＵ、メモリ、メモリコントローラユニット、動画プロセッサ、ネットワークプロセッサ、ネットワークプロセッサ、バスコントローラなど）、並びに／或いは、汎用コンピューティングシステムおよび／または特定用途コンピューティングシステム（例えば、高信頼性システム、スーパーコンピューティングシステムなど）に含まれ得るカスタム回路を含んでもよい。
【００１４】
本明細書の実施形態に関して用いられる「回路」という用語は、例えば、それだけで、または何らかの組み合わせにより、ハードワイヤされた回路、プログラム可能回路、状態機械回路、および／または、プログラム可能回路により実行される命令を格納したファームウェアを含みうる。
【００１５】
アプリケーション１１８は、何らかのタイプのソフトウェアパッケージ、コードモジュール、ファームウェア、および／またはサーバ１０２および各クライアントデバイス１２０Ａ、１２０Ｂとコマンドおよびデータの交換を行う命令セットを含みうる。例えば、アプリケーション１１８は、汎用コンピューティングシステム（例えば、エンドユーザ向けの汎用アプリケーション（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ、Ｅｘｃｅｌなど）に関連付けられたソフトウェアパッケージ、ネットワークアプリケーション（例えばウェブブラウザアプリケーション、Ｅメールアプリケーションなど））、および／または、カスタムソフトウェアパッケージ、カスタムコードモジュール、カスタムファームウェア、および／または、汎用コンピューティングシステムおよび／または特定用途コンピューティングシステムのために書かれたカスタム命令セット（例えば科学演算パッケージ、データベースパッケージなど）を含みうる。
【００１６】
本開示の目的において、「ソースデバイス」という用語は、実行中のアプリケーション１１８を転送することをユーザが希望する第１クライアントデバイス（例えばクライアントデバイス１２０Ａ）を指し、「ターゲットデバイス」という用語は、実行中のアプリケーション１１８を受信することをユーザが希望する第２クライアントデバイス（例えばクライアントデバイス１２０Ｂ）を指す。よって以下の説明において、ソースデバイスという用語を第１クライアントデバイス１２０Ａと互換可能に用い、ターゲットデバイスという用語を第２クライアントデバイス１２０Ｂと互換可能に用いる。各クライアントデバイス１２０Ａ、１２０Ｂは、ホストの部分および／またはオープンな部分１２８、並びにセキュアな部分１３０を含みうる。理解いただけるように、ホストの部分１２８はセキュアな部分１３０へ限られたアクセスしか出来ない。
【００１７】
一実施形態において、少なくとも１つのアプリケーション１１８（１）の第１インスタンスは、第１クライアントデバイス１２０Ａで実行中である。加えて、アプリケーション１１８（２）の第２インスタンスは、第２クライアントデバイス１２０Ｂに含まれる。第１クライアントデバイス１２０Ａ（ソースデバイス）のユーザは、第１クライアントデバイス１２０Ａで実行中のアプリケーション１１８（１）からの状態情報およびデータを、プライベートドメイン１１４に含まれる第２クライアントデバイス１２０Ｂ（ターゲットデバイス）へ転送することを希望し得る。本明細書において状態情報とは、第１クライアントデバイス１２０Ａで実行中のアプリケーションを他のデバイスへ転送する時点における、当該アプリケーションの順序立てられた一連のデータ内の相対位置を示す情報を意味する。例えば状態情報は、ユーザが転送機能を指示する際のアプリケーション１１８内の時点を表す、ターゲットデバイス１２０Ｂでアプリケーション１１８内の同じ、またはほぼ同じ相対位置でアプリケーション１１８を実行開始させる、アプリケーション１１８の動作パラメータを含みうる。
【００１８】
例として、ユーザが第１クライアントデバイス１２０Ａでオーディオアプリケーションを視聴しているとする。オーディオアプリケーションの実行中のある時点でユーザは、実行中のオーディオアプリケーションを他のクライアントデバイス（例えば第２クライアントデバイス１２０Ｂ）へ転送することを選択して指示しうる。転送指示のあったこの時点におけるオーディオアプリケーションの状態情報は、転送指示が起こった時点のオーディオファイル内の相対位置（例えば、タイミングカウンタに対応するデータ）を含みうる。
【００１９】
他の例として、ユーザが第１クライアントデバイス１２０Ａで動画アプリケーションを視聴しているとする。動画ファイルが再生されている間にユーザが、実行中の動画ファイルを他のクライアントデバイス（例えば第２クライアントデバイス１２０Ｂ）へ転送することを選択して指示し得る。動画ファイルの状態情報は、転送指示が起こった時点の相対位置（例えば、動画フレームなどに対応するデータ）を含みうる。場合によっては、状態情報は、動画フレームに対応するオーディオ（含まれる場合）の相対位置を含みうる。
【００２０】
さらに他の例として、ユーザが、第１クライアントデバイス１２０Ａで実行中のオフィススイートアプリケーションのクライアントデバイス（例えば第２クライアントデバイス１２０Ｂ）への転送を開始し得る。オフィススイートアプリケーションは、ワードプロセシングアプリケーション、スプレッドシートアプリケーション、プレゼンテーションアプリケーション、および／または描画アプリケーションを含みうるが、これらに限定されない。転送指示があった時点のオフィススイートアプリケーションの状態情報は、転送指示が起こった時点の相対位置に対応するデータ（例えば、ユーザが閲覧中のページまたはシートに対応するデータ）を含みうる。
【００２１】
アプリケーション１１８（１）、１１８（２）の第１および第２インスタンスは、本明細書で説明される方法に従ってサーバ１０２に登録されてもよい。アプリケーション１１８（１）、１１８（２）の第１および第２インスタンスが登録されると、（登録済アプリケーション１１８（１）〜１１８（２）固有の）アプリケーション固有キーＫａ１０７が生成される。ユーザはさらに、本明細書で説明されるように、サーバ１０２に第１および第２のクライアントデバイス１２０Ａ、１２０Ｂを登録することにより、プライベートドメイン１１４Ａを生成してもよい。プライベートドメイン１１４Ａの登録済アプリケーションテーブル１１７および登録済デバイステーブル１２１はそれぞれ、登録済アプリケーション１１８（１）、１１８（２）および登録済クライアントデバイス１２０Ａ、１２０Ｂの識別子を保持してもよい。デバイス１２０Ａ、１２０Ｂのそれぞれが登録されると、サーバ１０２は、登録された各クライアントデバイス１２０Ａ、１２０Ｂのセキュアプロセッサ１２４内で（プライベートドメイン１１４Ａ固有の）ドメインキーＰ１１３をセキュアに提供する。
【００２２】
場合によっては、クライアントデバイス１２０Ａ、１２０Ｂは、登録済アプリケーションテーブル１１７、登録済ユーザテーブル１１９、および／または登録済デバイステーブル１２１のコピーを含んでもよい（分かりやすくするため示されていない）。例えば、クライアントデバイス１２０Ａ、１２０Ｂは登録済アプリケーションテーブル１１７を用い、クライアントデバイスで実行中の特定のアプリケーションが、本開示に係る転送動作に対応可能であるかどうかの判断を行ってもよい。クライアントデバイス１２０Ａ、１２０Ｂは登録済ユーザテーブル１１９を用い、クライアントデバイス１２０Ａ、１２０Ｂの特定のユーザが、特定のアプリケーションを転送する権限があるかどうか、および、ユーザがどのクライアントデバイスへアプリケーションを転送できるかの判断を行ってもよい。またクライアントデバイス１２０Ａ、１２０Ｂは登録済デバイステーブル１２１を用いて、実行中の特定のアプリケーションを転送できる他のクライアントデバイスを判断および／または特定してもよい。例えば、第１クライアントデバイス１２０Ａは登録済デバイステーブル１２１を用いて、第１クライアントデバイス１２０Ａの通信距離内にある潜在的なクライアントデバイスのリストを作成し、ユーザが選択出来るようにこのリストを提示してもよい。
【００２３】
アプリケーション１１８（１）、１１８（２）およびクライアントデバイス１２０Ａ、１２０Ｂが登録されると、ユーザは、ソースデバイス１２０Ａで実行中のアプリケーション１１８（１）の第１インスタンスの動作のターゲットデバイス１２０Ｂへの転送を希望することを選択して、ユーザ入力１２５により示す。ユーザ入力１２５は、ジェスチャ認識、動作認識、および／または近接を考慮した技術を含むがこれらに限定されないユーザによる選択的な入力手段、並びに他の入力手段を含みうる。網羅的に列挙するわけではないが、ユーザ入力１２５は、（タッチスクリーンなど）ディスプレイデバイスの一部のスワイプ動作、振動動作、パスワードおよび／またはＰＩＮ番号入力、アイコンおよび／またはメニューの起動などを含みうる。各クライアントデバイス１２０Ａ、１２０Ｂは、ユーザ入力１２５を受信し、アプリケーション１１８（１）、１１８（２）の第１および第２インスタンスの指示を通信する転送モジュール１３４を含んでよい。
【００２４】
転送モジュール１３４は、ユーザ入力１２５としてユーザ入力１２５を特定および／または認証し、並びに／或いは、転送先となる潜在的なターゲットデバイスのリストを提示してもよい。例えば、転送モジュール１３４は、登録済ユーザテーブル１１９、登録済デバイステーブル１２１、および／または、ソースデバイス１２０Ａの通信距離内のデバイスのアイデンティティに少なくとも部分的に基づき、転送先となる潜在的なターゲットデバイスのリストを提示してもよい。一実施形態において、転送モジュール１３４は、１以上のタイプのアイコンなどを用いて登録済デバイステーブル１２１に基づき潜在的なターゲットデバイスのリストをグラフにより提示してもよい。アイコンは、複数の異なるタイプのデバイス（例えば、携帯電話、スマートフォン、パーソナルメディアプレーヤ（ＰＭＰ）、パーソナルデジタルアシスタント（ＰＤＡ）、ネットブック、ノートブック、デスクトップ、および／またはハンドヘルド電子機器などを含むがこれらに限定されない）を表してもよい。理解いただけるように、登録済デバイステーブル１２１に関連付けられているいくつかの潜在的なターゲットデバイスは、デバイス間の通信に用いられる通信リンク１３２（２）の性能の限界により圏外であるということもあり得る（例えば、通信リンク１３２（２）が近距離無線通信、無線アドホックネットワークなどである場合）。これにより、転送モジュール１３４は通信距離内にある登録されたクライアントデバイスのみを提示（例えば表示）する。転送モジュール１３４は、場合によっては、ソースデバイス１２０Ａに対する相対的な物理位置に基づきディスプレイ上にアイコンを配置してもよい。そしてユーザは、例えばジェスチャ動作などを用い、希望するターゲットデバイス１２０Ｂを選択してよい。そして転送モジュール１３４は、動作およびターゲットデバイス１２０Ｂのアイデンティティを表すデータの転送指示を、登録済アプリケーション１１８（１）の第１インスタンスへ転送してもよい。
【００２５】
登録済アプリケーション１１８（１）の第１インスタンスは、動作転送指示を受信すると状態ブロブ（状態）を生成する状態情報生成部１２２を含みうる。「ブロブ」という用語は、画像、オーディオ、および／またはマルチメディアオブジェクトを含みうる単一のエンティティとして格納されるデータの集まりを指し得る。アプリケーション１１８（１）の第１インスタンスは、アプリケーション固有キーＫａ１０７を用いて状態ブロブ（状態）の暗号化および／または署名を行い、アプリケーション暗号化状態ブロブ（状態）Ｋａを形成する。署名のためのキーはドメインキーＰ１１３から抽出され得る。アプリケーション暗号化状態ブロブ（状態）Ｋａは状態情報を含み、場合によっては、ソースデバイス１２０Ａで実行中の登録されたアプリケーション１１８（１）の第１インスタンスのデータを含みうる。
【００２６】
例えば、一実施形態において、登録済アプリケーション１１８（１）の第１インスタンスは、ソースデバイス１２０Ａで実行される動画ファイルを含む。動作転送指示が受信された際、ユーザが、「フレームＦ」などの動画ファイルの特定のマークまたはフレームを視聴しているものとする。（状態）Ｋａに含まれる状態情報は、フレームＦ（つまり、動作転送指示が受信された時点のフレーム）を表すデータを含みうる。また（状態）Ｋａに含まれる状態情報は、残りのフレーム（例えば、フレームＦから動画ファイルの最後のフレームまでのフレーム）を表すデータも含みうる。代替的に状態情報は、動画ファイル全体（動画ファイルの全フレーム）、およびフレームＦを示すデータを含み得、このことによりユーザは、ターゲットデバイス１２０Ｂで動画ファイル全体を視聴する、またはファイルが転送された時点のフレーム（フレームＦ）から継続して視聴することが出来る。例えば、ユーザおよび／またはアプリケーション１１８（１）は、ソースデバイス１２０Ａで動画ファイル（フレームＦ）を一時停止し、動画ファイルをターゲットデバイス１２０Ｂへ転送し、ターゲットデバイス１２０ＢでフレームＦから動画の視聴を再開する。
【００２７】
登録済アプリケーション１１８（１）の第１インスタンスはさらに、セキュアな通信リンク１２６を介して第１クライアントデバイス１２０Ａのセキュアプロセッサ１２４と通信を行う。登録済アプリケーション１１８（１）の第１インスタンスは、通信リンク１２６を介してソースデバイス１２０Ａのセキュアプロセッサ１２４に（状態）Ｋａを転送する。登録済アプリケーション１１８（１）の第１インスタンスはさらに、セキュアプロセッサ１２４に対し、ドメインキーＰ１１３で（状態）Ｋａの暗号化および／または署名を行うよう要求する。登録済アプリケーション１１８（１）の第１インスタンスから（状態）Ｋａおよび暗号化要求を受信すると、セキュアプロセッサ１２４は、ドメインキーＰ１１３で（状態）Ｋａの暗号化および／または署名を行い、ドメイン暗号化された（ドメインキーＰ１１３で保護された）状態ブロブ（（状態）Ｋａ）Ｐを形成する。
【００２８】
プライベートドメイン１１４Ａにクライアントデバイス１２０Ａ、１２０Ｂが登録されると、第１および第２のクライアントデバイス１２０Ａ、１２０Ｂは、互いに通信リンク１３２（２）を介して、情報、特に、一方のデバイスで実行中の登録されたアプリケーションの状態情報を通信および転送してもよい。本明細書で説明される通信リンク１３２の例に加え、通信リンク１３２（２）は、近距離無線通信、無線アドホックネットワークなどを含んでもよい。またクライアントデバイス１２０Ａ、１２０Ｂは、協働で利用するシナリオなどにおいて、登録された各クライントデバイスのＩＰアドレスなどアイデンティティを見つけるべくサーバ１０２と通信を行ってもよい。
【００２９】
クライアントデバイスを見つけると、ソースデバイス１２０Ａは、プライベートドメイン１１４Ａの通信リンク１３２（２）を介してターゲットデバイス１２０Ｂとのセキュアな接続を確立する。ソースデバイス１２０Ａはさらに、通信リンク１３２を介して（（状態）Ｋａ）Ｐをターゲットデバイス１２０Ｂへ転送する。（（状態）Ｋａ）Ｐを受信すると、ターゲットデバイス１２０Ｂ（例えば、転送モジュール１２３（Ｂ））は、登録済アプリケーション１１８（２）の第２インスタンスの起動を開始する。ユーザ、および／または登録済アプリケーション１１８（２）の第２インスタンスは、セキュアな通信リンク１２６（Ｂ）を介して、ターゲットデバイス１２０Ｂのセキュアプロセッサ１２４Ｂと通信を行い、（（状態）Ｋａ）Ｐを転送する。登録済アプリケーション１１８（２）の第２インスタンスはさらに、セキュアプロセッサ１２４Ｂに対し（（状態）Ｋａ）Ｐを解読および／または認証するよう要求する。
【００３０】
登録済アプリケーション１１８（２）の第２インスタンスから（（状態）Ｋａ）Ｐおよび解読要求を受信すると、セキュアプロセッサ１２４Ｂは、ドメインキーＰ１１３を用いて（（状態）Ｋａ）Ｐを解読および／または認証し、（状態）Ｋａを生成する。セキュアプロセッサ１２４Ｂはさらに、セキュアな通信リンク１２６（Ｂ）を介して登録済アプリケーション１１８（２）の第２インスタンスへ（状態）Ｋａを転送する。（状態）Ｋａを受信すると、登録済アプリケーション１１８（２）の第２インスタンスは、アプリケーション固有キーＫａ１０７を用いて（状態）Ｋａを解読および／または認証し、（（状態）Ｋａ）Ｐで転送された登録済アプリケーション１１８（１）の第１インスタンスの状態情報を生成および復元する。登録済アプリケーション１１８（２）の第２インスタンスは、生成され復元された状態情報を用いてターゲットデバイス１２０Ｂでアプリケーション１１８の実行を再開する。なお、上述した説明は他の実施形態に代替的に適用することも可能である。例えばそれら他の実施形態においては、第２クライアントデバイス１２０Ｂがソースデバイスであり、第１クライアントデバイス１２０Ａがターゲットデバイスである。
【００３１】
図２は、本開示の一実施形態に係る、プライベートドメインを設定する動作を示すフローチャート２００である。例えば、方法２００は、新たなプライベートドメインＤを作成する動作（動作２０２）と、プライベートドメインＤに関連付けられた１以上のデバイスに対応する識別子を含む登録済デバイステーブルを生成する動作（動作２０４）と、プライベートドメインＤに関連付けられた１以上のユーザに対応する識別子を含む登録済ユーザテーブルを生成する動作（動作２０６）と、プライベートドメインＤに関連付けられた１以上のアプリケーションに対応する識別子を含む登録済アプリケーションテーブルを生成する動作（動作２０８）とを含んでよい。
【００３２】
一実施形態によると、プライベートドメインＤは、ユーザが開始することでサーバにより、例えばサーバのプライベートドメインエンジンにより生成されてもよい（動作２０２）。プライベートドメインＤを生成すると、ドメインキーＰが生成され得る（動作２１０）。ドメインキーＰは、サーバ、例えばサーバのドメインキー生成部により生成されてよく、例えば、公開キー、秘密キー、または他の公知の暗号化キーを含んでもよい。ドメインキー生成部は、本開示の譲受人が提供するＩｎｔｅｌ（登録商標）Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）などであってもよいがこれに限定されない任意の暗号化方法を用いてドメインキーＰを生成してよい。ドメインキーＰは、プライベートドメインＤに関連付けられた各デバイスに格納されてもよい（動作２１２）。例えば、ドメインキーＰは、プライベートドメインＤに関連付けられた各デバイスのセキュアプロセッサに格納されてもよい。
【００３３】
登録済デバイステーブルは、サーバを通じてユーザにより生成されてもよい（動作２０４）。例えば、１以上のユーザが、サーバのデバイス登録エンジンを用いてプライベートドメインＤにデバイスを登録し、登録済デバイステーブルを生成してもよい。登録済デバイステーブルは、プライベートドメインＤに関連付けられたデバイスの１つにそれぞれが対応する複数の識別子を含んでもよい。
【００３４】
同様に、１以上のユーザが、プライベートドメインＤに登録し、登録済デバイステーブルを生成してもよい（動作２０６）。登録済ユーザテーブルは、プライベートドメインＤに関連付けられたユーザの１人にそれぞれが対応する複数の識別子を含んでもよい。登録済ユーザテーブルは、場合によっては、ユーザが関連付けられた特定のデバイスに対応する識別子を含んでもよい。
【００３５】
１以上のアプリケーションが、サーバに登録され、登録済アプリケーションテーブルが生成されてもよい（動作２０８）。アプリケーションは、ユーザ、製造業者、および／または第三者によって登録されてもよい。例えば、アプリケーションは、アプリケーション登録エンジンを用いてサーバに登録されてもよい。アプリケーションが登録されると、サーバは、例えばアプリケーションキー生成部を用いて、アプリケーション固有キーＫａを生成する（動作２１４）。アプリケーション固有キーＫａは、例えば、公開キー、秘密キー、または他の公知の暗号化キーを含んでもよく、本開示の譲受人が提供するＩｎｔｅｌ（登録商標）Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）などであってもよいがこれに限定されない任意の暗号化方法を用いて生成されてもよい。そしてアプリケーション固有キーＫａは、プライベートドメインＤに関連付けられた各デバイスに格納されてもよい（動作２１６）。例えば、アプリケーション固有キーＫａは、各クライアントデバイスの登録済アプリケーション１１８に格納されてもよい。
【００３６】
他の実施形態によると、本開示の方法２００はサーバを省略してもよい。特に、１以上のクライアントデバイスは、本明細書に説明するように、プライベートドメインエンジン、デバイス登録エンジン、および／またはアプリケーション登録エンジンを含んでもよい。ユーザは、第１クライアントデバイスのプライベートドメインエンジンを用いてプライベートドメインＤを生成し（動作２０２）、ドメインキーＰを生成してもよい。そしてドメインキーＰは、プライベートドメインＤに関連付けられた他のデバイスへ転送されてもよい（動作２１２）。
【００３７】
同様に、１以上のクライアントデバイスは、登録済デバイステーブルを生成してもよい（動作２０４）。例えば、第１クライアントデバイスは、デバイスを登録し、登録済デバイステーブルを生成するためのハブとして機能する。そして登録済デバイステーブルは、プリベートドメインＤに関連付けられた他のデバイスへ転送されてもよい。代替的に、各クライアントデバイスは互いに独立して、（例えばラウンドロビンなどにより登録済デバイステーブルの他のデバイスへ通信されてもよい）登録済デバイステーブルの登録および／または生成を行ってもよい。
【００３８】
登録済アプリケーションテーブルは、プライベートドメインＤに関連付けられたクライアントデバイスのうち１以上のアプリケーション登録エンジンを用いて生成され（動作２０８）、アプリケーション固有キーＫａは、プライベートドメインＤに関連付けられたクライアントデバイスのうち１以上のアプリケーションキー生成部を用いて生成されてもよい（動作２１４）。例えば、第１クライアントデバイスは、アプリケーションを登録し、登録済アプリケーションテーブルを生成するためのハブとして機能してもよい。そして登録済アプリケーションテーブルは、登録済デバイステーブルの他のデバイスへ転送されてもよい（動作２１６）。登録済ユーザテーブルは、他のテーブルと同様に生成されてもよい（動作２０６）。
【００３９】
図３は、本開示の一実施形態に係る、第１デバイスで実行中のアプリケーションを第２デバイスへ転送するためのプラットフォーム間のアプリケーション使用連続性の動作を示すフローチャート３００である。第１デバイスで実行中のアプリケーションの状態情報の第２デバイスへの転送指示が第１デバイスで受信されたものとする（動作３０２）。アプリケーションキーで暗号化状態ブロブ（状態）Ｋａが第１デバイスによる生成され得る（動作３０４）。（状態）Ｋａは、第１アプリケーションから第１デバイスのセキュアプロセッサへ転送され（動作３０６）、セキュアプロセッサは、ドメインキーで暗号化状態ブロブ（（状態）Ｋａ）Ｐを生成してもよい（動作３０８）。（（状態）Ｋａ）Ｐは第２デバイスへ転送され（動作３１０）、アプリケーションの第２インスタンスが第２デバイスで起動され得る（動作３１２）。（（状態）Ｋａ）Ｐは第２デバイスのセキュアプロセッサへ転送され得（動作３１４）、セキュアプロセッサは、（（状態）Ｋａ）Ｐを解読および／または認証し、（状態）Ｋａを生成してよい（動作３１６）。そして（状態）Ｋａは第２デバイスで実行されるアプリケーションの第２インスタンスへ転送され得（動作３１８）、第２インスタンスは、（状態）Ｋａを解読および／または認証し、アプリケーションの第２インスタンスのために状態情報を生成してよい（動作３２０）。そしてアプリケーションの第２インスタンスは、第２デバイスで、状態情報に基づき例えば転送機能が第１デバイスで開始された時点から再開してよい（動作３２２）。
【００４０】
図４は、本開示の様々な実施形態に係るシステム４００の他の実施形態を一般的に示す。システム４００は、図１のシステム１００と同様であるが、クライアントデバイス４２０Ａ、４２０Ｂがハイパーバイザおよび／またはスーパーバイザ４１０を含み、アプリケーション１１８が転送動作とは独立している点が異なる。特に、スーパーバイザ４１０は、アプリケーション１１８の他のデバイスへの転送をユーザが希望することを示す指示を転送モジュール１３４から受信すると、アプリケーション１１８（１）の第１インスタンスに関連する状態情報を生成する状態情報生成部を含む。スーパーバイザ４１０はさらに、動作転送指示を受信すると状態ブロブ（状態）を生成し、アプリケーション固有キーＫａ１０７を用いて状態ブロブ（状態）の暗号化および／または署名を行い、アプリケーション暗号化状態ブロブ（状態）Ｋａを形成する。アプリケーション暗号化状態ブロブ（状態）Ｋａは、状態情報、および場合によっては、ソースデバイス４２０Ａで実行中の登録済アプリケーション１１８（１）の第１インスタンスのデータを含む。
【００４１】
スーパーバイザ４１０はさらに、通信リンク１２６を介してソースデバイス１２０Ａのセキュアプロセッサ１２４へ（状態）Ｋａを転送し、セキュアプロセッサ１２４に対し、ドメインキーＰ１１３を用いて（状態）Ｋａの暗号化および／または署名を行うよう要求する。スーパーバイザ４１０から（状態）Ｋａおよび暗号化要求を受信すると、セキュアプロセッサ１２４は、ドメインキーＰ１１３を用いて（状態）Ｋａの暗号化および／または署名を行い、ドメイン暗号化された（ドメインキーＰ１１３で保護された）状態ブロブ（（状態）Ｋａ）Ｐを形成する。
【００４２】
ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐは（例えば通信リンク１３２（２）を介し）第２クライアントデバイス４２０Ｂにより受信され得、登録済アプリケーション１１８（２）の第２インスタンスが起動される。スーパーバイザ４１０（Ｂ）は、セキュアな通信リンク１２６（Ｂ）を介してターゲットデバイス４２０Ｂのセキュアプロセッサ１２４Ｂと通信を行い（（状態）Ｋａ）Ｐを転送し、セキュアプロセッサ１２４Ｂに対し（（状態）Ｋａ）Ｐを解読および／または認証するよう要求する。
【００４３】
登録済アプリケーション１１８（２）の第２インスタンスから（（状態）Ｋａ）Ｐおよび解読要求を受信すると、セキュアプロセッサ１２４Ｂは、ドメインキーＰ１１３を用いて（（状態）Ｋａ）Ｐを解読および／または認証し、（状態）Ｋａを生成する。セキュアプロセッサ１２４Ｂはさらに、セキュアな通信リンク１２６（Ｂ）を介してスーパーバイザ４１０（Ｂ）へ（状態）Ｋａを転送する。（状態）Ｋａを受信すると、スーパーバイザ４１０（Ｂ）は、アプリケーション固有キーＫａ１０７を用いて（状態）Ｋａを解読および／または認証し、（（状態）Ｋａ）Ｐで転送される登録済アプリケーション１１８（１）の第１インスタンスの状態情報を生成および復元する。登録済アプリケーション１１８（２）の第２インスタンスは、生成され復元された状態情報を用いてターゲットデバイス４２０Ｂでアプリケーション１１８の実行を再開する。
【００４４】
図５は、本開示の様々な実施形態に係るシステム５００のさらに他の実施形態を一般的に示す。システム５００は、プライベートドメインを生成し、および／または、第１クライアントデバイス５２０（「ソースデバイス５２０Ａ」）で実行中のアプリケーション１１８を第２クライアントデバイス５２０Ｂ（「ターゲットデバイス５２０Ｂ」）へ転送する１以上のデバイス５２０Ａ、５２０Ｂを備える。よってシステム５００からは、システム１００（図１）の使用連続性サーバ１０２が省略されている。システム５００の一般的概略として、各クライアントデバイス５２０Ａ、５２０Ｂは、実行中のアプリケーションの動作の一方のデバイスから他方への転送を促すべく互いに通信を行う。システム５００の態様のうちシステム１００（図１）の態様と同じものは、説明を簡潔にするべく省略する。
【００４５】
システム５００のデバイス５２０Ａ、５２０Ｂのうち１以上はシステム１００のデバイス１２０Ａ、１２０Ｂと同様であってよいが、デバイス５２０Ａ、５２０Ｂのうち少なくとも１つは、本明細書で説明するように、新たなプライベートドメインＤを生成し、プライベートドメインＤに関連付けられた１以上のデバイスに対応する識別子を含む登録済デバイステーブルを生成し、プライベートドメインＤに関連付けられた１以上のユーザに対応する識別子を含む登録済ユーザテーブルを生成し、プライベートドメインＤに関連付けられた１以上のアプリケーションに対応する識別子を含む登録済アプリケーションテーブルを生成する。説明を分かりやすくすべく、第１デバイス５２０Ａについて説明する。しかし、システム５００のいずれのクライアントデバイスも以下の動作を実行してよい。
【００４６】
また第１クライアントデバイス５２０Ａは、１以上のプライベートドメイン（例えばプライベートドメインＤ）を生成するプライベートドメインエンジン５０８と、プライベートドメインＤに関連付けられることになる１以上のクライアントデバイスをユーザが登録できるようにし、（プライベートドメインＤに関連付けられた他のデバイスの１以上へ送信される）登録済デバイステーブル１２１を生成するデバイス登録エンジン５１０とを含んでよい。ドメインキー（Ｐ）生成部５１２は、登録済デバイステーブル１２１に基づいてプライベートドメインＤに関連付けられた他のデバイスの１以上に送信されてもよいドメインキーＰを生成してもよい。加えて、登録済ユーザテーブル１１９は、ユーザと、プライベートドメインの１以上のアプリケーションおよび／またはデバイスとをリンクするクライアントデバイス５２０Ａで生成されてもよい。
【００４７】
プライベートドメインＤに関連付けられることになるアプリケーション１１８は、第１デバイス５２０Ａのアプリケーション登録エンジン５０４を用いて登録されてもよい。アプリケーション１１８が登録されると、アプリケーションキー生成部５０６はアプリケーション固有キーＫａを生成してもよい。登録済アプリケーションテーブル１１７が生成され得、アプリケーション固有キーＫａがアプリケーション１１８（１）に格納されてもよい。また第１デバイス５２０Ａは、プライベートドメインＤに関連付けられた他のデバイスのうち１以上にアプリケーション固有キーＫａを送信してもよい。
【００４８】
ユーザは、本明細書に説明した通りに実質的に進められる転送動作を開始してもよい。クライアントデバイス５２０Ａ、５２０Ｂはプライベートドメインを生成し、アプリケーションを登録し、キーＫａ、Ｐを生成するので、システム５００においては、図１のサーバの必要性がなくなる。繰り返すが、システム５００に関連付けられたクライアントデバイスの全てがこれらの機能を実行する必要はなく、代わりに、１つのクライアントデバイスが、図１に示すものと実質的に同じく機能する他のデバイスのハブデバイスとして機能し、キーＫａ、Ｐがハブデバイス（例えばクライアントデバイス５２０Ａ）により生成され、ハブデバイスから受信する点だけが異なるものとしてもよい。
【００４９】
図６は、本開示の一実施形態に係る動作を示すフローチャート６００である。本実施形態の動作は、第１クライアントデバイスで実行中のアプリケーションの第１インスタンスの動作の、第２クライアントデバイスで実行されるアプリケーションの第２インスタンスへの転送指示を第１クライアントデバイスで受信する動作（動作６０２）を含んでもよい。また動作は、アプリケーションの第１インスタンスの動作の第１クライアントデバイスから第２クライアントデバイスへの転送指示に応答し、第１クライアントデバイスでのアプリケーションの実行に関する現在の動作パラメータおよびデータを含む状態情報を第１クライアントデバイスにより生成する動作も含んでよい（動作６０４）。動作はさらに、第１クライアントデバイスが状態情報を第２クライアントデバイスへ送信し、第２クライアントデバイスをイネーブルとし、アプリケーションの第２インスタンスと第１クライアントデバイスからの状態情報とを用いて第２クライアントデバイスでアプリケーションの動作を継続する動作を含んでよい（動作６０６）。
【００５０】
様々なシステムおよび方法を説明してきたが、いずれかの実施形態における様々な特徴が他の実施形態と組み合わせられてもよいことが理解されるであろう。例えば図４のハイパーバイザは、図１および／または５と組み合わせられてもよい。代替的に（または追加的に）図１または４のシステムは、図５で示されるようにサーバを省略するように修正されてもよい。実際、本開示の他の実施形態において、図２、３、および／または６に示される動作は、本開示の態様から逸脱することなく、いずれの図面にも特に示されていないやり方で組み合わせられ得る。よって、図面に正確には示されていない特徴および／または動作に関する請求項は、本開示の態様および内容に含まれるものと見なされる。
【００５１】
本開示のシステムおよび／または方法は、状態情報およびデータを維持しつつリアルタイムで、実行アプリケーションの、セキュアかつ動的でありシームレスな、信頼性のあるデバイス間でのポーティングを可能とする。加えて、アプリケーション状態情報の信頼性のある転送およびデータ転送を促すセキュアな通信インフラが確立され得る。
【００５２】
他の実施形態において、本開示のシステムおよび／または方法は追加的な利用方式を含んでもよい。ユーザは複数の異なる利用に対応すべく複数の異なる利用方式を想到することが出来る。例えば、Ｍｏｒｎｉｎｇ  Ｃｏｍｍｕｔｅ（ＭＣ）方式は、Ａｉｒｐｏｒｔ  Ｍｏｒｎｉｎｇ  Ｃｏｍｍｕｔｅ（ＡＭＣ）方式、Ｗｏｒｋ  Ｍｏｒｎｉｎｇ  Ｃｏｍｍｕｔｅ（ＷＭＣ）方式、および／またはＴｒａｖｅｌ  Ｍｏｒｎｉｎｇ  Ｃｏｍｍｕｔｅ（ＴＭＣ）  方式を含みうる。各方式は、特定の利用に関する信頼されたアプリケーションの集まりを含んでもよい。
【００５３】
例えばＡＭＣ方式は、天気、交通、ラジオコンテンツ、メディアコンテンツ、電話、航空情報、および／または仕事関連のアプリケーションを含みうる。一実施形態において、ＡＭＣ方式はユーザの家庭システムに集約されてもよい。家を出発する前にユーザは、ＡＭＣ信頼性アプリケーションの状態情報をユーザの信頼されたドメイン内の他のＩＡデバイス（例えば、スマートフォン、車両の娯楽情報システム、ＰＣなど）へ（例えば、ジェスチャおよび／または動作技術、音声コマンド、および／またはワンタッチの事前プログラムされたボタンなどを用いることにより）転送し得る。ユーザが空港へ走らせるべく自身の車両に乗り込む時には、例えばＧＰＳを含む車両の娯楽情報センターは空港への経路および交通情報を既に表示された状態にしておく。
【００５４】
本明細書で説明される実施形態は、本明細書で説明される方法および／または動作を実行するハードウェア、ソフトウェア、および／または、ファームウェアなどを用いて実施することも出来る。本明細書で説明されるいくつかの実施形態は、機械により実行されると当該機械に対し本明細書で説明される方法および／または動作を実行させる機械実行可能命令を格納した有形の機械可読媒体として提供されてもよい。有形の機械可読媒体の例としては、フロッピー（登録商標）ディスク、光学ディスク、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスク書き換え可能（ＣＤ−ＲＷ）、および光磁気ディスクを含むいずれかのタイプのディスク、読み取り専用メモリ（ＲＯＭｓ）などの半導体デバイス、動的および静的ランダムアクセスメモリ（ＲＡＭ）などのＲＡＭ、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学カード、或いは、電子命令の格納に適したいずれかのタイプの有形媒体が含まれるがこれらに限定されない。機械には、いずれかの適した処理プラットフォーム、デバイスまたはシステム、コンピューティングプラットフォーム、デバイス、またはシステムが含まれ、ハードウェアおよび／またはソフトウェアの何らかの適した組み合わせを用いて実装されてもよい。命令には何らかの適したタイプのコードが含まれ、何らかの適したプログラム言語を用いて実装されてもよい。
【００５５】
よって一実施形態において、本開示はクライアントデバイス間のアプリケーション使用連続性を提供するシステムを提供する。システムは、アプリケーションの第１インスタンスを実行する第１クライアントデバイスと、アプリケーションの第２インスタンスを実行する第２クライアントデバイスとを含む。第１クライアントデバイスはさらに、第１クライアントデバイスで実行中のアプリケーションの第１インスタンスの動作の、第２クライアントデバイスで実行されるアプリケーションの第２インスタンスへの転送指示を受信し、第１クライアントデバイスで実行中のアプリケーションの第１インスタンスの実行に関する状態情報およびデータを生成する。第１クライアントデバイスはさらに、状態情報を第２クライアントデバイスへ送信させ、第２クライアントデバイスでのアプリケーションの第２インスタンスをイネーブルとし、第１クライアントデバイスからの状態情報を用いて第２クライアントデバイスでアプリケーションの動作を継続する。
【００５６】
他の実施形態において、本開示は、アプリケーションの第１インスタンスを実行する第１クライアントデバイスとアプリケーションの第２インスタンスを実行する第２クライアントデバイスと間のアプリケーション使用連続性を提供する方法を提供する。方法は、第１クライアントデバイスで実行中のアプリケーションの第１インスタンスの動作の、第２クライアントデバイスで実行されるアプリケーションの第２インスタンスへの転送指示を第１クライアントデバイスで受信する段階と、アプリケーションの第１インスタンスの動作転送指示に応答し、第１クライアントデバイスで実行中のアプリケーションの第１インスタンスの実行に関する状態情報およびデータを第１クライアントデバイスにより生成する段階と、第１クライアントデバイスが状態情報およびデータを第２クライアントデバイスへ送信し、第２クライアントデバイスでのアプリケーションの第２インスタンスをイネーブルとし、アプリケーションの第２インスタンスと第１クライアントデバイスからの状態情報とを用いて第２クライアントデバイスでアプリケーションの動作を継続する段階とを含む。
【００５７】
他の実施形態において、本開示は、１以上のプロセッサにより実行されるとコンピュータシステムに対し、アプリケーションの第１インスタンスの動作の転送指示に応答し、第１クライアントデバイスで実行中のアプリケーションの第１インスタンスの実行に関する状態情報およびデータを第１クライアントデバイスにより生成する手順と、第１クライアントデバイスが状態情報を第２クライアントデバイスへ送信し、第２クライアントデバイスでのアプリケーションの第２インスタンスをイネーブルとし、第１クライアントデバイスからの状態情報を用いて第２クライアントデバイスでアプリケーションの動作を継続する手順とを実行させる命令を格納した有形のコンピュータ可読媒体を提供する。
【００５８】
本明細書で用いられている用語および表現は、説明のための用語として用いられ、限定のために用いられるものではない。そのような用語および表現が用いられているからといって、示され説明される特徴（またはその一部）の同等物を除外することは意図されておらず、請求項の範囲内で様々な修正を加えることが可能である。したがって、請求項はそのような同等物の全てを網羅するものとする。
【００５９】
本明細書において様々な特徴、態様、および実施形態を説明してきた。当業者には理解いただけるように、それら特徴、態様、および実施形態は互いに組み合わせられ得、変更および修正が加えられ得る。よって本開示は、そのような組み合わせ、変形例、および修正例も網羅するものと見なされるべきである。
［請求項１］
クライアントデバイス間のアプリケーション使用連続性を提供するシステムであって、
アプリケーションの第１インスタンスを実行する第１クライアントデバイスと、
前記アプリケーションの第２インスタンスを実行する第２クライアントデバイスと
を備え、
前記第１クライアントデバイスはさらに、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を受信し、
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを生成し、
前記状態情報を前記第２クライアントデバイスへ送信させ、前記第２クライアントデバイスでの前記アプリケーションの前記第２インスタンスをイネーブルとし、前記第１クライアントデバイスからの前記状態情報を用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続させる、システム。
［請求項２］
前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含むプライベートドメインを生成するサーバをさらに備える、請求項１に記載のシステム。
［請求項３］
前記サーバは、前記アプリケーションの前記第１および第２インスタンスのそれぞれのアプリケーション暗号化キーＫａと、前記プライベートドメインのドメイン暗号化キーＰとを生成し、前記第１および第２クライアントデバイスのそれぞれに前記ドメイン暗号化キーＰを格納する、請求項２に記載のシステム。
［請求項４］
前記アプリケーションの前記第１インスタンスは、前記アプリケーション暗号化キーＫａを用いて状態ブロブの暗号化または署名を行い、前記アプリケーション暗号化キーＫａで保護された前記アプリケーションの前記第１インスタンスの状態情報を含むアプリケーション暗号化状態ブロブ（状態）Ｋａを形成する、請求項３に記載のシステム。
［請求項５］
前記アプリケーションの前記第２インスタンスは、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを解読または認証し、前記状態情報を前記第２クライアントデバイスに復元する、請求項４に記載のシステム。
［請求項６］
前記第１クライアントデバイスは、前記第１クライアントデバイスおよび前記ドメイン暗号化キーＰを用いて前記アプリケーション暗号化状態ブロブ（状態）Ｋａの暗号化または署名を行い、ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを形成するセキュアプロセッサを有する、請求項４または５に記載のシステム。
［請求項７］
前記第２クライアントデバイスは、前記第２クライアントデバイスを用いて前記ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを解読し、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを形成するセキュアプロセッサを有する、請求項６に記載のシステム。
［請求項８］
前記状態情報は、タイミングカウンタ、動画フレーム、またはページ番号に対応するデータを含む、請求項１から７のいずれか１項に記載のシステム。
［請求項９］
前記アプリケーションの前記第１インスタンスの動作の前記転送指示はユーザ入力を含む、請求項１から８のいずれか１項に記載のシステム。
［請求項１０］
前記ユーザ入力は、ジェスチャ認識、動作認識、音声認識、音声コマンド、および、近接を考慮した技術からなる群より選択される、請求項９に記載のシステム。
［請求項１１］
アプリケーションの第１インスタンスを実行する第１クライアントデバイスと前記アプリケーションの第２インスタンスを実行する第２クライアントデバイスと間のアプリケーション使用連続性を提供する方法であり、
前記第１クライアントデバイスで実行中である前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を前記第１クライアントデバイスで受信する段階と、
前記アプリケーションの前記第１インスタンスの動作の前記転送指示に応答し、前記第１クライアントデバイス上の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを前記第１クライアントデバイスにより生成する段階と、
前記第１クライアントデバイスが前記状態情報および前記データを前記第２クライアントデバイスへ送信し、前記第２クライアントデバイスでの前記アプリケーションの前記第２インスタンスをイネーブルとし、前記アプリケーションの前記第２インスタンスと前記第１クライアントデバイスからの前記状態情報とを用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続する段階と
を備える方法。
［請求項１２］
サーバにより、前記第１および第２クライアントデバイスのそれぞれのアイデンティティと、前記アプリケーションのアイデンティティとを含むプライベートドメインを生成する段階をさらに備える、請求項１１に記載の方法。
［請求項１３］
前記アプリケーションの前記第１および第２インスタンスのそれぞれに対するアプリケーション暗号化キーＫａを生成する段階と、
前記プライベートドメインのドメイン暗号化キーＰを生成し、前記第１および第２クライアントデバイスのそれぞれに前記ドメイン暗号化キーＰを格納する段階と
をさらに備える、請求項１２に記載の方法。
［請求項１４］
前記アプリケーションの前記第１インスタンスと前記アプリケーション暗号化キーＫａとを用いて状態ブロブを暗号化し、前記アプリケーション暗号化キーＫａで保護された前記アプリケーションの前記第１インスタンスの状態情報を含むアプリケーション暗号化状態ブロブ（状態）Ｋａを形成する段階と、
前記第１クライアントデバイスと前記ドメイン暗号化キーＰとを用いて、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを暗号化し、ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを形成する段階と
をさらに備える、請求項１３に記載の方法。
［請求項１５］
前記第２クライアントデバイスにより、前記ドメイン暗号化状態ブロブ（（状態）Ｋａ）Ｐを解読し、前記アプリケーション暗号化状態ブロブ（状態）Ｋａを形成する段階と、
前記アプリケーションの前記第２インスタンスを用いて前記アプリケーション暗号化状態ブロブ（状態）Ｋａを解読する段階と
をさらに備え、
前記アプリケーションの前記第２インスタンスは前記第２クライアントデバイスで前記状態情報を復元する、請求項１４に記載の方法。
［請求項１６］
前記状態情報は、タイミングカウンタ、動画フレーム、またはページ番号に対応するデータを含む、請求項１１から１５のいずれか１項に記載の方法。
［請求項１７］
前記アプリケーションの前記第１インスタンスの動作の前記転送指示はユーザ入力を含む、請求項１１から１６のいずれか１項に記載の方法。
［請求項１８］
前記ユーザ入力は、ジェスチャ認識、動作認識、音声認識、音声コマンド、および、近接を考慮した技術からなる群より選択される、請求項１７に記載の方法。
［請求項１９］
１以上のプロセッサにより実行されると前記１以上のプロセッサに、
アプリケーションの第１インスタンスの動作の転送指示に応答し、第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの実行に関する状態情報およびデータを前記第１クライアントデバイスにより生成する手順と、
前記第１クライアントデバイスが前記状態情報を第２クライアントデバイスへ送信し、前記第２クライアントデバイスでの前記アプリケーションの第２インスタンスをイネーブルとし、前記第１クライアントデバイスからの前記状態情報を用いて前記第２クライアントデバイスで前記アプリケーションの動作を継続する手順と
を実行させるプログラム。
［請求項２０］
前記第１クライアントデバイスで実行中の前記アプリケーションの前記第１インスタンスの動作の、前記第２クライアントデバイスで実行される前記アプリケーションの前記第２インスタンスへの転送指示を前記第１クライアントデバイスで受信する手順をさらに前記１以上のプロセッサに実行させる、請求項１９に記載のプログラム。
【図１】
0005865480.tif 000002
【図２】
0005865480.tif 000003
【図３】
0005865480.tif 000004
【図４】
0005865480.tif 000005
【図５】
0005865480.tif 000006
【図６】
0005865480.tif 000007