(57)【特許請求の範囲】
【請求項１】
クライアント・デバイスの第１のスクリーン・デバイスとの相互運用性を促進するためのコンピュータ実行型の方法であって、
クライアント・デバイスで動作する第２のスクリーン・アプリケーションにより、ユーザ・インタフェース内のデバイスの重複排除されたリストを表示するステップであって、各列挙されたデバイスは１つまたは複数のカップリング・プロトコルに関連付けられる、ステップと、
前記ユーザ・インタフェースを介してビデオ・ディスプレイ・セッションに一緒に参加する列挙されたデバイスの選択を受信するステップと、
前記選択されたデバイスの第１のスクリーン・アプリケーションに対するアプリケーション・ステータス情報を制御サーバから取得するステップであって、前記アプリケーション・ステータス情報は、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあるかどうかを示す、ステップと、
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいてカップリング方法を決定するステップと、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップと、
を含む、方法。
【請求項２】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記アプリケーション・ステータス情報を用いて、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあると判定するステップであって、前記アプリケーション・ステータス情報はさらに、前記既存のビデオ・ディスプレイ・セッションで使用される前記１つまたは複数のカップリング・プロトコルの特定のカップリング・プロトコルを示す、ステップと、
前記特定のカップリング・プロトコルが前記クライアント・デバイスに利用可能でないと判定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記クライアント・デバイスが前記クライアント・デバイスおよび前記制御サーバに利用可能なカップリング・プロトコルを用いて制御サーバと通信し、前記制御サーバが前記特定のカップリング・プロトコルを用いて前記第１のスクリーン・アプリケーションと通信するように、前記制御サーバを通じて間接的に前記第１のスクリーン・アプリケーションと接続するステップ
を含む、請求項１に記載の方法。
【請求項３】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記アプリケーション・ステータス情報を用いて、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあると判定するステップであって、前記アプリケーション・ステータス情報はさらに、前記既存のビデオ・ディスプレイ・セッションで使用される前記１つまたは複数のカップリング・プロトコルの特定のカップリング・プロトコルを示す、ステップと、
前記特定のカップリング・プロトコルは前記クライアント・デバイスに利用可能であると判定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記特定のカップリング・プロトコルを用いて前記既存のビデオ・ディスプレイ・セッションに接続するステップ
を含む、請求項１に記載の方法。
【請求項４】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記第１のスクリーン・アプリケーションが別のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にないことを、前記アプリケーション・ステータス情報を用いて判定するステップと、
前記クライアント・デバイスおよび前記第１のスクリーン・デバイスに利用可能である前記１つまたは複数のカップリング・プロトコルの好適なカップリング・プロトコルを決定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記好適なカップリング・プロトコルを用いて第１のスクリーン・アプリケーションに接続するステップ
を含む、請求項１に記載の方法。
【請求項５】
前記好適なカップリング・プロトコルは、前記複数のカップリング・プロトコルの他のカップリング・プロトコルよりも多くの制御を前記ユーザに提供する前記クライアント・デバイスおよび前記第１のスクリーン・デバイスの両方に利用可能な複数のカップリング・プロトコルのカップリング・プロトコルである、請求項４に記載の方法。
【請求項６】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記第１のスクリーン・アプリケーションが別のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にないことを、前記アプリケーション・ステータス情報を用いて判定するステップと、
前記第１のスクリーン・デバイスに関連付けられた複数のカップリング・プロトコルが前記クライアント・デバイスに利用可能でないと判定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記クライアント・デバイスが前記クライアント・デバイスおよび前記制御サーバに利用可能なカップリング・プロトコルを用いて前記制御サーバと通信し、前記制御サーバが前記複数のカップリング・プロトコルのカップリング・プロトコルを用いて前記第１のスクリーン・アプリケーションを通信するように、制御サーバを通じて間接的に前記第１のスクリーン・アプリケーションと接続するステップ
を含む、請求項１に記載の方法。
【請求項７】
探索情報を前記第１のスクリーン・デバイスから受信するステップであって、前記探索情報は、前記第１のスクリーン・アプリケーションを一意に識別するアプリケーション識別子および前記第１のスクリーン・デバイスに接続するために使用されうるカップリング・プロトコルのリストを含む、ステップと、
デバイス・リストを前記受信された探索情報で更新するステップと、
前記第１のスクリーン・アプリケーションが以前に手動で幾つかの他のクライアント・デバイスとペアリングされていることを示すペアリング情報を制御サーバに要求するステップと、
前記デバイス・リストを前記受信されたペアリング情報で更新するステップと、
前記更新されたデバイス・リストを用いてデバイス重複排除を実施して、前記第１のスクリーン・デバイスに対応するビデオ・ディスプレイ・セッション・インタフェース内に単一のデバイス・エントリを生成するステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
クライアント・デバイスの第１のスクリーン・デバイスとの相互運用性を促進するための実行可能なコンピュータ・プログラム命令を格納した非一時的コンピュータ可読記憶媒体であって、前記命令は、
クライアント・デバイスで動作する第２のスクリーン・アプリケーションにより、ユーザ・インタフェース内のデバイスの重複排除されたリストを表示するステップであって、各列挙されたデバイスは１つまたは複数のカップリング・プロトコルに関連付けられる、ステップと、
前記ユーザ・インタフェースを介してビデオ・ディスプレイ・セッションに一緒に参加する列挙されたデバイスの選択を受信するステップと、
前記選択されたデバイスの第１のスクリーン・アプリケーションに対するアプリケーション・ステータス情報を制御サーバから取得するステップであって、前記アプリケーション・ステータス情報は、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあるかどうかを示す、ステップと、
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいてカップリング方法を決定するステップと、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップと、
を含むステップを実施するように実行可能である、非一時的コンピュータ可読記憶媒体。
【請求項９】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記アプリケーション・ステータス情報を用いて、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあると判定するステップであって、前記アプリケーション・ステータス情報はさらに、前記既存のビデオ・ディスプレイ・セッションで使用される前記１つまたは複数のカップリング・プロトコルの特定のカップリング・プロトコルを示す、ステップと、
前記特定のカップリング・プロトコルが前記クライアント・デバイスに利用可能でないと判定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記クライアント・デバイスが前記クライアント・デバイスおよび前記制御サーバに利用可能なカップリング・プロトコルを用いて前記制御サーバと通信し、前記制御サーバが前記特定のカップリング・プロトコルを用いて前記第１のスクリーン・アプリケーションと通信するように、制御サーバを通じて間接的に前記第１のスクリーン・アプリケーションと接続するステップ
を含む、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１０】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記アプリケーション・ステータス情報を用いて、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあると判定するステップであって、前記アプリケーション・ステータス情報はさらに、前記既存のビデオ・ディスプレイ・セッションで使用される前記１つまたは複数のカップリング・プロトコルの特定のカップリング・プロトコルを示す、ステップと、
前記特定のカップリング・プロトコルは前記クライアント・デバイスに利用可能であると判定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記特定のカップリング・プロトコルを用いて前記既存のビデオ・ディスプレイ・セッションに接続するステップ
を含む、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記第１のスクリーン・アプリケーションが別のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にないことを、前記アプリケーション・ステータス情報を用いて判定するステップと、
前記クライアント・デバイスおよび前記第１のスクリーン・デバイスに利用可能である前記１つまたは複数のカップリング・プロトコルの好適なカップリング・プロトコルを決定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記好適なカップリング・プロトコルを用いて第１のスクリーン・アプリケーションに接続するステップ
を含む、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記好適なカップリング・プロトコルは、前記複数のカップリング・プロトコルの他のカップリング・プロトコルよりも多くの制御を前記ユーザに提供する前記クライアント・デバイスおよび前記第１のスクリーン・デバイスの両方に利用可能な複数のカップリング・プロトコルのカップリング・プロトコルである、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいて前記カップリング方法を決定するステップはさらに、
前記第１のスクリーン・アプリケーションが別のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にないことを、前記アプリケーション・ステータス情報を用いて判定するステップと、
前記第１のスクリーン・デバイスに関連付けられた複数のカップリング・プロトコルが前記クライアント・デバイスに利用可能でないと判定するステップと、
を含み、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続するステップはさらに、
前記クライアント・デバイスが前記クライアント・デバイスおよび前記制御サーバに利用可能なカップリング・プロトコルを用いて前記制御サーバと通信し、前記制御サーバが前記複数のカップリング・プロトコルのカップリング・プロトコルを用いて前記第１のスクリーン・アプリケーションを通信するように、制御サーバを通じて間接的に前記第１のスクリーン・アプリケーションと接続するステップ
を含む、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１４】
探索情報を前記第１のスクリーン・デバイスから受信するステップであって、前記探索情報は、前記第１のスクリーン・アプリケーションを一意に識別するアプリケーション識別子および前記第１のスクリーン・デバイスに接続するために使用されうるカップリング・プロトコルのリストを含む、ステップと、
デバイス・リストを前記受信された探索情報で更新するステップと、
前記第１のスクリーン・アプリケーションが以前に手動で幾つかの他のクライアント・デバイスとペアリングされていることを示すペアリング情報を制御サーバに要求するステップと、
前記デバイス・リストを前記受信されたペアリング情報で更新するステップと、
前記更新されたデバイス・リストを用いてデバイス重複排除を実施して、前記第１のスクリーン・デバイスに対応するビデオ・ディスプレイ・セッション・インタフェース内に単一のデバイス・エントリを生成するステップと、
をさらに含む、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１５】
クライアント・デバイスの第１のスクリーン・デバイスとの相互運用性を促進するためのデバイスであって、
モジュールを実行するように構成されたプロセッサと、
第２のスクリーン・アプリケーションの前記モジュールを格納するメモリであって、前記モジュールは、
ユーザ・インタフェース内のデバイスの重複排除されたリストを提供し、
前記ユーザ・インタフェースを介してビデオ・ディスプレイ・セッションに一緒に参加する列挙されたデバイスの選択を受信する
ように構成されたインタフェース・モジュールであって、各列挙されたデバイスは１つまたは複数のカップリング・プロトコルに関連付けられた、インタフェース・モジュールと、
前記選択されたデバイスの第１のスクリーン・アプリケーションに対するアプリケーション・ステータス情報を制御サーバから取得するように構成された探索モジュールであって、前記アプリケーション・ステータス情報は、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあるかどうかを示す、探索モジュールと、
前記示されたアプリケーション・ステータスおよび前記クライアント・デバイスに利用可能なカップリング・プロトコルおよび前記第１のスクリーン・アプリケーションの前記１つまたは複数のカップリング・プロトコルに基づいてカップリング方法を決定し、
前記決定されたカップリング方法を介して前記第１のスクリーン・アプリケーションに接続する
ように構成されたカップリング・モジュールと、
を備える、メモリと、
を備える、デバイス。
【請求項１６】
前記カップリング・モジュールはさらに、
前記アプリケーション・ステータス情報を用いて、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあると判定し、
特定のカップリング・プロトコルが前記クライアント・デバイスに利用可能でないと判定し、
前記クライアント・デバイスが前記クライアント・デバイスおよび前記制御サーバに利用可能なカップリング・プロトコルを用いて前記制御サーバと通信し、前記制御サーバが前記特定のカップリング・プロトコルを用いて前記第１のスクリーン・アプリケーションと通信するように、制御サーバを介して間接的に前記第１のスクリーン・アプリケーションに接続する
ように構成され、
前記アプリケーション・ステータス情報はさらに、前記既存のビデオ・ディスプレイ・セッションで使用される前記１つまたは複数のカップリング・プロトコルの前記特定のカップリング・プロトコルを示す、
請求項１５に記載のデバイス。
【請求項１７】
前記カップリング・モジュールはさらに、
前記アプリケーション・ステータス情報を用いて、前記第１のスクリーン・アプリケーションが第２のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にあると判定し、
特定のカップリング・プロトコルは前記クライアント・デバイスに利用可能であると判定し、
前記特定のカップリング・プロトコルを用いて前記既存のビデオ・ディスプレイ・セッションに接続する
ように構成され、
前記アプリケーション・ステータス情報はさらに、前記既存のビデオ・ディスプレイ・セッションで使用される前記１つまたは複数のカップリング・プロトコルの前記特定のカップリング・プロトコルを示す、
請求項１５に記載のデバイス。
【請求項１８】
前記カップリング・モジュールはさらに、
前記第１のスクリーン・アプリケーションが別のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にないことを、前記アプリケーション・ステータス情報を用いて判定し、
前記クライアント・デバイスおよび前記第１のスクリーン・デバイスに利用可能である前記１つまたは複数のカップリング・プロトコルの好適なカップリング・プロトコルを決定し、
前記好適なカップリング・プロトコルを用いて第１のスクリーン・アプリケーションに接続する
ように構成される、請求項１５に記載のデバイス。
【請求項１９】
前記カップリング・モジュールはさらに、
前記第１のスクリーン・アプリケーションが別のクライアント・デバイスとの既存のビデオ・ディスプレイ・セッション内にないことを、前記アプリケーション・ステータス情報を用いて判定し、
前記第１のスクリーン・デバイスに関連付けられた複数のカップリング・プロトコルが前記クライアント・デバイスに利用可能でないと判定し、
前記クライアント・デバイスが前記クライアント・デバイスおよび前記制御サーバに利用可能なカップリング・プロトコルを用いて前記制御サーバと通信し、前記制御サーバが前記複数のカップリング・プロトコルのカップリング・プロトコルを用いて前記第１のスクリーン・アプリケーションを通信するように、制御サーバを介して間接的に前記第１のスクリーン・アプリケーションに接続する
ように構成される、請求項１５に記載のデバイス。
【請求項２０】
前記探索モジュールはさらに、
探索情報を前記第１のスクリーン・デバイスから受信し、
デバイス・リストを前記受信された探索情報で更新し、
前記第１のスクリーン・アプリケーションが以前に手動で幾つかの他のクライアント・デバイスとペアリングされていることを示すペアリング情報を制御サーバに要求する、
前記デバイス・リストを前記受信されたペアリング情報で更新し、
前記更新されたデバイス・リストを用いてデバイス重複排除を実施して、前記第１のスクリーン・デバイスに対応するビデオ・ディスプレイ・セッション・インタフェース内に単一のデバイス・エントリを生成する
ように構成され、
前記探索情報は、前記第１のスクリーン・アプリケーションを一意に識別するアプリケーション識別子および前記第１のスクリーン・デバイスに接続するために使用されうるカップリング・プロトコルのリストを含む、
請求項１５に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
説明する実施形態は一般にクライアント・デバイスに対する探索およびカップリング・プロトコルの相互運用性に関し、より具体的には第１のスクリーン・デバイスとのビデオ・セッションを確立する際のクライアント・デバイス相互運用性を促進することに関する。
【背景技術】
【０００２】
第２のデバイス上のアプリケーション（例えば、ラップトップ）を介して第１のデバイス上のアプリケーション（例えば、テレビ）の探索および／または開始に使用される、幾つかのプロトコル（例えば、単純なサービス探索プロトコルベースの探索および開始（「ＤＩＡＬ」）、マルチキャスト・ドメインネーム・システム・ベースのＣＡＳＴＶ２ＡＰＩ（「ＣＡＳＴ」）等）がある。ＣＡＳＴは、ANDROID（登録商標）および／またはＧＯＯＧＬＥデバイスに対する幾つかの通信の基盤となる非公開プロトコルである。当該アプリケーションのユーザが当該プロトコル仕様を実装することが、例えば、ラップトップ上のブラウザにより表示されているコンテンツを、テレビ上のアプリケーションを介して表示させることができる。これらのプロトコルを用いたコンテンツの表示には、デバイス複製およびプロトコル相互運用性の問題を含む、幾つかの問題がある。
【０００３】
デバイス複製は、利用可能なディスプレイ・デバイスとしてのデバイスを発見することに対して、発見されたデバイスが複数回列挙されるという問題である。幾つかの事例では、デバイスは、当該発見デバイスとのビデオ・セッションを確立するための複数のプロトコルをサポートする。これらのケースでは、当該デバイスを、当該デバイスが発見される各経路を介して、かつ、恐らくは異なる名前でユーザに提供することができる。例えば、ラップトップ上のアプリケーションはＤＩＡＬ探索を使用してテレビを発見し、次いでＤＩＡＬを使用してテレビ上のアプリケーションを開始することができる。しかしながら、テレビは別の探索プロトコル（例えば、ＣＡＳＴ）をサポートすることもでき、かつ／または、ラップトップと以前に手動でペアリングされうる。手動ペアリングは、例えばテレビによりラップトップに提供されるかまたはラップトップによりテレビに提供されるパスコードを入力したときに発生し、この結果、ラップトップがBLUETOOTH（登録商標）接続を介してテレビに無線で接続される。本例では、追加のステップなしに、幾つかのテレビがユーザに３回、恐らく異なる名前で示されるであろう。この状況は混乱をもたらすものであり、ユーザ・エクスペリエンスに影響を及ぼし次善のプロトコルの選択をもたらしうる。
【０００４】
プロトコル相互運用性は、特にデバイスが２つの他のデバイスの間の既存のセッションに参加するのを試みる文脈で発生する別の問題である。この問題に対する根底となる原因は、特定のプロトコルを用いて開始されたセッションに別のプロトコルを用いて参加できず、幾つかのデバイスにおいて探索モジュールが独立に機能することである。異なるプロトコルを用いて既存のセッションに参加するのを試みるのは、失敗するか、または、現在のセッションの混乱および新たなセッションの生成をもたらしうる。例えば、テレビはＤＩＡＬおよびＣＡＳＴプロトコルの両方をサポートすることがあり、デバイスＡはＤＩＡＬのみをサポートすることがあり、デバイスＢはＤＩＡＬおよびＣＡＳＴの両方をサポートすることがある。デバイスＡはＤＩＡＬプロトコルを用いてテレビとのセッションを生成し、後の何らかの時点で、デバイスＢがＣＡＳＴを用いて当該セッションへの参加を試み、当該セッションの混乱をもたらす。当該混乱は、テレビとの当該セッションがＤＩＡＬおよびＣＡＳＴの両方で同時に動作できないことに起因する。
【発明の概要】
【課題を解決するための手段】
【０００５】
様々な実施形態では、制御サーバは、第２のスクリーン・デバイス上（例えば、ラップトップ）で動作している第２のスクリーン・アプリケーションの第１のスクリーン・デバイス（例えば、テレビ）上で動作している第１のスクリーン・アプリケーションとの相互運用性を促進する。制御サーバは、第１のスクリーン・アプリケーションが以前に１つまたは複数の第２のスクリーン・デバイスに手動でペアリングされているかどうかを示すペアリング情報を維持する。制御サーバはまた、第１のスクリーン・アプリケーションが１つまたは複数の第２のスクリーン・デバイスとのビデオ・ディスプレイ・セッションに参加しているかどうか、そうである場合、どのカップリング・プロトコルが当該ビデオ・セッションで使用されているかを示す情報を維持する。
【０００６】
第２のスクリーン・デバイス上で動作している第２のスクリーン・アプリケーションは、各デバイスから受信された探索情報および制御サーバから受信されたペアリング情報を用いた接続のために利用可能なデバイスの重複排除されたリストを生成する。デバイスの当該重複排除されたリストは、例えば、第１のスクリーン・デバイス、第２のスクリーン・デバイス、またはそれらの幾つかの組合せを含んでもよい。第２のスクリーン・アプリケーションは、ユーザ・インタフェースを介してデバイスの当該重複排除されたリストを第２のスクリーン・デバイスのユーザに提供する。
【０００７】
幾つかの実施形態では、ユーザは、ユーザ・インタフェースを介して、ビデオ・ディスプレイ・セッションにともに参加する列挙された第１のスクリーン・デバイスを選択する。第２のスクリーン・アプリケーションは、選択されたデバイスの第１のスクリーン・アプリケーションに対する制御サーバからアプリケーション情報を取得する。アプリケーション・ステータス情報は、第１のスクリーン・アプリケーションが幾つかの他の第２のスクリーン・デバイスとの既存のビデオ・ディスプレイ・セッション内にあるかどうかを示す。第２のスクリーン・アプリケーションは、示されたアプリケーション・ステータスおよび第２のスクリーン・デバイスに利用可能なカップリング・プロトコルおよび第１のスクリーン・アプリケーションの１つまたは複数のカップリング・プロトコルに基づいてカップリング方法を決定する。
【０００８】
当該アプリケーション・ステータスが、第１のスクリーン・アプリケーションが幾つかの他の第２のスクリーン・デバイスとの既存のセッション内にあること、および、当該セッションが特定のカップリング・プロトコルを使用していることを示す諸実施形態では、第２のスクリーン・アプリケーションは、当該特定のカップリング・プロトコルもまた第２のスクリーン・デバイスによりサポートされるかどうかを判定する。サポートされる場合、第２のスクリーン・デバイスは当該特定のカップリング・プロトコルを介して既存のセッションに接続する。そうでない場合、第２のスクリーン・デバイスは既存のセッションに制御サーバを介して間接的に接続する。第２のスクリーン・デバイスおよび制御サーバは、第２のスクリーン・デバイスによりサポートされるカップリング・プロトコルを用いて通信し、制御サーバおよび第１のスクリーン・デバイスは、既存のセッションで使用されている特定のカップリング・プロトコルを介して接続する。
【図面の簡単な説明】
【０００９】
【図１】クライアント・デバイスの第１のスクリーン・デバイスとの相互運用性を促進するための環境の１実施形態を示すブロック図である。
【図２】１実施形態に従う第１のスクリーン・デバイスを発見し重複排除するための方法の対話図である。
【図３】１実施形態に従う第１のスクリーン・アプリケーションと１つまたは複数の第２のスクリーン・アプリケーションの間のセッションを確立するための方法の対話図である。
【図４】１実施形態に従う、図１の第２のスクリーン・アプリケーションの詳細な図を示すブロック図である。
【図５】１実施形態に従う、デバイス重複排除をデバイス探索の一部として実施するプロセスを示す流れ図である。
【図６】１実施形態に従う、第１のスクリーン・アプリケーションと第２のスクリーン・アプリケーションの間のセッションを確立するためのプロセスを示す流れ図である。
【図７】図１に示すエンティティを実装するための例示的なコンピュータを示すブロック図である。
【発明を実施するための形態】
【００１０】
図面および以下の説明では特定の実施形態を例示によりのみ説明する。当業者は、以下の説明から、本明細書で示した構造および方法の代替的な実施形態を、本明細書で説明した原理から逸脱することなく使用してもよいことを容易に認識するであろう。次に、幾つかの実施形態を詳細に参照する。その例は添付図面で示されている。適用可能な場合は常に、図面において同様なまたは同じ参照番号を使用してもよく、同じまたは同様な機能を示してもよいことに留意されたい。
【００１１】
図１は、クライアント・デバイス１００、１０５の第１のスクリーン・デバイス１２０との相互運用性を促進するための環境の１実施形態を示すブロック図である。当該環境は、クライアント・デバイス１００およびクライアント・デバイス１０５を含み、夫々はネットワーク１１０により第１のスクリーン・デバイス１２０と制御サーバ１３０に接続される。ここで、２つのクライアント・デバイスのみ、１つのスクリーン・デバイスおよび１つの制御サーバが図示されているが、これらのエンティティの各々の複数のインスタンスがあってもよい。例えば、１つまたは複数の制御サーバ１３０と通信する何千何百ものクライアント・デバイス１００、１０５および第１のスクリーン・デバイス１２０がありうる。
【００１２】
ネットワーク１１０は、クライアント・デバイス１００、１０５、第１のスクリーン・デバイス１２０、および制御サーバ１３０の間の通信インフラを提供する。ネットワーク１１０は一般にインターネットであるが、任意のネットワークであってもよい。当該任意のネットワークには、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、モバイル有線または無線ネットワーク、プライベート・ネットワーク、または仮想プライベート・ネットワーク、またはそれらの幾つかの組合せが含まれるがこれらに限られない。例えば、クライアント・デバイス１００、１０５および第１のスクリーン・デバイス１２０は、例えば、ＷＩＦＩカップリングを用いて互いと通信し、インターネット・カップリングを用いて制御サーバ１３０と通信してもよい。
【００１３】
第１のスクリーン・デバイス１２０およびクライアント・デバイス１００、１０５は、非一時的コンピュータ可読媒体に格納されユーザが媒体コンテンツを視聴し消費できるようにする、コンピュータ・プログラム・モジュール、例えば、ウェブ・ブラウザまたは他のクライアント・アプリケーションを実行するコンピューティング・デバイスである。第１のスクリーン・デバイス１２０およびクライアント・デバイス１００は、ANDROID（登録商標）「登録商標」またはＡＰＰＬＥ「登録商標」ＩＯＳ「登録商標」のようなオペレーティング・システムを有するスマートフォンのようなコンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、デスクトップ・コンピュータ、テレビ、ゲーム・コンソール、またはデジタル・コンテンツをユーザに提供できる任意の他のタイプのネットワーク可能デバイスである。説明の簡単さのため、ここでは、限定ではなく、第１のスクリーン・デバイス１２０がテレビであると想定する。典型的な第１のスクリーン・デバイス１２０および／またはクライアント・デバイス１００、１０５は、音（例えば、スピーカおよびマイクロフォン）および画像を入力し出力するのに必要なハードウェアおよびソフトウェアを含み、（例えば、Ｗｉ−Ｆｉおよび／または４Ｇまたは他の無線電気通信標準を介して）ネットワーク１１０に接続される。
【００１４】
第１のスクリーン・デバイス１２０およびクライアント・デバイス１００、１０５は、１つまたは複数のカップリング・プロトコルを用いてセッションを確立するために互いに接続される。カップリング・プロトコルは、他のローカル・デバイス（例えば、クライアント・デバイス１００、１０５および／または第１のスクリーン・デバイス１２０）を発見し、かつ／または、セッションに参加（例えば、セッションを生成）するために、発見されたローカル・デバイスに接続するために使用される機構である。カップリング・プロトコルは、例えば、ＤＩＡＬ、ＣＡＳＴ、手動ペアリング、ＡＩＲＰＬＡＹ、ＳＭＡＲＴＧＬＡＳＳ、ＭＩＲＡＣＡＳＴ、（一般にホーム・ネットワーク上で）アプリケーションを発見し開始するための幾つかの他の機構、またはそれらの幾つかの組合せを含んでもよい。第１のスクリーン・デバイス１２０およびクライアント・デバイス１００、１０５は特定のタイプのカップリング・プロトコルと動作可能であり、幾つかの場合、第１のスクリーン・デバイス１２０およびクライアント・デバイス１００、１０５と動作可能なカップリング・プロトコルのタイプは異なってもよい。例えば第１のスクリーン・デバイス１２０はＤＩＡＬおよびＣＡＳＴと動作可能であってもよく、クライアント・デバイス１００はＣＡＳＴと動作可能であってもよく、クライアント・デバイス１０５はＤＩＡＬと動作可能であってもよい。
【００１５】
第１のスクリーン・デバイス１２０は、接続されたクライアント・デバイスから制御しうる第１のスクリーン・アプリケーション１４０を含む。例えば、第１のスクリーン・アプリケーション１４０とのセッションにおいてクライアント・デバイス１００を動作させるユーザは、クライアント・デバイス１００を用いて、クライアント・デバイス１００に表示されたコンテンツを第１のスクリーン・アプリケーション１４０により表示させうる。第１のスクリーン・アプリケーション１４０はアプリケーション識別子を生成する。当該アプリケーション識別子は、第１のスクリーン・アプリケーション１４０を第１のスクリーン・デバイス１２０のアプリケーションであるとして識別する。第１のスクリーン・アプリケーション１４０は第１のスクリーン・デバイス１２０への第１のスクリーン・アプリケーション１４０のインストールの一部として当該アプリケーション識別子を生成してもよい。当該アプリケーション識別子を、例えば、乱数生成器、デバイス識別子のハッシュ、第１のスクリーン・アプリケーション１４０等を曖昧さなく特定する識別子を生成する幾つかの他の方法を用いて、生成してもよい。探索要求を受信したことに応答して、第１のスクリーン・アプリケーション１４０は、当該アプリケーション識別子および利用可能な接続プロトコルを当該要求クライアント・デバイスに提供する。
【００１６】
さらに、クライアント・デバイスとのセッションをセットアップする際、第１のスクリーン・アプリケーション１４０は、当該セッションを説明する（例えば、セッション、当該セッションで使用されるカップリング・プロトコル等を識別する）そのアプリケーション・ステータス情報を制御サーバ１３０に登録する。クライアント・デバイス１００、１０５は後に第１のスクリーン・アプリケーション１４０のアプリケーション・ステータスを制御サーバ１３０に要求し、当該情報を使用して、第１のスクリーン・アプリケーション１４０とのセッションに参加する好適な方法を決定してもよい。したがって、当該セッションと動作不能な接続プロトコルを用いて既存のセッションに参加するリスクが除去される。
【００１７】
クライアント・デバイス１００は、第２のスクリーン・アプリケーション１６０と同様な機能を有する第２のスクリーン・アプリケーション１５０を含む。第２のスクリーン・アプリケーション１５０は、例えば、ＷＩＦＩ、BLUETOOTH（登録商標）等を介してクライアント・デバイス１００に接続するために利用可能なデバイスを発見する。当該探索プロセスの一部として、第２のスクリーン・アプリケーション１５０は、当該発見されたデバイスの任意の以前の手動ペアリングを記述する情報を制御サーバ１３０から取得する。手動ペアリングは、ユーザにより手動で実施された、第２のスクリーン・アプリケーション１５０および発見されたデバイスの間の接続である。例えば、ユーザは、２つのデバイスを探索モードに配置し、次いで当該デバイスのうち１つにより他のデバイスに提供されたパスコードを入力してもよく、これが、当該デバイスをペアリングさせる。第２のスクリーン・アプリケーション１５０は発見されたデバイスのデバイス・リストを維持する。第２のスクリーン・アプリケーション１５０は、当該発見されたデバイス（例えば、アプリケーション識別子、カップリング・プロトコル等）に関する情報で当該デバイス・リストを更新する。第２のスクリーン・アプリケーション１５０はまた、発見されたデバイスの任意の以前の手動ペアリングを記述する制御サーバ１３０からの情報で当該デバイス・リストを更新する。しばしば、第１のスクリーン・アプリケーション１４０は、複数のカップリング・プロトコルおよび／または手動ペアリングと関連付けられてもよい（即ち、それらにより発見可能であってもよい）。更新されたデバイス・リストはこれらのカップリング・プロトコルおよび手動ペアリングの各々に対するエントリを示し、同一の第１のスクリーン・アプリケーション１４０に対して当該更新されたデバイス・リスト内に複数のエントリをもたらす。第２のスクリーン・アプリケーション１５０は、例えば、アプリケーション識別子ごとに、第２のスクリーン・アプリケーション１５０とインタフェースするために使用されるセッション・インタフェースにおいて、当該デバイス・リスト内のエントリをアプリケーション識別子により収集し、次いで単一のデバイス・エントリを生成することによって、重複排除を当該更新されたデバイス・リストに実施する。幾つかの実施形態では、ユーザは、第１のスクリーン・アプリケーション１４０とのセッションを確立し、かつ／または、第１のスクリーン・アプリケーション１４０との既存のセッションに参加するようにクライアント・デバイス１００に要求するために当該エントリを選択することができる。
【００１８】
当該セッション・インタフェースは、第２のスクリーン・アプリケーション１５０とインタフェースするためにユーザが使用するグラフィカル・ユーザ・インタフェースである。例えば、ユーザは、他のデバイスを発見し、当該セッション・インタフェースを用いて特定の第１のスクリーン・デバイス１２０等に接続するように第２のスクリーン・アプリケーション１５０に指示してもよい。第２のスクリーン・アプリケーション１５０は、発見されたデバイスおよび／またはこれらのデバイス上で動作しているアプリケーションのリストを（例えば、当該セッション・インタフェースを介して）提供する。発見されたデバイスのリストは、当該デバイス・リストの重複排除により生成されたエントリを用いて生成される。したがって、当該リスト内の各エントリは特定のデバイス上で動作している特定のアプリケーションに対応する。
【００１９】
第２のスクリーン・アプリケーション１５０はユーザからの選択を受信する。当該選択は、当該選択に関連付けられた第１のスクリーン・デバイス１２０とのセッションに参加する希望を示す。例えば、ユーザは、第１のスクリーン・デバイス１２０上で動作している第１のスクリーン・アプリケーション１４０に対応する発見されたデバイスのリスト内のエントリを選択してもよい。第２のスクリーン・アプリケーション１５０は、当該デバイスが既に既存のセッション内にあるかどうかを判定するように制御サーバ１３０に問い合せ、そうである場合、既存のセッションに関連付けられたカップリング・プロトコルは何かを問い合わせる。第２のスクリーン・アプリケーション１５０は、第１のスクリーン・デバイス１２０が既存のセッション内にあるかどうかおよびクライアント・デバイス１００および第１のスクリーン・デバイス１２０に利用可能なカップリング・プロトコルに基づいて、クライアント・デバイス１００を第１のスクリーン・デバイス１２０に接続するためのカップリング方法を決定する。接続方法は、例えば、第１のスクリーン・アプリケーション１４０への直接カップリングまたは制御サーバ１３０を介した第１のスクリーン・アプリケーション１４０への間接カップリングであってもよい。第２のスクリーン・アプリケーション１５０はついで、決定されたカップリング方法に基づいて第１のスクリーン・アプリケーション１４０に接続する。第１のスクリーン・アプリケーション１４０に接続されると、第２のスクリーン・アプリケーション１５０のユーザは、第１のスクリーン・アプリケーション１５０により提供されたコンテンツに対する幾つかの制御を有することができる。例えば、ユーザは、第２のスクリーン・アプリケーション１５０により提供されているビデオを、第１のスクリーン・アプリケーション１４０により提供させてもよい。
【００２０】
制御サーバ１３０は、第１のスクリーン・アプリケーションおよびクライアント・デバイスに関する情報を維持する。当該維持される情報は、例えば、ペアリング情報およびアプリケーション・ステータスを含む。ペアリング情報は、第１のスクリーン・アプリケーション１４０と手動でペアリングされる任意のデバイス（例えば、クライアント・デバイス１００、１０５）を記述する。手動ペアリングは、ユーザが、第２のスクリーン・アプリケーションおよび第１のスクリーン・アプリケーション１４０の間の接続を手動で確立したときに発生する。制御サーバ１３０は、ペアリング情報を、例えば、第２のスクリーン・アプリケーション１５０、１６０および／または第１のスクリーン・アプリケーション１４０から受信してもよく、制御サーバ１３０は次いでデータベースを受信されたペアリング情報で更新する。アプリケーション・ステータスは、第１のスクリーン・アプリケーション１４０が既存のセッション内にあるかどうか、およびそうである場合、どのカップリング・プロトコルが既存のセッションで使用されているかを記述する。制御サーバ１３０は、アプリケーション・ステータス情報を第１のスクリーン・アプリケーション１４０から受信し、次いで制御サーバ１３０がデータベースを受信された情報で更新する。第２のスクリーン・アプリケーション（例えば、第２のスクリーン・アプリケーション１５０）からの要求を受信したことに応答して、制御サーバ１３０は、ペアリング情報、アプリケーション・ステータス情報、またはその両方を第２のスクリーン・アプリケーション１５０、１６０に提供する。
【００２１】
幾つかの実施形態では、制御サーバ１３０は、第２のスクリーン・アプリケーション１５０を第１のスクリーン・アプリケーション１４０に間接的に接続してセッションに参加する。上述のように、第１のスクリーン・デバイス１２０は、限定された１組のカップリング・プロトコルとの相互運用性を有する。クライアント・デバイス１００が第１のスクリーン・デバイス１２０に対して動作する同一のカップリング・プロトコルの少なくとも１つと動作可能でないケースでは、クライアント・デバイス１００は、制御サーバ１３０を介して第１のスクリーン・デバイス１２０に間接的に接続してもよい。当該事例では、クライアント・デバイス１００は、クライアント・デバイス１００および制御サーバ１３０の両方に利用可能なカップリング・プロトコルを用いて制御サーバ１３０と通信し、制御サーバ１３０は、第１のスクリーン・アプリケーション１４０および制御サーバ１３０の両方に利用可能な異なるカップリング・プロトコルを用いて第１のスクリーン・アプリケーション１４０と通信する。制御サーバ１３０は、実際に、クライアント・デバイス１００からの通信を、制御サーバ１３０により受理可能なフォーマットに変換し、その反対も成り立つ。したがって、第１のスクリーン・デバイス１２０および別のクライアント・デバイス（例えば、クライアント・デバイス１０５）の間の既存のセッションで使用される特定のカップリング・プロトコルと動作可能でないクライアント・デバイス１００は、当該特定のカップリング・プロトコルを用いて制御サーバ１３０を介して間接的に当該セッションに参加することができる。当該方式で既存のセッションに参加することにより、クライアント・デバイス１００は当該セッションの混乱なしに当該セッションに参加することができる。例えば、当該セッションで現在使用されているものと異なるカップリング・プロトコルを用いてセッションに参加するのを試みることが、現在のセッションを失敗させ、当該異なるカップリング・プロトコル等を用いて再開させる可能性がある
【００２２】
図２は探索プロセスをより詳細に示す対話図である。特に、図２は第１のスクリーン・デバイスを発見し重複排除するための方法の１実施形態の対話図である。様々な実施形態では、当該方法が、図２と関連して説明したものと異なるステップおよび／または追加のステップを含んでもよい。さらに、幾つかの実施形態では、当該ステップを図２と関連して説明したものと異なる順序で実施してもよい。
【００２３】
第１のスクリーン・デバイス１２０上で動作している第１のスクリーン・アプリケーション１４０は、第１のスクリーン・アプリケーション１４０に一意なアプリケーション識別子を生成する（２０５）。第１のスクリーン・アプリケーション１４０は、他の要求アプリケーションに対して発見可能なアプリケーション識別子を生成する（２１０）。
【００２４】
第２のスクリーン・アプリケーション１５０が探索要求を第１のスクリーン・アプリケーション１４０に送信する（２１５）。第２のスクリーン・アプリケーション１５０が、例えば、ローカル・エリア・ネットワークを介して当該探索要求を当該ネットワーク上のデバイスに送出してもよい。探索要求の受信に応答して、第１のスクリーン・アプリケーション１４０は探索情報を第２のスクリーン・アプリケーション１５０に提供する（２２０）。探索情報は、どのようにクライアント・デバイス（例えば、１００、１０５）が第１のスクリーン・アプリケーション１４０に接続しうるかを記述する情報である。探索情報は、例えば、当該アプリケーション識別子および第１のスクリーン・アプリケーション１４０等とのセッションを確立するために使用されうるカップリング・プロトコルのリストを含む。
【００２５】
第２のスクリーン・アプリケーション１５０は、受信された探索情報を用いてデバイス・リストを更新する。当該デバイス・リストは、第２のスクリーン・アプリケーション１５０が発見したデバイスのリストである。第２のスクリーン・アプリケーション１５０は、当該探索情報に関連付けられた全てのカップリング・プロトコルに対するデバイス・リストにエントリを追加する。したがって、単一のアプリケーション識別子に対して複数のエントリがあってもよい。例えば、当該探索情報がアプリケーション識別子Ｘ、およびカップリング・プロトコルＤＩＡＬおよびＣＡＳＴを含んだ場合、当該デバイス・リストは、第１のスクリーン・アプリケーション１４０に対する２つのエントリ（例えば、［アプリケーション識別子Ｘ：ＤＩＡＬ；アプリケーション識別子Ｘ：ＣＡＳＴ］）を含むであろう。
【００２６】
第２のスクリーン・アプリケーション１５０が、第１のスクリーン・アプリケーション１４０に対するペアリング情報を制御サーバ１３０に要求する（２３０）。ペアリング情報に対する当該要求は、第１のスクリーン・アプリケーション１４０に対するアプリケーション識別子を含む。ペアリング情報は、第１のスクリーン・アプリケーション１４０が手動でペアリングされているかもしれない任意のデバイス（例えば、クライアント・デバイス１０５）を記述する情報である。ペアリング情報に対する当該要求は当該アプリケーション識別子を含む。制御サーバ１３０は当該アプリケーション識別子を用いてペアリング情報を取り出す（２３５）。例えば、制御サーバ１３０が、様々な第１のスクリーン・アプリケーションに対する手動ペアリングのリストを格納するデータベースにアクセスしてもよく、関心のある第１のスクリーン・アプリケーションに関連付けられたアプリケーション識別子を用いて以前に第１のスクリーン・アプリケーションとペアリングされたクライアント・デバイスの特定のリストを取り出してもよい。制御サーバ１３０は当該ペアリング情報を第２のスクリーン・アプリケーション１５０に提供する（２４０）。
【００２７】
第２のスクリーン・アプリケーション１５０は、当該ペアリング情報を用いてデバイス・リストを更新する（２４５）。第２のスクリーン・アプリケーション１５０は、当該ペアリング情報で列挙された全ての以前の手動ペアリングに対するデバイス・リストにエントリを追加する。したがって、単一のアプリケーション識別子に対する複数のエントリがあってもよい。したがって、当該デバイス・リストが、特定のカップリング・プロトコルおよび／または手動ペアリングに対応する単一のアプリケーション識別子に対して複数のエントリを含んでもよい。
【００２８】
第２のスクリーン・アプリケーション１５０は当該デバイス・リスト内の項目の重複排除を実施する（２５０）。第２のスクリーン・アプリケーション１５０はアプリケーション識別子により当該デバイス・リスト内のエントリを収集し、次いで当該アプリケーション識別子と関連付けられたカップリング・プロトコルおよび／または手動ペアリングにマップされる単一のデバイス・エントリをセッション・インタフェース内に生成する。当該セッション・インタフェースは、クライアント・デバイスがそれにより他のデバイス（例えば、第１のスクリーン・デバイス１３０）上で動作しているアプリケーションを探索しかつ／または当該アプリケーションとのセッションを確立しうる、グラフィカル・ユーザ・インタフェースである。
【００２９】
第２のスクリーン・アプリケーション１５０は当該デバイス・エントリを含むセッション・インタフェースを提供する（２５５）。当該セッション・インタフェースは、発見されセッションを確立するために利用可能な、デバイス（例えば、第１のスクリーン・デバイス１３０）ごとに単一のデバイス・エントリを提供する。例えば、３つの異なるテレビが発見されておりセッションを確立するために利用可能であった場合、３つのデバイス・エントリがテレビごとに１つ存在するはずである。幾つかの実施形態では、デバイス・エントリの選択により、当該セッション・インタフェースは、第２のスクリーン・アプリケーション１５０が第１のスクリーン・アプリケーション１４０に接続するための異なるオプションを提供する。例えば、第１のスクリーン・アプリケーション１４０に対する当該デバイス・エントリの選択が、当該セッション・インタフェースに、第１のスクリーン・アプリケーション１４０に接続するために利用可能なプロトコルの列挙を提供させてもよい。
【００３０】
次に、デバイス間のセッションの確立の議論に移る。図３は、第１のスクリーン・アプリケーションと１つまたは複数の第２のスクリーン・アプリケーションの間のセッションを確立するための方法の１実施形態の対話図である。様々な実施形態では、当該方法が、図３と関連して説明したものと異なるステップおよび／または追加のステップを含んでもよい。さらに、幾つかの実施形態では、当該ステップを図３と関連して説明したのと異なる順序で実施してもよい。
【００３１】
第２のスクリーン・デバイス１０５上の第２のスクリーン・アプリケーション１６０は、第２のスクリーン・デバイス１０５にローカルな発見されたデバイスを提供する（３０５）。例えば、第２のスクリーン・アプリケーション１６０は、発見されたデバイスごとに単一のデバイス・エントリを示すセッション・インタフェースを提供してもよい。図２を参照して上述したプロセスを用いて、デバイス・エントリのリストが生成されてもよい。第２のスクリーン・アプリケーション１６０は、第１のスクリーン・アプリケーション１４０に関連付けられたデバイス・エントリの選択を受信する（３１０）。例えば、ユーザは、第１のスクリーン・デバイス１２０に対するデバイス・エントリを選択してもよく、第１のスクリーン・アプリケーション１４０は第１のスクリーン・デバイス１２０上で動作しているアプリケーションである。
【００３２】
第２のスクリーン・アプリケーション１６０は、第１のスクリーン・アプリケーション１４０に関連付けられたアプリケーション・ステータス情報を制御サーバ１３０に要求する（３１５）。アプリケーション・ステータス情報に対する当該要求は第１のスクリーン・アプリケーション１４０に関連付けられたアプリケーション識別子を含む。制御サーバ１３０は、当該アプリケーション識別子を用いてデータベースから当該アプリケーション・ステータス情報を取り出す。当該データベースは、第１のスクリーン・アプリケーションが既存のセッション内にあるかどうか、そうである場合、どのカップリング・プロトコルが既存のセッションで使用されているかを記述するアプリケーション・ステータス情報を維持する。制御サーバ１３０は、第１のスクリーン・アプリケーション１４０に対するアプリケーション・ステータスを第２のスクリーン・アプリケーション１６０に提供する（３２０）。
【００３３】
第２のスクリーン・アプリケーション１６０は、幾つかの他のクライアント・デバイスとの既存のセッションがあるかどうかを、当該受信されたアプリケーション・ステータス情報を用いて決定する（３２５）。既存のセッションがない場合、第２のスクリーン・アプリケーション１６０は、第１のスクリーン・アプリケーション１４０とのセッションを確立する（３３０）。
【００３４】
幾つかの事例では、やはりクライアント・デバイス１０５によりサポートされた第１のスクリーン・デバイス１２０によりサポートされる複数のカップリング・プロトコルがあってもよい。幾つかの実施形態では、第２のスクリーン・アプリケーション１６０は、順位付けられたカップリング・プロトコルのテーブルを含む。幾つかの実施形態では、当該カップリング・プロトコルは、第２のスクリーン・アプリケーション１６０の管理者により順位付けられる。当該管理者は当該カップリング・プロトコルを任意の順序で順位付けてもよい。幾つかの実施形態では、当該カップリング・プロトコルが、当該カップリング・プロトコルがユーザに提供したセッション上の制御の量により順位づけられてもよい。例えば、ＣＡＳＴはＤＩＡＬより多い音量調節制御を提供するので、当該テーブルはＣＡＳＴをＤＩＡＬより高く順位付けるはずである。幾つかの実施形態では、第２のスクリーン・アプリケーション１６０は、クライアント・デバイス１０５および第１のスクリーン・デバイス１２０ＣＡＳＴＣＡＳＴの両方に利用可能なテーブル内の最高ランクのカップリング・プロトコルである好適なカップリング・プロトコルを選択する。他の実施形態では、第２のスクリーン・アプリケーション１６０は、セッションを確立するために使用されるカップリング・プロトコルを選択するようにユーザに促してもよい。
【００３５】
セッションを確立する際のステップは一般にカップリング・プロトコル固有であるが、しかし、選択されたカップリング・プロトコルに関わらず、第１のスクリーン・アプリケーション１４０は、第１のスクリーン・アプリケーション１４０が第２のスクリーン・アプリケーション１６０とのセッション内にありかつ当該セッションが特定のカップリング・プロトコルを用いて開始されたことを示すアプリケーション・ステータス情報を制御サーバ１３０に提供する（３３５）。制御サーバ１３０はついで、第１のスクリーン・アプリケーション１２０に関連付けられたアプリケーション・ステータス情報を、受信されたアプリケーション・ステータス情報で更新する（３４０）。例えば、制御サーバ１３０が、第１のスクリーン・アプリケーション１４０のアプリケーション識別子に関連付けられたデータベース・エントリを、受信されたアプリケーション・ステータス情報で更新してもよい。
【００３６】
幾つかの実施形態では、第２のスクリーン・アプリケーション１６０は、カップリング・プロトコルを介して幾つかの他のクライアント・デバイス（例えば、第２のスクリーン・アプリケーション１５０）との既存のセッション３４５があると、制御サーバ１３０からのアプリケーション・ステータス情報を用いて判定する。第２のスクリーン・デバイス１６０は、当該カップリング・プロトコルがクライアント・デバイス１０５にも利用可能である（即ち、当該カップリング・プロトコルがクライアント・デバイス１００によりサポートされる）かどうかを決定する（３５０）。当該カップリング・プロトコルがサポートされる実施形態では、第２のスクリーン・アプリケーション１５０は、当該カップリング・プロトコルを用いて第１のスクリーン・アプリケーション１４０に接続する（３５５）。第１のスクリーン・アプリケーション１４０への接続は、既存のセッション３４５で使用される同一のプロトコルを使用するので、第２のスクリーン・アプリケーション１５０は、既存のセッション３４５を混乱させること（例えば、故障を生じさせること、当該セッションを再開させること等）なしに既存のセッション３４５に接続することができる（３５５）。
【００３７】
当該カップリング・プロトコルが利用可能でない（即ち、クライアント・デバイス１００によりサポートされない）幾つかの実施形態では、第２のスクリーン・アプリケーション１５０は当該セッションに制御サーバ１３０を介して接続する。制御サーバ１３０へのカップリング３６０は、クライアント・デバイス１００によりサポートされる幾つかの他のプロトコルを介して行われる。制御サーバ１３０はついで、既存のセッション３４５で使用されるカップリング・プロトコルを用いて第１のスクリーン・アプリケーションに接続する。制御サーバ１３０は当該セッションに対するカップリング・プロトコルを用いて既存のセッション３４５に接続するので、制御サーバ１３０は、第２のスクリーン・アプリケーション１５０を、制御サーバ１３０を介して、混乱なしに既存のセッションに効果的に参加させることができる。
【００３８】
第１のスクリーン・アプリケーション１４０と別のクライアント・デバイスの間に既存のセッションがない幾つかの事例では（図３には示さず）、クライアント・デバイス１０５に利用可能なカップリング・プロトコルが第１のスクリーン・デバイス１２０に利用可能であるカップリング・プロトコルと異なる。したがって、クライアント・デバイス１０５は、第１のスクリーン・アプリケーション１４０に直接接続し第１のスクリーン・アプリケーション１４０とのセッションを確立することができない。幾つかの実施形態では、クライアント・デバイス１０５は、制御サーバ１３０を介して間接的に第１のスクリーン・アプリケーション１４０に接続する。例えば、クライアント・デバイス１０５はクライアント・デバイス１０５および制御サーバ１３０に利用可能なカップリング・プロトコルを用いて制御サーバ１３０と通信し、制御サーバ１３０は、クライアント・デバイス１０５から受信された情報を、第１のスクリーン・デバイスによりサポートされるカップリング・プロトコルと互換なフォーマットに変換し、当該カップリング・プロトコルを用いて第１のスクリーン・アプリケーションと通信する。
【００３９】
次に第２のスクリーン・アプリケーション１５０の構造の議論に移ると、図４は、１実施形態に従う第２のスクリーン・アプリケーション１５０内のモジュールの詳細な図を示すブロック図である。第２のスクリーン・アプリケーション１５０の幾つかの実施形態は、ここで説明したのと異なるモジュールを有する。同様に、当該機能を、ここで説明したのと異なる方式でモジュール間で配分することができる。第２のスクリーン・アプリケーション１５０は、デバイス・データベース４１０、探索モジュール４２０、重複排除モジュール４３０、インタフェース・モジュール４４０、およびカップリング・モジュール４５０を含むモジュールから成る。さらに、以下の議論は第２のスクリーン・アプリケーション１５０の文脈で行われるが、これは第２のスクリーン・アプリケーション１６０にも等しく適用される。
【００４０】
デバイス・データベース４１０は、第１のスクリーン・デバイス１２０上の第１のスクリーン・アプリケーション１４０との探索およびセッション参加に関する情報を格納する。探索およびセッション参加に関する情報はデバイス・リストを含む。デバイス・リストは、発見されたデバイス（例えば、クライアント・デバイスおよび／または第１のスクリーン・デバイス１２０）に関連付けられた情報のリストである。当該デバイス・リスト内の各デバイスに関連付けられた情報は、例えば、当該デバイスで動作している特定のアプリケーションのアプリケーション識別子、デバイスと互換のカップリング・プロトコル、ペアリング情報、またはそれらの幾つかの組合せを含んでもよい。
【００４１】
探索モジュール４２０は、第２のスクリーン・アプリケーション１５０に対する探索動作を実施する。探索モジュール４２０は、探索要求を（例えば、ＷＩＦＩ、BLUETOOTH（登録商標）等を介して）ローカル・デバイスに送信して、探索のためにローカルに利用可能なデバイス（例えば、第１のスクリーン・デバイス１２０および／または他のクライアント・デバイス）を特定する。探索モジュール４２０は、探索情報を、任意の発見された第１のスクリーン・デバイス１２０から受信する。当該探索情報は、当該発見された第１のスクリーン・アプリケーション１４０に対するアプリケーション識別子と第１のスクリーン・アプリケーション１４０とのセッションを確立するために使用されうるカップリング・プロトコルとの両方を含む。
【００４２】
探索モジュール４２０は、デバイス・リストを受信された探索情報で更新する。探索モジュール４２０は、当該探索情報に関連付けられた全てのカップリング・プロトコルに対するデバイス・リストにエントリを追加する。したがって、単一のアプリケーション識別子に対する複数のエントリ（例えば、［アプリケーション識別子Ｘ：ＤＩＡＬ；アプリケーション識別子Ｘ：ＣＡＳＴ・・・］）があってもよい。
【００４３】
探索モジュール４２０は、発見された第１のスクリーン・デバイス１２０に関連付けられたペアリング情報を制御サーバ１３０から取得する。当該ペアリング情報は、第１のスクリーン・アプリケーション１４０が手動でペアリングされているかもしれない任意のクライアント・デバイスを記述する情報である。探索モジュール４２０は当該デバイス・リストを制御サーバ１３０から受信されたペアリング情報で更新する。探索モジュール４２０は、当該ペアリング情報で識別された全ての手動ペアリングに対するデバイス・リストにエントリを追加する。したがって、単一のアプリケーション識別子に対するカップリング・プロトコルおよび／または手動ペアリングの両方に対して複数のエントリ（例えば、［アプリケーション識別子Ｘ：ＤＩＡＬ；アプリケーション識別子Ｘ：ＣＡＳＴ；アプリケーション識別子Ｘ：クライアント・デバイス１への手動ペアリング；アプリケーション識別子Ｘ：クライアント・デバイス２への手動ペアリング；・・・］）があってもよい。
【００４４】
さらに、幾つかの実施形態では、探索モジュール４２０はクライアント・デバイス１００に一意な識別子を生成してもよい。探索要求を幾つかの他のクライアント・デバイス（例えば、クライアント・デバイス１０５）から受信したことに応答して、探索モジュール４２０は、当該要求クライアント・デバイスに、当該識別子およびクライアント・デバイス１００を接続するために利用可能なカップリング・プロトコルのリストを提供する。
【００４５】
重複排除モジュール４３０は、更新されたデバイス・リストを用いてデバイス重複排除を実施する。重複排除モジュール４３０は、当該更新されたデバイス・リスト内のエントリをアプリケーション識別子により収集し、次いで、当該アプリケーション識別子に関連付けられたカップリング・プロトコルおよび／または手動ペアリングにマップされたセッション・インタフェースに対する単一のデバイス・エントリを生成する。
【００４６】
インタフェース・モジュール４４０は、１つまたは複数のデバイス・エントリを用いてセッション・インタフェースを生成する。当該セッション・インタフェースは、クライアント・デバイス１００がそれにより他のデバイス（例えば、第１のスクリーン・デバイス１３０）上で動作しているアプリケーションを発見しかつ／または当該アプリケーションとのセッションを確立しうる、グラフィカル・ユーザ・インタフェースである。当該セッション・インタフェースは当該デバイス・エントリのうち１つまたは複数をクライアント・デバイス１００のユーザに提供する。各デバイス・エントリは単一の第１のスクリーン・デバイス１２０に関連付けられる。幾つかの実施形態では、デバイス・エントリは代替的に、幾つかの他のクライアント・デバイス（例えば、クライアント・デバイス１０５）に関連付けられてもよい。
【００４７】
特定のデバイス（例えば、第１のスクリーン・デバイス１２０）に対するデバイス・エントリの選択を受信したことに応答して、カップリング・モジュール３５０は、選択されたデバイスに関連付けられたアプリケーションのアプリケーション・ステータスを取得する。例えば、カップリング・モジュール３５０は、選択された第１のスクリーン・デバイス１２０上で動作している第１のスクリーン・アプリケーション１４０に対するアプリケーション・ステータス情報を制御サーバ１３０から取得してもよい。当該アプリケーション・ステータス情報は、第１のスクリーン・アプリケーションが既存のセッション内にあるかどうか、そうである場合、どのカップリング・プロトコルが既存のセッションで使用されているかを記述する情報である。
【００４８】
カップリング・モジュール４５０は、受信されたアプリケーション・ステータス情報およびクライアント・デバイス１００に利用可能なカップリング・プロトコルを用いてカップリング方法を決定する。例えば、既存のセッションでないことを当該アプリケーション・ステータス情報が示す場合、カップリング・モジュール４５０は、好適なプロトコルを用いて第１のスクリーン・アプリケーション１４０とのセッションを確立してもよい。幾つかの実施形態では、当該好適なプロトコルはクライアント・デバイス１００のユーザにより選択されたカップリング・プロトコルである。代替的な実施形態では、カップリング・モジュール４５０は、第１のスクリーン・デバイス１２０とクライアント・デバイス１００の両方に利用可能などのカップリング・プロトコルがクライアント・デバイス１００のユーザに最も多くの制御を提供するかに基づいて、好適なカップリング・プロトコルを選択する。例えば、ＤＩＡＬおよびＣＡＳＴが利用可能なカップリング・プロトコルであると仮定すると、カップリング・モジュール４５０はＣＡＳＴを当該カップリング・プロトコルとして選択してもよい。なぜならば、ＣＡＳＴは追加の音量調節制御を当該ＤＩＡＬカップリング・プロトコル上で提供するからである。さらに、既存のセッションがなく、クライアント・デバイス１０５に利用可能なカップリング・プロトコルが第１のスクリーン・デバイス１２０に利用可能であるカップリング・プロトコルと異なる実施形態では、カップリング・モジュール４５０は、制御サーバ１３０を通じて間接的に第１のスクリーン・アプリケーション１４０に接続する。
【００４９】
当該アプリケーション・ステータス情報が、第１のスクリーン・デバイス１２０が特定のカップリング・プロトコルを用いた別のクライアント・デバイス（例えば、クライアント・デバイス１０５）との既存のセッション内にあることを示す実施形態では、カップリング・モジュール４５０は、当該特定のカップリング・プロトコルがクライアント・デバイス１００にも利用可能である（即ち、当該カップリング・プロトコルがクライアント・デバイス１００によりサポートされる）かどうかを判定する。当該カップリング・プロトコルがサポートされる場合、カップリング・モジュール４５０は、当該特定のカップリング・プロトコルを用いて第１のスクリーン・アプリケーション１４０に接続する。当該特定のカップリング・プロトコルが利用可能でない（即ち、クライアント・デバイス１００によりサポートされない）場合には、当該カップリング・プロトコルは制御サーバ１３０を介して当該セッションに接続する。この場合、当該セッションへのカップリングは、クライアント・デバイス１００によりサポートされるプロトコルを用いてクライアント・デバイス１００が制御サーバ１３０に接続し、制御サーバ１３０が次いで当該特定のカップリング・プロトコルを用いて当該セッションに接続するという意味で間接的である。何れのケースでも、クライアント・デバイス１００は、既存のセッションで使用されている当該特定のカップリング・プロトコルを介して既存のセッションに参加している。したがって、クライアント・デバイス１００は混乱なしに既存のセッションに効果的に参加でき、これは、そうでなければ、既存のセッションへの接続が、既存のセッションで使用されているカップリング・プロトコルからのカップリング・プロトコルの差異を用いて試みられていた場合に、生ずるかもしれない。
【００５０】
図５は、１実施形態に従うデバイス重複排除をデバイス探索の一部として実施するプロセスを示す流れ図である。１実施形態では、図５のプロセスはクライアント・デバイス１００により実施される。他のエンティティは、他の実施形態におけるプロセスのステップの一部または全部を実施してもよい。同様に、実施形態は異なるおよび／または追加のステップを含んでもよく、または、当該ステップを異なる順序で実施してもよい。
【００５１】
クライアント・デバイス１００は、第１のスクリーン・デバイス１２０上で動作している第１のスクリーン・アプリケーション１４０と、第１のスクリーン・デバイス１２０に接続するための利用可能なカップリング・プロトコルをを発見する（５１０）。例えば、クライアント・デバイス１００は、例えば、BLUETOOTH（登録商標）、ＷＩＦＩ等を介して１つまたは複数の探索要求を送出してもよい。当該発見された第１のスクリーン・デバイス１２０は、クライアント・デバイス１００に、アプリケーション識別子と第１のスクリーン・デバイス１２０によりサポートされる利用可能なカップリング・プロトコルとを含む探索情報を提供する。
【００５２】
クライアント・デバイス１００は、第１のスクリーン・デバイス１２０に関連付けられた情報（例えば、当該探索情報の一部または全部）および利用可能なカップリング・プロトコルを用いてデバイス・リストを更新する（５２０）。クライアント・デバイス１００は、カップリング・プロトコルごとにエントリを当該デバイス・リストに追加して、各エントリも当該アプリケーション識別子に関連付けられるようにする。したがって、単一のアプリケーション識別子に対して複数のエントリ（例えば、［アプリケーション識別子Ｘ：ＤＩＡＬ；アプリケーション識別子Ｘ：ＣＡＳＴ］）があってもよい。
【００５３】
クライアント・デバイス１００は、ペアリング情報を第１のスクリーン・デバイス１２０に対する制御サーバ１３０から取得する（５３０）。例えば、クライアント・デバイス１００は第１のスクリーン・アプリケーション１４０および／または第１のスクリーン・デバイス１２０に関連付けられたペアリング情報を制御サーバ１３０に要求してもよい。制御サーバ１３０から受信されたペアリング情報は、第１のスクリーン・アプリケーション１４０が手動でペアリングされているかもしれない任意のデバイス（例えば、クライアント・デバイス１０５）を記述する。クライアント・デバイス１００は当該ペアリング情報を用いて当該デバイス・リストを更新する（５４０）。クライアント・デバイス１００は、手動ペアリングに関連付けられた全てのアプリケーション識別子に対するエントリを当該デバイス・リストに追加し、単一のアプリケーション識別子に対する複数のエントリがあってもよい。例えば、当該デバイス・リストは、カップリング・プロトコルおよび同一のアプリケーション識別子に関連付けられた手動ペアリングの両方に対するエントリ（例えば、［アプリケーション識別子Ｘ：ＤＩＡＬ；アプリケーション識別子Ｘ：ＣＡＳＴ；アプリケーション識別子Ｘ：デバイス１への手動ペアリング；アプリケーション識別子Ｘ：デバイス２への手動ペアリング；・・・］）を含んでもよい。
【００５４】
クライアント・デバイス１００は、当該更新されたデバイス・リストを用いてデバイス重複排除を実施する（５４０）。クライアント・デバイス１００は、当該デバイス・リスト内のエントリをアプリケーション識別子により収集し、ついで、当該アプリケーション識別子に関連付けられたカップリング・プロトコルにマップされるセッション・インタフェース内の単一のデバイス・エントリを生成する。クライアント・デバイス１００は、以前に発見されている任意の他のデバイス・エントリとともに、第１のスクリーン・デバイス１２０に対する単一のデバイス・エントリを含むセッション・インタフェースをユーザに提供する。したがって、当該セッション・インタフェースにより提供されたリスト構成デバイス・エントリはデバイスの重複排除されたリストであり、各エントリは異なるデバイスに対応する。
【００５５】
図６は、１実施形態に従う第１のスクリーン・アプリケーションと第２のスクリーン・アプリケーションの間のセッションを確立するためのプロセスを示す流れ図である。１実施形態では、図６のプロセスはクライアント・デバイス１００により実施される。他のエンティティは、他の実施形態におけるプロセスのステップの一部または全部を実施してもよい。同様に、実施形態は、異なるおよび／または追加のステップを含んでもよく、または当該ステップを異なる順序で実施してもよい。
【００５６】
クライアント・デバイス１００は、ユーザ・インタフェース内のデバイスの重複排除されたリストをクライアント・デバイス１００のユーザに提供する（６１０）。当該重複排除されたリストが例えば、図５を参照して上述したプロセスを用いて生成されてもよい。
【００５７】
クライアント・デバイス１００は、セッションにともに参加するための列挙されたデバイスの選択を受信する（６２０）。幾つかの実施形態では、当該セッションは、例えば、ビデオ・ディスプレイ・セッションであってもよい。この文脈では、参加は、選択されたデバイスとの既存のセッションに参加することまたは選択されたデバイスとのセッションを確立することを指してもよい。
【００５８】
クライアント・デバイス１００は、選択されたデバイス上の第１のスクリーン・アプリケーション１４０のアプリケーション・ステータスを制御サーバ１３０から取得する（６３０）。クライアント・デバイス１００は、当該アプリケーション・ステータスおよびクライアント・デバイス１００と第１のスクリーン・デバイス１００の両方に利用可能なカップリング・プロトコルに基づいてカップリング方法を決定する（６４０）。既存のセッションがないことを当該アプリケーション・ステータスが示す実施形態では、クライアント・デバイス１００は、クライアント・アプリケーション１００と第１のスクリーン・アプリケーション１２０の両方に利用可能な好適なカップリング・プロトコル（例えば、クライアント・デバイス１００のユーザに最も多くの制御を提供するもの）を用いて、第１のスクリーン・アプリケーション１４０に接続する（６５０）。第１のスクリーン・アプリケーション１４０がクライアント・デバイス１０５との既存のセッション内にあり当該セッションが特定のカップリング・プロトコルを使用していることをアプリケーション・ステータスが示す実施形態では、クライアント・デバイス１００は、当該特定のカップリング・プロトコルもまたクライアント・デバイス１００によりサポートされるかどうかを判定する。サポートされる場合、クライアント・デバイス１００は既存のセッションに当該特定のカップリング・プロトコルを介して接続する（６５０）。そうでない場合、クライアント・デバイス１００は間接的に既存のセッションに制御サーバ１３０を介して接続する。クライアント・デバイス１００と制御サーバ１３０はクライアント・デバイス１００によりサポートされるカップリング・プロトコルを用いて通信し、制御サーバ１３０と第１のスクリーン・アプリケーション１４０は、既存のセッションで用いられている特定のカップリング・プロトコルを介して接続する。
【００５９】
クライアント・デバイス１００、１０５、第１のスクリーン・デバイス１２０、および／または制御サーバ１３０の実装の議論に移ると、図７は、図１に示すエンティティを実装するための例示的なコンピュータ７００を示すブロック図である。コンピュータ７００は、チップ・セット７０４に接続された少なくとも１つのプロセッサ７０２を含む。チップ・セット７０４はメモリコントローラハブ７２０および入出力（Ｉ／Ｏ）コントローラハブ７２２を含む。メモリ７０６およびグラフィクスアダプタ７１２はメモリコントローラハブ７２０に接続され、ディスプレイ７１８はグラフィクスアダプタ７１２に接続される。記憶デバイス７０８、入力デバイス７１４、およびネットワークアダプタ７１６は入出力コントローラハブ７２２に接続される。コンピュータ７００の他の実施形態は異なるアーキテクチャを有する。
【００６０】
記憶デバイス７０８は、ハードドライブ、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、ＤＶＤ、または固体メモリデバイスのような非一時的コンピュータ可読記憶媒体である。メモリ７０６は、プロセッサ７０２により使用される命令およびデータを保持する。入力インタフェース７１４は、タッチスクリーンインタフェース、マウス、トラックボール、または他のタイプのポインティング・デバイス、キーボード、またはそれらの幾つかの組合せであり、データをコンピュータ７００に入力するために使用される。幾つかの実施形態では、コンピュータ７００は、ユーザからのジェスチャを介して入力インタフェース７１４からの入力（例えば、コマンド）を受信するように構成されてもよい。グラフィクスアダプタ７１２は、画像および他の情報をディスプレイ７１８に表示する。ネットワークアダプタ７１６はコンピュータ７００を１つまたは複数のコンピュータネットワークに接続する。
【００６１】
コンピュータ７００は、本明細書で説明した機能を提供するためのコンピュータ・プログラム・モジュールを実行するように適合される。本明細書で使用する際、「モジュール」という用語は、当該指定された機能提供するために使用されるコンピュータ・プログラムロジックを指す。したがって、モジュールを、ハードウェア、ファームウェア、および／またはソフトウェアで実装することができる。１実施形態では、プログラム・モジュールは当該記憶デバイス７０８に格納され、メモリ７０６にロードされ、プロセッサ７０２により実行される。
【００６２】
図１のエンティティにより使用されるコンピュータ７００のタイプは、当該実施形態と当該エンティティにより要求される処理パワーとに依存して変化することができる。幾つかの実施形態では、クライアント・デバイス１００は、本明細書で説明した機能を提供するために協働する１つまたは複数のサーバと対話することができる。例えば、制御サーバ１３０は、例えば、本明細書で説明した機能を提供するためにサーバ・ファーム内で、ネットワークを通じて互いに通信する複数のコンピュータ７００を含んでもよい。コンピュータ７００には、グラフィクスアダプタ７１２、およびディスプレイ７１８のような上述のコンポーネントの幾つかが欠けていることができる。
【００６３】
他の考慮事項
上述の説明の幾つかの部分は、アルゴリズム的プロセスまたは動作の点で実施形態を説明した。これらのアルゴリズム的説明および表現は、その作業を効果的に他の業界の当業者に伝えるために、当業者により共通的に使用される。これらの動作は、機能的に、計算的に、またはロジック的に説明されているが、プロセッサまたは均等な電気回路、マイクロコード等により実行するための命令を含むコンピュータ・プログラムにより実装されることは理解される。さらに、一般性を失うことなく、機能的動作のこれらの構成をモジュールと称することが時には都合が良いことも証明されている。当該説明した動作およびその関連付けられたモジュールをソフトウェア、ファームウェア、ハードウェア、または任意のそれらの組合せに組み込んでもよい。
【００６４】
本明細書で使用する際、「１実施形態」への任意の言及は、当該実施形態と関連して説明した特定の要素、媒体特徴、構造、または特徴が少なくとも１つの実施形態に含まれることを意味する。本明細書における様々な場所での「１実施形態では」という語句の出願は必ずしも全て同一の実施形態を指すわけではない。
【００６５】
幾つかの実施形態を、「結合された」および「接続された」という表現をその派生物とともに使用して説明してもよい。これらの用語は互いに対する類義語として意図されていないことは理解されるべきである。例えば、幾つかの実施形態を、２つ以上の要素が互いと直接物理または電気的に接触することを示すように「接続」と言う用語を用いて説明してもよい。別の例では、幾つかの実施形態を、２つ以上の要素が直接物理または電気的に接触することを示すように「結合」という用語を用いて説明してもよい。しかし、「結合」という用語がまた、２つ以上の要素が直接には互いと接触しないが、依然として互いと協調または対話することを意味してもよい。当該実施形態は当該文脈では限定されない。
【００６６】
本明細書で使用する際、「ｃｏｍｐｒｉｓｅｓ」、「ｃｏｍｐｒｉｓｉｎｇ」、「ｉｎｃｌｕｄｅｓ」、「ｉｎｃｌｕｄｉｎｇ」、「ｈａｓ」、「ｈａｖｉｎｇ」という用語またはそれらの任意の他の変形は、非排他的な包含をカバーすることを意図している。例えば、要素のリストを含むプロセス、方法、製品、または装置は必ずしもこれらの要素にだけ限定されるものではないが、明示的に列挙されないかまたはかかるプロセス、方法、製品、または装置に固有な他の要素を含んでもよい。さらに、特に断らない限り、「または」は、包含的離接を指し、排他的離接は指さない。例えば、条件ＡまたはＢは、Ａが真である（または存在する）およびＢが偽である（または存在しない）、Ａが偽である（または存在しない）およびＢが真である（または存在する）、およびＡとＢの両方が真である（または存在する）のうち任意の１つにより満たされる。
【００６７】
さらに、「ａ」または「ａｎ」の使用は、本明細書の実施形態の要素およびコンポーネントを説明するために利用される。これは便宜上行われるにすぎず、本開示の一般的な意味を与える。当該説明は１つまたは少なくとも１つを含むと読むべきであり、当該単数形はまた、それ以外を意味することが明らかでない限り複数形を含む。
【００６８】
本開示を読むと、当業者は、クライアント・デバイスの第１のスクリーン・デバイスとの相互運用性を促進するためのシステムおよびプロセスに対するさらなる追加の代替的、構造的、および機能的な設計を理解する。したがって、特定の実施形態および適用例を図示し説明したが、当該説明した主題は本明細書で開示した厳密な構成と要素に限定されず、当業者に明らかである様々な修正、変更および変形を本明細書で開示した方法および装置の配置、動作および詳細において行ってもよいことは理解される。
【符号の説明】
【００６９】
１００クライアント・デバイス
１０５クライアント・デバイス
１１０ネットワーク
１２０第１のスクリーン・デバイス
１３０制御サーバ
１４０第１のスクリーン・アプリケーション
１５０第２のスクリーン・アプリケーション
１６０第２のスクリーン・アプリケーション
【図１】
0006545824.tif 000002
【図２】
0006545824.tif 000003
【図３】
0006545824.tif 000004
【図４】
0006545824.tif 000005
【図５】
0006545824.tif 000006
【図６】
0006545824.tif 000007
【図７】
0006545824.tif 000008