本開示の態様および実施形態は、第1のスクリーンデバイスへの自動サインインを対象とする。第1のスクリーンデバイスは、ネットワーク接続テレビデバイス(「スマートTV」)、オーバーザトップ(OTT)ストリーミングデバイス、セットトップボックス、Blu-ray(登録商標)プレーヤ、オペレータボックスなどであり得る。オペレーティングシステムは、第1のスクリーンデバイス上で実行し、アプリケーションが第1のスクリーンデバイスによってホストされるためのプラットフォームを提供し得る。アプリケーションは、アプリケーション配信プラットフォームを介して、第1のスクリーンデバイス上にプリロードされ、かつ/または第1のスクリーンデバイス上にインストールされ得る。第1のスクリーンデバイス上で実行しているアプリケーションは、ナビゲーション、文書の記憶および取出し、分散コンピューティングなど、多数の目的のために、ネットワークを介したプラットフォームへのアクセスを提供することができる。ユーザは、プラットフォームにアクセスするために、第1のスクリーンデバイスによってホストされたアプリケーションにサインインし、アカウント認証を行うことができ、そのため、これらのプラットフォームによって提供された設備へのアクセスを有することができる。しかしながら、第1のスクリーンデバイスにおけるサインインおよびアカウント認証は、典型的には、ユーザにとって面倒なプロセスである。
ユーザは、典型的には、第1のスクリーンデバイスと対話するために、および、第1のスクリーンデバイスによってホストされたアプリケーションと対話するために、Dパッドベースの赤外線リモートコントロールを使用する。Dパッドは、4つのポイント(たとえば、上、下、左、および右)の各々において1つのボタンをもつ、平坦な4方向コントロールであり得る。Dパッド上の別のボタン、またはリモートコントロールの他の部分が、選択するためのものであり得る(たとえば、エンターボタン)。アプリケーションは、第1のスクリーンデバイスを介して、英数字キーボードを表示し得る。1つの従来の認証の形態は、ユーザがDパッド上で上ボタン、下ボタン、左ボタン、および右ボタンを選択することによって、個々の文字に1つずつナビゲートすることによって、ユーザ名およびパスワードを入力すること、ならびに、次いで文字を選択するために、エンターボタンを選択することを含む。リモートコントロールを用いて、各文字にナビゲートして選択するには、長い時間がかかることがあり、誤りを起こしやすく、ユーザが第1のスクリーンデバイスによってホストされたアプリケーションを使用する妨げになる。
別の従来の認証の形態は、第1のスクリーンデバイスによってホストされたアプリケーションにサインインするための、クロスデバイスアシスト認証である。ユーザは、リモートコントロールを使用して、コードが第1のスクリーンデバイス上に表示されることを要求する。次いで、ユーザは、モバイルデバイス上でウェブブラウザを起動し、モバイルデバイスを介して、ウェブブラウザにアクティベートページの詳細なウェブアドレス(たとえば、ウェブエンドポイントのドメイン.com/アクティベートタイプ)を一文字ずつタイプする。アクティベートページは、アカウントにサインインするために、モバイルデバイスを介して、ユーザ名およびパスワードを入力するように、ユーザにプロンプトを出す。アクティベートページはまた、第1のスクリーンデバイス上に表示されたコードを入力するように、ユーザにプロンプトを出す。モバイルデバイスへのウェブアドレス、ユーザ名、パスワード、およびコードの入力後、サーバデバイスは、第1のスクリーンデバイスによってホストされたアプリケーションに、ユーザをログインさせ得る。モバイルデバイスへのウェブアドレス、ユーザ名、パスワード、およびコードの入力は、時間がかかり、誤りを起こしやすいことがあり、認証プロセスにおいて誤りがあると、ユーザが認証プロセスを再開することが必要となり、失敗した認証の試行において使用されたいかなるネットワークリソースも無駄になることになり、ユーザが第1のスクリーンデバイスによってホストされたアプリケーションを使用する妨げになることさえある。加えて、ユーザが認証において複数の誤りをする場合、ユーザは「ロックアウト」されることがあり、ユーザのパスワードが、たとえば、システム管理者によって再設定されるまで、ユーザのアカウントにアクセスできないことがある。
従来の認証の形態は冗長であり、技術的なセキュリティの観点から、ならびにユーザの理解および使いやすさの観点からも、制限および欠点をもたらす。従来の認証の形態を使用する際、ユーザがセットアップで疲れるという問題がある。プロセスが迅速かつ容易でない場合、より少ないユーザが、時間をかけてフローを通過することになる。従来の認証の形態には、入力オプションの制限という問題がある。テキスト(特にパスワード)の入力は、リモートコントロールを使用すると困難でぎこちないものであり、このため、ユーザが短いパスワードを選定し、それによって自らのセキュリティを下げることを引き起こし得る。詳細なウェブアドレス(記憶および入力するには長く、難しくなり得る)、ユーザ名、パスワード、およびコードを、コードがタイムアウトする前にすべて入力することは、モバイルデバイスを使用すると困難である。従来の認証の形態には、技術的な制約の問題もある。アカウントへのサインインは、いくつかの認証サーバによって、ポリシーおよびセキュリティのために、特定の認証サーバによってホストされたウェブページに制限される。
本開示の態様は、第1のスクリーンデバイスによってホストされた第1のアプリケーションへの自動ユーザログインを容易にすることによって、上記および他の欠陥に対処する。第1のスクリーンデバイスは、サーバデバイスから認証コードを受信し、認証コードを含むメッセージを生成し、メッセージを送信し得る。第2のスクリーンデバイス(たとえば、スマートフォン、タブレットコンピュータ、ラップトップなど)は、メッセージを受信し、第2のスクリーンデバイスによってホストされた第2のアプリケーションを介して、ユーザ入力のためのプロンプトを提示し、自動ユーザログインのユーザ受入れを示すユーザ入力を受信し得る。ユーザ入力に応答して、第2のスクリーンデバイスは、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を行うために、サーバデバイスに、メッセージからの認証コードを送信し得る。一実施形態では、ユーザ入力のためのプロンプトは、アカウントに対応する受入れ要素であり、ユーザ入力は、受入れ要素を選択すること(たとえば、クリックすること)である。ユーザの観点から、自動ユーザログインは把握しやすく、見つけやすく、使いやすい。自動ユーザログインは安全でもあり、その理由は、ユーザによって認証コードを容易に思い出して入力する必要がないので、認証コードを所望のセキュリティのレベルのみに基づいて選定することができるからであり、また、扱いにくいDパッドリモートを用いてタイプする必要が低減されるか、またはまったくなくなる。
したがって、第1のスクリーンデバイスによってホストされた第1のアプリケーションへの自動ユーザログインを容易にすることによって、ユーザのセキュリティが著しく高まる。同時に、ログインプロセスがユーザにとってかなり容易になるので、より多くのユーザが、第1のスクリーンデバイスによってホストされたアプリケーションにサインインすることがあり、それによって、第1のスクリーンデバイス、および第1のスクリーンデバイスによってホストされたアプリケーションの人気がユーザの間で高まる。
図1は、本開示の一実施形態による、例示的なシステムアーキテクチャ100を示す。システムアーキテクチャ100は、アプリケーション配信サーバ110と、第1のスクリーンデバイス120と、認証サーバ130と、ローカルネットワーク140と、ネットワーク150と、データストア160と、第2のスクリーンデバイス170とを含む。
アプリケーション配信サーバ110は、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、データストア(たとえば、ハードディスク、メモリ、データベースなど)、ネットワーク、ソフトウェア構成要素、および/またはハードウェア構成要素であり得る。アプリケーション配信サーバ110は、アプリケーション112へのアクセスをユーザに提供するために使用され得る(たとえば、アプリケーション配信サーバ110は、アプリケーション112をホストし得る)。アプリケーション配信サーバは、ユーザにアプリケーション112を提供し得る(たとえば、ユーザは、アプリケーション112を選択し、アプリケーション112の要求または購入に応答して、アプリケーション配信サーバ110からアプリケーション112をダウンロードし得る)。アプリケーション配信サーバ110は、ユーザによるアプリケーション112の消費、開発、アップロード、ダウンロード、レーティング、共有、検索、承認(「いいね」)、よくないね、および/またはコメントを可能にし得る、アプリケーション配信プラットフォーム(たとえば、アプリケーション配信サービス)の一部であり得る。アプリケーション配信プラットフォームはまた、アプリケーション112へのアクセスをユーザに提供するために使用され得る、ウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含み得る。
アプリケーション配信サーバ110は、アプリケーション112などのコンテンツをホストし得る。アプリケーション112は、ユーザによって選定されたデジタルコンテンツ、ユーザによって利用可能にされたデジタルコンテンツ、ユーザによって開発されたデジタルコンテンツ、ユーザによってアップロードされたデジタルコンテンツ、コンテンツプロバイダ(たとえば、アプリケーション開発者)によって開発されたデジタルコンテンツ、コンテンツプロバイダ(たとえば、アプリケーション開発者)によってアップロードされたデジタルコンテンツ、アプリケーション配信サーバ110によって提供されたデジタルコンテンツなどであり得る。アプリケーション112の例には、限定はしないが、モバイルアプリケーション、スマートテレビアプリケーション、第1のスクリーンデバイスアプリケーション、第2のスクリーンデバイスアプリケーション、デスクトップアプリケーション、ソフトウェアアプリケーションなどが含まれる。アプリケーション112は、ソーシャルメディア更新、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、ウェブサイトコンテンツ、ソーシャルメディア更新、電子書籍(eブック)、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS)フィード、電子コミックブック、ソフトウェアアプリケーションなどを表示し得る。
アプリケーション112は、第1のスクリーンデバイス120および第2のスクリーンデバイス170上のウェブブラウザを介して、および/または第2のスクリーンデバイス170上のアプリストアを介して消費され得る。本明細書で使用する「アプリケーション」、「モバイルアプリケーション」、「スマートテレビアプリケーション」、「第1のスクリーンデバイスアプリケーション」、「第2のスクリーンデバイスアプリケーション」、「デスクトップアプリケーション」、「ソフトウェアアプリケーション」、「デジタルコンテンツ」、「コンテンツ」、および「コンテンツアイテム」は、エンティティにアプリケーション112を提示するように構成された、ソフトウェア、ファームウェアまたはハードウェアを使用して実行またはロードされ得る、電子ファイルを含み得る。一実施形態では、アプリケーション配信プラットフォームは、データストア160を使用して、アプリケーション112を記憶し得る。アプリケーション112は、アプリケーション配信サーバ110またはアプリケーション配信プラットフォームから、第1のスクリーンデバイス120および第2のスクリーンデバイス170のユーザに提示され、かつ/またはそのユーザによってダウンロードされ得る。本開示の態様によれば、アプリケーション112は、ユーザがプロンプトと対話すること、コンテンツを見ること、購入すること、会話に参加することなどを可能にし得る。アプリケーション112は、コンテンツプラットフォームによって提供された、またはローカルで記憶されたコンテンツを再生するために、埋込みメディアプレーヤ(ならびに、他の構成要素)を含み得る。コンテンツプラットフォーム(図示せず)は、たとえば、メディア共有プラットフォーム、またはソーシャルネットワーキングプラットフォームであり得、メディアアイテムへのアクセスをユーザに提供するため、かつ/またはユーザにメディアアイテムを提供するために使用され得る。たとえば、コンテンツプラットフォームは、ユーザによるメディアアイテムの消費、アップロード、検索、承認(「いいね」)、よくないね、および/またはコメントを可能にし得る。アプリケーション配信サーバ110は、コンテンツプラットフォームの一部であるか、独立したシステムであるか、または異なるプラットフォームの一部であり得る。
アプリケーション配信サーバ110は、対応するデバイス、対応するオペレーティングシステム、対応するオペレーティングシステムのバージョン、対応するブラウザ、対応するユーザインターフェースのサイズなどのために各々フォーマットされる、アプリケーション112のセットをホストし得る。たとえば、アプリケーション配信サーバ110は、第1のアプリケーションと第2のアプリケーションとを含む、アプリケーション112のセットをホストし得る。第1のアプリケーションは、第1のスクリーンデバイス120(たとえば、スマートテレビ)に対応し得、第2のアプリケーションは、第2のスクリーンデバイス170(たとえば、モバイルデバイス)に対応し得る。第1のアプリケーションおよび第2のアプリケーションは、コンテンツプラットフォーム(たとえば、メディア共有プラットフォーム、またはソーシャルネットワーキングプラットフォーム)に関連付けられ得、コンテンツプラットフォームによって提供されたコンテンツを提示し得る。第1のスクリーンデバイス120による、コンテンツプラットフォームに関連付けられたアプリケーション112を求める要求の送信に応答して、アプリケーション配信サーバ110は、コンテンツプラットフォームに関連付けられ、第1のスクリーンデバイス120に対応する(たとえば、第1のスクリーンデバイス120のデバイスのタイプ、オペレーティングシステムのタイプ、ブラウザのタイプなどに対応する)、第1のアプリケーションを識別し、第1のスクリーンデバイス120に第1のアプリケーション602を送信し得る。第2のスクリーンデバイス170による、コンテンツプラットフォームに関連付けられたアプリケーション112を求める要求の送信に応答して、アプリケーション配信サーバ110は、コンテンツプラットフォームに関連付けられ、第2のスクリーンデバイス170に対応する(たとえば、第2のスクリーンデバイス170のデバイスのタイプ、オペレーティングシステムのタイプなどに対応する)、第2のアプリケーション702を識別し、第2のスクリーンデバイス170に第2のアプリケーション702を送信し得る。いくつかの実施形態では、第1のスクリーンデバイス120のユーザが、第2のスクリーンデバイス170のユーザと同じである場合、(たとえば、第1のアプリケーションおよび第
2のアプリケーションが、第1のスクリーンデバイス120および第2のスクリーンデバイス170にそれぞれインストールされると)第1のアプリケーションおよび第2のアプリケーションは、コンテンツプラットフォーム上の同じアカウントにリンクされ得る。
いくつかの実施形態では、システムアーキテクチャ100はまた、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインを容易にするために、ネットワーク150を介して、第1のスクリーンデバイス120および第2のスクリーンデバイス170に結合された、認証サーバ130を含み得る。一実施形態では、認証サーバ130は、コンテンツプラットフォームの一部であり得る。別の実施形態では、認証サーバ130は、ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど、1つまたは複数のコンピューティングデバイスを含む、独立したプラットフォームであり得る。
認証サーバ130は、ユーザ認証マネージャ132を含み得る。ユーザ認証マネージャ132は、第1のスクリーンデバイス120によってホストされた第1のアプリケーション602への自動ユーザログインのためのユーザ認証を求める、第1のスクリーンデバイス120からの要求を受信し得る。ユーザ認証マネージャ132は、認証コード114を生成し、第1のスクリーンデバイス120に認証コード114を送信し得る。ユーザ認証マネージャ132は、データストア160において認証コード114を記憶し得る。続いて、ユーザ認証マネージャは、第2のスクリーンデバイス170から認証コード114を受信し、第1のスクリーンデバイス120によってホストされた第1のアプリケーション602への自動ユーザログインのためのユーザ認証を行い得る。ユーザ認証マネージャ132は、第2のスクリーンデバイス170から受信された認証コード114を、データストア160において記憶された認証コード114と比較して、それらの認証コードが一致すると決定し得る。ユーザ認証マネージャ132は、第2のスクリーンデバイス170からアカウントの指示を受信し得、第1のアプリケーション602におけるアカウントへの自動ユーザログインのためのユーザ認証を行い得る。
データストア160は、認証サーバ130によって生成され、第1のスクリーンデバイス120に送信される、認証コード114を記憶するために、認証コードキャッシュ123を含み得る。
第1のスクリーンデバイス120は、ネットワーク接続テレビ(「スマートTV」)、ネットワーク接続メディアプレーヤ(たとえば、Blu-ray(登録商標)プレーヤ)、セットトップボックス、オーバーザトップ(OTT)ストリーミングデバイス、オペレータボックスなどのコンピューティングデバイスを含み得る。第2のスクリーンデバイス170は、パーソナルコンピュータ(PC)、ラップトップ、モバイルフォン、スマートフォン、タブレットコンピュータ、ネットブックコンピュータなどのコンピューティングデバイスを含み得る。第1のスクリーンデバイス120および第2のスクリーンデバイス170は、ネットワーク150上でアプリケーション配信サーバ110からアプリケーション112を受信(たとえば、ダウンロード)可能であり得る。第1のスクリーンデバイス120および第2のスクリーンデバイス170は、ネットワーク150を介して、サーバ(たとえば、アプリケーション配信サーバ110、認証サーバ130など)、およびプラットフォーム(たとえば、アプリケーション配信プラットフォーム、メディア共有プラットフォーム、ソーシャルネットワーキングプラットフォームなど)に接触し、互いに独立してアプリケーション112を実行し得る。たとえば、第1のスクリーンデバイス120は、アプリケーション112を起動することができ、コンテンツプラットフォームのメディアサーバは、第2のスクリーンデバイス170との対話、または第2のスクリーンデバイス170からの支援なしに、第1のスクリーンデバイス120上で実行するアプリケーション112にメディアコンテンツをストリーミングすることができる。第1のスクリーンデバイス120は、アカウント/プロファイル管理ソフトウェアを有していないことがある(たとえば、シングルサインオン(SSO)機能を含まないことがある)。第1のスクリーンデバイス120および第2のスクリーンデバイス170は、ネットワーク150および/またはローカルネットワーク140上で、メッセージ(たとえば、SSDPメッセージ、Discovery and Launch(DIAL)メッセージ(たとえば、DIAL URLクエリ、DIAL URL応答など))を受信および送信可能であり得る。
同じネットワーク(たとえば、ローカルネットワーク)上にある第1のスクリーンデバイス120および第2のスクリーンデバイス170に応答して、第2のスクリーンデバイス170は、(たとえば、プロトコルを使用して、DIALプロトコルを使用してなど)第1のスクリーンデバイス120を発見し、第1のスクリーンデバイス120上でアプリケーション112を検索(たとえば、発見)し、第1のスクリーンデバイス120上でアプリケーション112を起動し、第1のスクリーンデバイス120上でアプリケーション112を停止し得る。たとえば、第2のスクリーンデバイス170は、第1のスクリーンデバイス120上でアプリケーション112を起動し、第1のスクリーンデバイス120にURLを送り、第1のスクリーンデバイスがコンテンツプラットフォームのメディアサーバから直接、URLを介して、ビデオファイルにアクセスすることができるようにし得る。第2のスクリーンデバイス170から独立して、第1のスクリーンデバイス120もまた、アプリケーション112を検索、起動、および停止し得る(たとえば、ユーザは、第1のスクリーンデバイス120上でアプリケーション112を検索、起動、および停止するために、リモートコントロールを使用し得る)。アプリケーション112は、第1のスクリーンデバイス120上で実行し、(たとえば、サーバデバイスから第2のスクリーンデバイス170に、次いで第1のスクリーンデバイス120にストリーミングされるのではなく)サーバデバイスから直接データを受信し得る。第2のスクリーンデバイス170から独立して、第1のスクリーンデバイス120上でアプリケーション112を実行することは、ローカルネットワーク140の利用可能な帯域幅が低く、第2のスクリーンデバイス170の容量が低い(たとえば、モバイルデバイスのバッテリーが低いかまたは切れている)ときなどの条件の場合、有益である。アプリケーション112は、異なるアプリケーション112が第2のスクリーンデバイス170上で実行中であると同時に、第1のスクリーンデバイス120上で実行中であり得る。たとえば、第2のスクリーンデバイスが、ソーシャルネットワーキングプラットフォームに関連付けられたアプリケーションを実行する間、第1のスクリーンデバイス120は、メディア共有プラットフォームに関連付けられたアプリケーションを実行し得る。
ローカルネットワーク140は、第1のスクリーンデバイス120と第2のスクリーンデバイス170との間で1つまたは複数の通信チャネルを提供する、コンピューティングネットワークであり得る。一例では、ローカルネットワーク140は、既存のネットワークインフラストラクチャ(たとえば、アクセスポイント、スイッチ、ルータ)に依拠しないピアツーピアネットワークであり得、第1のスクリーンデバイス120および第2のスクリーンデバイス170は、ユーザデバイス間の通信をルーティングするために、ネットワーキングインフラストラクチャに取って代わり得る。ローカルネットワーク140は、自己構成しており、第1のスクリーンデバイス120および第2のスクリーンデバイス170がローカルネットワーク140に寄与すること、ならびにローカルネットワーク140(たとえば、アドホックワイヤレスネットワーク)に対して動的に接続および切断することを可能にする、ワイヤレスネットワークであり得る。別の例では、ローカルネットワーク140は、ユーザデバイスが他のユーザデバイスと通信することを可能にするネットワーキングインフラストラクチャを含む、コンピューティングネットワークであり得る。後者の例では、ローカルネットワーク140は、公衆ネットワーク(たとえば、インターネット)へのアクセスを有してもまたは有していなくてもよい。たとえば、車両(たとえば、バス、列車)またはロケーション(たとえば、教室、図書館、カフェなど)は、インターネットアクセスを提供することなしに、ユーザデバイスが互いに通信することを可能にするためのアクセスポイントとして機能し得る、アクセスポイントまたはユーザデバイスを提供し得る。代替的に、ローカルネットワーク140は、ネットワーク150などのより大きいネットワーク(たとえば、インターネット)へのアクセスを提供し得る。一実施形態では、ローカルネットワーク140は、任意のワイヤレスまたはワイヤード通信技術に基づき得、第1のユーザデバイスを直接または間接的に(たとえば、中間ユーザデバイスを伴って)第2のユーザデバイスに接続させ得る。ワイヤレス通信技術は、Bluetooth(登録商標)、Wi-Fi(登録商標)、赤外線、超音波、または他の技術を含み得る。ワイヤード通信は、ユニバーサルシリアルバス(USB)、イーサネット(登
録商標)、RS232、または他のワイヤード接続を含み得る。ローカルネットワーク140は、2つのデバイス間の個々の接続であり得るか、または複数の接続を含み得る。
ネットワーク150は、アプリケーション配信サーバ110、認証サーバ130、および他の公的に利用可能なコンピューティングデバイスへのアクセスを、第1のスクリーンデバイス120および第2のスクリーンデバイス170に提供する、公衆ネットワークであり得る。ネットワーク150は、1つまたは複数のワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤードネットワーク(たとえば、イーサネット(登録商標)ネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、またはWi-Fiネットワーク)、セルラーネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、および/またはそれらの組合せを含み得る。
第1のスクリーンデバイス120および第2のスクリーンデバイス170の各々は、ユーザがアプリケーション112を実行することを可能にするオペレーティングシステムを含み得る。アプリケーション112は、画像、ビデオ、オーディオ、ウェブページ、文書などを提示するために、メディアビューア、ウェブブラウザなどを含み得る。一例では、アプリケーション112は、ウェブサーバによってサービスされるコンテンツ(たとえば、ハイパーテキストマークアップ言語(HTML)ページなどのウェブページ、デジタルメディアアイテム、テキスト会話、通知など)のアクセス、取出し、提示、および/またはナビゲートを行うことができる、ウェブブラウザを含み得る。アプリケーション112は、ユーザにコンテンツをレンダリング、表示、および/または提示し得る。アプリケーション112は、(たとえば、オンラインマーチャントによって販売される製品についての情報を提供し得る、ウェブページ内に埋め込まれた)埋込みメディアプレーヤ(たとえば、Flash(登録商標)プレーヤ、またはHTML5プレーヤ)を含み得る。別の例では、アプリケーション112は、ユーザがデジタルメディアアイテム(たとえば、デジタルビデオ、デジタル画像、電子書籍など)の閲覧、テキスト会話への参加、および/またはプロンプトの受信を行うことを可能にする、スタンドアロンアプリケーション(たとえば、モバイルアプリケーションまたはアプリ)であり得る。
図1に示す例では、第1のスクリーンデバイス120は、第1のアプリケーションログイン構成要素122と、デバイス識別子構成要素124と、メッセージ構成要素126と、プロンプト構成要素128と、データストア129とを含み得る。
第1のアプリケーションログイン構成要素122は、第1のスクリーンデバイス120によってホストされた第1のアプリケーションにログインするための要求を管理し、認証コード114を受信し、第1のアプリケーションにログインするためのクレデンシャルを受信し得る。デバイス識別子構成要素124は、第1のスクリーンデバイスを識別するために、第2のスクリーンデバイス170のためのSSDPメッセージを受信し、送り得る。メッセージ構成要素126は、第2のスクリーンデバイス170に認証コード114を転送するために、メッセージ(たとえば、DIAL URL要求、DIAL URL応答、別のタイプのプロトコルのメッセージなど)を受信し、生成し、送り得る。プロンプト構成要素128は、プロンプトを表示し、ユーザ入力を受信し得る。
データストア129は、メモリ(たとえば、ランダムアクセスメモリ)、ドライブ(たとえば、ハードドライブ、フラッシュドライブ)、データベースシステム、またはデータを記憶することが可能な別のタイプの構成要素もしくはデバイスであり得る。データストア129は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に及ぶことがある、複数の記憶構成要素(たとえば、複数のドライブまたは複数のデータベース)を含み得る。
図1に示す例では、第2のスクリーンデバイス170は、第2のアプリケーションログイン構成要素172と、デバイス識別子構成要素174と、メッセージ構成要素176と、プロンプト構成要素178と、データストア179とを含み得る。
第2のアプリケーションログイン構成要素172は、第2のスクリーンデバイス170によってホストされた第2のアプリケーションにログインし得る。デバイス識別子構成要素174は、第1のスクリーンデバイス120を、第2のスクリーンデバイス170と同じネットワーク(たとえば、ローカルネットワーク140)上にあるとして識別するために、SSDPメッセージを送り、受信し得る。メッセージ構成要素176は、認証コード114を決定するために、メッセージ(たとえば、DIAL URL要求、DIAL URL応答、別のタイプのプロトコルのメッセージなど)を送り、受信し、復号し得る。プロンプト構成要素178は、プロンプトを提供し、第1のスクリーンデバイス120によってホストされた第1のアプリケーションの自動ログインのためのユーザ認証のユーザ受入れを示す、ユーザ入力を受信し、認証サーバ130に認証コードを送信し得る。
データストア179は、メモリ(たとえば、ランダムアクセスメモリ)、ドライブ(たとえば、ハードドライブ、フラッシュドライブ)、データベースシステム、またはデータを記憶することが可能な別のタイプの構成要素もしくはデバイスであり得る。データストア179は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に及ぶことがある、複数の記憶構成要素(たとえば、複数のドライブまたは複数のデータベース)を含み得る。
概して、一実施形態では、第1のスクリーンデバイス120および第2のスクリーンデバイス170上で行われているとして説明する機能はまた、適切な場合、他の実施形態では、アプリケーション配信サーバ110および/または認証サーバ130によっても行われ得る。たとえば、認証サーバ130は、第1のスクリーンデバイス120および第2のスクリーンデバイス170を、同じネットワーク(たとえば、ネットワーク150、ローカルネットワーク140)上にあるとして識別し得る。別の例では、アプリケーション配信サーバ110は、第1のスクリーンデバイス120および第2のスクリーンデバイス170を、同じアプリケーション112のセットからのアプリケーション112(たとえば、同じアプリケーション112のスマートTVバージョンおよびモバイルバージョン)をダウンロードしているとして識別し得る。
加えて、特定の構成要素の機能は、一緒に動作する異なるまたは複数の構成要素によって行われ得る。アプリケーション配信プラットフォーム、アプリケーション配信サーバ110、および認証サーバ130はまた、適切なアプリケーションプログラミングインターフェース(API)を通して、他のシステムまたはデバイスに提供されるサービスとしてアクセスされ得、したがって、ウェブサイトおよびアプリケーションにおける使用に限定されない。
本開示の実施形態では、「ユーザ」は、単独の個人として表されることがある。ただし、本開示の他の実施形態は、ユーザのセットによって制御されたエンティティ、および/または自動ソースである「ユーザ」を包含する。たとえば、ソーシャルネットワークにおいてコミュニティとして連合する個々のユーザのセットは、「ユーザ」と見なされることがある。別の例では、自動消費者は、アプリケーション配信プラットフォームの自動取込みパイプラインであり得る。
本開示の実施形態について、アプリケーション配信サーバ110、認証サーバ130、およびアプリケーション配信プラットフォームに関して説明するが、実施形態はまた、一般に、コンテンツおよびユーザ間の接続を提供するいかなるタイプのソーシャルネットワークにも適用され得る。
本明細書で説明するシステムが、ユーザについての個人情報を収集するか、または個人情報を利用し得る状況では、ユーザは、アプリケーション配信プラットフォームがユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザの選好、またはユーザの現在のロケーションについての情報)を収集するか否かを制御するため、または、コンテンツサーバから、ユーザにより関連のあり得るコンテンツを受信するか否か、および/もしくはどのように受信するかを制御するための機会を与えられ得る。加えて、あるデータは、記憶または使用される前に、個人を特定できる情報が除去されるように、1つまたは複数の方法で扱われ得る。たとえば、ユーザの識別情報は、ユーザについての個人を特定できる情報が決定され得ないように扱われ得るか、または、ユーザの地理的ロケーションが汎化され得、その場合、ユーザの特定のロケーションが決定され得ないように、ロケーション情報が(市、郵便番号、または州レベルなどまで)取得される。したがって、ユーザは、ユーザについての情報がアプリケーション配信プラットフォームによってどのように収集され、使用されるか、ならびに何のユーザ情報がアプリケーション配信サーバ110および認証サーバ130に送信されるかに対する制御を有し得る。
図2Aは、第1のスクリーンデバイス120を示すブロック図である。図2Aに示す例では、第1のスクリーンデバイス120は、データストア129に結合された、第1のアプリケーションログイン構成要素122と、デバイス識別子構成要素124と、メッセージ構成要素126と、プロンプト構成要素128とを含む。
第1のアプリケーションログイン構成要素122は、第1のアプリケーションログイン要求マネージャ210と、認証コード受信モジュール212と、クレデンシャル受信モジュール214とを含む。
第1のアプリケーションログイン要求マネージャ210は、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を要求するユーザ入力を受信し得る。たとえば、第1のアプリケーションログイン要求マネージャ210は、第1のアプリケーションの起動、ログインページへのナビゲート、ログイン要素の選択などのユーザ入力を受信し得る。第1のアプリケーションログイン要求マネージャ210は、認証サーバ130に、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を求める要求を送信し得る。いくつかの実施形態では、要求は、認証コード114を求める要求であり得る。いくつかの実施形態では、第1のアプリケーションログイン要求マネージャ210は、認証サーバ130に要求を周期的に送り得る。第1のアプリケーションログイン要求マネージャ210は、後で取り出して、認証サーバ130に再送するために、要求をデータストア129に記憶し得る。
認証コード受信モジュール212は、認証サーバ130から認証コード114を受信し得る。認証コード114は、ユーザ認証を求める要求に応答して受信され得る。クレデンシャル受信モジュール214は、第2のスクリーンデバイス170による、認証サーバ130への認証コード114の送信に応答して、認証サーバ130から、第1のアプリケーションへの自動ユーザログインのためのクレデンシャルを受信し得る。クレデンシャルは、特定のアカウントを使用する、第1のアプリケーションへの自動ユーザログインのためのものであり得る。
デバイス識別子構成要素124は、SSDPメッセージ受信構成要素220と、SSDPメッセージ送信構成要素222とを含む。SSDPメッセージ受信構成要素220は、第2のスクリーンデバイス170から、ネットワーク(たとえば、ローカルネットワーク140)上で、第1のSSDPメッセージを受信し得る。いくつかの実施形態では、SSDPメッセージ受信構成要素220は、第2のスクリーンデバイス170によって、ネットワーク上でブロードキャストされる、第1のSSDPブロードキャストメッセージを検出する。SSDPメッセージ送信構成要素は、第1のSSDPメッセージに応答して、ネットワーク上で第2のスクリーンデバイス170に第2のSSDPメッセージを送信し得る。いくつかの実施形態では、デバイス識別子構成要素124および174は、SSDP以外の異なるプロトコルを使用する。いくつかの実施形態では、デバイス識別子構成要素124は、第2のスクリーンデバイス170を、第1のスクリーンデバイス120と同じネットワーク上にあるとして識別する。
メッセージ構成要素126は、メッセージ受信モジュール230と、メッセージ生成モジュール232と、メッセージ送信モジュール234とを含み得る。メッセージ受信モジュール230は、第2のスクリーンデバイス170から、第1のメッセージ(たとえば、DIALアプリケーションステータスハイパーテキスト転送プロトコル(HTTP)要求、DIAL URL要求、DIAL URLクエリ、第1のスクリーンデバイス120のDIAL URLのクエリなど)を受信し得る。第1のメッセージは、第1のアプリケーションが、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を要求中であるか否かを照会することであり得る。
いくつかの実施形態では、メッセージ生成モジュール232は、第1のメッセージの受信に応答して、メッセージ(たとえば、DIALアプリケーションステータスHTTP要求応答、DIAL URL応答)を生成する。いくつかの実施形態では、メッセージ生成モジュール232は、認証サーバ130へのユーザ認証を求める要求の送信完了、および第1のメッセージの受信完了に応答して、メッセージを生成する。いくつかの実施形態では、メッセージ生成モジュール232は、認証サーバ130からの認証コードの受信完了、および第1のメッセージの受信完了に応答して、メッセージを生成する。いくつかの実施形態では、メッセージ生成モジュール232は、メッセージを生成するために、DIAL URLを生成し、DIAL URLに認証コード114を付加する。
メッセージ送信モジュール234は、第2のスクリーンデバイス170にメッセージを送信する。メッセージ送信モジュール234は、ネットワークを介して、メッセージをブロードキャストし得、ネットワークに通信可能に結合された複数のデバイスが、メッセージを検出し得る。
プロンプト構成要素128は、プロンプト提供モジュール240と、入力受信モジュール242とを含み得る。プロンプト構成要素128は、図6におけるプロンプト604などのプロンプトを表示し得る。プロンプトは、命令(たとえば、「第2のアプリケーションを開いてください」、「第2のアプリケーション上であなたのアカウントに行ってください」、「第2のスクリーンデバイスが第1のスクリーンデバイスと同じネットワーク上にあることを確認してください」など)を含み得る。プロンプトは、ステータス(たとえば、「第2のスクリーンデバイスを検索中」など)を含み得る。プロンプトは、プロンプト入力要素(たとえば、「別の方法を試行する」、「キャンセル」など)を含み得る。入力受信モジュール242は、プロンプト入力要素を介して、入力を受信し得る。たとえば、「別の方法を試行する」のプロンプト入力要素がユーザによって選択される場合、入力受信モジュール242は、第1のアプリケーションにログインする別の方法(たとえば、リモートコントロールのDパッドなどを使用して、第1のアプリケーションにユーザ名およびパスワードをタイプすること)とともにプロンプトを表示することを、プロンプト提供モジュール240に行わせ得る。別の例では、「キャンセル」のプロンプト入力要素がユーザによって選択される場合、プロンプト構成要素128は、プロンプトの表示を中止し得る(たとえば、第1のアプリケーションが、前のアクティビティ、ホームスクリーンなどを表示し得る)。
図2Bは、第2のスクリーンデバイス170を示すブロック図である。図2Bに示す例では、第2のスクリーンデバイス170は、データストア179に結合された、第2のアプリケーションログイン構成要素172と、デバイス識別子構成要素174と、メッセージ構成要素176と、プロンプト構成要素178とを含む。
第2のアプリケーションログイン構成要素172は、第2のアプリケーションログインマネージャ250を含む。第2のアプリケーションログインマネージャ250は、第2のスクリーンデバイスによってホストされた第2のアプリケーションを介して、ユーザ名およびパスワードを受信し得る。第2のアプリケーションログインマネージャ250は、認証サーバ130にユーザ名およびパスワードを送信し、第2のアプリケーションへのユーザログインのためのユーザ認証を行うために、クレデンシャルを受信し得る。ログインした後、第2のアプリケーションは、パーソナライズされた情報(たとえば、プレイリスト、閲覧履歴、購入履歴)へのアクセスを有し得、第2のアプリケーションは、アクション(たとえば、プレイリストを作成する、購入を行うなど)を行い得る。第2のアプリケーションは、1つまたは複数のアカウントに関連付けられ得る。第2のアプリケーションが複数のアカウントに関連付けられる場合、サインイン(たとえば、ログイン)時に、これらの複数のアカウントのうちの1つが、(たとえば、購入を行うためなどの)デフォルトアカウントとして使用され得るか、または、ユーザは、どのアカウントが、パーソナライズされた情報へのアクセスを有するため、アクションを行うためなどに使用されるべきであるかを選択するように要求され得る。いくつかの実施形態では、ユーザは、第1のスクリーンデバイス120を通す(たとえば、第1のスクリーンデバイス120によってホストされた第1のアプリケーションを介する)よりも、第2のスクリーンデバイス170を通して(たとえば、第2のスクリーンデバイス170によってホストされた第2のアプリケーションを介して)アカウントにログインする方がより好都合である。
デバイス識別子構成要素174は、SSDPメッセージ送信構成要素260と、SSDPメッセージ受信構成要素262とを含む。SSDPメッセージ送信構成要素260は、ネットワークを介して、第1のSSDPメッセージを送信し得る。いくつかの実施形態では、SSDPメッセージ送信構成要素260は、第1のスクリーンデバイス120など、ネットワークに通信可能に結合されているデバイスによって検出されるべき第1のSSDPメッセージをブロードキャストする。SSDPメッセージ受信構成要素262は、第1のスクリーンデバイス120による第1のSSDPメッセージの受信に応答して、第1のスクリーンデバイス120から第2のSSDPメッセージを受信する。第2のSSDPメッセージの受信に応答して、デバイス識別子構成要素174は、第1のスクリーンデバイス120を識別する。いくつかの実施形態では、SSDP以外のプロトコルが、第1のスクリーンデバイス120を識別するために使用される。
メッセージ構成要素176は、メッセージ送信モジュール270と、メッセージ受信モジュール272と、メッセージ復号モジュール274とを含み得る。デバイス識別子構成要素174による第1のスクリーンデバイス120の識別に応答して、メッセージ送信モジュール270は、第1のスクリーンデバイス120に第1のメッセージを送信(たとえば、第1のスクリーンデバイス120のDIAL URLを照会、DIALアプリケーションステータスHTTP要求を送信)し得る。メッセージ送信モジュール270による第1のメッセージの送信に続いて、メッセージ受信モジュール272は、第1のメッセージに応答して、第1のスクリーンデバイス120によって送信されたメッセージ(たとえば、DIAL URL応答、DIALアプリケーションステータスHTTP要求応答など)を受信し得る。メッセージ復号モジュール274は、第1のアプリケーションが自動ユーザログインのためのユーザ認証を要求中であると決定するために、メッセージを復号し得る。メッセージ復号モジュールは、認証サーバ130から第1のスクリーンデバイス120に送信された認証コード114を決定するために、メッセージを復号し得る。
プロンプト構成要素178は、プロンプト提供モジュール280と、入力受信モジュール282と、認証コード送信モジュール284とを含み得る。プロンプト提供モジュール280は、自動ユーザログインに関係するユーザ入力のためのプロンプトを提示し得る。プロンプト提供モジュール280は、図7に示すプロンプト704を提供し得る。たとえば、プロンプト提供モジュール280は、第1のアプリケーションへの自動ユーザログインのユーザ受入れを示すユーザ入力のためのプロンプトを提供し得る。入力受信モジュール282は、ユーザ入力を受信し得る。たとえば、ユーザ入力は、アカウントを介した第1のアプリケーションへの自動ユーザログインのユーザ受入れであり得る。別の例では、ユーザ入力は、アカウントを切り替えるためのものである。別の例では、ユーザ入力は、要求をキャンセルするか、またはアカウントへのアクセスを拒否するためのものである。認証コード送信モジュール284は、自動ユーザログインのユーザ受入れを示すユーザ入力の受信に応答して、認証サーバ130に認証コード114を送信し得る。認証コード送信モジュール284は、認証コード114と、自動ユーザログインのユーザ受入れを示すユーザ入力に対応するアカウントの指示とを送信し得る。
図3は、本開示の1つまたは複数の態様による、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインを容易にするためのシーケンス図300を示す。図示のように、シーケンス図300は、第1のスクリーンデバイス120と、認証サーバ130と、第2のスクリーンデバイス170との間の対話を含む。第1のスクリーンデバイス120および第2のスクリーンデバイス170は、同じネットワーク(たとえば、ローカルネットワーク140など)上にある。シーケンス図300に示された対話は、様々な順序で、および/または同時に、ならびに本明細書で提示および説明しない他の対話とともに生じ得る。さらに、すべての図示する対話が、開示する主題によるシーケンスを実装することが必要とされ得るとは限らない。
シーケンス図300は、第1のスクリーンデバイス120が、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインのためのユーザ認証を要求するユーザ入力を受信すること(302)で開始し得る。いくつかの実施形態では、第1のスクリーンデバイス120がユーザ入力を受信すること(302)は、ユーザによる第1のスクリーンデバイス120上の第1のアプリケーションの起動に応答するものである。いくつかの実施形態では、第1のスクリーンデバイス120がユーザ入力を受信すること(302)は、ユーザによる第1のスクリーンデバイス120上の第1のアプリケーションを介したログイン画面へのナビゲートに応答するものである。いくつかの実施形態では、第1のスクリーンデバイス120がユーザ入力を受信すること(302)は、ユーザによる、第1のスクリーンデバイス120上で第1のアプリケーションを介して表示されたログイン要素との対話(たとえば、ログインボタンのクリック)に応答するものである。第1のスクリーンデバイス120は、ユーザ入力の受信に応答して、自動ユーザログイン(たとえば、第1のアプリケーションへの自動ユーザログインのためのユーザ認証)のための認証コードを求める要求を、認証サーバ130に送り得る(304)。いくつかの実施形態では、第1のスクリーンデバイス120は、認証サーバ130に、ユーザ認証を求める要求を周期的に送り得る(304)。認証サーバ130は、要求の受信に応答して、認証コードを生成し得る(306)。いくつかの実施形態では、認証サーバ130は、要求の受信に応答して、認証コードをランダムに生成する(306)。認証サーバ130は、第1のスクリーンデバイス120に認証コードを送り得る(308)。
第2のスクリーンデバイス170は、ネットワーク(たとえば、ローカルネットワーク140)上で、第1のスクリーンデバイス120に第1のSSDPメッセージを送り得る(310)。いくつかの実施形態では、第2のスクリーンデバイス170は、ネットワーク上で、第1のSSDPメッセージ(たとえば、第1のSSDPブロードキャストメッセージ)をブロードキャストする。いくつかの実施形態では、第2のスクリーンデバイスは、第2のスクリーンデバイス170と同じネットワークに通信可能に結合された第1のスクリーンデバイス120があるか否かを決定するために、第1のSSDPメッセージを周期的に送る(310)。いくつかの実施形態では、第2のスクリーンデバイスは、第2のスクリーンデバイス170上で実行する第2のアプリケーションに対応し、第2のスクリーンデバイス170と同じネットワークに通信可能に結合されている、第1のアプリケーションを実行している第1のスクリーンデバイス120がある(たとえば、第1および第2のアプリケーションが、第2のアプリケーションを介したユーザ入力による第1のアプリケーションへの自動ユーザログインを容易にするための機能を有する)か否かを決定するために、第1のSSDPメッセージを周期的に送る(310)。いくつかの実施形態では、第2のスクリーンデバイス170は、第2のスクリーンデバイス170上の第2のアプリケーションの起動に応答して、第1のSSDPメッセージを送る(310)。いくつかの実施形態では、第2のスクリーンデバイス170は、第2のアプリケーションを介したユーザ入力の受信に応答して、第1のSSDPメッセージを送る(310)。第1のスクリーンデバイス120は、第1のSSDPメッセージの受信(たとえば、第1のSSDPブロードキャストメッセージの検出)に応答して、第2のスクリーンデバイス170に第2のSSDPメッセージを送り得る(312)。第1のスクリーンデバイス120は、(たとえば、第1のスクリーンデバイス120が、第2のスクリーンデバイス170と同じネットワークに通信可能に結合されていること、第1のスクリーンデバイス120が、第2のアプリケーションに対応する第1のアプリケーションを実行中であることなどの)確認を与えるために、第2のSSDPメッセージを送り得る(312)。第2のスクリーンデバイス170は、第2のSSDPメッセージの受信に応答して、第1のスクリーンデバイス120を(たとえば、同じネットワークに通信可能に結合されているとして、第2のアプリケーションに対応する第1のアプリケーションを実行中であるとしてなど)識別し得る(314)。
第2のスクリーンデバイス170は、ネットワーク上で第1のスクリーンデバイス120に第1のメッセージ(たとえば、DIALアプリケーションステータスHTTP要求、DIAL URL要求)を送り得る(316)。いくつかの実施形態では、第2のスクリーンデバイス170は、いずれかの識別された第1のスクリーンデバイス120がユーザ認証を要求中であるか否かを決定するために、第1のメッセージを送る(316)。いくつかの実施形態では、第2のスクリーンデバイス170は、第1のスクリーンデバイスの識別(314)に応答して、第1のメッセージを送る(316)。いくつかの実施形態では、第2のスクリーンデバイス170は、第2のスクリーンデバイス170が識別したいかなる第1のスクリーンデバイスにも、第1のメッセージを周期的に送る(316)。第1のスクリーンデバイス120は、第1のメッセージの受信に応答して、認証コードを含むメッセージ(たとえば、DIALアプリケーションステータスHTTP要求応答、DIAL URLメッセージ)を生成(たとえば、DIAL URLを生成し、DIAL URLに認証コードを付加)し得る(318)。第1のスクリーンデバイス120は、メッセージの生成に応答して、ネットワーク上で第2のスクリーンデバイス170にメッセージを送り得る(320)。いくつかの実施形態では、第1のスクリーンデバイス120は、メッセージをブロードキャストし、いかなる第2のスクリーンデバイスも、メッセージを受信(たとえば、検出)し得る。いくつかの実施形態では、第1のスクリーンデバイス120は、第1のメッセージを送った(316)第2のスクリーンデバイス170に、メッセージを送る(320)。第1のスクリーンデバイス120は、第1のスクリーンデバイス120がユーザ認証を要求中であるという確認を与えるために、第2のスクリーンデバイス170にメッセージを送り得る(320)。第2のスクリーンデバイス170は、メッセージの受信に応答して、第1のアプリケーションが自動ユーザログインのためのユーザ認証を要求中であると決定し得る(322)。いくつかの実施形態では、第2のスクリーンデバイス170は、メッセージを復号すること、および認証コードを識別することによって、第1のアプリケーションがユーザ認証を要求中であると決定する(322)。第2のスクリーンデバイス170は、第1のアプリケーションがユーザ認証を要求中であるとの決定に応答して、自動ユーザログインのユーザ受入れを示すユーザ入力のためのプロンプトを提示し得る(324)。
いくつかの実施形態では、第2のスクリーンデバイス170によってホストされた第2のアプリケーションは、1つまたは複数のアカウントにログインされ(たとえば、第2のスクリーンデバイスが、以前に、1つまたは複数のアカウントを介して第2のアプリケーションにサインインするために、認証サーバ130に、1つまたは複数のアカウントに対応するログインクレデンシャルを送った)、第2のスクリーンデバイス170は、1つまたは複数のアカウントの各々のための対応する受入れ要素を含むプロンプトを提示する(324)。ユーザは、アカウントを介した第1のアプリケーションへの自動ユーザログインのユーザ受入れを示すために、アカウントに対応する受入れ要素のうちの1つを選択(たとえば、クリック)し得る。いくつかの実施形態では、第2のスクリーンデバイス170は、ユーザが第2のアプリケーションを介して、ログインクレデンシャル(たとえば、ユーザ名およびパスワード)を入力するための、ユーザ入力のためのプロンプトを提示する(324)(たとえば、ユーザは、第2のアプリケーションにログインしていない)。
第2のスクリーンデバイス170は、プロンプトの提示に応答して、自動ユーザログインのユーザ受入れを示すユーザ入力を受信し得る(326)。いくつかの実施形態では、ユーザ入力は、アカウントに対応する受入れ要素を選択することである(たとえば、第1のアプリケーションがそのアカウントを使用することを許可するための、アカウントを選定するユーザ入力)。別の要素では、ユーザ入力は、ユーザ名および/またはパスワードの入力である。いくつかの実施形態では、ユーザ入力は、生体認証識別子(たとえば、親指の指紋、指紋、アイスキャンなど)である。
第2のスクリーンデバイス170は、ユーザ入力の受信に応答して、認証サーバ130に、メッセージからの認証コードを送り得る(328)。認証サーバ130は、認証コードの受信に応答して、クレデンシャルを生成し得る(330)。いくつかの実施形態では、クレデンシャルは、第1のスクリーンデバイスによってホストされた第1のアプリケーションにログインするためのログイン情報であり得る。いくつかの実施形態では、クレデンシャルは、第1のスクリーンデバイスによってホストされた第1のアプリケーションにログインするために、ユーザ入力において示されたアカウントに対応するログイン情報であり得る。
第1のスクリーンデバイス120は、認証サーバ130への(たとえば、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの)自動ユーザログインのためのユーザ認証を求める第2の要求を送り得る(332)。一実施形態では、第1のスクリーンデバイスは、ユーザ入力の受信(302)後、およびクレデンシャルの受信より前に、認証サーバ130にユーザ認証を求める要求を周期的に送る。いくつかの実施形態では、第2の要求は、第1のスクリーンデバイス120によって送られた(304)第1の要求と同じである。認証サーバ130は、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を行うために、第1のスクリーンデバイス120にクレデンシャルを送り得る(334)。
図4A〜図4Cは、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインを容易にする方法400、430、および460の例示的な例のためのフロー図を示す。方法400は、第2のスクリーンデバイスの観点からの例示的な方法である。方法430は、第1のスクリーンデバイスの観点からの例示的な方法である。方法460は、サーバデバイスの観点からの例示的な方法である。方法400、430、および460は、ハードウェア(たとえば、回路、専用論理)、ソフトウェア(汎用コンピュータシステムまたは専用マシン上で実行されるものなど)、または両方の組合せを含み得る、処理デバイスによって行われ得る。方法400、430、および460、ならびにそれらの個々の機能、ルーチン、サブルーチン、または動作の各々は、方法を実行するコンピュータデバイスの1つまたは複数のプロセッサによって行われ得る。いくつかの実施形態では、方法400、430、および460は、単一の処理スレッドによって各々行われ得る。代替的に、方法400、430、および460は、2つ以上の処理スレッドによって行われ得、各スレッドが、方法の1つまたは複数の個々の機能、ルーチン、サブルーチン、または動作を実行する。
説明を簡単にするために、本開示の方法について、一連の行為として図示および説明する。しかしながら、本開示による行為は、様々な順序で、および/または同時に、ならびに本明細書で提示および説明しない他の行為とともに生じ得る。さらに、すべての図示する行為が、開示する主題による方法を実施することが必要とされ得るとは限らない。加えて、これらの方法が、代替的に状態図またはイベントを介して、一連の相互に関係する状態として表され得ることは、当業者に理解および諒解されよう。追加として、本明細書で開示する方法は、そのような方法をコンピューティングデバイスにトランスポートおよび転送することを容易にするために、製造品において記憶されることが可能であることを諒解されたい。本明細書で使用する「製造品」という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータプログラムを包含するように意図される。たとえば、非一時的マシン可読記憶媒体は、実行されると、(たとえば、第1のスクリーンデバイス120、認証サーバ130、第2のスクリーンデバイス170などの)処理デバイスに、本明細書で開示する方法を含む動作を行わせる、命令を記憶し得る。一実施形態では、方法400は、図1の第2のスクリーンデバイス170によって行われ得、方法430は、図1の第1のスクリーンデバイス120によって行われ得、方法460は、図1の認証サーバ130によって行われ得る。
図4Aを参照すると、方法400は、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインを容易にするために、第2のスクリーンデバイス170の1つまたは複数の処理デバイスによって行われ得る。
方法400は、ブロック402で開始し得、処理デバイスは、ネットワーク上で第1のスクリーンデバイス120に第1のSSDPメッセージ(たとえば、第1のSSDPブロードキャストメッセージ)を送信すること、およびネットワーク上で第1のスクリーンデバイス120から第2のSSDPメッセージを受信することによって、第1のスクリーンデバイス120を識別し得る。いくつかの実施形態では、第1のSSDPメッセージは、ローカルネットワーク140上で送信され、第1のSSDPメッセージは、ローカルネットワーク140に通信可能に結合された第1のスクリーンデバイスがあるか否かを照会する要求である。いくつかの実施形態では、第2のSSDPメッセージは、第1のスクリーンデバイス120が、ローカルネットワーク140に通信可能に結合された第1のスクリーンデバイスであることを確認する応答である。
ブロック404で、処理デバイスは、第1のスクリーンデバイス120が自動ユーザログインのためのユーザ認証を要求中であるか否かを決定するために、第1のスクリーンデバイス120に第1のメッセージ(たとえば、DIALアプリケーションステータスHTTP要求、DIAL URL要求)を送信し得る。いくつかの実施形態では、処理デバイスは、第1のスクリーンデバイス120の識別に応答して、第1のメッセージを送信する。いくつかの実施形態では、処理デバイスは、しきい値時間量の間(たとえば、タイムアウトするまで、第1のスクリーンデバイス120からメッセージを受信するまで)、第1のメッセージを周期的に送信する。(代替実施形態では、ブロック402および404が省略され得る。)
ブロック406で、処理デバイスは、ネットワーク上で第1のスクリーンデバイス120によって送信されたメッセージを検出(たとえば、受信)し得る。メッセージは、サーバデバイスによって第1のスクリーンデバイスに提供された認証コードを含み得る。いくつかの実施形態では、処理デバイスは、処理デバイスがメッセージを受信するまで、メッセージを周期的に送信する。
ブロック408で、処理デバイスは、メッセージに基づいて、第1のスクリーンデバイス120によってホストされた第1のアプリケーションが、自動ユーザログインのためのユーザ認証を要求中であると決定し得る。いくつかの実施形態では、処理デバイスは、メッセージが認証コードを含むとの決定に応答して、第1のアプリケーションがユーザ認証を要求中であると決定する。いくつかの実施形態では、処理デバイスは、認証コードを識別するために、メッセージを復号し得る。
ブロック410で、処理デバイスは、第2のスクリーンデバイスによってホストされた第2のアプリケーションを介して、自動ユーザログインに関係するユーザ入力のためのプロンプトを提示し得る。いくつかの実施形態では、プロンプトは、ユーザが第1のアプリケーションへのログインを承認することを選択するための受入れ要素である。各受入れ要素は、アカウントに対応し得る(たとえば、第2のアプリケーションは、プロンプトを提示するより前に、アカウントにログインされ得る)。いくつかの実施形態では、プロンプトは、図7に表示されたプロンプト704であり得る。
ブロック412で、処理デバイスは、自動ユーザログインのユーザ受入れを示すユーザ入力を受信し得る。いくつかの実施形態では、ユーザ入力は、受入れ要素(たとえば、図7のプロンプト入力要素708e)を選択すること(たとえば、クリックすること)を含む。いくつかの実施形態では、ユーザ入力は、アカウントの視覚表現(たとえば、アカウントアバター、アカウントタブ、写真、画像、ユーザ名など)を選択すること(たとえば、クリックすること)を含む。いくつかの実施形態では、ユーザ入力は、ユーザ名およびパスワードを含む。
ブロック414で、処理デバイスは、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインへのユーザ認証を行うために、サーバデバイス(たとえば、認証サーバ130)に、メッセージからの認証コードを送信し得る。いくつかの実施形態では、処理デバイスは、第1のアプリケーションにおけるアカウントへの自動ユーザログインのためのユーザ入力において示されたアカウントの指示を送信する。
図4Bを参照すると、方法430は、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインを容易にするために、第1のスクリーンデバイス120の1つまたは複数の処理デバイスによって行われ得る。
方法430は、ブロック432で開始し得、処理デバイスは、第1のアプリケーションを介して、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を要求するユーザ入力を受信し得る。いくつかの実施形態では、ユーザ入力の受信は、第1のスクリーンデバイス120上の第1のアプリケーションの起動に応答するものである。いくつかの実施形態では、ユーザ入力の受信は、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへのナビゲートに応答するものである。いくつかの実施形態では、ユーザ入力の受信は、第1のアプリケーション上のログイン要素のユーザ選択に応答するものである。いくつかの実施形態では、ユーザ入力の受信は、ログインページにナビゲートされる第1のアプリケーションに応答するものである。いくつかの実施形態では、プロンプトは、第1のアプリケーションを介して表示され得る。たとえば、図6に示されたプロンプト604は、第1のアプリケーションを介して表示され得る。
ブロック434で、処理デバイスは、サーバデバイス(たとえば、認証サーバ130)に、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を求める要求を送信し得る。要求の送信は、ユーザ認証を要求するユーザ入力の受信に応答するものであり得る。
ブロック436で、処理デバイスは、サーバデバイスから認証コードを受信し得る。処理デバイスは、第1のスクリーンデバイス120のデータストアにおいて認証コードを記憶し得る。
ブロック438で、処理デバイスは、第1のスクリーンデバイスを識別するために、ネットワーク上で第2のスクリーンデバイスから第1のSSDPメッセージ(たとえば、第1のSSDPブロードキャストメッセージ)を受信し得、ブロック440で、処理デバイスは、第1のSSDPメッセージに応答して、ネットワーク上で第2のスクリーンデバイスに第2のSSDPメッセージを送信し得る。第1のSSDPメッセージは、処理デバイスがネットワークに通信可能に結合された第1のスクリーンデバイス120の一部であるか否かを照会する要求であり得、第2のSSDPメッセージは、処理デバイスがネットワークに通信可能に結合された第1のスクリーンデバイス120の一部であることを確認する応答であり得る。ブロック438および440は、ブロック442の前の方法430における任意の時点(たとえば、ブロック432の前など)で生じ得る。
ブロック442で、処理デバイスは、第2のスクリーンデバイスから、第1のメッセージ(たとえば、DIALクエリ、DIALメッセージ、DIAL要求、DIALアプリケーションステータスHTTP要求、第1のスクリーンデバイス120のDIAL URLのクエリなど)を受信し得る。第1のメッセージは、処理デバイスが、ユーザ認証を要求中である第1のアプリケーションをホスト中であるか否かを照会する要求であり得る。(代替実施形態では、ブロック438、440、および442が省略され得る。)
ブロック444で、処理デバイスは、認証コードを含むメッセージ(たとえば、DIAL URL応答、DIALアプリケーションステータスHTTP要求応答など)を生成し得る。メッセージを生成することは、DIAL URLを生成すること、データストアから認証コードを取り出すこと、およびDIAL URLに認証コードを付加することを含み得る。ブロック444は、方法430において、サーバデバイスから認証コードを受信した(ブロック436)後、およびメッセージを送信する(ブロック446)前の任意の時点において生じ得る。
ブロック446で、処理デバイスは、ネットワーク上でメッセージを送信し得る。メッセージは、第2のスクリーンデバイス170によって検出され得る。第2のスクリーンデバイス170は、自動ユーザログインのユーザ受入れを示すユーザ入力のためのプロンプトを提示し得、ユーザ入力の受信に応答して、サーバデバイスに認証コードを送信し得る。
ブロック448で、処理デバイスは、場合によっては、サーバデバイスに、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を求める第2の要求を送信し得る。いくつかの実施形態では、第2の要求は、ブロック434における第1の要求と同じである。いくつかの実施形態では、処理デバイスは、要求が処理デバイスによってキャンセルされるまで(たとえば、要求をキャンセルするユーザ入力、要求のタイムアウトなど)、または第2のスクリーンデバイス170によってキャンセルされるまで(たとえば、要求をキャンセルするユーザ入力など)、ユーザ認証を求める要求を周期的に送信する。
ブロック450で、処理デバイスは、サーバデバイスによる、第2のスクリーンデバイス170からの認証コードの受信に応答して、サーバデバイスから、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を行うためのクレデンシャルを受信し得る。処理デバイスは、クレデンシャルに対応するアカウントを使用して、第1のアプリケーションにログインするために、クレデンシャルを使用し得る。第1のアプリケーションへのサインインに応答して、処理デバイスは、アカウントに対応するユーザ情報(たとえば、プレイリスト、閲覧履歴、購入など)を表示し得る。第1のアプリケーションへのサインインに応答して、処理デバイスは、クレデンシャルに対応するアカウントを介して、ユーザによって要求されたアクション(たとえば、購入を行うなど)を行い得る。
図4Cを参照すると、方法460は、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインを容易にするために、サーバデバイス(たとえば、認証サーバ130)の1つまたは複数の処理デバイスによって行われ得る。
方法460は、ブロック462で開始し得、処理デバイスは、第1のスクリーンデバイス120から、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインのためのユーザ認証を求める要求を受信し得る。
ブロック464で、処理デバイスは、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインのための認証コードを生成し得る。処理デバイスは、認証コードをランダムに生成し得る。一実施形態では、認証コードは、ランダムな英数字認証コードである。処理デバイスは、データストア(たとえば、データストア160の認証コードキャッシュ123)において認証コードを記憶し得る。
ブロック466で、処理デバイスは、第1のスクリーンデバイス120に認証コードを送信し得る。第1のスクリーンデバイス120は、認証コードを含むメッセージ(たとえば、DIAL URL応答、DIALアプリケーションステータスHTTP要求応答など)を生成および送信し得る。第2のスクリーンデバイス170は、認証コードを識別するために、メッセージを受信および復号し得る。
ブロック468で、処理デバイスは、第2のスクリーンデバイス170から認証コードを受信し得る。処理デバイスは、第2のスクリーンデバイス170によるユーザ入力の受信に応答して、第2のスクリーンデバイス170から、第1のアプリケーションへの自動ユーザログインのためのアカウントの指示をさらに受信し得る。第2のスクリーンデバイス170は、第2のスクリーンデバイス170を介した、自動ユーザログインのユーザ受入れを示すユーザ入力のためのプロンプトの提示に応答して、ユーザ入力を受信し得る。アカウントの指示は、第2のアプリケーションを介してアカウントにログインされる第2のスクリーンデバイス170に応答するものであり得る。
ブロック470で、処理デバイスは、場合によっては、第1のスクリーンデバイスから、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を求める第2の要求を受信し得る。
ブロック472で、処理デバイスは、第2のスクリーンデバイス170から受信された認証コードに基づいて、クレデンシャルを生成し得る。クレデンシャルは、第2のスクリーンデバイス170から受信されたアカウントの指示に基づくアカウントのためのものであり得る。
ブロック474で、処理デバイスは、第1のスクリーンデバイスに、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を行うためのクレデンシャルを送信し得る。
図5は、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインを容易にするための例示的なフロー図500である。
ブロック502で、第1のスクリーンデバイス120によってホストされた第1のアプリケーションは、ログイン命令(たとえば、命令を伴うテレビサインインプロンプト)を表示する。一実施形態では、第1のスクリーンデバイス120は、保留中要素(たとえば、スピナータイマー、第1のスクリーンデバイス120が入力を待機中であることを表すためのオブジェクト)と、ステータス指示(たとえば、「あなたの電話またはタブレットを探しています」)とをさらに表示する。第1のアプリケーションは、第1のアプリケーションへのログインを要求するユーザ入力の受信に応答して、ログイン命令を表示し得る。第1のアプリケーションは、第1のスクリーンデバイス120上の第1のアプリケーションの起動に応答して、ログイン命令を表示し得る。方法は、ブロック504に続く。
ブロック504で、第2のアプリケーションが、第2のスクリーンデバイス170上で起動される。第2のスクリーンデバイス170は、第2のアプリケーションを開くためのユーザ入力を受信し得る。方法は、ブロック506に続く。
ブロック506で、第2のスクリーンデバイス170は、第1のスクリーンデバイス120および第2のスクリーンデバイス170が同じネットワーク(たとえば、ローカルネットワーク140)上にあるか否かを決定する。第1のスクリーンデバイス120および第2のスクリーンデバイス170が、同じネットワーク上にある場合、方法は、ブロック508に続く。第1のスクリーンデバイス120および第2のスクリーンデバイス170が、同じネットワーク上にない場合、方法は、ブロック510に、次いでブロック516に続く。
ブロック508で、第2のスクリーンデバイス170は、第2のスクリーンデバイス170が第1のスクリーンデバイス120を検出することができるか否かを決定する。いくつかの実施形態では、ブロック508は、第1のスクリーンデバイス120が、第1のスクリーンデバイスが第2のスクリーンデバイス170を検出することができるか否かを決定することをさらに含む。これらのデバイスは、SSDPメッセージの送受信によって、互いを検出し得る。第2のスクリーンデバイス170が第1のスクリーンデバイス120を検出する場合、方法は、ブロック512またはブロック520に続く。第2のスクリーンデバイス170が第1のスクリーンデバイス120を検出しない場合、方法は、ブロック510に、次いでブロック516に続く。
ブロック510で、第2のスクリーンデバイス170によってホストされた第2のアプリケーションは、第2のアプリケーションの表示を更新しない。たとえば、第2のアプリケーションは、第1のスクリーンデバイス120が検出されたか、またはログインを待機中であるという指示を表示しない。
ブロック512で、第1のアプリケーションは、第2のスクリーンデバイス170によるアクションを待機中である。たとえば、第1のアプリケーションは、第1のアプリケーションを介したログインを受け入れるために、第2のアプリケーションを介したユーザ入力を待機中であり得る。一実施形態では、第1のアプリケーションは、第1のアプリケーションの表示を更新しないことがある。方法は、514に続く。
514で、第2のアプリケーションを介したアクションがとられない場合、方法は、ブロック516に続く。一実施形態では、自動ユーザログインのユーザ受入れを示すユーザ入力が受信されない場合、方法は、516に続く。
ブロック516で、第1のアプリケーションは、第2のスクリーンデバイスを介したアクションを待機中である。一実施形態では、第1のアプリケーションを介して表示されたプロンプトは、しきい値時間量後にタイムアウトし、方法は、518に続く。
518で、ログインのための別の機会が許可され得(たとえば、再試行)、方法は、ブロック502に続き、第1のアプリケーションがログイン命令を表示する。第1のアプリケーションは、ブロック510における更新されたログイン命令を表示し得る。更新されたログイン命令は、第1のアプリケーションにログインする1つまたは複数の方法を伴う、第2のプロンプトを含み得る。1つまたは複数のログインする方法は、第2のアプリケーションにURLをタイプすること、第2のアプリケーションにユーザ名およびパスワードをタイプすること、ならびに、第2のアプリケーションに、第1のアプリケーションを介して表示されたコードをタイプすることを含み得る、URL方法を含み得る。1つまたは複数のログインする方法は、リモートコントロール(たとえば、Dパッド)を介して、第1のアプリケーションに直接、ユーザ名およびパスワードを入力することを含み得る。1つまたは複数のログインする方法は、方法400、430、および460において説明した自動ユーザログイン方法を含み得る。
ブロック520で、第2のアプリケーションは、ログイン確認プロンプトを表示し、第2のスクリーンデバイス170は、第2のアプリケーションを介したユーザ入力を受信する。一実施形態では、ユーザ入力は、「続ける」(たとえば、図7におけるプロンプト入力要素708a)の選択であり得る。方法は、ブロック522、524、または526のうちの1つまたは複数に続く。
ブロック522で、第2のスクリーンデバイス170は、ログインをキャンセルするための、第2のアプリケーションを介したユーザ入力を受信する(たとえば、図7のプロンプト入力要素708b)。一実施形態では、第2のアプリケーションは、ユーザが受け入れ得るキャンセル要素(たとえば、キャンセルボタンをクリックする)を表示する。方法は、ブロック502に続く。
ブロック524で、第1のアプリケーションは、第1のスクリーンデバイス120が第2のスクリーンデバイス170およびネットワークを発見したという確認を表示する。方法は、ブロック526に続く。
ブロック526で、第2のスクリーンデバイス170は、ログインのためのアカウントを確認するユーザ入力を受信する(たとえば、図7のプロンプト入力要素708c)。方法は、ブロック528、530、または532に続く。
ブロック528で、ログインのためのアカウントを確認するユーザ入力は、ログインのためのアカウントを切り替えるユーザ入力であり得る(たとえば、図7のプロンプト入力要素708d)。方法は、ブロック530または532に続く。
ブロック530で、第2のアプリケーションは、第1のアプリケーションがアカウントへのアクセスを有することを可能にするか否かを確認するためのプロンプトを表示する(たとえば、図7のプロンプト入力要素708e)。方法は、「キャンセル」もしくは「拒否」を示すユーザ入力(たとえば、図7のプロンプト入力要素708f)に応答して、ブロック532に続くか、または、「yes」もしくは「可能にする」を示すユーザ入力(たとえば、図7のプロンプト入力要素708e)に応答して、ブロック538に続き得る。
ブロック532で、第2のアプリケーションは、要求をキャンセルするか、またはアカウントへのアクセスを拒否するためのユーザ入力を受信する(たとえば、図7のプロンプト入力要素708f)。方法は、534に続く。
534で、第1のアプリケーションタイムアウトがリセットする。いくつかの実施形態では、第1のアプリケーションは、しきい値時間量の間、またはタイムアウトがリセットする(たとえば、キャンセルが第2のスクリーンデバイス170上で選択される)まで、ログイン命令を表示する(ブロック502を参照)。方法は、ブロック536に続く。
ブロック536で、第1のアプリケーションは、(たとえば、第2のアプリケーションとのユーザ対話に応答して)ログインが第2のスクリーンデバイス170によってキャンセルされたことを示すプロンプトを表示する。方法は、ブロック502に続く。
ブロック538で、第1のアプリケーションへのログインが成功する。一実施形態では、第2のスクリーンデバイス170が第1のスクリーンデバイス120から認証コードを受信すること、第2のスクリーンデバイス170が認証サーバ130に認証コードを送信すること、および、認証サーバ130が、第1のスクリーンデバイス120によってホストされた第1のアプリケーションへの自動ユーザログインのためのユーザ認証を行うことによって、第1のアプリケーションへのログインが成功する。
ブロック540で、第1のアプリケーションは、前のアクティビティ(たとえば、ブロック502におけるログイン命令の表示より前に、第1のアプリケーションが表示中であったもの)に戻る。第1のアプリケーションはまた、ログインが成功したという指示(たとえば、ログイン成功トースト)を表示し得る。
ブロック542で、第2のアプリケーションは、前のアクティビティ(たとえば、ログイン確認プロンプトの表示より前に、第2のアプリケーションが表示中であったもの)に戻る。第2のアプリケーションはまた、ログインが成功したという指示(たとえば、ログイン成功トースト)を表示し得る。
図6は、本開示の一実施形態による、第1のアプリケーション602への自動ユーザログインを容易にするための、第1のスクリーンデバイス120によってホストされた第1のアプリケーション602を介して表示された、例示的なグラフィカルインターフェース600である。
第1のアプリケーション602は、プロンプト604を表示し得る。一実施形態では、プロンプト604は、第1のアプリケーション602上に表示された直近のアクティビティ(たとえば、ホームページ、再生中のメディアアイテム、購入されることになるアイテムなど)の前に表示される。プロンプト604の後ろに表示される第1のアプリケーション602の部分は、不明瞭にされ得る(たとえば、影付き、フェードなど)。
いくつかの実施形態では、プロンプト604は、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を要求するユーザ入力の受信に応答して表示される。たとえば、ユーザ入力は、第1のアプリケーション602を起動することであり得る。別の例では、ユーザ入力は、第1のアプリケーション602を介して表示されたログイン要素を選択することであり得る。別の例では、ユーザ入力は、第1のアプリケーション602を介して表示されたログイン画面にナビゲートすることであり得る。いくつかの実施形態では、プロンプト604は、第1のスクリーンデバイス120による、第2のスクリーンデバイス170からのメッセージの受信に応答して表示される。たとえば、メッセージは、第2のスクリーンデバイス170から受信された第1のSSDPメッセージであり得る。別の例では、メッセージは、第2のスクリーンデバイス170から受信されたDIALメッセージであり得る。別の例では、メッセージは、第2のスクリーンデバイス170から受信された別のタイプのプロトコルのメッセージであり得る。
プロンプト604は、プロンプトテキスト606と、1つまたは複数のプロンプト入力要素608とを含み得る。プロンプトテキスト606は、第1のアプリケーション602への自動ユーザログインを容易にするための命令を示し得る。たとえば、プロンプトテキスト606は、第2のスクリーンデバイス170上で第2のアプリケーションを起動するための指示を含み得る。別の例では、プロンプトテキスト606は、第2のスクリーンデバイス上で第2のアプリケーションを介してアカウントにログインするための指示を含み得る。別の例では、プロンプトテキスト606は、第2のスクリーンデバイス170を、第1のスクリーンデバイス120と同じネットワーク(たとえば、ローカルネットワーク140)に接続するための命令を含み得る。別の例では、プロンプトテキスト606は、自動ユーザログインを容易にすることにおける進行の指示(たとえば、「第2のスクリーンデバイスを検索中」)を含み得る。1つまたは複数のプロンプト入力要素608は、ログインするための別の方法(たとえば、リモートコントロールのDパッドを介して、ユーザ名およびパスワードをタイプすること、第2のスクリーンデバイス170において、URL、コード、ユーザ名、およびパスワードをタイプすることなど)を試行するためのプロンプト入力要素608aと、ログイン要求をキャンセルするためのプロンプト入力要素608bとを含み得る。
プロンプト604は、しきい値時間量の間に表示されるプロンプト(たとえば、タイムアウト)に応答して、ログイン命令を更新し得る。プロンプト604は、ネットワークを介した第2のスクリーンデバイス170の識別に応答して、ログイン命令を更新し得る。プロンプト604は、第2のスクリーンデバイス170によってホストされた第2のアプリケーションによる、ユーザ入力(たとえば、ログイン要求のキャンセル、アカウントの選択、第1のアプリケーションへのログインのユーザ受入れなど)の受信に応答して、ログイン命令を更新し得る。
図7は、本開示の一実施形態による、第1のスクリーンデバイス120によってホストされた第1のアプリケーション602への自動ユーザログインを容易にするための、第2のスクリーンデバイス170によってホストされた第2のアプリケーション702を介して表示された、例示的なユーザインターフェース700a、700b、700c、700d、700e、および700fを表示する。図7はまた、異なるユーザインターフェース700間のシーケンス710、720、730、および740を表示する。
ユーザインターフェース700aは、第2のアプリケーション702と、プロンプト入力要素708aとを表示する。プロンプト入力要素708aは、ユーザインターフェース700aがホームスクリーンを表示中であるとき、および、ユーザが、ユーザインターフェース700aを介して表示されたコンテンツアイテムをブラウズ中であるとき、表示され得る。プロンプト入力要素708aは、第2のアプリケーションがログインされる際のアカウントの視覚表現を含み得る。たとえば、プロンプト入力要素708aは、アカウントに対応する画像(たとえば、プロファイルピクチャ、アバターなど)を含み得る。別の例では、プロンプト入力要素708aは、アカウントのための識別子(たとえば、ユーザ名、アカウントに対応するユーザのプロファイル名、アカウントに対応する電子メールアドレス、アカウント名など)を含み得る。プロンプト入力要素708aは、ユーザが第1のアプリケーション602へのログインを開始するために選択することができるアイコン(たとえば、「TVアシスト」アイコン)であり得る。ユーザ入力がプロンプト入力要素708aを選択すると、シーケンスは、ユーザインターフェース700b(シーケンス710)に続き得るか、またはシーケンスは、ユーザインターフェース700e(シーケンス730)に続き得る。
第2のスクリーンデバイス170が、第1のアプリケーション602がユーザ認証を要求中であると決定した場合、シーケンス710が生じ得る。たとえば、第2のスクリーンデバイス170は、第1のSSDPメッセージを送ること、および第2のSSDPメッセージを受信することによって、第1のスクリーンデバイス120を識別しており、第2のスクリーンデバイス170は、第1のメッセージ(たとえば、DIALメッセージ、DIAL URLのクエリ、DIALアプリケーションステータスHTTP要求)を送ること、およびメッセージ(たとえば、DIAL URL応答、DIALアプリケーションステータスHTTP要求応答など)を受信することによって、第1のスクリーンデバイス120がユーザ認証を要求中であると決定している。第2のスクリーンデバイスが、第1のアプリケーション602がユーザ認証を要求中であると決定しなかった場合、シーケンス730が生じ得る。たとえば、第2のスクリーンデバイス170は、第1のスクリーンデバイス120を識別していない。別の例では、第2のスクリーンデバイス170は、第1のスクリーンデバイス120にメッセージを送っていない。別の例では、第2のスクリーンデバイスは、メッセージ(たとえば、DIAL URL応答、DIALアプリケーションステータスHTTP要求応答など)において認証コードを受信していない。
ユーザインターフェース700bは、第2のアプリケーション702と、プロンプト704bとを表示する。いくつかの実施形態では、ユーザインターフェース700bまたはプロンプト704bは、アカウントセレクタページ(たとえば、アカウントセレクタモーダル、モバイルアウェアモーダル)であり得る。プロンプト704bは、プロンプトテキスト706b(たとえば、「第1のユーザデバイスによってホストされた第1のアプリケーションへのサインインを試行しますか?」、ユーザ名またはアカウントを識別する情報)と、1つまたは複数のプロンプト入力要素708とを含み得る。プロンプト入力要素708bを選択するユーザ入力は、第1のアプリケーションへのログインをキャンセルし得る。ユーザインターフェース700bは、ユーザログインのために第1のアプリケーション602をホストする第1のスクリーンデバイス120を選択するためのプロンプトをさらに含み得る(たとえば、プロンプトは、1つまたは複数の第1のスクリーンデバイス、同じネットワークに接続された他のデバイス(キャストデバイスなど)などを示し得る)。ユーザ入力がプロンプト入力要素708cを選択すると、シーケンス710は、ユーザインターフェース700cに続き得る。プロンプト入力要素708dを選択するユーザ入力は、自動ユーザログインのためのアカウントの切替えを開始し得る。
ユーザインターフェース700cは、第2のアプリケーション702と、プロンプト704cとを表示する。プロンプト704cは、プロンプトテキスト706c(たとえば、「第1のアプリケーションが以下を行うことを希望しています:あなたのアカウントを管理すること、あなたのレンタルおよび購入履歴を閲覧および管理すること」など)と、1つまたは複数のプロンプト入力要素708とを含み得る。プロンプト入力要素708eを選択するユーザ入力は、自動ユーザログインのユーザ受入れを示し得、シーケンス710は、第1のアプリケーションのログインの成功に続き得る(たとえば、第2のスクリーンデバイス170は、第1のアプリケーションへの自動ユーザログインのためのユーザ認証を行うために、認証サーバ130に認証コードを送信し得る)。プロンプト入力要素708fを選択するユーザ入力は、自動ユーザログインのユーザ拒否を示し得、シーケンス(720)は、ユーザインターフェース700fに続き得る。
ユーザインターフェース700dは、第2のアプリケーション702と、プロンプト704dとを表示する。ユーザインターフェース700dは、ユーザがしきい値時間量の間にプロンプト入力要素708aを選択しなかった場合、表示され得る。プロンプト704dは、第1のアプリケーション602へのログインを開始するために、プロンプト入力要素708aを選択するための命令を含み得る。プロンプト704dは、第2のしきい値時間量の間、またはユーザがプロンプト704dを却下するか、もしくはプロンプト入力要素708aを選択するまで、表示され得る。プロンプト704dは、ネットワーク上の別の第2のスクリーンデバイスによって、ログインシーケンス(たとえば、シーケンス710)が開始された(たとえば、プロンプト入力要素708aが選択された)場合、表示されないことがある。ユーザ入力がプロンプト入力要素708aを選択すると、シーケンス740は、ユーザインターフェース700bに続き、上記で説明したように進み得る。
ユーザインターフェース700eは、第2のアプリケーション702を表示する。ユーザインターフェースは、第2のアプリケーション702を介してログインされるアカウントに対応するユーザ情報(たとえば、ユーザ名、電子メールアドレス、プロファイルピクチャ、アバターなど)を表示し得る。ユーザインターフェース700eは、アカウント情報を表示し得る。ユーザインターフェース700eは、第2のスクリーンデバイス170が、第1のアプリケーション602が自動ユーザログインのためのユーザ認証を要求中であると決定するより前の、プロンプト入力要素708aのユーザ選択(たとえば、アカウントの選択)に応答して表示され得る。第2のスクリーンデバイス170が、第1のアプリケーション602がユーザ認証を要求中であると決定すると、シーケンス730は、ユーザインターフェース700bに続き得(たとえば、アカウントセレクタモーダルが自動的に出現する)、上記で説明したように進み得る。
ユーザインターフェース700fは、第2のアプリケーション702を表示する。ユーザインターフェースは、第2のアプリケーション702を介してログインされるアカウントに対応するユーザ情報を表示し得る。ユーザインターフェース700fは、アカウント情報を表示し得る。ユーザインターフェースは、第2のスクリーンデバイス170による、第1のアプリケーション602が自動ユーザログインのためのユーザ認証を要求中であるとの決定、および、第2のアプリケーション702による、第1のアプリケーション602への自動ユーザログインのためのユーザ認証の(たとえば、ユーザインターフェース700bを介して表示されたプロンプト入力要素708bを介した)キャンセル、または(たとえば、ユーザインターフェース700cを介して表示されたプロンプト入力要素708fを介した)拒否の受信に応答して表示され得る。ユーザインターフェース700fは、プロンプトテキスト706e(たとえば、「第1のアプリケーションへのログインを試行しますか?」など)と、プロンプト入力要素708h(たとえば、トーストプロンプト、スナックバープロンプト、表示されている間にユーザインターフェース700fの他の部分との対話を可能にする小型のポップアップ、しきい値時間量(たとえば、タイムアウト)後に消えるプロンプト)とを含む、プロンプト704eを表示し得る。ユーザ入力がプロンプト入力要素708hを選択すると、シーケンスは、ユーザインターフェース700bまたは700c(たとえば、ユーザインターフェース700fにダイレクトされる直前に表示されたユーザインターフェース700)に続き得る。
図8は、本開示の一実施形態による、コンピュータシステムの一実施形態を示すブロック図である。いくつかの実施形態では、コンピュータシステム800は、(たとえば、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなどのネットワークを介して)他のコンピュータシステムに接続され得る。コンピュータシステム800は、クライアントサーバ環境におけるサーバもしくはクライアントコンピュータの能力において、または、ピアツーピアもしくは分散ネットワーク環境におけるピアコンピュータとして動作し得る。コンピュータシステム800は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラー電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、または、そのデバイスによってとられるべきアクションを指定する命令(連続またはそれ以外)のセットを実行することが可能な任意のデバイスによって提供され得る。さらに、「コンピュータ」という用語は、本明細書で説明する方法のうちの任意の1つまたは複数を行うための命令のセット(または複数のセット)を個々にまたは一緒に実行する、任意のコンピュータの集合を含むものとする。
さらなる態様では、コンピュータシステム800は、バス808を介して互いに通信し得る、処理デバイス802と、揮発性メモリ804(たとえば、ランダムアクセスメモリ(RAM))と、不揮発性メモリ806(たとえば、読取り専用メモリ(ROM)または電気的消去可能プログラマブルROM(EEPROM))と、データ記憶デバイス818とを含み得る。
処理デバイス802は、汎用プロセッサ(たとえば、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他のタイプの命令セットを実装するマイクロプロセッサ、またはいくつかのタイプの命令セットの組合せを実装するマイクロプロセッサなど)、または専用プロセッサ(たとえば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、またはネットワークプロセッサなど)など、1つまたは複数のプロセッサによって提供され得る。
コンピュータシステム800は、ネットワークインターフェースデバイス822をさらに含み得る。コンピュータシステム800はまた、ビデオディスプレイユニット810(たとえば、LCD)と、英数字入力デバイス812(たとえば、キーボード)と、カーソル制御デバイス814(たとえば、マウス)と、信号生成デバイス820とを含み得る。
データ記憶デバイス818は、図1のメッセージ構成要素126または176を符号化する命令、および方法400、430、または460を実施するための命令を含む、本明細書で説明する方法または機能のうちの任意の1つまたは複数を符号化する命令826をその上に記憶し得る、非一時的コンピュータ可読記憶媒体824を含み得る。
命令826はまた、コンピュータシステム800によるその実行中に、揮発性メモリ804内および/または処理デバイス802内に完全にまたは部分的に存在し得、したがって、揮発性メモリ804および処理デバイス802もまた、マシン可読記憶媒体を構成し得る。
コンピュータ可読記憶媒体824は、例示的な例では単一の媒体として示されているが、「コンピュータ可読記憶媒体」という用語は、1つまたは複数の実行可能命令のセットを記憶する、単一の媒体または複数の媒体(たとえば、集中型もしくは分散データベース、ならびに/または関連付けられたキャッシュおよびサーバ)を含むものとする。「コンピュータ可読記憶媒体」という用語はまた、本明細書で説明する方法のうちの任意の1つまたは複数をコンピュータに行わせる、コンピュータによる実行のための命令のセットを記憶または符号化することが可能である、任意の有形の媒体を含むものとする。「コンピュータ可読記憶媒体」という用語は、限定はしないが、ソリッドステートメモリ、光媒体、および磁気媒体を含むものとする。
本明細書で説明する方法、構成要素、および特徴は、個別ハードウェア構成要素によって実装され得るか、またはASIC、FPGA、DSPもしくは同様のデバイスなど、他のハードウェア構成要素の機能において統合され得る。加えて、方法、構成要素、および特徴は、ファームウェアモジュールまたはハードウェアデバイス内の機能回路によって実装され得る。さらに、方法、構成要素、および特徴は、ハードウェアデバイスおよびコンピュータプログラム構成要素の任意の組合せにおいて、またはコンピュータプログラムにおいて実装され得る。
別段に明記されていない限り、「容易にすること」、「検出すること」、「決定すること」、「提示すること」、「受信すること」、「送信すること」、「識別すること」、「要求すること」、「生成すること」、「認証すること」などの用語は、コンピュータシステムレジストリおよびメモリ内の物理(電子)量として表されたデータを操作し、コンピュータシステムメモリもしくはレジスタ、または他のそのような情報記憶、送信もしくはディスプレイデバイス内の物理量として同様に表された他のデータに変換する、コンピュータシステムによって行われるかまたは実装されるアクションおよびプロセスを指す。また、本明細書で使用する「第1の」、「第2の」、「第3の」、「第4の」などの用語は、異なる要素間で区別するためのラベルとしての意味であり、それらの数字表示による順序の意味を有さないことがある。
本明細書で説明する例はまた、本明細書で説明する方法を行うための装置にも関する。この装置は、本明細書で説明する方法を行うために特別に構築され得るか、または、コンピュータシステムにおいて記憶されたコンピュータプログラムによって選択的にプログラムされた汎用コンピュータシステムを含み得る。そのようなコンピュータプログラムは、コンピュータ可読有形記憶媒体において記憶され得る。
本明細書で説明する方法および例示的な例は、いかなる特定のコンピュータまたは他の装置にも本質的に関連するものではない。様々な汎用システムが、本明細書で説明する教示に従って使用され得るか、あるいは、方法400、430、460、および/またはその個々の機能、ルーチン、サブルーチン、もしくは動作の各々を行うために、より専用の装置を構築することが好都合であると判明し得る。様々なこれらのシステムのための構造の例は、上記の説明において記載されている。
上記の説明は、例示的であり、限定的ではないように意図される。本開示について、特定の例示的な例および実施形態を参照しながら説明したが、本開示がそれらの説明した例および実施形態に限定されないことは認識されよう。本開示の範囲は、特許請求の範囲がその権利を与えられる均等物の完全な範囲とともに、以下の特許請求の範囲を参照しながら決定されるべきである。