JP2007515015A - ネットワークリソース情報ルーティングのためのサーバアーキテクチャ - Google Patents

ネットワークリソース情報ルーティングのためのサーバアーキテクチャ Download PDF

Info

Publication number
JP2007515015A
JP2007515015A JP2006545319A JP2006545319A JP2007515015A JP 2007515015 A JP2007515015 A JP 2007515015A JP 2006545319 A JP2006545319 A JP 2006545319A JP 2006545319 A JP2006545319 A JP 2006545319A JP 2007515015 A JP2007515015 A JP 2007515015A
Authority
JP
Japan
Prior art keywords
resource
server
media server
user
media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006545319A
Other languages
English (en)
Other versions
JP4869076B2 (ja
Inventor
ジェイ.エンカルナシオン マーク
フレイクス ジェーソン
スリニバサン ジャイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007515015A publication Critical patent/JP2007515015A/ja
Application granted granted Critical
Publication of JP4869076B2 publication Critical patent/JP4869076B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2812Exchanging configuration information on appliance services in a home automation network describing content present in a home automation network, e.g. audio video content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

ユニバーサルプラグアンドプレイ(UPnP)ネットワーク内のメディアサーバに、レンダリングデバイスへのメディアリソース情報の配布を決定するリソース共有サービスが含まれる。メディアサーバに、クランプドダウンユーザコンテキスト(例えば、ローカルサービスユーザコンテキスト)で動作する、ネットワークを介してリソース情報を共有するように構成されたメディアサービスモジュールと;ローカルシステムユーザコンテキストで動作し、ネットワークを介するリソース情報の共有でメディアサービスモジュールを支援するように構成された補足モジュールと;ログオンしたユーザのコンテキストで動作し、ユーザインターフェースディスプレイを介してユーザと相互作用するように構成されたコントロールパネルモジュールが含まれる。ローカルシステムユーザコンテキストは、クランプドダウンユーザコンテキストと比較して、メディアサーバリソースへのより高いレベルのアクセスを提供する。メディアサーバは、複数のユーザが同時に保留中のコントロールパネルモジュールのめいめいのインスタンスを有することを可能にする高速ユーザ切替(FUS)機能性も提供する。さらに、メディアサーバに、ならず者アプリケーションがコントロールパネルモジュールに成りすますのを防ぎ、これによってメディアサービスモジュールへの許可されないアクセスを得るのを防ぐ機構が含まれる。

Description

この主題は、ネットワークを介する受信側へのリソース情報のルーティングのアーキテクチャおよび関連する技法に関し、具体的な実施形態では、ホームネットワークなどのローカルネットワークを介して受信側にリソースメタデータおよびリソースコンテンツを選択的にルーティングするメディアサーバアーキテクチャおよび関連する技法に関する。
ユニバーサルプラグアンドプレイ(UPnP)は、ネットワークへのデバイスの追加および除去を容易にするネットワークアーキテクチャを提供する。例えば、UPnPアーキテクチャは、ユーザが、ネットワーク結合に新しいデバイスを単純に「プラグ」すること可能にする。その後、ネットワークは新しいデバイスの特性を自動的に判定し、その後、この新しいデバイスとネットワーク内の他のデバイスの間の相互作用を、判定された特性に基づいて調整する。UPnPアーキテクチャは、家庭、会社、学校など、ローカルセッティングに関連するネットワークに特によく適する(用語「ユニバーサルプラグアンドプレイ」が、より以前に開発されたデバイスプラグアンドプレイ(PnP)で提供される機能性から派生したことに留意されたい。デバイスPnPは、PCなどの独立型コンピュータデバイスに周辺機器を自動的に追加し、除去する柔軟な技法を提供する)。
図1に、例示的なUPnPアーキテクチャ100に関する高水準の情報を提示する。概要として、UPnPアーキテクチャ100に、ネットワーク112を介して一緒に結合された複数のデバイス(例えば、デバイス102、104、および106)と、コントロールポイント(例えば、コントロールポイント108および110)が含まれる。
UPnPデバイス(102、104、および106)に、様々な電子デバイスを含めることができる。例示的なデバイスに、すべてのタイプのコンピュータ、CD/DVDプレイヤ/ジュークボックス、TV、VCR、MP3プレイヤ、ステレオシステム、電子額縁(EPF)、様々なタイプの静止画カメラおよびビデオカメラなどが含まれる。具体的に言うと、いわゆるUPnPデバイスは、概念的に、実際のデバイス、サービスなどを含むことができるコンテナを定義する。サービスは、他のUPnPデバイスに使用可能にされるUPnPデバイスによって実行される様々な機能を定義する。例えば、1つの例示的なサービスを、時計によって提供される日時順機能に関するものとすることができる。一般に、サービスは、状態変数を使用してその機能性をモデル化し、そのモデルに関連する様々なアクションを他のUPnPデバイスに公開する。図1の例示的な事例では、UPnPデバイス102に、サービス116を提供する実際のデバイス114が含まれる。UPnPデバイス104に、サービス120および122を提供する実際のデバイス118が含まれる。UPnPデバイス106に、サービス126および128を提供する実際のルートデバイス124が含まれる。ルートデバイス124に、サービス132を提供する組み込みデバイス130が含まれる。
ネットワーク112は、伝送制御プロトコルおよびインターネットプロトコル(TCP/IP)を使用して、デバイス(102、104、および106)を一緒に結合することができる。ネットワーク112は、ハイパーテキスト転送プロトコル(HTTP)、シンプルオブジェクトアクセスプロトコル(SOAP)、GENA(General Event Notification Architecture)などの複数の他の標準プロトコルから自由に引き出すこともできる。ネットワーク112は、物理的には、電話回線、電力線、IrDa(Infrared Data Association)、イーサネット(登録商標)、ラジオ周波数(RF)結合などの様々なハードワイヤード通信機構および/または無線通信機構を使用して実施することができる。
最後に、コントロールポイント(108、110)は、他のUPnPデバイスを発見でき、制御できるエージェントを定義する。UPnPデバイス自体に、それに一体化された1つまたは複数のコントロールポイントを含めることができる。
図2に、階層レイヤに配置された、UPnPアーキテクチャ100によって実行される従来の機能を示す。アドレッシング機能202は、デバイスおよびコントロールポイントがネットワーク112と相互作用するアドレスをそれによって受け取るプロシージャに関係する。具体的に言うと、デバイスまたはコントロールポイントは、動的ホスト構成プロトコル(DHCP)サーバからまたはAuto IP割当プロシージャを使用することによって(例えば、DHCPサーバが使用可能でない場合に)、アドレスを受け取ることとができる。Auto IPプロシージャは、予約されたプライベートアドレスのセットからIPアドレスを知的に選択する技法を提供する。
ディスカバリ機能204は、デバイスがそのサービスをコントロールポイントにアドバタイズするプロシージャに関係する。デバイスは、HTTPのマルチキャスト変形(すなわちHTTP−MU)を送出することによって、このアドバタイズメントを実行することができる。コントロールポイントが、その後、HTTPU(すなわち、HTTPのマルチキャスト変形)を使用して応答する。ディスカバリ機能204は、GENA(General Event Notification Architecture)およびSSDP(Simple Service Discovery Protocol)を利用して、UPnPデバイスとコントロールポイントの間での上で示した交換を実行する。さらに、新たに追加されたコントロールポイントは、ネットワークに結合されたUPnPデバイスおよびサービスを検索することもできる。
ディスクリプション機能206は、UPnPデバイスを発見したコントロールポイントが、そのUPnPデバイスに関するさらなる情報を判定できるようにするプロシージャに関係する。UPnPデバイスは、コントロールポイントに情報を送ることによって応答し、その情報は、拡張マークアップ言語(XML)を使用して表される。その情報は、UPnPデバイスのタイプ(例えば、製造業者、モデル名、モデル番号、通し番号など)、それが提供するサービス、そのデバイスと相互作用するためのURL(uniform resource locator)などに関する詳細を定義する。
コントロール機能208は、コントロールポイントからUPnPデバイスへの制御メッセージの送信にかかわる。UPnPアーキテクチャ100は、このメッセージを送信するのにSOAPを使用する。SOAPメッセージに、アクション要求が含まれる。UPnPデバイスは、SOAPメッセージで指定されたアクションを実行し、その後、コントロールポイントに応答する。この応答に、アクション固有の値またはフォールトコードが含まれる。
イベンティング機能210は、コントロールポイントがUPnPアーキテクチャ100によって提供されるサービスに関連するイベントを監視するプロシージャに関する。具体的に言うと、サービスは、そのモデルが状態を変更する時にイベントを送ることができる。これらの状態変化を「パブリッシュ」するプロセスを、イベンティングと呼ぶ。コントロールポイントは、関心を持つサービスにサブスクリプションメッセージを送信することによって、様々なイベントを受け取るためにサブスクライブすることができる。
最後に、プレゼンテーション機能212は、あるUPnPデバイスに関連するプレゼンテーションURLを使用して、このUPnPデバイスから情報のページを取り出すことを含む。コントロールポイントは、UPnPデバイスにHTTP GET要求を発行することによって、プレゼンテーションプロセスを開始することができる。プレゼンテーション機能212は、ユーザが、デバイスのステータスを見、かつ/またはデバイスを制御することを可能にする。
UPnP Forumのウェブサイト(例えば、非特許文献1参照)で、UPnPアーキテクチャおよび関連する話題に関する詳細な情報が提供されている。
上で述べたように、UPnPデバイスは、一般に、家庭または会社など、比較的ローカライズされたネットワーク環境で使用される。例えば、家庭環境では、UPnPデバイスを含むネットワークが、メディアソースデバイスのコレクションとメディアレンダリングデバイスのコレクションを相互接続する場合がある。例示的なメディアソースデバイスに、音楽、ビデオ、写真などのコレクションをストアするパーソナルコンピュータを含めることができ、あるいは、様々なタイプのジュークボックスデバイスを含めることができる。例示的なメディアレンダリングデバイスに、TV、ステレオ、パーソナルコンピュータなどを含めることができる。コントロールポイント(パーソナルコンピュータなど)を使用して、あるメディアソースデバイスから選択されたメディアレンダリングデバイスにリソース情報をルーティングすることができる。
しかし、UPnPデバイスを含む既存のネットワークは、よく制御され、保護され、責任を負う形での上で説明したリソース情報の転送を実行しない。例えば、設計エンジニアが、パーソナルホームコンピュータ(PC)を使用してメディアサーバを実施すると選択したと仮定する。この場合に、設計エンジニアは、単一PC全体のセキュリティパラダイムに基づいてその機能性のすべてにアクセスできるようにメディアサーバを構成することができる。しかし、本発明人によって諒解されるように、UPnPメディアサーバは、多数の異なる機能を提供し、異なるセキュリティレベルを、これらの異なる機能に適用することができる。したがって、UPnPメディアサーバ全体に単一のセキュリティパラダイムを適用するという方策は、すべての機能へのアクセスを保証するために、メディアサーバによって提供されるすべての機能に関して十分に低いセキュリティレベルを選択することを必要とする場合がある。これは、クリティカルなリソースおよび機能(メディアサーバ、メディアサーバを実施するコンピュータシステム、メディアサーバが結合されるネットワークなどに関連する)のセキュリティを潜在的に危険にさらし、したがって、潜在的に、許可されないエンティティがUPnPメディアサーバのプライベートメディアデータへのアクセスを得ることを可能にするという短所を有する。代替案では、設計エンジニアが、単一のセキュリティパラダイムの使用に対処するために、ある機能を省略することを選択することができる。これは、メディアサーバの有用性を減らすという明白な不利益を有する。
既知のUPnPメディアサーバソリューションは、追加の欠陥および短所にも苦しむ。例えば、既知のUPnPメディアサーバは、高速ユーザ切替(FFUS)などの、現代のコンピューティング技法に対処する機能性を提供しない。FUS技法は、異なるめいめいのユーザに関連する異なるセッションの間で切替る便利な技法を提供する。例えば、この技法を用いると、第1ユーザが、コンピュータに接続し、アプリケーションを実行できるようになり、それに、別のアプリケーションを実行する第2ユーザが続く。第2ユーザが、コンピュータに接続する時に、コンピュータは、第1ユーザのセッションに関連するアプリケーションインスタンスを保存する。第1ユーザが、コンピュータにもう一度接続する時に、コンピュータは、第1ユーザが切断した時のそのユーザのコンピュータセッションに関連する設定およびアプリケーションを復元する。したがって、FUSは、任意の数のめいめいのユーザに関連する複数のアプリケーションインスタンスを記録できる機能性を提供する。既知のUPnPメディアサーバは、そのUPnP機能性とのFUS技法の統合の機構を提供しない。
http://upnp.org/
したがって、UPnPデバイスを含むネットワークまたは類似するコンピューティング環境での使用のためのよりセキュアかつ/または多用途のメディアサーバを提供することに対する、当技術分野の例示的な必要が存在する。
1つの例示的な実施形態に従って、ネットワークを介してリソース情報を散布するサーバを説明する。このサーバには、第1ユーザコンテキストで動作し、ネットワークを介してリソース情報を共有するように構成されたメディアサービスモジュールが含まれる。このサーバには、第2ユーザコンテキストで動作し、ネットワークを介するリソース情報の共有でメディアサービスモジュールを支援するように構成された補足モジュールも含まれる。
1つの例示的な特徴によれば、このサーバに、さらに、第3ユーザコンテキストで動作し、ユーザと相互作用するように構成されたコンフィギュレーションおよびコントロールパネルモジュールを含めることができる。
もう1つの例示的な特徴によれば、第1ユーザコンテキストは、サーバによって提供されるリソースへのアクセスの関連する第1レベルを提供するクランプドダウンユーザコンテキストである。第2ユーザコンテキストは、サーバによって提供されるリソースへの関連する第2レベルを提供するローカルシステムユーザコンテキストであり、アクセスの第2レベルは、アクセスの第1レベルより高い。第3ユーザコンテキストは、サーバにログオンしたユーザに関連するアクセスのレベルを提供するログオンしたユーザのコンテキストである。
追加の例示的な実施形態を、下で説明する。
この開示および図面の全体を通じて、同一の符号が、同一の構成要素および特徴を参照するのに使用される。100番台の数は、最初に図1に現れる特徴を参照し、200番台の数は、最初に図2に現れる特徴を参照し、300番台の数は、最初に図3に現れる特徴を参照し、以下同様である。
説明を容易にするために、次の議論で、ユニバーサルプラグアンドプレイ(UPnP)アーキテクチャに関するリソース情報配布機能性を説明する。本明細書で使用される用語「UPnPネットワーク」は、UPnPアーキテクチャに従って作られた1つまたは複数のエンティティ(例えば、デバイス)を有し、これらのエンティティのアナウンスメント、ディスカバリ、ディスクリプション、イベンティング、およびコントロールにUPnPプロトコルが使用されるネットワーク(図3に示された例示的なUPnPネットワーク314など)を記述する。本アーキテクチャでは、UPnPアーキテクチャに従って作られたエンティティ以外のエンティティを、UPnPネットワーク314に結合することができる。しかし、この特定のネットワークフレームワークは、単なる例示である。このリソース情報配布機能性は、他の種類のアーキテクチャおよびネットワークを使用して実施することができる(すなわち、この機能性は、UPnPエンティティを含むネットワークに制限されない)。
具体的に言うと、短く説明したように、UPnPネットワーク314に、1つまたは複数の受信側エンティティに情報を供給する1つまたは複数のソースエンティティを含めることができる。UPnPネットワーク314に、任意選択として、ソースエンティティから受信側エンティティへの情報の転送を調整し、他の機能を実行する1つまたは複数のコントロールポイントを含めることができる。例えば、ソースエンティティに、メディアサーバまたは他の種類のデバイスを含めることができる。受信側エンティティには、コントロールポイントデバイス、メディアレンダリングデバイス、または他の種類のデバイスを含めることができる。一般に、用語「エンティティ」および「デバイス」は、本明細書では広義に解釈されなければならず、これらの用語は、帰するタスクを実行する別個の独立型ユニットを指すことができ、あるいは、複数のユニットからなるシステムを含めることができ、あるいは、ユニット内に含まれるハードウェアコンポーネントおよび/またはソフトウェアコンポーネントを含めることなどができる。議論を単純にするために、用語「デバイス」を、このセクションでは、UPnPネットワーク314に結合されたすべての種類のモジュールを記述するのに使用する(さらに、メディアサーバデバイスを、議論を単純にするために「メディアサーバ」とも呼ぶ)。
さらに、具体的な例を提供するために、次の議論で、家庭内の人が、UPnPネットワーク314を使用して、家庭内の複数のメディアサーバおよびメディアレンダリングデバイスを相互接続する、家庭コンテキストでのリソース情報配布機能性を説明する。しかし、このリソース配布機能性は、会社環境(例えば、1企業内)、アカデミック環境(例えば、学校または大学内)などを含むすべての環境に適用することができる。
さらに、UPnPネットワーク314は、通常は、比較的小さく、明確に定義された地理的区域内(例えば、ビルディング内)のデバイスを一緒に結合する。しかし、このリソース情報配布機能性は、地域的により包括的な環境に適用することができる。
さらに、次の議論で、「リソース」は、情報のすべての単位を指す。例えば、リソースは、単一のファイルに対応することができ、あるいは、ファイルの一部に対応することができ、あるいは、複数のファイルのコレクションに対応することができる。例えば、リソースが、音楽に対応すると仮定する。その音楽を、単一のファイルにストアするか、単一のファイルの一部だけにストアするか、複数のファイルにストアすることができる(最後の場合に、この複数のファイルに、他の音楽からのストリームを組み合わせることもできる)。具体的に言うと、図3からわかるように(この図の右端部分に留意されたい)、リソースストア(下で説明する)にストアされた例示的なリソース(R)に、本明細書で一般に「リソース情報」と称する様々な情報コンポーネントを含めることができる。リソース情報のそのようなコンポーネントの1つが、「リソースメタデータ」である。リソースメタデータには、リソースのタイトル、そのリソースに関連するアーティスト、そのリソースが作成された日付などの、リソースに関する高水準情報が含まれる。リソース情報のもう1つのコンポーネントが、「リソースコンテンツ」である。リソースコンテンツには、リソースメタデータが記述するデータが格納される。例えば、オーディオリソースのリソースコンテンツは、コンシューマに再生されるオーディオデータに対応する(この開示の諸部分で、用語「リソースコンテンツアイテム」が、特定のリソースに関連するリソースコンテンツを指すのに使用される;この場合の用語「アイテム」の使用は、単に、ある文脈での用語「リソースコンテンツ」の使用を明瞭にするための文法的な便宜の問題である)。最後に、次の説明で、しばしば、レンダリングデバイスでの提示のための、そのレンダリングデバイスへの「リソースコンテンツ」の転送に言及する。この転送は、リソースコンテンツ以外のリソースに関する追加情報の転送を除外せず、リソースの転送に、例えば、リソースコンテンツに付随するリソースメタデータを含めることもできる。
さらに、リソース自体を、個々のメンバリソースのコレクションとすることができる。例えば、リソースが、いわゆるリソースコンテナまたはリソースフォルダあるいはリソースの他の種類のコレクションを構成することができる。下で説明するように、リソースコンテナは、メディアサーバが1つまたは複数のメンバリソースの内部的な管理に使用する、これらのメンバリソースのグループ化を指す。リソースフォルダは、メディアサーバがユーザに「可視」にする1つまたは複数のメンバリソースのグループ化を指す。例えば、メディアサーバに、それぞれに1つまたは複数のメンバリソースを含めることができる複数のリソースフォルダを提示できるユーザインターフェースディスプレイ(または他のプレゼンテーション機構)を含めることができる。しかし、メディアサーバは、内部的に、リソースコンテナのコンテキストでこれらのメンバリソースを管理することができる。リソースフォルダ内の情報の割当は、一般に、リソースコンテナ内の情報の割当と異なるが、代替実施形態では、この割当を同一にすることができる(さらに、メディアサーバは、任意選択として、ユーザがリソースコンテナおよびそのめいめいのメンバリソースに関する情報を見ることと、フォルダごとの基礎ではなくまたはそれに加えてコンテナごとの基礎で様々なアクションを実行することを可能にすることができる)。すべてのコレクション(リソースコンテナまたはリソースフォルダのいずれか)自体に、メンバ「子」コレクション(すなわち、めいめいの子リソースコンテナまたは子リソースフォルダ)を含めることができる
特定の種類のリソースコレクションが、リソース再生リストである。このリソースは、オーディオリソース、ビデオリソース、および/または写真リソース(あるいは他の種類のリソース)のリストを参照するファイルとして実装することができる。
上の例は、リソースがとることのできる現れのうちの少数を記述したものにすぎず、一般に、用語リソースは、あらゆる考慮に基づく情報のあらゆる集団を抽象的に表す。
一実施形態で、リソースを、オーディオリソース(例えば、音楽、オーディオブックなど)、ビデオリソース、写真リソース(例えば、デジタル写真)などのメディアリソースに対応するものとすることができる。しかし、本明細書に記載の原理は、あらゆる目的でのあらゆる種類の情報の配布に使用することができる。
本明細書で引き合いに出される用語「処理」は、様々な動作に関連することができる。ある場合に、用語「処理」が、処理される情報を変更するのに使用される動作を指す。別の場合に、用語「処理」が、処理される情報を単純に取り扱うのに使用される動作、または処理される情報に関する判断を行う動作を指す。これらは、この用語に含まれる動作の様々なタイプの少数の例にすぎない。
さらに、様々な管理タスク(共有リソースの定義など)を実行するために本明細書で説明されるメディアサーバと相互作用するすべてのエンティティを、本明細書で、「メディアサーバユーザ」と称する。メディアサーバユーザは、メディアサーバと相互作用する人間のオペレータに関係することができ、あるいは、メディアサーバと相互作用するように構成された論理機能性を含む他のエンティティを表すことができる。例示的な実施形態では、メディアサーバユーザが、メディアサーバにログオンすると仮定される。一実施形態で、ユーザは、メディアサーバに識別情報を提供することによってメディアサーバにログオンし、その際に、メディアサーバは、そのように構成される場合に、ユーザを認証する(例えば、ユーザに、パスワードを供給するように要求するか、他の形の認証によって)。メディアサーバの他の実施形態は、メディアサーバと相互作用するためにユーザがその身元を与えることを要求しないものとすることができる。下で説明するように、ログオンされたメディアサーバユーザセッションの状況は、アクティブまたはインアクティブになることができる。
メディアサーバにリソース情報を要求するすべてのエンティティを、リソース情報コンシューマと呼ぶ(下では、説明を簡潔にするために、単に「コンシューマ」と呼ぶ)。コンシューマは、メディアサーバにリソースメタデータおよび/またはリソースコンテンツを要求することができる。コンシューマは、コントロールポイントまたはレンダリングデバイスからメディアサーバと相互作用することを望む人間のオペレータを表すことができ、あるいは、メディアサーバと相互作用するように構成された論理機能性を含む他のエンティティを表すことができる。人間のオペレータの場合に、同一の人が、メディアサーバユーザおよびコンシューマの両方として機能することができ、その代わりに、異なる個人がこの2つのめいめいの役割を引き受けることができる。
最後に、代替案(例えば、AまたはB)で、この開示で複数の例を提示する。さらに、この開示に、毎回これらの事例に明示的に言及しない場合があるが、代替案を単一の実施形態に組み合わせる事例が含まれる(例えば、AおよびB)。
この開示には、次のセクションが含まれる。
A.リソース共有を実施する例示的なシステム
A.1.このシステムの概要
A.2.このシステムの例示的な応用例
A.3.メディアサーバアーキテクチャの概要
a.メディアサービスモジュール
b.コンテンツディレクトリデバイスモニタ(CDDM)モジュール
c.ユーザインターフェースモジュール
A.4.高速ユーザ切替の備え
A.5.追加のセキュリティの備え
a.IPアドレス制限
b.MACアドレス認証
c.サブネット制限
d.TTL制限
e.デバイスおよびセッションの制限
f.UPnPアクションへの認証に関する候補デバイスの制限
g.リソースロケータリタイヤメント
h.様々なサーバセキュリティ手段
A.6.URLパラメータ化の提供
B.例示的なユーザインターフェース(UI)プレゼンテーション
B.1.新しいデバイスを許可する例示的なUI
B.2.リソースを共有する例示的なUI
C.例示的なプロセス
C.1.デバイス許可プロセス
C.2.リソース共有プロセス
a.共有リソースの定義
b.要求に基づく共有リソースの配布
c.パラメータ化されたURLの処理
D.例示的なコンピュータ環境
A.リソース共有を実施する例示的なシステム
A.1.このシステムの概要
図3に、リソース情報共有を含む例示的なネットワークアーキテクチャ300を示す。ネットワークアーキテクチャ300には、UPnPネットワーク314を介して一緒に結合された複数のUPnPデバイス(302〜312)(下では、簡潔にするために単に「デバイス」と呼ぶ)が含まれる。デバイス(302〜312)に、上で述べたメディアサーバ302と、複数のメディアレンダリングデバイス(304〜312)が含まれる。例示的なメディアサーバに、様々なタイプのコンピュータ、様々なタイプのジュークボックスなどを含めることができる。例示的なレンダリングデバイスに、様々なタイプのコンピュータ、ステレオシステム、スピーカ、TV、ハンドヘルドオーディオプレイヤなどを含めることができる(メディアサーバ302だけが図示されているが、ネットワーク314に、任意の個数のメディアサーバを含めることができる。さらに、複数のメディアレンダリングデバイス304〜312が図示されているが、ネットワーク314に、1つのメディアレンダリングデバイスだけを含めることができ、多分メディアレンダリングデバイスを含めないことができる)。
UPnPネットワーク314に、任意選択として、1つまたは複数のコントロールポイント(例えば、コントロールポイント316、318)も含まれる。コントロールポイント(316、318)を、UPnPデバイス(302〜312)の1つと一体化することができる。すなわち、例えば、レンダリングデバイスに、メディアサーバ302と相互作用するためにコントロールポイント機能性を含めることができる。その代わりに、1つまたは複数のコントロールポイントを、UPnPデバイス(302〜312)と別々に実施することができる。例示的なコントロールポイントは、様々なタイプのコンピュータ、携帯情報端末(PDA)、アプリケーション固有ロジックモジュールなどを使用して実施することができる。集合的に、メディアレンダリングデバイス(304〜312)およびコントロールポイント(316、318)は、他の役割の中でも、リソース情報受信側エンティティとして働くことができ、これは、上で説明したように、これらがメディアサーバ302によって供給されるリソース情報を受信できることを意味する。
UPnPネットワーク314は、UPnPデバイス(302〜312、316、318)の間で情報を転送するのに、TCP/IP、SOAP、GENA、HTTPなど、プロトコルの任意の組合せを使用することができる。UPnPネットワーク314に、さらに、ゲートウェイ、ルータ、ハードワイヤードリンク、無線リンク(例えば、ラジオ周波数リンク)など(図示せず)の任意の組合せを含めることができる。
概要として、新しいUPnPメディアレンダリングデバイスがUPnPネットワーク314に参加する時に、そのデバイスは、メディアサーバ302にその存在をアナウンスする。例えば、この新しいメディアレンダリングデバイスが、図3に示された例示的なデバイス306に対応すると仮定する。メディアサーバ302は、メディアサーバ302のユーザ(すなわち、「メディアサーバユーザ」)に、新しいメディアレンダリングデバイス306の存在について警告する。下で詳細に示すように、メディアサーバ302は、新しいデバイス306に対応する受信したIPアドレスをそのメディアアクセス制御(MAC)アドレスに変換することによるか、ある他の識別/承認機構を使用することによって、新しいメディアレンダリングデバイス306のアイデンティティを判定することができる。次に、メディアサーバ302は、メディアサーバユーザに、この新しいデバイス306をイネーブルするオプションを与える。イネーブルされた場合に、この新しいデバイス306は、メディアサーバ302がそれへのリソースの転送を許可されたデバイスのスイートの受け入れられたメンバになる。
メディア転送動作自体で、メディアサーバ302は、リソースストア320で供給されるリソースに対応するリソース情報を、ネットワーク314に結合されたリソース情報受信側エンティティにルーティングする。広義に言って、この動作を実行するために、コンシューマは、まず、コントロールポイント(コントロールポイント316など)または他のデバイスを使用して、メディアサーバ302のリソースストア320で供給されるリソースに対応するリソース情報を調べることができる。例えば、この動作に、使用可能なリソースのタイトルなどのリソースのリソースメタデータおよびリソースに関する他の高水準情報を調べることを含めることができる。そのような調査の後に、コンシューマは、メディアレンダリングデバイス306などの選択されたレンダリングデバイスでのプレゼンテーションのためにリソースに関連するリソースコンテンツを選択することができる。コントロールポイント316は、その後、メディアサーバ302から選択されたレンダリングデバイス306へのリソースコンテンツの転送をセットアップする際に役割を提供することができる。一実施形態で、UPnPアーキテクチャ300は、HTTPプロトコルなどの(これに制限はされない)非UPnPプロトコルを使用して、メディアサーバ302からレンダリングデバイス306へのリソースコンテンツの転送を実際に実行する。
上で要約した機能を実行するために、メディアサーバ302に、リソース情報共有機能性322が含まれる。次の議論で、リソース情報共有機能性322の高水準の特徴を説明する。セクションA.3で、リソース情報共有機能性322の動作を詳細に説明する。
まず、ルーティングプロシージャに、ネットワーク314を介して共有されるリソースを定義するタスクを含めることができる。1つの例示的な実施形態で、メディアサーバ302が、リソースフォルダなどのコレクションの単位で共有可能リソースを指定するように構成される。すなわち、リソース情報共有機能性322は、共有可能としてリソースフォルダに「耳標を付ける」ことができ、それに含まれるリソースの少なくともいくつかを、ネットワーク312を介して共有できるようにする(下で述べる考慮事項に基づいて)。リソース情報共有機能性322は、メディアサーバユーザが共有フォルダの共有可能状況を定義できるようにする1つまたは複数のUIページを介してこの機能を実行することができる。セクションBで、これらのUIページを詳細に説明する。一般に、継承が、リソースの階層編成内のリソースの共有可能状況に適用される。すなわち、リソースフォルダは、子リソースを構成する1つまたは複数の個々のメンバリソースを含む親リソースとみなすことができる。リソースフォルダに、サブフォルダを含めることもでき、サブフォルダのそれぞれにメンバ子リソースを含めることができる。共有可能として親リソースを指定することは、一般に、そのメンバリソースおよびサブフォルダのすべてを含むその子リソースをも共有可能として指定するという効果を有する。しかし、リソース情報共有機能性322は、異なる継承パラダイムに従って動作するように構成することもできる。例えば、1つの代替の事例で、親リソースの共有可能状況を、そのサブフォルダに自動的に適用しないようにすることができる。
また、リソース情報共有機能性322を、ユーザがリソースの共有状況を除去する(例えば、リソースの「共有を解除」する)ことを可能にするように構成することができる。例えば、1つの事例で、親リソースの共有を解除することが、その子リソースの共有を解除するという効果を有する。1つの事例で、リソース情報共有機能性322は、親が共有可能と指定されている場合に、メディアサーバユーザが子リソースの共有を解除することを禁止することができる。もう1つの事例で、リソース情報共有機能性322は、メディアサーバユーザが、共有解除として共有子リソースを選択的に指定し、これによって、上で説明した継承方式をオーバーライドすることを可能にする。
多数の他の戦略を、リソースの共有に使用することができ、上のリスティングは、可能性の代表的なサンプルを示すにすぎない。例えば、メディアサーバユーザが、個々のリソースレベル(リソースコレクションレベルの代わりにまたはそれに加えて)でリソースを共有可能と指定できるようになるように、リソース情報共有機能性322を構成することができる。さらに、メディアサーバユーザが、他の種類のコレクションを共有可能と指定できるようになるように、リソース情報共有機能性322を構成することができる。
もう1つの例示的な特徴によれば、セクションCで詳細に説明するように、メディアサーバ302が、共有するリソース情報の種類に他の制約を課すことができる。例えば、メディアサーバ302は、ある種類の既知のメディアファイルから得られたリソース情報だけを共有することができる。また、メディアサーバ302は、リムーバブルドライブ、ネットワーク共有などにストアされたファイルから得られたリソース情報の共有を拒否することができる。期待されるリソースの既知の「世界」から得られるリソース情報に共有を制限することによって、UPnPネットワーク314への許可されないアクセスの可能性が減る。
リソース情報共有機能性322は、メディアサーバユーザが、リソース情報(リソースメタデータとリソースコンテンツの両方を含む)のルーティングを制御するのに任意選択として使用することができる配布判断基準を定義できるようにもする。例えば、第1の配布判断基準として、リソース情報共有機能性322は、メディアサーバユーザが、リソース情報の転送をあるリソース情報受信側エンティティに制限できるようにする。第2の配布判断基準として、リソース情報共有機能性322は、メディアサーバユーザが、指定された個人が転送への同意を必要とするかどうかに基づいて条件的にリソース情報の転送を行うことを可能にする。例えば、指定された個人がメディアサーバ302を実装するコンピュータにログオンしている(かつ、その個人の端末セッションがアクティブである)場合に、この判断基準が暗黙のうちに満足されるように、メディアサーバ302を構成することができる。この特徴は、メディアサーバユーザが、リモートからコンソールと相互作用する(例えば、ネットワーク接続を介して)のではなく、メディアサーバ302を実装するコンソールと直接に相互作用する時に限って、そのユーザがログオンしていると考えるようにセットアップすることができるが、もう1つの実施形態では、メディアサーバユーザが、リモート接続を介してログオンしている時であってもそのユーザがログオンしていると考えることができる。もう1つの事例で、指定された個人が、転送が受入可能であると明示的に確認する時(指定された個人が、転送のプロパティに関するUIクエリに肯定的に応答する時など)に限って、この判断基準が満足されるように、メディアサーバ302を構成することができる。1つの例示的な実施形態で、上で述べた「個人」が、配布判断基準に関連するリソースをネットワークを介して共有可能と指定したメディアサーバユーザに対応する。この2つの判断基準は、単に例示であり、リソース情報共有機能性322は、リソース情報の転送を決定する追加の判断基準を課すことができる。例えば、追加の判断基準に、リソース情報へのアクセス特権をある時間に制限する時間制限を含めることができる。リソース情報共有機能性322は、セクションB(下)で説明するように、リソース情報の配布を決定する配布判断基準を定義する、ユーザのための1つまたは複数のUIページを提供することができる。
一実施形態で、配布判断基準の第1のセットを、リソースメタデータの転送に適用し、配布判断基準の別のセットを、リソースコンテンツの転送に適用することができる。第1のセットは、第2のセットと異なるものとすることができる。これは、例えば、リソースコンテンツ自体を実際に取り出すことと比較して、単にリソースのタイトルを見ることに、異なる制限が適用されることを意味する。その代わりに、配布判断基準の第1のセットを、配布判断基準の第2セットと同一にすることができる。しかし、配布判断基準が同一である場合であっても、これが、コンシューマがリソースメタデータを見られるが、リソースコンテンツを見られなくするという効果を有する場合がある。これは、例えば、コンシューマが、配布判断基準によってリソースメタデータを受け取ることを許可されるコントロールポイントにあるリソースメタデータを受け取ることができるが、配布判断基準によってリソースコンテンツを受け取ることを禁止されたレンダリングデバイスでリソースコンテンツの再生を試みるからである。この戦略に対する追加の変形形態が、想定されている。例えば、リソース情報共有機能性322は、単一のセットの配布判断基準を提供することができる。この単一のセットが、リソースメタデータまたはリソースコンテンツあるいはこの両方の散布を排他的に決定することができる。
1つの例示的な実施形態によれば、リソース情報共有機能性322は、個々のリソースではなく、リソースのコレクションのコンテキストで配布判断基準を指定する。例えば、上で説明したように、メディアサーバは、上で説明したUIページを使用して、リソースの集合をリソースフォルダにグループ化し、その後、このリソースフォルダ内のリソースに関連するリソース情報(メタデータ、コンテンツ、または両方)が、ある判断基準を満たす、提供されるUPnPネットワーク314に結合された他のデバイスと共有されなければならないことを指定する。その共有されるリソースフォルダに、それぞれが1つまたは複数のリソースを有すル1つまたは複数のサブフォルダを含めることもできる。上で説明したものと同一の種類の親子継承方式を使用して、リソースの階層への配布判断基準の適用を決定することができる。例えば、リソースフォルダについて確立される配布判断基準を、リソースフォルダ内のサブフォルダおよびリソース(例えば、ファイル)のそれぞれに適用することができる。その代わりに、リソースフォルダに関連する配布判断基準が、リソースフォルダ内のリソースのサブセットだけに適用されるようにリソース情報共有機能性322を構成することができ、例えば、配布判断基準が、リソースフォルダ内の個々のリソースだけに適用され、そのリソースフォルダに含めることができるサブフォルダのリソースに適用されなくならないように、リソース情報共有機能性322を構成することができる。一般的に言うと、リソース情報共有機能性322を、様々な情況で上で説明した親子継承方式をオーバーライドするように構成することができる。
やはり、上で説明した方式は、単に例示であり、代表である。多数の他の置換が存在する。例えば、リソース情報共有機能性322は、メディアサーバユーザがリソースフォルダ内の個々のリソースに配布判断基準を「アタッチする」ことまたは個々のリソースから配布判断基準を除去することを可能にすることができる。その代わりにまたはそれに加えて、メディアサーバ302は、リソースフォルダではなくリソースコンテナに関して配布判断基準を指定することができる。図6に関して詳細に説明するように、リソースコンテナは、そのリソースを管理するためにメディアサーバ302によって内部的に使用されるコレクションを指し、リソースフォルダは、メディアサーバユーザが直接に相互作用するコレクションを指す。メディアサーバ302は、フォルダにグループ化されたリソースを再編成して、コンテナを作成することができる。
もう1つの例示的な特徴によれば、リソース情報共有機能性322は、メディアサーバユーザが配布判断基準の異なるセットを定義することを可能にすることができる。例えば、異なるユーザが、配布判断基準の異なるめいめいのセットを定義することができる。リソース情報共有機能性322は、それに関連するユーザが、メディアサーバ302を実施するコンピュータシステムにログオンする時に、配布判断基準のこれらの組の1つを自動的に呼び出すことができる。その代わりに、単一のメディアサーバユーザが、配布判断基準の異なるセットを定義することができる。メディアサーバユーザは、特定の有力なオペレーティング環境に最も適するセットを呼び出すことができる。例えば、メディアサーバユーザは、メディアサーバユーザが日中に家庭にいると期待される時に、週末に適用される配布判断基準の第1のセットをアクティブ化し、日中に家庭にいないと期待される時に、ウィークデイの別のセットをアクティブ化することができる。その代わりに、所与の時に両方のセットを適用するために、配布判断基準の1つのセットを別のセットとマージすることができる。ルールを構成して、セットの間の潜在的な衝突を解決することができる。やはり、これらは、単に代表的であり例示的なシナリオである。この設計戦略の多数の他の置換を実施することができる。
他の実施形態は、上で説明したシナリオに追加の制約を課すことができる。1つの例示的な実施形態では、リソース情報共有機能性322は、メディアサーバユーザが、この特定のメディアサーバが共有可能と指定したリソースだけに関する配布判断基準を追加しまたは変更することを可能にすることができる。
もう1つの特徴によれば、リソース情報共有機能性322は、1つまたは複数の配布判断基準を「ハードコード」し、これらの配布判断基準が、ユーザがUIページ(または他の機構)を介してこれらを定義する必要なしに自動的に適用されるようにすることができる。さらに、リソースがリムーバブルドライブにストアされているので共有を禁止されるかどうかを判定する要因など、リソースが共有可能であるか否かを最初に判断することに関する複数の要因を、上で説明した。これらの要因は、概念上、ハードコードされた配布判断基準とみなすことができる。ここでの「ハードコード」は、メディアサーバユーザが、他の配布判断基準(受信側エンティティ関連判断基準など)の定義に使用されるUIページを介してこれらの要因を変更できない可能性があることを意味する。しかし、一実施形態で、リソース情報共有機能性322に、メディアサーバユーザが様々な情況でこれらの要因を変更できるようにする様々な備えを含めることができる。
もう1つの特徴によれば、様々な機構を使用して、メディアサーバユーザが他のメディアサーバユーザの配布判断基準を検査し、かつ/または変更することを防ぐことができる。例えば、一実施形態で、リソース情報共有機能性322は、メディアサーバユーザが、共有可能としてリソースを指定した場合に限って、これらのリソースに関する配布判断基準を定義し、または変更することを可能にする。この設計戦略の他の置換が可能である。
そのルーティング動作において、リソース情報共有機能性322は、まず、コンシューマが共有リソースに関連する情報を検索することを可能にする。例えば、上の概要で示したように、コンシューマは、コントロールポイント316(または他のデバイス)を使用して、リソースストレージ320で提供されるリソースに関連するリソースメタデータを見る要求を入力することができる。具体的に言うと、この要求は、ブラウザ要求、検索要求、またはある種類の他の要求とすることができる。ブラウザ要求は、ある指定されたカテゴリ内など、情報アイテムのコレクションの取り出しをもたらすことができるUPnPアクションであり、検索要求は、指定されたキー用語に応答してなど、1つまたは複数のターゲットにされた情報アイテムの取出をもたらすことができるUPnPアクションである。どの場合でも、この要求の伝送は、図3でパス324によって表される。
リソース情報共有機能性322は、共有リソースを記述したリソースメタデータのコレクションをスキャンして、コンシューマの要求を満足すると同時に、1つまたは複数のメディアサーバユーザによって定義された関連する配布判断基準が存在する場合にその判断基準を満足するリソースを突き止めることによって、要求に応答する324。例えば、コンシューマは、コメディジャンルのすべての使用可能なビデオリソースに対応するリソースメタデータを供給するようにメディアサーバ302に要求することができる。リソース情報共有機能性322は、リソースメタデータをスキャンして、指定された検索条件に一致し、関連する配布判断基準(これらのリソースの表示をリソース情報受信側エンティティのサブセットに制限する判断基準、特定のメディアレンダリングデバイスを使用する子供へのRレーティングリソースの表示を防ぐ判断基準など)を満たす関連するリソースを突き止めることによって、この要求に応答する。任意選択としてすなわち必ずではないが、配布判断基準を適用するようにリソース情報共有機能性322を構成できることに留意されたい。したがって、関連する配布判断基準が存在しない場合、またはメディアサーバ302が現在、配布判断基準を適用するように構成されていない場合に、配布判断基準は、リソース情報の配布の制限で役割を演じない。
リソース情報共有機能性322が、上で説明した制約を満足する1つまたは複数のリソースに対応するリソースメタデータを見つけた場合に、そのリソース情報共有機能性322は、このリソースメタデータをコンシューマに送信する。リソース情報共有機能性322によって生成される応答は、具体的には、拡張マークアップ言語(XML)を使用して定式化される。XML応答は、使用可能なリソースに関する名前、アーティスト、作成日付、サイズなど、使用可能なリソースに関する高水準データを識別するリソースメタデータを提供することができる。リソースメタデータは、URL(uniform resource locator)など、リソースコンテンツをそこから取り出すことができるネットワーク位置を識別するリソースロケータも提供する。図3では、このXML情報の転送が、パス326によって示されている。適切な備えを有する場合に、コントロールポイント316は、受信したXML情報をプレゼンテーションフォーマットに変換し、その後、その情報をモニタまたは他のプレゼンテーションデバイスに表示する(一般に、図3では、コントロールポイント316によって提供されるディスプレイプレゼンテーション328によって表される)。その一方で、一実施形態で、コントロールポイント316は、検索のパラメータおよび適用可能な場合に配布判断基準の制約を満足する応答情報が使用可能と判定されない場合に、メディアサーバ302から情報を受信しない。この場合に、コンシューマは、リソースストレージ320に保管された一致しないリソース情報の存在および特性を知らない可能性がある(本明細書で使用される用語「一致しないリソース情報」は、コンシューマの検索のパラメータを満足するが、配布判断基準の制約を満足しないリソースに関するリソース情報を指す)。
一致しないリソースメタデータの可用性を制限することは、複数の理由から望ましい。この特徴は、一般に、コンシューマが好ましくないことを見つける可能性がある(またはコンシューマの保護者が好ましくないことを見つける可能性がある)リソースメタデータの表示を排除するので有利である。また、一致しないリソースメタデータの可用性を制限することは、コンシューマに関心を持たせない可能性がある余分な情報を除外するのに有益である。もう1つの実施形態で、リソース情報共有機能性322は、メディアサーバユーザが、特定のリソースのそうでなければ一致するリソースメタデータが関連する配布判断基準を満足しない場合にリソースメタデータの一部(すべてではなく)を単純にフィルタリングする配布判断基準を提供することを可能にすることもできる。これは、保護者が、単に、子供がレンダリングデバイスであるリソースのタイトルを見ることを防ぎたいが、それ以外の点で、そのリソースがメディアサーバに存在することを示す情報を子供が受け取ることに異議を唱えない場合に適当である可能性がある。この事例の配布判断基準は、適用される時にタイトルだけを阻止するという効果を有する。一実施形態で、リソースメタデータ自体に、リソースメタデータがコントロールポイントまたは他のリソース情報受信側エンティティによって表示される形を決定するのに使用できるディスプレイ推奨を含めることができる。
最後の注記として、リソース(上で定義した)が、例えば特定のリソースアイテムを提供する個々のリソースを指すことができることを想起されたい。さらに、リソースは、それ自体が1つまたは複数のメンバリソース(および多分1つまたは複数の他のリソースコレクション)を含むことができるリソースコレクション(例えば、リソースコンテナ、リソースフォルダなど)を指すことができる。したがって、1つまたは複数の個々のリソースまたはリソースコレクションを記述したリソースメタデータを提供するように、リソース情報共有機能性322を構成することができる。前者の場合に、リソースメタデータに、個々のリソースのタイトル、作成者などの個々のリソースに関係する高水準情報を含めることができる。後者の場合に、リソースメタデータに、リソースコレクションに関する高水準情報を含めることができる。そのような高水準情報に、コレクション全体自体を記述するすべての種類のグローバル情報、ならびに個々のメンバリソースのタイトル、作成者など、リソースコレクション内の個々のメンバリソースおよびサブコレクション(存在する場合に)に関する情報を含めることができる。
議論を容易にするために、次の説明では、一般に、各リソースのリソースメタデータに、リソースコンテンツを見つけることができる(その結果、後にそれを取り出すことができる)場所を記述するリソースロケータが含まれると仮定する。しかし、一実施形態で、リソースがリソースコレクションである場合に、そのリソースメタデータに、それに関連するリソースロケータを含めても、含めなくてもよい。例えば、いわゆる再生リストリソースコンテナは、それに関連するリソースロケータを有することができる。このリソースロケータは、再生リスト(例えば、曲のリスト)または再生リスト内の曲のそれぞれ(例えば、「連結された」曲のセット)のいずれかを取り出すのに使用することができる。再生リストは、例えば、曲に関連する個々のリソースロケータを提供することによるなど、曲のそれぞれをどのようにして取り出すかを識別することができる。しかし、他のリソースコレクションが、それに関連するリソースロケータを有しないことができる。一般に、すべての所与のアプリケーションに、リソースロケータを有するコレクション、リソースロケータがないコレクション、またはリソースロケータありおよびなしのコレクションの組合せを含めることができる。議論を容易にするために、次の説明は、一般に、リソースメタデータアイテムとリソースロケータの間の1対1対応を暗示するが、必ずしも明示的に述べられてはいないが、リソースコレションの上の限定が、潜在的にあてはまる。
使用可能なリソースを(提供されるリソースメタデータを介して)見た後に、コンシューマは、選択されたメディアレンダリングデバイス、例えばレンダリングデバイス306で、使用可能な個々のリソースの1つに対応するリソースコンテンツを再生すると決定することができる。これは、様々な形で実行することができる。1つの技法によれば、コントロールポイント316(または他のエージェント)が、URL(uniform resource locator)などの選択されたリソースコンテンツアイテムに対応するリソースロケータをレンダリングデバイス306に供給することができる(やはり、このリソースロケータが、コンシューマの最初のクエリに応答してメディアサーバ302によってコントロールポイント316にリソースメタデータの一部として供給されたことを想起されたい)。次に、レンダリングデバイス306が、このリソースロケータをメディアサーバ302にサブミットすることができる。メディアサーバ302は、レンダリングデバイス306から受信したリソースロケータを使用して、選択されたリソースコンテンツを突き止め、次に、このリソースコンテンツを、選択されたレンダリングデバイス306に提示する。この一連のアクションを、例えばHTTP GET動作または他のタイプの動作を使用して、UPnPプロトコルの外で実行することができる。この動作では、レンダリングデバイス306が、HTTP GETコマンドをメディアサーバ302に供給する。そのコマンドに、リソースロケータが含まれる。図3では、このアクションが、パス330によって示されている。メディアサーバ302は、要求されたリソースコンテンツを供給することによって応答する。図3では、このアクションが、パス332によって示されている。HTTP GETプロトコルの他に使用できる他のプロトコルが、IEEE 1394、RTSP/RTPなどである。様々なメディアストリーミング技法を使用して、メディアサーバ302からメディアレンダリングデバイス306にリソースコンテンツを転送することもできる。さらに、アイテムのリソースロケータのそれぞれを別々に1つずつ送信するのではなく、複数のリソースロケータを、レンダリングデバイス306に転送することができ、その後、メディアサーバ302に転送して、複数のリソースコンテンツアイテムをひとまとめにした転送を実行することができる。
上で述べたように、HTTP GETプロトコル(または他のプロトコル)を使用する実際のリソースコンテンツの取り出しは、任意選択として、配布判断基準による条件付きにすることもできる。すなわち、上で説明したように、配布判断基準の第1セットが、リソースメタデータの散布を決定し、配布判断基準の第2セットが、リソースコンテンツの散布を決定することができる。第1セットを第2セットと同一にすることができ、あるいは、第1セットを第2セットと異なるものにすることができる。判断基準の第2セットを使用して、メディアサーバ302は、要求元のレンダリングデバイスがコンテンツの受信を許可されないことを関連する配布判断基準が示す場合に、リソースコンテンツの配布を禁止することができる。この備えは、許可されないレンダリングデバイスが、許可されたデバイスから受信した(許可ありまたは許可なしのいずれかで)リソースロケータを使用してリソースコンテンツの受信を試みることを防ぐ。この備えは、一度は許可されたがもはや許可されていないデバイスが、リソースコンテンツへのアクセスを試みるために「古い」リソースロケータを使用することによってリソースコンテンツを受信することも防ぐことができる。
1つの事例で、メディアサーバ302は、デバイスがリソースメタデータの受信を許可された場合であっても、その同一のデバイスへのリソースコンテンツの配布を防ぐことができる。その代わりに、メディアサーバ302が、あるデバイスがリソースコンテンツ自体にアクセスできる場合であっても、そのデバイスへのリソースメタデータの配布を禁止することができる。一般に、用語配布判断基準の「第1セット」および「第2セット」は、判断基準の異なるコレクションをリソースメタデータとリソースコンテンツの配布に適用できることを単純に示す、抽象概念である。1つの事例で、この2つのセットを、文字どおり、パラメータの2つの別々のストアによって実施することができる。別の事例で、この2つのセットを、各判断基準がリソースメタデータおよび/またはリソースコンテンツの配布に適用されるかどうかを示すフィールドまたは属性を各判断基準にアタッチすることによって実施することができる。もう1つの事例で、リソースメタデータおよびリソースコンテンツの両方またはリソースメタデータまたはリソースコンテンツのいずれかの配布に暗黙のうちに適用されるという前提で、判断基準の単一のストアを設けることができる。この散布戦略を実施する、多数の他の変形が可能である。
デバイス関連判断基準の他に、他の種類の配布判断基準をリソースコンテキストの散布に適用することができる。例えば、リソースメタデータの散布の上で説明した事例と同様に、メディアサーバ302は、指定された個人が転送に必要な同意を与えなかったことを関連する配布判断基準が示す場合に、リソースコンテンツの配布を禁止することができ、この判断基準は、その個人がメディアサーバ302を実装するコンピュータシステムに現在アクティブにログオンしていることを要求することによって満足することができる。他の判断基準によって、リソースコンテンツの配布を決定することができる。
もう1つの実施形態で、メディアサーバ302は、配布判断基準に応じて、リソースコンテンツの配布を行わないことができる。この実施形態の前提は、コンシューマがメディアサーバ302によって供給されたリソースコンテンツに対応する有効なリソースロケータを有する場合に、そのコンシューマが、そのリソースコンテンツ自体にアクセスする正しい権限を有すると仮定することとすることができる。これは、コンシューマが、まずリソースメタデータを入手するために、リソースメタデータの配布を決定する配布判断基準に示された条件を満たしていなければならないからである。
A.2.このシステムの例示的な応用例
図4に、家庭環境での上で説明したリソース共有戦略の例示的な応用例を示す。しかし、上で注記したように、本明細書に記載の原理は、会社、アカデミック組織など、すべての環境に適用することができる。
図4では、家庭402の概略に、私室404、子供の寝室406、親の寝室408、キッチン410、およびリビングルーム412などの複数の部屋が含まれる。図4には、父414、母416、および子供418を含む、家庭402に住む3人の個人も示されている。
私室404に、メディアサーバ420および関連するリソースならびにレンダリングデバイスM 422が含まれる。子供の寝室406に、レンダリングデバイスN 424が含まれる。親の寝室408に、レンダリングデバイスO 426が含まれる。キッチン410に、レンダリングデバイスP 428が含まれる。リビングルーム412に、レンダリングデバイス430および432(QおよびR)が含まれる。図示されていないが、様々なコントロールポイントを、家庭402全体に散在させることができる。例えば、私室404のデバイスM 422が、コンシューマがメディアサーバ420と相互作用できるコントロールポイントとしても機能することができる。メディアサーバ420は、私室404に置かれているので、私室404は、この家庭全体を通じたリソースの配布を決定する配布判断基準をセットアップするコントロールセンタとして機能することができる。母416は、この例では、これらの判断基準をセットアップすることによって、メディアサーバユーザとして働いている。最後に、私室404に、デバイスのすべてを一緒に結合するルータ434も含まれる。ルータ434は、普通の形ですなわち、情報に関連するアドレッシング情報に応じて、リソース情報および他の情報を様々なデバイスにルーティングすることによって、機能する。
リソース情報共有機能性322は、異なる環境および目的に合うように、様々な異なるリソース共有シナリオを提供することができる。少数のリソース共有可能性の輪郭を次の議論で示して、リソース情報共有機能性322をどのように使用できるかの具体的な例を提供する。
第1のシナリオでは、メディアサーバユーザ(メディアサーバ420を使用する)が、子供の寝室406のデバイスN 424だけへの配布のために、リソースの第1の特定のグループをリソースフォルダに選り抜き、そのリソースフォルダ内のリソースに関連するリソース情報に耳標を付けることを求めることができる。したがって、子供418は、自分の部屋で適当な子供のリソース情報(例えば、リソースメタデータおよび/またはリソースコンテンツ)にアクセスすることができる。それと同時に、親(414および416)は、リソースメタデータをブラウズまたは検索する時にこのリソースメタデータを見ない。これは、興味のないリソースメタデータが親(414および416)に殺到しないという有益な効果を有する。
第2のシナリオでは、親(414および416)が、アクションジャンルのリソース情報の配布を、親の寝室408で見るために親自体だけに制限することを望むことができる。親(414および416)は、例えば、このリソース情報の暴力が、子供418が見るのに不適切であることを心配する可能性がある。メディアサーバユーザは、アクションジャンルのRレーティングのリソース情報のコレクションが、親の寝室408のデバイスO 426でのみ再生されなければならないことを指定することによって、この制限を実施することができる。したがって、子供418は、自分の部屋406からこの好ましくないリソース情報にアクセスすることができず、子供418は、この好ましくないリソース情報が存在することすら知らない(リソース情報共有機能性322が、このリソースに関するリソースメタデータさえも子供から遮蔽することができるので)。
第3のシナリオでは、メディアサーバユーザが、リソースのある他のコレクションに関連するリソース情報に、すべてのレンダリングデバイスでの表示に適当として耳標を付けることができる。これは、リソースのこのコレクションの配布判断基準を定義する時に「全デバイス」を指定することによって実施することができる。
上で説明したデバイス関連制約に加えて、メディアサーバユーザは、メディアサーバ420を操作する選択された個人がリソース情報の転送に対する暗黙のまたは明示的な同意を与えたかどうかに基づいて条件付きで、リソース情報へのアクセスを行うことができる。例えば、第4のシナリオで、この判断基準は、母416がメディアサーバ420にログオンしている(かつ、彼女の端末セッションがアクティブである)時に満足される。この場合に、リソース情報の転送に対する母416の同意は、メディアサーバ420との母の単なる同時相互作用から推論される。もう1つの事例で、この判断基準は、母416が転送に明示的な合意を与える時に限って満足される。これは、彼女の子供が特定のリソースメタデータまたは特定のリソースコンテンツへのアクセスを試みる時に、ポップアップメッセージを提示することによって達成することができる。転送は、母416が、このクエリに肯定して応答する時に限って進行する。
その一方で、「全ユーザ」を指定するユーザ判断基準は、リソース情報の提示に何の制約も課さない。言い換えると、この判断基準がセットされた場合に、リソース情報は、メディアサーバ420を操作するいかなる個人の同意も参照せずに、すべての許可されたデバイスで提示することができる。しかし、デバイス関連判断基準は、リソース情報を提示できる場合に関する独立の制約を課すことができ、したがって、効果的に、あるデバイスがこれらのリソースを受け取れないようにする。
やはり、リソース情報共有機能性322は、リソースが消費される時刻に関する様々な判断基準など、デバイス関連判断基準およびユーザ同意関連判断基準の他の種類の判断基準を提供することができる。また、やはり、上で説明した特徴は、会社環境など、家庭コンテキスト以外の他の環境に同等に適用可能である。
最後に、下のセクションA.5で完全に説明するように、家庭402の外の様々なエンティティが、許可されない形でこのホームネットワークとの相互作用を試みる可能性がある。例えば、家庭402内に設けられたネットワークの一部が、無線リンクとして実装される場合があり、この場合に、許可されないエンティティが、それ自体を有効なコントロールポイントまたはレンダリングデバイスとして提示するのに十分に家庭402の近くで動作している場合がある。もう1つの事例で、許可されないエンティティが、意図的にまたは意図的でなく、メディアサーバ420によって提供されるリソース情報を盗聴する、広域ネットワーク(インターネットなど)を使用する個人を表すことができる。どちらの場合でも、上で説明したリソース共有戦略を使用して、リソース情報の散布を、既知の限られたレンダリングデバイスのセットに制限することができる。これは、許可されないエンティティがリソース情報にアクセスするのを防ぐという効果を有する。というのは、これらのエンティティが、リソース情報を受信できる、事前に承認されたデバイスのリストにないからである。配布は、さらに、メディアサーバ420を操作する指定された個人の同意によって条件的である。これによって、許可されないアクセスのパスにもう1つの障害が置かれる(この判断基準が、リソース状態を分け与えるのにメディアサーバユーザの明示的なまたは暗黙の承認を必要とするので)。下のセクションA.5で、リソース情報への許可されないアクセスを邪魔するように設計された複数の他の備えを説明する。
A.3.メディアサーバアーキテクチャの概要
図5は、図3に示された例示的なメディアサーバ302のより詳細な図である。メディアサーバ302は、ソフトウェア、ファームウェア(例えば、固定されたロジック回路)、またはソフトウェアとファームウェアの組合せを使用して、図5に示された様々なブロックを実装することができる。用語「ロジック」は、本明細書では、一般に、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組合せを表す。ソフトウェア実施形態の場合に、図示のブロックは、処理デバイス(例えば、CPU)で実行される時に、指定されたタスクを実行するプログラムコード(および/または宣言ステートメント)の集合を表すことができる。プログラムコードは、1つまたは複数のコンピュータ可読メモリデバイスにストアすることができる。
概要として、メディアサーバ302のアーキテクチャに、3つの主コンポーネントが含まれる。第1の主コンポーネントは、メディアサーバモジュール502である。メディアサーバモジュール502は、リソース情報共有コード、新しいデバイスについてUPnPネットワーク314を監視するコード、およびリソースコンテンツを共有するサーバをホスティングする。メディアサーバモジュール502は、ネットワーク314を介するリソースメタデータおよびリソースコンテンツの配布を決定するのに使用されるコンフィギュレーションデータ(例えば、共有されるリソースフォルダのリスト、承認されたデバイスのリスト、リソース情報転送に関する同意を提供することを要求されるメディアサーバユーザのリストなど)も維持する。
第2の主コンポーネントは、コンテンツディレクトリデバイスモニタ(CDDM)サービスモジュール504である。下で詳細に説明するように、CDDMサービスモジュール504は、メディアサーバ302のシステムリソースと相互作用するために、メディアサーバモジュール502と比較してより高いアクセス特権を有する。したがって、メディアサーバ302は、CDDMサービスモジュール504を使用して、より低いアクセス特権に起因してメディアサーバモジュール502が実行できない少数の特権動作を実行する。CDDMサービスモジュール504によって提供される動作を、下で列挙し、詳細に説明する。
第3の主コンポーネントは、コンフィギュレーションおよびコントロールパネルモジュール506(簡潔にするためにコントロールパネルモジュール506と呼ぶ)である。コントロールパネルモジュール506は、ログオンしたユーザが、ネットワーク314に加わる新しいデバイスの許可を承認するか拒否することと、共有リソースフォルダのリストを管理することと、関連する配布判断基準を定義することを可能にする。また、コントロールパネルモジュール506は、メディアサーバ302がクリティカルシステムエラーに出会った時に、メディアサーバユーザに警告する。
サブセクションA.4(下)で説明するように、メディアサーバ302は、高速ユーザ切替(FUS)を実装する。FUS技法は、複数のメディアサーバユーザが、メディアサーバ302をホスティングするコンピュータシステムに同時にログオンできるようにする。この場合に、メディアサーバ302は、同時に動作することができる、コントロールパネルモジュール506の複数のインスタンスを提供する。図5に、モジュールインスタンス506がユーザ508との相互作用に使用され、モジュールインスタンス510がユーザ512との相互作用に使用され、モジュールインスタンス514がユーザ516との相互作用に使用される例示的な事例を示す。しかし、各ユーザは、いつでもコントロールパネルモジュール506の多くとも1つのインスタンスを起動することができる。プライベートアプリケーションプログラミングインターフェース(API)518が、コントロールパネルモジュール506をメディアサーバ302の他のコンポーネントに結合する。
上で説明した3つのモジュールのそれぞれが、異なるいわゆる「ユーザコンテキスト」で動作する。メディアサーバモジュール502は、いわゆるローカルサービスユーザコンテキストまたはネットワークサービスコンテキスト(下で説明する)などのいわゆる「クランプドダウン(clamped−down)」ユーザコンテキストで動作する。CDDMサービスモジュール504は、いわゆるローカルシステムユーザコンテキストで動作する。コントロールパネルモジュール506は、いわゆるログオンしたユーザのユーザコンテキストで動作する。基本的に、クランプドダウンユーザコンテキストは、新しいデバイスに関するUPnPネットワーク314の監視、リソース情報の共有など、UPnP機能のコレクションに関するアクセス特権を提供する。しかし、クランプドダウンユーザコンテキストは、ディスクにストアされたリソースの実際の読み取り、削除、および書き込みなど、メディアサーバ302を実装するのに必要なコンピュータによって提供されるあるリソースのアクセスを許容しない場合がある。ローカルシステムユーザコンテキスト(CDDMサービスモジュール504によって使用される)は、これらのコアコンピュータリソースへのアクセスを提供し、さらに、クランプドダウンユーザコンテキストがこれらのコンピュータリソースにアクセスするのを許可するためにこれらのコンピュータリソースに対するアクセス許可を変更することができる。したがって、クランプドダウンユーザコンテキスト(メディアサーバモジュール502によって使用される)およびローカルシステムユーザコンテキスト(CDDMサービスによって使用される)は、互いに補完して、UPnP共有機能性を実装するのに必要な機能性を提供する。ログオンしたユーザのユーザコンテキスト(コントロールパネルモジュール506によって使用される)は、ログオンしたユーザ(例えば、ユーザ508)に特に関連するアクセス特権を提供する。
メディアサーバ302のリソース、より広義にはメディアサーバ302をホスティングするコンピュータシステムのリソースを保護するために、異なるセキュリティユーザコンテキストに異なる機能性を割り当てることが望ましい。例えば、メディアサーバ302は、メディアサーバユーザがメディアサーバ302に一人もログオンしていない状態で、バックグラウンドモードである動作を実行することができる。そのようなバックグラウンド動作の1つは、クリティカルシステムエラーがある時、または新しいメディアレンダリングデバイスまたはコントロールポイントがネットワーク314上で検出された時に、メディアサーバユーザに通知することを必要とする(どちらの事例でも、これは、コントロールパネルモジュール506を起動することによって実行される)。これらのバックグラウンドタスクに関連する機能性が、メディアサーバ302によって提供されるシステムリソースのすべてと直接に相互作用することを防ぐことが望ましい。このために、メディアサーバ302は、CDDMサービスモジュール504を使用し、CDDMサービスモジュール504は、ローカルシステムユーザコンテキストを使用して、メディアサーバモジュール502を補足する(メディアサーバモジュール502は、クランプドダウンユーザコンテキストで動作する)。上で述べたように、CDDMサービスモジュール504は、クランプドダウンユーザコンテキストが立ち入り禁止のコアシステムリソースにアクセスするのに必要なアクセス特権を有する。
次の議論で、説明を容易にするために、クランプドダウンユーザコンテキストを、ローカルサービスユーザコンテキストを使用する特定の実施形態のコンテキストで説明する。ローカルサービスユーザコンテキストは、通常は他の普通のユーザアカウントのようにコンピュータシステムへの対話型ログオンを許容しない、Microsoft Windows(登録商標)オペレーティングシステムによって作成された特殊なアカウントを参照する。しかし、前に述べたように、ネットワークサービスコンテキスト(これもMicrosoft Windows(登録商標)オペレーティングシステム内の事前定義のユーザコンテキストを参照する)または他のユーザコンテキストを使用することによって、クランプドダウンユーザコンテキストを実装することも可能である。ローカルサービスユーザコンテキストとネットワークサービスユーザコンテキストの両方が、それに関連する特権の類似するセットを有するが、これらのユーザコンテキストによって提供される利益は、同一ではない。例えば、ネットワークサービスユーザコンテキストは、Windows(登録商標)オペレーティングシステムが動作するネットワークに結合された他のマシンによって認識される信任証を提供する。対照的に、ローカルサービスユーザコンテキスト信任証は、ユーザのローカルマシンだけで認識され、さらに、あるマシンのローカルサービスユーザは、他のマシンで認証されることができない。
図3のコンテキストで導入されたリソース情報共有機能性322は、集合的に、上で識別された3つのコンポーネント(502、504、506)を表す。この、上で説明したコンポーネントのそれぞれを、下で順番に説明する。
a.メディアサービスモジュール
まず、デバイス監視モジュール520は、UPnPネットワーク314に結合されたデバイスから通知を受信する。例えば、このモジュール520は、UPnPネットワーク314に追加された新しいレンダリングデバイスによって生成されたアナウンスメントを検出する。このモジュール520は、次に、メディアサーバ302内の他のモジュールにこのイベントについて通知し、これが、他のアクション(下で、例えば図16および17に関して詳細に説明する)をトリガする。デバイス監視モジュール520は、UPnPネットワーク314に結合されたコントロールポイントによって行われた要求も検出する。図5からわかるように、リソース情報コンシューマ(例えば、簡潔にするために「コンシューマ」)は、メディアサーバ302によって提供されるリソースメタデータのブラウズまたは検索のために、そのような要求を開始することができる。次に、デバイス監視モジュール520は、この要求についてコンテンツディレクトリサービスモジュールに通知し、これによって、他のアクション(下で詳細に説明する)がトリガされる。
リソースモニタモジュール522は、新たに追加されたリソース、削除されたリソース、または変更されたリソースについて、リソースストレージ320(図3で紹介した)を監視する。変更を検出した時に、リソースモニタモジュール522は、リソースに対する変更についてコンテンツディレクトリサービスモジュール526に通知する。コンテンツディレクトリサービスモジュール526は、リソースストア320で提供されるリソースのディレクトリを維持する。図5からわかるように、コンテンツディレクトリサービスモジュール526は、リソースストア320によって提供されるリソースのブラウズまたは検索の要求を入力するコンシューマとも相互作用する。コンテンツディレクトリサービスモジュール526は、コンシューマの要求を満たし、要求に関連する可能性があるすべての配布判断基準を満足する使用可能なリソースを記述したリソースメタデータを取り出し、コンシューマに転送することによって、この要求に応答する。
リソースストア320自体は、リソースの単一のリポジトリまたは複数のリポジトリを表すことができる。リソースストア320は、磁気ストレージデバイス、光ストレージデバイス、EEPROMストレージデバイス、および/または他の種類のストレージデバイスを使用して実施することができる。リソースストア320にストアできる例示的な共有可能リソースに、 .bmpイメージファイル、 .gifイメージファイル、 .jpegイメージファイル、 .pngイメージファイル、 .tiffイメージファイル、 .aviビデオファイル、 .mp3オーディオファイル、 .mpegビデオmpegファイル、 .wavオーディオファイル、 .wmaオーディオファイル、 .wmvビデオファイルなどが含まれる。これは、単に、例示的なリストである。リソースストア320は、メディアサーバ302の他の部分と同一の場所に置くか、1つまたは複数の位置に全体的にまたは部分的に置くことができる。後者の場合に、メディアサーバ302は、リソースストア320で提供されるリソースをリモート管理することができる。
リソース転送モジュール524は、メディアレンダリングデバイス(図3に示されたメディアレンダリングデバイス306など)へのリソースコンテンツの転送を調整する。一実施形態で、リソース転送モジュール524が、HTTPサーバである。リソースコンテンツの転送は、リソースコンテンツ要求(HTTPサーバが使用される場合にHTTP GET要求など)の受信によって開始される。リソース転送モジュール524は、関連する配布判断基準が満たされる(適用可能な場合に)と仮定して、リソースコンテンツを送信することによって応答する。一実施形態で、リソース転送モジュール524は、接続マネージャサービスモジュール530の助けを得てこのタスクを実行する。接続マネージャサービスモジュール530は、メディアサーバ302と、リソースコンテンツを受信するレンダリングデバイスとの間の結合を管理する。コントロールポイント(例えば、コントロールポイント316または318)は、このモジュール530を呼び出して、リソース情報のすぐれた転送のためにメディアサーバ302を準備することができる。この準備に、メディアサーバ302とレンダリングデバイスの機能の照合、UPnPネットワーク314で進行中のリソース情報の転送に関する情報の発見、ならびにメディアサーバ302とレンダリングデバイスの間の接続のセットアップおよびティアダウンが必要になる可能性がある(HTTP技法を使用してリソースコンテンツ転送を実行する、特徴を示された例示的実施形態が、上で識別された機能の1つまたは複数をなしで済ませることによって処理を単純化できることに留意されたい)。
1つの例示的なHTTP実施形態では、接続マネージャサービスモジュール530が、GetProtocolInfoメソッドをサポートすることができる。このメソッドは、メディアサーバ302がソースおよびシンクになることができるプロトコル情報タイプのコンマ区切りリストを返す。コントロールポイントは、この情報を使用して、メディアサーバ302と選択されたレンダリングデバイス(例えば、メディアレンダリングデバイス306)の間のメディア接続をセットアップする。各ProtocolInfoエントリは、集合的にフォーマット:Protocol:Network:Content_Format:AdditionalInfoによって指定される、トランスポートプロトコル、ネットワーク、MIME(multipurpose Internet mail extensions)タイプ、および追加情報の組合せである。
メディアサーバモジュール502に、オプションのオーディオ−ビジュアル(AV)トランスポートサービスモジュール(図示せず)も含めることができる。サポートされる場合に、AVトランスポートサービスモジュールを使用して、レンダリングデバイスへのリソースコンテンツの再生を制御することができる。このモジュールは、特に、コントロールポイントが、リソースコンテンツの流れを停止し、リソースコンテンツの流れを一時停止し、リソースコンテンツ内の特定の位置を検索する(シーク機能を使用して)ことなどを可能にすることができる。
図5の特定の例では、メディアサーバモジュール502が、HTTPサーバ524を使用して、リソースコンテンツの転送を調整することができる(HTTP 1.1サーバなど)。このサーバ524は、HTTP GET要求の受信に応答して、リソースコンテンツをサービスする。HTTP GET要求は、所望のリソースのURLを指定し、このURLは、受信側エンティティ(例えば、コントロールポイント)へのリソースメタデータの以前の転送に応答してメディアレンダリングデバイスに供給されたものであり、この受信側エンティティは、コンシューマの前の検索要求またはブラウズ要求によって促されたものである可能性がある。サーバ524は、関連する配布判断基準が適用可能な場合にそれが満足されるならば、指定されたURLに対応するリソースストア320からリソースコンテンツを取り出し、そのリソースコンテンツを要求されたメディアフォーマットに変換し(必要な場合に)、このリソースコンテンツをコンシューマに供給することによって応答する。リソースのURLは、次の例示的な形であるものとすることができる。
Figure 2007515015
ここで、「ResourceId」は、コンテンツディレクトリサービスモジュール526によってリソースコンテンツに割り当てられた識別子を指す。HTTP−GETプロトコルの代わりに使用できる、リソースコンテンツを転送する他のプロトコルに、IEEE−1394、RTSP/RTPなどが含まれる。
コンテンツディレクトリサービスモジュール526は、メディアサーバ302がメディアレンダリングデバイスとリソース情報(特にリソースメタデータ)を共有できるようにする機能性のコアを提供する。これには、共有リソースストア532が含まれる。一実施形態で、共有リソースストア532に、共有される、リソースストア320で提供されるリソースを記述するディレクトリおよび関連リソースメタデータが含まれる。
具体的に言うと、一連の図をしばらく飛び越すと、図6に、共有リソースストア532内の情報を仮想リソースコンテナに編成するのに使用できる例示的な階層構造、例えばディレクトリ600が示されている。この図では、「root」リソースコンテナ602に、ディレクトリ600内の他のすべてのリソースコンテナが含まれる。「music」リソースコンテナ604に、音楽を分類したリソースコンテナが含まれる。「music/all music」リソースコンテナ606に、コンテンツディレクトリ内で共有されるすべての音楽リソースが含まれる。「music/album」リソースコンテナ608に、アルバムごとのリソースコンテナが含まれ、各そのようなリソースコンテナに、そのアルバムに属する音楽リソースが含まれる。「music/artist」リソースコンテナ610に、各アーティストのリソースコンテナが含まれ、各そのようなリソースコンテナに、そのアーティストによって作成されたすべての音楽のリソースが含まれる。「music/genre」リソースコンテナ612に、各ジャンルのリソースコンテナが含まれ、各そのようなリソースコンテナに、そのジャンルに属する音楽のリソースが含まれる。
「video」リソースコンテナ614に、ビデオを分類したリソースコンテナが含まれる。「video/all video」リソースコンテナ616に、コンテンツディレクトリ内で共有されるすべてのビデオリソースが含まれる。「video/actor」リソースコンテナ618に、各俳優のリソースコンテナが含まれ、各そのようなリソースコンテナに、その俳優が主演したビデオリソースが含まれる。「video/genre」リソースコンテナ620に、各ジャンルのリソースコンテナが含まれ、各そのようなリソースコンテナに、そのジャンルに属するビデオリソースが含まれる。
「pictures」リソースコンテナ622に、写真を分類したリソースコンテナが含まれる。「pictures/all pictures」リソースコンテナ624に、コンテンツディレクトリ内で共有されるすべてのイメージリソースが含まれる。(図示されていないが、「pictures/album」リソースコンテナを含めることができ、このリソースコンテナに、フォルダ名に基づく写真アルバムのそれぞれのリソースフォルダが含まれる。さらに、図示されていないが、「pictures/datetaken」リソースコンテナを含めることができ、このフォルダに、所与の日付にとられた写真の各グループのリソースコンテナが含まれる)。
最後に、「user files」リソースコンテナ626に、個々のユーザに属するリソースを保持するリソースコンテナが含まれる。図6には、例示的なN人のユーザに関連するリソースコンテナのコレクション628が示されている。
ディレクトリ600内のリソースコンテナのそれぞれは、オブジェクトIDを関連付けられることができる。例えば、Video/Actorリソースコンテナは、「container:VideoActor」というオブジェクトIDを有することができる。一般に、図6に示されたディレクトリ600は、例示的であり、他のディレクトリは、リソースの異なる編成および選択を使用することができる。
一実施形態で、ディレクトリ600に示されたコンテナ内の個々のリソースのそれぞれが、リソースストア320にストアされた別々のめいめいのリソースファイルに対応することができる。しかし、前に述べたように、「リソース」は、情報の抽象的な集合と理解されなければならない。単一のリソースを、ファイルの一部だけを使用してストアすることができる(そのようなファイルに、他のリソースに関係する情報もストアすることができる)。その代わりに、単一のリソースを、異なるファイルの集合にまたがってストアすることができる。また、リソースコレクション(図6のリソースコンテナなど)自体が、リソースを構成することに留意されたい。
図5を参照すると、共有リソースストア532に、ディレクトリ600内の共有リソースに関連するリソースメタデータ534が含まれる。前に述べたように、リソースメタデータには、一般に、リソースコンテンツに関連する、名前、アーティスト、作成日付、リソースのサイズ、URLなどのリソースロケータなど、リソースの内容を記述する高水準情報が含まれる。共有リソースストア532に、めいめいのコントロールポイントおよびレンダリングデバイスでの適当なコンシューマへのリソース情報(リソースメタデータおよびリソースコンテンツを含む)の散布を制限するのに使用されるリソースコレクション(例えば、リソースフォルダまたはリソースコンテナ)に関連する判断基準を記述した判断基準情報536もストアすることができる。上で述べたように、1つの例示的な判断基準は、どのデバイスがリソース情報の受信を許可されるかを決定することができる。もう1つの判断基準は、リソース情報の転送を行うために、メディアサーバ302を操作する指定された個人(いる場合に)が同意を提供することを要求されるかどうかを決定することができる。
具体的に言うと、セクションA.1で説明したように、判断基準情報536に、2セットの判断基準すなわち、リソースメタデータの散布を決定するセットとリソースコンテンツの散布を制御するもう1つのセットを含めることができる。これらのセットは、2つの別々のストアとして、共通のストアに関連するフィールドまたは属性として、あるいは他の技法を使用して、実装することができる。判断基準の第1セットを、判断基準の第2セットと異なるものとすることができ、これは、リソースコンテンツのレンダリングと比較して、異なる制約がリソースメタデータの表示を決定することを示し、あるいは、この2セットを同一とすることができる。あるいは、リソースメタデータ、リソースコンテンツ、またはリソースメタデータおよびリソースコンテンツの両方の散布を決定する、単一のセットを使用することができる。下での議論を容易にするために、判断基準情報536が、判断基準の単一のセットを保持し、その単一のセットが、リソースメタデータならびにリソースコンテンツを分け与えることに適用されると仮定する。
一実施形態で、リソースメタデータ534が、個々の共有リソースに関連し、共有リソースは、リソースストア320にストアされたファイルに対応することができる。この場合に、リソースメタデータ534を、サービス初期化で共有ファイルを「クロール」することによって抽出することができる。共有ファイルの個数によっては、この動作が、はっきりと感知できる時間を要する可能性がある。もう1つの実施形態で、リソースメタデータ534を、共有リソースストア532内のリレーショナルデータベースで永続させることができる。もう1つの例で、リソースメタデータ534を、リソースストア320内のすべての共有ファイルから抽出し、1つまたは複数の別々のファイルにストアすることができる(例えば、メディアサーバ302が、リソースストア320内で使用されるすべてのファイルシステムボリュームについて別々のファイルを使用することができ、各ファイルシステムボリュームは、別々のドライブ文字に対応することができる。この備えは、特にUSBハードドライブなどのリムーバブルボリュームが使用される場合に、リソースメタデータの収集を容易にする;メディアサーバ302は、対応するドライブが現在マウントされている場合に限って、ボリュームからのリソースメタデータの読み取りを試みる)。リレーショナルデータベースおよび/または別々のファイルを使用することによって、メディアサーバ302の初期化に関連する時間が減る。例えば、別々のファイル戦略が使用される場合に、情報を抽出するためにリソースストア320全体を苦労してクロールするのではなく、別々のファイルを素早くロードしてリソースメタデータ534を提供することができる。
同様に、一実施形態で、判断基準情報536を、リソースストア320によって提供される個々の共有リソースフォルダに関連付けることができる。この事例では、共有ファイル(リソースストア320によって提供されるめいめいの共有リソースフォルダに属する)に関係する判断基準情報536を、上で説明したものとほぼ同一の形で、サービス初期化時に共有リソースフォルダを「クロール」することによって抽出することができる。これは、はっきりと感知できる時間を要する可能性がある。したがって、このプロセスをはかどらせるために、メディアサーバ302は、リレーショナルデータベース戦略および/または別々のファイル戦略(リソースメタデータ534のストレージおよび管理に関して上で説明した事例に似る)に頼ることができる。一実施形態で、リソースメタデータ534を提供するのに使用されるメタデータ固有のリレーショナルデータベースおよび/または別々のファイルと別個の、判断基準固有のリレーショナルデータベースおよび/または別々のファイルが、判断基準情報536を提供するのに使用される。もう1つの実施形態で、単一のリレーショナルデータベースおよび/または別々のファイルを使用して、リソースメタデータ534および判断基準情報536の両方をストアすることができる。もう1つの実施形態で、リソースメタデータ534および/または判断基準情報536を、Windows(登録商標)オペレーティングシステムレジストリで永続させ、そこから読み戻すことができる。
上で注記したように、一実施形態で、判断基準情報536を、リソースフォルダに適用することができる。メディアサーバユーザは、リソースフォルダに関する情報を表示する1つまたは複数のユーザインターフェースページを介してこの関連付けを作成することができる。もう1つの実施形態で、判断基準情報を、ディレクトリ600(図6に図示)内のリソースコンテナまたはディレクトリ600に含まれる個々のリソースに関連付けることができる。メディアサーバ302は、やはり、リソースコンテナに関する情報を表示する1つまたは複数のユーザインターフェースページを介してこの関連付けを作成することができる。次の議論では、前者の事例(リソースフォルダの判断基準への関連付けの)を実装する機能性を説明するが、類似する機能性を、後者の事例(リソースコンテナの判断基準への関連付けの)を実装するために提供することができる。どちらの場合でも、配布判断基準を、リソースメタデータおよびリソースコンテンツの散布を決定するのに使用することができる。リソースコンテナの編成(メディアサーバ302でのリソースの内部編成を指す)は、一般に、リソースフォルダの階層(メディアサーバユーザが相互作用するリソースの編成を指す)と一致すると期待することができないが、この2つの編成(例えば、リソースコンテナとリソースフォルダ)の間に関係がある場合がある。
リソースメタデータ534の構成にどの方法が使用されても、メディアサーバ302は、リソースメタデータ534を保持するのに使用されるストアにどのメタデータがストアを許可されるかに関する様々な制約を課すことができる。1つの例で、次の例示的な制約が適用される:(a)リソース情報を共有するメディアサーバユーザが、ストアされるリソース情報をストアするファイルに関する読み取り許可を有しなければならず、(b)共有されるリソース情報をストアするファイルが、既知のメディアタイプを有しなければならず、(c)共有されるリソース情報をストアするファイルが、ハードリンクまたはブラウザショートカットである場合に、そのリソース情報の共有を試みるメディアサーバユーザが、基礎になるリソースの読み取り許可を有しなければならず、(d)共有されるリソース情報をストアするファイルが、隠されることができず、(e)共有されるリソース情報をストアするファイルが、隠しサブフォルダになることができず、(f)共有されるリソース情報をストアするファイルを、リムーバブルドライブにストアすることができず、(g)共有されるリソース情報をストアするファイルを、ネットワーク共有に置くことができない。やはり、これらの制約は、単なる例示であり、他の応用例は、特定の応用例の要件に応じて、これらの制約の1つまたは複数を緩和するか除去することができる。
図5の議論を継続すると、コンテンツディレクトリサービスモジュール526に、共有リソース管理ストレージモジュール538も含まれる。このモジュール538は、一般に、共有リソースストア532にストアされた情報を管理する役割のために働く。例えば、共有リソース管理モジュール538は、リソースがリソースストア320に追加されたか、変更されたか、削除されたことをリソースモニタモジュール522が通知する時に、共有リソースストア532を更新する。
一実施形態で、共有リソース管理モジュール538は、共有リソースフォルダのそれぞれを最初に共有したメディアサーバユーザを記憶する。共有リソースフォルダを確立したメディアサーバユーザがその共有リソースフォルダに関連する判断基準情報536を変更するか、そのリソースフォルダを「共有解除」する(すなわち、そのリソースフォルダの共有可能状況を除去する)ことだけを許可するように共有リソース管理モジュール538を構成することができる。例えば、一実施形態で、メディアサーバユーザが、ファイルA、B、およびCを共有するアクセス特権を確立したと仮定する。この場合に、このユーザがこれらのファイルの配布判断基準を適用することだけを許可するように共有リソース管理モジュール538を構成することができる。あるいは、ファイルA、B、およびCが、このメディアサーバユーザが共有の許可を有しない他のリソースを含むフォルダにグループ化されたと仮定する。共有リソース管理モジュール538が、メディアサーバユーザが配布判断基準をフォルダに適用することを許可するように構成されている場合に、これらの判断基準は、それでも、ファイルA、B、およびCについて有効である。他の実施形態は、様々な形でこの制約を緩和することができる。
リソースメタデータ534が、1つまたは複数の別々のファイルで提供される場合に、共有リソース管理モジュール538に、これらの別々のファイルを維持する機能性も含めることができる。この機能性に、サービス初期化時にディレクトリ600内で識別される共有ファイルの変化を探してリソースストア320の共有ファイルを「クロール」するバックグラウンドプロセスを含めることができる。この機能性に、リソースフォルダ内で変更が検出された場合に通知を提供するためにリソースモニタモジュール522と相互作用する機構も含めることができる。共有リソース管理538は、別々のファイルが壊れていると判定された場合に、これらのファイルを捨てることができ;共有リソース管理モジュール538は、その後、メタデータを抽出するために共有リソースフォルダをクロールすることによって、この別々のファイルを再構成することができる。一般に、共有リソース管理モジュール538は、様々な他のコヒーレンシ技法を使用して、別々のファイルが共有リソースのメタデータを正確に反映することを保証することができる。
動作中に、コンテンツディレクトリサービスモジュール526は、一般に、コンシューマが共有リソースに対応するリソースメタデータを調査できるようにする。具体的に言うと、通常の相互作用で、コンシューマは、ディレクトリ600で提供される共有リソースに関連するリソースメタデータをブラウズまたは検索する要求をコントロールポイントを介して送信する。デバイス監視モジュール520は、下で詳細に説明する形でこの要求を検出し、これに応答して、コンテンツディレクトリサービスモジュール526に通知する。コンテンツディレクトリサービスモジュール526は、リソースメタデータ534をスキャンして、コンシューマの要求を満たすすべてのリソースを突き止めることによって応答する。例えば、コンシューマが、あるジャンルのリソースメタデータのすべてを示すようにコンテンツディレクトリサービスモジュール526に要求した場合があり、あるいは、コンシューマが、ターゲットのリソースに関するリソースメタデータを提供するようにコンテンツディレクトリサービスモジュール526に要求した場合がある(例えば、ターゲットのリソースの検索で使用される特定のキーワードを指定することによって)。このプロセスが、1つまたは複数の一致するリソースメタデータアイテムを生じる場合がある。その後、コンテンツディレクトリサービスモジュール526は、適用可能な場合に、共有リソースストア532にストアされた判断基準情報536に対してすべての一致するリソースメタデータを検査し、関連する判断基準に合致しないすべての一致するリソースメタデータアイテムを選り分ける(この備えを非アクティブ化し、その結果、判断基準情報がリソース情報の散布で役割を演じないようにすることが可能である)。次に、コンテンツディレクトリサービスモジュール526は、残った一致するリソースメタデータのリストをXMLメッセージにフォーマットし、次に、このXMLメッセージをコンシューマに送信する。このリソースメタファイルは、個々の一致するリソースならびに、適用可能な場合に、個々のメンバリソースを含むリソースコレクション(リソースコンテナなど)を記述することができる。
受取り側のコントロールポイントデバイスは、このXMLメッセージをプレゼンテーションフォーマット(例えば、HTML)に変換し、この情報のコンシューマによるレビューのために表示することができる。この表示によって、一致するリソースメタデータを識別するメディアリストを提供することができる。次に、コンシューマは、このメディアリスト内の1つまたは複数のアイテムに関連するリソースコンテンツを再生するようにメディアレンダリングデバイス306に指令することができる。これは、レンダリングデバイス306などの選択されたレンダリングデバイスに、メディアリスト内の選択されたアイテムに関連するリソースロケータ(URLなど)を渡すことによって実行することができる。これらのリソースロケータは、メディアサーバ302によってコンシューマに送信されたXMLメッセージで指定されたものである(しかし、やはり、ブラウズ動作の結果が、リソースコンテナ、例えばコンテナのリストを返すことができることに留意されたい。リソースコンテナは、リソースロケータを関連付けられている場合とそうでない場合があり、関連付けられていない場合に、それ自体を再生のためにレンダリングデバイスで提示することはできないが、コンテナ内で識別される個々のリソースを提示することはできる)。
メディアサーバモジュール502の他の1つのコンポーネントが、コントロールパネルCOMオブジェクト540である。一般に、このオブジェクト540は、コントロールパネルモジュール506が、メディアサーバモジュール502内でコンフィギュレーションデータを取り出し、セットできるようにする。例示的な実施形態では、オブジェクト540が、コンポーネントオブジェクトモデル(COM)オブジェクトである。一般に、COMオブジェクトは、1つまたは複数のタスクを実行する。すなわち、COMオブジェクトは、アプリケーションが呼び出せるインターフェースを介して機能を公開して、それに帰するタスクを実行する。
メディアサービス502のコンテキストで、コントロールパネルモジュール506は、コントロールパネルCOMオブジェクト540を介してメディアサービスモジュール502を呼び出す。この役割のために働くために、コントロールパネルCOMオブジェクト540は、次の例示的なタスクを実行する。第1に、コントロールパネルCOMオブジェクト540は、コントロールパネルモジュール506が、発見されたデバイスを列挙し、その現在の状態(例えば、承認されているか、拒否されているか、承認も拒否もされていないかどうか)を取り出し、UIに与えるのに使用されるデバイス情報(デバイスの製造業者、アイコン、モデル番号など)を得、デバイスを承認するか拒否することを可能にする。第2に、コントロールパネルCOMオブジェクト540は、コントロールパネルモジュール506が、リソースストア320にストアされた共有可能リソースを含む共有されたリソースフォルダおよびこれらのリソースフォルダに関連するすべての関連する配布判断基準情報536(これらの共有されたリソースフォルダに関連するリソース情報を受信することを許可されたデバイスのリストなど)のリストを管理できるようにする。このために、コントロールパネルCOMオブジェクト540は、コントロールパネルモジュール506が、現在共有されているリソースフォルダおよびそれに関連する配布判断基準情報536のリストを取り出し、これらのリソースフォルダの共有を解除し、新しい共有リソースフォルダおよび/または配布判断基準を作成し、共有リソースフォルダに関連する配布判断基準を変更することなどを可能にする。最後に、メディアサービスモジュール502は、UPnPネットワーク314で新しいコントロールポイントまたはメディアレンダリングデバイスを発見した時に、コントロールパネルCOMオブジェクト540およびコントロールパネルがホスティングするコールバックオブジェクト542(下で詳細に説明する)を使用して、コントロールパネルモジュール506に通知する。
高速ユーザ切替(FUS)に対処するために、メディアサーバ302は、複数のコントロールパネルモジュール506を同時にアクティブにすることを可能にする。しかし、一実施形態で、メディアサーバ502は、各端末サービスセッションが、1つのアクティブなコントロールパネルモジュール506を有することだけを許可する。
b.CDDMサービスモジュール
上で説明したように、メディアサービスモジュール502は、ローカルサービスユーザコンテキスト(または、より一般定にはクランプドダウンユーザコンテキスト)で動作し、CDDMサービスモジュール504は、ローカルシステムユーザコンテキストで動作する。ローカルサービスユーザコンテキストは、一般に、ローカルシステムユーザコンテキストと比較して、より制限的なアクセス特権を有する。したがって、メディアサーバモジュール502は、CDDMサービスモジュール504に頼って、それ自体で実行するアクセス権を有しない一連の機能を実行する。1つの例示的な実施形態に従ってCDDMサービスモジュール504に委任される特権機能を、下で説明する。
第1に、CDDMサービスモジュール504は、新しいメディアレンダリングデバイス306またはコントロールポイント316がデバイス監視モジュール520によってUPnPネットワーク314で検出された時に、コントロールパネルモジュール506を始動する役割を実行する。これによって、メディアサーバユーザが、そのデバイスを承認するか拒否することができるようになる。承認されたデバイスは、その後、メディアサーバ302の共有リソースに対応するリソース情報(リソースメタデータおよびリソースコンテンツ)へのアクセスを許可される。CDDMサービスモジュール504は、(a)メディアサーバユーザがメディアサーバ302コンピュータにログオンし(または、下で説明するように、このコンピュータ上の前に確立されたターミナルサーバセッションに再接続し)、(b)メディアサーバ302が、メディアサーバユーザによって承認も拒否もされたことがない前に検出されたデバイスを有する場合にも、コントロールパネルモジュール506を始動する。
さらに、CDDMサービスモジュール504は、様々なエラーまたは状態についてメディアサーバユーザに警告するために、コントロールパネルモジュール506を始動する。例えば、CDDMサービスモジュール504は、ネットワークインターフェースが、許される前に構成されたIPアドレス範囲(例えば、プライベートIPアドレス範囲またはAuto IPアドレス範囲)内のIPアドレスを有することがわかっていない時に、メディアサーバユーザに警告することができる。CDDMサービスモジュール504は、リソース情報共有機能性322サービスが動作していない時に、リソースストア320の共有リソースフォルダが削除されたか名前を変更されていることをメディアサーバユーザに警告することができる。一般に、CDDMサービスモジュール504は、現在アクティブなログオンしたユーザのコンテキストでコントロールパネルモジュール506を起動する。CDDMサービスモジュール504は、ログオンしたユーザのトークンを取り出し、CreateProcessAsUser関数を呼び出すことによって、コントロールパネルモジュール506を起動する。しかし、そうする前に、CDDMサービスモジュール504は、コントロールパネルモジュール506が、まだ、現在アクティブなログオンしたユーザのターミナルサーバセッションで動作していないことを確実にする。
第2に、CDDMサービスモジュール504は、ストアされたリソースフォルダに関連するアクセス特権を調整し、その結果、メディアサーバモジュール502が、リソースフォルダにアクセスして、それに帰する機能(リソースメタデータ534の作成など)を実行できるようにする。これは、ローカルサービスユーザコンテキストによるアクセスを可能にするために共有リソースフォルダに関連するアクセス制御リスト(ACL)を変更することによって実行することができる。例示的な実施形態で、これによって、ローカルサービスユーザコンテキストに、リソースフォルダの内容に対する読み取りアクセス、書き込みアクセス、および削除アクセスが与えられる(すなわち、リソースフォルダは、ローカルサービスユーザコンテキストに、読み取りアクセスに加えて、書き込みアクセスおよび削除アクセスを与えるようにACLを設定される;これは、一部のメディアタイプが、UPnPネットワーク314で使用可能にされる前に、デコードされなければならないからである。ファイルをデコードするのに使用されるツールは、時々、ファイルを含むディレクトリにテンポラリファイルを作成する。その後、このテンポラリファイルを削除しなければならない)。
第3に、CDDMサービスモジュール504は、メディアサーバ302を監視して、新しいメディアサーバユーザが、メディアサーバ302の実装に使用されているコンピュータシステムにサインオンまたはログオフする時を検出する。CDDMサービスモジュール504は、メディアサーバ302にログオンしているメディアサーバユーザのアイデンティティも確認する。すなわち、上で説明したように、メディアサービスモジュール502は、メディアサーバコンピューティングマシンで現在アクティブであるログオンしたメディアサーバユーザのアイデンティティに依存して、リソース情報の共有を制限することができる。したがって、メディアサービスモジュール502は、CDDMサービスモジュール504によって抽出されたユーザ情報を使用して、現在アクティブなログオンしたメディアサーバユーザを考慮して、リソース情報を共有する許可を有するかどうかを判定する(CDDMサービスモジュール504は、WTSQueryUserToken関数を使用して、ログオンしたメディアサーバユーザのトークンを取り出すことと、GetTokenInformation関数を使用して、そのトークンからメディアサーバユーザのSIDを取り出すことによって、メディアサーバユーザのアイデンティティを判定することができる)。
c.コントロールパネルモジュール
コントロールパネルモジュール506は、メディアサーバユーザがUPnPネットワーク314に追加された新しいデバイスの許可を承認または否定できるようにする機能性を提供する。コントロールパネルモジュール506は、メディアサーバユーザが共有リソースフォルダおよび関連する配布判断基準を定義できるようにもする。上で説明したように、1つの判断基準が、リソース情報(例えば、リソースメタデータおよびリソースコンテンツ)の散布を指定されたデバイスだけに制限することができる。もう1つの判断基準が、メディアサーバ302を使用する指定された個人がリソース情報の共有の暗黙のうちにまたは明示的な承認を与えたかどうかを条件としてリソース散布を行うことができる。指定された個人は、単純にメディアサーバ302にログオンし、その個人のセッションが現在アクティブである場合に、暗黙の承認を与えたと考えられる(一実施形態で)。コントロールパネルモジュール506は、一連のUIプレゼンテーション(例えば、UIページ)を介して、上で識別したタスクを実行することができる。これらのUIプレゼンテーションは、下のセクションBで詳細に説明する。コントロールパネルモジュール506は、アプレットとして実装することができ(アプレットは、アプリケーションのコンテキスト内で実行されるプログラムである)、ログオンしたメディアサーバユーザのコンテキストで動作することができる。
メディアサーバ302は、2つの形でコントロールパネルモジュール506をアクティブ化することができる。第1に、メディアサーバユーザが、コントロールパネルモジュール506を手作業でアクティブ化することができる。第2に、メディアサービスモジュール502は、例えば新しいレンダリングデバイスがUPnPネットワーク314に加わった時にメディアサーバユーザに通知するためなど、自動的にコントロールパネルモジュール506を起動することができる。
一実施形態で、メディアサーバ302は、各ターミナルサーバセッションで、コントロールパネルモジュール506の単一のインスタンスを提供する。したがって、コントロールパネルモジュール506は、始動する時に、コントロールパネルモジュール506の別のインスタンスがそのターミナルサーバセッションで既に動作していないことを検証する。次に、コントロールパネルモジュール506は、メディアサービスモジュール502が動作しているかどうかを判定し、そうでない場合には、コントロールパネルモジュール506がそれを始動する。次に、コントロールパネルモジュール506は、メディアサービスモジュール502がホスティングする(上で説明した)コントロールパネルCOMオブジェクト540を、協同で作成する。最後に、コントロールパネルモジュール506は、それがホスティングするクライアントコールバックCOMモジュール542を作成し、次に、コントロールパネルCOMオブジェクト540に関連するInitialize()メソッドを呼び出し、クライアントコールバックオブジェクト542を渡す。メディアサーバモジュール502は、クライアントコールバックオブジェクト542を使用して、サービスシャットダウン、バックグラウンドデータ変更、またはコントロールパネルモジュール506が動作している間のUPnPネットワーク314での新しいコントロールポイントまたはメディアレンダリングデバイスの発見などのイベントについてコントロールパネルモジュール506に通知する。
A.4.高速ユーザ切替(FUS)の備え
FUS技法は、異なるめいめいのメディアサーバユーザに関連する異なるコンピューティングセッションの間の切替の便利な技法を提供する。例えば、この技法を用いると、第1メディアサーバユーザが、コンピュータに接続し、アプリケーションを実行できるようになり、それに、別のアプリケーションを実行する第2メディアサーバユーザが続く。第2メディアサーバユーザが、コンピュータに接続する時に、コンピュータは、第1メディアサーバユーザのセッションに関連するアプリケーションインスタンスおよびデスクトップ設定を保存する。第1メディアサーバユーザが、コンピュータにもう一度接続する時に、コンピュータは、第1メディアサーバユーザが切断した時のそのユーザのコンピュータセッションに関連するアプリケーションおよび設定を復元する。FUS技法は、連続してコンピュータを使用する異なるめいめいのメディアサーバユーザに関連する複数のアプリケーションインスタンスおよびデスクトップ設定を記録することによって、上で説明した形で任意の人数のメディアサーバユーザの間でトグルすることができる。FUSを提供する1つの例示的な商業製品が、米国ワシントン州レッドモンドのMicrosoft(登録商標)Corporation社が提供するWindows(登録商標)XP(登録商標)オペレーティングシステムである。対照的に、従来のコンピューティングソリューションでは、コンピュータは、第2メディアサーバユーザが接続できるようにする前に第1メディアサーバユーザがログアウトし、これによって、第2メディアサーバユーザが同一のコンピュータに接続する際に第1メディアサーバユーザのアプリケーションを終了することを必要とする。
メディアサーバ302へのFUS技法の適用によって、コントロールパネルモジュール506の複数のインスタンスが同時に存在できるようになる。例えば、上で説明したように、コントロールパネルモジュールインスタンス506は、メディアサーバユーザA 508に関連し、コントロールパネルモジュールインスタンス510は、メディアサーバユーザB 512に関連し、コントロールパネルモジュールインスタンス514は、メディアサーバユーザC 516に関連する。しかし、上で説明したUPnPメディアサーバ環境へのFUS技法の適用は、様々な課題を提出する。このセクションでは、上で説明したUPnPメディアサーバ302のコンテキストでこれらの課題に対処する例示的なFUSソリューションを説明する。
第1に、メディアサーバ302は、上で説明したように、同時に動作するコントロールパネルモジュール506の複数のインスタンスに対処するが、メディアサーバ302は、各ターミナルサーバセッションが1つのコントロールパネルモジュール506を有することだけを許容する。この特徴を実施するために、メディアサーバ302は、各コントロールパネルモジュール506が、COMオブジェクト540を使用する前に、このオブジェクト540を作成し、初期化する(Initialize()メソッドを呼び出すことによって)ことを要求する。Initializeメソッドを呼び出す時に、呼出し元は、クライアントコールバックCOMオブジェクト542を供給しなければならない。
具体的に言うと、クライアントがInitialize()メソッドを呼び出す時に、メディアサーバモジュール502は、クライアントの偽装トークンからクライアントのターミナルサーバセッションIDを抽出する。次に、メディアサービスモジュール502は、このセッションIDが別のクライアントに関連するかどうかを判定する。そうである場合に、メディアサービスモジュール502は、そのクライアントのコールバックオブジェクト542を呼び出して、そのクライアントがまだ「生きている」かどうかを判定する。クライアントがまだ生きている場合に、新しいクライアントを拒絶する。そうでない場合に、メディアサービスモジュール502は、新しいクライアントを受け入れ、そのクライアントのコールバックオブジェクト542を将来の使用のために保存する。
第2に、メディアサーバ302は、複数のメディアサーバユーザに対処するので、ネットワーク314への新しいデバイスの導入時に、複数のログオンしたメディアサーバユーザに通知するようにメディアサーバ302を構成することができる。メディアサーバ302は、デバイスが発見された時にメディアサーバユーザが1人もメディアサーバ302にログオンしていない(または、メディアサーバユーザがログオンしているがデバイス発見の時にアクティブでない)シナリオにも対処する。この場合に、メディアサーバ302は、メディアサーバユーザがログオンするか既存セッションを再開するまで、新しいデバイスの存在についてメディアサーバユーザに通知するのを延期する。
第3に、コントロールパネルモジュール506は、このモジュールの他のインスタンス(例えば、インスタンス510および514)が同時にアクティブであり、デバイスの許可状況または共有リソースフォルダのリストなどのグローバルデータを変更している可能性があることを認識する。この状況に対処するために、メディアサーバ302は、クライアントのいずれかがグローバルデータを変更する時にアクティブであるすべてのクライアントに関連するCOMクライアントコールバックオブジェクト542に通知する。
最後に、メディアサーバ302には、コントロールパネルモジュール506に「なりすます」ことができる、いわゆるならず者アプリケーションを排除する機構も含まれる。図5に、1つの例示的なそのような、ならず者アプリケーション544を示す。具体的に言うと、メディアサーバ302は、メディアサービスモジュール502とコントロールパネルモジュール506の間でプライベートAPIとして(メディアサーバ302の内部コンポーネントを一緒に結合するので)API 518を実装する。個人がAPI 518のリバースエンジニアリングを試み、ならず者アプリケーション544が、メディアサービスモジュール502を呼び出し、そのコンフィギュレーションデータをタンパリングできるようにする可能性が存在する。
この懸念に対処するために、メディアサービスモジュール502は、クライアントがコントロールパネルCOMオブジェクト540に関連するInitialize()メソッドを成功裡に呼び出す時に、各クライアントに一意のクライアントIDを割り当てる。具体的に言うと、メディアサービスモジュール502は、クライアントのコールバックオブジェクト542に関連するメソッドを呼び出すことによって、このIDについてクライアントに通知する。メディアサービスモジュール502は、割り当てられたIDを記録する。次に、クライアントが後にサービスを呼び出す時に、クライアントがそのクライアントIDを提供することが期待される。メディアサービスモジュール502は、呼出し元が現在供給するIDを検出し、このIDを前に記録されたクライアントIDと比較する。すなわち、メディアサービスモジュール502は、クライアントのターミナルサーバセッションIDをその偽装トークンから取り出すことによって、クライアントを独立に識別することができ、したがって、クライアントによって供給されなければならないクライアントIDを知っている。これらのIDが一致する場合に、メディアサービスモジュール502は、呼び出しを許可し、そうでない場合には、メディアサービスモジュール502は、呼び出しを拒絶する。
上で述べたように、複数のユーザが、同時にメディアサーバ302にログオンすることが可能である。ユーザに関連するめいめいのクライアントトークンから抽出されたターミナルサービスセッションIDに基づいてユーザを区別するようにメディアサーバ302を構成することができる。
これによって、クライアントIDは、ならず者アプリケーション544がコントロールパネルモジュール506に「なりすます」ことを防ぐ。IDについてクライアントに通知するためのクライアントコールバックオブジェクト542の使用は、ならず者アプリケーションに対する余分の保証を提供する(Initialize()メソッドの引数としてIDを返すという代替技法と比較して)。これは、ならず者アプリケーション544が、Initialize()メソッドを呼び出す時にCOMクライアントコールバックオブジェクト542を提供するという追加のハードルに出会わなければならないからである。
メディアサーバ302は、メディアサービスモジュール502とコントロールパネルモジュール506が、この2つのコンポーネントに間の形式的な相互作用を確立する前に他の秘密情報を交換することを要求することによって、セキュリティの追加レイヤを提供することができる。
A.5.追加のセキュリティの備え
上で説明したリソース共有特徴(判断基準情報536を使用して実施される)は、メディアサーバユーザがプライベートに保つことを望む(例えば、図4に関して述べた例示的な家庭関連応用例で示した複数の理由から)リソース情報へ許可されたユーザがアクセスするのを防ぐことに最も一般的な用途を見出す。類似するプライバシの懸念が、寄宿舎の部屋の応用例に関して存在する(これは、一般に、比較的多数の許可されたユーザがいる可能性があるが、メディアサーバユーザが、このUPnPネットワーク314の許可された参加者のサブセットだけにあるリソース情報を選択的に与えることを望むすべての設定へのUPnPネットワーク314の適用を指す)。
上で説明したリソース共有特徴は、許可されないエンティティによるアクセスに対してUPnPネットワーク314のリソースを保護する機構も提供する。すなわち、リソース共有特徴は、リソースの散布をデバイスの既知の集団に制限する。したがって、この既知の集団の外部のデバイスは、UPnPネットワーク314のリソースにアクセスすることを禁止される。リソース共有特徴は、リソース情報転送を、指定されたメディアサーバユーザの暗黙の同意または明示的同意を条件とするものにすることによって、追加の保証も提供する。
しかし、リソース共有特徴は、特に許可されない(許可されるのではなく)ユーザの場合に関して、UPnPネットワーク314が直面するすべての既知のセキュリティ脅威に対処しない可能性がある。さらに、許可されないユーザによって提示されるセキュリティ脅威は、性質において動的かつ便宜主義的であり、したがって、メディアサーバユーザが、リソース共有特徴がUPnPネットワーク314のセキュリティに対する将来の予想されない挑戦に耐えられないという懸念を抱く可能性がある。
上の懸念は、特に許可されないユーザに対してUPnPネットワーク314のリソース情報を保護するためにリソース共有特徴に追加のセキュリティ機構を補足することを保証する。追加の手段は、許可されたユーザが、彼らによる消費を意図されていないプライベートリソース情報を受け取らないことをさらに保証するためにも望ましい。具体的に言うと、UPnPネットワーク314が直面する少なくとも2つのセキュリティの懸念がある。第1のセキュリティの懸念は、許可されないエンティティがUPnPネットワーク314によって提供されるリソース情報を「盗聴」する可能性によって提出される。このエンティティは、UPnPネットワーク314の外部で動作しており、ケーブルモデム、DSLモデム、ダイヤルアップ接続性、無線接続性、または他の結合戦略を介してUPnPネットワーク314の盗聴を試みている可能性がある。第2の懸念は、許可されたエンティティまたは許可されないエンティティがUPnPネットワーク314のオリジナルスコープの外部の多数の聴衆にリソース情報を配布する可能性によって提出される。これを、「スーパーディストリビューション(superdistribution)」シナリオと呼ぶ。スーパーディストリビューション(超流通)は、意図的または意図的でないものである可能性がある。
このセクションでは、上の2つの懸念に対処する複数の技法を説明する。これらの技法のどれをも、個別にすなわち他の技法なしで適用することができる。メディアサーバ302は、これらの懸念を軽減するためにUPnPネットワーク314を保護するためのこれらの技法のうちの任意の2つ、3つ、4つなどを含むこれらの技法の任意の組合せを適用することもできる。その代わりに、一実施形態で、メディアサーバ302が、これら技法のすべてを適用することができる。メディアサーバ302または他の管理インターフェースは、任意選択として、例えば適当に構成されたユーザインターフェースプレゼンテーションを介して、これらの技法を個別にイネーブルし、ディスエーブルする能力をメディアサーバユーザに与えることもできる。
図7に、メディアサーバ302によって提供されるセキュリティ技法の多数を説明する媒体として働くUPnP応用例を示す。この応用例は、全般的に、図4で提示した応用例にならってモデリングされている。この応用例は、家庭702などのローカルセッティングに適用される。家庭702に、複数の部屋が含まれる。各部屋に、1つまたは複数のUPnPデバイスを含めることができる。図7の例示的な事例で、家庭702に、ルータ718を介してデバイス706〜716に結合されたメディアサーバ704が含まれる。ルータ718は、もう1つのルータ720にも結合される。ルータ718に、メディアサーバ704をデバイス706〜716に結合するハードワイヤード接続性および/または無線接続性を含めることができる。例えば、デバイスの例示的な1つ(例えば、デバイス714)が、無線(例えば、RF、赤外線など)結合を介してルータ718と通信する。
図7に、エンティティ722、724、および726を含む、家庭702でUPnPネットワーク314と相互作用することを許可されないエンティティの例示的なサンプルも示されている。エンティティ722は、デバイス728を使用して、無線通信を介してホームUPnPネットワーク314との相互作用を試みている。このデバイス728は、無線接続性を有するメディアレンダリングデバイスまたは類似する装置を表すことができる。エンティティ724は、デバイス730を使用して、広域ネットワークなどのネットワークを介してUPnPネットワーク314との相互作用を試みている。例えば、このデバイス730は、インターネット732、モデム733、およびルータ718を介してメディアサーバ704に結合された(または、もう1つの実施形態で、インターネット732およびモデム733を介してすなわち、ルータ718を介してルーティングされずにメディアサーバ704に直接に結合された)すべての種類のコンピュータデバイス(例えば、パーソナルコンピュータ、サーバなど)を表すことができる。モデム733は、ダイヤルアップモデム、ブロードバンドモデム、または他の種類のモデムとすることができる。最後に、エンティティ726は、デバイス734を使用して、ルータ720を介するUPnPネットワーク314との相互作用を試みている。これらの許可されないエンティティおよびデバイスは、UPnPネットワーク314のリソースへのアクセスを得ることを試みる可能性がある広い範囲の様々な種類の侵入者の単なる例示である。
上で説明されたエンティティを邪魔するために、UPnPネットワーク314に、次の機構のうちの1つまたは複数を含めることができる。
a.IPアドレス制限
リソース情報共有機能性322(図3の)を、公衆ブロードバンドトラフィックを除外する効果を有する、所定の非パブリックアドレス範囲に制限することができる。1つの例示的な実施形態では、所定のアドレス範囲が、192.168範囲(例えば、1つの例示的な実施形態によれば、192.168.0.0から192.168.255.255まで)およびAuto IP範囲(例えば、1つの例示的な実施形態によれば、169.254.0.0から169.254.255.255まで)である。他の例示的な非パブリックアドレス範囲が、10.0.0.0から10.255.255.255および172.16.0.0から172.31.255.255までである(1つの例示的な実施形態によれば)。この範囲のどれでも使用することができ、あるいは、これらの範囲の組合せを使用することができる(あるいは、他の範囲を使用することができる)。範囲は、連続する必要がない(例えば、これらの範囲のいずれかの中に「使用不能」ギャップを設けることができる)。一般に、上で指定された範囲は、様々な点で変更することができる(例えば、範囲の「端点」を変更することによる)。
例えば、例示のために、192.168およびAuto−IP範囲を使用する。この範囲は、多数の一般的に入手可能なホームネットワークルータが、192.168範囲のアドレスを分け与える組み込みDHCPサーバを有するので選択された。さらに、ブロードバンドネットワーク上のほとんどのルータが、192.168範囲の宛先IPアドレスを指定するメッセージを単純に捨てる。したがって、リソース情報共有機能性322は、192.168範囲の外のアドレスを有するすべての要求に応答せず、192.168範囲内のすべてのメッセージが、一般に、公衆ブロードバンドネットワークのルータを越える伝搬に適さない。これは、プライベートUPnPネットワーク314と公衆ブロードバンドネットワークまたはダイヤルアップ接続との間のセキュリティウォールを作成するという効果を有する。図7では、メディアサーバ704とインターネット732の間に阻止されたアクセスの記号736を示すことによって、この概念が示されている。この阻止されたアクセスは、家庭702の内部の誰かまたは家庭702の外部の誰かが、ブロードバンドネットワークを介してリソースのスーパーディストリビューションにメディアサーバ704を使用するのを防ぐ。この備えは、家庭702の内部の誰かまたは家庭702の外部の誰かが、許可されない形でUPnPネットワーク314を盗聴するのも防ぐ。
この特徴を実施するために、リソース転送モジュール524、コンテンツディレクトリサービスモジュール526、およびデバイス監視モジュール520(図5の)のすべてを、所定のアドレス範囲内のインターフェースだけを監視し、かつ/または他のIPアドレスから発する要求を破棄するように構成することができる。リソース情報共有機能性322は、この所定のアドレス範囲を、メディアサーバユーザコンフィギュレーションからアクセス可能なパラメータにするのではなく、このアドレス範囲をハードコードすることによるなど、メディアサーバユーザ(またはこれに関する他の誰か)がこの所定のアドレス範囲を変更することを禁止する様々な機構を提供することができる。
b.MACアドレス認証
前に述べたように、リソース情報共有機能性322は、デバイスのメディアアクセスプロトコル(MAC)アドレスまたは他のデバイス固有情報を使用して、そのデバイスを認証する。この技法では、リソース情報共有機能性322が、まず、UPnPネットワーク314に追加された新しいデバイスのIPアドレスを識別する(新しいデバイスは、まず、図5のデバイス監視モジュール520を使用して検出される)。次に、リソース情報共有機能性322が、例えばMicrosoft(登録商標)Corporation社のInternet Protocol Helper(ARP(address resolution protocol)を使用する)によって提供されるSendARP関数を使用して、IPアドレスをMACアドレスに変換する。前に述べたように、リソース情報共有機能性322は、例えばセクションB(下)で説明するユーザインターフェースプレゼンテーションを使用して、新しいデバイスの存在についてメディアサーバユーザに通知することができる。メディアサーバユーザがそのデバイスを許可する場合に、リソース情報共有機能性322は、IPアドレスおよびMACアドレスを使用して、そのデバイスが後にUPnP要求(ブラウズ要求または検索要求など)を行うか、コンテンツ関連要求(HTTP GET要求など)を行う時に、そのデバイスを認証する。許可されないデバイスからの要求は、無視される。始める要求のMACアドレスを使用してデバイスの認証することは、有利である。というのは、IPアドレスだけでは信頼できないからである(IPアドレスは、DHCPサーバの可用性に応じて変化する可能性があるからである)。
このMAC認証技法は、デバイス728などの無線デバイスがUPnPネットワーク314のリソース情報への許可されないアクセスを得るのを防ぐのに特に魅力がある。例えば、エンティティ722が、家庭702のそばをドライブしており、それと同時に無線アクセスデバイス728を使用している場合に、リソース情報共有機能性322は、メディアサーバユーザ(メディアサーバ704の)がこのデバイスを許可したいかどうかをメディアサーバユーザに尋ねるポップアップメッセージを表示している場合がある。メディアサーバユーザが、アクセスを許可することを選ばない限り、リソース情報共有機能性322は、このデバイス728に対してアクセスを拒否する。
MACアドレス認証は、IPアドレス制限(上のサブセクション(a)で説明した)などの他のセキュリティ手段と共に使用される時に、最も価値がある。例えば、IPアドレス制限なしのMAC認証は、メディアサーバ704がブロードバンドネットワークに直接に接続されるネットワーク構成で(または、メディアサーバ704がダイヤルアップ接続を介して外部機能性に結合される時に)適度な保護を提供しない場合がある。IPアドレス制限がなければ、リソース情報共有機能性322が、家庭の外の「隣接」デバイスを検出し、これらのデバイスを認証するかどうかをメディアサーバユーザに問い合わせることができ;これは、セキュリティリスクを提示しない場合があるが、ポップアップメッセージの頻繁な表示に起因する迷惑を提示する可能性がある。さらに、ブロードバンド(またはダイヤルアップ)モデムが、インターネットサービスプロバイダのネットワークのプロキシARP(address resolution protocol)ルータに接続されていると仮定する。この場合に、リソース情報共有機能性322は、プロキシARPルータを介してルーティングされるサブネット上のデバイスのいずれかが認証される時に、効果的にそれらのデバイスのすべてを認証する。
c.サブネット制限
1つの例示的な実施形態で、リソース情報共有機能性322は、そのネットワーククライアントが、それが動作するのと同一のサブネットで動作することを要求する。この制限によって、リソース情報共有機能性322は、そのローカルサブネットの外のクライアントから受信されるUPnPアクション要求およびリソースコンテンツ取り出し要求を無視する。これは、UPnPネットワーク314のスコープの外部で動作するデバイスがそのリソースにアクセスできる可能性をさらに減らすという効果を有する。
ARPプロトコルが、サブネット境界をまたいでARPパケットを伝送しないので、上で説明したMACアドレス認証プロシージャが、サブネット境界にまたがって機能しないことに留意されたい。したがって、MACアドレス認証が使用される場合に、この技法は、本質的に、動作を単一のサブネットに制限する。しかし、サブネット制限を実施するのにリソース情報共有機能性322を使用することが、SendARP()によって提供される暗黙のサブネット制限と異なる。例えば、後者の技法を、この技法で使用されるルーティングテーブルを変更することによって危険にさらすことができる。
また、デフォルトで、SDDPサービス(例えば、Windows(登録商標)オペレーティングシステムプラットフォームでMicrosoft(登録商標)Corporation社によって提供される)が、ブロードキャストSSDPアナウンスメントをサブネットに制限することに留意されたい。すなわち、UPnPデバイスは、SSDPを使用して、その存在をネットワークを介してアナウンスし、したがって、デフォルト設定について、リソース情報共有機能性322が、他のサブネット上のUPnPデバイスによって検出されない。しかし、このSSDP特徴は、リソース情報共有機能性322によって実行されるサブネット制限と異なる。というのは、後者の技法が、レジストリで構成可能なセッティングに依存するからである。また、SSDPアナウンスメントは、192.168アドレス範囲およびAuto IPアドレス範囲に制限されない。
d.TTL制限
リソース情報共有機能性322は、許可されないエンティティがUPnPネットワーク314のリソース情報と相互作用することを許可される可能性をさらに減らすために、TTL(time to live)パラメータを制限することができる。1つの例示的な実施形態で、TTLパラメータは、ソースノードから宛先ノードに送信される過程でメッセージがトラバースしたノード(例えば、ルータなどのIPレベル3ノード)の個数に一般に対応するインターネットプロトコル(IP)パラメータである。各IPパケットに、TTLパラメータが含まれる。UPnPネットワーク314のコンテキストでは、TTLパラメータによって、共有リソースに関連するリソースメタデータを含むコンテンツディレクトリサービスモジュール526によって送信されたメッセージのルーティングを制限することができる。その代わりにまたはそれに追加して、TTLパラメータは、リソースコンテンツ要求(HTTP GETメッセージなど)に対する応答のルーティングも制限することができる。例えば、数3をセットされたTTLパラメータは、パブリックブロードバンドネットワークを介するリソース情報の散布を禁止するのに十分である(というのは、公衆ブロードバンドネットワークを介する宛先への伝送が、通常は、メッセージを3つより多数のルータにさらすからである)。リソース情報共有機能性322が、UPnPネットワーク314を、1つのルータだけを用いることができる単一のネットワークに制限する例示的な事例では、TTLパラメータに、1のように小さい値をセットすることができる。1つの例示的な実施形態で、リソース情報共有機能性322は、TTLパラメータをハードコードすることができ、その結果、TTLパラメータをメディアサーバが(または他のエンティティが)簡単には変更できなくなる。
例えば、TTLパラメータに1がセットされている、図7の例示的な事例に留意されたい。この設定では、メディアサーバ704が、エンティティ726にリソースメタデータおよびリソースコンテンツをサービスすることを禁止することができる。というのは、このエンティティ726が、複数のルータを介してメディアサーバ704に結合されているからである。したがって、このTTL設定は、阻止されたアクセスの記号738によって示されるように、ルータ720へのアクセスを効果的に阻止する。TTLパラメータに小さい値をセットすることによって、インターネット732を介するリソース情報の散布も禁止される。というのは、そのようなブロードバンド伝送が、最終的な宛先への途中で多数の中間ルータを必要とするからである。
e.デバイスおよびセッションの制限
リソース情報共有機能性322は、一時に許可できるUPnPデバイスの数を、所定の数(一例で10デバイスなど)までに制限することができる。1つの実施形態で、UPnPデバイスの指定された最大個数に、メディアレンダリングデバイス、メディアサーバ、コントロールポイントなどを含む、UPnPネットワークに結合できるすべての種類のデバイスを含めることができる。もう1つの実施形態で、デバイスの指定された最大個数が、メディアレンダリングデバイスだけなど、UPnPデバイスの1つまたは複数のカテゴリだけに関係することができる。リソース情報共有機能性322は、並行リソースコンテンツサービングセッション(並列HTTPセッションなど)の個数を、所定の数(一例で10セッションなど)までに制限することができる。リソース情報共有機能性322は、これらのパラメータの両方(すなわち、デバイスの最大個数およびセッションの最大個数)をハードコードして、メディアサーバ(または他のエンティティ)がこれらのパラメータを簡単に変更し、これによってこの制限を回避することを防ぐことができる。
図7のコンテキストで、ホームUPnPネットワーク314が、デバイスの数を5に制限することができ、これは、デバイス716がリソース情報(リソースメタデータとリソースコンテキストの両方)へのアクセスを得るのを防ぐという効果を有する場合がある。この拒否されたアクセスが、図7では、阻止されたアクセスの記号740によって示されている。この備えは、許可されたメディアサーバユーザであっても、UPnPネットワーク314を使用して多数の受信側にリソースを配布することができないことを保証するのに役立つ(例えばスーパーディストリビューションシナリオ)。この備えは、一般に、公衆ブロードバンド伝送が、一般に、共有リソースへのアクセスを試みる多数の参加者を伴う限り、インターネット732を介するリソースメタデータおよびリソースコンテンツの配布の試みも邪魔する。
f.UPnPアクションへの認証に関する候補デバイスの制限
リソース情報共有機能性322は、UPnPアクションを呼び出したデバイスまたはSSDPを使用してUPnPネットワーク314でメディアレンダリングデバイスとしてそれ自体をアナウンスしたデバイスだけに相互作用を制限することもできる(前者の制限は、UPnPネットワーク314でそれ自体をアナウンスする必要がないが、他の形でUPnPネットワーク314と相互作用することを許可されるUPnPコントロールポイントに対処するものである)。これらの制限は、リソース情報共有機能性322との相互作用を試みる許可されないエンティティを排除するのに役立つ。すなわち、潜在的な「ハッカー」は、リソース情報共有機能性322によって共有されるリソース情報と相互作用するために、適当なUPnPソフトウェアを獲得し、実行する必要があり、この要件によって、UPnPネットワーク314への許可されないアクセスの水準が引き上げられる。例えば、これらの制限によって、ハッカーが、ウェブブラウザを開き、前にパブリッシュされた、共有リソースに対応するリソースロケータをリソース情報共有機能性322に送信することだけによって、リソース情報共有機能性322によって共有されるリソースコンテンツへのアクセスを得ることはできない。そうではなく、デバイスは、まず、例えば最初のUPnPアクション要求(例えば、ブラウズ要求または検索要求に対応する)を送信することによって、それが正しい許可されたUPnPデバイスであることを証明しなければならず、その後に限って、そのデバイスが、リソースコンテンツ取り出し要求を使用してリソースコンテンツにアクセスすることを許可される(1つの例示的な実施形態で、前に承認されずにリソースコンテンツの取出を試みるデバイスが、新たに発見されたデバイスである場合であっても、承認のためにメディアサーバユーザに提示すらされない、すなわち、これらのデバイスを無視できることに留意されたい)。
もう1つの保護として、リソース情報共有機能性322は、それ自体をメディアレンダリングデバイスとしてアナウンスするすべてのデバイスが、一意のデバイス番号(UDN)を有することを要求することができる。一実施形態で、リソース情報共有機能性322は、レンダリングデバイスのUDNが、UPnPネットワーク314で現在または以前に検出された他のメディアレンダリングデバイスと異なることを検証する。リソース情報共有機能性322は、UDNが既に検出されているUNDと一致する場合に、そのメディアレンダリングデバイスのアクセスを静かに拒否することができる。さらに、デバイスが、メディアレンダリングデバイスとして検出されたならば、リソース情報共有機能性322は、そのUNDが変更されないままになることを要求することができる。リソース情報共有機能性322は、変化を検出する場合に、そのデバイスに対してアクセスを静かに拒否する。さらに、メディアレンダリングデバイスが通し番号を有する場合に、リソース情報共有機能性322は、この番号も変更されないままになることを要求することができる。リソース情報共有機能性322は、この番号の変化を検出した場合に、そのデバイスに対してアクセスを静かに拒否する。
g.リソースロケータリタイヤメント
上で注記したように、リソース情報共有機能性322は、リソースロケータ(HTTP URLなどであるが、これに制限はされない)を使用して、そのリソースの位置を定義する。各リソースロケータのコンポーネントは、関連するリソースコンテンツを識別するリソースID(例えば、ResourceID)である。リソース情報共有機能性322は、そのリソースコンテンツアイテムを識別するリソースロケータを周期的に変更することによって、もう1つのセキュリティ保護を提供することができる(下の議論では、用語「リソースコンテンツアイテム」が、リソースストア320にストアされた選択されたリソースに関連するリソースコンテンツを指し、用語「アイテム」は、単に、文法的な便宜および明瞭さのために追加されている)。これは、リソースコンテンツアイテムを識別するリソースIDを周期的に変更することによって実行することができる。この保護は、リソースロケータの使用に時間制限を課すという効果を有する。例えば、コンシューマは、UPnPブラウズアクションまたはUPnP検索アクションを実行して、1つまたは複数のリソースロケータを取り出すことができる。しかし、リソース情報共有機能性322が、これらのリソースロケータを周期的に変更するので、コンシューマは、比較的タイムリーな形でリソースコンテンツ検索要求を使用して(検索されたリソースロケータを使用して)リソースコンテンツアイテムを取り出すことを強制される。コンシューマが、長く待ちすぎた場合に、これらのリソースロケータが、古くなり、動作不能になる。したがって、リソースロケータが、許可されないエンティティに漏らされた場合に、これらのリソースロケータは、非常に長い間有効ではなく、これによって、リソースロケータの望ましくない開示によって引き起こされる損害が制限される。
h.様々なリソース転送モジュール524セキュリティ手段
上で識別された複数の機構が、様々なセキュリティ脅威からリソース転送モジュール524(例えば、HTTPサーバとして実施することができる)を保護するのに役立つ。例えば、IPアドレス制限手段によって、リソース情報共有機能性322が、プライベート範囲(例えば、192.168範囲)またはAuto IP範囲内のネットワークインターフェースだけに対してリソース転送モジュール524を始動する。さらに、デバイスおよびセッションの制限によって、リソース情報共有機能性322が、リソースコンテンツ取り出しセッションの数を所定の数(例えば、10セッション)までに制限し、承認されるデバイスの数を所定の数(例えば、10デバイス)までに制限する。TTL制限によって、リソース情報共有機能性322が、TTLパラメータを所定の数(3など)までに制限し、これによって、リソースコンテンツ応答を提供する時に用いられるルータの数を制限する。UPnPアクション制限によって、リソース情報共有機能性322が、前に承認されたデバイスから発する場合に限ってリソースコンテンツ要求をサービスし、他のすべての要求を無視することができる(具体的に言うと、リソース情報共有機能性322は、リソースコンテンツへのアクセスを試みる新しいデバイスを承認のためにメディアサーバユーザに提示する必要がない)。さらに、リソース情報共有機能性322は、リソースコンテンツを共有するメディアサーバユーザがファイルシステム上のリソース(例えば、ファイル)へのアクセスの許可を有する場合に限って、リソースコンテンツを共有し;これは、メディアサーバ302のリソースへのアクセスを拒否されたメディアサーバユーザが、UPnPネットワーク314上のデバイスでそのコンテンツを再生できなくするためである。リソース情報共有機能性322は、さらに、共有があるデバイスに制限されるかどうか、またはメディアサーバシステムにログオンしている特定の個人を前提条件とするかどうかを判定する。
リソース転送モジュール524に、様々な他のセキュリティ手段も含めることができる。例えば、クライアントが通信ソケットをオープンし、リソースコンテンツ取り出し要求を部分的にのみ書き込むか、タイムリーな形でリソースコンテンツ応答を読み取らない場合に「タイムアウト」するようにリソース転送モジュール524を構成することができる。1つの例示的な実施形態で、リソース情報共有機能性322は、これらのタイムアウトに5分をセットすることができる。このタイムアウトは、メディアサーバユーザ(または他の誰か)が簡単にこの値を変更できなくするために、ハードコードすることができる。
もう1つの特徴によれば、リソース転送モジュール524は、リソースコンテンツ取り出し要求を、約4000文字など、所定のサイズまでに制限することができる。
もう1つの特徴によれば、リソース転送モジュール524は、リソースロケータを検証することができる。検証に、リソースロケータが、http://machine ip:port/ResourceID(すなわち、この場合に、HTTP URLが使用されること)など、所定のフォーマットに従うことを保証することを含めることができる。リソース転送モジュール524は、要求ヘッダを注意深く解析し、検証することもできる。
A.6.URLパラメータ化の提供
図3に関して、メディアサーバ302からのリソース情報の取出に、情報の4つの主要な交換を含めることができることを想起されたい。第1の交換(パス324によって表される)で、コンシューマが、コントロールポイント316を使用して、UPnPクエリをメディアサーバ302に送信することができる。このUPnPクエリは、ブラウズ要求または検索要求として構成することができる。ブラウズ要求では、コンシューマの意図が、メディアサーバ302によって提供されるリソースに関連するリソースメタデータのコレクションをスキャンすることである。検索要求では、コンシューマの意図が、よりねらいを定めたものであり、例えば、様々な検索単語によって識別されるメディアサーバ302によって供給される特定のリソースメタデータを見つけることなどである。
どの場合でも、第2の交換(パス326によって表される)で、メディアサーバ302は、コンシューマの要求に合致する1つまたは複数のリソースに対応するリソースメタデータ(例えば、リソースストア320内のファイル)を提示することによって応答する。このリソースメタデータに、タイトル、ジャンル、アーティスト、作成日付など、一致するリソースに関する様々な高水準情報を含めることができる。このリソースメタデータに、リソースコンテンツアイテムをそこから取り出すことができるめいめいのネットワーク位置を識別するリソースロケータ(URLなど)も含めることができる。議論を容易にするために、このセクションでは、HTTPサーバに関するURLの特定の使用を仮定するが、本明細書に記載の原理は、他の種類のリソースロケータおよび関連するリソースコンテンツサーバに適用することができる(次の議論では、用語「リソースコンテンツアイテム」が、リソースストア320にストアされた選択されたリソースに関連するリソースコンテンツを表し、用語「アイテム」は、単に、文法的な便宜および明瞭さのために追加されている)。
リソースメタデータを見た後に、コンシューマが、レンダリングデバイス306などのレンダリングデバイスで再生するために、対応するリソースコンテンツアイテムを選択したと仮定する。この場合に、第3の交換(パス330によって表される)で、コンシューマは、レンダリングデバイス306が、選択されたリソースコンテンツアイテムを取り出すようにメディアサーバ302に指示する要求をメディアサーバ302に送信することを可能にする。例えば、コンシューマは、選択されたリソースコンテンツアイテムに関連するURLをレンダリングデバイス306に転送することができる。レンダリングデバイス306は、選択されたリソースコンテンツアイテムを指定するHTTP GET要求をメディアサーバ302に送信することによって応答する。このHTTP GET要求に、選択されたリソースコンテンツアイテムに対応するURL(コントロールポイントによって渡されたもの)が含まれる。
最後に、メディアサーバ302は、URLによって指定される位置で選択されたリソースコンテンツアイテムを取り出すことによって、HTTP GET要求に応答する。第4の交換(パス332によって示される)で、メディアサーバ302が、選択されたリソースコンテンツアイテムをレンダリングデバイス306に供給する。
このセクションの残りでは、上で説明した情報交換の効率を改善する技法を説明する。
まず、リソースストア320が、通常は、定義されたオリジナルメディアフォーマットでファイルをストアすることに留意されたい。用語「メディアフォーマット」は、リソースがストアされ、かつ/またはレンダリングされる形に影響する、リソースに関するすべての特性を含む。例えば、メディアフォーマットは、フォーマットタイプ(例えば、様々なタイプの圧縮フォーマットおよび非圧縮フォーマット)、フォーマット解像度などを指定することができる。例えば、リソースストア320は、RGBのフォーマットタイプおよび640×480のフォーマット解像度を有するイメージファイルをストアすることができる。したがって、レンダリングデバイスは、RGBフォーマットタイプで表されたサイズ640×480のイメージを処理するように構成されている場合に、このイメージファイルを表示することができる。さらに、メディアサーバ302に、コンシューマの要求の際に、リソースをオリジナルメディアフォーマットから別のメディアフォーマットに変換する機能性(図示せず)を含めることができる。あるいは、リソースストア320は、異なるめいめいのオリジナルメディアフォーマットで表された、リソースの複数のバージョンをストアすることができる。この2つの場合のどちらであっても、単一のリソースに関連する異なるメディアフォーマットを、複数の個々のリソースを含むものとして概念化することができる。したがって、個々のリソースごとに、メディアサーバ302を、異なるメディアフォーマットに対応する選択的な配布のために複数のリソースを提供するものとして概念化することができる。
本明細書に記載の技法は、コンシューマが、指定されたメディアフォーマットに従うリソースコンテンツを取り出すことを可能にする機構を提供する。メディアサーバ302は、様々な形でこの目的を達成することができる。視座について、この目的を達成する1つの形が、メディアサーバ302に、リソースコンテンツアイテムの異なるメディアフォーマットにそれぞれ関連する異なるURLをパブリッシュさせることである。例えば、第1の例示的なURLによって、RGBのフォーマットタイプおよび640×480のフォーマット解像度を有するリソースコンテンツアイテムを指定することができる。第2の例示的なURLによって、YUVのフォーマットタイプおよび1280×1024のフォーマット解像度を有する同一のリソースコンテンツアイテムを指定することができる。他の例示的なメディアフォーマットは、様々なアイコンサイズおよびサムネイルサイズのバージョンと、様々な標準ディスプレイ解像度フォーマットに対応する。しかし、この手法は、様々な短所を有する。例えば、この手法は、メディアサーバ302が、単一の「親」リソースコンテンツアイテムに関連する異なるメディアフォーマット置換に関連する潜在的に多数のURLを管理し、パブリッシュすることを必要とする。この多数のURLを供給することは、UPnPネットワーク314を複雑にし、これによって、UPnPネットワーク314でのネットワークトラフィックが潜在的に増加し、他の潜在的な問題が生じる。
具体的に言うと、一実施形態で、メディアサーバ302は、一致するリソースごとにいわゆる「res」要素を提供することによって、ブラウズUPnP要求または検索UPnP要求に応答することができる。「res」要素に、一致するリソースに関連するリソースコンテンツアイテムを見つけられる場所を識別するURLが含まれる。上で説明したソリューションは、一致するリソースアイテムに様々な形で対応する複数のメディアフォーマットを指定することができる。例えば、メディアサーバ302は、それぞれがめいめいのメディアフォーマット(それぞれがそれ自体のURLを有する)に関連する複数のres要素を提供することができる。その代わりに、メディアサーバ302が、一致するリソースごとに複数の一致するアイテムを作成することができ、各一致するアイテムが、めいめいのメディアフォーマット(それ自体のURLを有する)に関連する。これらのソリューションの両方が、UPnPネットワーク314に様々な複雑さを導入し、潜在的に、その性能に悪影響を及ぼす。
また、上のソリューションでは、メディアサーバ302が、サポートされるメディアフォーマットの関連するセットに対応するURLの限られたセットだけを提供する。しかし、提供されるメディアフォーマットのこの限られたセットは、リソースコンシューマの必要に合致しない場合がある。
下で特徴を示す技法では、メディアサーバ302が、コンシューマのブラウズ要求または検索要求に応答して、使用可能なリソースコンテンツアイテムの単一のURLをパブリッシュすることができ、その単一のURLに、様々なメディアフォーマットの範囲を記述するために変更することができるめいめいの特有の属性を指定する様々なパラメータを含めることができる。すなわち、メディアサーバ302は、関連するリソースコンテンツアイテムを最もよく提示すると判定されたメディアフォーマットを反映する、その様々なパラメータについてオリジナルのデフォルト値を書き込まれたURLをパブリッシュすることができる。「最もよい」デフォルトメディアフォーマットの判定は、1つまたは複数の判断基準に基づくものとすることができる。コントロールポイント(例えば、コントロールポイント316)は、メディアレンダリングデバイスによって使用されるネイティブメディアフォーマットに対処するために、または他の考慮事項に基づいて、これらのデフォルトパラメータを変更することができる。例えば、コントロールポイント316は、メディアレンダリングデバイス306の接続マネージャサービスモジュールによって提供されるGetProtocolInfo UPnPアクションを呼び出すことによって、このレンダリングデバイスのレンダリング能力を判定することができる。次に、コントロールポイント316は、レンダリングデバイス306のプレゼンテーション能力と互換性があり、リソース自体がサポートできるレンダリングフォーマット(メディアサーバ302によってコントロールポイント316に返されるリソースメタデータから探り出される)と互換性があるメディアフォーマット(1つまたは複数の)を選択することができる。リソースコンテンツを複数のメディアフォーマットで提示できる場合には、コントロールポイント316は、これについてコンシューマに警告し、コンシューマがメディアフォーマットを選択できるようにすることができる。このタスクを容易にするために、コントロールポイント316は、サポートされるメディアフォーマットの情報を、コンシューマが簡単に理解できる情報に変換することができる。あるいは、コントロールポイント316は、自動化された分析を実行して、複数の可能なフォーマットの中で選択することができる(例えば、コンシューマが過去に何を選択したかの考慮に基づくなど)。
どの場合でも、パラメータを変更することによって、変更されたURLが作成され、これを、リソースコンテンツを提示するレンダリングデバイス(例えば、レンダリングデバイス306)に転送することができる。次に、レンダリングデバイス306が、この変更されたURLをメディアサーバ302にサブミットすることによって、変更されたURLに対応するリソースコンテンツアイテムを取り出すことができる。代替案では、レンダリングデバイス306が、パラメータを変更せずにオリジナルのURLを単純にメディアサーバ302に送り返すことができる(例えば、オリジナルURLをレンダリングデバイス306に転送し、このレンダリングデバイス306がそれをメディアサーバ302に転送することによって)。
メディアサーバ302は、レンダリングデバイス306によって送信されたURLからパラメータを読み取り、次にURL内のパラメータによって指定されるメディアフォーマットのリソースコンテンツアイテムをメディアレンダリングデバイス306に供給することによって応答する。この動作は、メディアサーバ302が、選択されたリソースコンテンツアイテムをオリジナルメディアフォーマットからURLのパラメータによって指定されたメディアフォーマットに変換することを必要とする場合がある。あるいは、この動作は、単に、メディアサーバ302が、ストアされたリソースコンテンツアイテムを変更せずに供給することを必要とする場合がある(変更が不要であることがパラメータによって示される場合に)。その代わりに、メディアサーバ302が、複数の異なるメディアフォーマットでリソースコンテンツアイテムをストアしている場合があり、この場合には、メディアサーバ302は、変更せずに使用可能な場合に適当なストアされたメディアフォーマットを選択することができる。
一実施形態で、メディアレンダリングデバイス306は、受信したリソースコンテンツアイテムを、メディアサーバ302から受信したメディアフォーマットで提示する。もう1つの実施形態で、メディアレンダリングデバイス306に、受信したリソースコンテンツアイテムを、提示の前に(または、潜在的に、それをストアする前に)もう1つのメディアフォーマットに変換する変換機能性(図示せず)をも含めることができる。
上で説明した技法によって、メディアサーバ302は、可能なメディアフォーマットの様々な置換に関連する多数のURLをパブリッシュする必要がない。これは、UPnPネットワーク314のトラフィックを減らし、メディアサーバ302のURL管理要件を単純化するのに役立つ。この戦略は、コントロールポイント316に、限られた数のストックオプションの間で選択する必要なしに、現在アドレッシングしているレンダリングシナリオの必要に最もよく適するメディアフォーマットを動的に調整する柔軟性も与える。この戦略は、コントロールポイントが、それが相互作用する可能性がある異なるメディアサーバに関してメディアフォーマットを調整できるようにする標準的で均一な技法も提供する。
一実施形態で、メディアサーバ302は、1つまたは複数の判断基準に基づいて、URLで使用されるオリジナルデフォルト値を選択することができる。例えば、メディアサーバ302は、URLに関連するリソースを調べることによって、このURLで使用されるオリジナルデフォルト値を選択することができる。リソースに、好ましいオリジナルデフォルト値を識別するそれに含まれる情報が含まれる場合がある。その代わりに、メディアサーバ302が、リソースから抽出された情報に対するそれ自体の分析を実行して、好ましいオリジナルデフォルト値に対する判断を行うことができる。あるいは、メディアサーバ302が、どのメディアフォーマットが最も一般的であるかの考慮など、リソース自体からは導出されない他の要因を使用することができる。これらの好ましい初期値を選択する、さらに他の技法を提供することができる。
上で要約した技法の例示的な詳細を、次に示す。上で説明したリソースコンテンツ取り出し戦略を実施するのに使用できる次の例示的なパラメータ化されたURLを検討されたい。
Figure 2007515015
このURLには、プロトコル方式を識別する第1フィールドが含まれる。プロトコル方式は、リソースコンテンツアイテムにアクセスするのに使用される技法を定義する。この場合に、第1フィールドは、「http」を指定し、これは、このリソースコンテンツアイテムが、ハイパーテキスト転送プロトコル技法を使用してアクセスされなければならないことを示す。第2フィールドは、権限を識別する。権限は、リソースコンテンツアイテムを提供するエンティティ、通常はリソースコンテンツアイテムを提供するサーバを定義する。この場合に、第2フィールドは、権限として「ServerName」を指定している。第3フィールドは、リソースコンテンツアイテムにアクセスするのに使用されるパスを指定する。パス(この場合には「Tulips.jpg」)は、権限(例えば、ServerNameサーバ)が、そのシステム内でリソースコンテンツアイテムの位置を識別できるようにする。第4フィールドは、クエリを識別する。クエリには、リソースコンテンツアイテムのメディアフォーマットを取り出すのに使用される情報が含まれる(メディアサーバ302は、上で説明したパラメータ化されたURLを、XML「res」要素のパッケージと共にコントロールポイント316に供給することができる。res要素に、URLの他に、一致するリソースに関連する他のメタデータも含めることができる)。
具体的に言うと、例示的な実施形態で、上にリストしたURLの第4フィールドに、リソースのレンダリングに使用されるメディアフォーマットを集合的に記述する複数のパラメータが含まれる。上の例では、第1パラメータが、YUVとしてプレゼンテーションフォーマットのフォーマットタイプを指定し、第2パラメータが、640として解像度幅を指定し、第3パラメータが、480として解像度高さを指定している。これらのパラメータは、単に例示である。URLは、追加のパラメータまたはより少数のパラメータを指定することができる。例えば、URLは、イメージのレンダリングに使用される塗潰しカラー、例えばR(赤)=x、B(青)=y、およびG(緑)=zを指定することができる(すなわち、イメージがレンダリングされる時に、そのイメージがレンダリングデバイスのディスプレイサーフェス全体を覆わない場合がある;塗潰しカラーは、イメージ内容を含まないディスプレイ領域に表示される背景色の赤成分、青成分、および緑成分を指定する)。
さらに、パラメータ化されたURLは、上で指定されたもの以外の構文フォーマットを使用して表すことができる。上のフォーマットでは、各パラメータが、「名前=値」の構文を有する名前/値対として指定されている。しかし、別の構文で、名前情報を省略することができ、名前情報を明示的に識別するのではなく、この情報を、URL内の関連する値の位置から推論することができる。名前情報の明示的識別を省略した例示的なURLは、次の通りである。
Figure 2007515015
いくつかのパラメータに名前/値対構文を使用し、他のパラメータに位置構文(名前を明示的に識別しない)を使用する、ハイブリッドフォーマットを設けることも可能である。
どのフォーマットが使用される場合でも、メディアサーバ302は、パラメータごとに選択できる値の範囲に関する情報をパブリッシュすることもできる。例えば、1つの例示的な実施形態で、名前パラメータが、YUVまたはRGBの値を受け入れることができ、幅パラメータが、0から2048までの値を受け入れることができ、高さパラメータが、0から2048までの値を受け入れることができる。メディアサーバ302は、コンシューマのブラウズ要求またはコンシューマの検索要求に応答する時に、リソースメタデータ自体と共にこの範囲情報をパブリッシュすることができる。代替案では、メディアサーバ302が、例えば毎日1回、週1回など、周期的な基礎で範囲情報を散布することができる。代替案では、範囲情報を、既知の許容可能な範囲に基づいてコントロールポイントおよび/またはレンダリングデバイスに事前にストアすることができ、したがって、メディアサーバ302がこの情報を通信する必要がない。
上の要約で述べたように、コントロールポイント316は、パラメータ化されたURLを受信した時に、値の指定された範囲内で許容される任意の値にパラメータを変更することができる(コンシューマのアシスタンスありまたはなしで)。例えば、最初に識別された例示的なURLを検討されたい。コンシューマのレンダリングデバイス306が、640×480の解像度を有するYUVイメージを表示できる場合に、コントロールポイント316は、レンダリングデバイス306がメディアサーバ302にサブミットする前にURLを変更する必要がない。しかし、メディアレンダリングデバイスが、1280×1024の解像度を有するディスプレイにYUVイメージを表示できると仮定する。この場合に、コントロールポイントは、上に記載のURLを次のように変更することができる。
Figure 2007515015
次に、レンダリングデバイス306は、この変更されたURLをメディアサーバ302にサブミットすることができる(コントロールポイントから受信した後に)。メディアサーバ302は、所望のリソースコンテンツアイテムを取り出し、レンダリングデバイス306に送信する前に、1280×1024の指定された解像度に変換することによって応答する。
メディアレンダリングデバイス306がRGBイメージだけを表示できる、もう1つの例を検討されたい。この場合に、コントロールポイントは、次のように、URL(元々はYUVフォーマットタイプを指定していた)をRGBフォーマットタイプに変更することができる。
Figure 2007515015
やはり、メディアサーバ302は、メディアレンダリングデバイス306に送信する前に、リソースコンテンツアイテムのイメージをRGBイメージに変換する。メディアサーバ302は、レンダリングデバイス306の解像度期待(すなわち、1280×1024)に対処するようにこのイメージのスケーリングも行う。
一実施形態で、メディアサーバ302は、レンダリングデバイス306の指定に合うようにイメージの解像度を変換する時に、オリジナルイメージのアスペクト比を保存することを試みる。これによって、イメージが、レンダリングデバイス306で不自然に歪んで見えることが防がれる。これによって、レンダリングデバイスのディスプレイサーフェスに、イメージコンテンツを含まない領域が残される場合がある。URLで指定できる塗潰しカラーを使用して、これらの空の領域に背景色を表示することができる。
上の例では、イメージをレンダリングするためのパラメータ化されたURLの使用を強調した。しかし、この戦略は、オーディオ情報およびビデオ情報など、他のメディアタイプおよび情報タイプにも適用可能である。例えば、PCMオーディオの場合に、URLに、サンプリングレート、チャネル数(モノラル、ステレオ、5.1サラウンドサウンドなど)、およびサンプルあたりのビット数を指定するパラメータを含めることができる。デジタルビデオについて、URLによって、レンダリングデバイスでNTSCまたはPALが使用されなければならないことなどを指定することができる。
さらに、上で提示した例では、リソースコンテンツのフォーマットに関する(例えば、一般に、リソースコンテンツがストアされ、かつ/または提示される形に関する)めいめいの特有の属性を記述するURLパラメータの使用を強調した。しかし、他のパラメータによって、リソースコンテンツの他の特徴に関係する属性を記述することができる。例えば、これらの他のパラメータによって、リソースコンテンツの先頭からの、リソースコンテンツが再生される位置のタイムインターバル、ならびに再生の持続時間など、リソースコンテンツの再生に関連するタイミング情報を記述することができる。
さらに、上で提示した例で、単一のURLが、リソースコンテンツアイテムに関連するすべてのメディアフォーマット置換を定義するのに使用される場合を説明した。しかし、メディアサーバは、リソースコンテンツアイテムの異なる態様を表すのに複数のURLを使用することができる。例えば、異なるMIMEタイプについて異なるURLを生成することができ、各URLに、特定のMIMEタイプのコンテキスト内の1つまたは複数のパラメータを含めることができる。例えば、WMAフォーマットまたはMP3フォーマットでリソースコンテンツアイテムを提示できるメディアサーバが、この2つのフォーマットに対応する2つのURLを提供することができる。これらのURLのそれぞれに、その特定のMIMEタイプ内の変化するフォーマット特性に関する1つまたは複数の変数パラメータを含めることができる。例えば、WMA URLに、128kbpsのビットレートから90kbpsのビットレートまで変更できるビットレートパラメータなどを含めることができる。あるMIMEタイプ(または他のタイプのカテゴリ)から別のタイプへの変換を、「フォーマット間」トランスコーディングと呼ぶことができる。あるMIMEタイプ(または他のタイプのカテゴリ)内でのパラメータの変換を、「フォーマット内」トランスコーディングと呼ぶことができる。しかし、これは、単に1つの例示的なシナリオである。上で述べたように、上で説明した実施形態は、単一のURLを使用して、フォーマットタイプを含むリソースコンテンツアイテムのすべての態様の間で変換した。
さらに、上で提示した例で、それによってコントロールポイントがオリジナルURLを受信し、そのURLを変更し、その変更されたURLをメディアレンダリングデバイスに転送する(または、変更が行われない場合に、変更されていないURLをメディアレンダリングデバイスに転送する)リソースコンテンツ取り出しプロシージャを説明した。次に、メディアレンダリングデバイスが、変更された(または未変更の)URLをメディアサーバに転送し、変更されたURLまたは未変更のURLで識別されるリソースコンテンツアイテムを返すようにメディアサーバに促す。しかし、多数の他の取り出し方式が可能である。例えば、コントロールポイントが、オリジナルURLを取り出し、これを即座にメディアレンダリングデバイスに送信することができる。メディアレンダリングデバイスは、URLを変更し(あるいは、変更しないと決定し)、このURLをメディアサーバに転送することができる。この実施形態では、コントロールポイントは、メディアレンダリングデバイスのレンダリング要件/特性を調べる必要がない。というのは、メディアレンダリングデバイス自体が、必要なまたは望まれるURLのすべての変更を処理しているからである。他の置換が可能である。例えば、単一の受信側エンティティが、すべての機能を実行することができ、コントロールポイントおよびメディアレンダリングデバイス以外の1つまたは複数の他のエンティティを使用して、リソース情報の取出の役割のために働かせることができる。
最後に、上の議論は、メディアサーバ302が、変更されたURLを受け取り、変更されたURLに基づいてリソースコンテンツアイテムを処理し、そのリソースコンテンツをレンダリングデバイス(または他の受信側エンティティ)に分け与える役割のために働く1つの実施形態に基づくものであった。しかし、より一般的に、これらのタスクのそれぞれまたはタスクの異なる割当を実行するために複数のエージェントまたはモジュールを有する(またはそれを有するのものとして概念化できる)メディアサーバ302を実施することができ、これらのタスクを実行するエージェントは、一緒におよび/またはメディアサーバ302の他の部分と共に同一の位置に置くことも、そうしないこともできる。例えば、一実施形態で、メディアサーバ302を、一緒にメディアサーバ302を構成する上で説明したタスクを実行する分散したエージェントの疎な集合とみなすことができる。
B.例示的なユーザインターフェース(UI)プレゼンテーション
1つの例示的な実施形態で、コントロールパネルモジュール506(図5の)は、メディアサーバユーザがメディアサーバ302と相互作用できるようにする一連のUIプレゼンテーション(ページとも称する)を提供する。例えば、コントロールパネルモジュール506は、UPnPネットワーク314に結合されたデバイスをイネーブルし、ディスエーブルする第1の一連のUIページを提供することができる。コントロールパネル506モジュールは、メディアサーバユーザが、共有されなければならないリソースおよびそのリソースを共有する条件を選択できるようにするもう1つの一連のUIページを提供することができる。セクションB.1およびB.2で、それぞれ、この2つのカテゴリのUIページを説明する。
一般に、一実施形態で、コントロールパネルモジュール506は、コントロールパネルインターフェース(米国ワシントン州レッドモンドのMicrosoft(登録商標)Corporation社によって提供される馴染みのあるコントロールパネルインターフェース機能性など)を介して、上で説明したUIページを提供することができる。したがって、UIプレゼンテーションを調整して、コントロールパネルUIプレゼンテーションのルックアンドフィール(例えば、「タブ付き」ディスプレイページを有する)を採用することができる。このUIスタイルの選択は、単に例示であり、他のスタイルおよびUIレイアウトを使用して、UIページを実装することができる。
B.1.新しいデバイスを許可する例示的なUI
図8〜10に、コントロールパネルモジュール506がネットワーク314へのデバイスの導入を処理するのに使用できる様々なUIページを示す。
まず、新しいメディアレンダリングデバイスが、UPnPネットワーク314で検出された時に、メディアサーバユーザにその存在について警告するようにメディアサーバ302を実施することができる。1つの技法によれば、コントロールパネルモジュール506が、図8に示されたバルーンタイプのメッセージ800を提供することによって、この警告機能を実行することができる。このメッセージ800は、「A New Digital Media Receiver has been, found. Do you wish to enable, disable, or configure this device?(新しいデジタルメディアレシーバが見つかりました。このデバイスを、イネーブル、ディスエーブル、または構成しますか)」と述べるものである。このメッセージ800に、選択されるオプションに関連するハイパーテキストリンクをクリックすることによって、メディアサーバユーザが列挙されたオプションの1つを選択できるようにするハイパーリンクを含めることができる。他のメッセージスタイルおよび選択フォーマットを使用することができ、図8に示されたメッセージ800は、単に1つの例にすぎない。
コントロールパネルモジュール506は、メッセージ800のハイパーテキストリンクがアクティブ化された時に、図9に示されたUIページ900をアクティブ化する。このページ900に、複数のセクション(902、904、906)が含まれる。各セクションは、UPnPネットワーク314に結合された異なるデバイスに関する情報を提供する。例えば、セクション902は、新しいデバイスが見つかったことを示す。このセクション902は、新しいデバイスの製造業者およびモデルも識別する。このセクション902は、このセクション内のハイパーテキストリンクをアクティブ化することによって新しいデバイスをイネーブルするオプションを、メディアサーバユーザに与える。セクション904は、デバイスが前にイネーブルされたことを説明する。したがって、このセクション904は、このセクション904に関連するハイパーテキストリンクをアクティブ化することによってこのデバイスをディスエーブルする機会をメディアサーバユーザに与える。セクション906は、デバイスが前にディスエーブルされたことを説明する(それ以外の点ではUPnPネットワーク314にとって新規でない)。したがって、このセクション906は、このデバイスをもう一度イネーブルする機会をメディアサーバユーザに与える。
コントロールパネルオブジェクト506は、メディアサーバユーザがUIページ900のセクションのいずれかに関連するハイパーテキストリンクをアクティブ化した場合に、図10に示されたUIページ1000をアクティブ化する。UIページ1000は、選択されたデバイスの特性を記述した概要情報を提供する。このページには、3つのコマンドボタン(1002、1004、1006)も含まれる。コマンドボタン1002は、メディアサーバユーザがデバイスをイネーブルできるようにする。コマンドボタン1004は、メディアサーバユーザがデバイスをディスエーブルできるようにする。コマンドボタン1006は、メディアサーバユーザが、UIディスプレイページに現れる時のデバイスの名前を変更できるようにする。この最後のボタン1006は、「子供のPC」など、簡単に認識される「ユーザフレンドリ」名をデバイスに与えるのに有用である可能性がある。
B.2.リソースを共有する例示的なUI
図11に、様々なリソースフォルダと、UPnPネットワーク314を介するこれらのリソースフォルダ内のリソース情報(リソースメタデータおよびリソースコンテンツを含む)の散布を決定する異なる配布判断基準との間の関連付けを示すUIプレゼンテーションページ1100を示す。ページ1100に、3つの例示的なエントリ1102が示されている。第1のエントリは、リソースストア320での共有リソースフォルダの名前(例えば、リソースフォルダ「C:\My videos」1104)、このリソースフォルダに関連する同意関連判断基準(例えば、「All users」1106)、およびこのリソースフォルダに関連するデバイス判断基準(例えば、「All devices」1108)を識別する。判断基準「All users」1106は、リソースフォルダ「C:\My videos」1104内のリソースを、メディアサーバ302を実装するコンピュータに誰がログオンしているかに無関係に取り出せることを示す。判断基準「All devices」1108は、リソースフォルダ「C:\My videos」1104内のリソースを、UPnPネットワーク314内のどのレンダリングデバイスによっても取り出せることを示す。
その一方で、第2のエントリは、「C:\My photos」という名前1110、「Donald」というユーザ1112、「Kids bedroom device」というデバイス1114を識別する。ユーザ判断基準「Donald」1112によって、リソースフォルダ「C:\My photos」1110内のリソース情報は、ユーザDonaldがメディアサーバ302を実装するコンピュータの現在アクティブなターミナルサーバセッションにログオンしている時(あるいは、たとえUPnPネットワーク314内のコンシューマがリソース情報へのアクセスを試みる時にポップアップメッセージに肯定的に応答することによるなど、Donaldが他の形でリソース情報の転送に同意を与える時)に限って取り出すことができる。この設計モチーフに対する他の変形形態も可能である。例えば、上で述べたように、リソース情報の配布を決定する複数の配布判断基準(または2つ未満の判断基準もしくは判断基準なし)を提供するようにリソース情報共有機能性322を構成することができる。
3つのリソースフォルダ1102だけが図11に示されている。メディアサーバユーザは、追加コマンドボタン1116を作動させることによって、共有する追加のリソースフォルダを選択することができる。変更コマンドボタン1118は、メディアサーバユーザが共有リソースフォルダ1102の既存リストを変更できるようにする。除去コマンドボタン1120は、メディアサーバユーザがリソースフォルダ1102の既存コレクションからリソースフォルダを除去できるようにする。
前のセクションで説明したように、判断基準の第1のセットは、リソースメタデータの散布を決定し、判断基準の第2のセットは、リソースコンテンツの散布を決定する。説明を容易にするために、図11は、判断基準の同一のセットが、リソースメタデータとリソースコンテンツの両方の配布を決定するという仮定に基づく。しかし、リソース情報共有機能性322が、リソースメタデータの判断基準とリソースコンテンツの判断基準をメディアサーバユーザが区別することを可能にする場合に、このユーザインターフェースページを適当に変更して、より微細な粒度の判断基準情報を表示し、メディアサーバユーザがより微細なレベルで判断基準情報を入力できるようにすることができる。リソースメタデータの判断基準とリソースコンテンツの判断基準は、これらのカテゴリに異なるユーザ入力ページを割り当てることによるなど、異なる形でユーザインターフェースで区別することができる。
図12に、メディアサーバユーザが図11の変更コマンドボタン1118を押した時にコントロールパネルモジュール506がアクティブ化させるページ1200を示す。例えば、メディアサーバユーザが、図11の最初のエントリ1122を強調表示し(例えば、マウスデバイスまたは他の入力機構を使用することによって)、コマンドボタン1118を押したと仮定する。結果の、図12に示されたページ1200は、最初のエントリ1122の様々な既存プロパティを示し、これらのプロパティを変更する機会をメディアサーバユーザに与える。
例えば、ページ1200は、リソースの共有名を「My videos」1202として、同意関連判断基準を「All」1204として、デバイス判断基準を「All devices」1206として識別する。メディアサーバユーザは、関連するテキストボックスの情報を編集することによって、第1フィールド1202を変更することができる(例えば、マウスおよびキーボード入力デバイスを使用してこのフィールドを編集することによって)。第2および第3のフィールド(1204、1206)は、それぞれ、事前定義のユーザおよびデバイスのリストを提供するプルダウン選択メニューとしてセットアップされている。例えば、図12では、プルダウン選択フィールド1206が展開されて、その事前定義のリストが示されている。メディアサーバユーザは、このプルダウンリストから1つまたは複数のエントリを選択して、これらの2つのフィールド(1204、1206)の入力を提供することができる。テキストエントリボックスおよびプルダウンメニュー以外の他のデータ入力技法を使用して、ページ1200によって請求される情報を入力することができる。やはり、メディアサーバ機能性322が、メディアサーバユーザがリソースメタデータ判断基準とリソースコンテンツ判断基準を区別することを可能にする場合に、このページ1200を適当な形で拡大して、データ入力用の追加フィールドを提供することができる。
図11および12は、リソースフォルダを選択するのに使用できるUI戦略およびリソースフォルダに関連する散布判断基準を定義するのに使用できるUI戦略を網羅したものではない。例えば、図13に、共有リソースフォルダおよびそれに関連する配布判断基準のすべてのマスタ表示を提供し、メディアサーバユーザがこのページ1300自体を使用して(例えば、別のページを呼び出す必要なしに)表示される情報のどれでも変更できるようにする例示的なページ1300を示す。例えば、このページ1300の各ユーザフィールドおよび各デバイスフィールドに、メディアサーバユーザがこれらのフィールドの表示される選択を変更できるようにするめいめいのドロップダウンメニューが含まれる。例えば、例示的なユーザフィールド1304のドロップダウンメニュー1302および例示的なデバイスフィールド1308のドロップダウンメニュー1306を検討されたい。ブラウズコマンドボタン1310によって、メディアサーバユーザが、どのリソースフォルダを共有リソースに追加する(例えば、追加コマンドボタン1312をアクティブ化することによって)かを決定する前に、様々なディレクトリを調べられるようになる。前と同様に、除去コマンドボタン1314は、前に選択されたリソースフォルダを共有リソースから除去するように機能する。
図14に、判断基準情報を入力するもう1つの代替技法を示す。この図に示されたページ1400は、メディアサーバユーザが、すべての共有リソースフォルダに影響するグローバル判断基準情報を指定できるようにする。すなわち、選択アイテム1402は、誰がメディアサーバ302にログオンしているかに無関係にメディアサーバ302がすべての共有リソースフォルダのリソース情報を共有しなければならないかどうかを、メディアサーバユーザが指定できるようにする。選択アイテム1404は、メディアサーバ302が区別なしにすべてのドライブのリソースフォルダのすべてを配布しなければならないかどうかを、メディアサーバユーザが指定できるようにする。これらの選択アイテム(1402、1404)は、チェックボックスUI入力特徴または他の種類のUI入力特徴を使用して、メディアサーバユーザからバイナリYES/NO選択を受け取ることができる。
ページ1400は、メディアサーバユーザが、メディアサーバ302によって適用されるセキュリティを決定する様々な選択を行うことも可能にする。例えば、選択アイテム1406は、メディアサーバユーザがメディアサーバ302を実装するコンピュータを起動する時に、メディアサーバを自動的に起動しなければならないかどうかを、メディアサーバユーザが指定できるようにする。選択アイテム1408は、メディアサーバ302と相互作用することを許可されるネットワーク314上のデバイスの最大個数をメディアサーバユーザが指定できるようにする。類似するユーザ入力フィールド(図示せず)を使用して、メディアサーバユーザが、上のセクションA.5で述べたセキュリティ機構に関する他のセキュリティオプションを指定できるようにすることができる。例えば、許される場合に、適切なUIページを用いて、メディアサーバユーザがセクションA.5に記載の機構のいずれかを選択的にアクティブ化または非アクティブ化することならびにこれらの機構で使用される関連パラメータを指定することを可能にすることができる。
最後に、図15に、一般に「ウィザード」と称する、自動化されたセットアッププロシージャの一部として使用できるページ1500を示す。このページは、リソースを含むリソースストア320で提供されるリソースフォルダの階層表現1502を提供する。ディレクトリ1502に、階層内のリソースフォルダのそれぞれに隣接して位置決めされたチェックボックスが含まれる。メディアサーバユーザは、めいめいのリソースフォルダの隣のチェックボックスを選択的にクリックすることによって、これらのリソースフォルダのそれぞれを共有しなければならないかどうかを示すことができる。このページ1500の右端部分に、図14に関して上で述べたものと同一のグローバル判断基準選択をメディアサーバユーザが行得るようにする選択アイテム(1504および1506)が提供される。
上の議論では、配布判断基準が、フォルダごとの基礎でリソースに割り当てられた。しかし、コンテナごとの基礎で情報を表示し、メディアサーバユーザがコンテナごとの基礎で情報を入力できるようにすることによって、コンテナごとの基礎でリソースに配布判断基準を適用することも可能である。
やはり、図面に示されたUIのレイアウトは、例示である。他のUI戦略は、メディアサーバユーザが、デバイス、共有、セッティング、およびイベントという主要な話題の中から選択できるようにすることができる。共有カテゴリ内で、メディアサーバ302は、My Music、My Pictures、My Videosなどのリソースカテゴリ内のリソースを共有するオプションをメディアサーバユーザに与えることができる。
C.例示的なプロセス
図16および17は、デバイス許可プロセスに関し、図18〜20は、リソース共有プロセスに関する。これらの図に示された個々のブロックは、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組合せで実施することができる。
C.1.デバイス許可プロセス
図16に、メディアサーバ302が、UPnPネットワーク314に追加された新しいデバイスを許可するプロシージャ1600を示す。ステップ1602で、誰かが、新しいメディアデバイスをUPnPネットワーク314に接続する。ステップ1604で、メディアサーバ302が、新しいデバイスの存在をメディアサーバユーザに警告するメッセージを生成する。図8に、このメッセージを提供するのに使用できる1つのディスプレイフォーマットを示す。ステップ1606で、メディアサーバ302が、メディアサーバユーザが新しいデバイスをイネーブルできるようにするUIページ(1つまたは複数)を開く。図9および10に、このステップを実施する2つの例示的なUIページを提供する。ステップ1608で、メディアサーバユーザが、例えば新しいデバイスのイネーブルまたはディスエーブルのいずれかを行うことによって、新しいデバイスに関する選択を行う。メディアサーバユーザは、新しいデバイスにユーザフレンドリ名を与えることも許可される。
図17に、新しいデバイスのアイデンティティを決定するプロシージャ1700を示す。ステップ1702で、メディアサーバが、新しいデバイスのIPアドレスを識別する。ステップ1704で、メディアサーバが、IPアドレスをメディアアクセス制御(MAC)アドレス(または他のデバイス固有情報)に変換する。IPアドレスは、例えば、Address Resolution Protocolを使用する、Microsoft(登録商標)Corporation社のInternet Protocol Helperが提供するSendARP関数を使用することによって、MACアドレスに変換することができる。許可されたならば、ネットワーク314との後続の相互作用で、デバイスをそのIPアドレスおよびMACアドレスによって識別することができる。デバイスの認証にMACアドレスを使用することが、有利である。というのは、IPアドレスだけでは信頼できないからである(IPアドレスは、DHCPサーバの可用性に応じて変化する可能性があるからである)。
図16および17に示された動作のより綿密な説明を、図5に示されたアーキテクチャ500に関して与えることができる。新しいメディアレンダリングデバイスが追加される時に、そのデバイスは、UPnPアナウンスメントを発する。デバイス監視モジュール520が、このアナウンスメントを検出する。同様に、デバイス監視モジュール520は、UPnPネットワーク314に結合されたコントロールポイントによって行われる要求も検出する。それに応答して、デバイス監視モジュール520は、新しいデバイスのIPアドレスをルックアップし、SendARP()を使用してMACアドレスを得る。MACアドレスが新規である場合に、デバイス監視モジュール520は、コントロールパネルCOMオブジェクト540に通知し、このコントロールパネルCOMオブジェクト540は、既に存在するすべてのコールバックオブジェクト542に通知する。デバイス監視モジュール520は、CDDMサービスモジュール504にも通知する。コントロールパネルコールバックオブジェクト542は、コントロールパネルモジュール506を介してメディアサーバユーザに通知する。CDDMサービスモジュール504は、現在アクティブなターミナルサーバセッションについてコントロールパネルモジュール506を作成する必要があるかどうかを判断し、必要である場合には作成する。
C.2.リソース共有プロセス
図18に、メディアサーバユーザが、共有されるリソースフォルダを選択し、これらのリソースフォルダ内のリソース情報の散布を決定するのに使用される配布判断基準を指定できるようにするプロセス1800を示す。図19に、コンシューマが共有リソースフォルダをブラウズし、検索できるようにするプロセス1900を示す。図20に、コンシューマがパラメータ化されたURL手法を使用して選択されたリソースコンテンツアイテムを取り出せるようにするプロセス2000を示す。
a.共有リソースの定義
まず図18から始めると、プロシージャ1800は、共有リソースフォルダおよび配布判断基準を指定する多数の形の1つの例示にすぎない。下のセクションBで実証するように、この情報を収集する多数の異なるUI戦略があり、したがって、このタスクを実行する多数の関連するプロセスがある。説明を容易にするために、リソースメタデータとリソースコンテンツの両方の散布を決定する判断基準の1つのセットだけが収集されると仮定する。リソース情報共有機能性322が、リソースメタデータとリソースコンテンツの判断基準の2つの異なるセットの間でメディアサーバユーザが区別することを可能にする場合に、図18に示された動作を適切に拡張して、この情報を収集することができる。
ステップ1802で、メディアサーバユーザが、共有リソースフォルダを選択する。図11から13に、メディアサーバユーザがこのタスクを実行するのに使用できる技法のうちの少数を示す。
ステップ1804で、メディアサーバユーザが、リソース情報の転送に同意を与えなければならない個人(存在する場合に)を選択する。前に説明したように、この制約は、サービスがどのように構成されるかに応じて、文字どおりにまたはより狭く構成することができる。文字どおりの実施形態では、識別された個人が、メディアサーバ302を実装するコンピュータシステムの現在アクティブなターミナルサーバセッションにログオンしている場合に、暗黙の同意を与えると仮定する。より厳格な実施形態では、コンシューマがリソース情報の取出を試みる時に、識別された個人がこの転送を承認するかどうかを判定するために、メディアサーバ302が、識別された個人に具体的に問い合わせる。転送は、識別された個人がその転送を承認する場合に限って行われる。識別された個人が選択されない場合に、デフォルトで、リソースの配布に影響する同意関連制約はない。
ステップ1806で、メディアサーバユーザが、選択されたリソースフォルダ内のリソース情報を受信することを許可されるデバイスを選択する。図11〜15に、ステップ1804および1806で収集される判断条件を請い求めるのに使用できるUI技法のうちの少数を示す。また、前に注記したように、追加ステップを設けて、リソースフォルダ内のリソース情報の配布に影響する追加の判断基準を収集することができる。
ステップ1808で、コントロールパネルモジュール506が、任意選択として、指定された同意関連ユーザ判断基準によって決定される、指定されたデバイスへの指定されたリソースフォルダ内のリソース情報の共有の結果をメディアサーバユーザに警告する。これは、メディアサーバユーザの選択によって課せられる制約(または課せられる制約がないこと)を説明するメッセージを提示することによって実行することができる。そのようなメッセージを見た後に、メディアサーバユーザは、1つまたは複数の以前の選択を改訂すると決定することができる。ステップ1810は、メディアサーバユーザが、指定された結果に満足しない場合に1つまたは複数の選択を繰り返すことができることを示し、そうでない場合には、プロセス1800が継続される。
ステップ1812で、メディアサーバ302が、メディアサーバユーザが、選択されたリソースフォルダ内のリソース情報を共有する許可を有するかどうかを判定する。すなわち、リソースフォルダの作成者が、リソースフォルダ内のリソース情報の変更、読み取り、および/または配布の許可を有する1人または複数の個人を指定している可能性がある。メディアサーバユーザが、これらの個人のうちの1人でない場合に、ステップ1814は、そのリソースフォルダを共有できないことを示す。メディアサーバユーザが、これらの個人のうちの1人である場合に、ステップ1814は、そのリソースフォルダのリソース情報を共有できることを示し、したがって、プロセス1800が継続される。
ステップ1816に、選択されたリソースフォルダの状況を「共有」に変更することが含まれる。このステップ1816に、共有リソースストア532内の共有リソースフォルダを登録することと、関連する配布判断基準を判断基準情報536にストアすることを含めることができる。
上の議論では、配布判断基準が、フォルダごとの基礎でリソースに割り当てられる。しかし、配布判断基準を、上で説明したものに類似する形でコンテナごとの基礎でリソースに割り当てることも可能である。
リソースフォルダ内のリソースの共有に関する追加の一般的な考慮事項を、下に示す。下の議論では、「リソース」が、リソースストア320にストアされたリソースフォルダ内のファイルに対応することができる。リソースフォルダは、共有可能状況または非共有可能状況を有するものとして示される。また、各リソースが、リソースメタデータおよびリソースコンテンツを含む、実際に散布される「リソース情報」を有することも想起されたい。
具体的に言うと、1つの例示的な実施形態で、コンテンツディレクトリサービスモジュール526は、メディアサーバユーザが、リソースフォルダ内の個々のリソースではなく、リソースフォルダを共有可能として指定することだけを許容する。すなわち、リソースは、リソースごとの基礎ではなく、共有可能リソースフォルダに含めることによって共有可能として指定される。さらに、コンテンツディレクトリサービスモジュール526は、メディアサーバユーザが、オーディオリソース、ビデオリソース、および写真リソースのあるタイプ(オーディオファイルについて、フォーマットMP3、WMA、PCM、およびWAV;ビデオファイルについて、フォーマットMPEG−1、2、WMV、およびAVI;およびピクチャフォーマットについて、フォーマットJPEG、GIF、BMP、PNG、およびTIFF:を含むファイルの例示的な領域など)を共有可能として指定することだけを許容することができる。さらに、コンテンツディレクトリサービスモジュール526は、隠しファイル、ネットワーク共有、およびリムーバブルメディアを共有可能と指定することに制限を課す(すなわち、これによって、メディアサーバユーザがこれらのリソースを共有可能として指定することを防ぐ)ことができる。これらの備えは、UPnPネットワーク314によって提供されるセキュリティを改善するのに有益である可能性がある。というのは、上の許容可能なカテゴリに含まれない馴染みのないリソース情報が、共有されないからである。しかし、代替実施形態で、上で識別された「禁止される」リソースの1つまたは複数を共有可能として指定することが可能である。
もう1つの例示的な実施形態で、共有可能として指定されたリソースフォルダが、追加のサブコレクション(例えば、サブフォルダおよびファイル)を有することができる。メディアサーバユーザが、所与のリソースフォルダのすべてを共有可能として指定することを選択した時に、共有リソースフォルダおよびそのすべての従属サブフォルダ内のすべてのリソースをも、共有可能として自動的に指定することができる。
もう1つの例示的な実施形態で、メディアサービスモジュール502は、メディアサーバユーザが、リソースフォルダを「共有解除」として指定する(例えば、これによって、前にリソースフォルダに割り当てられたリソースフォルダの共有可能状況を除去するために)ことをも許容する。しかし、1つの例示的な実施形態で、メディアサーバユーザは、共有可能親リソースのサブリソース(例えば、サブフォルダおよびファイル)のいずれかを共有不能として指定することを許可されない。すなわち、例えば、メディアサーバユーザが、「c:\doc\」を共有可能として指定する場合に、メディアサーバユーザは、例えばルートリソースフォルダ「c:\doc\」が共有として指定されているので、「c:\doc\music\」を共有解除として指定することを許可されない。しかし、もう1つの実施形態で、共有解除されるリソースの選択的指定を許容するようにコンテンツディレクトリサービスモジュール526を構成することができる。
もう1つの例示的な実施形態で、メディアサーバユーザは、共有として指定されたリソースディレクトリの名前を変更することができる。コンテンツディレクトリサービスモジュール526は、このサービスの実行中の名前のすべての変更を追跡し、古い名前に関連する共有関連プロパティを新しい名前に自動的に変換することができる。メディアサーバユーザが、共有として指定されたリソースのいずれかに変更を加える時に、必ず、UPnPネットワーク314に結合されたデバイスにこの変更について通知するようにコンテンツディレクトリサービスモジュール526を構成することができる。これは、UPnPイベントを送出することによって実行することができる。
b.要求に基づく共有リソースの配布
図19に、コンシューマがコンテンツディレクトリサービスモジュール526と相互作用できるようにするプロシージャ1900を示す。ステップ1902で、コンシューマが、共有として指定されたリソースに関するリソースメタデータを提供するようにメディアサーバ302に要求する。コンシューマは、選択されたリソースコンテンツを最終的に受信するレンダリングデバイスに一体化されるか他の形で関連するコントロールポイントからこの要求を行うことができる。その代わりに、コンシューマは、リソースコンテンツを最終的に受信するレンダリングデバイスからリモートのコントロールポイントからこの要求を行うことができる。コンシューマは、具体的には、メディアサーバ302とのブラウズセッションを開始することができ、この場合に、メディアサーバ302は、おそらくは1つまたは複数のカテゴリ内の、共有として指定された使用可能なリソースのリスティングを示すリソースメタデータを提供することによって応答する。コンシューマは、その代わりに、メディアサーバ302との検索セッションを開始することができ、この場合に、メディアサーバ302は、コンシューマによって指定された1つまたは複数の検索パラメータに基づいてターゲットを指定された検索を実行し、検索結果の表示をコンシューマに返すことによって応答する。
ステップ1904で、メディアサーバ302が、共有リソースストア532をスキャンして、コンシューマの要件を満たす、共有リソースフォルダに関連するすべてのリソースメタデータアイテムを突き止める。すなわち、これには、ブラウズパラメータまたは検索パラメータ(例えば、所望のリソースタイプ、リソース名、リソースアーティストなどに関する)を満たす特定のリソースメタデータアイテムを選り抜くためにリソースメタデータ534を調べることが含まれる。このスキャンに、それ以外の点でブラウズ条件または検索条件と一致するリソースメタデータアイテムが指定された関連する配布判断基準を満足しないかどうかを判定するために、判断基準情報536を調べることも含めることができる。例えば、メディアサーバ302が、コンシューマの要件を満たす10個のリソースメタデータアイテム(10個の関連するリソースに対応する)を識別するが、このうちの3つだけが、デバイス関連判断基準によって、コンシューマが現在使用しているデバイス(例えば、コンシューマがそこからブラウズ要求または検索要求を送信したコントロールポイントに関連する)での表示を許可される場合がある。
ステップ1906で、メディアサーバ302が、上で説明した処理の結果を記述したXMLメッセージを生成する。このXMLメッセージは、メッセージに含まれなければならない情報の様々なフィールドおよびこれらのフィールドを提示するフォーマットを指定するXMLスキーマによって決定することができる。XML以外のフォーマットを使用してこの情報を伝えることができる。ステップ1908で、メディアサーバ302が、メディアサーバ302からコンシューマが使用しているコントロールポイントにこのメッセージを送信する。
ステップ1910で、コントロールポイントが、XMLメッセージを受信し、プレゼンテーションフォーマットに変換する。コンシューマは、メディアサーバ302によって識別された1つまたは複数の共有リソースに対応するリソースメタデータアイテムのリストを見ることを許可される。コンシューマは、選択されたレンダリングデバイスでのプレゼンテーションのために、リストから1つまたは複数のリソースを選択することができる。
c.パラメータ化されたURLの処理
図20に、以前のUPnPアクション(例えば、ブラウズアクションまたは検索アクション)に応答して供給されたURLに基づいて共有リソースコンテンツアイテムを取り出すプロセス2000を示す。具体的に言うと、ブラウズアクションまたは検索アクションに応答してメディアサーバ302によって送信されるリソースメタデータに、共有アイテムに関連するリソースコンテンツアイテムが位置する場所を記述した共有リソースのURL(uniform resource locator)が含まれる。URLは、上のセクションA.6で説明したパラメータ化された手法を使用して構造化することができる。図20に示されたプロセス2000は、これらのパラメータ化されたURLを処理する技法を説明するものである。
ステップ2002で、コンシューマが、コントロールポイント316などのコントロールポイントでメディアサーバ302からのリソースメタデータを受信する。このステップは、全般的に図19のステップ1910に対応する。共有リソースについて、メタデータに、通常は少なくとも1つのパラメータ化されたURLが含まれる。セクションA.6で説明したように、このURLのパラメータは、このURLによって識別されるリソースコンテンツアイテムのメディアフォーマットを指定する。例えば、1つのパラメータが、リソースコンテンツアイテムを提供できるフォーマットタイプ(イメージリソースのRGBまたはYUVフォーマットタイプなど)を記述することができる。もう1つのパラメータが、リソースコンテンツアイテムのフォーマット解像度(特定のイメージ解像度の高さおよび幅など)を記述することができる。これらのパラメータは、単に例示であり、追加のまたは異なるパラメータを供給することができる。どの場合でも、ブラウズ要求または検索要求に対する応答を定式化する時に、メディアサーバ302は、例えば、リソースコンテンツアイテムが現在メディアサーバ302にストアされているメディアフォーマットを反映することができる、これらのパラメータのデフォルト値を選択することができる。あるいは、メディアサーバ302は、メディアサーバ302が他の考慮事項に基づいて最善と判定するデフォルト値を選択することができる。
ステップ2004で、コントロールポイント316が、任意選択として、返されるパラメータ化されたURLの1つまたは複数のパラメータを変更する。例えば、URLは、元々はあるイメージ解像度を指定している場合がある。コントロールポイントは、イメージを提示するレンダリングデバイスによって提供されるより高いディスプレイ解像度に対処するためにこのパラメータの値を変更することができる。
ステップ2006で、コントロールポイント316が、レンダリングデバイス306など、リソースコンテンツアイテムを最終的にレンダリングするレンダリングデバイスに変更された(または未変更の)URLを転送する。
次に、ステップ2008で、レンダリングデバイス306が、変更されたURLをメディアサーバ302にサブミットすることができる。このステップは、変更された(または未変更の)URLを含むHTTP GETコマンドを介して実行することができる。
ステップ2010で、メディアサーバ302が、変更された(または未変更の)URLを含むHTTP GETコマンドを受信する。次に、メディアサーバ302が、リソースストア320からリソースコンテンツアイテムを取り出す。取り出されたリソースコンテンツアイテムが、URLで指定されたメディアフォーマットを有しない場合には、メディアサーバ302が、指定されたメディアフォーマットに変換することができる。
ステップ2012で、メディアサーバ302が、変更されたURLによって識別されたリソースコンテンツアイテムを、レンダリングデバイス306でのプレゼンテーションのためにこのレンダリングデバイス306に転送する。
ステップ2014で、メディアレンダリングデバイス306が、メディアサーバ302によって送信されたリソースコンテンツアイテムを受信し、提示する。レンダリングデバイス306は、任意選択として、レンダリングデバイス306でのプレゼンテーションの前に、リソースコンテンツアイテムを別のメディアフォーマットに変換することもできる。
やはり、図20に示されたプロシージャは、単に1つの可能なシナリオである。もう1つのシナリオでは、コントロールポイント316が、オリジナルURLをレンダリングデバイス306に転送することができ、レンダリングデバイス306が、そのURLを変更する(または変更しないと決定する)ことができる。その後、レンダリングデバイス306が、この変更された(または未変更の)URLを、上で説明した形でメディアサーバ302に送信する。
図20では、URLの1つまたは複数のパラメータに、対応するリソースコンテンツアイテムのメディアフォーマットを指定する情報が含まれると仮定した。しかし、他のURLに、メディアフォーマット情報以外のリソースコンテンツアイテムの他の特性(タイミング関連情報など)を指定するパラメータを含めることができる。
最後に、図20の基本的なフレームワークは、リソースメタデータにパラメータ化されたURLが含まれない場合(すなわち、リソースメタデータに、変数パラメータを有しないURLが含まれる場合)にも適用される。この場合に、図20に示されたURL変更動作は、実行されない。
D.例示的なコンピュータ環境
図21は、図3および5に記載のメディアサーバ302の機能性など、前のセクションで説明した処理機能のいずれかを実施するのに使用できるコンピュータ環境2100に関する情報を提供する。類似するコンピューティング機能性を使用して、コントロールポイント(例えば、コントロールポイント316、318)およびメディアレンダリングデバイスのいずれか(304〜312)などを実施することができる。
コンピューティング環境2100に、図1に関して述べた汎用コンピュータ2102およびディスプレイデバイス2104が含まれる。しかし、コンピューティング環境2100に、他の種類のコンピュータアーキテクチャおよびネットワークアーキテクチャを含めることができる。例えば、図示されていないが、コンピュータ環境2100に、ハンドヘルドデバイス、ラップトップッデバイス、セットトップボックス、プログラマブルコンシューマエレクトロニクス、メインフレームコンピュータ、ゲーム機などを含めることができる。さらに、図21に、議論を容易にするために一緒にグループ化されたコンピュータ環境2100の要素が示されている。しかし、コンピューティング環境2100は、分散処理構成を使用することができる。分散コンピューティング環境では、コンピューティングリソースを、環境全体にわたって物理的に分散させることができる。
例示的なコンピュータ2102に、1つまたは複数のプロセッサまたは処理ユニット2106、システムメモリ2108、およびバス2110が含まれる。バス2110は、様々なシステムコンポーネントを一緒に接続する。例えば、バス2110は、プロセッサ2106をシステムメモリ2108に接続する。バス2110は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、accelerated graphics port、およびプロセッサバスまたはローカルバスを含む、すべての種類のバス構造またはバス構造の組合せを使用して実施することができる。例えば、そのようなアーキテクチャに、ISA(Industry Standard Architecture)バス、マイクロチャネルアーキテクチャ(MCA)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとも称するPCI(Peripheral Component Interconnects)バスを含めることができる。
コンピュータ2102に、それぞれを取外し可能または取り外し不能とすることができる、様々なタイプの揮発性媒体および不揮発性媒体を含む様々なコンピュータ可読媒体も含めることができる。例えば、システムメモリ2108に、ランダムアクセスメモリ(RAM)2112などの揮発性メモリ、および読取専用メモリ(ROM)2114などの不揮発性メモリの形のコンピュータ可読媒体が含まれる。ROM 2114に、スタートアップ中などにコンピュータ2102内の要素の間での情報の転送を助ける基本ルーチンを含む入出力システム(BIOS)2116が含まれる。RAM 2112に、通常は、処理ユニット2106によって素早くアクセスできる形のデータおよび/またはプログラムモジュールが含まれる。
他の種類のコンピュータストレージ媒体に、取外し不能不揮発性磁気媒体から読み取り、これに書き込むハードディスクドライブ2118、取外し可能不揮発性磁気ディスク2122(例えば「フロッピー(登録商標)ディスク」)から読み取り、これに書き込む磁気ディスクドライブ2120、CD−ROM、DVD−ROM、または他の光媒体などの取外し可能不揮発性光ディスク2126から読み取り、かつ/またはこれに書き込む光ディスクドライブ2124が含まれる。ハードディスクドライブ2118、磁気ディスクドライブ2120、および光ディスクドライブ2124は、それぞれ、1つまたは複数のデータ媒体インターフェース2128によってシステムバス2110に接続される。その代わりに、ハードディスクドライブ2118、磁気ディスクドライブ2120、および光ディスクドライブ2124を、SCSIインターフェース(図示せず)または他の結合機構によってシステムバス2110に接続することができる。図示されていないが、コンピュータ2102に、磁気カセット、または他の磁気ストレージデバイス、フラッシュメモリカード、CD−ROM、デジタル多用途ディスク(DVD)、または他の光ストレージ、電気的消去可能プログラマブル読取専用メモリ(EEPROM)などの他のタイプのコンピュータ可読媒体を含めることができる。
一般に、上で識別されたコンピュータ可読媒体は、コンピュータ2102による使用のために、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。例えば、可読媒体に、オペレーティングシステム2130、1つまたは複数のアプリケーションプログラム2132(図3に示されたメディアサーバ302、コントロールポイント(316、318)、またはメディアレンダリングデバイス(304〜312)のいずれかを実装するロジックなど)、他のプログラムモジュール2134、およびプログラムデータ2136をストアすることができる。
コンピュータ環境2100に、様々な入力デバイスを含めることができる。例えば、コンピュータ環境2100に、コンピュータ2102にコマンドおよび情報を入力する、キーボード2138およびポインティングデバイス2140(例えば、「マウス」)が含まれる。コンピュータ環境2100に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、カード読み取りデバイス、デジタルカメラ、ビデオカメラなどの他の入力デバイス(図示せず)を含めることができる。入出力インターフェース2142が、入力デバイスを処理ユニット2106に結合する。より一般的には、入力デバイスを、パラレルポート、シリアルポート、ゲームポート、USB(universal serial bus)ポートなど、あらゆる種類のインターフェースおよびバス構造を介してコンピュータ2102に結合することができる。
コンピュータ環境2100に、ディスプレイデバイス2104も含まれる。ビデオアダプタ2144が、ディスプレイデバイス2104をバス2110に結合する。ディスプレイデバイス2104の他に、コンピュータ環境2100に、スピーカ(図示せず)、プリンタ(図示せず)など、他の出力周辺デバイスを含めることができる。
コンピュータ2102は、リモートコンピューティングデバイス2146などの1つまたは複数のリモートコンピュータへのロジック接続を使用してネットワーク化された環境で動作する。リモートコンピューティングデバイス2146に、汎用パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の一般的なネットワークノードなどを含むすべての種類のコンピュータ機器を含めることができる。リモートコンピューティングデバイス2146に、上でコンピュータ2102に関して述べた特徴のすべてまたはそのサブセットを含めることができる。
ローカルエリアネットワーク(LAN)2148、または広域ネットワーク(WAN)2150(インターネットなど)などの任意のタイプのネットワークを使用して、コンピュータ2102をリモートコンピューティングデバイス2146に結合することができる。LANネットワーキング環境で実施される時に、コンピュータ2102は、ネットワークインターフェースまたはネットワークアダプタ2152を介してローカルネットワーク2148に接続される。WANネットワーキング環境で実施される時に、コンピュータ2102は、モデム2154または他の接続戦略を介してWAN 2150に接続することができる。モデム2154は、コンピュータ2102の内部または外部に置くことができ、シリアル入出力インターフェース2156または他の適当な結合機構を介してバス2110に接続することができる。図示されていないが、コンピューティング環境2100は、リモートコンピューティングデバイス2146とコンピュータ2102を結合する無線通信機能性を提供することができる(例えば、変調されたラジオ信号、変調された赤外線信号などを介して)。
ネットワーク化された環境で、コンピュータ2102は、リモートメモリストレージ2158にストアされたプログラムモジュールから引き出すことができる。一般に、図21の別個のブロックとしてのプログラムモジュールの表示は、議論を容易にするためのものにすぎない。実際には、プログラムモジュールを、コンピューティング環境2100にまたがって分散させることができ、この分散は、モジュールが処理ユニット2106によって実行される時に動的な形で変更することができる。
物理的にどこにストアされても、1つまたは複数のメモリモジュール2108、2122、2126、2158などは、図3および5に記載のメディアサーバ302機能性をストアするために提供することができる。1つの例示的な実施形態で、メディアサーバ302によって提供される機能性の諸態様を、Microsoft(登録商標)Corporation社の.NET Frameworkまたは他の仮想マシン環境をターゲットとする管理されたコードで実施することができる。
本発明を、構造的特徴および/または方法論的動作に固有の言葉で説明したが、請求項で定義される本発明が、必ずしも、説明された特定の特徴または動作に制限されないことを理解されたい。そうではなく、特定の特徴および動作は、請求される発明を実施する例示的な形態として開示されたものである。
複数のデバイスおよびコントロールポイントを含む従来のUPnPアーキテクチャを示す図である。 図1に示されたUPnPアーキテクチャによって提供される従来の一連の機能を示す図である。 リソース共有を含む例示的なネットワークアーキテクチャを示す図である。 図3に示されたネットワークアーキテクチャの例示的な応用例を示す図である。 図3に示されたネットワークアーキテクチャで使用される例示的なメディアサーバを示す図である。 図5のメディアサーバによって使用される例示的なディレクトリを示す図である。 図4に示された応用例のコンテキストでの、許可されない個人がリソースへのアクセスを得られなくするのに使用される例示的な機構を示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図5のメディアサーバによって提示される、異なる例示的なユーザインターフェース(UI)ページを示す図である。 図3のネットワークアーキテクチャで、メディアデバイスをイネーブルし、ディスエーブルし、リソース情報を共有するのに使用される判断基準を定義し、リソース情報を共有する例示的なプロシージャを示す図である。 図3のネットワークアーキテクチャで、メディアデバイスをイネーブルし、ディスエーブルし、リソース情報を共有するのに使用される判断基準を定義し、リソース情報を共有する例示的なプロシージャを示す図である。 図3のネットワークアーキテクチャで、メディアデバイスをイネーブルし、ディスエーブルし、リソース情報を共有するのに使用される判断基準を定義し、リソース情報を共有する例示的なプロシージャを示す図である。 図3のネットワークアーキテクチャで、メディアデバイスをイネーブルし、ディスエーブルし、リソース情報を共有するのに使用される判断基準を定義し、リソース情報を共有する例示的なプロシージャを示す図である。 図3のネットワークアーキテクチャで、メディアデバイスをイネーブルし、ディスエーブルし、リソース情報を共有するのに使用される判断基準を定義し、リソース情報を共有する例示的なプロシージャを示す図である。 図5のメディアサーバを実施する例示的なコンピュータ環境を示す図である。

Claims (46)

  1. ネットワークを介してリソース情報を散布するサーバであって、
    第1ユーザコンテキストで動作し、前記ネットワークを介してリソース情報を共有するように構成されているメディアサービスモジュールと、
    第2ユーザコンテキストで動作し、前記ネットワークを介するリソース情報の共有で前記メディアサービスモジュールを支援するように構成されている補足モジュールと
    を含むことを特徴とするサーバ。
  2. 前記ネットワークは、ユニバーサルプラグアンドプレイ(UPnP)ネットワークとして構成されていることを特徴とする請求項1に記載のサーバ。
  3. 第3ユーザコンテキストで動作し、ユーザと相互作用するように構成されているコンフィギュレーションおよびコントロールパネルモジュールをさらに含むことを特徴とする請求項1に記載のサーバ。
  4. 前記第1ユーザコンテキストは、前記サーバによって提供されるリソースへのアクセスの関連する第1レベルを提供するクランプドダウンユーザコンテキストであり、
    前記第2ユーザコンテキストは、前記サーバによって提供されるリソースへのアクセスの関連する第2レベルを提供するローカルシステムユーザコンテキストであり、アクセスの前記第2レベルは、アクセスの前記第1レベルより高い
    ことを特徴とする請求項1に記載のサーバ。
  5. 第3ユーザコンテキストで動作し、ユーザと相互作用するように構成されているコンフィギュレーションおよびコントロールパネルモジュールをさらに含み、前記第3ユーザコンテキストは、前記サーバにログオンしたユーザに関連するアクセスのレベルを提供するログオンしたユーザのコンテキストであることを特徴とする請求項4に記載のサーバ。
  6. 前記クランプドダウンコンテキストは、ローカルサービスユーザコンテキストであることを特徴とする請求項4に記載のサーバ。
  7. 前記クランプドダウンコンテキストは、ネットワークサービスユーザコンテキストであることを特徴とする請求項4に記載のサーバ。
  8. 前記メディアサービスモジュールは、前記ネットワークを介して共有される共有リソースを識別するストアを含むことを特徴とする請求項1に記載のサーバ。
  9. 前記ストアは、複数のリポジトリを含むことを特徴とする請求項8に記載のサーバ。
  10. 前記複数のリポジトリは、前記サーバによってアクセス可能な別々のドライブに対応することを特徴とする請求項9に記載のサーバ。
  11. 前記ストアは、前記共有リソースに関連するリソースメタデータを含むことを特徴とする請求項8に記載のサーバ。
  12. 前記ストアは、リソースとは別々にそれに関連するリソースメタデータを提供し、その結果、前記リソースメタデータに簡単にアクセスできるようになっていることを特徴とする請求項11に記載のサーバ。
  13. 前記メディアサービスモジュールは、さらに、関連するリソースの変化の際に前記ストア内の前記リソースメタデータを更新するように構成されているロジックを含むことを特徴とする請求項12に記載のサーバ。
  14. 前記ストアは、前記ネットワークを介するリソース情報の前記配布を決定する少なくとも1つの配布判断基準を含むことを特徴とする請求項8に記載のサーバ。
  15. 前記ストアは、前記リソースメタデータおよび前記少なくとも1つの配布判断基準をストアするために2つの別々のストアを割り当てることを特徴とする請求項14に記載のサーバ。
  16. 前記ストアは、前記リソースメタデータおよび前記少なくとも1つの配布判断基準をストアするために単一のストアを割り当てることを特徴とする請求項14に記載のサーバ。
  17. 前記メディアサービスモジュールは、前記ユーザがメンバリソースをリソースフォルダ内で編成することを可能にするように構成されていることを特徴とする請求項1に記載のサーバ。
  18. 前記メディアサービスモジュールは、前記リソースフォルダ内の前記メンバリソースを少なくとも1つのリソースコンテナに再編成するように構成されていることを特徴とする請求項17に記載のサーバ。
  19. 前記メディアサービスモジュールは、前記ユーザが少なくとも1つの配布判断基準を前記フォルダリソースに関連付けることを可能にするように構成されていることを特徴とする請求項17に記載のサーバ。
  20. 前記リソース情報は、リソースメタデータを含み、前記メディアサービスモジュールは、ブラウズ要求または検索要求に応答して前記ネットワークを介して前記リソースメタデータをサービスするコンテンツディレクトリサービスモジュールを含むことを特徴とする請求項1に記載のサーバ。
  21. 前記コンテンツディレクトリサービスモジュールは、前記ブラウズ要求または前記検索要求に応答して、少なくとも1つの配布判断基準が満足されることを条件として、前記リソースメタデータを共有するように構成されていることを特徴とする請求項20に記載のサーバ。
  22. 前記リソース情報は、リソースコンテンツを含み、前記メディアサービスモジュールは、リソースコンテンツ要求に応答して前記ネットワークを介して前記リソースコンテンツをサービスするリソース転送モジュールを含むことを特徴とする請求項1に記載のサーバ。
  23. 前記リソース転送モジュールは、リソースコンテンツをサービスするHTTPサーバであり、前記リソースコンテンツ要求は、HTTP要求であることを特徴とする請求項22に記載のサーバ。
  24. 前記リソース転送モジュールは、リソースコンテンツ要求に応答して、少なくとも1つの配布判断基準が満足されることを条件として、前記リソースコンテンツを共有するように構成されていることを特徴とする請求項22に記載のサーバ。
  25. 前記メディアサービスモジュールは、共有リソース情報を受信することを許可される受信側エンティティの表示をストアするように構成され、前記メディアサービスモジュールは、前記ストアされた表示に従ってリソース情報を散布するように構成されていることを特徴とする請求項1に記載のサーバ。
  26. 前記メディアサービスモジュールは、
    リソースはリムーバブルメモリ媒体にストアされることと、
    前記リソースは前記サーバに関して前記ネットワーク上でリモートにあることと、
    前記リソースの共有を試みているユーザは前記リソースへのアクセスの許可を有しないことと、
    前記リソースは隠しファイルまたは隠しサブフォルダにストアされていることと、
    前記リソースは前記サーバが共有するように構成されているメディアタイプの所定のリストに従わないメディアタイプを有するファイルにストアされていることと
    という条件の少なくとも1つが真である場合に、前記リソースに対応するリソース情報の前記共有を禁止するように構成されていることを特徴とする請求項1に記載のサーバ。
  27. 前記メディアサービスモジュールは、前記コンフィギュレーションおよびコントロールモジュールが、共有されるリソースを確立し、それに関連する配布判断基準を定義し、前記ネットワークに追加された新しいデバイスを許可することを可能にするように構成されているオブジェクトを含むことを特徴とする請求項3に記載のサーバ。
  28. 前記補足モジュールは、
    前記メディアサービスモジュールが少なくとも1つのリソースにアクセスすることを可能にするために前記少なくとも1つのリソースに関連するアクセス許可属性を変更することと、
    ユーザが前記サーバにログオンした時またはユーザが前にログオンされたセッションに接続した時に前記メディアサービスモジュールに知らせることと
    のうちの少なくとも1つを実行するように構成されているロジックを含むことを特徴とする請求項1に記載のサーバ。
  29. 前記補足モジュールは、
    前記メディアサービスモジュールが少なくとも1つのリソースにアクセスすることを可能にするために前記少なくとも1つのモジュールに関連するアクセス許可属性を変更することと、
    少なくとも1つの所定のイベントの発生時に現在アクティブなログオンしたユーザのユーザコンテキストで前記コンフィギュレーションおよびコントロールパネルモジュールを始動することと、
    ユーザが前記サーバにログオンした時またはユーザが前にログオンされたセッションに接続した時に前記メディアサービスモジュールに知らせることと
    のうちの少なくとも1つを実行するように構成されたロジックを含むことを特徴とする請求項3に記載のサーバ。
  30. 前記所定のイベントは、
    新しいデバイスが前記ネットワークに加わることの検出と、
    前記ネットワークに関連する警告状態の検出と、
    前記サーバを実施するのに使用されるコンピュータシステムでの警告状態の検出と
    のうちの少なくとも1つに対応することを特徴とする請求項29に記載のサーバ。
  31. 前記コンフィギュレーションおよびコントロールパネルモジュールは、
    前記ネットワークへのデバイスの追加および/または除去を処理することと、
    前記ネットワークを介して共有されるリソース情報を有するリソースおよび前記リソース情報の前記散布を決定する配布判断基準を管理することと、
    前記サーバを起動し、かつ/または停止することと、
    リソース情報を共有するために前記サーバによって提供されるリソース共有機能性起動し、かつ/または停止することと
    のうちの少なくとも1つを実行するように構成されているロジックを含むことを特徴とする請求項3に記載のサーバ。
  32. 前記ネットワークへのデバイスの追加および/または除去を処理するように構成されている前記ロジックは、
    前記ネットワークへのデバイスの前記追加および/または除去の通知を前記メディアサービスモジュールから受け取り、
    前記デバイスの前記追加および/または除去についてユーザに知らせ、
    前記ユーザが前記デバイスの前記追加および/または除去を許可または拒否できるようにする
    ように構成されているロジックを含むことを特徴とする請求項31に記載のサーバ。
  33. 前記サーバは、前記サーバにログオンする複数のめいめいのユーザに関連する前記コンフィギュレーションおよびコントロールパネルモジュールの複数のインスタンスを提供するように構成されているロジックを含むことを特徴とする請求項3に記載のサーバ。
  34. 前記サーバは、個々のユーザセッションのどれもが前記コンフィギュレーションおよびコントロールパネルモジュールの複数のインスタンスを生成していないことを保証するように構成されているロジックを含むことを特徴とする請求項33に記載のサーバ。
  35. 前記サーバは、さらに、前記メディアサービスモジュールと相互作用するために前記コンフィギュレーションおよびコントロールパネルモジュールによって使用されるコールバックオブジェクトを含むことを特徴とする請求項3に記載のサーバ。
  36. 前記補足モジュールは、前記コンフィギュレーションおよびコントロールパネルモジュールを起動し、前記コンフィギュレーションおよびコントロールパネルモジュールは、前記コールバックオブジェクトに関する初期化関数を呼び出すように構成されていることを特徴とする請求項35に記載のサーバ。
  37. 前記ユーザは、前記コンフィギュレーションおよびコントロールパネルモジュールを起動し、前記コンフィギュレーションおよびコントロールパネルモジュールは、前記コールバックオブジェクトに関する初期化関数を呼び出すように構成されていることを特徴とする請求項35に記載のサーバ。
  38. 前記サーバは、
    アプリケーションが最初に前記メディアサーバモジュールと相互作用することを試みる時に前記アプリケーションにIDを割り当て、
    前記IDをストアし、
    前記アプリケーションが別の機会に前記メディアサーバモジュールと相互作用することを試みる時に、前記アプリケーションからIDを受信し、前記受信されたIDを前記ストアされたIDと比較し、
    前記受信されたIDが前記ストアされたIDと一致しない場合に、前記アプリケーションが前記メディアサービスモジュールと通信することを禁止する
    ように構成されているロジックを含むことを特徴とする請求項1に記載のサーバ。
  39. 複数のユーザは、前記サーバをホスティングするコンピュータシステムに同時にログオンすることができ、前記サーバは、前記ユーザに関連するめいめいのクライアントトークンから抽出されるターミナルサービスセッションIDに基づいて前記ユーザを区別するように構成されていることを特徴とする請求項38に記載のサーバ。
  40. 請求項1に記載の前記メディアサービスモジュールおよび前記補足モジュールのそれぞれを実施する機械可読命令を含むことを特徴とするコンピュータ可読媒体。
  41. 請求項3に記載の前記メディアサービスモジュール、前記補足モジュール、ならびに前記コンフィギュレーションおよびコントロールパネルモジュールのそれぞれを実施する機械可読命令を含むことを特徴とするコンピュータ可読媒体。
  42. ならず者アプリケーションがネットワークを介してリソース情報を配布するのに使用されるサーバへのアクセスを得ることを防ぐ方法であって、
    アプリケーションがメディアサーバによって提供されるメディアサービスモジュールとの相互作用をはじめて試みる時にアプリケーションにIDを割り当てることと、
    前記IDをストアすることと、
    前記アプリケーションが別の機会に前記メディアサービスモジュールとの相互作用を試みる時に、前記アプリケーションからIDを受信し、前記受信されたIDを前記ストアされたIDと比較することと、
    前記受信されたIDが前記ストアされたIDと一致しない場合に、前記アプリケーションが前記メディアサービスモジュールと通信することを禁止することと
    を含むことを特徴とする方法。
  43. 前記ネットワークは、ユニバーサルプラグアンドプレイ(UPnP)ネットワークとして構成されていることを特徴とする請求項42に記載の方法。
  44. 前記IDの前記割当は、
    前記アプリケーションによって、前記メディアサービスモジュールにコールバックオブジェクトを供給することと、
    前記メディアサービスモジュールによって、前記アプリケーションに前記IDを提供するのに前記コールバックオブジェクトを使用することと
    を含むことを特徴とする請求項42に記載の方法。
  45. 複数のユーザは、前記サーバに同時にログオンすることができ、前記ユーザに関連するめいめいのクライアントトークンから抽出されたターミナルサービスセッションIDに基づいて前記ユーザを区別することをさらに含むことを特徴とする請求項42に記載の方法。
  46. 請求項42に記載の前記割当、前記ストア、前記受信、および前記禁止のそれぞれを実施する機械可読命令を含むことを特徴とするコンピュータ可読媒体。
JP2006545319A 2003-12-19 2004-07-23 ネットワークリソース情報ルーティングのためのサーバアーキテクチャ Expired - Fee Related JP4869076B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/742,570 US7555543B2 (en) 2003-12-19 2003-12-19 Server architecture for network resource information routing
US10/742,570 2003-12-19
PCT/US2004/023978 WO2005067429A2 (en) 2003-12-19 2004-07-23 Server architecture for network resource information routing

Publications (2)

Publication Number Publication Date
JP2007515015A true JP2007515015A (ja) 2007-06-07
JP4869076B2 JP4869076B2 (ja) 2012-02-01

Family

ID=34678490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006545319A Expired - Fee Related JP4869076B2 (ja) 2003-12-19 2004-07-23 ネットワークリソース情報ルーティングのためのサーバアーキテクチャ

Country Status (6)

Country Link
US (1) US7555543B2 (ja)
EP (2) EP1692623B1 (ja)
JP (1) JP4869076B2 (ja)
KR (1) KR101109232B1 (ja)
CN (1) CN1842782B (ja)
WO (1) WO2005067429A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540426A (ja) * 2006-06-08 2009-11-19 サムスン エレクトロニクス カンパニー リミテッド 汎用プラグアンドプレイ・デバイスに遠隔アクセスする方法及びシステム

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002039A1 (en) 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
US7660845B2 (en) * 2003-08-01 2010-02-09 Sentillion, Inc. Methods and apparatus for verifying context participants in a context management system in a networked environment
US20060095628A1 (en) * 2003-12-19 2006-05-04 Microsoft Corporation External-Network Data Content Exposure to Network-Connected Devices
US7555543B2 (en) 2003-12-19 2009-06-30 Microsoft Corporation Server architecture for network resource information routing
US20050138137A1 (en) * 2003-12-19 2005-06-23 Microsoft Corporation Using parameterized URLs for retrieving resource content items
US7647385B2 (en) * 2003-12-19 2010-01-12 Microsoft Corporation Techniques for limiting network access
US7668939B2 (en) 2003-12-19 2010-02-23 Microsoft Corporation Routing of resource information in a network
FR2864398A1 (fr) * 2003-12-23 2005-06-24 France Telecom Terminal de telecommunication a deux espaces d'execution
GB2412754B (en) * 2004-03-30 2007-07-11 Hewlett Packard Development Co Provision of resource allocation information
US8028323B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Method and system for employing a first device to direct a networked audio device to obtain a media item
US8028038B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Obtaining a playlist based on user profile matching
KR100631708B1 (ko) * 2004-06-16 2006-10-09 엘지전자 주식회사 푸쉬 투 토크 서비스를 제공하는 단말기, 푸쉬 투 토크 서비스를 이용한 친구 소개 시스템 및 그 방법
US7797719B2 (en) * 2004-07-22 2010-09-14 Akoo International, Inc. Apparatus and method for interactive digital media content requests
US20060149761A1 (en) * 2004-12-09 2006-07-06 Lg Electronics Inc. Structure of objects stored in a media server and improving accessibility to the structure
US20060281477A1 (en) * 2005-06-08 2006-12-14 Radial Labs, Inc., A Delaware Corporation Dynamic detection and configuration of networked audio/video components
CA2869268A1 (en) * 2005-06-24 2007-01-04 Aylus Networks, Inc. System and method of device discovery and control in ip multimedia subsystem networks
US20060291487A1 (en) * 2005-06-24 2006-12-28 Aylus Networks, Inc. IMS networks with AVS sessions with multiple access networks
US20060291412A1 (en) 2005-06-24 2006-12-28 Naqvi Shamim A Associated device discovery in IMS networks
US20070002367A1 (en) * 2005-06-29 2007-01-04 Eric Yuan Methods and apparatuses for selectively controlling a remote device
US20070027808A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Strategies for queuing events for subsequent processing
JP2009512008A (ja) * 2005-10-05 2009-03-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ユーザに向けてレンダリングすることが可能なデータ項目を扱う装置
US20070115253A1 (en) * 2005-11-23 2007-05-24 Daniel Sandblom Workstation enabler apparatus and related methods and devices
US9467322B2 (en) * 2005-12-27 2016-10-11 Rovi Solutions Corporation Methods and apparatus for integrating media across a wide area network
KR100777426B1 (ko) * 2006-03-29 2007-11-22 (주)닥터소프트 어플리케이션 공유 서비스 시스템과 어플리케이션 공유서비스를 위한 어플리케이션 제공자측 클라이언트 처리모듈및 어플리케이션 공유 서비스를 위한 어플리케이션이용자측 클라이언트 처리모듈
US8117246B2 (en) 2006-04-17 2012-02-14 Microsoft Corporation Registering, transfering, and acting on event metadata
US20070256022A1 (en) * 2006-05-01 2007-11-01 David Knight Methods And Apparatuses For Storing Information Associated With A Target To A User
US7844661B2 (en) * 2006-06-15 2010-11-30 Microsoft Corporation Composition of local media playback with remotely generated user interface
CN101480051B (zh) * 2006-06-27 2011-06-29 汤姆森特许公司 对用于性能感知的对等内容点播服务的交互式回放设备的支持
US8793303B2 (en) * 2006-06-29 2014-07-29 Microsoft Corporation Composition of local user interface with remotely generated user interface and media
KR100823273B1 (ko) * 2006-06-30 2008-04-21 삼성전자주식회사 UPnP 컨텐트 디렉토리 서비스를 동기화하는 방법 및장치
US20080018649A1 (en) * 2006-07-18 2008-01-24 Zheng Yuan Methods and apparatuses for utilizing an application on a remote device
KR100801004B1 (ko) * 2006-08-25 2008-02-05 삼성전자주식회사 임베디드 aⅴ 컨텐츠의 프로토콜 매칭 장치 및 방법
US7904575B2 (en) * 2006-08-25 2011-03-08 Samsung Electronics Co., Ltd. Apparatus and method for matching protocols of embedded audio/video contents
KR100823737B1 (ko) * 2006-09-29 2008-04-21 한국전자통신연구원 서로 다른 QoS를 제공하는 네트워크들을 위한 브리지장치
US9436931B2 (en) * 2006-09-29 2016-09-06 Intel Corporation Remote prompting infrastructure
US7797412B2 (en) * 2006-10-25 2010-09-14 Oracle America Inc. Method and system for managing server configuration data
KR100754227B1 (ko) * 2006-10-31 2007-09-03 삼성전자주식회사 콘텐츠 동기화시에 콘텐츠 디렉토리 서비스를 제공하는UPnP 디바이스들 간에 리소스의 중복 저장을 방지하기위한 방법 및 장치
WO2008064356A1 (en) * 2006-11-22 2008-05-29 Metis Enterprise Technologies Llc Real-time multicast peer-to-peer video streaming platform
US20100107208A1 (en) * 2007-02-02 2010-04-29 Sony Corporation Information processing apparatus, information processing method, and program
US8069433B2 (en) * 2007-04-18 2011-11-29 Microsoft Corporation Multi-format centralized distribution of localized resources for multiple products
US8606941B2 (en) * 2007-05-02 2013-12-10 Murata Machinery, Ltd. Relay server and relay communication system
CN101304392B (zh) * 2007-05-10 2010-12-01 中国传媒大学 一种用于媒体资产管理的并行应用服务网关、系统及方法
KR100881723B1 (ko) * 2007-09-21 2009-02-06 한국전자통신연구원 미디어 실감 재현을 위한 디바이스 연동/제어 정보 생성장치 및 방법
US8977737B2 (en) * 2007-12-24 2015-03-10 Alcatel Lucent Detecting legacy bridges in an audio video bridging network
US20090172106A1 (en) * 2007-12-27 2009-07-02 Motorola, Inc. Method and Apparatus to Facilitate Provision and Use of a Media Source Bundle
WO2009093457A2 (en) * 2008-01-24 2009-07-30 Panasonic Corporation Multimedia data transmitting apparatus and multimedia data management method
US8356323B2 (en) * 2008-04-15 2013-01-15 Cisco Technology, Inc. UPnP/DLNA compliant MR-DVR
US7948887B2 (en) * 2008-06-24 2011-05-24 Microsoft Corporation Network bandwidth measurement
JP2010049526A (ja) * 2008-08-22 2010-03-04 Sony Ericsson Mobile Communications Ab 携帯電子機器、コンテンツ再生装置、コンテンツ取得方法、コンテンツの所在通知方法、コンテンツ取得プログラム、コンテンツ所在通知方法、コンテンツ利用システム
TW201031208A (en) * 2009-02-06 2010-08-16 Wistron Corp Media management device, system and method thereof
US8374172B2 (en) * 2009-04-03 2013-02-12 At&T Intellectual Property I, L.P. Method and apparatus for managing communication sessions
US8495730B2 (en) * 2009-10-12 2013-07-23 International Business Machines Corporation Dynamically constructed capability for enforcing object access order
KR101531532B1 (ko) * 2010-02-11 2015-06-25 삼성전자주식회사 원격 접속에 기초해 홈 네트워크 디바이스의 서비스를 이용하는 방법 및 장치
US10200325B2 (en) * 2010-04-30 2019-02-05 Shazzle Llc System and method of delivering confidential electronic files
US20120016991A1 (en) * 2010-07-15 2012-01-19 Lmr Inventions, Llc System and method for managing network resource requests
US8886773B2 (en) 2010-08-14 2014-11-11 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
US8910259B2 (en) 2010-08-14 2014-12-09 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
US8555332B2 (en) 2010-08-20 2013-10-08 At&T Intellectual Property I, L.P. System for establishing communications with a mobile device server
US8438285B2 (en) 2010-09-15 2013-05-07 At&T Intellectual Property I, L.P. System for managing resources accessible to a mobile device server
US8504449B2 (en) 2010-10-01 2013-08-06 At&T Intellectual Property I, L.P. Apparatus and method for managing software applications of a mobile device server
US8478905B2 (en) 2010-10-01 2013-07-02 At&T Intellectual Property I, Lp System for synchronizing to a mobile device server
US8443420B2 (en) 2010-10-01 2013-05-14 At&T Intellectual Property I, L.P. System for communicating with a mobile device server
US8989055B2 (en) 2011-07-17 2015-03-24 At&T Intellectual Property I, L.P. Processing messages with a device server operating in a telephone
US8516039B2 (en) 2010-10-01 2013-08-20 At&T Intellectual Property I, L.P. Apparatus and method for managing mobile device servers
EP2445239B1 (en) * 2010-10-22 2018-10-31 BlackBerry Limited Method and system for identifying an entity in a mobile telecommunications system
US9392316B2 (en) 2010-10-28 2016-07-12 At&T Intellectual Property I, L.P. Messaging abstraction in a mobile device server
US9066123B2 (en) 2010-11-30 2015-06-23 At&T Intellectual Property I, L.P. System for monetizing resources accessible to a mobile device server
US8863196B2 (en) * 2010-11-30 2014-10-14 Sony Corporation Enhanced information on mobile device for viewed program and control of internet TV device using mobile device
CN103262473A (zh) * 2010-12-13 2013-08-21 摩托罗拉移动有限责任公司 在通用即插即用环境中在远程访问客户端之间共享媒体
US9064278B2 (en) 2010-12-30 2015-06-23 Futurewei Technologies, Inc. System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment
US20120210377A1 (en) * 2011-02-11 2012-08-16 Sony Network Entertainment International Llc Social networking feedback via second display selections
US9124920B2 (en) 2011-06-29 2015-09-01 The Nielson Company (Us), Llc Methods, apparatus, and articles of manufacture to identify media presentation devices
US8594617B2 (en) 2011-06-30 2013-11-26 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
US9049465B2 (en) * 2011-09-02 2015-06-02 Electronics And Telecommunications Research Institute Media sharing apparatus and method
US20130125181A1 (en) * 2011-11-15 2013-05-16 Liquidus Marketing, Inc. Dynamic Video Platform Technology
CN102594915B (zh) * 2012-03-19 2014-12-03 烽火通信科技股份有限公司 基于浏览器的媒体播放系统及方法
EP2645287A1 (en) * 2012-03-26 2013-10-02 Uniqoteq Oy Method, computer program and apparatus for switching between user profiles
KR101894396B1 (ko) * 2012-04-03 2018-10-05 삼성전자주식회사 복수의 스토리지를 이용한 콘텐트 공유 시스템 및 방법
US9098709B2 (en) * 2012-11-13 2015-08-04 International Business Machines Corporation Protection of user data in hosted application environments
US9462332B2 (en) 2012-12-05 2016-10-04 At&T Intellectual Property I, L.P. Method and apparatus for controlling a media device
US20140223275A1 (en) * 2013-02-07 2014-08-07 Infopower Corporation Method of File Sharing for Portable Mobile Devices
CN103139311A (zh) * 2013-03-07 2013-06-05 珠海金山办公软件有限公司 一种文件共享系统、装置及方法
US9301173B2 (en) 2013-03-15 2016-03-29 The Nielsen Company (Us), Llc Methods and apparatus to credit internet usage
US10356579B2 (en) 2013-03-15 2019-07-16 The Nielsen Company (Us), Llc Methods and apparatus to credit usage of mobile devices
US9173000B2 (en) 2013-04-12 2015-10-27 Sony Corporation Automatic discovery and mirroring of server-client remote user interface (RUI) session on a companion device and synchronously controlling both sessions using RUI on companion device
US10243899B2 (en) 2013-05-30 2019-03-26 Dropbox, Inc. Content-item relationship messaging system
KR20180114252A (ko) 2013-08-30 2018-10-17 콘비다 와이어리스, 엘엘씨 디지털 홈에서의 스마트 객체 식별
US20150074230A1 (en) * 2013-09-10 2015-03-12 Infopower Corporation High Efficiency Wireless File Transmission Method
US9692633B2 (en) * 2013-11-15 2017-06-27 Sap Se Role-based resource navigation
US9608904B2 (en) 2013-12-20 2017-03-28 Sandvine Incorporated Ulc System and method for analyzing devices accessing
CN104158854B (zh) * 2014-07-23 2015-11-11 小米科技有限责任公司 资源共享方法及装置
US10050912B2 (en) 2014-10-27 2018-08-14 At&T Intellectual Property I, L.P. Subscription-based media push service
US9762688B2 (en) 2014-10-31 2017-09-12 The Nielsen Company (Us), Llc Methods and apparatus to improve usage crediting in mobile devices
KR102302457B1 (ko) * 2014-11-28 2021-09-16 한국전자통신연구원 다중대역 무선랜 엑세스 포인트간 인접 엑세스 포인트 디스커버리 방법 및 시스템
US11423420B2 (en) 2015-02-06 2022-08-23 The Nielsen Company (Us), Llc Methods and apparatus to credit media presentations for online media distributions
US9736259B2 (en) * 2015-06-30 2017-08-15 Iheartmedia Management Services, Inc. Platform-as-a-service with proxy-controlled request routing
CN105243047A (zh) * 2015-09-09 2016-01-13 浪潮(北京)电子信息产业有限公司 一种服务器架构
US9762563B2 (en) * 2015-10-14 2017-09-12 FullArmor Corporation Resource access system and method
JP6759650B2 (ja) * 2016-03-24 2020-09-23 富士ゼロックス株式会社 情報処理装置及びプログラム
CN107018168B (zh) 2016-09-19 2020-07-24 阿里巴巴集团控股有限公司 互联网资源调度方法及装置、网络红包调度方法
US10776887B2 (en) * 2017-02-07 2020-09-15 Enseo, Inc. System and method for making reservations in a hospitality establishment
JP6869146B2 (ja) * 2017-08-24 2021-05-12 シャープ株式会社 コンテンツ配信装置、コンテンツ配信システム及びプログラム
US11681781B2 (en) * 2018-02-21 2023-06-20 Comcast Cable Communications, Llc Systems and methods for content security
US11882169B1 (en) * 2021-06-04 2024-01-23 PicsArt, Inc. Adaptive media streaming
CN114828004B (zh) * 2022-04-28 2024-01-26 广州通则康威科技股份有限公司 小程序自动获取无线网络设备ip的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535569A (ja) * 1991-07-12 1993-02-12 Toshiba Corp Fax受信フアイル処理方式
JPH08335191A (ja) * 1995-06-06 1996-12-17 Canon Inc Os管理資源アクセス装置
JP2002163182A (ja) * 2000-11-29 2002-06-07 Hitachi Ltd 携帯型端末及びそれを用いた情報配信システム、並びに情報配信方法
JP2002328905A (ja) * 2001-04-27 2002-11-15 Nippon Telegr & Teleph Corp <Ntt> クライアント認証方法及び認証装置並びにプログラム及び記録媒体

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829368B2 (en) 2000-01-26 2004-12-07 Digimarc Corporation Establishing and interacting with on-line media collections using identifiers in media signals
US5966135A (en) 1996-10-30 1999-10-12 Autodesk, Inc. Vector-based geographic data
KR100528156B1 (ko) 1997-03-12 2005-11-15 노마딕스, 인코포레이티드 노매딕 변환기 또는 라우터
US6192415B1 (en) 1997-06-19 2001-02-20 International Business Machines Corporation Web server with ability to process URL requests for non-markup language objects and perform actions on the objects using executable instructions contained in the URL
JP4596495B2 (ja) 1997-07-18 2010-12-08 ソニー株式会社 制御装置、制御方法、電気機器システム、電気機器システムの制御方法、および、記録媒体
US6925483B1 (en) 1998-06-25 2005-08-02 Cisco Technology, Inc. System for characterizing information from an information producer
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6910068B2 (en) 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
US6430624B1 (en) 1999-10-21 2002-08-06 Air2Web, Inc. Intelligent harvesting and navigation system and method
US6564257B1 (en) 1999-12-09 2003-05-13 International Business Machines Corporation Repository protection by URL expiration
US20040220926A1 (en) * 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US20030097338A1 (en) 2000-02-03 2003-05-22 Piotrowski Tony E. Method and system for purchasing content related material
DE60143797D1 (de) 2000-03-24 2011-02-17 Eliza Corp Spracherkennung
US6839748B1 (en) 2000-04-21 2005-01-04 Sun Microsystems, Inc. Synchronous task scheduler for corba gateway
US6643650B1 (en) * 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US7194689B2 (en) 2000-08-22 2007-03-20 Microsoft Corporation Generic user control point tool for universal plug and play (UPnP) devices
US20020077988A1 (en) 2000-12-19 2002-06-20 Sasaki Gary D. Distributing digital content
US7200575B2 (en) 2001-02-27 2007-04-03 Hewlett-Packard Development Company, L.P. Managing access to digital content
US7124173B2 (en) 2001-04-30 2006-10-17 Moriarty Kathleen M Method and apparatus for intercepting performance metric packets for improved security and intrusion detection
CN1276342C (zh) * 2001-05-11 2006-09-20 范平志 基于动态口令的身份鉴别方法
US20020194604A1 (en) 2001-06-19 2002-12-19 Sanchez Elizabeth C. Interactive television virtual shopping cart
JP3695369B2 (ja) 2001-08-07 2005-09-14 ソニー株式会社 情報配信システム及び情報配信方法、情報供給装置及び情報供給方法
US7337402B2 (en) 2001-11-09 2008-02-26 Microsoft Corporation Tunable information presentation appliance using an extensible markup language
US7287053B2 (en) 2002-01-15 2007-10-23 International Business Machines Corporation Ad hoc data sharing in virtual team rooms
US7690012B2 (en) * 2002-02-28 2010-03-30 Scientific-Atlanta, Inc. Positive parental control
JP2003256260A (ja) 2002-03-01 2003-09-10 Sony Corp データ共有システム,共有センタサーバ,広告スタッフ端末装置,コンピュータプログラム,記憶媒体,および共有センタサーバのデータ共有方法
JP3823929B2 (ja) 2002-05-17 2006-09-20 ソニー株式会社 情報処理装置、情報処理方法、およびコンテンツ配信装置、コンテンツ配信方法、並びにコンピュータ・プログラム
US20030233471A1 (en) 2002-06-17 2003-12-18 Julian Mitchell Establishing a call in a packet-based communications network
US7149755B2 (en) 2002-07-29 2006-12-12 Hewlett-Packard Development Company, Lp. Presenting a collection of media objects
CN1404262A (zh) * 2002-09-12 2003-03-19 周永 家庭网络控制系统
CN1322432C (zh) 2002-10-25 2007-06-20 国际商业机器公司 用于媒体内容数据文件网络发布的安全系统及方法
US7526545B2 (en) 2003-01-17 2009-04-28 Relevant Media Llc Content distribution system
US20040158823A1 (en) 2003-02-12 2004-08-12 Ylian Saint-Hilaire Method, apparatus and system for generating customized UPnP applications
US7308489B2 (en) 2003-05-29 2007-12-11 Intel Corporation Visibility of media contents of UPnP media servers and initiating rendering via file system user interface
US7831693B2 (en) 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
KR100608590B1 (ko) 2003-09-16 2006-08-03 삼성전자주식회사 서비스 품질에 따른 서비스 지원이 가능한 네트워크 장치,이를 이용한 네트워크 시스템 및 그 방법
US20050198493A1 (en) 2003-09-17 2005-09-08 Bartas John A. Distribution methods and apparatus for promoting distributed digital content on a local network
US20050125564A1 (en) 2003-12-04 2005-06-09 Matsushita Electric Industrial Co., Ltd. Profiling service for the automatic service discovery and control middleware frameworks
US7647385B2 (en) 2003-12-19 2010-01-12 Microsoft Corporation Techniques for limiting network access
US7555543B2 (en) 2003-12-19 2009-06-30 Microsoft Corporation Server architecture for network resource information routing
US20050138137A1 (en) 2003-12-19 2005-06-23 Microsoft Corporation Using parameterized URLs for retrieving resource content items
US7668939B2 (en) 2003-12-19 2010-02-23 Microsoft Corporation Routing of resource information in a network
US20050160458A1 (en) 2004-01-21 2005-07-21 United Video Properties, Inc. Interactive television system with custom video-on-demand menus based on personal profiles
US7933290B2 (en) 2004-03-30 2011-04-26 Nokia Corporation System and method for comprehensive service translation
KR100619018B1 (ko) 2004-05-12 2006-08-31 삼성전자주식회사 네트워크를 통하여 a/v 컨텐츠를 공유하는 방법, 싱크디바이스, 소오스 디바이스 및 메시지 구조
US20060168225A1 (en) 2004-10-29 2006-07-27 John Gunning Network and a distributed electronic commerce system using the network
US7412534B2 (en) 2005-09-30 2008-08-12 Yahoo! Inc. Subscription control panel
US20070107016A1 (en) 2005-11-04 2007-05-10 Angel Albert J Interactive Multiple Channel User Enrollment, Purchase Confirmation Transactional System with Fulfillment Response Feature for Video On Demand Cable Systems
JP5016610B2 (ja) 2005-12-21 2012-09-05 ディジマーク コーポレイション ルール駆動パンidメタデータルーティングシステム及びネットワーク
US7706740B2 (en) 2006-01-06 2010-04-27 Qualcomm Incorporated Apparatus and methods of selective collection and selective presentation of content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535569A (ja) * 1991-07-12 1993-02-12 Toshiba Corp Fax受信フアイル処理方式
JPH08335191A (ja) * 1995-06-06 1996-12-17 Canon Inc Os管理資源アクセス装置
JP2002163182A (ja) * 2000-11-29 2002-06-07 Hitachi Ltd 携帯型端末及びそれを用いた情報配信システム、並びに情報配信方法
JP2002328905A (ja) * 2001-04-27 2002-11-15 Nippon Telegr & Teleph Corp <Ntt> クライアント認証方法及び認証装置並びにプログラム及び記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540426A (ja) * 2006-06-08 2009-11-19 サムスン エレクトロニクス カンパニー リミテッド 汎用プラグアンドプレイ・デバイスに遠隔アクセスする方法及びシステム

Also Published As

Publication number Publication date
EP2154869A2 (en) 2010-02-17
KR20060112190A (ko) 2006-10-31
CN1842782B (zh) 2011-04-13
WO2005067429A2 (en) 2005-07-28
US7555543B2 (en) 2009-06-30
US20050138192A1 (en) 2005-06-23
KR101109232B1 (ko) 2012-10-04
JP4869076B2 (ja) 2012-02-01
EP2154869A3 (en) 2010-05-05
EP1692623A4 (en) 2008-10-22
WO2005067429A3 (en) 2006-04-13
EP1692623B1 (en) 2018-08-22
EP1692623A2 (en) 2006-08-23
CN1842782A (zh) 2006-10-04

Similar Documents

Publication Publication Date Title
JP4869076B2 (ja) ネットワークリソース情報ルーティングのためのサーバアーキテクチャ
US7668939B2 (en) Routing of resource information in a network
US7647385B2 (en) Techniques for limiting network access
US20050138137A1 (en) Using parameterized URLs for retrieving resource content items
EP2769314B1 (en) Network connected media gateway for communication networks
US7349953B2 (en) Intent based processing
RU2448362C2 (ru) Отображение обнаруженных элементов универсального режима &#34;подключай и работай&#34; на местоположение smb
CN102263782B (zh) 信息处理装置、信息处理方法和信息处理系统
US20060168000A1 (en) Method of sharing files between user stations in a network
US8037519B2 (en) Apparatus and method for managing access to one or more network resources
KR20070008568A (ko) 서버 장치, 클라이언트 장치 및 네트워크 시스템
US20060179138A1 (en) User-specific interaction with content sotred on upnp network
KR20070117502A (ko) 네트워크 내의 ce 장치로의 접근 제어에 관한 방법 및시스템
US20090240785A1 (en) Information Processing Unit, Information Playback Unit, Information Processing Method, Information Playback Method, Information Processing System and Program
JP2009086806A (ja) 中継プログラム、中継装置、中継方法
JP2004187305A (ja) 共通のグループラベルを用いたピア・ツー・ピアネットワークにおけるノード間の通信のための方法
JP2008098708A (ja) コンテンツ配信サーバ、コンテンツ提供サーバ、コンテンツ配信システム、コンテンツ配信方法、コンテンツ提供方法、および、制御プログラム
JP2009507298A (ja) 遠隔のネットワークノードとのデータ通信
US20090077234A1 (en) Server and server program
US20070162980A1 (en) SYSTEM AND METHOD FOR PROVIDING CONTENT SECURITY IN UPnP SYSTEMS
WO2012155604A1 (zh) 一种控制数字移动网络联盟内容的方法及装置
Cui et al. Research on UPnP Protocol Security of Gateway Device
KR20060109613A (ko) 홈네트워크를 통한 파일 서버 관리 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111115

R150 Certificate of patent or registration of utility model

Ref document number: 4869076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees