JP2007515127A - ネットワークでのリソース情報のルーティング - Google Patents

ネットワークでのリソース情報のルーティング Download PDF

Info

Publication number
JP2007515127A
JP2007515127A JP2006545318A JP2006545318A JP2007515127A JP 2007515127 A JP2007515127 A JP 2007515127A JP 2006545318 A JP2006545318 A JP 2006545318A JP 2006545318 A JP2006545318 A JP 2006545318A JP 2007515127 A JP2007515127 A JP 2007515127A
Authority
JP
Japan
Prior art keywords
resource
server
media server
distribution
network
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.)
Pending
Application number
JP2006545318A
Other languages
English (en)
Other versions
JP2007515127A5 (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 JP2007515127A publication Critical patent/JP2007515127A/ja
Publication of JP2007515127A5 publication Critical patent/JP2007515127A5/ja
Pending 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
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4828End-user interface for program selection for searching program descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • 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/281Exchanging configuration information on appliance services in a home automation network indicating a format for calling an appliance service function in a home automation network
    • 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/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • 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
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/2849Audio/video appliances

Landscapes

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

Abstract

ユニバーサルプラグアンドプレイ(UPnP)ネットワーク内のメディアサーバに、リソースに関するリソース情報のレンダリングデバイスへの配布を決定するリソース共有サービスが含まれる。1つの事例で、リソース共有サービスは、判断基準を調べて、識別されたネットワークデバイスがリソース情報の受信を許可されるかどうかを判定する。もう1つの事例で、リソース共有サービスは、別の判断基準を調べて、リソース情報の転送を行うためにメディアサーバに関連する指定された個人がその転送に同意しなければならないかどうかを判定する。リソース情報に、リソースに関する高水準情報を記述したリソースメタデータならびにリソースコンテンツを含めることができる。メディアサーバに、メディアサーバユーザが共有リソースおよび配布判断基準を指定できるようにする様々なユーザインターフェースプレゼンテーションが含まれる。

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デバイスを含む既存のネットワークは、よく制御され、保護され、責任を負う形での上で説明したリソース情報の転送を実行しない。例えば、家庭環境に、様々な年齢の様々な関心を持つ個人のグループが含まれる場合がある。一部のメディアコンテンツが、家族のあるメンバに適当であるが、他のメンバに不適当である場合がある。例えば、親は、成人向けの内容を含まない音楽、ビデオ、および写真を子供にルーティングすることを望む可能性がある。それと同時に、親は、子供に適当なリソース情報の種類と相互作用することを望まない可能性がある。UPnPデバイスを含む既存のネットワークは、家庭内の異なる個人に異なるリソース情報を選択的にルーティングする機構を提供しない。例えば、父親が、広範囲のリソース情報を集合として提供する様々なDVDをビデオジュークボックスにロードしている場合があり、UPnPデバイスを含む既存のネットワークには、適当さおよび受信側の関心に応じて家族の異なるメンバにこのジュークボックス内のリソースを選択的に散布する備えが欠けている。
UPnPデバイスを含むネットワークの他の応用例に、類似する欠陥が存在する。例えば、会社のコンテキストで、会社の所有者が、様々なリソース情報を含む情報ウェアハウスを有する場合がある。そのリソース情報の一部が、プライベートな内容または機密の内容を含むので、または単に多数の従業員が興味を持たない内容を含むので、会社全体への一般的な散布に適さない場合がある。UPnPデバイスを含む従来のネットワークには、管理者がリソース情報を適当な受信側に選択的にルーティングすることを可能にする機構が含まれない。
さらに、どの環境でも、UPnPアーキテクチャに従って作られたデバイスを含むネットワークに加入していない個人が、許可されない形でそのネットワークを「盗聴」できる危険性が存在する。例えば、無線リンクを使用して(全体的にまたは部分的に)ネットワークを実施することができる。これらのネットワークでは、許可されない個人が、意図的にまたは意図的でなく、UPnPアーキテクチャによって提供されるリソースへのアクセスを得る危険性が存在する。同様の危険性が、他の種類のネットワークに存在する。さらに、UPnPデバイスを含むネットワークに関して提供される機能性は、広域IPネットワーク機能性との連続性を保証するように設計されている。これは、多数の利益をもたらすが、広域ネットワーク内のユーザが、意図的にまたは意図的でなく、ホームネットワーク環境を盗聴する形を見つける危険性も導入する。UPnPアーキテクチャは、情報のルーティングを制御しまたは阻止する適切な機構を提供しないので、この種の許可されないユーザが、メディアおよび情報リソースのネットワークのコレクション全体へのアクセスを得るか、ネットワークのUPnPデバイスを制御する可能性がある。
http://upnp.org/
したがって、ネットワーク環境でリソース情報の散布を制御する技法の例示的な必要があり、より具体的な実施形態では、UPnPデバイスを含むネットワークでのリソース情報のルーティングを制御する技法の必要がある。
1つの例示的な実施形態により、ネットワークを介してリソース情報を散布する方法を説明する。この方法は、(a)ソースエンティティで、リソース情報に関するコンシューマ要求を受け取ることと、(b)前記要求を満たし、少なくとも1つの配布判断基準を満足する、前記ネットワーク上で共有可能として指定されたリソースがあるかどうかを判定するために前記ソースエンティティで前記要求を処理することと、(c)前記処理の結果を示す応答を生成することと、(d)前記応答をコンシューマに転送することとを含む。
もう1つの例示的な実施形態により、ソースエンティティを使用するネットワークを介するリソース情報の散布に関する条件を定義する方法を説明する。この方法は、ユーザが、(a)前記ネットワーク上で共有される少なくとも1つのリソースと、(b)前記ネットワークを介する前記少なくとも1つのリソースの少なくとも一部に関する前記リソース情報の配布を決定する少なくとも1つの配布判断基準とを選択することを可能にする、ユーザインターフェースプレゼンテーションを提供することを含む。この方法は、前記ユーザインターフェースプレゼンテーションを介して、前記少なくとも1つのリソースおよび前記少なくとも1つの配布判断基準の前記ユーザの選択を受け取ることをも含む。
追加の例示的な実施形態を、下で説明する。
この開示および図面の全体を通じて、同一の符号が、同一の構成要素および特徴を参照するのに使用される。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 2007515127
ここで、「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 2007515127
この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 2007515127
いくつかのパラメータに名前/値対構文を使用し、他のパラメータに位置構文(名前を明示的に識別しない)を使用する、ハイブリッドフォーマットを設けることも可能である。
どのフォーマットが使用される場合でも、メディアサーバ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 2007515127
次に、レンダリングデバイス306は、この変更されたURLをメディアサーバ302にサブミットすることができる(コントロールポイントから受信した後に)。メディアサーバ302は、所望のリソースコンテンツアイテムを取り出し、レンダリングデバイス306に送信する前に、1280×1024の指定された解像度に変換することによって応答する。
メディアレンダリングデバイス306がRGBイメージだけを表示できる、もう1つの例を検討されたい。この場合に、コントロールポイントは、次のように、URL(元々はYUVフォーマットタイプを指定していた)をRGBフォーマットタイプに変更することができる。
Figure 2007515127
やはり、メディアサーバ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 (109)

  1. ネットワークを介してリソース情報を散布する方法であって、
    ソースエンティティで、リソース情報に関するコンシューマ要求を受け取ることと、
    前記要求を満たし、少なくとも1つの配布判断基準を満足する、前記ネットワーク上で共有可能として指定されたリソースがあるかどうかを判定するために前記ソースエンティティで前記要求を処理することと、
    前記処理の結果を示す応答を生成することと、
    前記応答をコンシューマに転送することと
    を含むことを特徴とする方法。
  2. 前記ネットワークは、ユニバーサルプラグアンドプレイ(UPnP)ネットワークとして構成されていることを特徴とする請求項1に記載の方法。
  3. 前記リソース情報は、リソースメタデータであり、前記少なくとも1つの配布判断基準は、前記リソースメタデータの散布を決定し、前記応答は、前記コンシューマの要求を満足するリソースメタデータを含むことを特徴とする請求項1に記載の方法。
  4. 前記リソース情報は、リソースコンテンツであり、前記少なくとも1つの配布判断基準は、前記リソースコンテンツの散布を決定し、前記応答は、前記コンシューマの要求を満足するリソースコンテンツを含むことを特徴とする請求項1に記載の方法。
  5. 前記少なくとも1つの配布判断基準は、少なくとも1つのリソースは前記要求を満足する場合に、前記少なくとも1つのリソースに関するリソース情報を受信することを許可される少なくとも1つの受信側エンティティを指定することを特徴とする請求項1に記載の方法。
  6. 前記少なくとも1つの受信側エンティティは、レンダリングデバイスまたはコントロールポイントであることを特徴とする請求項5に記載の方法。
  7. 前記少なくとも1つの配布判断基準は、識別された個人は前記応答の前記転送に対する条件としてその同意を提供することを要求されるかどうかを指定することを特徴とする請求項1に記載の方法。
  8. 前記識別された個人は、前記少なくとも1つの配布判断基準に関連するリソースを前記ネットワーク上で共有可能として指定した個人に対応することを特徴とする請求項7に記載の方法。
  9. 前記少なくとも1つの配布判断基準は、前記識別された個人は前記ソースエンティティに現在ログオンしている場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項7に記載の方法。
  10. 前記識別された個人は、前記識別された個人のログオンセッションはアクティブ状態を有する時に前記ソースエンティティにログオンしていると考えられることを特徴とする請求項9に記載の方法。
  11. 前記識別された個人は、前記識別された個人は前記ソースエンティティを実施するコンソールに直接にログオンしている時に前記ソースエンティティにログオンしていると考えられることを特徴とする請求項9に記載の方法。
  12. 前記少なくとも1つの配布判断基準は、前記識別された個人はクエリに応答して前記転送を明示的に許可する場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項7に記載の方法。
  13. 前記ソースエンティティは、別々にまたは追加的に呼び出すことができる配布判断基準の複数のセットをストアすることを特徴とする請求項1に記載の方法。
  14. 前記ソースエンティティは、ユーザが前記少なくとも1つの配布判断基準を変更することを可能にすることを特徴とする請求項1に記載の方法。
  15. 前記少なくとも1つの配布判断基準を変更することを可能にされる前記ユーザは、前記配布判断基準に関連する少なくとも1つのリソースを前記ネットワーク上で共有可能として指定したユーザであることを特徴とする請求項14に記載の方法。
  16. 前記ソースエンティティは、ユーザが前記少なくとも1つの配布判断基準を変更することを防ぐことを特徴とする請求項1に記載の方法。
  17. 前記ネットワークへの新しい受信側エンティティの追加を自動的に検出することと、
    前記新しい受信側エンティティの存在についてユーザに通知することと、
    前記新しい受信側エンティティへのリソース情報の散布を決定する少なくとも1つの他の配布判断基準を前記ユーザが追加できるようにすることと
    をさらに含むことを特徴とする請求項1に記載の方法。
  18. 前記処理は、リソースは前記要求で指定されたブラウズ条件または検索条件を満足するかどうかを判定することを含むことを特徴とする請求項1に記載の方法。
  19. 前記応答は、前記ブラウズ条件または前記検索条件を満足する少なくとも1つのリソースに関するリソースメタデータを識別することを特徴とする請求項18に記載の方法。
  20. 前記処理は、リソースは前記要求で指定されたリソースロケータを満足するかどうかを判定することを含むことを特徴とする請求項1に記載の方法。
  21. 前記リソースロケータは、URL(uniform resource locator)であり、前記要求は、ハイパーテキスト転送プロトコル(HTTP)取り出し要求であることを特徴とする請求項20に記載の方法。
  22. 前記応答は、前記要求を満足する少なくとも1つのリソースからとられたリソースコンテンツを識別することを特徴とする請求項20に記載の方法。
  23. 第1要求を伴う第1動作において、
    前記処理は、リソースは前記第1要求で指定されたブラウズ条件または検索条件を満足するかどうかを判定することを含み、
    前記応答は、前記ブラウズ条件または前記検索条件を満足する少なくとも1つのリソースに関するリソースメタデータを識別し、前記リソースメタデータは、前記少なくとも1つのリソースを突き止めることができる場所を記述するリソースロケータを含み、
    第2要求を伴う第2動作において、
    前記処理は、リソースは前記第2要求で指定された前記リソースロケータを満足するかどうかを判定することを含み、
    前記応答は、前記第2要求を満足する少なくとも1つのリソースからとられたリソースコンテンツを識別する
    ことを特徴とする請求項1に記載の方法。
  24. 請求項1に記載の前記受信、前記処理、前記生成、および前記転送のそれぞれを実施する機械可読命令を含むことを特徴とするコンピュータ可読媒体。
  25. ソースエンティティを使用するネットワークを介するリソース情報の散布に関する条件を定義する方法であって、
    ユーザが、
    前記ネットワーク上で共有される少なくとも1つのリソースと、
    前記ネットワークを介する前記少なくとも1つのリソースの少なくとも一部に関する前記リソース情報の配布を決定する少なくとも1つの配布判断基準と
    を選択することを可能にする、ユーザインターフェースプレゼンテーションを提供することと、
    前記ユーザインターフェースプレゼンテーションを介して、前記少なくとも1つのリソースおよび前記少なくとも1つの配布判断基準の前記ユーザの選択を受け取ることと
    を含むことを特徴とする方法。
  26. 前記ネットワークは、ユニバーサルプラグアンドプレイ(UPnP)ネットワークとして構成されていることを特徴とする請求項25に記載の方法。
  27. 前記リソース情報は、リソースメタデータであり、前記少なくとも1つの配布判断基準は、前記リソースメタデータの散布を決定することを特徴とする請求項25に記載の方法。
  28. 前記リソース情報は、リソースコンテンツであり、前記少なくとも1つの配布判断基準は、前記リソースコンテンツの散布を決定することを特徴とする請求項25に記載の方法。
  29. 前記少なくとも1つの配布判断基準は、前記少なくとも1つのリソースに関するリソース情報を受信することを許可される少なくとも1つの受信側エンティティを指定することを特徴とする請求項25に記載の方法。
  30. 前記少なくとも1つの受信側エンティティは、レンダリングデバイスまたはコントロールポイントであることを特徴とする請求項29に記載の方法。
  31. 前記少なくとも1つの配布判断基準は、識別された個人はリソース情報の前記散布に対する条件としてその同意を提供することを要求されるかどうかを指定することを特徴とする請求項25に記載の方法。
  32. 前記識別された個人は、前記少なくとも1つの配布判断基準に関連するリソースを前記ネットワーク上で共有可能として指定した個人に対応することを特徴とする請求項31に記載の方法。
  33. 前記少なくとも1つの配布判断基準は、前記識別された個人は前記ソースエンティティに現在ログオンしている場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項31に記載の方法。
  34. 前記識別された個人は、前記識別された個人のログオンセッションはアクティブ状態を有する時に前記ソースエンティティにログオンしていると考えられることを特徴とする請求項33に記載の方法。
  35. 前記識別された個人は、前記識別された個人は前記ソースエンティティを実施するコンソールに直接にログオンしている時に前記ソースエンティティにログオンしていると考えられることを特徴とする請求項33に記載の方法。
  36. 前記少なくとも1つの配布判断基準は、前記識別された個人はクエリに応答して前記散布を明示的に許可する場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項31に記載の方法。
  37. 前記ソースエンティティは、別々にまたは追加的に呼び出すことができる配布判断基準の複数のセットをストアすることを特徴とする請求項25に記載の方法。
  38. 前記ソースエンティティは、前記ユーザが前記少なくとも1つの配布判断基準を変更することを可能にすることを特徴とする請求項25に記載の方法。
  39. 前記少なくとも1つの配布判断基準を変更することを可能にされる前記ユーザは、前記配布判断基準に関連する少なくとも1つのリソースを前記ネットワーク上で共有可能として指定したユーザであることを特徴とする請求項38に記載の方法。
  40. 前記ソースエンティティは、前記ユーザが前記少なくとも1つの配布判断基準を変更することを防ぐことを特徴とする請求項25に記載の方法。
  41. 前記ソースエンティティは、リソースをリソースのコレクションに編成することを特徴とする請求項25に記載の方法。
  42. リソースの前記コレクションの1つは、リソースフォルダであり、前記少なくとも1つの配布判断基準は、前記リソースフォルダの少なくとも1つのメンバリソースに適用されることを特徴とする請求項41に記載の方法。
  43. リソースの前記コレクションの1つは、そのリソースを内部的に管理するために前記ソースエンティティによって使用されるリソースコンテナであり、前記少なくとも1つの配布判断基準は、前記リソースコンテナの少なくとも1つのメンバリソースに適用されることを特徴とする請求項41に記載の方法。
  44. 前記コレクション内のメンバリソースは、そのめいめいの親リソースの共有可能状況を継承することを特徴とする請求項41に記載の方法。
  45. 前記コレクション内のメンバリソースは、そのめいめいの親リソースに関連する前記配布判断基準を継承することを特徴とする請求項41に記載の方法。
  46. リソースの前記コレクションの1つの共有可能状況を除去し、これによって、リソースの前記コレクションの前記1つを共有解除として指定することをさらに含むことを特徴とする請求項41に記載の方法。
  47. 前記ソースエンティティは、
    リソースはリムーバブルメモリ媒体にストアされることと、
    前記リソースは前記ソースエンティティに関して前記ネットワーク上でリモートにあることと、
    前記リソースの共有を試みているユーザは前記リソースへのアクセスの許可を有しないことと、
    前記リソースは隠しファイルまたは隠しサブフォルダにストアされていることと、
    前記リソースは前記ソースエンティティが共有するように構成されているメディアタイプの所定のリストに従わないメディアタイプを有するファイルにストアされていることと
    という条件の少なくとも1つが真である場合に、前記リソースに対応するリソース情報の前記共有を禁止することを特徴とする請求項25に記載の方法。
  48. エンティティからの要求に応答して前記少なくとも1つの配布判断基準に基づいて前記リソース情報の前記散布を制御することをさらに含むことを特徴とする請求項25に記載の方法。
  49. 請求項25に記載の前記受け取りおよび前記提供のそれぞれを実施する機械可読命令を含むことを特徴とするコンピュータ可読媒体。
  50. ネットワークを介してリソース情報を散布するサーバであって
    前記ネットワークを介して共有できるリソースの表示をストアするように構成されている共有リソースストアと、
    ロジックと
    を含み、前記ロジックは、
    リソース情報に関するコンシューマ要求を受け取り、
    前記要求を満たし、少なくとも1つの配布判断基準を満足する指定されたリソースが前記共有リソースストアにあるかどうかを判定するために前記要求を処理し、
    前記処理の結果を示す応答を生成し、
    前記応答をコンシューマに転送する
    ように構成されている
    ことを特徴とするサーバ。
  51. 前記ネットワークは、ユニバーサルプラグアンドプレイ(UPnP)ネットワークとして構成されていることを特徴とする請求項50に記載のサーバ。
  52. 前記共有リソースストアは、前記リソースに関連するリソースメタデータをストアすることによって前記ネットワークを介して共有できるリソースの前記表示をストアするように構成されていることを特徴とする請求項50に記載のサーバ。
  53. 前記共有リソースストアは、複数のリポジトリを含むことを特徴とする請求項52に記載のサーバ。
  54. 前記複数のリポジトリは、前記サーバによって維持される別々のドライブに対応することを特徴とする請求項53に記載のサーバ。
  55. 前記共有リソースストアは、リソースとは別々にそれに関連するリソースメタデータを提供し、その結果、前記リソースメタデータに簡単にアクセスできるようになっていることを特徴とする請求項52に記載のサーバ。
  56. 前記共有リソースストアは、前記少なくとも1つの配布判断基準もストアすることを特徴とする請求項52に記載のサーバ。
  57. 前記共有リソースストアは、前記リソースメタデータおよび前記少なくとも1つの配布判断基準のストアのために2つの別々のストアを割り当てることを特徴とする請求項56に記載のサーバ。
  58. 前記共有リソースストアは、前記リソースメタデータおよび前記少なくとも1つの配布判断基準のストアのために単一のストアを割り当てることを特徴とする請求項56に記載のサーバ。
  59. 前記リソース情報は、リソースメタデータであり、前記少なくとも1つの配布判断基準は、前記リソースメタデータの散布を決定し、前記応答は、前記コンシューマの要求を満足するリソースメタデータを含むことを特徴とする請求項51に記載のサーバ。
  60. 前記リソース情報は、リソースコンテンツであり、前記少なくとも1つの配布判断基準は、前記リソースコンテンツの散布を決定し、前記応答は、前記コンシューマの要求を満足するリソースコンテンツを含むことを特徴とする請求項50に記載のサーバ。
  61. 前記少なくとも1つの配布判断基準は、少なくとも1つのリソースは前記要求を満足する場合に、前記少なくとも1つのリソースに関するリソース情報を受信することを許可される少なくとも1つの受信側エンティティを指定することを特徴とする請求項50に記載のサーバ。
  62. 前記少なくとも1つの受信側エンティティは、レンダリングデバイスまたはコントロールポイントであることを特徴とする請求項61に記載のサーバ。
  63. 前記少なくとも1つの配布判断基準は、識別された個人は前記応答の前記転送に対する条件としてその同意を提供することを要求されるかどうかを指定することを特徴とする請求項50に記載のサーバ。
  64. 前記識別された個人は、前記少なくとも1つの配布判断基準に関連するリソースを前記ネットワーク上で共有可能として指定した個人に対応することを特徴とする請求項63に記載のサーバ。
  65. 前記少なくとも1つの配布判断基準は、前記識別された個人は前記サーバに現在ログオンしている場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項63に記載のサーバ。
  66. 前記識別された個人は、前記識別された個人のログオンセッションはアクティブ状態を有する時に前記サーバにログオンしていると考えられることを特徴とする請求項65に記載のサーバ。
  67. 前記識別された個人は、前記識別された個人は前記サーバを実施するコンソールに直接にログオンしている時に前記サーバにログオンしていると考えられることを特徴とする請求項65に記載のサーバ。
  68. 前記少なくとも1つの配布判断基準は、前記識別された個人はクエリに応答して前記転送を明示的に許可する場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項63に記載のサーバ。
  69. 前記共有リソースストアは、別々にまたは追加的に呼び出すことができる配布判断基準の複数のセットをストアするように構成されていることを特徴とする請求項50に記載のサーバ。
  70. 前記サーバは、ユーザが前記少なくとも1つの配布判断基準を変更することを可能にするように構成されていることを特徴とする請求項50に記載のサーバ。
  71. 前記少なくとも1つの配布判断基準を変更することを可能にされる前記ユーザは、前記配布判断基準に関連する少なくとも1つのリソースを前記ネットワーク上で共有可能として指定したユーザであることを特徴とする請求項70に記載のサーバ。
  72. 前記サーバは、前記ユーザが前記少なくとも1つの配布判断基準を変更することを防ぐように構成されていることを特徴とする請求項50に記載のサーバ。
  73. 前記ネットワークへの新しい受信側エンティティの追加を自動的に検出し、
    前記新しい受信側エンティティの存在についてユーザに通知し、
    前記新しい受信側エンティティへのリソース情報の散布を決定する少なくとも1つの他の配布判断基準を前記ユーザが追加できるようにする
    ように構成されているロジックをさらに含むことを特徴とする請求項50に記載のサーバ。
  74. 処理する前記ロジックは、リソースは前記要求で指定されたブラウズ条件または検索条件を満足するかどうかを判定するように構成されていることを特徴とする請求項50に記載のサーバ。
  75. 前記応答は、前記ブラウズ条件または前記検索条件を満足する少なくとも1つのリソースに関するリソースメタデータを識別することを特徴とする請求項74に記載のサーバ。
  76. 処理する前記ロジックは、さらに、リソースは前記要求で指定されたリソースロケータを満足するかどうかを判定するように構成されていることを特徴とする請求項50に記載のサーバ。
  77. 前記リソースロケータは、URL(uniform resource locator)であり、前記要求は、ハイパーテキスト転送プロトコル(HTTP)取り出し要求であることを特徴とする請求項76に記載のサーバ。
  78. 前記応答は、前記要求を満足する少なくとも1つのリソースからとられたリソースコンテンツを識別することを特徴とする請求項76に記載のサーバ。
  79. ネットワークを介するリソースに関するリソース情報の散布に関連する条件を定義するサーバであって、
    前記ネットワークを介して共有できるリソースの表示をストアするように構成されている共有リソースストアと、
    ロジックと
    を含み、前記ロジックは、
    ユーザが
    前記ネットワークを介して共有される少なくとも1つのリソースと、
    前記ネットワークを介する前記少なくとも1つのリソースの少なくとも一部に関する前記リソース情報の配布を決定する少なくとも1つの配布判断基準と
    を選択できるようにするユーザインターフェースプレゼンテーションを提供し、
    前記ユーザインターフェースプレゼンテーションを介して前記少なくとも1つのリソースおよび前記少なくとも1つの配布判断基準の前記ユーザの選択を受け取る
    ように構成されている
    ことを特徴とするサーバ。
  80. 前記ネットワークは、ユニバーサルプラグアンドプレイ(UPnP)ネットワークとして構成されていることを特徴とする請求項79に記載のサーバ。
  81. 前記共有リソースストアは、前記リソースに関連するリソースメタデータをストアすることによって前記ネットワークを介して共有できるリソースの前記表示をストアするように構成されていることを特徴とする請求項79に記載のサーバ。
  82. 前記共有リソースストアは、複数のリポジトリを含むことを特徴とする請求項81に記載のサーバ。
  83. 前記複数のリポジトリは、前記サーバによって維持される別々のドライブに対応することを特徴とする請求項82に記載のサーバ。
  84. 前記共有リソースストアは、リソースとは別々にそれに関連する前記リソースメタデータを提供し、その結果、前記リソースメタデータに簡単にアクセスできるようになっていることを特徴とする請求項81に記載のサーバ。
  85. 前記共有リソースストアは、前記少なくとも1つの配布判断基準もストアすることを特徴とする請求項81に記載のサーバ。
  86. 前記共有リソースストアは、前記リソースメタデータおよび前記少なくとも1つの配布判断基準のストアのために2つの別々のストアを割り当てることを特徴とする請求項85に記載のサーバ。
  87. 前記共有リソースストアは、前記リソースメタデータおよび前記少なくとも1つの配布判断基準のストアのために単一のストアを割り当てることを特徴とする請求項85に記載のサーバ。
  88. 前記リソース情報は、リソースメタデータであり、前記少なくとも1つの配布判断基準は、前記リソースメタデータの散布を決定することを特徴とする請求項79に記載のサーバ。
  89. 前記リソース情報は、リソースコンテンツであり、前記少なくとも1つの配布判断基準は、前記リソースコンテンツの散布を決定することを特徴とする請求項79に記載のサーバ。
  90. 前記少なくとも1つの配布判断基準は、少なくとも1つのリソースは前記要求を満足する場合に、前記少なくとも1つのリソースに関するリソース情報を受信することを許可される前記少なくとも1つの受信側エンティティを指定することを特徴とする請求項79に記載のサーバ。
  91. 前記少なくとも1つの受信側エンティティは、レンダリングデバイスまたはコントロールポイントであることを特徴とする請求項90に記載のサーバ。
  92. 前記少なくとも1つの配布判断基準は、識別された個人はリソース情報の前記散布に対する条件としてその同意を提供することを要求されるかどうかを指定することを特徴とする請求項79に記載のサーバ。
  93. 前記識別された個人は、前記少なくとも1つの配布判断基準に関連するリソースを前記ネットワーク上で共有可能として指定した個人に対応することを特徴とする請求項92に記載のサーバ。
  94. 前記少なくとも1つの配布判断基準は、前記識別された個人は前記サーバに現在ログオンしている場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項92に記載のサーバ。
  95. 前記識別された個人は、前記識別された個人のログオンセッションはアクティブ状態を有する時に前記サーバにログオンしていると考えられることを特徴とする請求項94に記載のサーバ。
  96. 前記識別された個人は、前記識別された個人は前記サーバを実施するコンソールに直接にログオンしている時に前記サーバにログオンしていると考えられることを特徴とする請求項94に記載のサーバ。
  97. 前記少なくとも1つの配布判断基準は、前記識別された個人はクエリに応答して前記散布を明示的に許可する場合に前記識別された個人はその同意を与えたと考えられることを指定することを特徴とする請求項92に記載のサーバ。
  98. 前記共有リソースストアは、別々にまたは追加的に呼び出すことができる配布判断基準の複数のセットをストアするように構成されていることを特徴とする請求項79に記載のサーバ。
  99. 前記サーバは、前記ユーザが前記少なくとも1つの配布判断基準を変更することを可能にするように構成されていることを特徴とする請求項79に記載のサーバ。
  100. 前記少なくとも1つの配布判断基準を変更することを可能にされる前記ユーザは、前記配布判断基準に関連する少なくとも1つのリソースを前記ネットワーク上で共有可能として指定したユーザであることを特徴とする請求項99に記載のサーバ。
  101. 前記サーバは、前記ユーザが前記少なくとも1つの配布判断基準を変更することを防ぐように構成されていることを特徴とする請求項79に記載のサーバ。
  102. 前記共有リソースストアは、リソースを、共有可能として指定されたリソースのコレクションに編成することを特徴とする請求項79に記載のサーバ。
  103. リソースの前記コレクションの1つは、リソースフォルダであり、前記少なくとも1つの配布判断基準は、前記リソースフォルダの少なくとも1つのメンバリソースに適用されることを特徴とする請求項102に記載のサーバ。
  104. リソースの前記コレクションの1つは、そのリソースを内部的に管理するために前記サーバによって使用されるリソースコンテナであり、前記少なくとも1つの配布判断基準は、前記リソースコンテナの少なくとも1つのメンバリソースに適用されることを特徴とする請求項102に記載のサーバ。
  105. 前記コレクション内のメンバリソースは、そのめいめいの親リソースの共有可能状況を継承することを特徴とする請求項102に記載のサーバ。
  106. 前記コレクション内のメンバリソースは、そのめいめいの親リソースに関連する前記配布判断基準を継承することを特徴とする請求項102に記載のサーバ。
  107. リソースの前記コレクションの1つの共有可能状況を除去し、これによって、リソースの前記コレクションの前記1つを共有解除として指定することをさらに含むことを特徴とする請求項102に記載のサーバ。
  108. 前記サーバは、
    リソースはリムーバブルメモリ媒体にストアされることと、
    前記リソースは前記サーバに関して前記ネットワーク上でリモートにあることと、
    前記リソースの共有を試みているユーザは前記リソースへのアクセスの許可を有しないことと、
    前記リソースは隠しファイルまたは隠しサブフォルダにストアされていることと、
    前記リソースは前記サーバが共有するように構成されているメディアタイプの所定のリストに従わないメディアタイプを有するファイルにストアされていることと
    という条件の少なくとも1つが真である場合に、前記リソースに対応するリソース情報の前記共有を禁止するように構成されていることを特徴とする請求項79に記載のサーバ。
  109. エンティティからの要求に応答して前記少なくとも1つの配布判断基準に基づいて前記リソース情報の前記散布を制御するように構成されているロジックをさらに含むことを特徴とする請求項79に記載のサーバ。
JP2006545318A 2003-12-19 2004-07-23 ネットワークでのリソース情報のルーティング Pending JP2007515127A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/742,588 US7668939B2 (en) 2003-12-19 2003-12-19 Routing of resource information in a network
PCT/US2004/023957 WO2005067428A2 (en) 2003-12-19 2004-07-23 Routing of resource information in a network

Publications (2)

Publication Number Publication Date
JP2007515127A true JP2007515127A (ja) 2007-06-07
JP2007515127A5 JP2007515127A5 (ja) 2007-09-06

Family

ID=34678494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006545318A Pending JP2007515127A (ja) 2003-12-19 2004-07-23 ネットワークでのリソース情報のルーティング

Country Status (6)

Country Link
US (1) US7668939B2 (ja)
EP (1) EP1695226B1 (ja)
JP (1) JP2007515127A (ja)
KR (1) KR20060112192A (ja)
CN (1) CN1906604B (ja)
WO (1) WO2005067428A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2961210A1 (en) 2014-06-26 2015-12-30 Ricoh Company, Ltd. Authentication system, authentication method, authentication apparatus, and recording medium

Families Citing this family (275)

* 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
US6317881B1 (en) * 1998-11-04 2001-11-13 Intel Corporation Method and apparatus for collecting and providing viewer feedback to a broadcast
US9032097B2 (en) * 2001-04-26 2015-05-12 Nokia Corporation Data communication with remote network node
KR100493904B1 (ko) * 2003-09-18 2005-06-10 삼성전자주식회사 다수의 기기를 지원하는 drm 라이센스 방법
KR101044937B1 (ko) * 2003-12-01 2011-06-28 삼성전자주식회사 홈 네트워크 시스템 및 그 관리 방법
US20060095628A1 (en) * 2003-12-19 2006-05-04 Microsoft Corporation External-Network Data Content Exposure to Network-Connected Devices
US7668939B2 (en) 2003-12-19 2010-02-23 Microsoft Corporation Routing of resource information in a network
US7647385B2 (en) * 2003-12-19 2010-01-12 Microsoft Corporation Techniques for limiting network access
US20050138137A1 (en) * 2003-12-19 2005-06-23 Microsoft Corporation Using parameterized URLs for retrieving resource content items
US7555543B2 (en) * 2003-12-19 2009-06-30 Microsoft Corporation Server architecture for network resource information routing
JP2005209056A (ja) * 2004-01-26 2005-08-04 Ricoh Co Ltd ネットワーク装置及びネットワーク装置の情報提供方法
US20050198099A1 (en) * 2004-02-24 2005-09-08 Covelight Systems, Inc. Methods, systems and computer program products for monitoring protocol responses for a server application
US7295833B2 (en) 2004-04-09 2007-11-13 At&T Mobility Ii Llc Spam control for sharing content on mobile devices
US7849135B2 (en) * 2004-04-09 2010-12-07 At&T Mobility Ii Llc Sharing content on mobile devices
US8028038B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Obtaining a playlist based on user profile matching
US9826046B2 (en) * 2004-05-05 2017-11-21 Black Hills Media, Llc Device discovery for digital entertainment network
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
US10268352B2 (en) 2004-06-05 2019-04-23 Sonos, Inc. Method and apparatus for managing a playlist by metadata
US9626437B2 (en) * 2004-06-10 2017-04-18 International Business Machines Corporation Search scheduling and delivery tool for scheduling a search using a search framework profile
KR100631708B1 (ko) * 2004-06-16 2006-10-09 엘지전자 주식회사 푸쉬 투 토크 서비스를 제공하는 단말기, 푸쉬 투 토크 서비스를 이용한 친구 소개 시스템 및 그 방법
KR100636147B1 (ko) * 2004-06-24 2006-10-18 삼성전자주식회사 네트워크를 통한 컨텐츠의 제어 방법 및 장치, 컨텐츠제공 방법 및 장치
US20060010387A1 (en) * 2004-07-07 2006-01-12 Olson Jorell A Projection apparatus with support for media content on portable storage devices
WO2006014480A2 (en) * 2004-07-08 2006-02-09 Actuality Systems, Inc. Architecture for rendering graphics on output devices over diverse connections
US7974217B2 (en) * 2004-07-19 2011-07-05 Samsung Electronics Co., Ltd. Method and apparatus for identifying network device corresponding to internet protocol address, and method and apparatus for allocating internet protocol address
GB0416342D0 (en) * 2004-07-22 2004-08-25 Koninkl Philips Electronics Nv Access to associated content
US7362280B2 (en) * 2004-08-18 2008-04-22 Ruckus Wireless, Inc. System and method for a minimized antenna apparatus with selectable elements
US8031129B2 (en) 2004-08-18 2011-10-04 Ruckus Wireless, Inc. Dual band dual polarization antenna array
US7652632B2 (en) * 2004-08-18 2010-01-26 Ruckus Wireless, Inc. Multiband omnidirectional planar antenna apparatus with selectable elements
US7193562B2 (en) 2004-11-22 2007-03-20 Ruckus Wireless, Inc. Circuit board having a peripheral antenna apparatus with selectable antenna elements
US7292198B2 (en) 2004-08-18 2007-11-06 Ruckus Wireless, Inc. System and method for an omnidirectional planar antenna apparatus with selectable elements
US7498996B2 (en) * 2004-08-18 2009-03-03 Ruckus Wireless, Inc. Antennas with polarization diversity
US7933628B2 (en) * 2004-08-18 2011-04-26 Ruckus Wireless, Inc. Transmission and reception parameter control
US7899497B2 (en) * 2004-08-18 2011-03-01 Ruckus Wireless, Inc. System and method for transmission parameter control for an antenna apparatus with selectable elements
US7880683B2 (en) 2004-08-18 2011-02-01 Ruckus Wireless, Inc. Antennas with polarization diversity
US7965252B2 (en) 2004-08-18 2011-06-21 Ruckus Wireless, Inc. Dual polarization antenna array with increased wireless coverage
US7696946B2 (en) 2004-08-18 2010-04-13 Ruckus Wireless, Inc. Reducing stray capacitance in antenna element switching
KR100608582B1 (ko) * 2004-08-28 2006-08-03 삼성전자주식회사 범용 플러그 앤 플레이 통신 방법 및 장치
US7590803B2 (en) * 2004-09-23 2009-09-15 Sap Ag Cache eviction
US8619662B2 (en) 2004-11-05 2013-12-31 Ruckus Wireless, Inc. Unicast to multicast conversion
US8638708B2 (en) 2004-11-05 2014-01-28 Ruckus Wireless, Inc. MAC based mapping in IP based communications
TWI391018B (zh) 2004-11-05 2013-03-21 Ruckus Wireless Inc 藉由確認抑制之增強資訊量
US7505447B2 (en) * 2004-11-05 2009-03-17 Ruckus Wireless, Inc. Systems and methods for improved data throughput in communications networks
CN1934750B (zh) * 2004-11-22 2012-07-18 鲁库斯无线公司 包括具有可选择天线元件的外围天线装置的电路板
US20060120385A1 (en) * 2004-12-02 2006-06-08 Atchison Darrell T Method and system for creating and managing multiple subscribers of a content delivery network
US7358912B1 (en) 2005-06-24 2008-04-15 Ruckus Wireless, Inc. Coverage antenna apparatus with selectable horizontal and vertical polarization elements
US8792414B2 (en) 2005-07-26 2014-07-29 Ruckus Wireless, Inc. Coverage enhancement using dynamic antennas
US7580915B2 (en) * 2004-12-14 2009-08-25 Sap Ag Socket-like communication API for C
US7600217B2 (en) * 2004-12-14 2009-10-06 Sap Ag Socket-like communication API for Java
US20060143398A1 (en) * 2004-12-23 2006-06-29 Stefan Rau Method and apparatus for least recently used (LRU) software cache
US20060143256A1 (en) * 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US7539821B2 (en) 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US7451275B2 (en) * 2004-12-28 2008-11-11 Sap Ag Programming models for storage plug-ins
US7672949B2 (en) * 2004-12-28 2010-03-02 Sap Ag Connection manager having a common dispatcher for heterogeneous software suites
US7694065B2 (en) * 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US7523263B2 (en) * 2004-12-28 2009-04-21 Michael Wintergerst Storage plug-in based on shared closures
US7971001B2 (en) * 2004-12-28 2011-06-28 Sap Ag Least recently used eviction implementation
US20060143389A1 (en) * 2004-12-28 2006-06-29 Frank Kilian Main concept for common cache management
US7552284B2 (en) * 2004-12-28 2009-06-23 Sap Ag Least frequently used eviction implementation
US20060143236A1 (en) * 2004-12-29 2006-06-29 Bandwidth Productions Inc. Interactive music playlist sharing system and methods
US20060156388A1 (en) * 2005-01-13 2006-07-13 Vlad Stirbu Method and apparatus for a security framework that enables identity and access control services
US7646343B2 (en) 2005-06-24 2010-01-12 Ruckus Wireless, Inc. Multiple-input multiple-output wireless antennas
US7893882B2 (en) 2007-01-08 2011-02-22 Ruckus Wireless, Inc. Pattern shaping of RF emission patterns
KR100645537B1 (ko) * 2005-02-07 2006-11-14 삼성전자주식회사 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소
JP5092200B2 (ja) * 2005-03-17 2012-12-05 株式会社日立製作所 ネットワーク装置およびイベント処理方法
WO2006108104A2 (en) * 2005-04-05 2006-10-12 Cohen Alexander J Multi-media search, discovery, submission and distribution control infrastructure
US7656866B2 (en) * 2005-04-22 2010-02-02 At&T Corp. Controlling media server resources in a VoIP network
US8589562B2 (en) * 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US7581066B2 (en) * 2005-04-29 2009-08-25 Sap Ag Cache isolation model
US7831634B2 (en) 2005-04-29 2010-11-09 Sap Ag Initializing a cache region using a generated cache region configuration structure
CN101189609B (zh) * 2005-05-31 2010-05-19 皇家飞利浦电子股份有限公司 在便携存储介质上写表示文件的方法,主机设备,通过主机设备访问便携存储介质的内容的方法
US7689660B2 (en) * 2005-06-09 2010-03-30 Sap Ag Application server architecture
WO2007004268A1 (ja) 2005-06-30 2007-01-11 Mitsubishi Denki Kabushiki Kaisha クライアント装置
DE102005033211A1 (de) * 2005-07-13 2007-01-18 Deutsche Thomson-Brandt Gmbh Verfahren zur Feststellung der Aktivität eines Gerätes in einem Netzwerk verteilter Stationen sowie Netzwerkstation für die Durchführung des Verfahrens
US7966412B2 (en) * 2005-07-19 2011-06-21 Sap Ag System and method for a pluggable protocol handler
US20070027808A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Strategies for queuing events for subsequent processing
JP4933156B2 (ja) * 2005-07-29 2012-05-16 株式会社リコー 画像撮影装置
US20070067386A1 (en) * 2005-08-30 2007-03-22 D-Link Systems, Inc. Embedded media server
WO2007033338A2 (en) * 2005-09-14 2007-03-22 O-Ya!, Inc. Networked information indexing and search apparatus and method
US8009644B2 (en) * 2005-12-01 2011-08-30 Ruckus Wireless, Inc. On-demand services by wireless base station virtualization
US8539496B1 (en) * 2005-12-12 2013-09-17 At&T Intellectual Property Ii, L.P. Method and apparatus for configuring network systems implementing diverse platforms to perform business tasks
TWI292536B (en) * 2005-12-13 2008-01-11 Inst Information Industry Computing system, method and computer readable media for group interactive multicast using upnp av architecture
US9467322B2 (en) * 2005-12-27 2016-10-11 Rovi Solutions Corporation Methods and apparatus for integrating media across a wide area network
US20070157016A1 (en) * 2005-12-29 2007-07-05 Dayan Richard A Apparatus, system, and method for autonomously preserving high-availability network boot services
US8707323B2 (en) * 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
CN1997014A (zh) * 2006-01-05 2007-07-11 三星电子株式会社 适应于动态网络改变的流服务提供方法
KR101017365B1 (ko) 2006-02-14 2011-02-28 삼성전자주식회사 복수의 컨텐츠 디렉토리 서비스 장치를 동기화하는 방법,컨텐츠 디렉토리 서비스 장치 및 시스템
US20070226734A1 (en) * 2006-03-03 2007-09-27 Microsoft Corporation Auxiliary display gadget for distributed content
US8863221B2 (en) * 2006-03-07 2014-10-14 Samsung Electronics Co., Ltd. Method and system for integrating content and services among multiple networks
US8509817B2 (en) 2006-03-22 2013-08-13 Core Wireless Licensing S.A.R.L. System and method for mobile telephone and UPnP control point integration
US20230017018A1 (en) * 2006-03-31 2023-01-19 Sheng Tai (Ted) Tsao Method and Apparatus For Information exchange Over a Web Based Environment
US7600024B2 (en) * 2006-03-31 2009-10-06 Microsoft Corporation Restricting device access per session
US8489748B2 (en) * 2006-04-04 2013-07-16 Core Wireless Licensing S.A.R.L. Enhanced UPnP AV media renderer
KR101235272B1 (ko) * 2006-04-05 2013-02-20 삼성전자주식회사 미디어 서버의 데이터 포맷 변환 및 제어 포인트의 데이터포맷 변환 요청 방법 및 장치
US8117246B2 (en) 2006-04-17 2012-02-14 Microsoft Corporation Registering, transfering, and acting on event metadata
DE102006019360A1 (de) * 2006-04-21 2007-10-25 Deutsche Telekom Ag Verfahren und Vorrichtung zur Wiedergabe von textuellen Daten auf Media Renderern in einem UPnP Netzwerk
US7788703B2 (en) 2006-04-24 2010-08-31 Ruckus Wireless, Inc. Dynamic authentication in secured wireless networks
US9769655B2 (en) 2006-04-24 2017-09-19 Ruckus Wireless, Inc. Sharing security keys with headless devices
US9071583B2 (en) * 2006-04-24 2015-06-30 Ruckus Wireless, Inc. Provisioned configuration for automatic wireless connection
US7639106B2 (en) * 2006-04-28 2009-12-29 Ruckus Wireless, Inc. PIN diode network for multiband RF coupling
US7971182B1 (en) * 2006-05-09 2011-06-28 Vmware, Inc. Application environment specifications for provisioning application specific runtime environments using undefined symbols
JP4933149B2 (ja) * 2006-05-22 2012-05-16 キヤノン株式会社 情報処理装置、電子データ転送方法及びプログラム
US9198084B2 (en) 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
US20080045149A1 (en) * 2006-05-26 2008-02-21 Dinesh Dharmaraju Wireless architecture for a traditional wire-based protocol
CN102427557B (zh) * 2006-06-15 2016-08-17 索尼株式会社 信息处理装置以及信息处理方法
US7792756B2 (en) * 2006-06-27 2010-09-07 Microsoft Corporation Subscription management in a media sharing service
US8327266B2 (en) * 2006-07-11 2012-12-04 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
US7792967B2 (en) * 2006-07-14 2010-09-07 Chacha Search, Inc. Method and system for sharing and accessing resources
US8667076B2 (en) 2006-07-28 2014-03-04 Microsoft Corporation Mapping universal plug and play discovered items to an SMB location
US8670725B2 (en) 2006-08-18 2014-03-11 Ruckus Wireless, Inc. Closed-loop automatic channel selection
US7904575B2 (en) * 2006-08-25 2011-03-08 Samsung Electronics Co., Ltd. Apparatus and method for matching protocols of embedded audio/video contents
KR101138395B1 (ko) * 2006-09-22 2012-04-27 삼성전자주식회사 콘텐트의 액세스 권리를 공유하는 방법 및 장치
US9436931B2 (en) * 2006-09-29 2016-09-06 Intel Corporation Remote prompting infrastructure
US7882356B2 (en) * 2006-10-13 2011-02-01 Microsoft Corporation UPnP authentication and authorization
US8520850B2 (en) 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
US7797412B2 (en) * 2006-10-25 2010-09-14 Oracle America Inc. Method and system for managing server configuration data
FR2909824B1 (fr) * 2006-12-06 2009-05-29 Awox Sa Procede et dispositif de communication s'appliquant,en particulier,a la communication locale sans fil
WO2008085201A2 (en) * 2006-12-29 2008-07-17 Prodea Systems, Inc. Managed file backup and restore at remote storage locations through multi-services gateway device at user premises
US8621540B2 (en) 2007-01-24 2013-12-31 Time Warner Cable Enterprises Llc Apparatus and methods for provisioning in a download-enabled system
US20080228507A1 (en) * 2007-03-14 2008-09-18 Paul Larue Retail publishing system, method, program, and apparatus
US20080243692A1 (en) * 2007-03-30 2008-10-02 Verizon Services Corp. Content ingest, maintenance, and delivery
US8069433B2 (en) * 2007-04-18 2011-11-29 Microsoft Corporation Multi-format centralized distribution of localized resources for multiple products
US20100064351A1 (en) * 2007-04-27 2010-03-11 Telefonaktiebolaget L M Ericsson Universal Plug and Play Extender
US8219987B1 (en) 2007-08-24 2012-07-10 Vmware, Inc. Optimized virtual machine specification for provisioning application specific runtime environment
US9015180B1 (en) 2007-05-09 2015-04-21 Vmware, Inc. Repository including file identification
US11262996B2 (en) * 2007-05-09 2022-03-01 Vmware, Inc. Repository including exclusion list
US8347263B1 (en) 2007-05-09 2013-01-01 Vmware, Inc. Repository including installation metadata for executable applications
US8001083B1 (en) 2007-05-09 2011-08-16 Vmware, Inc. Repository including version management
US7971047B1 (en) 2007-09-10 2011-06-28 Vmware, Inc. Operating system environment and installation
US8577937B1 (en) * 2007-05-09 2013-11-05 Vmware, Inc. Repository including exclusion list
US8316309B2 (en) * 2007-05-31 2012-11-20 International Business Machines Corporation User-created metadata for managing interface resources on a user interface
US8613044B2 (en) * 2007-06-22 2013-12-17 4Dk Technologies, Inc. Delegating or transferring of access to resources between multiple devices
US8254352B2 (en) 2007-06-28 2012-08-28 Universal Electronics Inc. System and method for configuration of network-capable appliances
US8667144B2 (en) * 2007-07-25 2014-03-04 Qualcomm Incorporated Wireless architecture for traditional wire based protocol
US8547899B2 (en) 2007-07-28 2013-10-01 Ruckus Wireless, Inc. Wireless network throughput enhancement through channel aware scheduling
KR20090022997A (ko) * 2007-08-29 2009-03-04 삼성전자주식회사 Drm 권리객체를 관리하는 방법 및 장치
JP5092179B2 (ja) * 2007-09-13 2012-12-05 オンキヨー株式会社 サーバ及びサーバプログラム
EP2218283B1 (en) * 2007-11-02 2015-10-07 BlackBerry Limited Long term evolution user equipment multi-packet data network parameter based connectivity control
US20090150480A1 (en) * 2007-12-08 2009-06-11 Xiyuan Xia Publishing Assets Of Dynamic Nature In UPnP Networks
US20090150570A1 (en) * 2007-12-07 2009-06-11 Bo Tao Sharing Assets Between UPnP Networks
US20090150481A1 (en) * 2007-12-08 2009-06-11 David Garcia Organizing And Publishing Assets In UPnP Networks
US20090150520A1 (en) * 2007-12-07 2009-06-11 David Garcia Transmitting Assets In UPnP Networks To Remote Servers
US8355343B2 (en) 2008-01-11 2013-01-15 Ruckus Wireless, Inc. Determining associations in a mesh network
WO2009094633A1 (en) 2008-01-25 2009-07-30 Chacha Search, Inc. Method and system for access to restricted resource(s)
JP4609506B2 (ja) * 2008-03-05 2011-01-12 ソニー株式会社 ネットワークシステム
JP4492719B2 (ja) * 2008-03-10 2010-06-30 ソニー株式会社 データ通信装置、データ通信方法、データ要求装置、データ要求方法、およびデータ通信システム
JP4569649B2 (ja) * 2008-03-19 2010-10-27 ソニー株式会社 情報処理装置、情報再生装置、情報処理方法、情報再生方法、情報処理システムおよびプログラム
US8811294B2 (en) * 2008-04-04 2014-08-19 Qualcomm Incorporated Apparatus and methods for establishing client-host associations within a wireless network
US8285811B2 (en) 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections to provide a primary list and sorted sub-lists
US8285810B2 (en) 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections between participants of a sharing network utilizing bridging
US8484311B2 (en) * 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
US8224899B2 (en) 2008-04-17 2012-07-17 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
JP4346670B1 (ja) * 2008-05-20 2009-10-21 株式会社東芝 電子装置およびコンテンツデータ提供方法
JP4342596B1 (ja) * 2008-05-20 2009-10-14 株式会社東芝 電子装置およびコンテンツデータ提供方法
US7948887B2 (en) 2008-06-24 2011-05-24 Microsoft Corporation Network bandwidth measurement
US8307093B2 (en) * 2008-06-25 2012-11-06 Microsoft Corporation Remote access between UPnP devices
US8893015B2 (en) 2008-07-03 2014-11-18 Ebay Inc. Multi-directional and variable speed navigation of collage multi-media
US8365092B2 (en) 2008-07-03 2013-01-29 Ebay Inc. On-demand loading of media in a multi-media presentation
US10282391B2 (en) 2008-07-03 2019-05-07 Ebay Inc. Position editing tool of collage multi-media
US9043726B2 (en) * 2008-07-03 2015-05-26 Ebay Inc. Position editing tool of collage multi-media
US20100011289A1 (en) * 2008-07-09 2010-01-14 Theladders.Com, Inc. Method and system for document viewing
US8086526B2 (en) 2008-07-23 2011-12-27 Ebay Inc. Hybrid account
US20100042535A1 (en) * 2008-08-15 2010-02-18 Ebay Inc. Currency display
US7853712B2 (en) * 2008-09-29 2010-12-14 Eloy Technology, Llc Activity indicators in a media sharing system
US20100094834A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Bridging in a media sharing system
US8880599B2 (en) 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US8484227B2 (en) 2008-10-15 2013-07-09 Eloy Technology, Llc Caching and synching process for a media sharing system
US9357247B2 (en) * 2008-11-24 2016-05-31 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US10755287B2 (en) * 2008-11-25 2020-08-25 Microsoft Technology Licensing, Llc Selecting between client-side and server-side market detection
US9398089B2 (en) 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
US8700072B2 (en) 2008-12-23 2014-04-15 At&T Mobility Ii Llc Scalable message fidelity
US8041823B2 (en) * 2008-12-23 2011-10-18 At & T Intellectual Property I, L.P. Optimization of media flows in a telecommunications system
US7890644B2 (en) * 2009-01-07 2011-02-15 Sony Corporation Parallel tasking application framework
US9014832B2 (en) 2009-02-02 2015-04-21 Eloy Technology, Llc Augmenting media content in a media sharing group
US8102849B2 (en) 2009-02-12 2012-01-24 Qualcomm, Incorporated Association procedure to enable multiple multicast streams
US20100205321A1 (en) * 2009-02-12 2010-08-12 Qualcomm Incorporated Negotiable and adaptable periodic link status monitoring
US8217843B2 (en) 2009-03-13 2012-07-10 Ruckus Wireless, Inc. Adjustment of radiation patterns utilizing a position sensor
US8171141B1 (en) * 2009-04-02 2012-05-01 Vmware, Inc. Provisioning system including stack manager
US8698675B2 (en) 2009-05-12 2014-04-15 Ruckus Wireless, Inc. Mountable antenna elements for dual band antenna
US9602864B2 (en) 2009-06-08 2017-03-21 Time Warner Cable Enterprises Llc Media bridge apparatus and methods
US11647243B2 (en) 2009-06-26 2023-05-09 Seagate Technology Llc System and method for using an application on a mobile device to transfer internet media content
US9264248B2 (en) * 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
US8838797B2 (en) * 2009-07-10 2014-09-16 Empire Technology Development Llc Dynamic computation allocation
EP2473927A4 (en) * 2009-09-04 2016-05-11 Iii Holdings 2 Llc SYSTEM AND METHOD FOR MANAGING INTERNET MULTIMEDIA CONTENT
US9836376B2 (en) 2009-09-24 2017-12-05 Contec, Llc Method and system for automated test of end-user devices
US20110082902A1 (en) * 2009-10-01 2011-04-07 Apple Inc. Systems and methods for providing media pools in a communications network
KR101066451B1 (ko) * 2009-10-06 2011-09-23 한국과학기술연구원 UPnP기반의 UPnP 컨트롤 포인트, UPnP 디바이스 및 이를 이용한 디바이스 접속 방법
KR101164813B1 (ko) * 2009-11-13 2012-07-12 삼성전자주식회사 디스플레이장치, 단말기 및 영상표시방법
KR20110053110A (ko) * 2009-11-13 2011-05-19 삼성전자주식회사 디스플레이장치, 클라이언트, 이를 포함하는 영상표시시스템 및 영상표시방법
CN102763378B (zh) 2009-11-16 2015-09-23 鲁库斯无线公司 建立具有有线和无线链路的网状网络
US9979626B2 (en) 2009-11-16 2018-05-22 Ruckus Wireless, Inc. Establishing a mesh network with wired and wireless links
EP2507681A4 (en) * 2009-12-02 2013-08-07 Packetvideo Corp SYSTEM AND METHOD FOR TRANSFERRING MEDIA CONTENT FROM A MOBILE DEVICE TO A HOME NETWORK
KR101656882B1 (ko) * 2009-12-04 2016-09-12 삼성전자주식회사 네트워크에서 원격 유저 인터페이스 목록을 제공하는 방법 및 장치
US9582238B2 (en) 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
FR2952493A1 (fr) * 2010-02-24 2011-05-13 France Telecom Procede, dispositif et systeme de filtrage d'informations dans un reseau upnp
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US8346920B2 (en) * 2010-07-15 2013-01-01 Srr Patent Holdings, Llc Managing network resource requests
CN101924758B (zh) * 2010-07-28 2015-01-28 中兴通讯股份有限公司 一种媒体服务器及其提供服务的方法
US9407012B2 (en) 2010-09-21 2016-08-02 Ruckus Wireless, Inc. Antenna with dual polarization and mountable antenna elements
US20120117110A1 (en) 2010-09-29 2012-05-10 Eloy Technology, Llc Dynamic location-based media collection aggregation
WO2012041216A1 (zh) * 2010-09-30 2012-04-05 北京联想软件有限公司 便携式电子设备、内容发布方法和提示方法
US8689181B2 (en) * 2010-11-23 2014-04-01 Axeda Corporation Scripting web services
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
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US9582239B2 (en) 2011-01-21 2017-02-28 Qualcomm Incorporated User input back channel for wireless displays
US9413803B2 (en) 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US8964783B2 (en) 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US9065876B2 (en) 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
US8674957B2 (en) 2011-02-04 2014-03-18 Qualcomm Incorporated User input device for wireless back channel
US10108386B2 (en) 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US20120204093A1 (en) * 2011-02-08 2012-08-09 Microsoft Corporation Providing web-based content to local device
WO2012109568A1 (en) 2011-02-11 2012-08-16 Packetvideo Corporation System and method for using an application on a mobile device to transfer internet media content
US8798777B2 (en) 2011-03-08 2014-08-05 Packetvideo Corporation System and method for using a list of audio media to create a list of audiovisual media
KR101243015B1 (ko) * 2011-03-16 2013-03-12 엔에이치엔비즈니스플랫폼 주식회사 별개의 서비스들을 결합하여 제공하는 서비스 제공 시스템 및 서비스 제공 방법
EP2686981B1 (en) * 2011-03-18 2017-09-27 Samsung Electronics Co., Ltd. Method and system for managing contact information in a universal plug and play home network environment
US9792188B2 (en) 2011-05-01 2017-10-17 Ruckus Wireless, Inc. Remote cable access point reset
CN102882830B (zh) * 2011-07-11 2016-06-08 华为终端有限公司 媒体资源访问控制方法和设备
KR101893151B1 (ko) * 2011-08-21 2018-08-30 엘지전자 주식회사 영상 표시 장치, 단말 장치 및 그 동작 방법
US20130073670A1 (en) * 2011-09-15 2013-03-21 Microsoft Corporation Geo-Migration Of User State
KR101315608B1 (ko) 2011-09-27 2013-10-18 엘지전자 주식회사 컨텐츠 관리 방법 및 그를 이용한 영상 표시 장치
US9654821B2 (en) 2011-12-30 2017-05-16 Sonos, Inc. Systems and methods for networked music playback
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
US8756668B2 (en) 2012-02-09 2014-06-17 Ruckus Wireless, Inc. Dynamic PSK for hotspots
US10186750B2 (en) 2012-02-14 2019-01-22 Arris Enterprises Llc Radio frequency antenna array with spacing element
US9634403B2 (en) 2012-02-14 2017-04-25 Ruckus Wireless, Inc. Radio frequency emission pattern shaping
US9092610B2 (en) 2012-04-04 2015-07-28 Ruckus Wireless, Inc. Key assignment for a brand
US20130312046A1 (en) * 2012-05-15 2013-11-21 Mark Robertson Smart stream delivery server, system and methods for assembling a mix of services to be delivered to a subscriber's premises
US9674587B2 (en) 2012-06-26 2017-06-06 Sonos, Inc. Systems and methods for networked music playback including remote add to queue
US10187474B2 (en) * 2012-08-08 2019-01-22 Samsung Electronics Co., Ltd. Method and device for resource sharing between devices
GB2504725B (en) * 2012-08-08 2017-01-11 Samsung Electronics Co Ltd Resource sharing between devices
CN103891238A (zh) * 2012-08-14 2014-06-25 华为技术有限公司 共享图形信息的方法和装置
US9570799B2 (en) 2012-09-07 2017-02-14 Ruckus Wireless, Inc. Multiband monopole antenna apparatus with ground plane aperture
KR102056188B1 (ko) * 2012-10-15 2019-12-16 엘지전자 주식회사 미디어 공유 제어장치, 미디어 재생장치, 미디어 공유를 위한 사용자 인터페이스 제공 방법
US9736205B2 (en) * 2012-10-15 2017-08-15 Lg Electronics Inc. Media share control apparatus, media reproducing apparatus, and method of providing user interface for media sharing thereof
CN103841051B (zh) * 2012-11-27 2017-05-10 国基电子(上海)有限公司 服务请求控制系统及其控制方法
US20150319485A1 (en) * 2012-12-07 2015-11-05 Samsung Electronics Co., Ltd. Method and system for streaming multimedia contents in a wi-fi network
US9565472B2 (en) 2012-12-10 2017-02-07 Time Warner Cable Enterprises Llc Apparatus and methods for content transfer protection
EP2974045A4 (en) 2013-03-15 2016-11-09 Ruckus Wireless Inc LOWBAND REFLECTOR FOR A DIRECTED DOUBLE BELT ANTENNA
US9361371B2 (en) 2013-04-16 2016-06-07 Sonos, Inc. Playlist update in a media playback system
US9247363B2 (en) 2013-04-16 2016-01-26 Sonos, Inc. Playback queue transfer in a media playback system
US9501533B2 (en) 2013-04-16 2016-11-22 Sonos, Inc. Private queue for a media playback system
US10277948B2 (en) * 2013-05-27 2019-04-30 Dish Ukraine L.L.C. Remote parental control with reward unlock
US10638196B2 (en) 2013-05-27 2020-04-28 Echostar Ukraine Llc Network-wide remote parental control
US9735978B2 (en) 2013-05-29 2017-08-15 Sonos, Inc. Playback queue control via a playlist on a mobile device
US9495076B2 (en) 2013-05-29 2016-11-15 Sonos, Inc. Playlist modification
US9798510B2 (en) 2013-05-29 2017-10-24 Sonos, Inc. Connected state indicator
US9684484B2 (en) * 2013-05-29 2017-06-20 Sonos, Inc. Playback zone silent connect
US9953179B2 (en) 2013-05-29 2018-04-24 Sonos, Inc. Private queue indicator
US10715973B2 (en) 2013-05-29 2020-07-14 Sonos, Inc. Playback queue control transition
US9703521B2 (en) 2013-05-29 2017-07-11 Sonos, Inc. Moving a playback queue to a new zone
CN103327100B (zh) * 2013-06-21 2017-04-19 华为技术有限公司 资源处理方法和站点服务器
US20150020151A1 (en) * 2013-07-09 2015-01-15 Contentraven, Llc Systems and methods for trusted sharing
CN103560979B (zh) * 2013-11-21 2017-03-29 中国联合网络通信集团有限公司 一种资源分配方法和设备
EP2887232B1 (en) * 2013-12-18 2015-12-16 Advanced Digital Broadcast S.A. Computer implemented method for universal plug-and-play content retrieval
US9621940B2 (en) 2014-05-29 2017-04-11 Time Warner Cable Enterprises Llc Apparatus and methods for recording, accessing, and delivering packetized content
US9628850B2 (en) 2014-05-30 2017-04-18 Lg Electronics Inc. Server, home device access server, terminal, and home device remote control system including the same
AU2015207840B2 (en) * 2014-07-31 2020-06-18 Samsung Electronics Co., Ltd. System and method of managing metadata
US10528598B2 (en) * 2015-02-26 2020-01-07 Schneider Electric USA, Inc. Energy management system and method
US10152212B2 (en) 2015-04-10 2018-12-11 Sonos, Inc. Media container addition and playback within queue
WO2016197115A1 (en) * 2015-06-05 2016-12-08 Arris Enterprises Llc Virtual wallet for set-top-box
US9736259B2 (en) * 2015-06-30 2017-08-15 Iheartmedia Management Services, Inc. Platform-as-a-service with proxy-controlled request routing
US10404758B2 (en) 2016-02-26 2019-09-03 Time Warner Cable Enterprises Llc Apparatus and methods for centralized message exchange in a user premises device
US10341128B2 (en) * 2016-03-12 2019-07-02 Wipro Limited Method and system for optimizing usage of network resources in a communication network
US10779056B2 (en) 2016-04-14 2020-09-15 Contec, Llc Automated network-based test system for set top box devices
US10462456B2 (en) 2016-04-14 2019-10-29 Contec, Llc Automated network-based test system for set top box devices
CN107018168B (zh) 2016-09-19 2020-07-24 阿里巴巴集团控股有限公司 互联网资源调度方法及装置、网络红包调度方法
US10284456B2 (en) 2016-11-10 2019-05-07 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
EP4005247A1 (en) * 2019-07-30 2022-06-01 Dolby Laboratories Licensing Corporation Coordination of audio devices
US11968268B2 (en) 2019-07-30 2024-04-23 Dolby Laboratories Licensing Corporation Coordination of audio devices
US11620165B2 (en) 2019-10-09 2023-04-04 Bank Of America Corporation System for automated resource transfer processing using a distributed server network
EP4058896A4 (en) * 2019-11-15 2023-11-29 Geneva Technologies, Inc. CUSTOMIZABLE COMMUNICATIONS PLATFORM
CN111258602B (zh) * 2020-01-10 2023-06-30 百度在线网络技术(北京)有限公司 信息更新方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330937A (ja) * 1999-05-17 2000-11-30 Yaskawa Electric Corp イントラネットシステム及びサーバの制御方法
JP2003186831A (ja) * 2001-12-13 2003-07-04 Sony Corp ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム
JP2003203133A (ja) * 2001-10-25 2003-07-18 Matsushita Electric Ind Co Ltd コンテンツ利用条件管理システム

Family Cites Families (58)

* 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
US6084952A (en) 1996-01-18 2000-07-04 Pocketscience, Inc. System and method for communicating electronic messages over a telephone network using acoustical coupling
US5966135A (en) 1996-10-30 1999-10-12 Autodesk, Inc. Vector-based geographic data
DE69838095T2 (de) 1997-03-12 2008-04-03 Nomadix, Inc., Westlake Village Nomadic Translator
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
US6119167A (en) 1997-07-11 2000-09-12 Phone.Com, Inc. Pushing and pulling data in networks
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
CA2730344C (en) 1998-07-17 2014-10-21 United Video Properties, Inc. Interactive television program guide system having multiple devices within a household
AR019458A1 (es) * 1998-07-23 2002-02-20 United Video Properties Inc Una disposicion de guia de programacion televisiva interactiva que sirve como entrada
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
ATE494610T1 (de) 2000-03-24 2011-01-15 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
US20020092019A1 (en) 2000-09-08 2002-07-11 Dwight Marcus Method and apparatus for creation, distribution, assembly and verification of media
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
US20020194604A1 (en) 2001-06-19 2002-12-19 Sanchez Elizabeth C. Interactive television virtual shopping cart
US20030005130A1 (en) 2001-06-29 2003-01-02 Cheng Doreen Yining Audio-video management in UPnP
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
GB0129177D0 (en) 2001-12-06 2002-01-23 Koninl Philips Electronics Nv Havi-upnp bridging
US8261306B2 (en) 2001-12-11 2012-09-04 Koninklijke Philips Electronics N.V. System for and method of shopping through television
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 データ共有システム,共有センタサーバ,広告スタッフ端末装置,コンピュータプログラム,記憶媒体,および共有センタサーバのデータ共有方法
US20030191802A1 (en) 2002-04-03 2003-10-09 Koninklijke Philips Electronics N.V. Reshaped UDDI for intranet use
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
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
US7668939B2 (en) 2003-12-19 2010-02-23 Microsoft Corporation Routing of resource information in a network
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
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
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
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
US8364720B2 (en) 2005-12-21 2013-01-29 Digimarc Corporation Content metadata directory services
US7706740B2 (en) 2006-01-06 2010-04-27 Qualcomm Incorporated Apparatus and methods of selective collection and selective presentation of content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330937A (ja) * 1999-05-17 2000-11-30 Yaskawa Electric Corp イントラネットシステム及びサーバの制御方法
JP2003203133A (ja) * 2001-10-25 2003-07-18 Matsushita Electric Ind Co Ltd コンテンツ利用条件管理システム
JP2003186831A (ja) * 2001-12-13 2003-07-04 Sony Corp ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2961210A1 (en) 2014-06-26 2015-12-30 Ricoh Company, Ltd. Authentication system, authentication method, authentication apparatus, and recording medium

Also Published As

Publication number Publication date
KR20060112192A (ko) 2006-10-31
EP1695226A4 (en) 2012-05-02
EP1695226B1 (en) 2014-04-02
WO2005067428A3 (en) 2006-08-03
EP1695226A2 (en) 2006-08-30
CN1906604A (zh) 2007-01-31
US7668939B2 (en) 2010-02-23
CN1906604B (zh) 2011-06-01
WO2005067428A2 (en) 2005-07-28
US20050138193A1 (en) 2005-06-23

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) Отображение обнаруженных элементов универсального режима "подключай и работай" на местоположение smb
US8452775B2 (en) Accessing content items in a network based on device capability information
CN102263782B (zh) 信息处理装置、信息处理方法和信息处理系统
KR20050113626A (ko) 네트워크에서 사용자 스테이션들 사이의 파일들을 공유하는방법
US20040024875A1 (en) Schema-based services for identity-based access to device data
US8037519B2 (en) Apparatus and method for managing access to one or more network resources
US20060179138A1 (en) User-specific interaction with content sotred on upnp network
KR20070117502A (ko) 네트워크 내의 ce 장치로의 접근 제어에 관한 방법 및시스템
KR20070008568A (ko) 서버 장치, 클라이언트 장치 및 네트워크 시스템
JP2008098708A (ja) コンテンツ配信サーバ、コンテンツ提供サーバ、コンテンツ配信システム、コンテンツ配信方法、コンテンツ提供方法、および、制御プログラム
JP2009507298A (ja) 遠隔のネットワークノードとのデータ通信
US20070162980A1 (en) SYSTEM AND METHOD FOR PROVIDING CONTENT SECURITY IN UPnP SYSTEMS
US8082326B2 (en) Server and server program
Network Interoperable Home Infrastructure
JP2004341657A (ja) サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
WO2013144134A1 (en) A method and a system for access control for upnp content

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070723

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: 20100423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100430

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101026