(57)【特許請求の範囲】
【請求項１】
第2ネットワーク上に配置された第2デバイスから第1ネットワーク上に配置された第1デバイスにアクセスする方法であって、前記方法は、
ピアツーピアネットワークを介して前記第1ネットワークおよび前記第2ネットワークをリンクするステップを含んでいて、前記第1ネットワークは、第1デバイスおよび第1コンピュータ上で動作する第1エージェントアプリケーションを含んでいて、前記第2ネットワークは、第2デバイスおよび第2コンピュータ上で動作する第2エージェントアプリケーションを含んでいて、
更に、前記第2エージェントアプリケーションで、第1ネットワークの第1エージェントアプリケーションから第1デバイスに関するアドレスを入手するステップと、
前記第1エージェントアプリケーションから受信した第1デバイスに関するアドレスに少なくとも一部基づいて、第1ネットワークの第1デバイスのために、第2ネットワーク上で、第2エージェントアプリケーションを用いて、デバイスアドバタイズメントメッセージを生成するステップとを含んでいて、前記デバイスアドバタイズメントメッセージは、第2ネットワーク上での第1デバイスのネットワークアドレスとして、第2エージェントアプリケーションのアドレスを含んでいて、
更に、前記第2エージェントアプリケーションで、前記第2ネットワーク上の前記第2デバイスから、前記第1デバイスに対するアクセス要求メッセージを受信するステップと、
前記第2エージェントアプリケーションから前記ピアツーピアネットワークを介して前記第1ネットワークに、前記第1デバイスに対する前記アクセス要求メッセージを通信するステップと、
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信するステップと
を含んでいて、
前記第1エージェントアプリケーションは、第1デバイスからメディアデータを受信し、
前記メディアデータは、ピアツーピアネットワークを介してメディアデータを渡すことなく、第1エージェントアプリケーションから第2エージェントアプリケーションに送信される、
方法。
【請求項２】
前記第1ネットワークの第1エージェントアプリケーションで、前記第1デバイスに関するアドレス、サービステンプレート、およびプロパティ情報を入手するステップと、
前記第1ネットワークの第1エージェントアプリケーションから前記第2ネットワークの第2エージェントアプリケーションに前記第1デバイスに関する前記アドレス、サービステンプレート、およびプロパティ情報を送信するステップと
をさらに含み、
前記第1ネットワークの第1デバイスのために、第2ネットワーク上で、第2エージェントアプリケーションを用いて、デバイスアドバタイズメントメッセージを生成するステップは、前記第1デバイスに関する前記アドレス、サービステンプレート、およびプロパティ情報に基づいて、第1ネットワークの第1デバイスのために、第2ネットワーク上で、第2エージェントアプリケーションを用いて、デバイスアドバタイズメントメッセージを生成するステップを含んでいる
請求項1に記載の方法。
【請求項３】
前記第1ネットワーク内の前記第1エージェントアプリケーション内で前記第1デバイスからサービス応答メッセージを受信するステップと、
前記第1エージェントアプリケーションから前記ピアツーピアネットワークを介して前記第2ネットワーク内の前記第2エージェントアプリケーションに前記サービス応答メッセージを送信するステップと、
前記第2エージェントアプリケーションから前記第2デバイスに前記サービス応答メッセージを提供するステップと
によって前記第1デバイスから前記第2デバイスに前記サービス応答メッセージを通信するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記第2エージェントアプリケーションで、前記第1エージェントアプリケーションから前記第1ネットワークのインターネットプロトコル(IP)アドレスを受信するステップと、
前記サービス応答メッセージを前記第2エージェントアプリケーションから前記第2デバイスに提供する前に、前記サービス応答メッセージ内のURL(universal resource locator)を前記第1ネットワークの前記IPアドレスを含むURLにマッピングするステップと
をさらに含む、請求項3に記載の方法。
【請求項５】
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する前に、前記第2エージェントアプリケーション内で前記第2ネットワークのインターネットプロトコル(IP)アドレスを入手するステップと、
前記第2エージェントアプリケーション内で前記第2デバイスからURLアクセスメッセージを受信するステップと、
前記URLアクセスメッセージを制御メッセージに変換するステップと、
前記第2エージェントアプリケーションから前記第1エージェントアプリケーションに前記制御メッセージを送信するステップと、
をさらに含み、
前記制御メッセージは、前記第2ネットワークの前記IPアドレスを含み、前記第1エージェントアプリケーションに
前記URLに関連する前記第1デバイス内のメディアファイルにアクセスさせ、
前記第1デバイスからメディアデータを受信させる
ためにフォーマットされ、
前記メディアデータは、前記ピアツーピアネットワークを介してメディアデータを渡すことなく、前記第2ネットワークの前記IPアドレスを使用して前記第2エージェントアプリケーションにプッシュされる、
請求項3に記載の方法。
【請求項６】
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する前に、前記第2エージェントアプリケーションで、前記第2デバイスからURLアクセスメッセージを受信するステップと、
前記URLアクセスメッセージを制御メッセージに変換するステップと、
前記制御メッセージを前記第2エージェントアプリケーションから前記第1エージェントアプリケーションに送信するステップと
をさらに含み、
前記制御メッセージは、前記インターネット内に配置された再ルーティングサーバのIPアドレスを含み、前記第1エージェントアプリケーションに
前記URLに関連する前記第1デバイス内のメディアファイルにアクセスさせ、
前記第1デバイスからメディアデータを受信させ、
前記再ルーティングサーバにメディアデータを第2エージェントアプリケーションへ送信させるために、前記ピアツーピアネットワークを介してメディアデータを渡すことなく、前記制御メッセージ内に含まれている前記IPアドレスを使用して前記再ルーティングサーバに前記メディアデータをプッシュさせる
ためにフォーマットされ、
前記メディアデータは、第1エージェントアプリケーションから再ルーティングサーバを介して送信され、
更に、記第2エージェントアプリケーションから前記第2デバイスに前記メディアデータを提供するステップ
を含む
請求項1に記載の方法。
【請求項７】
データファイルを入手するためにデータのソースにアクセスするステップと、
前記入手されたデータファイルを表示に適切なフォーマットにフォーマットするステップと、
前記フォーマットされた入手されたデータファイルをインメモリビットマップとしてレンダリングするステップと、
前記ビットマップをディジタル写真データフォーマットに変換するステップと、
変換されたビットマップを前記第1デバイスに格納するステップと
をさらに含み、
前記第2デバイスは、ディジタルフォトフレームデバイスである
請求項2に記載の方法。
【請求項８】
前記変換されたビットマップフォーマットは、JPEGフォーマットである、請求項7に記載の方法。
【請求項９】
プロセッサと、
前記プロセッサに結合され、前記プロセッサが第1デバイスを含む第1ネットワークと通信することを可能にするように構成された、第1ネットワークインターフェース回路とを含み、前記第1ネットワークは、第1コンピュータ上で動作する第1エージェントアプリケーションをも含んでいて、
前記プロセッサは、プロセッサ実行可能命令を実行して、
ピアツーピアネットワークを介して第2ネットワークと通信し、前記第2ネットワークは、第2デバイスおよび第2コンピュータ上で動作する第2エージェントアプリケーションを含んでいて、
前記第1エージェントアプリケーションで、第2ネットワークの第2エージェントアプリケーションから第2デバイスに関するアドレスを入手し、
前記第2エージェントアプリケーションから受信した第2デバイスに関するアドレスに少なくとも一部基づいて、第2ネットワーク上に配置された第2デバイスのために、第1ネットワーク上で、第1エージェントアプリケーションを用いて、デバイスアドバタイズメントメッセージを生成し、前記デバイスアドバタイズメントメッセージは、第1ネットワーク上での第2デバイスのネットワークアドレスとして、第1エージェントアプリケーションのアドレスを含んでいて、
前記第1エージェントアプリケーションで、第1ネットワーク上の第1デバイスから、第2ネットワーク上の第2デバイスに対するアクセス要求メッセージを受信し、
前記ピアツーピアネットワークを介して前記第2ネットワークに、前記第2デバイスに対する前記アクセス要求メッセージを通信し、
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する
動作を実行するように構成され、
前記第1エージェントアプリケーションは、第1デバイスからメディアデータを受信し、
前記メディアデータは、ピアツーピアネットワークを介してメディアデータを渡すことなく、第1エージェントアプリケーションから第2エージェントアプリケーションに送信される、
第1コンピュータ。
【請求項１０】
前記プロセッサは、
前記第1エージェントアプリケーションを介して、前記第2ネットワークの第2エージェントアプリケーションから前記第2デバイスに関するアドレス、サービステンプレート、およびプロパティ情報を受信する
動作を実行するように構成され、
前記デバイスアドバタイズメントメッセージは、前記第2デバイスに関する前記アドレス、サービステンプレート、およびプロパティ情報に基づく
請求項9に記載の第1コンピュータ。
【請求項１１】
前記プロセッサは、
前記第1エージェントアプリケーションを介して、前記ピアツーピアネットワークを介して前記第2ネットワークの第2エージェントアプリケーションからサービス応答メッセージを受信し、
前記サービス応答メッセージを前記第1エージェントアプリケーションから前記第1デバイスに提供する
動作を実行するように構成される、請求項10に記載の第1コンピュータ。
【請求項１２】
前記プロセッサは、
前記第1エージェントアプリケーションを介して、前記第2エージェントアプリケーションから前記第2ネットワークのインターネットプロトコル(IP)アドレスを受信し、
前記サービス応答メッセージを前記第1エージェントアプリケーションから前記第1デバイスに提供する前に、前記サービス応答メッセージ内のURL(universal resource locator)を前記第2ネットワークの前記IPアドレスを含むURLにマッピングする
動作を実行するように構成される、請求項11に記載の第1コンピュータ。
【請求項１３】
前記プロセッサは、
前記第1エージェントアプリケーションを介して、前記第1ネットワークのインターネットプロトコル(IP)アドレスを入手し、
前記第1エージェントアプリケーションを介して、前記第1デバイスからURLアクセスメッセージを受信し、
前記URLアクセスメッセージを前記第1ネットワークの前記IPアドレスを含む制御メッセージに変換し、
前記制御メッセージを前記第1エージェントアプリケーションから前記第2ネットワークの第2エージェントアプリケーションに送信し、
前記第2ネットワークの第2エージェントアプリケーションからメディアデータを受信する
動作を実行するように構成される、請求項11に記載の第1コンピュータ。
【請求項１４】
前記プロセッサは、
前記第1エージェントアプリケーションを介して、前記第1デバイスからURLアクセスメッセージを受信し、
前記URLアクセスメッセージを前記インターネット内に配置された再ルーティングサーバのIPアドレスを含む制御メッセージに変換し、
前記制御メッセージを前記第1エージェントアプリケーションから前記第2ネットワークの第2エージェントアプリケーションに送信し、
前記第1エージェントアプリケーションを用いて、前記再ルーティングサーバからメディアデータにアクセスする
動作を実行するように構成される、請求項9に記載の第1コンピュータ。
【請求項１５】
前記プロセッサは、
データファイルを入手するためにデータのソースにアクセスし、
前記入手されたデータファイルを表示に適切なフォーマットにフォーマットし、
前記フォーマットされた入手されたデータファイルをインメモリビットマップとしてレンダリングし、
前記ビットマップをディジタル写真データフォーマットに変換し、
変換されたビットマップを前記第2デバイスに提供する
動作を実行するように構成され、
前記第2デバイスは、ディジタルフォトフレームデバイスである
請求項10に記載の第1コンピュータ。
【請求項１６】
前記変換されたビットマップフォーマットは、JPEGフォーマットである、請求項15に記載の第1コンピュータ。
【請求項１７】
第1ネットワーク上に配置された第1デバイスに、第2ネットワーク上に配置された第2デバイスからアクセスするシステムであって、前記システムは、
ピアツーピアネットワークを介して前記第1ネットワークおよび前記第2ネットワークをリンクする手段を含んでいて、前記第1ネットワークは、第1デバイスおよび第1コンピュータ上で動作する第1エージェントアプリケーションを含んでいて、前記第2ネットワークは、第2デバイスおよび第2コンピュータ上で動作する第2エージェントアプリケーションを含んでいて、
更に、前記第2エージェントアプリケーションで、第1ネットワークの第1エージェントアプリケーションから第1デバイスに関するアドレスを入手する手段と、
前記第1エージェントアプリケーションから受信した第1デバイスに関するアドレスに少なくとも一部基づいて、第1ネットワークの第1デバイスのために、第2ネットワーク上で、第2エージェントアプリケーションを用いて、デバイスアドバタイズメントメッセージを生成する手段とを含んでいて、前記デバイスアドバタイズメントメッセージは、第2ネットワーク上での第1デバイスのネットワークアドレスとして、第2エージェントアプリケーションのアドレスを含んでいて、
更に、前記第2エージェントアプリケーションで、前記第2ネットワーク上の前記第2デバイスから、前記第1デバイスに対するアクセス要求メッセージを受信する手段と、
前記第2エージェントアプリケーションから前記ピアツーピアネットワークを介して前記第1ネットワークに、前記第1デバイスに対する前記アクセス要求メッセージを通信する手段と、
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する手段と
を含んでいて、
前記第1エージェントアプリケーションは、第1デバイスからメディアデータを受信し、
前記メディアデータは、ピアツーピアネットワークを介してメディアデータを渡すことなく、第1エージェントアプリケーションから第2エージェントアプリケーションに送信される、
システム。
【請求項１８】
前記第1ネットワーク内の第1コンピュータ上で動作する第1エージェントアプリケーション内で前記第1デバイスに関するアドレス、サービステンプレート、およびプロパティ情報を入手する手段と、
前記第1ネットワーク内の前記第1エージェントアプリケーションから前記第2ネットワーク内の第2エージェントアプリケーションに前記第1デバイスに関する前記アドレス、サービステンプレート、およびプロパティ情報を送信する手段と
をさらに含み、
前記第1ネットワークの第1デバイスのために、第2ネットワーク上で、デバイスアドバタイズメントメッセージを生成する手段は、前記第1デバイスに関する前記受信されたアドレス、サービステンプレート、およびプロパティ情報に基づいて、前記第1ネットワークの第1デバイスのために、前記第2ネットワーク上で、前記デバイスアドバタイズメントメッセージを生成する手段を含む
請求項17に記載のシステム。
【請求項１９】
前記第1ネットワーク内の前記第1エージェントアプリケーション内で前記第1デバイスからサービス応答メッセージを受信する手段と、
前記第1エージェントアプリケーションから前記ピアツーピアネットワークを介して前記第2ネットワーク内の前記第2エージェントアプリケーションに前記サービス応答メッセージを送信する手段と、
前記第2エージェントアプリケーションから前記第2デバイスに前記サービス応答メッセージを提供する手段と
を含む、前記第1デバイスから前記第2デバイスに前記サービス応答メッセージを通信する手段をさらに含む、請求項18に記載のシステム。
【請求項２０】
前記第2エージェントアプリケーションで、前記第1エージェントアプリケーションから前記第1ネットワークのインターネットプロトコル(IP)アドレスを受信する手段と、
前記サービス応答メッセージを前記第2エージェントアプリケーションから前記第2デバイスに提供する前に、前記サービス応答メッセージ内のURL(universal resource locator)を前記第1ネットワークの前記IPアドレスを含むURLにマッピングする手段と
をさらに含む、請求項19に記載のシステム。
【請求項２１】
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する前に、前記第2ネットワークの第2エージェントアプリケーションでのインターネットプロトコル(IP)アドレスを入手する手段と、
前記第2エージェントアプリケーション内で前記第2デバイスからURLアクセスメッセージを受信する手段と、
前記URLアクセスメッセージを制御メッセージに変換する手段と、
前記第2エージェントアプリケーションから前記第1エージェントアプリケーションに前記制御メッセージを送信する手段と
をさらに含み、
前記制御メッセージは、前記第2ネットワークの前記IPアドレスを含み、前記第1エージェントアプリケーションに
前記URLに関連する前記第1デバイス内のメディアファイルにアクセスさせ、
前記第1デバイスからメディアデータを受信させる
ためにフォーマットされ、
前記メディアデータは、前記ピアツーピアネットワークを介してメディアデータを渡すことなく、前記第2ネットワークの前記IPアドレスを使用して前記第2エージェントアプリケーションにプッシュされる、
請求項19に記載のシステム。
【請求項２２】
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する前に、前記第2エージェントアプリケーション内で前記第2デバイスからURLアクセスメッセージを受信する手段と、
前記URLアクセスメッセージを制御メッセージに変換する手段と、
前記制御メッセージを前記第2エージェントアプリケーションから前記第1エージェントアプリケーションに送信する手段と
をさらに含み、
前記制御メッセージは、前記インターネット内に配置された再ルーティングサーバのIPアドレスを含み、前記第1エージェントアプリケーションに
前記URLに関連する前記第1デバイス内のメディアファイルにアクセスさせ、
前記第1デバイスからメディアデータを受信させ、
前記再ルーティングサーバにメディアデータを第2エージェントアプリケーションへ送信させるために、前記ピアツーピアネットワークを介してメディアデータを渡すことなく、前記制御メッセージ内に含まれている前記IPアドレスを使用して前記再ルーティングサーバに前記メディアデータをプッシュさせる
ためにフォーマットされ、
前記メディアデータは、第1エージェントアプリケーションから再ルーティングサーバを介して送信され、
更に、前記第2エージェントアプリケーションから前記第2デバイスに前記メディアデータを提供する手段
を含む
請求項17に記載のシステム。
【請求項２３】
データファイルを入手するためにデータのソースにアクセスする手段と、
前記入手されたデータファイルを表示に適切なフォーマットにフォーマットする手段と、
前記フォーマットされた入手されたデータファイルをビットマップとしてレンダリングする手段と、
前記ビットマップをディジタル写真データフォーマットに変換する手段と、
変換されたビットマップを前記第1デバイスに格納する手段と
をさらに含み、
前記第2デバイスは、ディジタルフォトフレームデバイスである
請求項18に記載のシステム。
【請求項２４】
前記変換されたビットマップフォーマットは、JPEGフォーマットである、請求項23に記載のシステム。
【請求項２５】
ピアツーピアネットワークを介して第1ネットワークおよび第2ネットワークをリンクする少なくとも1つの命令を含んでいて、前記第1ネットワークは、第1デバイスおよび第1コンピュータ上で動作する第1エージェントアプリケーションを含んでいて、前記第2ネットワークは、第2デバイスおよび第2コンピュータ上で動作する第2エージェントアプリケーションを含んでいて、
更に、前記第2エージェントアプリケーションで、第1ネットワークの第1エージェントアプリケーションから第1デバイスに関するアドレスを入手する少なくとも1つの命令と、
前記第1エージェントアプリケーションから受信した第1デバイスに関するアドレスに少なくとも一部基づいて、第1ネットワークの第1デバイスのために、第2ネットワーク上で、第2エージェントアプリケーションを用いて、デバイスアドバタイズメントメッセージを生成する少なくとも1つの命令とを含んでいて、前記デバイスアドバタイズメントメッセージは、第2ネットワーク上での第1デバイスのネットワークアドレスとして、第2エージェントアプリケーションのアドレスを含んでいて、
更に、前記第2エージェントアプリケーションで、前記第2ネットワーク上の前記第2デバイスから、前記第1デバイスに対するアクセス要求メッセージを受信する少なくとも1つの命令と、
前記第2エージェントアプリケーションから前記ピアツーピアネットワークを介して前記第1ネットワークに、前記第1デバイスに対する前記アクセス要求メッセージを通信する少なくとも1つの命令と、
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する少なくとも1つの命令と
を含んでいて、
前記第1エージェントアプリケーションは、第1デバイスからメディアデータを受信し、
前記メディアデータは、ピアツーピアネットワークを介してメディアデータを渡すことなく、第1エージェントアプリケーションから第2エージェントアプリケーションに送信される、
コンピュータ可読記録媒体。
【請求項２６】
前記第1ネットワーク内の第1コンピュータ上で動作する第1エージェントアプリケーション内で前記第1デバイスに関するアドレス、サービステンプレート、およびプロパティ情報を入手する少なくとも1つの命令と、
前記第1ネットワークの第1エージェントアプリケーションから前記第2ネットワークの第2エージェントアプリケーションに前記第1デバイスに関する前記アドレス、サービステンプレート、およびプロパティ情報を送信する少なくとも1つの命令と
をさらに含み、
前記第1ネットワークの第1デバイスのために、第2ネットワーク上で、デバイスアドバタイズメントメッセージを生成する少なくとも1つの命令は、前記第1デバイスに関する前記受信されたアドレス、サービステンプレート、およびプロパティ情報に基づいて、前記第1ネットワークの第1デバイスのために、前記第2ネットワーク上で、前記デバイスアドバタイズメントメッセージを生成する少なくとも1つの命令を含んでいる
請求項25に記載のコンピュータ可読記録媒体。
【請求項２７】
前記第1ネットワーク内の前記第1エージェントアプリケーション内で前記第1デバイスからサービス応答メッセージを受信する少なくとも1つの命令と、
前記第1エージェントアプリケーションから前記ピアツーピアネットワークを介して前記第2ネットワーク内の前記第2エージェントアプリケーションに前記サービス応答メッセージを送信する少なくとも1つの命令と、
前記第2エージェントアプリケーションから前記第2デバイスに前記サービス応答メッセージを提供する少なくとも1つの命令と
を含む、前記第1デバイスから前記第2デバイスに前記サービス応答メッセージを通信する少なくとも1つの命令
をさらに含む、請求項26に記載のコンピュータ可読記録媒体。
【請求項２８】
前記第2エージェントアプリケーションで、前記第1エージェントアプリケーションから前記第1ネットワークのインターネットプロトコル(IP)アドレスを受信する少なくとも1つの命令と、
前記サービス応答メッセージを前記第2エージェントアプリケーションから前記第2デバイスに提供する前に、前記サービス応答メッセージ内のURL(universal resource locator)を前記第1ネットワークの前記IPアドレスを含むURLにマッピングする少なくとも1つの命令と
をさらに含む、請求項27に記載のコンピュータ可読記録媒体。
【請求項２９】
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する前に、前記第2エージェントアプリケーション内で前記第2ネットワークのインターネットプロトコル(IP)アドレスを入手する少なくとも1つの命令と、
前記第2エージェントアプリケーション内で前記第2デバイスからURLアクセスメッセージを受信する少なくとも1つの命令と、
前記URLアクセスメッセージを制御メッセージに変換する少なくとも1つの命令と、
前記第2エージェントアプリケーションから前記第1エージェントアプリケーションに前記制御メッセージを送信する少なくとも1つの命令と
をさらに含み、
前記制御メッセージは、前記第2ネットワークの前記IPアドレスを含み、前記第1エージェントアプリケーションに
前記URLに関連する前記第1デバイス内のメディアファイルにアクセスさせ、
前記第1デバイスからメディアデータを受信させる
ためにフォーマットされ、
前記メディアデータは、前記ピアツーピアネットワークを介してメディアデータを渡すことなく、前記第2ネットワークの前記IPアドレスを使用して前記第2エージェントアプリケーションにプッシュされる、
請求項27に記載のコンピュータ可読記録媒体。
【請求項３０】
前記第2エージェントアプリケーションで、第1エージェントアプリケーションからメディアデータを受信する前に、前記第2エージェントアプリケーション内で前記第2デバイスからURLアクセスメッセージを受信する少なくとも1つの命令と、
前記URLアクセスメッセージを制御メッセージに変換する少なくとも1つの命令と、
前記制御メッセージを前記第2エージェントアプリケーションから前記第1エージェントアプリケーションに送信する少なくとも1つの命令と
をさらに含み、
前記制御メッセージは、前記インターネット内に配置された再ルーティングサーバのIPアドレスを含み、前記第1エージェントアプリケーションに
前記URLに関連する前記第1デバイス内のメディアファイルにアクセスさせ、
前記第1デバイスからメディアデータを受信させ、
前記再ルーティングサーバにメディアデータを第2エージェントアプリケーションへ送信させるために、前記ピアツーピアネットワークを介してメディアデータを渡すことなく、前記制御メッセージ内に含まれている前記IPアドレスを使用して前記再ルーティングサーバに前記メディアデータをプッシュさせる
ためにフォーマットされ、
前記メディアデータは、第1エージェントアプリケーションから再ルーティングサーバを介して送信され、
更に、前記第2エージェントアプリケーションから前記第2デバイスに前記メディアデータを提供する少なくとも1つの命令
を含む
請求項25に記載のコンピュータ可読記録媒体。
【請求項３１】
データファイルを入手するためにデータのソースにアクセスする少なくとも1つの命令と、
前記入手されたデータファイルを表示に適切なフォーマットにフォーマットする少なくとも1つの命令と、
前記フォーマットされた入手されたデータファイルをインメモリビットマップとしてレンダリングする少なくとも1つの命令と、
前記ビットマップをディジタル写真データフォーマットに変換する少なくとも1つの命令と、
変換されたビットマップを前記第1デバイスに格納する少なくとも1つの命令と
をさらに含み、
前記第2デバイスは、ディジタルフォトフレームデバイスである
請求項26に記載のコンピュータ可読記録媒体。
【請求項３２】
前記変換されたビットマップフォーマットは、JPEGフォーマットである、請求項31に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、その内容の全体が参照によって本明細書に組み込まれている。2009年6月3日に出願した米国特許仮出願第61/183,761号、名称「Systems And Methods For Creating Virtual Universal Plug-And-Play Systems」の優先権の利益を主張するものである。
【０００２】
本発明は、全般的にはコンピュータネットワークに関し、より具体的には、プライベートネットワークの間でのストリーミングメディアの選択および認可のリモートコントロールに関する。
【背景技術】
【０００３】
人々は、ますます、オーディオファイル、ビデオファイル、ディジタルイメージなどのディジタルメディアのコレクションを作り上げつつある。サムドライブ、CD-Rディスク、およびMP3プレイヤなどのポータブルメモリデバイスが、そのようなファイルを使用のためにあちこちに物理的に持ち運ぶ、ある能力を提供したが、しばしば、そのようなメモリデバイスは、持ち運び容量においてあまりに制限されると同時に、取扱注意のデータファイルを任せるためにはあまりに簡単に失われまたは盗まれる。それでも、ディジタルメディアの収集家は、複雑なネットワークブリッジをセットアップする必要なしに彼らのコレクションにアクセスできることから利益を得るはずである。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】http://www.upnp.org
【発明の概要】
【課題を解決するための手段】
【０００５】
方法およびデバイスは、ソースネットワーク上に配置されたデバイスがターゲットネットワーク上の仮想デバイスに見えることを可能にする。ソースネットワークおよびターゲットネットワーク上のコンピュータと中央ネットワークサーバとで動作するエージェントアプリケーションは、インターネット上のスーパーピアネットワーキングサーバ(super-peer networking server)によって使用可能にされるピアツーピアネットワークを介して通信する。あるデバイスを共有するために、中央サーバエージェントは、ソースネットワーク内のデバイスへのアクセスを提供するようにソースネットワークエージェントに要求し、この送信される情報をターゲットネットワークに向ける。ソースネットワークエージェントは、デバイス名、プロパティ、およびサービステンプレート情報をターゲットネットワークエージェントに送信する。ターゲットネットワークエージェントは、受信した情報を使用して、ターゲットネットワークにデバイスとしてそれ自体をアナウンスする。ターゲットネットワーク上のデバイスは、ターゲットネットワークエージェントにデバイスサービスを要求することができる。そのような要求は、ターゲットネットワークエージェントによって再パッケージ化され、ソースネットワークエージェントに送信される。ソースネットワークエージェントは、サービス要求を実際のデバイスにリダイレクトし、受信した応答をターゲットネットワークエージェントにリダイレクトする。ターゲットネットワークエージェントは、その応答を受信し、処理し、要求するデバイスにサービス応答を転送する。その後、第1ネットワーク上の要求するデバイスは、第2ネットワーク上のデバイスからのサービスに、この2つのデバイスが同一ネットワーク上にあるかのように直接にアクセスすることができる。そのような方法を使用して、ローカルネットワーク上のデバイスは、サーバがローカルネットワーク上にあるかのように、インターネットサーバ上で使用可能なサービスにアクセスすることもできる。
【０００６】
本明細書に組み込まれ、本明細書の一部を構成する添付図面は、本発明の例示的実施形態を示し、上で与えた全般的説明および下で与える詳細な説明と一緒に、本発明の特徴を説明するように働く。
【図面の簡単な説明】
【０００７】
【図１】さまざまな実施形態と共に使用するのに適する通信システムを示す通信システムブロック図である。
【図２Ａ】ある実施形態の機能性を示す通信システムブロック図である。
【図２Ｂ】ある実施形態の機能性を示す通信システムブロック図である。
【図２Ｃ】ある実施形態の機能性を示す通信システムブロック図である。
【図３】さまざまな実施形態と共に使用されるモバイルデバイスと通信するコンポーネントを示す通信システムブロック図である。
【図４】さまざまな実施形態と共に使用されるモバイルデバイス上での実施に適するユーザインターフェースを示す図である。
【図５】さまざまな実施形態の概要プロセスを示すプロセス流れ図である。
【図６】さまざまな実施形態と共に使用されるピアツーピアネットワークを確立するためにネットワークを登録する実施形態方法を示すプロセス流れ図である。
【図７】図6に示された実施形態方法内のさまざまなコンポーネントの間で交換できるメッセージを示すメッセージフロー図である。
【図８】第1ネットワーク上のデバイスが第2ネットワーク上の仮想デバイスに見えることができるようにするために第1ネットワーク上のデバイスを仮想化する実施形態方法を示すプロセス流れ図である。
【図９Ａ】第2ネットワーク上の仮想デバイスに見える第1ネットワーク上のデバイスからサービスを入手し、コンテンツを受信する実施形態方法を示すプロセス流れ図である。
【図９Ｂ】第2ネットワーク上の仮想デバイスに見える第1ネットワーク上のデバイスからサービスを入手し、コンテンツを受信する実施形態方法を示すプロセス流れ図である。
【図９Ｃ】第2ネットワーク上の仮想デバイスに見える第1ネットワーク上のデバイスからサービスを入手し、コンテンツを受信する実施形態方法を示すプロセス流れ図である。
【図１０】第1ネットワーク上のデバイスが第2ネットワーク上の仮想デバイスとしてアクセスされることを可能にするためにモバイルデバイスを使用する実施形態方法を示すプロセス流れ図である。
【図１１】第1ネットワーク上のデバイスが第2ネットワーク上の仮想デバイスとしてアクセスされることを可能にするために第1ネットワーク上のコンピュータを使用するもう1つの実施形態方法を示すプロセス流れ図である。
【図１２】第2ネットワーク上のデバイスが第1ネットワーク上の仮想デバイスとしてアクセスされることを可能にするために第1ネットワーク上のコンピュータを使用する実施形態方法を示すプロセス流れ図である。
【図１３】図12に示された方法のさまざまなコンポーネントの間で交換できるメッセージを示すメッセージフロー図である。
【図１４】さまざまな実施形態の特定の実施態様のための使用に適する通信システムを示す通信ブロック図である。
【図１５】第1ネットワーク上のデバイスが第1ネットワーク上の仮想サービスとしてサーバによって提供されるサービスにアクセスすることを可能にする実施形態方法を示すプロセス流れ図である。
【図１６】図15に示された方法のさまざまなコンポーネントの間で交換できるメッセージを示すメッセージフロー図である。
【図１７】ディジタル写真ディスプレイ内の静的イメージとして動的ファイルを表示する実施形態方法を示すプロセス流れ図である。
【図１８】図17に示された方法の例の実施態様を示すプロセス流れ図である。
【図１９】図17に示された方法のもう1つの例の実施態様を示すプロセス流れ図である。
【図２０】さまざまな実施形態と共に使用するのに適するパーソナルコンピュータを示すコンポーネントブロック図である。
【図２１】さまざまな実施形態と共に使用するのに適するサーバを示すコンポーネントブロック図である。
【図２２】さまざまな実施形態と共に使用するのに適するディジタル写真ディスプレイを示すコンポーネントブロック図である。
【発明を実施するための形態】
【０００８】
さまざまな実施形態を、添付図面を参照して詳細に説明する。可能な場合には必ず、同一の符号が、図面全体を通じて同一のまたは同様の部分を指すのに使用される。特定の例および実施態様に対して行われる言及は、例示のためのものであって、本発明または特許請求の範囲の範囲を限定することは意図されていない。
【０００９】
単語「例示的」は、本明細書では「例、実例、または例証として働く」を意味する。本明細書で「例示的」として説明されるすべての実施態様は、必ずしも、他の実施態様より好ましいまたは有利と解釈されるべきではない。
【００１０】
本明細書で使用される時に、用語「モバイルデバイス」および「ハンドヘルド」デバイスは、セルラ電話機、携帯情報端末(PDA)、パームトップコンピュータ、無線電子メール受信器、マルチメディアインターネット対応セルラ電話機、全地球測位システム(GPS)受信器、無線ゲーミングコントローラ、ならびに、プログラマブルプロセッサおよびメモリを含み、無線通信ネットワークと通信するように構成され、ウェブブラウザを有する、類似するパーソナル電子デバイスの任意の1つまたはすべてを指す。
【００１１】
本明細書で使用される時に、用語「コンピュータ」、「パーソナルコンピュータ」、および「コンピューティングデバイス」は、既知であるか将来に開発されるすべてのプログラマブルコンピュータシステムを指す。好ましい実施形態では、本明細書で説明するように、コンピュータがネットワークに結合される。コンピュータシステムを、本明細書で説明されるプロセスを実行するためにソフトウェア命令を用いて構成することができる。
【００１２】
本明細書で使用される時に、用語「コンポーネント」、「モジュール」、「システム」、および類似物は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれであれ、コンピュータ関連の実体を指すことが意図されている。たとえば、コンポーネントは、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータとすることができるが、これらであることに限定はされない。たとえば、サーバ上で動作するアプリケーションとそのサーバとの両方を、コンポーネントとすることができる。1つまたは複数のコンポーネントが、1つのプロセスおよび/または実行のスレッド内に存在することができ、1つのコンポーネントを、1つのコンピュータ上に局所化し、かつ/または複数のコンピュータの間で分散させることができる。
【００１３】
本明細書で使用される時に、用語「デバイス」は、任意の電子デバイスを指し、その複数の例が、本明細書で言及されまたは説明される。好ましい実施形態では、デバイスを、ネットワークに結合され得る「ユニバーサルプラグアンドプレイ(universal plug-and-play)」(UPnP)デバイスとすることができる。
【００１４】
用語「ピアツーピアネットワーク」は、既知のまたは将来に開発される可能性があるすべての形のピアツーピアネットワーク技術を含むことが意図されている。いくつかの実施形態が、ハイパーテキスト転送プロトコル(HTTP)メッセージングを利用するピアツーピアネットワークに言及するが、そのような言及は、単に例として働くことを意図され、特許請求の範囲の範囲を特定のネットワーク技術に限定することは意図されていない。
【００１５】
参照の簡単さのために、さまざまな実施形態の機能を示す例が、第1および第2のネットワークまたはユーザ、あるいはネットワークならびにユーザAおよびBに言及する場合がある。たとえば、第1ユーザを「ユーザA」と呼び、第2ユーザを「ユーザB」と呼ぶ場合がある。図面およびこの説明でのそのような言及は、任意であり、ネットワークおよびユーザの言及を単純化するのに使用され、したがって、さまざまな実施形態が任意の個数のネットワークおよびユーザをサポートするので、特許請求の範囲の範囲を2つのネットワークのみまたは2つのユーザのみに限定すること、あるいは特定のユーザを特定のネットワークに限定することは意図されていない。
【００１６】
さまざまな態様を、複数のコンポーネント、モジュール、および類似物を含むことができるシステムに関して提示する。さまざまなシステムが、追加のコンポーネント、モジュールなどを含むことができ、図面に関連して述べられるコンポーネント、モジュールなどのすべてを含むのではない場合があることを理解し、了解されたい。これらの手法の組合せを使用することもできる。
【００１７】
本明細書で説明されるさまざまな実施形態は、第1ネットワーク上で動作するデバイスまたはサービスの発見を可能にし、そのデバイスまたはサービスが実際のネットワークデバイスであるかのようにそのデバイスまたはサービスにアクセスできるようにするために第2ネットワーク上でのそのデバイスまたはサービスの仮想表現(virtual rendition)を作成する、方法およびサービスを提供する。好ましい実施形態では、第1および第2のネットワークは、パーソナルコンピュータなどのプログラマブルコンピュータと一緒にリンクされたユニバーサルプラグアンドプレイ(「UPnP」、たとえばhttp://www.upnp.org)デバイスを使用するピアネットワークである。第1および第2のネットワークは、それを介してプログラマブルコンピュータのそれぞれの間で通信を確立できるインターネットへの接続を提供するルータまたはホームゲートウェイを介するなど、広域ネットワークへの接続をも含む。第1および第2のネットワークは、イーサネット（登録商標）または802.11無線通信、これらの通信技術の両方の組合せ、またはインターネットプロトコル(IP)をサポートできる別のネットワーキング技術を実施することができる。プログラマブルコンピュータのそれぞれを、そのローカルネットワーク内のプラグアンドプレイデバイスを発見するエージェントアプリケーションを用いて構成することができる。エージェントアプリケーションは、コンピュータのそれぞれが、広域ネットワーク上のスーパーピアサーバを含むピアツーピアネットワークに参加することを可能にし、この広域ネットワークを介して、類似するエージェントアプリケーションをインストールされた他のコンピュータへの接続が、確立され得る。ソーシャルネットワークに似て、ユーザは、デバイスおよびサービス(たとえば、ファイル共有)をインターネットなどの広域ネットワークを介してそれを介して達成できるピアツーピアネットワークリンクを確立するように他のネットワークに勧めることができる。
【００１８】
デバイスまたはサービスの共有を開始するために、第1ネットワーク内の第1コンピュータ内の第1エージェントは、第2ネットワーク内の1つまたは複数のデバイスまたはサービスにアクセスする要求を、ピアツーピアネットワークリンクを介して第2ネットワーク内の第2コンピュータ内の第2エージェントに送信することができる。第2エージェントは、第2ネットワーク上のプラグアンドプレイデバイスの名前、プロパティ、およびサービステンプレートを入手し、そのような情報をピアツーピアネットワークリンクを介して第1エージェントに送信することができる。第1エージェントは、受信したプラグアンドプレイ情報を使用して、第2エージェントから受信したプロパティおよびサービステンプレートを有するUPnPデバイスとしてそれ自体をアナウンスすることによって第1ネットワーク上で要求されたデバイスまたはサービスを模倣する。したがって、第1エージェントは、第2ネットワーク内のデバイスまたはサービスのプロパティをアナウンスする仮想デバイスまたは仮想サービスとして働く。次に、第1ネットワーク上のUPnPデバイスは、UPnPネットワークの通常の形でその仮想デバイスまたは仮想サービスにサービスを要求することができる。仮想デバイスまたは仮想サービスへのサービスの要求を、第1エージェントによって再パッケージ化し、ピアツーピアネットワークリンクを介して第2ネットワーク内の第2エージェントに送信することができる。第2ネットワーク内の第2エージェントは、そのサービス要求を再アドレッシングし、第2ネットワーク内の実際にデバイスに送信することができる。そのデバイスは、通常の形で第2エージェントに応答する。次に、第2エージェントは、受信した応答をパッケージ化し、ピアツーピアネットワークリンクを介して第1エージェントに送信する。第1エージェントは、そのパッケージを受信し、URL(universal resource locator)またはIPアドレスを第2ネットワークまたは実際のデバイスのパブリックIPアドレスに変更するなど、受信した情報を処理し、サービス応答を第1ネットワーク上の要求するデバイスに転送する。その後、第1ネットワーク上の要求するデバイスは、第1エージェントおよび第2エージェントを介して第2ネットワーク上のデバイスからのサービスにアク
セスでき、要求されたファイルおよびサービスは、この2つのデバイスが同一ネットワーク上にあるかのように第1エージェントと第2エージェントとの間で通信される(ピアツーピアネットワークを介するのではなく)。そのような方法を使用することによって、ローカルネットワーク上のデバイスは、第2ローカルネットワーク上で使用可能なサービスに、そのデバイスがローカルネットワーク上にあるかのようにアクセスすることができる。さらに、そのような方法は、第2ネットワーク上のデバイスでの提示、印刷、または表示のために第1ネットワーク内のコンピュータまたはデバイスからコンテンツを送信することを可能にすることができる。
【００１９】
さまざまな実施形態を実施するのに適する例の通信システムを、図1に示す。そのような通信システムは、通常のホームネットワークとすることができる、本明細書でネットワークAおよびBとしてラベルを付けられ、参照されもする、複数のローカルネットワーク100および116を含むことができる。ローカルネットワーク100および116を、イーサネット（登録商標）通信または802.11無線通信、あるいはその両方の組合せとして実施することができる。ローカルネットワーク100および116は、1つまたは複数のUPnPデバイス102、104、106、110、120、122、124、および128を含む。図示の例の通信システムでは、ネットワーク100と116との両方が、ルータ112および118またはホームネットワーキングシステムで通常であるようにホームゲートウェイを介してインターネット114に接続される。ローカルネットワーク100および116は、パーソナルコンピュータ、コンピュータゲーム機、またはローカルエリアネットワークサーバなどのプログラマブルコンピュータ108および126をも含む。いくつかの実施態様では、プログラマブルコンピュータ108および126とルータ112および118またはホームゲートウェイとを、ホームゲートウェイとして機能するように構成されたパーソナルコンピュータまたはゲーム機などの同一のプログラマブルデバイス内で実施することができる。いくつかの実施形態では、1つのネットワークがインターネット114に結合された1つのプログラマブルコンピュータ108または126だけを含む時など、ローカルネットワーク100および116のうちの1つまたは複数が、ルータ112および118を含まない場合がある。
【００２０】
ローカルネットワーク100および116は、テレビジョン102および120、メディアプレイヤ(たとえば、ディジタルビデオディスク(DVD)プレイヤ104)、コンテンツソース(たとえば、衛星TV受信器ボックスまたはケーブルTV受信器ボックス124)、および出力デバイス(たとえば、ディジタルフォトフレーム106、プリンタ110、および多機能デバイス128)など、さまざまなUPnPデバイスを含むことができる。将来に開発される可能性があるUPnPデバイスを含む、任意の個数の異なるUPnPデバイスを実施することができる。さらに、コンピューティングデバイス108または126内のコンピュータハードドライブシステムなどのコンテンツストレージデバイスは、ローカルネットワーク100および116上のUPnPデバイスのうちの1つまたは複数で表示しまたは再生することのできるディジタルコンテンツ(たとえば、音楽ファイル、写真ファイル、ビデオファイル、およびテキストファイル)を格納することができる。
【００２１】
オプションで、通信システムは、インターネット114へのアクセスを有する、パーソナルコンピュータ138およびモバイルデバイス136などの他のコンピューティングデバイスを含むことができる。たとえば、セルラ電話機などのモバイルデバイス136は、無線通信ネットワーク130(たとえば、WIFIまたはセルラ電話データ通信ネットワーク)を介してインターネットにアクセスすることができる。そのような無線通信ネットワーク130は、インターネット114に結合されたゲートウェイまたはインターネットアクセスサーバ134に結合された複数の基地局132を含むことができる。パーソナルコンピュータを、インターネットゲートウェイ(図示せず)を介する有線接続によるまたは無線通信ネットワーク130によるなど、任意の従来の形でインターネット114に結合することができる。
【００２２】
さまざまな実施形態は、スーパーピアネットワーキングサーバ140、登録サーバ142、およびオプションでパブリックインターネット114上に配置された再ルーティングサーバ144を含むこともできる。スーパーピアネットワーキングサーバ140は、本明細書で説明されるエージェントアプリケーションを用いて構成されたインターネット接続されたコンピューティングデバイス108と126との間のピアツーピア通信を使用可能にするために、さまざまな実施形態に従ってソフトウェア命令を用いて構成された任意の市販サーバとすることができる。登録サーバ142は、ウェブブラウザ(適切なブラウザを有するモバイルデバイス136上またはウェブブラウザを用いて構成されたコンピューティングデバイス108、126、および138上のいずれか)から要求を受信できるウェブページをホスティングするためにソフトウェア命令を用いて構成された任意の市販サーバとすることができる。オプションの再ルーティングサーバ144は、ローカルエリアネットワーク100と116との両方がポートフォワーディング機能性を提供しない時にローカルエリアネットワーク100と116との間で通信を再ルーティングするためにソフトウェア命令を用いて構成された任意の市販サーバとすることができる。
【００２３】
さまざまな実施形態で、スーパーピアネットワーキングサーバ140、登録サーバ142、およびオプションで再ルーティングサーバ144は、デバイスのどの構成または特定の個数にも限定されず、単一のサーバ内、2つのサーバ内、または複数のサーバ内で実施され得る。さらに、複数のスーパーピアネットワーキングサーバ140を、多数のピアツーピア通信リンクをサポートするためにインターネット上に配置することができる。
【００２４】
スーパーピアネットワーキングサーバ140を、さまざまなコンピューティングデバイス108および126がエンドポイントデバイス上のインターネットプロトコル(IP)アドレスを知らずにお互いを突き止め、ピアツーピアの形でメッセージおよびデータを渡すことを可能にするために、ソフトウェア命令を用いて構成することができる。各エンドポイントコンピューティングデバイス108および126の位置を、IPアドレスではなく一意の名前のアドレッシング方式を使用して判定することができる。そのようなアドレッシング方式では、各アドレスが、ドメインIDとして知られる。したがって、論理的には、各ドメインIDは、技術的には単一のネットワークサブネットまたはローカルネットワークを表し、「プレース(place)」(たとえば、マイハウス、マイオフィスなど)と呼ばれる場合がある。ピアツーピア通信を使用可能にするために、スーパーピアネットワーキングサーバ140は、ユーザアイデンティティまたはユーザアカウントと関連するドメインIDとのデータベースへのアクセスを有する。アカウントのこのデータベースを、登録サーバ142によって維持しまたは追加することができ、登録サーバ142には、ユーザがインターネット114を介してアクセスすることができる。単一のユーザが、多数の関連するドメインIDまたは「プレース」を有することができる。
【００２５】
スーパーピアネットワーキングサーバ140は、エージェントアプリケーションを用いて構成されたネットワークコンピューティングデバイスのIPアドレスへのアクセスを有するので、コンピューティングデバイス108および126がお互いのドメインIDおよびスーパーピアネットワーキングサーバ140のIPアドレスについて知らされる時に、ピアツーピアネットワーク128が、作成され得る。ユーザは、スーパーピアネットワーキングサーバ140に登録された(たとえば、登録サーバ142を介して)他のユーザに彼らと共にネットワーキングするように勧めることによって、ピアツーピアネットワークを作成することができる。この形で、スーパーピアネットワーキングサーバ140を介するピアツーピアネットワークの作成は、スーパーピアネットワーキングサーバ140に登録されたユーザの間のソーシャルネットワークサイト(たとえば、FacebookまたはMySpace)のように機能することができる。したがって、ユーザは、ドメインIDまたは別のシステムアカウントへの他の参照がそのユーザのネットワークと通信できることを示すことによって、彼らのネットワークに「友人」を接続することができる。2つのネットワーク100および116がピアツーピア通信リンク128にリンクされる時に、あるネットワークからのメッセージを、スーパーピアネットワーキングサーバ140に向けることができ、スーパーピアネットワーキングサーバ140は、アドレスドメインIDを使用して、他のネットワークをルックアップし、メッセージをその他のネットワークに転送する。
【００２６】
さまざまな実施形態は、あるネットワーク100上に存在するUPnP対応デバイスが第2ネットワーク116上で「仮想的に」使用可能になることを可能にするためにUPnPデバイスの機能性を利用する。UPnPは、ネットワークサブネット上でピアツーピアの形でデバイスによってお互いに提供されるサービスのディスカバリ(発見)およびアクセスのための周知のプロトコルである。UPnPデバイスのローカルネットワークでは、各デバイスは、IPマルチキャスティングの方法を使用して、ネットワーク上でのその存在をアナウンスし(「アドバタイズメント」または「アドバタイズメントアナウンスメント」と呼ばれる)、ネットワーク上の他のUPnPデバイスを検索する(「ディスカバリ」と呼ばれる)ことができる。従来のUPnPネットワーク内では、UPnPデバイスアドバタイズメントおよびディスカバリのIPマルチキャストは、単一のネットワークサブネットに制限される。したがって、図1では、デバイスディスカバリ/アドバタイズメント機能は、ローカルネットワークA 100およびローカルネットワークB 116のそれぞれに制限され、ディスカバリ/アドバタイズメント機能は、いかなる形でもインターネットへまたはローカルネットワークの外部へ進んでルーティングされ得ない。したがって、第1ネットワーク100内のUPnPデバイスが、標準UPnP機能性を使用して第2ネットワーク116内のUPnPデバイスを「見る」ことまたは相互作用することは、不可能である。
【００２７】
さまざまな実施形態は、第1ネットワーク100内に配置されたUPnPデバイスおよび関連するサービスを、第2ネットワーク116上で「仮想化し」、使用可能にすることを可能にする。そのような機能性を可能にするために、エージェントアプリケーションが、各ローカルネットワーク100および116上のコンピューティングデバイス108および126上で展開される。このエージェントアプリケーションは、コンピューティングデバイス108および126を、複数の形でそのそれぞれのローカルネットワーク100および116上のUPnPデバイスおよびサービスと相互作用し、インターネット114を介してスーパーピアネットワーキングサーバ140と通信し、インターネット114を介してスーパーピアネットワーキングサーバ140から受信される外部メッセージに応答するかこれによって制御されるように構成する、ソフトウェアプログラムである。制御メッセージを、登録サーバ142によってホスティングされるユーザインターフェースウェブサイトとのユーザ相互作用に応答して、登録サーバ142によってスーパーピアネットワーキングサーバ140に送信することができる。
【００２８】
各ローカルネットワーク100および116内で、エージェントアプリケーションは、UPnPデバイスからのアドバタイズメントメッセージをリスンすることができる。また、時々、エージェントアプリケーションは、ネットワークに接続されたUPnPデバイスを発見するために、ローカルネットワーク100および116上でディスカバリメッセージを送出することができる。この形で、エージェントアプリケーションは、そのローカルネットワーク100および116上で使用可能なUPnPデバイスおよびサービスのすべての完全なリストを作ることができる。UPnP使用可能デバイスおよびサービスのこのリストを、エージェントアプリケーションがその上で実施されるコンピューティングデバイス108および126内のキャッシュ内で維持することができる。
【００２９】
ユーザが、登録サーバ142を介してシステムに登録(彼らのコンピューティングデバイスにエージェントアプリケーションをダウンロードすることを含むプロセス)された後に、ユーザは、それとリソースを共有すべき別の登録されたネットワークを選択するために、インターネット114にリンクされた任意のコンピューティングデバイス136または138を介して登録サーバ142(または別のサーバ)にアクセスすることができる。ユーザが、登録サーバ142上でホスティングされるウェブサイトにアクセスし、彼ら自身を識別することによって登録サーバ142にサインインする時に、ユーザは、彼ら自身のドメインID(「プレース」)のリストおよび彼らの「友人」(すなわち、そのユーザのネットワークドメインにリンクできるとそのユーザが示した個人)のリストならびに彼らの友人のドメインを提示され得る。
【００３０】
デバイスまたはサービスを共有するために、ユーザは、任意のコンピューティングデバイス136または138から登録サーバ142にアクセスすることができ、デバイスまたはファイルをそこから使用可能にする「ターゲット」としてユーザの友人のドメインのうちの1つを選択するために、登録サーバ142上でホスティングされるユーザインターフェースウェブサイトを使用することができる。ターゲットネットワークが選択される前または後に、ユーザに、共有できるそのユーザ自身のドメイン(「ソース」ドメインと呼ばれる)のリストを提示することもできる。ユーザが、ソースドメインとしてそのユーザのドメインのうちの1つを選択する時に、登録サーバ142は、スーパーピアネットワーキングサーバ140に制御メッセージを送信することができる。スーパーピアネットワーキングサーバ140は、その制御メッセージを選択されたソースネットワーク100内のコンピュータ108に中継することができる。この制御メッセージは、コンピュータ108内で動作するエージェントアプリケーションによってそのローカルネットワーク100内で発見されたUPnPデバイスのリストを生成するようにそのエージェントアプリケーションに促す。これに応答して、エージェントアプリケーションは、スーパーピアネットワーキングサーバ140を介する要求経路を介して登録サーバ142にUPnPデバイスのリストを送り返す。登録サーバ142は、ソースネットワーク上のUPnPデバイスのリストを受信し、ユーザへの表示のためにユーザのコンピューティングデバイス136または138に送信されるユーザの選択に対する情報またはウェブページ応答を生成することができる。UPnPデバイスのそのようなリスティング内では、各デバイスを、本明細書でUUID(Universally Unique ID)と呼ばれるUPnPプロパティによって一意に識別することができる。この形で、ユーザは、ユーザがインターネット114にリンクされたモバイルデバイス136または別のコンピューティングデバイス138を介して登録サーバ142にアクセスする時など、サーバがそのネットワーク上に物理的に存在しない場合であっても、ユーザのドメインのうちの1つに配置されたUPnPデバイスのすべてを見ることができる。
【００３１】
ソースドメイン上のユーザのUPnPデバイスのリストを提示するユーザインターフェースウェブページの一部として、ユーザは、特定のUPnPデバイスまたはサービスを選択でき、選択されたデバイスまたはサービスをターゲットドメイン上で「仮想化する」オプションを与えられるものとすることができる。ユーザが、選択されたデバイスまたはサービスを仮想化するための応答を入力する場合に、登録サーバ142は、スーパーピアネットワーキングサーバ140を介してソースドメイン(すなわち、ユーザのネットワーク100)内のコンピュータ108に制御メッセージを送信することができる。この制御メッセージは、選択されたUPnPデバイスのUUIDとターゲットドメインIDとの両方を識別することができる。コンピュータ108上で動作するエージェントアプリケーションは、その制御メッセージを解釈し、その制御メッセージ内で参照されるUPnPデバイスを突き止め、そのデバイスのUPnPデバイス記述とUPnPサービス記述とを含む応答メッセージを作る。エージェントアプリケーションは、この応答メッセージをターゲットドメインIDと一緒にスーパーピアネットワーキングサーバ140に送信することができる。スーパーピアネットワーキングサーバ140は、ドメインIDに関連するコンピュータのIPアドレスを(たとえば、ユーザアカウントデータベース内で)ルックアップし、そのメッセージをそのIPアドレス(すなわち、ターゲットネットワーク116内のコンピュータ126のIPアドレス)に中継する。ターゲットドメイン内のコンピュータ126内のエージェントアプリケーションは、応答メッセージを受信し、メッセージ内に格納されたデバイス記述およびサービス記述を読み取る。受信されたデバイス記述およびサービス記述を使用して、エージェントアプリケーションは、ターゲットネットワーク116上でUPnPデバイスアドバタイズメントを実行する。このアドバタイズメントメッセージは、そのデバイスにターゲットネットワーク116上の他のUPnPデバイスによってアクセスできる場所を示すURLを含む。このURLは、ターゲットドメイン内のコンピュータ126上で動作するエージェントアプリケーションによって、それ自体を、具体的にはエージェントアプリケーション内で動作する単純なHTTPサーバをポイントする
ように構成される。この形で、エージェントアプリケーションは、ソースドメイン(すなわち、ネットワーク100)内でユーザによって選択されたデバイスとしてそれ自体をアナウンスし、したがって、エージェントアプリケーションは、ターゲットドメイン(すなわち、ネットワーク116)上では選択されたデバイスに見える。これが、図2Aに示されており、図2Aは、ネットワークA上に存在するデータストア202がネットワークB上で仮想データストア202vに見えることと、ネットワークBに存在するUPnPデバイス210がネットワークA上で仮想UPnPデバイス210vに見えることとを示す。
【００３２】
この動作を、図2Aを参照して例として示すことができる。第1ユーザ(ユーザA)は、無線通信ネットワーク130を介してインターネット114に接続されたブラウザを介して、セル電話モバイルデバイス136から登録サーバ142にアクセスし、サインインすることができる。登録サーバ142によって生成されたウェブページ内で、ユーザAは、彼自身のドメイン(たとえば、ネットワークドメインA)を、彼の友人(たとえば、ユーザB)の識別子および彼の友人のドメイン(たとえば、ネットワークB)と共に見ることができる。このウェブページは、彼自身のドメイン(ネットワークA)内のすべてのUPnPデバイスのリストを表示することもでき、あるいは、そのようなリストは、ユーザAがソースドメインを選択する時に表示され得る。表示されるウェブページ内のユーザインターフェースを使用して、ユーザAは、ターゲットドメインとして彼の友人ユーザBのネットワークBを選択することができる。次に、ユーザAは、彼のドメイン(ネットワークA)をソースドメインとして選択し、ソースドメイン上のUPnPデバイスのディスプレイを受信することができる。デバイスのこのリスティングを含むユーザインターフェースを使用して、ユーザAは、仮想化のために彼のメディアストア202を選択することができる。この例では、メディアストア202は、2つのUPnPサービス(ContentDirectory:1およびConnectionManager:1)を含むUPnPメディアサーバである。登録サーバ142によってホスティングされるユーザインターフェースを使用して、ユーザAは、彼のメディアストア202を仮想化することを選択する。上で説明したように、この選択は、ネットワークA内のコンピュータ108上で動作するエージェントアプリケーションに、ターゲットネットワーク(すなわち、ネットワークB)内のコンピュータ126上で動作するエージェントアプリケーションへメディアストア202のデバイス記述およびサービス記述を送信させる。このメッセージの受信時に、ネットワークB内のエージェントアプリケーションは、受信したデバイス記述およびサービス記述に基づいて、ネットワークB上でUPnPアドバタイズメントメッセージを送出する。これらのUPnPアドバタイズメントメッセージ内で、エージェントアプリケーションは、それ自体をポイントするようにデバイス記述内の制御URLをセットする。この形で、ネットワークB内の他のUPnPデバイスは、図2Aに示されているように、メディアストア202vがネットワークB内に実際に存在すると信じるように「だまされる」。ターゲットネットワークB上のすべてのデバイスは、仮想化されたメディアストア202vが実際にネットワークB上に存在するかのように、仮想化されたメディアストア202vのサービスおよびファイルにアクセスすることができる。しかし、デバイスが仮想化されたメディアストア202vと共に有するすべての相互作用は、実際には、エージェントがUPnPデバイスアドバタイズメントメッセージ内の位置URL内で指定されたので、ネットワークB内のコンピュータ126上で動作するエージェントアプリケーションに送信される。
【００３３】
UPnPプロトコルでは、あるUPnPデバイスが別のUPnP対応デバイスによって発見された後に、選択されたデバイス内のサービスを突き止め、使用することができる。これは、たとえば、HTTPを介してサービス記述を入手し、デバイス記述内で指定されたURL(制御URL)へのHTTPを介するSOAPプロトコルを使用する相互作用を実行することによって達成することができる。サービス記述を介して、UPnP対応デバイスは、発見されたデバイス内のサービスおよびUPnPアクション、そのようなサービスおよびアクションが入力として必要とするパラメータ、ならびにそのようなサービスおよびアクションによって返される結果の形を「理解する」ことができる。
【００３４】
さまざまな実施形態で、仮想化されたUPnPデバイス(たとえば、仮想化されたメディアストア202v)がネットワーク(たとえば、ネットワークB)上でアナウンスされた後に、そのネットワーク上の他のデバイス126、210、212、および214は、コンピュータ126上で動作するエージェントアプリケーションへのURLである指定されたURLへのHTTP GET要求を介して、そのデバイスのデバイス記述およびサービス記述を入手することを試みることができる。エージェントアプリケーションは、それが実際のデバイスであるかのようにそのような要求を処理するため、ならびに呼び出すUPnPデバイス126、210、212、および214に仮想化されたデバイス202vのデバイス記述およびサービス記述を返すために、単純なHTTPサーバを含む。この形で、たとえば、メディアプレイヤなど、ネットワークB内のUPnPデバイス212は、ネットワークA内の実際のメディアストア202のデバイス記述およびサービス記述と一致する、仮想化されたメディアストア202vのデバイス記述およびサービス記述を入手することができる。この例では、サービス記述内の制御URLは、ネットワークB内のコンピュータ126上で動作するエージェントアプリケーションをポイントし、したがって、サービスに関するすべての要求は、ネットワークA内の実際のデバイス202ではなくエージェントアプリケーションに対して行われる。
【００３５】
あるデバイス(たとえば、メディアプレイヤ212)が、仮想化されたデバイス(たとえば、仮想化されたメディアストア202v)によって提供される「仮想」サービスへの呼出し234を行う時に、コンピュータ126内のエージェントアプリケーションは、インバウンドSOAP要求を受け入れ、入力パラメータを解析し、それが仮想化されたデバイス記述とサービス記述との両方に対して有効であることをテストし、その後、そのソースネットワーク内のエージェントアプリケーション(たとえば、ネットワークA内のコンピュータ108内で動作するエージェントアプリケーション)内のエンドポイントにアドレッシングされた要求制御メッセージ220を送信する。この要求制御メッセージは、スーパーピアネットワーキングサーバ140を介してピアツーピアネットワーク128を介して渡され、スーパーピアネットワーキングサーバ140は、このメッセージをソースネットワークA内のコンピュータ108上で動作するエージェントアプリケーションのIPアドレスに中継する。この要求制御メッセージは、仮想化されたデバイスに対して呼び出されたUPnPデバイス、サービス、アクション、および入力パラメータの詳細を含む。ソースドメイン(すなわち、ネットワークA)内のコンピュータ108内のエージェントアプリケーションは、要求制御メッセージを受信し、アンパックする。受信された要求制御メッセージに含まれるUUIDを使用して、エージェントアプリケーションは、ローカルネットワーク(すなわち、ネットワークA)上で正しいデバイス(たとえば、メディアストア202)を突き止め、制御メッセージから入手された適当なアクションおよびパラメータと共に、ソースネットワークサービス内のUPnPデバイスの制御URLにSOAP要求224を送信する。ネットワークA内のソースデバイス(たとえば、メディアストア202)は、ネットワークA内のコンピュータ108内のエージェントアプリケーションに応答メッセージ236を送信することによって、SOAP要求に応答する。エージェントアプリケーションは、その応答メッセージを受信し、この応答メッセージを応答制御メッセージにパックし、この応答制御メッセージ226を要求制御メッセージのエンドポイントに送り返し、このエンドポイントは、ターゲットドメインネットワークB内のコン
ピュータ126上で動作するエージェントアプリケーションである。要求制御メッセージと同様に、応答制御メッセージ226は、スーパーピアネットワーキングサーバ140を介してピアツーピアネットワークを介して送信され、スーパーピアネットワーキングサーバ140は、そのメッセージをターゲットネットワークB内のコンピュータ126上で動作するエージェントアプリケーションのIPアドレスに中継する。ターゲットネットワークB内のコンピュータ126上で動作するエージェントアプリケーションは、応答制御メッセージ226をアンパックし、受信された結果のパラメータを使用して、ネットワークB内の要求するデバイス212からのオリジナルSOAP要求に応答する。したがって、ネットワークB内の呼び出すデバイス212は、エージェントアプリケーションによって作成されたネットワークB内の仮想化されたデバイス202vおよびサービスを呼び出すことができるように見える(破線228によって示されるように)が、呼び出すデバイス212は、実際にはネットワークA内の実際のUPnPデバイスから応答を供給される。
【００３６】
単一のデバイスまたはサービスを仮想化することに加えて、図2Bに示されているように、2つのユーザがそのそれぞれのネットワークを一緒にリンクした時に、彼らのネットワークがそれ自体のUPnPデバイスと他方のユーザのネットワーク上のUPnPデバイスの仮想表現との両方を含むように見えるようにするために、これらの方法を拡張しまたは実施することができる。
【００３７】
UPnPフォーラム(http://www.upnp.org)は、メディアデバイスがUPnPプロトコルおよび標準規格を使用してお互いの間で通信するための方法をも作成した。このために、UPnPプロトコルは、複数のUPnPデバイスタイプ(たとえば、メディアサーバ)およびサービス(たとえば、ContentDirectory:1およびAVTransport:1)を定義する。しかし、従来のUPnPプロトコルは、そのような通信をローカルネットワークに制限し、インターネットを介する外部ネットワークへの通信を可能にしない。
【００３８】
従来のUPnPネットワークでは、メディアプレイヤは、実際のソースデバイス内でメディアのアイテムを突き止めるために、ContentDirectory:1内のサービステンプレート内で定義される「browse(ブラウズ)」という名前のUPnPアクションを呼び出すことができる。所望のメディアアイテムが突き止められた後に、UPnPプロトコル仕様は、コンテンツディレクトリが、DIDL-Liteと呼ばれるフォーマットでメディアアイテムのXMLベースの記述を返すことを要求する。DIDL-Lite定義は、「RES」と呼ばれる要素すなわちリソースを含む。このRES要素の値は、要求するデバイスによって再生されるメディアの位置をポイントするURLである。通常のサブネット内で、このURLは、ContentDirectory:1サービスを提供するソースデバイスをポイントし、いくつかのパラメータが、メディアアイテム自体を指定する。その後、要求するメディアプレイヤは、このURLに接続し、それから読み取って、メディアアイテムを構成するデータ(たとえば、MP3ファイル)を入手する。
【００３９】
さらなる実施形態では、ピアツーピアネットワークを介してデータを渡さずに、ソースネットワーク内の実際のソースデバイスからターゲットネットワーク内の要求するデバイスへのメディアストリーミングを可能にする、URLマッピングが実行される。仮想化されたデバイスがContentDirectory:1をサポートしており、したがって、実際のメディアアイテムがリモートソースネットワーク(たとえば、ネットワークA)内に配置されている場合に、RES URLは、メディアをそこで見つけることができるターゲットネットワーク(たとえば、ネットワークB)内の正しい位置をポイントするように書き直される。これを行うために、ソースネットワーク内またはターゲットネットワーク内のいずれかのコンピュータ108および126内で動作するエージェントアプリケーションは、このURL書き直しを実行するため、およびこれによってソースネットワーク内のソースデバイスからターゲットネットワーク内の要求するデバイスへのコンテンツの配送を最適化するために、複数の技法を使用する。
【００４０】
エージェントアプリケーションが、ローカルネットワークコンピュータ108および126内でスタートアップする時に、そのエージェントアプリケーションは、ネットワークポートフォワーディングをサポートできるインターネットゲートウェイデバイス(IGD)を突き止めるためにmDNS(multicast domain name service)を使用し、このmDNSは、ネットワークサービスディスカバリのもう1つの標準プロトコルである。ルータ112または118に結合されたインターネットゲートウェイなどの、ポートフォワーディングサポートするデバイスが見つかる場合に、エージェントアプリケーションは、IGDから外部IPアドレス(すなわち、パブリックインターネット上で見られるローカルネットワーク100および116のIPアドレス)を入手し、コンピュータ108および126内で動作するエージェントアプリケーションへのこのデバイスでのポートフォワードを作成する。このポートフォワードの詳細は、エージェントアプリケーション内で保持され、後続の制御メッセージ内でターゲットネットワーク(たとえば、ネットワークB)内のエージェントアプリケーションに渡される。RES要素が、メディアプレイヤによる「browse」アクションの結果として仮想化されたContentDirectory:1サービスとして働くエージェントアプリケーション(すなわち、ターゲットネットワーク内のコンピュータ126上で動作するエージェントアプリケーション)によって生成される時に、そのRES要素は、特にこのためにHTTPサーバを維持するエージェントアプリケーションを戻ってポイントするためにエージェントアプリケーションによって変更される。その後、メディアデータは、ソースドメインおよびターゲットドメイン内のコンピュータ108および126内で動作するエージェントアプリケーションの間で転送されるが、RES URLは、メディアデータがピアツーピアメッセージングネットワーク128を使用するのではなくインターネット114を介して送信されるようにするために、追加情報を用いて書き直される。RES URLが書き直される形は、下で説明するように、ソースネットワークおよびターゲットネットワークのポートフォワーディング能力に依存する。
【００４１】
ソースドメインネットワークがポートフォワーディングをサポートする場合には、メディアソースURLは、メディアプレイヤからターゲットネットワークエージェントアプリケーション(たとえば、ネットワークB内のコンピュータ126内で動作するエージェント)への要求が、ターゲットクライアント(たとえば、ターゲットネットワークB内のメディアプレイヤ212)がピアツーピアメッセージングネットワークを介して進まずにソースドメイン内のエージェントアプリケーションに直接にHTTP read要求を行うことを可能にするために解釈されるように、符号化される。したがって、HTTP read要求は、ソースネットワークA内のコンピュータ108内で動作するエージェントアプリケーションにアドレッシングされ、スーパーピアネットワーキングサーバ140を通過せずにインターネット114を介して送信される。この実施態様は、図2Aに示され、図2Aは、スーパーピアネットワーキングサーバ140を通過せずにソースドメインおよびターゲットドメイン(すなわち、ネットワークAおよびB)内のコンピュータ108および126内で動作するエージェントアプリケーションの間でのインターネット114を介する通信220を介して流れるメディアデータを示す。したがって、ソースドメイン内のメディアへのアクセスを可能にするネゴシエーションは、ピアツーピアネットワークを介して達成されるが、メディアデータの送信またはストリーミングは、インターネットを介してソースドメインおよびターゲットドメイン内のエージェントアプリケーションの間で直接に達成される。
【００４２】
ソースドメインがポートフォワーディングをサポートしないが、ターゲットドメインがポートフォワーディングをサポートする場合には、ターゲットドメイン内のコンピュータ126内のエージェントアプリケーションは、メディアプレイヤ(たとえば、ターゲットネットワークB内のメディアプレイヤ212)からターゲットドメインエージェントアプリケーション(すなわち、ターゲットネットワークB内のコンピュータ126内で動作するエージェントアプリケーション)への要求がソースドメイン内のコンピュータ108上で動作するエージェントアプリケーションへの制御メッセージの送信を引き起こすようにするために、URLを符号化することができる。この制御メッセージは、そのエージェントアプリケーションに、ピアツーピアメッセージングネットワークを利用せずにインターネットを介してターゲットドメインに直接にメディアデータをプッシュさせる。したがって、HTTP read要求は、ソースドメイン内のエージェントアプリケーションにメディアソース(たとえば、メディアストア202)から要求されたメディアを入手させ、入手されたメディアデータをインターネット114を介してターゲットドメイン内のエージェントアプリケーションにプッシュさせる制御メッセージに変換される。次に、ターゲットドメイン内のエージェントアプリケーションは、メディアを受信し、そのエージェントアプリケーションがメディアソースであるかのように、要求するメディアプレイヤにそのメディアを供給する。この実施態様も、図2Aに示され、図2Aは、スーパーピアネットワーキングサーバ140を通過せずにソースドメインおよびターゲットドメイン(すなわち、ネットワークAおよびB)内のコンピュータ108および126内で動作するエージェントアプリケーションの間でのインターネット114を介する通信220を介して流れるメディアデータを示す。やはり、ソースドメイン内のメディアにアクセスすることを可能にするネゴシエーションは、ピアツーピアネットワークを介して達成されるが、メディアデータの送信またはストリーミングは、インターネットを介してソースドメインおよびターゲットドメイン内のエージェントアプリケーションの間で直接に達成される。
【００４３】
ソースドメインおよびターゲットドメインのどちらもがポートフォワーディングをサポートしない場合には、ターゲットドメイン内のコンピュータ126内で動作するエージェントアプリケーションは、ソースドメイン内のコンピュータ108内で動作するエージェントアプリケーションに制御メッセージを送信し、この制御メッセージは、ソースエージェントアプリケーションに、要求されたメディアデータを入手し、インターネット114上に存在する中間中継サーバ(本明細書では再ルーティングサーバ144と呼ばれる)にプッシュするように指示する。この再ルーティングサーバ144は、効率的なデータバッファとして働き、データのアップロードおよびダウンロードが発生することを可能にする。ほぼ同時に、ターゲットドメイン内のコンピュータ126内で動作するエージェントアプリケーションは、同一の再ルーティングサーバ144にアクセスし、再ルーティングサーバ144によって作成されたバッファからのメディアデータの読取りを開始する。ターゲットドメインエージェントアプリケーションからソースドメインエージェントアプリケーションへの制御メッセージを、スーパーピアネットワーキングサーバ140を介してピアツーピアネットワーク上で送信することができるが、後続のメディアデータ送信は、再ルーティングサーバ144を介して通信され、これによって、ピアツーピアネットワークを迂回する。この実施態様は、図2Cに示され、図2Cは、スーパーピアネットワーキングサーバ140を通過せずにソースドメインとターゲットドメインと(すなわち、ネットワークAとBと)の間でインターネット内に配置された再ルーティングサーバ144を介してインターネットを介して流れるメディアデータを示す。したがって、ソースドメイン内のメディアにアクセスすることを可能にするネゴシエーションは、ピアツーピアネットワークを介して達成されるが、メディアデータの送信またはストリーミングは、インターネットを介して再ルーティングサーバ144を介してソースドメインおよびターゲットドメイン内のエージェントアプリケーションの間で達成される。
【００４４】
実行される特定のURLマッピングにかかわりなく、メディアプレイヤは、要求されたメディアデータをターゲットドメイン内のエージェントアプリケーションから読み取り、それがそのローカルネットワーク(たとえば、ネットワークB)上のUPnPデバイスからメディアデータを読み取っているかのようにそのデータをレンダリングする(たとえば、曲を再生する、またはビデオを表示する)。
【００４５】
上で述べたように、ユーザは、モバイルデバイス136を含む、インターネット114へのアクセスを有する任意のコンピューティングデバイスから、デバイスおよびサービスを彼らのドメイン(たとえば、ネットワークA)上で使用可能にする仮想化プロセスを開始することができる。この能力は、ユーザに、彼らと共にメディアストアを持ち運ぶ必要なしに彼らのメディアファイルへのアクセスを有する能力を与え、ユーザが彼らと共にセルラ電話機を有する場合に、ユーザは、彼らのメディアを使用可能なネットワーク上の任意のUPnPデバイスに向けることができる。
【００４６】
モバイルデバイス136上でのネットワークアクセスおよびデバイスアクセスの制御を可能にする通信システムのコンポーネントのいくつかを、図3に示す。モバイルデバイス136がインターネット114にアクセスし、インターネットを介して登録サーバ142にアクセスすることを可能にするために、モバイルデバイス136は、無線ネットワーク130と通信することができる。無線ネットワーク130は、インターネット、セキュアLAN、WAN、または他のネットワークなどのデータリンク330を介してキャリアネットワーク326を介してインターネット114と通信することができる。キャリアネットワーク326は、MSC(mobile switching center)332に送信されるメッセージ(一般にデータパケットからなる)を制御し、データおよび音声情報を転送するためにMSC 332と通信する。MSC 332を、データ転送に関してデータネットワークおよび/またはインターネット部分、音声情報に関してPOTS部分など、別のネットワーク336によって複数の基地局(BTS)132に接続することができる。BTS 132は、符号分割多元接続(CDMA)、ショートメッセージングサービス(SMS)、または任意の他の無線方法など、所定の音声サービスおよび/またはデータパケットサービスを使用して、モバイルデバイス136にメッセージを無線でブロードキャストし、モバイルデバイス136からメッセージを無線で受信する。
【００４７】
モバイルデバイス136は、任意の常駐アプリケーション(たとえば、図1に示された登録サーバ142によって通信される情報を協調的に扱う「マイメディア」インターフェース322)との相互作用を可能にするアプリケーションプログラミングインターフェース(API)320を介するなど、プロセッサ318と通信するメモリ316を有するコンピュータプラットフォーム314を含むように構成される。
【００４８】
図4に、さまざまな実施形態と共に使用されるパーソナルメディアコンテンツにリモートからアクセスし制御するグラフィカルユーザインターフェース(GUI)402を提供する例のモバイルデバイスディスプレイ400を示す。そのようなGUI 402は、ディスプレイ400の下に提供できるキーパッド内の物理キーを押すことによってまたはディスプレイがタッチスクリーン能力を有する時にディスプレイ自体を押すことによって選択できる、機能に関連するアイコンおよび形状を含むことができる。GUIディスプレイ416は、パーソナルメディアコンテンツインデックス418を含むことができ、パーソナルメディアコンテンツインデックス418は、「マイメディア」タブ420、「プレイヤ選択」タブ422、「メディアを見つける」検索タブ424、および「ゲートウェイ」リンキングタブ426などのタブの階層の下で編成され得る。たとえば、「マイメディア」タブ420の下で、GUIは、メディアタイプ(たとえば、オーディオ、ビデオ、イメージなど)、アーティスト、アルバムタイトル、ジャンル、プレイリスト、曲タイトルその他のリスティングなど、複数の使用可能なデバイスまたはサービスのリストアイテムA〜D 428〜431を提供することができる。このディスプレイは、メディア購入の機会または示されているメディアリスティングに関係する付帯サービスに関するものなど、サービスのプロバイダが実施できる広告バナー432を含むことができる。
【００４９】
上で述べたように、ユーザがデバイスまたはサービスをターゲットドメイン上で使用可能にするために登録サーバ142にアクセスする時に、登録サーバ142は、モバイルデバイスがGUIディスプレイ402上で提示できるそのようなデバイスまたはサービスのリスト(たとえば、リストアイテムA〜D 428〜431)を生成することができる。そのGUI機能性を使用して、ユーザは、特定の友人ドメインをターゲットドメインとして、特定のリストされたユーザドメインをソースドメインとして、およびターゲットドメイン上で仮想化される特定のデバイスまたはサービスを選択することができる。
【００５０】
さまざまな実施形態で用いられるプロセスの概要を、方法500を示す図5に示す。ステップ502で、ユーザが、さまざまな実施形態を介する共有のためにローカルネットワークを登録すると判断する時に、そのユーザは、インターネット114を介して登録サーバ142に接続することによって登録サーバ142にアクセスすることができる。サービスに関する登録の一部として、ユーザに、登録サーバが将来にそのユーザのアイデンティティを確認するのに使用できる識別する情報を提供するように促すことができる。また、このプロセスの一部として、登録サーバは、ユーザのネットワーク上のコンピュータにエージェントアプリケーションをダウンロードすることができる。サービスに登録した後に、ユーザは、ステップ504で、友人および同僚に、彼らのローカルネットワークをピアツーピア通信リンクにリンクするように勧めることができる。このプロセスは、ユーザが友人を識別し、他者に彼らのピアツーピアネットワークに参加するように勧める、ソーシャルネットワーキングプロセスに非常に似ている。ユーザがお互いを友人として識別した後に、ユーザは、デバイスおよびサービスを共有するためのターゲットネットワークを、登録サーバ142を介してそのネットワークを識別することによって選択することができる。ユーザが、メディアを共有するためのターゲットネットワークおよびソースネットワークを識別した後に、ステップ506で、ユーザは、ターゲットネットワーク上で選択されたデバイスまたはサービスを仮想化するプロセスを開始することができる。次に、ステップ508で、ターゲットネットワーク上のUPnPデバイスは、ピアツーピアネットワークリンクを介して仮想デバイスまたは仮想サービスにアクセスすることができる。ステップ510で、ターゲットネットワーク上のメディアプレイヤデバイスがソースネットワーク上のメディアファイルにアクセスする時に、ソースネットワークおよびターゲットネットワーク上のコンピュータ108および126上のエージェントアプリケーションは、ピアツーピアネットワークリンクを介してデータを送信することなくインターネットを介するメディアの直接アクセスを可能にするURLにメディアデータURLまたは仮想コンテンツをマッピングするために協力する。
【００５１】
登録サーバ142に登録する例の実施形態方法を、図6に示す。登録プロセスを開始するために、ステップ602で、ユーザは、登録サーバ142へのコンピュータリンクを確立する。ステップ604で、ユーザに、登録サーバが将来にそのユーザのアイデンティティを確認することを可能にするのに十分な情報を含む、ユーザアカウントを作成するために要求されるユーザ自身に関する情報を入力するように促すことができる。そのような情報を、ユーザアカウントデータベースに格納することができる。ステップ606で、登録サーバは、エージェントアプリケーションをユーザのネットワーク上のコンピュータにダウンロードし、そのアプリケーションをインストールさせることもできる。このプロセスの一部として、登録サーバは、ユーザに一意ドメインIDを与え、ユーザのネットワーク上のコンピュータのIPアドレスと一緒にユーザのドメインIDをユーザアカウントデータベースに格納することができる。この情報を使用して、スーパーピアネットワーキングサーバ140は、ユーザのドメインIDを受信することに基づいて、制御メッセージをユーザのコンピュータおよびそのエージェントアプリケーションにアドレッシングすることができる。したがって、ドメインIDは、スーパーピアネットワーキングサーバ140が制御メッセージを適当なIPアドレスにリダイレクトするのに使用できる、そのユーザのコンピュータおよびそのエージェントアプリケーションのパブリックアドレスとして働く。
【００５２】
ユーザが登録サーバに登録した後に、ステップ610で、ユーザは、スーパーピアネットワーキングサーバ140を介してピアツーピアネットワークに参加することができる。別のネットワークとのピアツーピアリンクを確立するために、ステップ612で、ユーザは、他のネットワークを識別するため、およびピアツーピアネットワークを形成するためのそのような他のネットワークへの勧誘を送信しまたは受信するために、登録サーバ142にアクセスすることができる。2つのネットワークが勧誘を交換し、ユーザが彼らのそれぞれのネットワークをリンクすることに合意した時に、ステップ614で、彼らは、スーパーピアネットワーキングサーバ140を介して確立されたピアツーピアネットワークを介してお互いに制御メッセージを送信し始めることができる。あるネットワークから別のネットワークへのメディアのダウンロードを可能にするために、ステップ616で、ユーザのそれぞれのネットワーク内のコンピュータ108および126上で動作するエージェントアプリケーションは、上で説明したようにポートフォワーディング動作から入手できるその外部IPアドレス情報を交換することができる。この点で、2つのネットワークは、下で図8を参照してより十分に説明するように、デバイスおよびサービスを共有し始めることができる。
【００５３】
図7に、図6を参照して上で説明した登録プロセスの一部としてさまざまな実施形態の通信システム内のコンポーネントの間で交換できるメッセージを示す。上で説明したように、コンピュータ108および126ならびにネットワークが始動され、エージェントアプリケーションが開始される時に、エージェントアプリケーションは、そのネットワーク内のUPnPデバイス102および120を、メッセージ702で、そのプレゼンスをアナウンスするようにそのようなデバイスに要求することと、UPnPデバイスアドバタイズメントメッセージすなわちメッセージ704をリスンすることとによって、発見することができる。
【００５４】
登録サーバ142にネットワークを登録するために、ユーザは、メッセージ706で、登録サーバ142によってホスティングされるウェブサイトにアクセスすることができる。登録プロセスの一部として、メッセージ708で、登録サーバ142は、ローカルネットワーク上のコンピュータにエージェントアプリケーションをダウンロードする。同様に、別のユーザがネットワークに登録する時に、メッセージ710で、彼らも登録サーバによってホスティングされるウェブサイトにアクセスし、メッセージ712で、エージェントアプリケーションのダウンロードを受信する。その後、あるユーザが、メッセージ714で、ピアツーピアルーティングサーバ140への勧誘メッセージとして送信できるピアツーピアリンクに参加することの勧誘を他のユーザに送信することができ、このメッセージ714を、ピアツーピアルーティングサーバ140は、メッセージ716で、勧誘されたネットワーク内のコンピュータ108に転送する。このネットワーキング勧誘を、メッセージ718で受け入れることができ、この受入れを、ピアツーピアルーティングサーバ140は、メッセージ720で勧誘するコンピュータに転送する。
【００５５】
それによって第1ネットワーク(ネットワークA)上で使用可能なデバイスおよびサービスを第2ネットワーク(ネットワークB)上で仮想化できる例のプロセス800を、図8に示す。上で説明したように、ステップ802で、ネットワークA内のコンピュータ108上で動作するエージェントアプリケーション(図面ではエージェントAと呼ぶ)は、ネットワークAに接続されたUPnPデバイスを発見することができる。上で述べたように、これは、デバイスアドバタイズメントメッセージを監視することによって、またはネットワーク上でデバイスを周期的に照会することによって、達成することができる。このプロセスの一部として、ステップ804で、エージェントアプリケーションは、ネットワーク上のUPnPデバイスのサービステンプレート、プロパティ、およびアドレスを入手することもできる。
【００５６】
ユーザが、ユーザのネットワーク上のデバイスまたはサービスを別のネットワークから使用可能にすることを求める(図10および11を参照して下で説明するプロセスを実施することによるなど)時に、ステップ806で、登録サーバ142は、ネットワークA内のエージェントアプリケーションに、そのエージェントがネットワークB内のエージェントアプリケーション(エージェントBと呼ばれる)へ特定のデバイスまたはすべてのデバイスに関する情報を送信するように要求する制御メッセージを送信することができる。いくつかの実施態様では、デバイスに関する要求を、スーパーピアネットワーキングサーバ140によって使用可能にされたピアツーピアネットワークを介してネットワークB内のエージェントアプリケーションから受信することができる。デバイス名、サービステンプレート、およびプロパティを入手するステップ804を、ステップ806の特定のデバイスに関するそのような情報の要求を受信することに応答して実行できることに留意されたい。次に、ステップ808で、ネットワークA内で動作するエージェントアプリケーションは、ネットワークB内のエージェントアプリケーションにネットワークA内のデバイスおよびサービス(または選択されたデバイス)のデバイスアドレス、サービステンプレート、およびプロパティを送信する。次に、ステップ810で、ネットワークB内のエージェントアプリケーションは、受信したデバイス情報から関連する要素を抽出し、ステップ812で、それに関して情報が受信されたネットワークAデバイスまたはサービスごとにUPnPデバイスアドバタイズメントメッセージを生成する。UPnPデバイスアドバタイズメントメッセージを生成するプロセスは、そのアドバタイズメントメッセージを従来のUPnPデバイスによって理解できるようにするために、UPnPプロトコル要件に従う。UPnPデバイスアドバタイズメントメッセージを生成するプロセスは、ネットワークにアナウンスされるデバイスのURLとしてエージェントアプリケーションURLを使用する。次に、ステップ814で、ネットワークB内のエージェントアプリケーションは、ネットワークB上でUPnPデバイスアドバタイズメントメッセージを送信し、これによって、それ自体をネットワークAの1つまたは複数のUPnPデバイスとしてアナウン
スする。したがって、このプロセスは、ネットワークB上にネットワークAの1つまたは複数のデバイスの仮想コピーを作成し、これらの仮想デバイスは、ネットワークB上のエージェントアプリケーションと同一のURLを有する。
【００５７】
ネットワークBなどのターゲットネットワーク内のUPnPデバイスがそれによってネットワークAなどのソースネットワーク内で使用可能なデバイス、サービス、およびメディアにアクセスできる例の実施形態方法900aを、図9Aに示す。この例の実施形態は、ソースネットワーク(たとえば、ネットワークA)がポートフォワーディングをサポートする時に適用可能である。ステップ902で、ネットワークB上のUPnPデバイスは、図8を参照して上で説明したように、「仮想デバイスY」に関するものなどのデバイスアドバタイズメントメッセージを受信する。ステップ904で、「デバイスX」などのネットワークB上のUPnP対応デバイスは、HTTP callなどのサービス呼出しメッセージをフォーマットするために、サービステンプレート内の情報を含むデバイスYアドバタイズメントアナウンスメントに含まれる情報を使用することができる。ステップ906で、このサービス呼出しメッセージは、ネットワークB内のエージェントアプリケーションのURLである仮想デバイスYのURLにアドレッシングされてネットワークB上で送信される。このサービス呼出しメッセージは、所望のサービス(たとえば、使用可能なファイルまたはサービスのディレクトリ)を入手するためにデバイスサービステンプレート内で指定される要件に従う情報のパケットを含むことができる。
【００５８】
ステップ908で、ネットワークB上のエージェントアプリケーションは、デバイスXから仮想デバイスYサービス呼出しを受信する。次に、ステップ910で、ネットワークB上のエージェントアプリケーションは、このサービス呼出しをピアツーピアメッセージに再パッケージ化し、スーパーピアルーティングサーバ140を介してネットワークA内のエージェントアプリケーションに送信する。ネットワークA内のエージェントアプリケーションは、ステップ912で、サービス呼出しメッセージを受信し、サービス呼出しを実際のデバイスYに再アドレッシングし、ステップ914で、サービス呼出しをネットワークA上で送信する。次に、ステップ916で、実際のデバイスYが、このサービス呼出しに応答し、要求されたサービス(たとえば、使用可能なメディアファイルのディレクトリ)を含む応答メッセージをネットワークA内のエージェントアプリケーションに送信する。ステップ918で、ネットワークA内のエージェントアプリケーションは、デバイスYから応答を受信し、サービス応答をピアツーピアメッセージにパッケージ化し、ネットワークB内のエージェントに送信する。応答メッセージのパッケージ化の一部として、ネットワークA内のエージェントアプリケーションは、ポートフォワーディング要求を使用して以前に入手されたネットワークAの外部IPアドレスを含める。
【００５９】
ネットワークB内のエージェントアプリケーションは、ステップ920で、サービス応答メッセージを受信し、ステップ922で、サービス応答情報をネットワークB内のデバイスXに転送する前に、ネットワークA内のエージェントアプリケーションの外部IPアドレスを反映するパラメータを含むがそれ自体のアドレスをポイントするようにデバイスYから受信された情報内のサービスURLを再マッピングする。次に、ステップ924で、デバイスXは、仮想デバイスY内で使用可能な特定のファイルのURLにアクセスすることができる。ネットワークB内のエージェントアプリケーションが、受信されたURLとしてネットワークA内のデバイスYの外部IPアドレスにマッピングされるので、デバイスXによるアクセスは、ネットワークB内のエージェントアプリケーションへのアクセスである。ステップ924で、そのエージェントアプリケーションは、インターネットを介してネットワークA内のエージェントにURLアクセス要求を転送する。代替実施形態では、デバイスXのURLアクセスを、インターネットを介してネットワークA内のエージェントアプリケーションに直接に転送することができる。
【００６０】
ステップ925で、ネットワークA内のデバイスYがURLアクセス要求を受信する時に、デバイスYは、ネットワークA内のエージェントアプリケーションに、そのURLに関連するコンテンツを供給し始める。ステップ926で、ネットワークA内のエージェントアプリケーションは、データをバッファリングし、ネットワークB内のエージェントアプリケーションにメディアデータへのアクセスを提供することができ、ネットワークB内のエージェントアプリケーションは、ピアツーピアネットワークまたはスーパーピアネットワーキングサーバ140を通過せずにメディアデータの受信およびバッファリングを開始する。代替実施形態では、ネットワークA内のエージェントは、ピアツーピアネットワークを通過せずに、ネットワークB内のデバイスXに直接にメディアデータをストリーミングすることができる。次に、ステップ928で、ネットワークB内のデバイスXは、受信したメディアを再生するなど、コンテンツをレンダリングし始める。いくつかの実施形態で、メディアデータを、デバイスXへのメディアデータの連続的な流れを容易にするためにネットワークB内のエージェントアプリケーションによってバッファリングすることができる。さらなる実施形態では、ソースネットワークおよびターゲットネットワーク内のエージェントアプリケーションによって提供されるURLマッピングは、ネットワークB内の要求するデバイスXがネットワークA内のソースデバイスYに直接にアクセスすることを可能にすることができる。
【００６１】
それによってターゲットネットワーク(たとえば、ネットワークB)内のUPnPデバイスがソースネットワーク(ネットワークA)内で使用可能なデバイス、サービス、およびメディアにアクセスできるもう1つの例の実施形態方法900bを、図9Bに示す。この例の実施形態は、ソースネットワーク(ネットワークA)がポートフォワーディングをサポートしないが、ターゲットネットワーク(ネットワークB)がポートフォワーディングをサポートする時に適用可能である。この例の実施形態では、それによってネットワークB内のデバイスXがネットワークA内のデバイスY内で使用可能なメディアを発見できるプロセスは、ステップ918でネットワークA内のエージェントアプリケーションがネットワークB内のエージェントアプリケーションへの送信のためにサービス応答メッセージをパッケージ化するまでは、図9Aを参照して上で説明したプロセスに実質的に類似する。ネットワークAは、この実施形態ではポートフォワーディングをサポートしないので、ネットワークA内のエージェントによって提供されるサービス応答メッセージは、ネットワークAの外部IPアドレスを含まない。ステップ920で、サービス応答メッセージが、ネットワークB内のエージェントによって受信される。この実施形態のネットワークBは、ポートフォワーディングをサポートするので、ステップ930で、ネットワークB内のエージェントアプリケーションは、ネットワークB内のエージェントアプリケーションのURLになるようにデバイスYのURLを符号化し、サービス応答メッセージをネットワークB上でデバイスXに転送することができる。ステップ932で、デバイスXが仮想デバイスYのURLにアクセスする時に、ステップ934で、このメッセージは、ネットワークB内のエージェントアプリケーションによって受信され、ネットワークB内のエージェントアプリケーションは、そのメッセージを制御メッセージ内のアクセス要求に変換し、その制御メッセージは、ピアツーピアネットワーク128を介してネットワークA内のエージェントアプリケーションに送信される。この制御メッセージは、ネットワークBの外部IPアドレスを含む。ステップ936で、制御メッセージは、ネットワークA内のエージェントアプリケーションに、実際のデバイスYのURLにアクセスさせ、メディ
アデータを受信させる。ステップ938で、デバイスYは、URLアクセスを受信し、ネットワークA内のエージェントアプリケーションにメディアデータを供給し始め、ネットワークA内のエージェントアプリケーションは、受信したデータをバッファリングすることができる。次に、ステップ940で、ネットワークA内のエージェントアプリケーションは、制御メッセージ内で受信された外部IPアドレスを使用してインターネットを介してネットワークBにメディアデータをプッシュする。第1の実施形態で、ステップ940で、ネットワークA内のエージェントアプリケーションは、インターネットを介してネットワークB内のエージェントアプリケーションにメディアデータをプッシュする。ネットワークB内のエージェントアプリケーションは、メディアデータを受信し、そのエージェントアプリケーションがメディアソースであるかのように、要求するメディアプレイヤすなわちデバイスXにそのメディアデータを供給する。次に、ステップ942で、ネットワークB内のデバイスXは、受信したメディアを再生するなど、コンテンツをレンダリングし始める。受信されたメディアデータを、デバイスXへのメディアデータの連続的な流れを容易にするためにネットワークB内のエージェントアプリケーションによってバッファリングすることができる。代替実施形態では、メディアデータを、メディアプレイヤ(すなわち、デバイスX)のIPアドレスに直接にプッシュすることができる。
【００６２】
それによってターゲットネットワーク(ネットワークB)内のUPnPデバイスがソースネットワーク(ネットワークA)内で使用可能なデバイス、サービス、およびメディアにアクセスできるもう1つの例の実施形態方法900cを、図9Cに示す。この例の実施形態は、ソースネットワークおよびターゲットネットワークがポートフォワーディングをサポートしない時に適用可能である。この実施形態では、それによってネットワークB内のデバイスXがネットワークA内の実際のデバイスY内で使用可能なメディアを発見できるプロセスが、ステップ918でネットワークA内のエージェントアプリケーションがネットワークB内のエージェントアプリケーションへの送信のためにサービス応答メッセージをパッケージ化するまでは、図9Aを参照して上で説明したプロセスに実質的に類似する。ネットワークAは、ポートフォワーディングをサポートしないので、ネットワークA内のエージェントによって提供されるサービス応答メッセージは、ネットワークAの外部IPアドレスを含まない。ステップ920で、サービス応答メッセージが、ネットワークB内のエージェントによって受信される。ターゲットネットワークBも、ポートフォワーディングをサポートしないので、ステップ950で、ネットワークB内のエージェントアプリケーションは、再ルーティングサーバ144のURLになるようにデバイスYのURLを符号化し、サービス応答メッセージをネットワークB上のデバイスXに転送することができる。ステップ952で、デバイスXが仮想デバイスYのURLにアクセスする時に、ステップ954で、このメッセージは、ネットワークB内のエージェントアプリケーションによって受信され、このネットワークB内のエージェントアプリケーションは、アクセス要求を制御メッセージに変換し、この制御メッセージは、ピアツーピアネットワークを介してネットワークA内のエージェントアプリケーションに送信される。ステップ958で、この制御メッセージは、ネットワークA内のエージェントアプリケーションに、デバイスYのURLにアクセスさせ、このデバイスYは、ステップ960で、メディアデータをエージェントアプリケーションに供給し始める。ステップ962で、制御メッセージは、ネットワークA内のエージェントアプリケーションに、再ルーティングサーバ144
にメディアデータをプッシュし始めさせもする。956で、ネットワークB内のエージェントアプリケーションは、再ルーティングサーバ144にネットワークAからのメディアデータの受信およびバッファリングを開始させるために、再ルーティングサーバ144にも制御メッセージを送信することができる。ほぼ同時に、ステップ964で、ネットワークB内のエージェントアプリケーションは、再ルーティングサーバ144にアクセスし、再ルーティングサーバ144内のバッファからメディアデータを読み取り始めることができる。次に、ステップ966で、ネットワークB内のデバイスXは、ネットワークB内のエージェントアプリケーションからメディアデータにアクセスし、受信したメディアを再生するなど、コンテンツをレンダリングし始める。ネットワークB内のエージェントアプリケーションは、デバイスXへのメディアデータの連続的な流れを容易にするためにメディアデータをバッファリングすることができる。
【００６３】
登録サーバ142によってホスティングされるウェブサイトによって提供されるユーザインターフェースツールを使用して、ステップ1003で、ユーザは、ソースネットワーク(たとえば、ネットワークA)およびターゲットネットワークまたは宛先ネットワーク(たとえば、ネットワークB)を選択しまたは識別することができる。ソースネットワークを識別した後に、ステップ1004で、ユーザは、ソースネットワーク上で使用可能なデバイス、サービス、またはメディアのメニューを要求することができる。ステップ1006で、登録サーバ142は、ユーザの要求を受信し、デバイス、サービス、またはメディアのリスティングを要求する制御メッセージをネットワークA内のエージェントアプリケーションに送信する。この制御メッセージは、スーパーピアネットワーキングサーバ140を介してピアツーピアネットワークを介して送信され得る。ステップ1008で、ネットワークA内のエージェントアプリケーションは、それがネットワークA上で発見したデバイスのリストを伴って応答する。ステップ1010で、登録サーバは、この情報を受信し、デバイス、サービス、またはメディアをリストする情報メッセージまたはウェブページを生成し、この情報メッセージまたはウェブページは、ステップ1012で、無線ネットワークを介してモバイルデバイスに送信される。ステップ1014で、モバイルデバイスは、このメッセージを受信し、デバイスリストを表示し、このデバイスリストは、ユーザ選択を受け取るためのユーザインターフェースの形とすることができる。ユーザが選択を行う場合には、ステップ1016で、モバイルデバイスが、この情報を受け取り、デバイス、サービス、またはメディアのユーザの選択を登録サーバに送信する。次に、ステップ1018で、登録サーバは、選択されたデバイス、サービスまたはメディアを識別する制御メッセージをネットワークA内のエージェントアプリケーションに送信する。オプションで、このステップの一部として、登録サーバ142は、デバイス、サービスまたはメディアの情報がネットワークAから公表される可能性があることをネットワークB上のエージェントアプリケーションに知らせることもできる。
【００６４】
ステップ1020で、ネットワークA内のエージェントアプリケーションは、選択されたデバイス、サービス、またはメディアを仮想化する要求を受信し、ステップ1022で、デバイスのアドレス、サービステンプレート、およびプロパティを入手する。次に、ステップ1024で、ネットワークA内のエージェントアプリケーションは、受信した情報をメッセージにフォーマットし、このメッセージは、ピアツーピアネットワークを介して(すなわち、スーパーピアネットワーキングサーバ140を介して)ネットワークB内のエージェントアプリケーションに送信される。このメッセージは、ネットワークB内のエージェントアプリケーションによって受信され、ネットワークB内のエージェントアプリケーションは、ステップ1026で、関連する要素を抽出し、ステップ1028で、選択されたデバイスのUPnPデバイスアドバタイズメントメッセージを生成する。上で述べたように、このデバイスアドバタイズメントメッセージは、ネットワークB上のエージェントアプリケーションに対応する仮想デバイスのURLを含む。次に、ステップ1030で、ネットワークB内のエージェントは、ネットワークB上でデバイスアドバタイズメントメッセージを送信し、これによって、それ自体を仮想デバイス、仮想サービス、または仮想メディアとしてアナウンスする。このアドバタイズメントメッセージがネットワークB上で送信された後に、そのネットワーク上のデバイスは、図9A〜9Cを参照して上で説明したように、仮想デバイス、仮想サービス、または仮想メディアにアクセスすることができる。
【００６５】
デバイス、サービス、またはメディアを仮想化するプロセスを、ソースネットワーク(たとえば、ネットワークA)上のコンピュータから開始することもでき、そのための例の実施形態方法1100を、図11に示す。ステップ1102で、ネットワークA上のコンピュータ108を使用して、ユーザは、ネットワーク上のデバイスならびにユーザがそれへのリンクを確立できるピアツーピアネットワークリンクまたは「友人」ネットワークのリストのディスプレイを見ることができる。ステップ1104で、コンピュータ108は、選択されたターゲットネットワークBと共有される選択されたデバイスのユーザ入力を受け取ることができる。たとえば、コンピュータ108を、デバイスおよびネットワークをリストし、キーストロークまたはマウスクリックの形でユーザ入力を受け取る、グラフィカルユーザインターフェースを用いて構成することができる。ユーザから入手されたこの情報を用いて、このプロセスは、上で図10を参照してステップ1022から1030までについて説明したように進行することができる。アドバタイズメントメッセージがネットワークB上で送信された後に、そのネットワーク上のデバイスは、図9A〜9Cを参照して上で説明したように、仮想デバイス、仮想サービス、または仮想メディアにアクセスすることができる。
【００６６】
さまざまな実施形態は、あるネットワーク(たとえば、ネットワークB)上のユーザが別のネットワーク(たとえば、ネットワークA)内のデバイス、サービス、またはメディアへのアクセスを入手することを可能にすることもでき、その例の実施形態方法1200を、図12に示す。ステップ1202で、ネットワークB上のコンピュータを使用して、ユーザは、ネットワークB内のエージェントアプリケーションによるアクセスのために登録されたピアツーピアネットワークリンクまたはネットワークのメニューを見ることができる。ステップ1204で、コンピュータは、特定のソースネットワークAを選択するユーザの入力を受け取ることができる。次に、ステップ1206で、ネットワークB上のエージェントアプリケーションは、ネットワークA上で使用可能なデバイス、サービス、またはメディアのリストに関する要求メッセージをネットワークA内のエージェントアプリケーションに送信することができる。この要求メッセージは、スーパーピアネットワーキングサーバ140を介してピアツーピアネットワークを介して送信され得る。ステップ1208で、ネットワークA内のエージェントアプリケーションは、要求メッセージを受信し、そのエージェントアプリケーションがネットワークA上で発見したUPnPデバイス、UPnPサービス、およびUPnPメディアのリストを伴って応答することができる。この応答メッセージも、ピアツーピアネットワークを介して送信され得る。ステップ1210で、ネットワークB内のエージェントアプリケーションは、デバイス、サービス、およびメディアのリストを受信し、ユーザのためにこの情報のディスプレイを生成する。このネットワークAデバイス、サービス、およびメディアのディスプレイは、ユーザ選択を容易にするためにグラフィカルユーザインターフェースの形とすることができる。ステップ1212で、ネットワークB内のコンピュータは、ネットワークB上で仮想化される選択されたネットワークAデバイス、サービス、またはメディアのユーザ入力を受け取ることができる。ステップ1214で、受け取られたユーザ入力に基づいて、ネットワークB内のエージェントアプリケーションは、選択されたデバイス、サービス、またはメディアへのアクセスの要求をネットワークA内のエージェントアプリケーションに送信すること
ができる。このメッセージは、ピアツーピアネットワークを介して送信され得る。ネットワークA内のエージェントアプリケーションは、ステップ1216で、選択されたデバイス、サービス、またはメディアを仮想化する要求を受信し、ステップ1218で、選択されたアイテムのUPnPアドレス、サービステンプレート、およびプロパティを入手する。次に、ステップ1220で、ネットワークA内のエージェントは、入手されたアドレス、サービステンプレート、およびプロパティをネットワークB内のエージェントアプリケーションに送信する。ネットワークB内のエージェントアプリケーションは、ステップ1222で、受信された情報から関連する要素を抽出し、ステップ1224で、選択されたデバイス、サービス、またはメディアの適当なUPnPデバイスアドバタイズメントメッセージを生成する。他の実施態様と同様に、エージェントアプリケーションは、それ自体に対応する選択されたデバイス、サービス、またはメディアのURLをアドバタイズメントメッセージに含め、その結果、そのエージェントアプリケーションがデバイスアドバタイズメントメッセージを送信する時に、ステップ1226で、そのエージェントアプリケーションが、選択されたデバイス、サービス、またはメディアとしてそれ自体をアナウンスするようになる。デバイスアドバタイズメントメッセージがネットワークB上で送信された後に、そのネットワーク上のデバイスは、図9A〜9Cを参照して上で説明したように、仮想デバイス、仮想サービス、または仮想メディアにアクセスすることができる。
【００６７】
さまざまな実施形態による通信システムコンポーネントの間で交換できる例のデータメッセージが、図13に示されている。ユーザが、別のネットワークAとのネットワークB上のデバイスおよびサービスの共有をモバイルデバイス136から開始する時に、メッセージ1302で、ユーザは、無線通信ネットワーク130およびインターネット114を介して登録サーバ142へのデータ呼をかけることができる。それに応答して、登録サーバ142は、メッセージ1304で、ネットワークA上で使用可能なデバイスおよびサービスのリスティングを要求する制御メッセージをネットワークA上のコンピュータ108上で動作するエージェントアプリケーションに送信することができる。ネットワークA上のエージェントアプリケーションは、メッセージ1306で、発見されたUPnPデバイスおよびサービスのリスティングを応答することができる。
【００６８】
登録サーバ142は、メッセージ1308で、表示のためのリストまたはウェブページとしてこの情報を送信することによってモバイルデバイス136に応答することができる。次に、ユーザは、メッセージ1309で、仮想化される選択されたデバイスまたはサービスを登録サーバ142に応答することができる。仮想化に関する特定のデバイスまたはサービスの選択を、メッセージ1310で、ネットワークA上のコンピュータ108上で動作するエージェントアプリケーションに通信することができる。このメッセージは、ターゲットネットワークBのドメインIDを含むことができる。次に、エージェントアプリケーションは、処理1312で、選択されたデバイスまたはサービスのアドレス、サービステンプレート、およびプロパティを入手し、メッセージ1314で、この情報をピアツーピアネットワーク128を介してネットワークB上のコンピュータ126上のエージェントアプリケーションに送信することができる。次に、ネットワークB上のコンピュータ126上のエージェントアプリケーションは、処理1316で、UPnPデバイスアドバタイズメントアナウンスを生成し、メッセージ1318で、このアナウンスメントをネットワークB上で送信することができる。次に、ネットワークB上のUPnPデバイスは、ネットワークB上のコンピュータ126上のエージェントアプリケーションに向けられるメッセージすなわちメッセージ1320内で、サービステンプレートに従って仮想化されたデバイスまたはサービスにサービスを要求することができる。上で説明したように、サービスを要求するプロセスは、まず、エージェントアプリケーションが提供する仮想デバイスにサービステンプレートを要求することと、その後、サービステンプレートから入手された情報を使用してサービス要求をフォーマットすることとを含むことができる。単純さのために、要求するデバイスとエージェントアプリケーションとの間のそのようなシグナリングは、図13には含まれない。
【００６９】
ネットワークB上のコンピュータ126上のエージェントアプリケーションは、処理1324で、サービス要求をピアツーピアメッセージに再フォーマットし、メッセージ1326で、そのメッセージをピアツーピアネットワークを介してネットワークA上のコンピュータ108上のエージェントアプリケーションに送信することができる。ネットワークA上のコンピュータ108上のエージェントアプリケーションは、処理1328で、受信されたサービス要求メッセージを処理し、メッセージ1330で、選択されたデバイスに要求を発行する。選択されたデバイスは、サービス応答メッセージすなわちメッセージ1332を応答することができ、このメッセージ1332は、ネットワークA上のコンピュータ108上のエージェントアプリケーションによって受信される。ネットワークA上のコンピュータ108上のエージェントアプリケーションは、ネットワークAがポートフォワーディングをサポートする時にネットワークAの外部IPアドレスを含めるためなど、処理1334でこのサービス応答メッセージを処理し、メッセージ1336で、ピアツーピアネットワークを介してネットワークB上のコンピュータ126上のエージェントアプリケーションにサービス応答メッセージを転送することができる。ネットワークB上のコンピュータ126上のエージェントアプリケーションは、本明細書で説明されるようにデバイスURLをマッピングするためなど、処理1338で、受信したサービス応答メッセージを処理し、メッセージ1340で、要求するデバイスにサービス応答メッセージを転送することができる。たとえば、サービス応答メッセージを、メディアデータを入手するために要求するデバイスがアクセスできる使用可能なメディアおよび関連するURLのリスティングとすることができる。次に、ネットワークB上の要求するデバイスは、メッセージ1342で、特定のURLにアクセスすることができ、このアクセスは、ネットワークB上のコンピュータ126上のエージェントアプリケーションに向けられる。ネットワークB上のコンピュータ126上のエージェントアプリケーションは、処理1344で、URLアクセスを処理し、メッセージ1346で、URLアクセスをピアツーピアネットワークを介してネットワークA上のコンピュータ108上のエージェントアプリケーショ
ンに転送することができる。ネットワークA上のコンピュータ108上のエージェントアプリケーションは、メッセージ1350でアクセスを選択されたデバイスまたはサービスに渡す前に、処理1348で、受信したURLアクセスを処理することができる。次に、選択されたデバイスまたはサービスは、メッセージ1352で、URLに関連するメディアデータを配送し始めることができる。ソースネットワークおよびターゲットネットワークのポートフォワーディング能力に応じて、ネットワークA上のコンピュータ108上のエージェントアプリケーションは、処理1354で、メディアデータをバッファリングし、メッセージ1356でネットワークB上のコンピュータ126上のエージェントアプリケーションにプッシュするためなど、メディアデータパケットを処理することができる。さらなる代替案として、ネットワークA上のコンピュータ108上のエージェントアプリケーションは、メディアデータを再ルーティングサーバ144(図示せず)にプッシュすることができ、この再ルーティングサーバ144から、ネットワークB上のコンピュータ126上のエージェントアプリケーションは、データにアクセスすることができる(その場合に、メッセージ1356は、2つのメッセージで達成されるはずであり、一方のメッセージは、ネットワークA上のコンピュータ108上のエージェントアプリケーションから再ルーティングサーバ144へのメッセージであり、もう一方のメッセージは、再ルーティングサーバ144からネットワークB上のコンピュータ126上のエージェントアプリケーションへのメッセージである)。メディアデータを、ネットワークB上のコンピュータ126上のエージェントアプリケーションによって受信することができ、このエージェントアプリケーションで、そのメッセージを、メッセージ1360で要求するデバイスに配送する前に、処理1358でバッファリングするか処理することができる。図13に示されたメッセージは、例の実施形態の実例となることを意図されたものである。メッセージの順序は、図示されたものと異なってもよく、より少数またはより多数のメッセージを、さまざまな実施形態を実施するために使用することができる。したがって、図13に示されたメッセージは、いかなる形でも特許請求の範囲の範囲を限定することを意図され
たものではない。
【００７０】
前述の例は、2つのプライベートネットワークの中でのメディアの共有に関するが、諸実施形態を、第1ネットワーク(この例ではネットワークAと呼ばれる)内のデバイスが、インターネット114を介してアクセス可能なサーバ1400上でホスティングされるメディアに直接にアクセスすることを可能にするのに使用することができる。図14に、そのような実施形態をサポートする例の通信ネットワークを示す。この通信ネットワークのコンポーネントは、サーバ1400がネットワークA上のUPnPデバイス102、104、106、108、および110のうちの1つによってレンダリングされるメディアのソースドメインであることを除いて、図1に示されたコンポーネントに類似する。この実施形態は、ディジタルテレビジョンなどのUPnPメディアプレイヤが、コンピュータ108を介してディジタルメディアを処理する必要なしに、ディジタルフォーマットの映画をホスティングするサーバなどのサーバから直接にメディアにアクセスすることを可能にすることができる。
【００７１】
それによってUPnPデバイスがインターネットサーバから直接にメディアにアクセスできる例の実施形態方法1500を、図15に示す。ネットワークA上のコンピュータ上のエージェントアプリケーションは、ステップ1502で、アクセスできるピアツーピアネットワークのメニューを表示することができ、ステップ1504で、選択されたインターネットサービスのユーザ入力を受け取ることができる。たとえば、ユーザは、さまざまな実施形態の実施を介して映画レンタルを提供する映画レンタルサービスを選択することができる。それに応答して、ステップ1506で、ネットワークA上のエージェントアプリケーションは、レンタルに使用可能な映画のリスティングなど、使用可能なサービスのリスティングを要求する要求メッセージを選択されたサーバSに送信することができる。ステップ1508で、メディアサーバは、この要求を受信し、それに関するアクセスを貸し出すことができる映画のリスティングなど、使用可能なサービスのリストを伴って応答することができる。ステップ1510で、使用可能なサービスのこのリスティングを、ネットワークA内のエージェントアプリケーションによって受信し、ユーザのために表示することができる。ユーザが、見る映画など、特定のサービスを選択する場合に、この入力を、ステップ1512でネットワークA内のエージェントアプリケーションによって受け取ることができ、ステップ1514で選択されたサービスへのアクセスの要求を生成し、メディアサーバへ送信するのに使用することができる。メディアサーバは、ステップ1516で、特定の映画などの選択されたサービスを仮想化する要求を受信し、ステップ1518で、それに応答して、選択されたサービスのアドレス、サービステンプレート、およびプロパティを応答することができる。ネットワークA内のエージェントアプリケーションは、ステップ1520で、受信した情報から関連する要素を抽出し、ステップ1522で、選択されたサービスのUPnPアドバタイズメントメッセージを生成する。その後、ステップ1524で、生成されたUPnPアナウンスメントをネットワークA上で送信することができ、これによって、ディジタルテレビジョンなどのUPnPデバイスが仮想サービスを発見することを可能にする。デバイスアドバタイズメントメッセージがネットワ
ークA上で送信された後に、そのネットワーク上のデバイスは、図9A〜9Cを参照して上で説明ものに似た形で、仮想デバイス、仮想サービス、または仮想メディアにアクセスすることができる。
【００７２】
ネットワーク上のデバイスがインターネットサーバ上に格納されたメディアに直接にアクセスすることを可能にする通信システムのコンポーネントの間で交換できる例のメッセージを図16に示す。インターネットメディアサーバ1600に格納されたメディアデータに直接にアクセスするために、ユーザは、メッセージ1602で、登録サーバ142にユーザのネットワークを登録する必要がある場合がある。登録プロセスの一部として、登録サーバ142は、メッセージ1604で、エージェントアプリケーションをダウンロードし、メディアサーバ1600にアクセスするのに必要なユーザ識別情報を提供することができる。登録サーバ142は、メッセージ1606で、ユーザがサービスについて登録した時にメディアサーバ1600に知らせることもできる。ユーザが登録された後に、ネットワークA上のエージェントアプリケーションは、認証証明書を提供するため、エージェントアプリケーションに使用可能なサービスのメニューを与えるため、および他のサービス登録情報を受信するためなど、メッセージ1608で、メディアサーバ1600とメッセージを交換することができる。メディアサーバ1600は、メッセージ1609で、ネットワークA上のエージェントアプリケーションに、それがデバイスアドバタイズメントメッセージを生成することを可能にする、メディアサーバ1600をネットワークA上の仮想デバイスとして識別する情報を与えることもできる。
【００７３】
ディジタルテレビジョンなどのネットワークA上のUPnPデバイスは、メッセージ1610でサービス要求を発行することができ、このサービス要求を、ネットワークA上のエージェントアプリケーションは、処理1612で処理し、メッセージ1614でメディアサーバ1600に転送する。このサービス要求メッセージは、メディアサーバ1600によって処理1616で処理され得、メディアデータベース1601へのデータ要求すなわちメッセージ1618と、データ応答すなわちメッセージ1620とを含むことができ、このメッセージ1620は、メディアサーバ1600によって、要求された情報をメッセージ1624でネットワークA内のエージェントアプリケーションに送信する前に、処理1622で処理される。ネットワークA内のエージェントアプリケーションは、メッセージ1628で要求された情報を要求するデバイスに提供する前に、本明細書で説明するようにURLアドレスを再マッピングするためなど、処理1626で、受信した情報を処理する。たとえば、ディジタルテレビジョンは、メディアサーバ1600からダウンロードのために使用可能な映画の番組ガイドを要求することができる。
【００７４】
ユーザは、アクセスされる特定のメディアを選択することができ、対応するメディアURLは、メッセージ1630で、ネットワークA上のエージェントアプリケーションに送信され得る。ネットワークA上のエージェントアプリケーションは、メッセージ1634でメディアサーバ1600にURLを送信する前に、処理1632で、URL要求を処理することができる。メディアサーバ1600は、処理1636で、このURL要求を処理し、メッセージ1638で、メディアデータベース1601内の関連するメディアファイルにアクセスすることができる。次に、要求されたメディアを、メッセージ1640で、メディアデータベース1601からメディアサーバ1600に送信することができ、メディアサーバ1600は、メッセージ1644でインターネットを介してメディアデータを送信する前に、処理1642で、メディアデータを処理することができる。メディアデータを、メッセージ1648で要求するデバイスに提供する前に、処理1646で、ネットワークA内のエージェントアプリケーションによって受信し、バッファリングするか再アドレッシングすることができる。代替実施形態では、メディアデータを、ネットワークA内の要求するデバイスに供給することができ、この場合には、メッセージ1644を、要求するデバイスにアドレッシングすることができる。
【００７５】
さまざまな実施形態は、複数の有用な実施態様を可能にする。たとえば、一実施形態で、あるネットワーク上で使用可能な動的情報を、ディジタルフォトフレームなどの単純なディスプレイデバイス上で写真イメージとして表示することができる。ディジタルフォトフレームデバイスは、ユーザメディア、特に写真を表示するために人気が高まりつつある。UPnPディジタルフォトフレームは、今現在、入手可能であり、ユーザのネットワーク上に格納された写真メディアを便利に表示するのに広く使用されている。ディジタルフォトフレームを、たとえば、上で説明した実施形態に従って仮想メディアストアから受信されたメディアをレンダリングするディスプレイデバイスとして使用することができる。このアイデアのさらなる実施態様は、ウェブページなどの動的情報と電子メールおよびツイッターメッセージなどのテキスト情報とをディジタルフォトフレーム上の写真として表示することを可能にする。さまざまな実施形態を使用することによって、そのような表示方法は、多数の応用でユーザに非常に有用になる可能性がある。
【００７６】
ディジタルフォトフレーム上で動的情報およびテキストイメージをレンダリングする例の実施形態方法1700を、図17に示す。この実施形態方法を、レンダリングされる動的情報またはテキスト情報へのアクセスを有するコンピュータ上で実施することができる。そのようなコンピュータは、ステップ1702で、テキスト、イメージ、HTML、または他のデータを動的データソースから入手するためにファイルまたはURLにアクセスすることができる。たとえば、コンピュータは、ユーザの最新メッセージを入手するためにユーザの電子メールアカウントまたはツイッターアカウントにアクセスすることができる。次に、コンピュータは、ステップ1704で、入手された情報を表示に適切なフォーマットにフォーマットする。たとえば、入手された情報が電子メールメッセージである場合には、そのメッセージを、それが電子メールアプリケーション内の電子メールの表示上で提示される形に似た形でフォーマットすることができる。次に、ステップ1706で、フォーマットされたデータをインメモリビットマップとしてレンダリングする。次に、ステップ1708で、ビットマップをJPEGフォーマットなどのディジタル写真データフォーマットに変換し、メモリ内に保存する。次に、1710で、JPEGファイルなどのディジタル写真データを、ディジタルフォトフレームディスプレイに通信する。たとえば、ディジタル写真データを、ディジタルフォトフレームのメモリまたはディジタルフォトフレームがアクセスするローカルネットワーク上のデータストアに格納することができる。さらなる実施形態では、ディジタル写真データを、前の実施形態で説明したように別のネットワーク上で仮想化されたデバイスに格納することができ、これによって、他のネットワーク上のディジタルフォトフレームが、ステップ1712で、図9A〜9Cを参照して上で説明したものに似た形でイメージにアクセスし、表示することが可能になる。
【００７７】
この実施形態の特定の例の実施態様を、図18に示し、図18では、あるユーザのツイッターアカウントの「ツイート」が、ディジタルフォトフレームでの表示のためにレンダリングされる。コンピュータは、ステップ1802で、ユーザのツイッターアカウントにアクセスし、最新のメッセージテキストを入手することができる。次に、ステップ1804で、ツイッターテキストを表示のためにフォーマットすることができ、このツイッターテキストは、ステップ1806で、ビットマップとしてレンダリングされる。次に、このビットマップイメージは、ステップ1808でJPEGフォーマットに変換され、結果のJPEGファイルは、ステップ1810でディジタルフォトフレームに供給される。代替案では、結果のJPEGファイルを、別のネットワーク上で仮想化されたデバイスに格納することができ、そのJPEGファイルを、ステップ1812で、図9A〜9Cを参照して上で説明したものに似た形でその別のネットワーク上のディジタルフォトフレーム内に表示することが可能になる。
【００７８】
この実施形態のもう1つの例の実施態様を、図19に示し、図19では、ニュースウェブサイト、株価速報、およびウェブカムフィードなどの動的ウェブページが、ディジタルフォトフレームでの表示のためにレンダリングされる。コンピュータは、ステップ1902で、特定のウェブサイトにアクセスし、最新のHTMLスクリプトおよびイメージを入手することができる。次に、ステップ1904で、入手されたHTMLおよびイメージを、ウェブブラウザアプリケーションを使用して対応するウェブページを生成することによるなど、表示のためにフォーマットすることができる。次に、ステップ1906で、生成されたウェブページをビットマップとしてレンダリングし、ステップ1908で、ビットマップイメージをJPEGフォーマットに変換する。ステップ1910で、結果のJPEGファイルをディジタルフォトフレームに供給することができる。代替案では、結果のJPEGファイルを、別のネットワーク上で仮想化されたデバイスに格納することができ、そのJPEGファイルを、ステップ1912で、図9A〜9Cを参照して上で説明したものに似た形でその別のネットワーク上のディジタルフォトフレーム内に表示することが可能になる。
【００７９】
さまざまな実施形態で登録サーバ142(または他のサーバ)にアクセスすることによってデバイスまたはファイルの共有を開始するのに使用される「コントローラ」は、パーソナルコンピュータ138、ウェブブック、またはモバイルデバイス136など、ウェブブラウザをホスティングするか供給する任意のデバイスとすることができる。セルラ電話機などのモバイルデバイス136は、その小さいサイズおよび他の有用性が、ユーザが通常は彼らと共にまたは近くにそれを有することを意味するので、コントローラとしての使用に特に便利なデバイスである可能性がある。さまざまな実施形態と共に使用するのに適する通常のモバイルデバイス136は、共通して、図20に示されたコンポーネントを有する。たとえば、例示的なモバイルデバイス136は、内部メモリ192に結合されたプロセッサ191と、ディスプレイ193とを含むことができる。さらに、モバイルデバイス136は、プロセッサ191に結合された無線データリンクおよび/またはセルラ電話トランシーバ195に接続された電磁放射を送信し、受信するためのアンテナ194を有することができる。モバイルデバイスは、通常、ユーザ入力を受け取るための、キーパッド196またはミニチュアキーボードと、メニュー選択ボタンまたはロッカースイッチ197とをも含む。
【００８０】
上で説明した実施形態を、図21に示されたサーバ1400などのさまざまなサーバデバイスのうちのいずれかを用いて実施することができる。そのようなサーバ1400は、通常、揮発性メモリ1402とディスクドライブ1403などの大容量不揮発性メモリとに結合されたプロセッサ1401を含む。サーバ1400は、プロセッサ1401に結合されたフロッピディスクドライブおよび/またはコンパクトディスク(CD)ドライブ1406を含むこともできる。サーバ1400は、インターネットなどのネットワーク回路1405とのデータ接続を確立するためにプロセッサ1401に結合されたネットワークアクセスポート1404を含むこともできる。
【００８１】
上で説明した実施形態は、図22に示されたディジタルフォトフレームを実施することもできる。そのようなディジタルフォトフレーム2200は、通常、メモリ2202および大型ディスプレイ2203に結合されたプロセッサ2201を含む。ディジタルフォトフレーム2200は、アンテナ2204に結合された無線データリンクトランシーバ2205ならびにプロセッサ2201に結合されたバッテリ2206を含むこともできる。プロセッサ2201を、そのプラグアンドプレイパラメータおよびサービステンプレートを無線データリンクトランシーバ2205を介してアクセスされる無線ネットワーク上でアナウンスするように構成することができる。
【００８２】
さまざまなデバイス内のプロセッサ191、1401、および2201は、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、もしくは複数のプロセッサチップ、または本明細書で説明されるさまざまな実施態様の諸機能を含むさまざまな機能を実行するためにソフトウェア命令(アプリケーション)によって構成できるチップとすることができる。いくつかのデバイスで、無線通信機能専用の1つのプロセッサおよび他のアプリケーションの実行専用の1つのプロセッサなど、複数のプロセッサ191、1401、および2201を設けることができる。通常、ソフトウェアアプリケーションは、アクセスされ、プロセッサ191、1401、および2201にロードされる前に、内部メモリ192、1402、および2202に格納され得る。いくつかのモバイルデバイスでは、プロセッサ191、1401、および2201は、アプリケーションソフトウェア命令を格納するのに十分な内部メモリを含むことができる。いくつかのデバイスでは、セキュアメモリを、プロセッサ191、1401、および2201に結合された別々のメモリチップ内とすることができる。多くのデバイスで、内部メモリ192、1402、および2202を、揮発性メモリまたはフラッシュメモリなどの不揮発性メモリ、あるいはその両方の混合とすることができる。この議論において、メモリへの一般的な言及は、内部メモリ192、1402、および2202、デバイスに接続されるリムーバブルメモリ、ならびにプロセッサ191、1401、および2201自体の中のメモリを含む、プロセッサ191、1401、および2201によってアクセス可能なすべてのメモリを指す。
【００８３】
前述の方法の説明およびプロセス流れ図は、単に例示的な例として提供されたものであって、さまざまな実施形態のステップが提示された順序で実行されなければならないことを要求しまたは暗示することは意図されていない。当業者によって了解されるように、前述の実施形態のステップの順序を、任意の順序で実行することができる。「その後」、「後に」、「次に」その他などの単語が、ステップの順序を限定することを意図されておらず、これらの単語が、単に、方法の説明を通って読者を案内するために使用されていることに留意されたい。さらに、たとえば冠詞「a」、「an」、または「the」を使用する、単数形での請求項要素へのすべての言及が、その要素を単数に限定するものと解釈されてはならない。
【００８４】
本明細書で開示される実施形態に関連して説明されるさまざまな例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップを、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施することができる。ハードウェアおよびソフトウェアのこの交換可能性を明瞭に示すために、さまざまな例示的なコンポーネント、ブロック、モジュール、回路、およびステップを、上で、一般にその機能性に関して説明した。そのような機能性がハードウェアまたはソフトウェアのどちらとして実施されるのかは、特定の応用例とシステム全体に課せられる設計制約とに依存する。当業者は、説明された機能性を、各特定の応用例のためにさまざまな形で実施することができるが、そのような実施判断が、本発明の範囲からの逸脱を引き起こすと解釈されてはならない。
【００８５】
本明細書で開示される諸態様に関連して説明されるさまざまな例示的な論理、論理ブロック、モジュール、および回路を実施するのに使用されるハードウェアを、汎用プロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理、ディスクリートハードウェアコンポーネント、または本明細書で説明される機能を実行するように設計されたその任意の組合せを用いて実施しまたは実行することができる。汎用プロセッサを、マイクロプロセッサとすることができるが、代替案では、プロセッサを、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサを、たとえばDSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアに関連する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実施することもできる。その代わりに、いくつかのステップまたは方法を、所与の機能に特有の回路網によって実行することができる。
【００８６】
1つまたは複数の例示的態様で、説明される機能を、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実施することができる。ソフトウェアで実施される場合に、機能を、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして格納し、あるいは送信することができる。本明細書で開示される方法またはアルゴリズムのステップを、コンピュータ可読媒体に常駐し得る、実行されるプロセッサ実行可能ソフトウェアモジュール内で実施することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にするすべての媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスできるすべての使用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、あるいは命令もしくはデータ構造の形で所望のプログラムコードを担持しまたは格納するのに使用でき、コンピュータによってアクセスできる任意の他の媒体を含むことができる。また、すべての接続は、当然、コンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、ウェブサイト、サーバ、または他のリモートソースから同軸ケーブル、光ファイバケーブル、より対線、ディジタル加入者回線(DSL)、または赤外線、ラジオ、およびマイクロ波などの無線技術を使用して送信される場合に、同軸ケーブル、光ファイバケーブル、より対線、DSL、または赤外線、ラジオ、およびマイクロ波などの無線技術は、媒体の定義に含まれる。ディスク(disk and disc)は、本明細書で使用される時に、コンパクトディスク(CD)、レーザディスク、光ディスク、ディジタル多用途ディスク(DVD)、フロッピディスク、およびブルーレイディスクを含み、diskは、通常はデータを磁気的に再生し、discは、レーザを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つま
たは任意の組合せまたはセットとして存在することができる。
【００８７】
開示される実施形態の先行する説明は、当業者が本発明を作るか使用することを可能にするために提供される。これらの実施形態のさまざまな変更は、当業者にすぐに明白になり、本明細書で定義される包括的な原理は、本発明の趣旨または範囲から逸脱せずに他の実施形態に適用され得る。したがって、本発明は、本明細書で示される実施形態に限定されることを意図されているのではなく、次の特許請求の範囲ならびに本明細書で開示される原理および新規の特徴と一貫する最も広い範囲に従わなければならない。
【符号の説明】
【００８８】
100  ローカルネットワーク
102  テレビジョン
104  ディジタル多用途ディスク(DVD)プレイヤ
106  ディジタルフォトフレーム
108  プログラマブルコンピュータ
110  プリンタ
112  ルータ
114  インターネット
116  ローカルネットワーク
118  ルータ
120  テレビジョン
122  UPnPデバイス
124  衛星TV受信器ボックスまたはケーブルTV受信器ボックス
126  プログラマブルコンピュータ
128  多機能デバイス
128  ピアツーピアネットワーク
130  無線通信ネットワーク
132  基地局
134  ゲートウェイまたはインターネットアクセスサーバ
136  モバイルデバイス
138  パーソナルコンピュータ
140  スーパーピアネットワーキングサーバ
142  登録サーバ
144  再ルーティングサーバ
191  プロセッサ
192  内部メモリ
193  ディスプレイ
194  アンテナ
195  無線データリンクおよび/またはセルラ電話トランシーバ
196  キーパッド
197  メニュー選択ボタンまたはロッカースイッチ
202  データストア
202v  仮想データストア
210  UPnPデバイス
210v  仮想UPnPデバイス
212  デバイス
214  デバイス
220  要求制御メッセージ
224  SOAP要求
226  応答制御メッセージ
228  破線
234  呼出し
236  応答メッセージ
314  コンピュータプラットフォーム
316  メモリ
318  プロセッサ
320  アプリケーションプログラミングインターフェース(API)
322  「マイメディア」インターフェース
326  キャリアネットワーク
330  データリンク
332  MSC(mobile switching center)
336  ネットワーク
400  モバイルデバイスディスプレイ
402  グラフィカルユーザインターフェース(GUI)
416  GUIディスプレイ
418  パーソナルメディアコンテンツインデックス
420  「マイメディア」タブ
422  「プレイヤ選択」タブ
424  「メディアを見つける」検索タブ
426  「ゲートウェイ」リンキングタブ
428  リストアイテムA
429  リストアイテムB
430  リストアイテムC
431  リストアイテムD
432  広告バナー
500  方法
702  メッセージ
704  メッセージ
706  メッセージ
708  メッセージ
710  メッセージ
712  メッセージ
714  メッセージ
716  メッセージ
718  メッセージ
720  メッセージ
800  プロセス
900a  実施形態方法
900b  実施形態方法
900c  実施形態方法
1100  実施形態方法
1200  実施形態方法
1302  メッセージ
1304  メッセージ
1306  メッセージ
1308  メッセージ
1309  メッセージ
1310  メッセージ
1312  処理
1314  メッセージ
1316  処理
1318  メッセージ
1320  メッセージ
1324  処理
1326  メッセージ
1328  処理
1330  メッセージ
1332  メッセージ
1334  処理
1336  メッセージ
1338  処理
1340  メッセージ
1342  メッセージ
1344  処理
1346  メッセージ
1348  処理
1350  メッセージ
1352  メッセージ
1354  処理
1356  メッセージ
1358  処理
1360  メッセージ
1400  サーバ
1401  プロセッサ
1402  揮発性メモリ
1403  ディスクドライブ
1404  ネットワークアクセスポート
1405  ネットワーク回路
1406  フロッピディスクドライブおよび/またはコンパクトディスク(CD)ドライブ
1500  実施形態方法
1600  インターネットメディアサーバ
1601  メディアデータベース
1602  メッセージ
1604  メッセージ
1606  メッセージ
1608  メッセージ
1609  メッセージ
1610  メッセージ
1612  処理
1614  メッセージ
1616  処理
1618  メッセージ
1620  メッセージ
1622  処理
1624  メッセージ
1626  処理
1628  メッセージ
1630  メッセージ
1632  処理
1634  メッセージ
1636  処理
1638  メッセージ
1640  メッセージ
1642  処理
1644  メッセージ
1646  処理
1648  メッセージ
1700  実施形態方法
2200  ディジタルフォトフレーム
2201  プロセッサ
2202  メモリ
2203  大型ディスプレイ
2204  アンテナ
2205  無線データリンクトランシーバ
2206  バッテリ
【図１】
0005656983.tif 000002
【図２Ａ】
0005656983.tif 000003
【図２Ｂ】
0005656983.tif 000004
【図２Ｃ】
0005656983.tif 000005
【図３】
0005656983.tif 000006
【図４】
0005656983.tif 000007
【図５】
0005656983.tif 000008
【図６】
0005656983.tif 000009
【図８】
0005656983.tif 000010
【図９Ａ】
0005656983.tif 000011
【図９Ｂ】
0005656983.tif 000012
【図９Ｃ】
0005656983.tif 000013
【図１０】
0005656983.tif 000014
【図１１】
0005656983.tif 000015
【図１２】
0005656983.tif 000016
【図１４】
0005656983.tif 000017
【図１５】
0005656983.tif 000018
【図１７】
0005656983.tif 000019
【図１８】
0005656983.tif 000020
【図１９】
0005656983.tif 000021
【図２０】
0005656983.tif 000022
【図２１】
0005656983.tif 000023
【図２２】
0005656983.tif 000024
【図７】
0005656983.tif 000025
【図１３】
0005656983.tif 000026
【図１６】
0005656983.tif 000027