KR20060112192A - 네트워크에서의 자원 정보 라우팅 - Google Patents

네트워크에서의 자원 정보 라우팅 Download PDF

Info

Publication number
KR20060112192A
KR20060112192A KR1020057012382A KR20057012382A KR20060112192A KR 20060112192 A KR20060112192 A KR 20060112192A KR 1020057012382 A KR1020057012382 A KR 1020057012382A KR 20057012382 A KR20057012382 A KR 20057012382A KR 20060112192 A KR20060112192 A KR 20060112192A
Authority
KR
South Korea
Prior art keywords
resource
distribution
media server
network
user
Prior art date
Application number
KR1020057012382A
Other languages
English (en)
Inventor
마크 제이. 엔카내시온
재슨 풀라크스
자이 스리니바산
Original Assignee
마이크로소프트 코포레이션
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 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060112192A publication Critical patent/KR20060112192A/ko

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)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • General 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)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

UPnP(Universal Plug and Play) 네트워크의 매체 서버는 자원에 관한 자원 정보의 렌더링 디바이스로의 배포를 통제하기 위한 자원 공유 서비스를 포함한다. 일 경우에서, 자원 공유 서비스는, 식별된 네트워크 디바이스가 자원 정보를 수신하도록 인증되었는지의 여부를 판정하기 위해 기준을 고려한다. 다른 경우에서, 자원 공유 서비스는, 전달이 발생하기 위해서는 자원 서버와 관련된 특정 개인이 자원 정보의 전달에 동의해야 하는지의 여부를 판정하기 위해 다른 기준을 고려한다. 자원 정보는, 자원에 관한 하이 레벨의 정보를 설명하는 자원 메타데이터 뿐만 아니라 자원 컨텐츠를 포함할 수 있다. 매체 서버는, 매체 서버 사용자로 하여금 공유 자원 및 배포 기준을 특정할 수 있게 하는 다양한 사용자 인터페이스 제시를 포함한다.
UPnP 네트워크, 매체 서버, 자원 정보, 자원 메타데이터, 자원 컨텐츠, 자원 공유 서비스, 배포 기준

Description

네트워크에서의 자원 정보 라우팅 {ROUTING OF RESOURCE INFORMATION IN A NETWORK}
본 발명은 네트워크를 통해 수신자들에게 정보를 라우팅하는 전략에 관한 것으로서, 보다 구체적으로는 홈 네트워크와 같은 로컬 네트워크를 통해, 메타데이터(metadata) 및 매체 컨텐츠(media contents)를 수신자들에게 선택적으로 라우팅하는 전략에 관한 것이다.
UPnP(Universal Plug and Play)는 네트워크에 디바이스들을 추가하고 네트워크로부터 디바이스들을 제거하는 것을 용이하게 하는 네트워크 아키텍처를 제공한다. 예를 들어, UPnP 아키텍처로 인해, 사용자는 새로운 디바이스를 간단하게 네트워크 커플링(network coupling)에 "플러그(plug)"할 수 있고, 그 후, 네트워크는 새로운 디바이스의 특징들을 자동적으로 판정한 다음, 판정된 특징들에 기초해, 새로운 디바이스와 네트워크의 다른 디바이스들간의 상호 작용을 조정할 것이다. UPnP 아키텍처는, 가정, 회사, 학교 등과 같은, 로컬 설비와 관련된 네트워크들에 특히 적합하다. ("UPnP(Universal Plug and Play)"라는 용어는 초창기에 개발된 디바이스 PnP(Plug and Play)에서 제공된 기능으로부터 유래한다는 것에 주목해야 하는데, 디바이스 PnP는, PC와 같은, 독립 컴퓨터 디바이스에 주변 디바이스들을 자동적으로 추가하고 삭제하는 융통성 있는 기술을 제공한다).
도 1은 예시적인 UPnP 아키텍처(100)에 관한 하이 레벨에서의 정보를 제시한다. 개괄적으로 보자면, UPnP 아키텍처(100)는 네트워크(112)를 통해 결합되어 있는 복수개 디바이스(예컨대, 디바이스(102, 104, 및 106)) 및 제어 포인트(제어 포인트(108 및 110))를 포함한다.
UPnP 디바이스(102, 104, 및 106)는 다양한 전자 디바이스를 포함할 수 있다. 예시적인 디바이스로는 모든 종류의 컴퓨터, CD/DVD 플레이어/주크 박스, TV, VCR, MP3 플레이어, 스테레오 시스템, EPF(electronic picture frames), 다양한 유형의 스틸 및 비디오 카메라 등을 들 수 있다. 특히, 소위 UPnP 디바이스는 실제 디바이스, 서비스 등을 포함할 수 있는 컨테이너(container)를 개념적으로 정의한다. 다음으로, 서비스는, UPnP 디바이스에 의해 수행되며 다른 UPnP 디바이스에 이용될 수 있는 다양한 기능을 서비스가 정의한다. 예를 들어, 예시적 일 디바이스는 클록에 의해 제공되는 연대기적 기능(chronological function)을 포함할 수 있다. 일반적으로, 서비스는 상태 변수를 사용해 서비스의 기능을 모델링하고 모델과 관련된 다양한 동작(action)을 다른 UPnP 디바이스들에 공개시킨다. 도 1의 예시적 경우에서, UPnP 디바이스(102)는, 서비스(116)를 제공하는 실제 디바이스(114)를 포함한다. UPnP 디바이스(104)는, 서비스(120 및 122)를 제공하는 실제 디바이스(118)를 포함한다. UPnP 디바이스(106)는, 서비스(126 및 128)를 제공하는 실제 루트 디바이스(root device: 124)를 포함한다. 다음으로, 루트 디바이스(124)는, 서비스(132)를 제공하는 내장 디바이스(130)를 포함한다.
네트워크(112)는 TCP/IP(Transmission Control Protocol and Internet Protocol)를 사용해 디바이스(102, 104, 106)를 다같이 결합시킬 수 있다. 또한, 네트워크(112)는, HTTP(Hypertext Transfer Protocol), SOAP(Simple Object Access Protocol), GENA(General Event Notification Architecture) 등과 같은, 다수의 기타 표준 프로토콜들로부터도 자유롭게 유도될 수 있다. 네트워크(112)는, 전화선, 전력선, IrDa(Infrared Data Association), 이더넷, RF(Radio Frequency) 커플링 등과 같은, 다양한 유선 및/또는 무선 통신 메커니즘들을 사용해 물리적으로 구현될 수 있다.
마지막으로, 제어 포인트(control points: 108, 110)는, 다른 UPnP 디바이스를 발견하고 제어할 수 있는 에이전트(agents)를 정의한다. UPnP 디바이스는 자체적으로, 그것과 함께 통합되어 있는 적어도 하나의 제어 포인트를 포함할 수도 있다.
도 2는, 계층적 레이어들로 정렬되어 있는, UPnP 아키텍처(100)에 의해 수행되는 종래의 기능을 도시한다. 어드레싱 기능(addressing function: 202)은, 디바이스 및 제어 포인트가 네트워크(112)와 상호 작용하기 위한 어드레스를 수신하는 절차에 관여한다. 좀더 구체적으로, 디바이스 또는 제어 포인트는 DHCP(Dynamic Host Configuration Protocol) 서버로부터 또는 (예를 들어, DHCP 서버가 이용될 수 없다면) 자동 IP 할당 절차를 사용해 어드레스를 수신할 수 있다. 자동 IP 절차는, 개별적으로 보존되어 있는 한 세트의 어드레스로부터 IP 어드레스를 지능적으로 선택하는 기술을 제공한다.
발견 기능(discovery function: 204)은, 디바이스가 제어 포인트에게 그들의 서비스를 알리는 절차를 포함한다. 디바이스는, HTTP의 멀티캐스트 변형(즉, HTTP-MU)을 송신하는 것에 의해 이러한 알림을 수행할 수 있다. 후속적으로, 제어 포인트는 HTTPU(즉, HTTP의 유니캐스트 변형)를 사용해 응답한다. 발견 기능(204)은 UPnP 디바이스와 제어 포인트간의 상기한 교환을 수행하기 위해 GENA 및 SSDP(Simple Service Discovery Protocol)를 이용할 수 있다. 또한, 새롭게 추가된 제어 포인트가 네트워크에 결합되어 있는 UPnP 디바이스 및 서비스를 검색할 수도 있다.
설명 기능(description function: 206)은, UPnP 디바이스를 발견한 제어 포인트가 UPnP 디바이스에 관한 더 많은 정보를 판정할 수 있는 절차를 포함한다. UPnP 디바이스는 제어 포인트로 정보를 송신하는 것에 의해 응답하는데, 이 경우, 이러한 정보는 XML(extensible markup language)을 사용해 제시된다. 이러한 정보는 UPnP 디바이스의 유형(예를 들어, 제작자, 모델명과 번호, 일련 번호 등), 그것이 제공하는 서비스, 디바이스와 상호 작용하기 위한 URL(uniform resource locators) 등에 관한 세부 사항을 정의한다.
제어 기능(control function: 208)은 제어 포인트로부터의 제어 메시지를 UPnP 디바이스로 전송하는 것과 관련이 있다. UPnP 아키텍처(100)는 SOAP을 사용해 이 메시지를 전송한다. SOAP 메시지는 동작 요청을 포함한다. UPnP 디바이스는 SOAP 메시지에서 특정된 동작을 실행한 다음 제어 포인트에 응답한다. 이 응답은 동작-특정 값 또는 장애 코드들을 포함한다.
이벤팅 기능(eventing function: 210)은, 제어 포인트가 UPnP 아키텍처(100)에 의해 제공되는 서비스와 관련된 이벤트를 모니터링하는 절차를 포함한다. 좀더 구체적으로, 서비스는, 서비스 모델이 상태를 변경할 때, 이벤트를 송신할 수 있다. 이러한 상태 변화를 "게시하는(publishing)" 프로세스를 이벤팅이라고 한다. 제어 포인트는, 관심있는 서비스에 가입 메시지를 송신하는 것에 의해, 다양한 이벤트들을 수신할 것을 신청할 수 있다.
마지막으로, 제시 기능(presentation function: 212)은, 이러한 UPnP 디바이스와 관련된 제시 URL을 사용해 UPnP 디바이스로부터 한 페이지의 정보를 검색하는 단계를 수반한다. 제어 포인트는, UPnP 디바이스로 HTTP GET 요청을 발행하는 것에 의해, 제시 프로세스를 개시할 수 있다. 제시 기능(212)으로 인해, 사용자는 디바이스의 상태를 살펴 보고/보거나 디바이스를 제어할 수 있다.
UPnP Forum의 웹 사이트(즉, http://upnp.org/)는 UPnP 아키텍처 및 관련 주제에 관한 좀더 상세한 정보를 제공한다.
상술된 바와 같이, UPnP 디바이스는, 집 또는 회사에서와 같이, 비교적 국지화된 네트워크 환경(localized network environments)에서 흔히 사용된다. 가정 환경에서는, 예를 들어, UPnP 디바이스를 포함하는 네트워크가 매체 소스 디바이스(media source device)의 집합과 매체 렌더링 디바이스(media rendering device)의 집합을 상호 접속할 수 있다. 예시적인 매체 소스 디바이스는, 음악, 비디오, 사진 등의 집합을 저장하는 퍼스털 컴퓨터를 구비하거나 다양한 유형들의 주크 박스 디바이스를 구비할 수 있다. 예시적인 매체 렌더링 디바이스는 TV, 스테레오, 퍼 스널 컴퓨터 등을 구비할 수 있다. 그 다음, (퍼스널 컴퓨터와 같은) 제어 포인트는 매체 소스 디바이스 중 하나로부터의 자원 정보를 선택된 매체 렌더링 디바이스로 라우팅하는데 사용될 수 있다.
그러나, UPnP 디바이스들을 포함하는 기존 네트워크는 잘-제어된, 안전하고 신뢰할 수 있는 방식으로 자원 정보의 상술된 전달을 수행하지 않는다. 예를 들어, 가정 환경은 다양한 연령과 관심을 가진 개인들의 그룹을 포함할 수 있다. 일부 매체 컨텐츠가 일부 가족 구성원에게는 적합할 수 있지만, 다른 가족 구성원에게는 그렇지 않을 수도 있다. 예를 들어, 부모는 성인 컨텐츠를 전혀 포함하지 않는 음악, 비디오, 및 사진들을 자녀에게 라우팅하기를 원할 수 있다. 동시에, 부모는 자녀에게 적합한 종류의 자원 정보와 상호 작용하기를 원치 않을 수도 있다. UPnP 디바이스를 포함하는 기존 네트워크는 상이한 자원 정보를 가족내의 상이한 개인에게 선택적으로 라우팅하는 메커니즘을 제공하지 않는다. 예를 들어, 아버지가 비디오 주크 박스에 광범위한 자원 정보를 집합적으로 제공하는 다양한 DVD들을 로드했을 수도 있지만, UPnP 디바이스들을 포함하는 기존 네트워크에는 이 주크 박스의 자원을, 적합성 및 수신자 흥미에 따라, 가족의 상이한 구성원에게 선택적으로 유포하기 위한 규정이 없다.
유사한 결함(deficiencies)이, UPnP 디바이스들을 포함하는 네트워크들의 다른 애플리케이션에도 존재한다. 예를 들어, 회사의 콘텍스트(context)에서, 회사 소유자는 다양한 자원 정보를 포함하는 정보 웨어하우스(information warehouse)를 가질 수 있다. 그런 자원 정보의 일부는 개인적이거나 민감한 내용을 포함하거나, 또는 단지 많은 직원들이 거의 관심이 없는 내용을 포함하기 때문에, 그것이 회사 전체에 걸친 일반적인 유포에는 부적절할 수도 있다. UPnP 디바이스들을 포함하는 종래의 네트워크들은, 관리자로 하여금 자원 정보를 적절한 수신자들에게 선택적으로 라우팅할 수 있게 하는 메커니즘들을 전혀 포함하지 않는다.
또한, 소정 환경에서는, UPnP 아키텍처에 따라 구축된 디바이스들을 포함하는 네트워크에 가입되지 않은 개인이 인가되지 방식으로 네트워크를 "활용(tap)"할 수 있는 리스크가 존재한다. 예를 들어, 네트워크는 (전체적으로 또는 부분적으로) 무선 링크들을 사용해 구현될 수 있다. 이러한 네트워크들에는, 미인가 개인(unauthorized individual)이 의도적으로 또는 무심코 UPnP 아키텍처에 의해 제공되는 자원들로의 액세스를 획득할 수 있는 리스크가 존재한다. 유사한 리스크가 다른 종류의 네트워크에도 존재한다. 또한, UPnP 디바이스들을 포함하는 네트워크를 위해 제공되는 기능은 광역 IP 네트워크 기능과의 연속성을 보장하도록 설계된다. 이것이 많은 장점을 제공하기는 하지만, 이 또한, 광역 네트워크 환경의 사용자가 홈 네트워크 환경을 활용할 수 있는 방식을 의도적으로 또는 무심코 발견할 수 있는 리스크를 수반한다. UPnP 아키텍처는 정보의 라우팅을 제어하거나 차단하기 위한 적절한 메커니즘을 제공하지 않으므로, 이러한 종류의 미인가 사용자가 네트워크의 매체 및 정보 자원들에 대한 전반적인 집합으로의 액세스를 획득하거나 네트워크의 UPnP 디바이스들을 제어할 수 있는 기회가 존재한다.
따라서, 관련 기술분야에서는 네트워크 환경에서 자원 정보의 유포를 제어하기 위한 기술에 대한 예시적인 필요가 존재하며, 좀더 구체적인 구현으로는, UPnP 디바이스를 포함하는 네트워크에서 자원 정보의 라우팅을 제어하기 위한 기술에 대한 필요가 존재한다.
예시적 일 구현에 따르면, 네트워크를 통해 자원 정보를 유포하기 위한 방법이 설명된다. 본 방법은 (a) 소스 엔티티(source entity)에서, 자원 정보에 대한 소비자의 요청을 수신하는 단계; (b) 요청을 충족시키며 적어도 하나의 배포 기준(distribution criterion)을 충족시키는, 네트워크를 통해 공유 가능한 것으로 지정된, 자원들이 존재하는지의 여부를 판정하기 위해 소스 엔티티에서의 요청을 프로세싱하는 단계; (c) 프로세싱하는 단계의 결과를 나타내는 응답을 발생시키는 단계; 및 (d) 응답을 소비자에게 전송하는 단계를 포함한다.
예시적인 다른 구현에 따르면, 소스 엔티티를 사용해 네트워크를 통해 자원 정보를 유포하는 것과 관련된 조건들을 정의하기 위한 방법이 설명된다. 본 방법은, 사용자로 하여금 (a) 네트워크를 통해 공유될 적어도 하나의 자원; 및 (b) 상기 적어도 하나의 자원의 적어도 일부에 관한 자원 정보의 네트워크를 통한 배포를 통제하는 적어도 하나의 배포 기준을 선택할 수 있게 하는 사용자 인터페이스 제시(user interface presentation)를 제공하는 단계를 포함한다. 또한, 본 방법은 상기 사용자 인터페이스 제시를 통해 상기 적어도 하나의 자원 및 상기 적어도 하나의 배포 기준에 대한 사용자 선택을 수신하는 단계도 포함한다.
추가적인 예시적 구현들이 다음에 설명되어 있다.
도 1은 복수개 디바이스 및 제어 포인트를 포함하는 종래의 UPnP 아키텍처를 도시하는 도면.
도 2는 도 1에 나타낸 UPnP 아키텍처에 의해 제공되는 일련의 종래 기능을 도시하는 도면.
도 3은 자원 공유를 포함하는 예시적인 네트워크 아키텍처를 도시하는 도면.
도 4는 도 3에 나타낸 네트워크 아키텍처의 예시적 애플리케이션을 도시하는 도면.
도 5는 도 3에 나타낸 네트워크 아키텍처에서 사용하기 위한 예시적인 매체 서버를 도시하는 도면.
도 6은 도 5의 매체 서버에 의해 사용되는 예시적인 디렉토리를 도시하는 도면.
도 7은, 도 4에 나타낸 애플리케이션의 콘텍스트(context)에서, 미인가 개인들이 자원으로의 액세스를 획득하는 것을 방지하는데 사용되는 예시적 메커니즘을 도시하는 도면.
도 8 내지 도 15는 도 5의 매체 서버에 의한 제시를 위한 상이한 예시적 사용자 인터페이스(UI) 페이지를 도시하는 도면.
도 16 내지 도 20은 도 3의 네트워크 아키텍처에서 매체 디바이스를 인에이블 및 디스에이블하고, 자원 정보를 공유하는데 사용되는 기준을 정의하며, 자원 정보를 공유하기 위한 예시적 절차를 도시하는 도면.
도 21은 도 5의 매체 서버를 구현하기 위한 예시적인 컴퓨터 환경을 도시하 는 도면.
유사한 컴포넌트 및 특징을 참조하기 위해, 설명 및 도면 전체에 걸쳐 동일한 번호가 사용된다. 일련의 100 번호는 원래 도 1에서 발견된 특징을 의미하고, 일련의 200 번호는 원래 도 2에서 발견된 특징을 의미하며, 일련의 300 번호는 원래 도 3에서 발견된 특징을 의미하는 등이다.
설명을 용이하게 하기 위해, 다음의 논의는 UPnP(Universal Plug and Play) 아키텍처의 콘텍스트에서 자원 정보 배포 기능을 설명할 것이다. 여기에서 사용되는 바와 같이, "UPnP 네트워크"라는 용어는, UPnP 아키텍처에 따라 구축된 적어도 하나의 엔티티(예컨대, 디바이스)를 가진 (도 3에 나타낸 예시적 UPnP 네트워크(314)와 같은) 네트워크를 설명하는데, 이 경우, UPnP 프로토콜이 이러한 엔티티의 고지(announcement), 발견(discovery), 설명(description), 이벤팅(eventing) 및 제어(control)에 사용된다. 본 아키텍처에서, UPnP 아키텍처에 따라 구축된 엔티티 이외의 다른 엔티티도 UPnP 네트워크(314)에 결합될 수 있다. 그러나, 이러한 특정 네트워크 프레임워크는 단지 예일 뿐이다. 자원 정보 배포 기능은 다른 종류의 아키텍처 및 네트워크를 사용해 구현될 수도 있다(즉, 본 기능이 UPnP 엔티티를 포함하는 네트워크로 한정되는 것은 아니다).
특히, 간단하게 설명되는 바와 같이, UPnP 네트워크(314)는 적어도 하나의 수신 엔티티에게 정보를 공급하는 적어도 하나의 소스 엔티티를 포함할 수 있다. UPnP 네트워크(314)는, 소스 엔티티(들)로부터 수신 엔티티(들)로의 정보 전달을 조정하고 다른 기능을 수행하기 위한 적어도 하나의 제어 포인트 엔티티를 선택적으로 포함할 수 있다. 예를 들어, 소스 엔티티는 매체 서버 또는 다른 종류의 장치를 구비할 수 있다. 수신 엔티티(recipient entity)는 제어 포인트 디바이스, 매체 렌더링 디바이스, 또는 다른 종류의 디바이스를 구비할 수 있다. 일반적으로, "엔티티" 및 "디바이스"라는 용어는 이 경우 광범위하게 해석되어야 하는데, 이러한 용어는 원인 태스크(ascribing task)를 수행하기 위한 독립적 이산 유닛(discrete standalone unit)을 의미할 수 있거나, 다수 유닛으로 이루어진 시스템을 구비할 수 있거나, 유닛내에 포함되어 있는 하드웨어 및/또는 소프트웨어 컴포넌트를 구비할 수 있는 등이다. 논의를 간략화하기 위해, "디바이스"라는 용어는 이 섹션에서 UPnP 네트워크(314)에 결합되어 있는 어떤 종류의 모듈을 설명하는데 사용된다. (또한, 논의의 간략화를 위해 매체 서버 디바이스들을 "매체 서버(media servers)"라고도 한다.)
또한, 구체적인 예를 제공하기 위해, 다음의 논의는, 거주자가 UPnP 네트워크(314)를 사용해 집안의 다수 매체 서버 및 매체 렌더링 디바이스를 상호 접속시키는, 홈 콘텍스트에서 자원 정보 배포 기능을 설명할 것이다. 그러나, 자원 배포 기능은, (예를 들어, 기업내의) 사업 환경, (예를 들어, 학교 또는 대학내의) 연구 환경 등을 포함하여, 어떤 환경에도 적용될 수 있다.
또한, UPnP 네트워크(314)는 통상적으로 (예를 들어, 빌딩내의) 비교적 작고 잘 정의된 지리적 영역에서 디바이스를 다같이 결합시킨다. 그러나, 자원 정보 배포 기능은 더 넓은 지리적 포위 환경에 적용될 수 있다.
또한, 다음 논의에서, "자원(resource)"은 임의의 정보 단위를 의미한다. 예를 들어, 자원은 하나의 파일에 대응되거나, 단지 파일의 일부에 대응되거나, 다수 파일의 집합에 대응될 수 있다. 예를 들어, 자원이 노래에 대응된다고 가정한다. 그런 노래는 단일 파일로, 단일 파일의 일부분으로, 또는 (몇 개의 파일이 다른 노래들로부터의 스트림을 조합할 수도 있는) 몇 개의 파일로 저장될 수 있다. 좀더 구체적으로는, 도 3에 도시되어 있는 바와 같이(도면의 먼 오른쪽 부분에 주목할 것), (후술될) 자원 저장소에 저장되어 있는 예시적 자원(R)은, 여기에서 일반적으로 "자원 정보"라고 하는, 다양한 정보 콤포넌트를 포함할 수 있다. 이러한 자원 정보의 일 컴포넌트가 "자원 메타데이터(resource metadata)"이다. 자원 메타데이터는, 자원의 타이틀, 자원와 관련된 연주자, 자원가 생성된 날짜 등과 같은, 자원에 관한 하이 레벨에서의 정보를 포함한다. 자원 정보의 다른 콤포넌트는 "자원 컨텐츠(resource contents)"이다. 자원 컨텐츠는, 자원 메타데이터가 설명하는 데이터를 포함한다. 예를 들어, 오디오 자원의 자원 컨텐츠는 소비자에게 재생하기 위한 오디오 데이터에 대응될 것이다. (본 개시의 일부에서, "자원 컨텐츠 항목(resource contents item)"이라는 용어는 특정 자원와 관련된 자원 컨텐츠를 언급하는데 사용되고, 여기에서의 "항목"이라는 용어의 사용은 소정 콘텍스트에서 "자원 컨텐츠"라는 용어의 용도를 명료하게 하기 위한 문법적 편의의 문제를 반영할 뿐이다.) 마지막으로, 다음의 설명은, 렌더링 디바이스에서의 제시를 위한 그러한 렌더링 디바이스로의 "자원 컨텐츠" 전달을 빈번하게 언급할 것이다. 이러한 전달은 자원 컨텐츠 이외의 자원에 관련된 추가 정보의 전달을 배제하지 않으며, 자원 컨텐츠의 전달은 또한, 예를 들어, 자원 컨텐츠에 수반되는, 자원 메타데이터를 포함할 수도 있다.
또한, 자원 자체가 개별적인 멤버 자원(member resource)의 집합일 수 있다. 예를 들어, 자원은 소위 자원 컨테이너(resource container), 자원 폴더, 또는 다른 종류의 자원의 집합을 구성할 수 있다. 논의되는 바와 같이, 자원 컨테이너는, 매체 서버가 멤버 자원을 내부적으로 관리하기 위해 사용하는, 적어도 하나의 멤버 자원의 그룹을 의미한다. 자원 폴더는, 매체 서버가 사용자에게 "가시화(make visible)"하는, 적어도 하나의 멤버 자원의 그룹을 의미한다. 예를 들어, 매체 서버는, 각각이 적어도 하나의 멤버 자원을 포함할 수 있는 다수의 자원 폴더를 제시할 수 있는 사용자 인터페이스 디스플레이(또는 다른 제시 메커니즘)를 포함할 수 있다. 그러나, 매체 서버는 이러한 멤버 자원들을 자원 컨테이너의 콘텍스트에서 내부적으로 관리할 수 있다. 자원 폴더에서의 정보 할당은 일반적으로 자원 컨테이너에서의 정보 할당과 상이하지만, 다른 구현에서는, 할당이 동일할 수 있다. (또한, 매체 서버는 선택적으로, 사용자로 하여금 자원 컨테이너에 관한 정보를 볼 수 있게 하며 매-폴더 기반(per-folder basis)이 아니라 매-컨테이너 기반(per-container basis)으로 또는 매-폴더 기반에 추가하여 매-컨테이너 기반으로 다양한 동작을 수행하게 할 수 있다.) 임의의 집합(자원 컨테이너 또는 자원 폴더) 자체가 멤버 "자식" 집합(즉, 개별적인 자식 자원 컨테이너 또는 자식 자원 폴더)을 포함할 수도 있다.
자원 집합의 특정 종류가 자원 플레이리스트(resource playlist)이다. 이러 한 자원은, 오디오, 비디오, 및/또는 포토 자원(또는 다른 종류의 자원)의 리스트를 의미하는 파일로서 구현될 수 있다.
상기 예들은, 자원이 상정할 수 있는 몇가지 명시를 설명할 뿐이고, 일반적으로, 자원이라는 용어는 어떤 고려에 기초한 정보의 모든 집합을 추상적으로 나타낸다.
일 구현에서, 자원은, 오디오 자원(예를 들어, 음악, 오디오 북 등), 비디오 자원, 사진 자원(예를 들어, 디지털 사진) 등과 같은, 매체 자원에 대응될 수 있다. 그러나, 여기에서 설명되는 원리는 임의 종류의 정보를 임의의 목적으로 배포하는데 사용될 수 있다.
여기에서 사용되는 "프로세싱"이라는 용어는 광범위한 동작을 수반할 수 있다. 일 경우에서, "프로세싱"이라는 용어는 프로세싱 중인 정보를 변경하는데 사용되는 동작을 의미한다. 다른 경우에서, "프로세싱"이라는 용어는 프로세싱 중인 정보를 단순히 핸들링하거나 프로세싱 중인 정보에 관한 판정을 내리는데 사용되는 동작을 의미한다. 이들은 단순히, 이러한 용어가 포함할 수 있는 광범위한 동작 유형들의 몇가지 예일 뿐이다.
또한, (공유 자원들을 정의하는 것과 같은) 다양한 관리 태스크를 수행하기 위한 목적으로 여기에서 설명되는 매체 서버와 상호 작용하는 임의의 엔티티를 여기에서는 "매체 서버 사용자(media server user)"라고 한다. 매체 서버 사용자는, 매체 서버와 상호 작용하는 인간 조작자와 관련되거나, 매체 서버와 상호 작용하도록 구성된 로직 기능을 포함하여, 다른 엔티티를 표현할 수도 있다. 예시적 구현 에서, 매체 서버 사용자는 매체 서버에 로그되어 있는 것으로 추정된다. 일 구현에서, 사용자는 매체 서버에 식별 정보를 제공하는 것에 의해 매체 서버에 로그하는데, 매체 서버는, 그렇게 구성되었다면, (예를 들어, 사용자에게 패스워드 또는 어떠한 다른 인증 형태를 제공할 것을 요청하는 것에 의해) 사용자를 인증한다. 매체 서버의 다른 구현은, 매체 서버와의 상호 작용을 위해 사용자에게 그들의 ID를 공급할 것을 요청하지 않을 수도 있다. 후술되는 바와 같이, 매체 서버 사용자 세션에 대한 로그 상태는 활성 또는 비활성일 수 있다.
매체 서버로부터의 자원 정보를 요청하는 임의의 엔티티를 자원 정보 소비자(resource information consumer)라고 한다(다음에서는, 간략화를 위해, 간단히 "소비자"라고 한다). 소비자는 매체 서버로부터 자원 메타데이터 및/또는 자원 컨텐츠를 요청할 수 있다. 소비자는, 제어 포인트 또는 렌더링 디바이스로부터 매체 서버와 상호 작용하고자 하는 인간 조작자를 표현하거나, 매체 서버와 상호 작용하도록 구성된 로직 기능을 포함하여, 다른 엔티티를 표현할 수도 있다. 인간 조작자의 경우, 동일한 사람이 매체 서버 사용자 및 소비자 모두로 기능할 수 있으며, 다른 방법으로는, 상이한 개인이 2개의 개별적인 이런 역할을 가정할 수도 있다.
마지막으로, 본 개시에서는 대안(예를 들어, A 또는 B)으로서 다수의 예가 제시될 것이다. 또한, 본 개시는, 대안들을 단일 구현(예를 들어, A 및 B)으로 조합하는 경우를 포함하지만, 본 개시가 이런 경우를 매번 명시적으로 언급하지 않을 수도 있다.
본 개시는 다음 섹션을 포함한다.
A. 자원 공유를 구현하기 위한 예시적 시스템
A.1. 시스템의 개요
A.2. 시스템의 예시적 애플리케이션
A.3. 매체 서버 아키텍처 개요
a. 매체 서버 모듈
b. CDDM(Content Directory Device Monitor) 모듈
c. 사용자 인터페이스 모듈
A.4. FUS(Fast User Switching) 규정
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, 핸드-헬드 오디오 플레이어(hand-held audio players) 등을 포함할 수 있다. (하나의 매체 서버(302)만이 표시되어 있지만, 네트워크(314)는 임의 갯수의 매체 서버를 포함할 수 있다. 또한, 복수개의 매체 렌더링 디바이스(304-312)이 표시되어 있지만, 네트워 크(314)는 단 하나의 매체 렌더링 디바이스만을 포함하거나 매체 렌더링 디바이스를 포함하지 않을 수도 있다.)
UPnP 네트워크(314)는 또한 적어도 하나의 제어 포인트(예를 들어, 제어 포인트(316, 318))을 선택적으로 포함한다. 제어 포인트(316, 318)은 UPnP 디바이스(302-312) 중 하나와 통합될 수 있다. 즉, 예를 들어, 렌더링 디바이스는 매체 서버(302)와 상호 작용하기 위한 제어 포인트 기능을 포함할 수도 있다. 다른 방법으로는, 적어도 하나의 제어 포인트가 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)에 결합될 때, 새로운 UPnP 매체 렌더링 디바이스는 자신의 존재를 매체 서버(302)에 알린다. 말하자면, 예를 들어, 이러한 새로운 매체 렌더링 디바이스는 도 3에 나타낸 예시적 디바이스(306)에 대응된다. 이제, 매체 서버(302)는 매체 서버(302)의 사용자(즉, "매체 서버 사용자")에게 새로운 매체 렌더링 디바이스(306)의 존재를 경보한다. 다음에서 부연되는 바와 같이, 매체 서버(302)는, 새로운 디바이스(306)에 대응되는 수신된 IP 어드레스를 그것의 MAC(media access control) 어드레스로 변환하거나, 다른 식별/승인 메커니즘을 사용하는 것에 의해, 새로운 매체 렌더링 디바이스(306)의 ID를 판정할 수 있다. 그 다음, 매체 서버(302)는 매체 서버 사용자에게 새로운 디바이스(306)의 인에이블 옵션을 제공한다. 인에이블되면, 새로운 디바이스(306)는, 매체 서버(302)가 자원들을 전달하도록 허용된 디바이스 슈트(suite of devices)의 허락된 멤버가 된다.
매체 전달 동작 자체에서, 매체 서버(302)는 자원 저장소(320)에 제공된 자원에 대응되는 자원 정보를 네트워크(314)에 결합되어 있는 자원 정보 수신 엔티티(resource information recipient entity)에 라우팅한다. 폭넓게 언급해, 이러한 동작을 수행하기 위해, 소비자는 먼저 (제어 포인트(316)와 같은) 제어 포인트 또는 다른 디바이스를 사용해 매체 서버(302)의 자원 저장소(320)에 제공된 자원들에 대응되는 자원 정보를 조사한다. 예를 들어, 이러한 동작은, 이용 가능한 자원의 타이틀과 같은, 자원의 자원 메타데이터 및 자원에 관한 다른 하이 레벨에서의 정보를 조사하는 단계를 수반할 수 있다. 이러한 조사 후에, 소비자는, 매체 렌더링 디바이스(306)와 같은, 선택된 렌더링 디바이스에서의 제시를 위해, 자원와 관련된 자원 컨텐츠를 선택할 수 있다. 그 후, 제어 포인트(316)는, 매체 서버(302)로부터 선택된 렌더링 디바이스(306)로의 자원 컨텐츠 전달을 설정하는 역할을 제공할 수 있다. 일 구현에서, UPnP 아키텍처(300)는, 이에 한정되는 것은 아니지만, HTTP 프로토콜과 같은, 비-UPnP 프로토콜을 사용해 매체 서버(302)로부터 렌더링 장치(306)로의 자원 컨텐츠 전달을 실제로 실행한다.
상술된 기능을 수행하기 위해, 매체 서버(302)는 자원 정보 공유 기능(resource information sharing functionality: 322)을 포함한다. 다음 논의는 자원 정보 공유 기능(322)의 하이 레벨의 특징을 설명한다. 섹션 A.3은 자원 정보 공유 기능(322)을 좀더 상세하게 설명한다.
우선, 라우팅 절차는 네트워크(314)를 통해 공유될 자원들을 정의하는 태스크를 수반할 수 있다. 예시적 일 구현에서, 매체 서버(302)는 공유 가능한 자원을, 자원 폴더와 같은, 집합의 유닛으로 지시하도록 구성된다. 즉, 자원 정보 공유 기능(322)은, (다음에서 논의되는 고려에 기초하여) 자원 폴더에 포함된 자원 중 적어도 일부가 네트워크(314)를 통해 공유될 수 있게 하면서, 자원 폴더를 공유 가능한 것으로 "표시(earmark)"할 수 있다. 자원 정보 공유 기능(322)은, 매체 서버 사용자로 하여금 공유 폴더의 공유 가능한 상태를 정의할 수 있게 하는, 적어도 하나의 UI 페이지를 통해 이러한 기능을 수행할 수 있다. 섹션 B는 이러한 UI 페이지를 좀더 상세하게 설명한다. 일반적으로, 자원의 계층 조직내의 자원에 대한 공유 가능한 상태에는 상속(inheritance)이 적용된다. 즉, 자원 폴더는, 자식 자원을 구성하는 적어도 하나의 개별 멤버 자원을 포함하는 부모 자원으로 볼 수 있다. 또한, 자원 폴더는, 각각이 멤버 자식 자원을 포함할 수 있는, 서브폴더를 포함할 수도 있다. 부모 자원을 공유 가능한 것으로 지시하는 것은 일반적으로, 그 것의 멤버 자원 및 서브폴더 모두를 포함하여, 그것의 자식 자원 또한 공유 가능한 것으로 지시하는 효과를 가질 것이다. 그러나, 자원 정보 공유 기능(322)은 상이한 상속 패러다임에 따라 동작하도록 구성될 수도 있다. 예를 들어, 그 밖의 일 경우에서는, 부모 자원의 공유 가능한 상태가 자동적으로 그것의 서브폴더에 적용되는 것은 아닐 수도 있다.
또한, 자원 정보 공유 기능(322)은, 사용자가 자원의 공유 가능한 상태를 제거할 수 있도록 (예를 들어, 자원을 "공유 해제 하도록") 구성될 수도 있다. 예를 들어, 일 경우에서는, 부모 자원을 공유 해제하는 것이 그것의 자식 자원을 공유 해제하는 효과를 가질 것이다. 일 경우에서, 자식 자원의 부모가 공유 가능한 것으로 지시되어 있을 때, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 자식 자원를 공유 해제하는 것을 금지할 수 있다. 다른 경우에서, 자원 정보 공유 기능(322)은, 매체 서버 사용자로 하여금, 공유 자식 자원를 선택적으로 비공유로 지시할 수 있게 함으로써, 상술된 상속 방식을 무효화한다.
위에서 열거된 것들은 가능한 것들의 대표적 샘플일 뿐이며, 다수의 기타 전략이 자원의 공유에 이용될 수 있다. 예를 들어, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 자원을 (자원 집합 레벨 대신에 또는 자원 집합 레벨에 추가하여) 개개의 자원 레벨에서 공유 가능한 것으로 지시하는 것을 허용하도록, 구성될 수 있다. 또한, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 다른 종류의 집합을 공유 가능한 것으로 지시하는 것을 허용하도록, 구성될 수도 있다.
다른 예시적 특징에 따르면, 그리고 섹션 C에 자세하게 설명되어 있는 바와 같이, 매체 서버(302)는, 그것이 공유하는 자원 정보의 종류에 다른 제한을 둘 수 있다. 예를 들어, 매체 서버(302)는 소정 종류의 공지된 매체 파일로부터 획득된 자원 정보만을 공유할 수 있다. 또한, 매체 서버(302)는 착탈식 드라이브, 공유 네트워크 등에 저장되어 있는 파일로부터 획득된 자원 정보의 공유를 거부할 수 있다. 예상되는 자원의 공지 "영역(universe)"으로부터 획득된 자원 정보로 공유를 한정하는 것에 의해, UPnP 네트워크(314)로의 미인가 액세스 가능성이 감소된다.
또한, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 (자원 메타데이터 및 자원 컨텐츠 모두를 포함하여) 자원 정보의 라우팅 제어에 선택적으로 사용될 수 있는 배포 기준을 정의할 수 있도록 허용한다. 예를 들어, 제1 배포 기준으로서, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 자원 정보의 전달을 소정 자원 정보 수신 엔티티로 한정할 수 있게 한다. 제2 배포 기준으로서, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 자원 정보의 전달을, 특정 개인이 전달에 동의할 필요가 있는지의 여부에 따라, 조건화할 수 있게 한다. 예를 들어, 매체 서버(302)는, 특정 개인이 매체 서버(302)를 구현하는 컴퓨터에 로그되어 있다면(그리고 그러한 개인의 터미널 세션이 활성이라면), 이러한 기준이 암시적으로 충족되도록, 구성될 수 있다. 이러한 특징은, 사용자가 매체 서버(302)를 구현하는 콘솔과 (예를 들어, 네트워크 접속을 통해) 원격적으로 상호 작용하는 것이 아니라, 직접적으로 콘솔과 상호 작용할 경우에만, 매체 서버 사용자가 로그온되어 있는 것으로 간주하도록 설정될 수도 있지만, 다른 구현에서는, 매체 서버 사용자가 원격 접속을 통해 로그온되어 있는 경우라 하더라도, 매체 서버 사용자는 로그온되어 있는 것으로 간주될 수 있다. 다른 경우로서, 매체 서버(302)는, (특정 개인이 전달의 타당성에 관한 UI 문의에 긍정적으로 응답하는 경우와 같이) 전달이 수용될 수 있다고 특정 개인이 명백하게 확인하는 경우에만 이러한 기준이 충족되도록, 구성될 수도 있다. 예시적 일 구현에서, 상술된 "개인"은, 배포 기준과 관련된 자원를 네트워크를 통해 공유될 수 있는 것으로 지시한 매체 서버 사용자에 해당한다. 이러한 2개 기준은 단지 예시적인 것으로, 자원 정보 공유 기능(322)은 자원 정보의 전달을 통제하기 위한 추가 기준을 부가할 수 있다. 예를 들어, 추가 기준은, 자원 정보로의 액세스 특권들을 하루 중 소정 시간으로 제한하는 일간 시간 한정을 포함할 수 있다. 자원 정보 공유 기능(322)은, (다음의) 섹션 B에서 설명되는 바와 같이, 자원 정보의 배포를 통제하는 배포 기준을 정의하는데 사용하기 위한 적어도 하나의 UI 페이지를 제공할 수 있다.
일 구현에서는, 배포 기준의 제1 세트가 자원 메타데이터의 전달에 적용될 수 있고, 배포 기준들의 다른 세트가 자원 컨텐츠의 전달에 적용될 수 있다. 제1 세트는 제2 세트와 상이할 수 있다. 이것은, 예를 들어, 상이한 한정이, 자원 컨텐츠 자체를 실제로 검색하는 것에 비교되는, 자원들의 타이틀을 단순히 살펴 보는 것에 적용된다는 것을 의미한다. 다른 방법으로, 배포 기준들의 제1 세트가 배포 기준들의 제2 세트와 동일할 수 있다. 그러나, 배포 기준들이 동일한 경우라 하더라도, 이것은 여전히, 소비자가 자원 컨텐츠가 아니라 자원 메타데이터를 볼 수 있도록 허용하는 효과를 가질 수 있는데, 이것은, 예를 들어, 소비자가 배포 기준에 의해 자원 메타데이터를 수신하도록 인가된 제어 포인트에서 자원 메타데이터를 수 신할 수 있지만, 소비자는 배포 기준에 의해 자원 컨텐츠를 수신하는 것이 금지된 렌더링 디바이스에서 자원 컨텐츠의 재생을 시도하기 때문이다. 이러한 전략에 대한 다른 변형이 구상된다. 예를 들어, 자원 정보 공유 기능(322)은 배포 기준의 단일 세트를 제공할 수 있다. 이러한 단일 세트는 자원 메타데이터, 자원 컨텐츠, 또는 양자의 유포를 배타적으로 통제할 수 있다.
예시적 일 구현에 따르면, 자원 정보 공유 기능(322)은, 개별 자원이 아니라, 자원의 집합의 콘텍스트에서 배포 기준을 특정한다. 예를 들어, 상술된 바와 같이, 매체 서버 사용자는 상술된 UI 페이지를 사용해 자원의 집합을 자원 폴더로 분류한 다음, 이러한 자원 폴더의 자원들과 관련된 자원 정보(메타데이터, 컨텐츠, 또는 양자)가, 소정 기준들이 충족된다면, UPnP 네트워크(314)에 결합되어 있는 다른 디바이스에 공유될 것이라고 지시할 수 있다. 그러한 공유 자원 폴더는, 각각이 적어도 하나의 자원을 포함하는, 적어도 하나의 서브폴더를 포함할 수도 있다. 상술된 동일한 종류의 부모-자식 계승 방식을 사용해 자원의 계층 구조에 배포 기준을 적용하는 것을 통제할 수 있다. 예를 들어, 자원 폴더에 대해 확립된 배포 기준이 자원 폴더의 각각의 서브폴더 및 자원(예를 들어, 파일)에 적용될 수 있다. 다른 방법으로, 자원 정보 공유 기능(322)은, 자원 폴더와 관련된 배포 기준이 자원 폴더의 자원의 서브세트에만 적용되도록 구성될 수도 있는데, 예를 들어, 자원 정보 공유 기능(322)은, 배포 기준들이, 자원 폴더가 포함할 수 있는 임의 서브폴더들의 자원이 아니라, 자원 폴더의 개별적인 자원에만 적용되도록 구성될 수도 있다. 좀더 일반적으로, 자원 정보 공유 기능(322)은 상술된 부모-자식 상속 방식을 다양한 환경들에서 무효화하도록 구성될 수도 있다.
또 다시, 상술된 방식은 그저 예시적이고 대표적인 것일 뿐이다. 다수의 다른 조합이 존재한다. 예를 들어, 자원 정보 공유 기능(322)으로 인해, 매체 서버 사용자는 배포 기준을 자원 폴더의 개별 자원에 "첨부"하거나 개별 자원으로부터 배포 기준을 제거할 수 있다. 다른 방법으로, 또는 부가적으로, 매체 서버(302)는 자원 폴더 대신에 자원 컨테이너에 대한 배포 기준을 지시할 수 있다. 도 6의 콘텍스트에서 상술되는 바와 같이, 자원 컨테이너는, 매체 서버(302)의 자원을 관리하기 위해 매체 서버에 의해 내부적으로 사용되는 집합을 의미하는 한편, 자원 폴더는, 매체 서버 사용자와 직접적으로 상호 작용하는 집합을 의미한다. 매체 서버(302)는 폴더로 분류된 자원을 재편성해 컨테이너를 생성할 수 있다.
다른 예시적 특징에 따르면, 자원 정보 공유 기능(322)으로 인해, 매체 서버 사용자는 배포 기준의 상이한 세트를 정의할 수 있다. 예를 들어, 상이한 사용자는 배포 기준의 상이한 개별 세트를 정의할 수 있다. 자원 정보 공유 기능(322)은, 그와 관련된 사용자가 매체 서버(302)를 구현하는 컴퓨터 시스템에 로그할 때, 배포 기준의 이러한 세트 중 하나를 자동적으로 호출할 수 있다. 다른 방법으로는, 단일 매체 서버 사용자가 배포 기준의 상이한 세트를 정의할 수 있다. 매체 서버 사용자는 이러한 세트 중, 통제적인 소정 동작 환경에 가장 적합한 하나를 호출할 수 있다. 예를 들어, 매체 서버 사용자는, 매체 서버 사용자가 낮 동안 집에 있을 것으로 예상되는 주말에 적용되는 배포 기준의 제1 세트를 활성화할 수 있고, 매체 서버 사용자가 낮 동안 집에 없을 것으로 예상되는 주중에는 다른 세트가 활 성화될 수 있다. 다른 방법으로, 2개 세트가 언제든 적용될 수 있도록, 배포 기준의 일 세트가 다른 세트와 합쳐질 수도 있다. 세트간의 잠재적 충돌을 해결하기 위한 규칙들이 구성될 수 있다. 이 역시, 이들은 단지 예시적이고 대표적인 시나리오일 뿐이고, 이러한 설계 전략에 대한 다수의 여타 조합이 구현될 수 있다.
다른 구현은 상술된 시나리오에 대하여 추가적인 한정을 둘 수 있다. 예시적 일 구현에서는, 자원 정보 공유 기능(322)이, 매체 서버 사용자로 하여금 이러한 특정 매체 서버 사용자가 공유 가능한 것으로 지시한 자원에 대한 배포 기준만을 추가 또는 변경 가능하게 할 수 있다.
다른 특징에 따르면, 자원 정보 공유 기능(322)은, 사용자가 적어도 하나의 배포 기준을 UI 페이지(또는 다른 메커니즘들)를 통해 정의할 필요없이, 적어도 하나의 배포 기준이 자동적으로 적용되도록, 적어도 하나의 배포 기준을 "하드 코딩(hard coding)"할 수 있다. 또한, 자원이 분리 가능한 드라이브 등에 저장되어 있기 때문에 공유가 금지되는지의 여부를 판정하는 요소(factor)와 같은, 자원의 공유 가능 여부를 초기에 판정하기 위한 다수 요소가 상술되었다. 이러한 요소는 개념적으로, 하드 코딩된 배포 기준으로 간주될 수 있다. 여기에서 "하드 코딩된"이라는 것은, 매체 서버 사용자가 (수신 엔티티-관련 기준들 등과 같은) 다른 배포 기준을 정의하는데 사용되는 UI 페이지을 통해 이러한 요소를 변경할 수 없을 수도 있다는 것을 의미한다. 그러나, 일 구현에서, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 다양한 상황에서 이러한 요소조차 변경할 수 있도록 허용하는, 다양한 규정을 포함할 수 있다.
다른 특징에 따르면, 다양한 메커니즘을 사용해, 매체 서버 사용자가 다른 매체 서버 사용자의 배포 기준을 조사 및/또는 변경하는 것을 방지할 수 있다. 예를 들어, 일 구현에서, 자원 정보 공유 기능(322)은, 매체 서버 사용자가 공유 가능한 것으로 지정한 자원에 대한 배포 기준만을 정의 또는 변경하도록 허용한다. 이러한 설계 전략의 또 다른 조합이 가능하다.
라우팅 동작 자체에서, 자원 정보 공유 기능(322)은 먼저, 소비자가 공유 자원과 관련된 정보를 검색할 수 있게 한다. 예를 들어, 상기 개요에서 지적된 바와 같이, 소비자는 제어 포인트(316)(또는 다른 디바이스)를 사용해 자원 저장소(320)에 제공된 자원과 관련된 자원 메타데이터를 살펴 보기 위한 요청을 입력할 수 있다. 보다 구체적으로, 요청은 브라우즈 요청, 검색 요청, 또는 다른 종류의 요청일 수 있다. 브라우즈 요청은, 예를 들어, 특정한 소정 카테고리의 정보 항목의 집합에 대한 검색을 초래할 수 있는 UPnP 액션인 한편, 검색 요청은, 예를 들어, 특정 키 용어들 등에 응답하여, 적어도 하나의 목표 정보 항목의 검색을 초래할 수 있는 UPnP 동작이다. 어떤 이벤트에서든, 이러한 요청의 전송은 도 3의 경로 324로써 표현된다.
자원 정보 공유 기능(322)은, 공유 자원들을 설명하는 자원 메타데이터의 집합을 스캔해, 소비자의 요청을 충족시키는 동시에, 존재한다면, 적어도 하나의 매체 서버 사용자에 의해 정의된 임의의 관련 배포 기준 또한 충족시키는 임의의 자원을 찾아내는 것에 의해, 요청(324)에 응답한다. 예를 들어, 소비자는 코메디 장르의 이용 가능한 모든 비디오 자원에 대응되는 자원 메타데이터를 제공할 것을 매 체 서버(302)에 요청할 수 있다. 자원 정보 공유 기능(322)은, 자원 메타데이터를 스캔해, 특정 검색 항목과 매칭되고 (이러한 자원의 디스플레이를 자원 정보 수신 엔티티의 서브세트로 한정하는 기준, R-등급 자원의 디스플레이를 특정한 매체 렌더링 디바이스를 사용하는 자식에 대해 금지하는 기준 등과 같은) 임의의 관련 배포 기준들을 충족시키는 임의의 관련 자원을 찾아내는 것에 의해, 이러한 요청에 응답한다. 자원 정보 공유 기능(322)은, 선택적으로 배포 기준을 적용하도록, 즉, 반드시 배포 기준을 적용하는 것은 아니도록 구성될 수도 있다. 따라서, 관련 배포 기준이 존재하지 않거나, 매체 서버(302)가 현재로는 배포 기준을 적용하도록 구성되어 있지 않다면, 배포 기준은 자원 정보의 유포를 한정하는 역할을 수행하지 않는다.
자원 정보 공유 기능(322)이 상술된 제한을 충족시키는 적어도 하나의 자원에 대응되는 자원 메타데이터를 발견한 경우, 자원 정보 공유 기능(322)은 이러한 자원 메타데이터를 소비자에게 송신한다. 자원 정보 공유 기능(322)에 의해 발생되는 응답은 XML(extensible markup language)을 사용해 구체적으로 공식화될 수 있다. XML 응답은, 이용 가능한 자원에 수반되는, 이름, 연주자, 생성 날짜, 사이즈 등과 같은, 이용 가능한 자원에 관한 하이 레벨의 데이터를 식별하는 자원 메타데이터를 제공할 수 있다. 자원 메타데이터는, 자원 컨텐츠가 검색될 수 있는 네트워크 로케이션을 식별하는, URL들과 같은, 자원 로케이터도 제공한다. 도 3은 경로(326)에 의한 XML 정보의 이러한 전달을 도시한다. 적당하게 갖추어지면, 제어 포인트(316)는 수신된 XML 정보를 제시 포맷으로 변환한 다음, (도 3에서는 제 어 포인트(316)에 의해 제공되는 디스플레이 제시(326)로써 일반적으로 표현되는) 정보를 모니터 또는 다른 제시 장치상에 디스플레이한다. 한편, 일 구현에서는, 검색 파라미터 및, 적용될 수 있다면, 배포 기준의 제한을 충족시키는 이용 가능한 자원 정보가 없다고 판정된 경우, 제어 포인트(316)가 매체 서버(302)로부터 정보를 수신하지 않을 것이다. 이 경우, 소비자는 자원 저장소(302)에 저장되어 있는 임의의 비-매칭 자원 정보(non-matching resource information)의 존재 및 특징들을 알지 못할 수도 있다. (여기에서 사용되는 바와 같이, "비-매칭 자원 정보"라는 용어는, 소바자의 검색 파라미터는 충족시키지만 배포 기준의 제한은 충족시키지 못하는 자원에 관한 자원 정보를 의미한다.)
여러 가지 이유로 인해, 비-매칭 자원 메타데이터의 이용 가능성을 제한하는 것이 바람직할 수 있다. 이러한 특징은 대체로, 그것이, 소비자가 이의를 제기할 수 있는(또는 소비자의 보호자가 이의를 제기할 수 있는) 자원 메타데이터의 디스플레이를 제거하기 때문에 유용하다. 또한, 비-매칭 자원 메타데이터의 이용 가능성을 제한하는 것은, 소비자에게 흥미롭지 않을 수도 있는 과도한 정보를 제거한다는 장점이 있다. 다른 구현에서, 자원 정보 공유 기능(322)은, 소정 자원에 대한 매칭 자원 메타데이터가 다른 점에서는 적절한 배포 기준들을 충족시키는 않는 경우에, 매체 서버 사용자가 자원 메타데이터의 (전부가 아닌) 일부를 단순하게 필터링할 배포 기준을 제공하는 것을 가능하게 할 수도 있다. 이것은, 보호자가 자식이 렌더링 디바이스에서 소정 자원의 타이틀을 보는 것을 금지하고자 할 뿐, 그렇지 않다면, 자식이 이러한 자원이 매체 서버(302)에 존재한다는 것을 지시하는 어 떤 정보를 수신하는 것에 반대하지 않는 경우에, 적절할 수 있다. 따라서, 이 경우의 배포 기준은 그것이 적용될 경우 타이틀을 차단하는 효과만을 가질 것이다. 일 구현에서는, 자원 메타데이터 자체가, 자원 메타데이터가 제어 포인트 또는 다른 자원 정보 수신 엔티티에 의해 디스플레이되는 방식을 통제하는데 사용될 수 있는 디스플레이 권고(display recommendations)을 포함할 수 있다.
마지막 요지로서, (상술된) 자원은, 예를 들어, 특정한 자원 항목을 제공하는 개별 자원를 의미할 수 있다. 또한, 자원은, 자체가 적어도 하나의 멤버 자원(및 어쩌면 적어도 하나의 다른 자원 집합)을 포함할 수 있는 자원 집합(예를 들어, 자원 컨테이너, 자원 폴더 등)을 의미할 수도 있다. 따라서, 자원 정보 공유 기능(322)은, 적어도 하나의 개별 자원 또는 자원 집합 설명하는 자원 메타데이터를 제공하도록 구성될 수 있다. 전자의 경우, 자원 메타데이터는, 개별 자원들의 타이틀, 작가 등과 같은, 개별 자원에 관한 하이 레벨의 정보를 포함할 수 있다. 후자의 경우, 자원 메타데이터는 자원 집합에 관한 하이 레벨의 정보를 포함할 수 있다. 이러한 하이 레벨의 정보는, 전체 집합 자체를 설명하는 임의 종류의 전역적 정보 뿐만 아니라, 개별 멤버 자원들의 타이틀, 작가 등과 같은, 자원 집합의 (존재한다면) 개별 멤버 자원 및 서브-집합에 관한 정보를 포함할 수 있다.
논의를 용이하게 하기 위해, 다음 설명은 일반적으로, 각각의 자원에 대한 자원 메타데이터가 그러한 자원 컨텐츠가 (후속적으로 검색될 수 있도록 하기 위해) 어디에서 발견될 수 있는지를 설명하는 자원 로케이터를 포함한다고 가정할 것이다. 그러나, 일 구현에서는, 자원이 자원 집합이라면, 그것의 자원 메타데이터 는 그것과 관련된 자원 로케이터(resource locator)를 포함할 수도 그렇지 않을 수도 있다. 예를 들어, 소위 플레이리스트 자원 컨테이너는 그와 관련된 자원 로케이터를 가질 수 있다. 이러한 자원 로케이터는 플레이리스트(예를 들어, 노래의 리스트) 또는 플레이리스트의 노래 각각(예를 들어, "연결된" 노래의 세트)을 검색하는데 사용될 수 있다. 플레이리스트는, 예를 들어, 노래와 관련된 개개의 자원 로케이터를 제공하는 것에 의해, 노래 각각이 어떻게 검색될 수 있는지를 식별할 수 있다. 그러나, 다른 자원 집합은 그와 관련된 자원 로케이터를 갖지 않을 수도 있다. 일반적으로, 임의의 소정 애플리케이션은 자원 로케이터를 가진 집합, 자원 로케이터가 없는 집합, 또는 자원 로케이터를 가진 집합과 자원 로케이터가 없는 집합의 조합을 포함할 수 있다. 논의의 용이화를 위해, 다음 설명은 일반적으로 자원 메타데이터 항목과 자원 로케이터간의 1대1 대응 관계를 함축하겠지만, 그것이 명시적으로 항상 서술되지 않더라도, 자원 집합에 대한 상기 조건은 잠재적으로 적용된다.
(제공된 자원 메타데이터를 통해) 이용 가능한 자원을 살펴 본 후에, 소비자는 이용 가능한 개별 자원 중 하나에 대응되는 자원 컨텐츠를 선택된 매체 렌더링 디바이스, 예를 들어, 렌더링 디바이스(306)에서 플레이할 것을 결정할 수 있다. 이것은 다양한 방식으로 수행될 수 있다. 일 기술에 따르면, 제어 포인트(316; 또는 다른 에이전트)는 선택된 자원 컨텐츠 항목에 대응되는, URL과 같은, 자원 로케이터를 렌더링 디바이스(316)에 공급할 수 있다. (여기에서도, 이러한 자원 로케이터는, 소비자의 초기 문의에 응답하는 매체 서버(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)로 전달하는데 사용될 수 있다. 또한, 다수의 자원 로케이터들이 렌더링 디바이스(306)로 전달된 다음, 항목들에 대한 각각의 자원 로케이터를, 하나씩, 개별적으로 송신하는 것이 아니라, 다수의 자원 컨텐츠 항목의 전달을 총괄하여 수행하는 매체 서버(302)로 전송된다.
상술된 바와 같이, HTTP GET 프로토콜(또는 다른 프로토콜)을 사용하는 실제 자원 컨텐츠의 검색 또한, 배포 기준들에 따라 선택적으로 조건화될 수 있다. 즉, 상술된 바와 같이, 배포 기준의 제 1 세트는 자원 메타데이터의 유포를 통제할 수 있고 배포 기준의 제 2 세트는 자원 컨텐츠의 배포를 통제할 수 있다. 제 1 세트 는 제 2 세트와 동일하거나 상이할 수 있다. 기준들의 제 2 세트를 사용해, 관련 배포 기준이, 요청 중인 렌더링 디바이스가 컨텐츠를 수신하도록 인증되지 않았다고 지시한다면, 매체 서버(302)는 자원 컨텐츠의 배포를 금지할 수 있다. 이러한 규정은, 비인가 렌더링 디바이스가 인가 디바이스로부터 (허가하에 또는 허가없이) 수신한 자원 로케이터를 사용해 자원 컨텐츠를 수신하고자 시도하는 것을 금지한다. 이러한 규정은 또한, 예전에 인가되었었지만, 지금은 더 이상 인가 상태가 아닌 디바이스가 자원 컨텐츠에 액세스하기 위해 "무효"(예를 들어, 이전) 자원 로케이터를 사용해 자원 컨텐츠를 수신하는 것도 금지할 수 있다.
일 경우에, 매체 서버(302)는, 디바이스가 자원 메타데이터를 수신하도록 허용된 경우라 하더라도, 동일한 디바이스로의 자원 컨텐츠 배포는 금지할 수 있다. 다른 방법으로, 매체 서버(302)는, 디바이스가 자원 컨텐츠 자체에 액세스할 수 있는 경우라 하더라도, 바로 그 디바이스로의 자원 메타데이터 배포는 금지할 수 있다. 일반적으로, 배포 기준의 "제1 세트" 및 "제2 세트"라는 용어들은, 단순히, 기준의 상이한 집합이 자원 메타데이터 및 자원 컨텐츠의 배포에 적용될 수 있다는 것을 지시하는 추상적 개념들이다. 일 경우에, 이들 2개 세트들은 문자 그대로, 파라미터에 대한 2개의 별개 저장소에 의해 구현될 수 있다. 다른 경우에, 이들 2개 세트는, 각각의 기준이 자원 메타데이터 및/또는 자원 컨텐츠의 배포에 적용되는지의 여부를 지시하는 필드 또는 속성을 각각의 기준에 첨부하는 것에 의해, 구현될 수 있다. 다른 경우로는, 그것이 자원 메타데이터 및 자원 컨텐츠의 배포 모두에, 또는 자원 메타데이터 및 자원 컨텐츠 중 하나에 암시적으로 적용된다는 가 정하에, 기준들의 단일 저장소가 제공될 수 있다. 이러한 유포 전략을 구현하기 위한 다수의 여타 변형들이 가능할 수 있다.
디바이스-관련 기준 이외에 다른 종류의 배포 기준도 자원 컨텐츠의 유포에 적용될 수 있다. 예를 들어, 자원 메타데이터의 유포에 관한 상술된 경우에서와 같이, 관련 배포 기준이, 특정 개인이 이러한 전달에 대해 필요한 동의를 제공하지 않았다고 지시한다면, 매체 서버(302)는 자원 컨텐츠의 배포를 금지할 수 있는데, 일 경우에서는, 이러한 개인이 매체 서버(302)를 구현하는 컴퓨터 시스템에 현재적으로 그리고 능동적으로 로그될 것을 요청하는 것에 의해, 이러한 기준이 충족될 수 있다. 또 다른 기준들이 자원 컨텐츠의 배포를 통제할 수도 있다.
다른 구현에서는, 매체 서버(302)가 배포 기준들에 따라 자원 컨텐츠를 배포하지 않을 수도 있다. 이러한 구현에서의 전제는, 소비자가 매체 서버(302)에 의해 제공되는 자원 컨텐츠에 대응되는 유효한 자원 로케이터를 가진다면, 소비자가 자원 컨텐츠 자체에 액세스하기 위한 적절한 권한을 갖는 것으로 가정된다는 것일 수 있다. 이것은, 소비자가 우선적으로 자원 메타데이터를 획득하기 위해서는 자원 메타데이터의 배포를 통제하는 배포 기준들에서 기술된 조건을 충족시켜야 했기 때문이다.
A.2. 시스템의 예시적 애플리케이션
도 4는 상술된 자원 공유 전략의 홈 환경에서의 예시적 애플리케이션을 나타낸다. 그러나, 상기한 바와 같이, 여기에서 설명되는 원리는, 회사, 교육 기관 등과 같은, 어떤 환경에도 적용될 수 있다.
도 4에서, 집(402)의 개략도는, 서재(404), 자녀 침실(406), 부모 침실(408), 부엌(410), 및 거실(410)과 같은, 복수개 방을 포함한다. 도 4는 또한, 아버지(414), 어머니(416), 및 자녀(418)를 포함하여, 집(402)에 상주하는 3명의 개인을 나타낸다.
서재(404)는 매체 서버(420)와 관련 자원들 뿐만 아니라 렌더링 디바이스 M(422)을 포함한다. 자녀 침실(406)은 렌더링 디바이스 N(426)을 포함한다. 부모 침실(408)은 렌더링 디바이스 O(426)를 포함한다. 부엌(410)은 렌더링 디바이스 P(428)를 포함한다. 그리고, 거실(410)은 렌더링 디바이스들(430 및 432:Q 및 R)을 포함한다. 나타내지는 않았지만, 다양한 제어 포인트들이 집(402) 전체에 흩어져 있을 수 있다. 예를 들어, 서재(404)의 디바이스 M(422)은, 소비자가 매체 서버(420)와 상호 작용할 수 있는 제어 포인트로도 기능할 수 있다. 매체 서버(420)는 서재(404)에 위치하기 때문에, 서재(404)는 자원들의 집 전체에 걸친 배포를 통제할 배포 기준들을 설정하기 위한 제어 센터로서 기능할 수 있다. 어머니(416)는, 이러한 기준을 설정하는 것에 의해 이 예에서 매체 서버 사용자로서 동작하고 있다. 마지막으로, 서재(404)는 디바이스들 모두를 다함께 결합시키기 위한 라우터(434)도 포함한다. 라우터(434)는 종래의 방식으로, 즉, 자원 정보 및 다른 정보를 정보와 관련된 어드레싱 정보에 따라 다양한 디바이스들로 라우팅하는 것에 의해 동작한다.
자원 정보 공유 기능(322)은 상이한 환경 및 목적에 적합한 상당히 광범위한 자원 공유 시나리오들을 제공할 수 있다. 다음의 논의에서는, 자원 정보 공유 기 능(322)이 이용될 수 있는 방법에 대한 구체적인 예를 제공하기 위해, 몇가지 자원 공유 가능성이 약술된다.
제 1 시나리오에서는, (매체 서버(420)를 사용 중인) 매체 서버 사용자가 자원들의 제 1 소정 그룹을 자원 폴더로 모은 다음, 그 자원 폴더의 자원들과 관련된 자원 정보를 자녀 방(406)의 디바이스 N(424)으로의 배포만을 위한 것으로 표시하기를 원할 수 있다. 따라서, 자녀(418)는 그의 또는 그녀의 방에서 적합한 어린이 자원 정보(예를 들어, 자원 메타데이터 및/또는 자원 컨텐츠)에 액세스할 수 있다. 동시에, 부모(414 및 416)는, 그들이 자원 메타데이터를 통해 브라우즈 또는 검색할 때 이러한 자원 메타데이터를 보지 않게 될텐데, 이것은, 부모들이 흥미가 없는 자원 메타데이터가 부모(414 및 416)에게 쇄도하지 않는 유용한 효과를 가진다.
제 2 시나리오에서는, 부모(414 및 416)이 액션 장르 자원 정보의 배포를 그들의 침실(408)에서 보기 위해 그들에게로만 제한하기를 원할 수도 있다. 부모(414 및 416)는, 예를 들어, 이러한 자원의 폭력성이 그들의 자녀(418)가 시청하기에는 부적절하다고 염려할 수 있다. 매체 서버 사용자는, 액션 장르의 R-등급 자원 정보 집합이 부모 방(408)의 디바이스 O(426)에서만 플레이되어야 한다고 특정하는 것에 의해, 이러한 한정을 구현할 수 있다. 따라서, 자녀(418)는 그의 또는 그녀의 방(406)에서 이러한 문제의 소지가 있는 자원 정보에 액세스할 수 없을 뿐만 아니라, (자원 정보 공유 기능(322)은 심지어 이러한 자원에 관한 자원 메타데이터를 자녀로부터 은폐할 수 있기 때문에) 자녀(418)는 이처럼 문제의 소지가 있는 자원 정보가 존재한다는 것조차 알지 못한다.
제 3 시나리오에서, 매체 서버 사용자는 자원들의 다른 소정 집합과 관련된 자원 정보를 어떤 렌더링 디바이스에서의 디스플레이에도 적합한 것으로 표시할 수 있다. 이것은, 자원의 이러한 집합에 대한 배포 기준들을 정의할 때 "All devices"를 특정하는 것에 의해 구현될 수 있다.
상술된 디바이스-관련 한정 이외에, 매체 서버 사용자는, 매체 서버(420)를 조작 중인 선택된 개인이 이러한 자원 정보의 전달에 대해 암시적 또는 명시적 동의를 제공했는지의 여부에 따라, 자원 정보로의 액세스를 조건화할 수 있다. 예를 들어, 제 4 시나리오에서는, 어머니(416)가 매체 서버(420)에 로그될 때(그리고 그녀의 터미널 세션이 활성일 때), 이러한 기준이 충족된다. 이 경우, 자원 정보의 전달에 대한 어머니(416)의 동의는 단순하게, 동시에 발생하는 그녀의 매체 서버(420)와의 상호 작용으로부터 추론된다. 다른 경우에서는, 이러한 기준이, 어머니(416)가 전달에 대해 그녀의 명백한 동의를 제시할 경우에만 충족된다. 이것은, 그녀의 자녀가 특정한 자원 메타데이터 또는 자원 컨텐츠에 액세스하고자 할 때, 팝업 메시지를 제시하는 것에 의해 실현될 수 있다. 어머니(416)가 이러한 문의에 긍정적으로 응답할 경우에만 전달이 진행된다.
한편, "모든 사용자"을 특정하는 사용자 기준은 자원 정보의 제시에 어떠한 제한도 두지 않는다. 다시 말해, 이러한 기준이 설정되면, 자원 정보는, 매체 서버(420)를 조작 중인 개인의 동의에 대한 참조없이, 인가된 임의의 장치에 제시될 수 있다. 그러나, 디바이스-관련 기준은, 자원 정보가 제시될 수 있는 장소를 독립적으로 한정함으로써, 소정 디바이스들이 이러한 자원을 수신하는 것을 효과적으 로 방지할 수 있다.
이번에도 역시, 자원 정보 공유 기능(322)은 디바이스-관련 기준 및 사용자 동의-관련 기준 이외에, 자원이 소비되는 시간 등에 관한 다양한 기준과 같은, 다른 종류의 기준을 제공할 수 있다. 이번에도 역시, 상술된 특징은 가정의 콘텍스트 뿐만 아니라, 기업 환경과 같은, 다른 환경에도 동일하게 적용될 수 있다.
마지막으로, 다음의 섹션 A.5에서 부연되는 바와 같이, 집(402) 밖의 다양한 엔티티가 비인가 방식으로 홈 네트워크와의 상호 작용을 시도할 수 있다. 예를 들어, 집(402)에서 제공되는 네트워크 일부들이 무선 링크들로서 구현될 수 있는데, 이 경우, 미인가 엔티티는 그 자체가 유효한 제어 포인트 또는 렌더링 디바이스로서 존재하기에 충분할 정도로 집(402) 가까이에서 동작할 수 있다. 다른 경우로서, 미인가 엔티티는 매체 서버(420)에 의해 제공되는 자원 정보를 의도적으로 또는 무심코 활용하는 (인터넷과 같은) WAN을 사용하는 개인을 표현할 수 있다. 어떤 경우에서든, 상술된 자원 공유 전략은 자원 정보의 유포를 렌더링 디바이스의 공지되고 제한된 세트로 한정하는데 사용될 수 있다. 이것은, 미인가 엔티티가 자원 정보에 액세스하는 것을 금지하는 효과를 가질텐데, 이러한 엔티티는 자원 정보를 수신할 수 있는 사전-승인된 디바이스의 리스트에 존재하지 않기 때문이다. 배포는 부가적으로, 매체 서버(420)를 조작 중인 특정 개인의 동의에 따라 조건화된다. (이러한 기준은 자원 정보를 배포하기 위해 매체 서버 사용자의 명시적이거나 암시적인 승인을 필요로 하므로) 이것은 미인가 액세스의 경로에 또 하나의 허들(hurdle)을 배치한다. 다음의 섹션 A.5는 자원 정보로의 미인가 액세스를 저지하 도록 설계된 몇가지 다른 규정을 설명한다.
A.3. 매체 서버 아키텍처 개요
도 5는 도 3에 나타낸 예시적 매체 서버(302)의 좀더 상세한 도면이다. 매체 서버(302)는 소프트웨어, 펌웨어(예를 들어, 고정된 로직 회로), 또는 소프트웨어와 펌웨어의 조합을 사용해, 도 5에 나타낸 다양한 블록을 구현할 수 있다. 여기에서 사용되는 "로직"이라는 용어는 일반적으로 소프트웨어, 펌웨어, 또는 소프트웨어와 펌웨어의 조합을 나타낸다. 소프트웨어 구현의 경우, 도시된 블록들은, 프로세싱 디바이스(예를 들어, CPU)에서 실행될 경우 특정 태스크들을 수행하는 프로그램 코드(및/또는 선언문들)의 집합을 표현할 수 있다. 프로그램 코드는 적어도 하나의 컴퓨터 판독 가능 메모리 디바이스에 저장될 수 있다.
개요로써, 매체 서버(302) 아키텍처는 3개의 메인 컴포넌트를 포함한다. 제 1의 메인 컴포넌트는 매체 서비스 모듈(502)이다. 매체 서비스 모듈(502)은, 새로운 디바이스를 위해 UPnP 네트워크(314)를 그리고 자원 컨텐츠를 공유하기 위해 서버를 모니터링하는, 자원 정보 공유 코드를 호스팅한다. 매체 서비스 모듈(502)은 또한, 네트워크(314)를 통한 자원 메타데이터 및 자원 컨텐츠의 배포를 통제하는데 사용되는 (예를 들어, 공유 자원 폴더들의 리스트, 승인된 디바이스의 리스트, 자원 정보 전달을 위해 동의를 제공해야 하는 매체 서버 사용자의 리스트 등을 포함하는) 구성 데이터를 보유한다.
제2의 메인 컴포넌트는 CDDM(Content Dirrectory Device Monitor) 서비스 모듈(504)이다. 상세히 후술되는 바와 같이, CDDM 서비스 모듈(504)은 매체 서비스 모듈(502)에 비해 매체 서버(302)의 시스템 자원과 상호 작용하기 위한 더 높은 액세스 특권(access priviledges)을 가진다. 따라서, 매체 서버(302)는 CDDM 서비스 모듈(504)을 사용해, 매체 서비스 모듈(502)의 낮은 액세스 특권으로 인해 매체 서비스 모듈(502)이 수행할 수 없는 몇가지 특권 동작을 실행시킨다. CDDM 서비스 모듈(504)에 의해 제공되는 동작은 다음에서 상세하게 열거되고 설명될 것이다.
제 3의 메인 컴포넌트는 (간략화를 위해 제어 패널 모듈(506)이라고 하는) 구성 및 제어 패널 모듈(control panel module: 506)이다. 제어 패널 모듈(506)로 인해, 로그온된 사용자는 네트워크(314)에 결합하는 새로운 디바이스에 대한 인증을 승인 또는 거부할 수 있고, 공유 자원 폴더의 리스트를 관리할 수 있으며 관련된 배포 기준을 정의할 수도 있다. 또한, 제어 패널 모듈(506)은, 매체 서버(302)가 치명적인 시스템 오류에 직면할 경우, 매체 서버 사용자에게 경보한다(alert).
(이하의) 서브섹션 A.4에서 설명되는 바와 같이, 매체 서버(302)는 FUS(fast user switching)을 구현한다. FUS 기술로 인해, 적어도 하나의 매체 서버 사용자가 매체 서버(302)를 호스팅 중인 컴퓨터 시스템에 동시에 로그될 수 있다. 이 경우, 매체 서버(302)는, 동시에 실행될 수 있는, 제어 패널 모듈(506)의 다수 인스턴스를 제공한다. 도 5는 구체적으로, 모듈 인스턴스(506)는 사용자(508)와의 상호 작용에 사용되고, 모듈 인스턴스(510)는 사용자(512)와의 상호 작용에 사용되며, 모듈 인스턴스(514)는 사용자(516)와의 상호 작용에 사용되는 예시적인 경우를 나타낸다. 그러나, 각각의 사용자는 한번에 기껏해야 하나의 제어 패널 모듈(506) 인스턴스를 스타트업(start up)할 수 있다. 개인 API(application programming interface: 518)는 제어 패널 모듈(506)을 매체 서버(302)의 다른 컴포넌트에 결합시킨다.
상술된 3개 모듈 각각은 소위 상이한 "사용자 콘텍스트"에서 동작한다. 매체 서비스 모듈(502)은, 소위 로컬 서비스 사용자 콘텍스트 또는 (후술될) 네트워크 서비스 콘텍스트과 같은, 임의의 소위 "단속된(clamped-down)" 사용자 콘텍스트에서 실행된다. CDDM 서비스 모듈(514)은 소위 로컬 시스템 사용자 콘텍스트에서 실행된다. 제어 패널 모듈(506)은 소위 로그온된 사용자의 사용자 콘텍스트에서 실행된다. 기본적으로, 단속된 사용자 콘텍스트은, 새로운 디바이스들을 위해 UPnP 네트워크(314)를 모니터링하는 것, 자원 정보를 공유하는 것 등과 같은, UPnP 기능들의 집합에 관련된 액세스 특권들을 제공한다. 그러나, 단속된 사용자 콘텍스트은, 디스크에 저장되어 있는 자원들을 실제로 판독하고, 삭제하며, 거기에 기입하는 것과 같은, 매체 서버(302)를 구현하는데 필요한 컴퓨터 시스템에 의해 제공되는 소정 자원들의 액세싱을 허용하지 않을 수도 있다. (CDDM 서비스 모듈(504)에 의해 사용되는) 로컬 시스템 사용자 콘텍스트은 이러한 코어 컴퓨터 자원으로의 액세스를 제공하고, 또한, 이러한 컴퓨터 자원들에 대한 액세스 허가를 변경해, 단속된 사용자 콘텍스트이 이러한 컴퓨터 자원들에 액세스하는 것을 허용할 수 있다. 따라서, (매체 서비스 모듈(502)에 의해 사용되는) 단속된 사용자 콘텍스트 및 (CDDM 서비스에 의해 사용되는) 로컬 시스템 사용자 콘텍스트는 UPnP 공유 기능을 구현하는데 필요한 기능을 제공하기 위해 서로 보완한다. (제어 패널 모듈(506))에 의해 사용되는) 로그온된 사용자의 사용자 콘텍스트는 로그온된 사용자( 예를 들어, 사용자(508))와 구체적으로 관련된 액세스 특권을 제공한다.
매체 서버(302)의 자원들 및, 좀더 광범위하게는, 매체 서버(302)를 호스팅 중인 컴퓨터 시스템의 자원을 보호하기 위해서는, 상이한 보안 사용자 콘텍스트에 상이한 기능을 할당하는 것이 바람직할 수 있다. 예를 들어, 매체 서버(302)는, 매체 서버(302)에 로그되어 있는 매체 서버 사용자들이 전혀 없는, 백그라운드 모드에서 소정 동작을 실행할 수 있다. 하나의 이러한 백그라운드 동작은, 치명적인 시스템 오류가 존재하거나 네트워크(314)에서 새로운 매체 렌더링 디바이스 또는 제어 포인트가 검출되었을 때, 매체 서버 사용자에게 통지하는 단계를 수반한다(어느 경우에서든, 이것은 제어 패널 모듈(506)을 스타트업하는 것에 의해 수행된다). 이러한 백그라운드 태스크와 관련된 기능이 매체 서버(302)에 의해 제공되는 모든 시스템 자원과 직접적으로 상호 작용하는 것을 금지하는 것이 바람직할 수 있다. 이를 위해, 매체 서버(302)는, 로컬 시스템 사용자 콘텍스트에서 실행되는 CDDM 서비스 모듈(504)을 사용해 (단속된 사용자 콘텍스트에서 실행되는) 매체 서비스 모듈(502)을 보완한다. 상술된 바와 같이, CDDM 서비스 모듈(504)은, 단속된 사용자 콘텍스트에 대해 사용이 금지된 코어 시스템 자원들에 액세스하기 위해 필요한 액세스 특권을 가진다.
다음 논의에서는, 설명의 편리함을 위해, 단속된 사용자 콘텍스트가 로컬 서비스 사용자 콘텍스트를 사용하는 특정 구현의 콘텍스트에서 설명된다. 로컬 서비스 사용자 콘텍스트는, 종래의 다른 사용자 어카운트(user accounts)이 그런 것처럼, 통상적으로 컴퓨터 시스템으로의 상호 작용적인 로그온을 허용하지 않는 Microsoft Windows® 오퍼레이팅 시스템에 의해 생성되는 특수 어카운트를 의미한다. 그러나, 상술된 바와 같이, (이 또한 Microsoft Windows® 오퍼레이팅 시스템의 소정 사용자 콘텍스트을 의미하는) 네트워크 서비스 콘텍스트 또는 다른 사용자 콘텍스트를 사용해 단속된 사용자 콘텍스트를 구현할 수도 있다. 로컬 서비스 사용자 콘텍스트 및 네트워크 서비스 사용자 콘텍스트 모두는 그와 관련된 특권의 유사한 세트를 갖지만, 이들 사용자 콘텍스트에 의해 제공되는 이점은 동일하지 않다. 예를 들어, 네트워크 서비스 사용자 콘텍스트는, Windows® 오퍼레이팅 시스템을 실행 중인 네트워크에 결합되어 있는 다른 머신에 의해 인식되는 증명을 제공한다. 이에 비해, 로컬 서비스 사용자 콘텍스트 증명은 사용자의 로컬 머신(local machine)에서만 인식되며, 또한, 일 머신의 로컬 서비스 사용자가 다른 머신에서는 인증될 수 없다.
도 3의 콘텍스트에서 도입된 자원 정보 공유 기능(322)은 집합적으로, 위에서 식별된 3개 컴포넌트(502, 504, 506)를 표현한다. 이들 상술된 컴포넌트 각각이 다음에서 차례로 설명될 것이다.
a. 매체 서비스 모듈(Media Service Module)
우선, 장치 모니터링 모듈(device monitoring module: 520)은 UPnP 네트워크(314)에 결합되어 있는 장치로부터 통지를 수신한다. 예를 들어, 이 모듈(520)은, UPnP 네트워크(314)에 추가된 새로운 렌더링 디바이스에 의해 생성된 고지를 검출한다. 그 다음, 이 모듈(520)은 매체 서버(302)의 다른 모듈에 이러한 이벤트를 통지하는데, 이것은 (예를 들어, 도 16 및 도 17을 참조하여, 다음에서 부연될) 다 른 동작을 트리거한다. 또한, 디바이스 모니터링 모듈(520)은 UPnP 네트워크(314)에 결합되어 있는 제어 포인트에 의해 형성되는 요청도 검출한다. 도 5에서 지시되는 바와 같이, 자원 정보 소비자(예를 들어, 간략화를 위한 "소비자")는 매체 서버(302)에 의해 제공되는 자원 메타데이터를 통해 브라우즈 또는 검색하기 위해 이러한 요청을 개시할 수 있다. 그 다음, 디바이스 모니터링 모듈(520)은 컨텐츠 디렉토리 서비스 모듈에 이러한 요청을 통지하는데, 이것은 (다음에서 부연될) 다른 동작을 트리거한다.
자원 모니터 모듈(522)은 새롭게 추가, 삭제, 또는 변경된 자원을 위해 (도 3에서 소개된) 자원 저장소(320)를 모니터링한다. 변경들의 검출시에, 자원 모니터 모듈(522)은 컨텐츠 디렉토리 서비스 모듈(526)에 자원들의 변경을 통지한다. 컨텐츠 디렉토리 서비스 모듈(526)은 자원 저장소(320)에서 제공된 자원들의 디렉토리를 보유한다. 도 5에서 지시되는 바와 같이, 컨텐츠 디렉토리 서비스 모듈(526)은 자원 저장소(320)에 의해 제공되는 자원을 통해 브라우즈 또는 검색하기 위한 요청을 입력한 소비자와도 상호 작용한다. 컨텐츠 디렉토리 서비스 모듈(526)은, 소비자의 요청을 충족시키며 요청에 수반될 수 있는 임의의 배포 기준을 충족시키는 이용 가능한 자원을 설명하는 자원 메타데이터를 검색해 소비자에게 전송하는 것에 의해 이러한 요청에 응답한다.
자원 저장소(320) 자체는 자원의 단일 리포지토리(repository) 또는 다수 리포지토리를 표현할 수 있다. 자원 저장소(320)는 자기 저장 디바이스, 광학 저장 디바이스, EEPROM 저장 디바이스, 및/또는 임의의 여타 종류의 저장 디바이스를 사 용해 구현될 수 있다. 자원 저장소(320)에 저장될 수 있는 공유 가능한 예시적 자원으로는 .bmp 이미지 파일, .gif 이미지 파일, .jpeg 이미지 파일, .png 이미지 파일, .tiff 이미지 파일, .avi 비디오 파일, .mp3 오디오 mpeg 파일, .mpeg 비디오 mpeg 파일, .wav 오디오 파일, .wma 오디오 파일, .wmv 비디오 파일 등을 들 수 있다. 이것은 단지 설명을 위한 예시적 리스트일 뿐이다. 자원 저장소(320)는 매체 서버(302)의 다른 부분과 함께 배치되거나, 전체적으로 또는 부분적으로, 적어도 하나의 개별 로케이션에 배치될 수 있다. 후자의 경우, 매체 서버(302)는 자원 저장소(320)에서 제공되는 자원을 원격적으로 관리할 수 있다.
자원 전송 모듈(524)은 자원 컨텐츠의 (도 3에 나타낸 매체 렌더링 디바이스(306)와 같은) 매체 렌더링 디바이스로의 전송을 조정한다. 일 구현에서는, 자원 전송 모듈(524)이 HTTP 서버이다. 자원 컨텐츠의 전송은 (HTTP 서버가 사용되는 경우의 HTTP GET 요청과 같은) 자원 컨텐츠 요청의 수신에 의해 개시된다. 자원 전송 모듈(524)은, (적용 가능하다면) 관련 배포 기준들이 충족되는 자원 컨텐츠를 전송하는 것에 의해 응답한다. 일 구현에서는, 자원 전송 모듈(524)이 접속 관리자 서비스 모듈(530)의 지원으로 이러한 태스크를 수행한다. 접속 관리자 서비스 모듈(530)은 매체 서버(302)와 자원 컨텐츠를 수신할 렌더링 디바이스간의 결합을 관리한다. 제어 포인트(예를 들어, 제어 포인트(314 또는 316))는 매체 서버(302)를 자원 정보의 임박한 전송에 대비시키기 위해 이 모듈(530)을 호출할 수 있다. 이러한 대비는 매체 서버(302)와 렌더링 디바이스의 기능들을 매칭시키는 단계, UPnP 네트워크(314)로 입력 중인 자원 정보의 전송에 관한 정보를 발견하는 단계, 및 매체 서버(302)와 렌더링 디바이스간의 접속을 설정하고 분리하는(tearing up) 단계를 수반할 수 있다. (HTTP 기술을 사용해 자원 컨텐츠 전송을 수행하는 예시적인 특징적 구현은 위에서 식별된 기능들 중 적어도 하나을 면제하는 것에 의해 프로세싱을 단순화할 수 있다는 것에 주의한다.)
예시적이고 설명적인 HTTP 일 구현에서, 접속 관리자 서비스 모듈(530)은 GetProtocolInfo 방법을 지원할 수 있다. 이 방법은, 매체 서버(302)가 공급하고 수신할 수 있는 프로토콜 정보 유형들의 콤마로 분리된 리스트를 리턴한다. 제어 포인트는 이 정보를 사용해 매체 서버(302)와 선택된 렌더링 디바이스(예를 들어, 매체 렌더링 디바이스(306))간에 매체 접속을 설정한다. 각각의 ProtocolInfo 엔트리는, Protocol:Network:Content_Format:Additional Info의 포맷에 의해 집합적으로 특정되는, 전송 프로토콜, 네트워크, mime(multipurpose Internet mail extensions) 유형, 및 추가 정보의 조합이다.
매체 서비스 모듈(502)은 (도시되지 않은) 선택적인 AV(audio-visual) 전송 서비스 모듈을 포함할 수도 있다. 지원된다면, AV 전송 서비스 모듈은 렌더링 디바이스로의 자원 컨텐츠 재생을 제어하는데 사용될 수 있다. 이 모듈은 구체적으로, 제어 포인트가 자원 컨텐츠 흐름을 중단시키고, 자원 컨텐츠 흐름을 중지시키며, (탐색 기능을 사용해) 자원 컨텐츠내에 특정 로케이션을 검색하는 것 등을 허용할 수 있다.
도 5의 구체적인 예에서, 매체 서비스 모듈(502)은 HTTP 서버(524)를 사용해 (HTTP 1.1 서버와 같은) 자원 컨텐츠의 전송을 조정할 수 있다. 이 서버(524)는 HTTP GET 요청의 수신에 응답하여 자원 컨텐츠를 배포한다. HTTP GET 요청은 소정 자원의 URL을 특정하는데, 소정 자원는 수신 엔티티(예를 들어, 제어 포인트)로의 선행 자원 메타데이터 전송에 응답하여 매체 렌더링 디바이스에 제공되었으며, 이러한 전송은 소비자의 앞선 검색 또는 브라우즈 요청에 의해 유발되었을 수 있다. 서버(524)는, 특정된 URL에 대응되는 자원 저장소(320)로부터 자원 컨텐츠를 검색하고, (필요하다면) 자원 컨텐츠를 요청된 매체 포맷으로 변환하며, 적용 가능한 관련 배포 기준들이 충족된다면, 이러한 자원 컨텐츠를 소비자에게 제공하는 것에 의해, 응답한다. 자원에 대한 URL은 다음과 같은 예시적 형태일 수 있는데,
http://machine ip:port/ResourceId
이 경우, "ResourceId"는 컨텐츠 디렉토리 서비스 모듈(526)에 의해 자원 컨텐츠에 할당된 식별자를 의미한다. HTTP-GET 프로토콜 대신에 사용될 수 있는, 자원 컨텐츠 전송을 위한 다른 프로토콜로는 IEEE-1394, RTSP/RTP 등을 들 수 있다.
컨텐츠 디렉토리 서비스 모듈(526)은, 매체 서버(302)가 자원 정보(특히 자원 메타데이터)를 매체 렌더링 디바이스들에 배포할 수 있도록 허용하는 기능의 코어를 제공한다. 컨텐츠 디렉토리 서비스 모듈(526)은 공유 자원 저장소(532)를 포함한다. 일 구현에서, 공유 자원 저장소(532)는 자원 저장소(320)에서 제공된, 공유될 자원을 설명하는 디렉토리 및 관련된 자원 메타데이터를 포함한다.
좀더 구체적으로, 일련의 도면에서 조금 앞을 참조하면, 도 6은, 공유 자원 저장소(532)의 정보를 가상 자원 컨테이너로 편성하는데 사용될 수 있는 예시적인 계층 구조, 예를 들어, 디렉토리(600)를 나타낸다. 이 도면에서, "루트" 자원 컨 테이너(602)는 디렉토리(600)의 다른 모든 자원 컨테이너을 포함한다. "음악" 자원 컨테이너(604)는 음악을 분류하는 자원 컨테이너를 포함한다. "음악/모든 음악" 자원 컨테이너(606)는 컨텐츠 디렉토리내에서 공유되고 있는 모든 음악 자원을 포함한다. "음악/앨범" 자원 컨테이너(608)는 각 앨범에 대한 자원 컨테이너를 포함하는데, 이 경우, 이러한 자원 컨테이너 각각은 그 앨범에 속하는 음악 자원을 포함한다. "음악/연주자" 자원 컨테이너(610)는 각각의 연주자에 대한 자원을 포함하는데, 이 경우, 이러한 자원 컨테이너 각각은 그 연주자에 의해 생성된 모든 음악 작품에 대한 자원을 포함한다. "음악/장르" 자원 컨테이너(612)는 각 장르에 대한 자원 컨테이너를 포함하는데, 이 경우, 이러한 자원 컨테이너 각각은 그 장르에 속하는 음악 작품에 대한 자원을 포함한다.
"비디오" 자원 컨테이너(614)는 비디오를 분류하는 자원 컨테이너들을 포함한다. "비디오/모든 비디오" 자원 컨테이너(616)는 컨텐츠 디렉토리내에서 공유되고 있는 모든 비디오 자원들을 포함한다. "비디오/액터" 자원 컨테이너(618)는 각 액터에 대한 자원 컨테이너들을 포함하는데, 이 경우, 이러한 자원 컨테이너 각각은 그 액터가 주연한 비디오 자원들을 포함한다. "음악/장르" 자원 컨테이너(620)는 각각의 장르에 대한 자원를 포함하는데, 이 경우, 이러한 자원 컨테이너 각각은 그 장르에 속하는 비디오 자원들을 포함한다.
"사진" 자원 컨테이너(622)는 사진을 분류하는 자원 컨테이너를 포함한다. "사진/모든 사진" 자원 컨테이너(624)는 컨텐츠 디렉토리내에서 공유되고 있는 모든 이미지 자원을 포함한다. (나타내지는 않았지만, 폴더 이름에 기초하는, 각각 의 사진 앨범에 대한 자원 컨테이너를 포함하는, "사진/앨범" 자원 컨테이너가 포함될 수 있다. 또한, 나타내지는 않았지만, 소정 날짜에 찍은 사진들의 각 그룹에 대한 자원 컨테이너를 포함하는, "사진/찍은날짜(pictures/datetaken)" 자원 컨테이너가 포함될 수도 있다.)
마지막으로, "사용자 파일" 자원 컨테이너(626)는 개별 사용자에게 속하는 자원을 보유 중인 자원 컨테이너를 포함한다. 도 6은 예시적인 N 사용자와 관련된 자원 컨테이너(628)의 집합을 나타낸다.
디렉토리(600)의 자원 컨테이너 각각은 그와 관련된 오브젝트 ID를 가질 수 있다. 예를 들어, 비디오/액터 자원 컨테이너는 "container:VideoActor"의 오브젝트 ID를 가질 수 있다. 일반적으로, 도 6에 나타낸 디렉토리(600)는 예시적이며, 다른 디렉토리가 자원의 상이한 편성(organizations) 및 선택(selections)을 사용할 수 있다.
일 구현에서는, 디렉토리(600)에 나타낸 컨테이너의 개별 자원 각각은 자원 저장소(330)에 저장되어 있는 각각의 개별 자원 파일에 대응될 수 있다. 그러나, 상술된 바와 같이, "자원"은 정보의 추상적 집합으로 이해되어야 한다. 단일 자원은 파일의 일부만을 사용해 저장될 수 있다(이 경우, 이러한 파일은 다른 자원에 관련된 정보를 저장할 수도 있다). 다른 방법으로, 단일 자원는 상이한 파일의 집합에 걸쳐 저장될 수 있다. (도 6의 자원 컨테이너와 같은) 자원 집합 자체가 자원을 구성한다는 것에도 주의한다.
도 5로 돌아가면, 공유 자원 저장소(532)는 디렉토리(600)의 공유된 자원과 관련된 자원 메타데이터(534)를 포함한다. 상술된 바와 같이, 자원 메타데이터는 일반적으로, 이름, 연주자, 생성된 날짜, 자원의 사이즈, 자원 컨텐츠와 관련된 URL과 같은 자원 로케이터 등과 같은, 자원의 컨텐츠를 설명하는 하이 레벨의 정보를 포함한다. 공유 자원 저장소(532)는, (자원 메타데이터 및 자원 컨텐츠를 포함하는) 자원 정보의 유포를 개개 제어 포인트 및 렌더링 디바이스의 적절한 소비자에게로 한정하는데 사용되는 자원 집합(예를 들어, 자원 폴더 또는 자원 컨테이너)과 관련된 기준을 설명하는 기준 정보(536)을 저장할 수도 있다. 상술된 바와 같이, 예시적 일 기준은, 어떤 디바이스가 자원 정보를 수신하도록 인증되는지를 통제할 수 있다. 다른 기준은, 자원 정보의 전송이 발생하기 위해서는, (존재한다면) 매체 서버(302)를 조작 중인 특정한 어떤 개인이 동의를 제공해야 하는지를 통제할 수 있다.
좀더 구체적으로, 섹션 A.1에서 설명된 바와 같이, 기준들 정보(536)는, 자원 메타데이터의 유포를 통제하는 세트 및 자원 컨텐츠의 유포를 통제하는 다른 세트의 기준의 2개 세트를 포함할 수 있다. 이러한 세트는 2개의 개별 저장소로서, 공통 저장소와 관련된 필드 또는 속성(attributes)으로서, 또는 다른 기술을 사용해 구현될 수 있다. 기준의 제1 세트는, 상이한 제한들이 자원 컨텐츠의 렌더링에 비교되는 자원 메타데이터의 디스플레이를 통제한다는 것을 지시하며, 기준의 제2 세트와 상이할 수 있거나, 이러한 2개 세트가 동일할 수도 있다. 자원 메타데이터, 자원 컨텐츠, 또는 자원 메타데이터와 자원 컨텐츠 모두의 유포를 통제할 단일 세트가 사용될 수도 있다. 다음의 논의를 용이하게 하기 위해, 기준 정보(536)는 기준의 단일 세트를 보유하며, 그러한 단일 세트가 자원 메타데이터 뿐만 아니라 자원 컨텐츠의 배포에 적용된다고 가정할 것이다.
일 구현에서는, 자원 메타데이터(534)가 각각의 공유된 자원과 관련되는데, 이 경우, 공유된 자원은 자원 저장소(320)에 저장되어 있는 파일에 대응될 수 있다. 이 경우, 자원 메타데이터(534)는 서비스 초기화시에 공유 파일을 통해 "크롤링(crawling)"하는 것에 의해 추출될 수 있다. 공유 파일의 수에 따라, 이 동작은 상당한 시간이 걸릴 수도 있다. 다른 구현에서는, 자원 메타데이터(534)가 공유된 자원 저장소(532)의 관계 데이터베이스에 존속될 수 있다. 또 다른 예에서는, 자원 메타데이터(534)가 자원 저장소(320)의 모든 공유 파일들로부터 추출되어 적어도 하나의 개별 파일에 저장될 수 있다. (예를 들어, 매체 서버(320)는 자원 저장소(320)에서 사용된 모든 파일 시스템 볼륨에 대해 별개 파일을 사용할 수 있는데, 이 경우, 각각의 파일 시스템 볼륨은 별개의 드라이브 레터(drive letter)에 대응될 수 있다. 이러한 규정은, 특히, USB 하드 드라이브와 같은, 분리형 볼륨이 이용되는 경우의 자원 메타데이터 수집을 용이하게 하는데, 매체 서버(302)는, 그것의 대응되는 드라이브가 현재 탑재되어 있는 볼륨으로부터만 자원 메타데이터 판독을 시도할 것이다.) 관계 데이터베이스 및/또는 개별 파일의 사용은 매체 서버(302)의 초기화와 관련된 시간을 감소시킬 것이다. 예를 들어, 개별 파일(들) 전략이 사용될 경우, 개별 파일(들)은, 이러한 정보를 추출하기 위해 전체 자원 저장소(320)를 통해 힘들게 크롤링하는 것에 비해, 자원 메타데이터(534)를 제공하기 위한 메모리로 재빨리 로드될 수 있다.
마찬가지로, 일 구현에서는, 기준 정보(536)가 자원 저장소(320)에 의해 제공되는 공유 가능한 개별 자원 폴더와 관련될 수 있다. 이 경우, (자원 저장소(320)에 의해 제공되는 개개의 공유 자원 폴더에 속하는) 공유 파일에 관한 기준 정보(536)는, 상술된 바와 동일한 방식으로 서비스 초기화시에 공유 자원 폴더를 통해 "크롤링"하는 것에 의해 추출될 수 있다. 이것은 상당한 시간이 걸릴 수 있다. 따라서, 프로세스를 촉진시키기 위해, 매체 서버(302)는 (자원 메타데이터의 저장 및 관리를 위해 상술된 경우와 유사한) 관계 데이터베이스 전략 및/또는 개별 파일(들) 전략에 의존할 수 있다. 일 구현에서는, 기준-특정 관계 데이터베이스 및/또는 개별 파일(들)이, 자원 메타데이터(534)를 제공하는데 사용되는 메타데이터-특정 관계 데이터베이스 및/또는 개별 파일(들)과는 구별되는 기준 정보(536)를 제공하는데 사용된다. 다른 구현에서는, 단일 관계 데이터베이스 및/또는 개별 파일(들)을 사용해 자원 메타데이터(534) 및 기준 정보(536) 모두를 저장할 수 있다. 또 다른 구현에서는, 자원 메타데이터(534) 및/또는 기준들 정보(536)가 Windows® 오퍼레이팅 시스템 리포지토리에 보존되어 역판독될 수 있다.
상기한 바와 같이, 일 구현에서는, 기준 정보(536)가 자원 폴더에 적용될 수 있다. 매체 서버 사용자는, 자원 폴더에 관한 정보를 디스플레이하는 적어도 하나의 사용자 인터페이스 페이지를 통해 이러한 관련을 생성할 수 있다. 다른 구현에서는, 기준 정보가 (도 6에 나타낸) 디렉토리(600)의 자원 컨테이너 또는 디렉토리(600)에 포함되어 있는 개별 자원과 관련될 수 있다. 매체 서버(302) 또한, 자원 컨테이너에 관한 정보를 디스플레이하는 적어도 하나의 사용자 인터페이스 페이지 를 통해 이러한 관련을 생성할 수 있다. 다음의 논의는 (자원 폴더들을 기준과 관련짓는) 전자의 경우를 구현하기 위한 기능을 설명하지만, 유사한 기능이 (자원 컨테이너들을 기준과 관련짓는) 후자의 경우를 구현하도록 제공될 수 있다. 양자의 경우에서, 배포 기준은 자원 메타데이터 및 자원 컨텐츠의 유포를 통제하는데 사용될 수 있다. (매체 서버(302)의 자원에 대한 내부 편성을 의미하는) 자원 컨테이너들의 편성은 일반적으로 (매체 서버 사용자가 상호 작용하는 자원의 편성을 의미하는) 자원 폴더의 계층 구조와 매칭될 것으로 기대되지 않지만, 이들 2개 편성(예를 들어, 자원 컨테이너 및 자원 폴더) 사이에는 관련이 있을 수 있다.
자원 메타데이터(534)의 구성에 어떤 방법이 사용되는지와 무관하게, 매체 서버(302)는, 어떤 메타데이터가, 자원 메타데이터(534)를 보유하는데 사용되는 저장소에 저장되도록 허용될 것인지에 관해 다양한 제한을 둘 수 있다. 일례에서는, 다음의 예시적 제한:(a) 자원 정보를 공유 중인 매체 서버 사용자는 공유되고 있는 자원 정보를 저장하는 파일(들)에 대한 판독 허가를 가져야 하고; (b) 공유되고 있는 자원 정보를 저장하는 파일(들)은 공지의 매체 유형을 가져야 하며; (c) 공유되고 있는 자원 정보를 저장하는 파일(들)이 하드 링크 또는 브라우저 쇼트컷(browser shortcut)이라면, 자원 정보를 공유하고자 하는 매체 서버 사용자는 기초적인 자원에 대한 판독 허가를 가져야 하고; (d) 공유되고 있는 자원 정보를 저장하는 파일(들)은 은닉될 수 없으며; (e) 공유되고 있는 자원 정보를 저장하는 파일(들)은 은닉 서브폴더일 수 없고; (f) 공유되고 있는 자원 정보를 저장하는 파일(들)은 착탈식 드라이브에 저장될 수 없으며; (g) 공유되고 있는 자원 정보를 저장 하는 파일(들)은 네트워크 공유 상태일 수 없다는 제한이 적용된다. 역시, 이러한 제한은 예시일 뿐이고, 다른 애플리케이션은 특정 애플리케이션의 요구 사항에 따라 이러한 제한 중 적어도 하나을 완화하거나 제거할 수 있다.
도 5의 논의를 계속하면, 컨텐츠 디렉토리 서비스 모듈(526)은 공유 자원 관리 저장 모듈(shared resource management storage module: 538)도 포함한다. 이 모듈(538)은 일반적으로 공유 자원 저장소(shared resource storage: 532)에 저장되어 있는 정보를 관리하는 역할을 한다. 예를 들어, 자원 모니터 모듈(resource monitor module: 522)이 공유 자원 관리 모듈(538)에, 자원이 자원 저장소(320)로부터 추가, 변경, 또는 삭제되었다는 것을 통지할 경우, 공유 자원 관리 모듈(538)은 공유 자원 저장소(532)를 업데이트한다.
일 구현에서, 공유 자원 관리 모듈(538)은 계속해서, 처음에 공유 자원 폴더 각각을 배포한 매체 서버 사용자를 추적한다. 공유 자원 관리 모듈(538)은, 공유 자원 폴더를 확립한 매체 서버 사용자(media server user)에게만 그러한 공유 자원 폴더와 관련된 배포 기준 정보(536)를 변경하거나 그러한 자원 폴더를 "공유 해제(unshare)"하는 것(즉, 그러한 자원 폴더의 공유 가능한 상태를 제거하는 것)을 허용하도록 구성될 수 있다. 예를 들어, 일 구현에서는, 매체 서버 사용자가 파일(A, B, 및 C)을 공유하기 위한 액세스 특권(access pribileges)을 확립했다고 가정한다. 이 경우, 공유 자원 관리 모듈(538)은 이 사용자에게만 이러한 파일에 대한 배포 기준을 적용하는 것을 허용하도록 구성될 수 있다. 파일(A, B, 및 C)이, 이러한 매체 서버 사용자가 공유하기 위한 권한을 갖고 있지 않은 다른 자원을 포함 하는 폴더로 분류되었다고 가정한다. 공유 자원 관리 모듈(538)이 매체 서버 사용자에게 배포 기준을 폴더에 적용하는 것을 허용하도록 구성되어 있다면, 이러한 기준은 그럼에도 불구하고 파일(A, B, 및 C)에 대해서만 효과가 있을 것이다. 다른 구현은 이러한 제한을 다양한 방식으로 완화할 수 있다.
자원 메타데이터(516)가 개별 파일 또는 파일로 제공되는 경우에, 공유 자원 관리 모듈(538)은 이러한 개별 파일(들)을 유지하기 위한 기능을 포함할 수도 있다. 이러한 기능은 서비스 초기화시의 디렉토리(600)에서 식별된 공유 파일에서 변화를 찾으면서 자원 저장소(320)의 공유 파일을 통해 "크롤링"하는 백그라운드 프로세스(background process)를 포함할 수 있다. 이러한 기능은 자원 폴더에서 변화가 검출될 경우 통지를 제공하기 위해 자원 모니터 모듈(522)과 상호 작용하는 메커니즘을 포함할 수도 있다. 공유 자원 관리 모듈(538)은, 개별 파일(들)이 손상되었다고 판정되면 이들 파일(들)을 파기할 수 있고, 공유 자원 관리 모듈(538)은, 그로부터 메타데이터를 추출하기 위해, 공유 자원 폴더를 통해 크롤링하는 것에 의해 개별 파일(들)을 후속적으로 재구성할 수 있다. 일반적으로, 공유 자원 관리 모듈(538)은 다양한 여타의 일관성 기법(coherency techniques)을 이용해, 개별 파일(들)이 정확하게 공유 자원의 메타데이터를 반영한다는 것을 보장할 수 있다.
동작시에, 컨텐츠 디렉토리 서비스 모듈(526)은 일반적으로, 소비자로 하여금 공유 자원에 대응되는 자원 메타데이터를 조사할 수 있게 한다. 특히, 통상적인 상호 작용에서, 소비자는, 디렉토리(600)에서 제공되는 공유 자원과 관련된 자 원 메타데이터를 통해 브라우즈 또는 검색하기 위한 요청을 제어 포인트를 통해 송신한다. 디바이스 모니터링 모듈(device monitoring module: 520)은 이후 부연되는 방식으로 이러한 요청을 검출하고, 그에 응답하여, 컨텐츠 디렉토리 서비스 모듈(526)에 통지한다. 컨텐츠 디렉토리 서비스 모듈(526)은, 자원 메타데이터(534)를 스캔해서 소비자의 요청을 충족시키는 자원을 찾아냄으로써 응답한다. 예컨대, 소비자는 컨텐츠 디렉토리 서비스 모듈(526)에 소정 장르의 자원 메타데이터 모두를 나타낼 것을 요청했거나, 소비자는 (예컨대, 목표 자원(targeted resource)의 검색에 사용하기 위한 특정 키워드를 특정하는 것에 의해) 컨텐츠 디렉토리 서비스 모듈(526)에 목표 자원에 관한 자원 메타데이터를 제공할 것을 요청했을 수도 있다. 이러한 프로세스는 적어도 하나의 매칭 자원 메타데이터 항목을 발생시킬 수 있다. 이어서, 컨텐츠 디렉토리 서비스 모듈(526)은, 적용 가능하다면, 공유 자원 저장소(532)에 저장되어 있는 기준 정보(536)에 대해 임의의 매칭 자원 메타데이터를 조사하고 관련 기준을 충족시키지 않는 임의의 매칭 자원 메타데이터 항목을 골라낼 수 있다. (기준 정보가 자원 정보의 유포에서 역할을 수행하지 않도록, 이러한 규정을 비활성화할 수도 있다.) 이어서, 컨텐츠 디렉토리 서비스 모듈(526)은 남아 있는 매칭 자원 메타데이터의 리스트를 XML 메시지로 포매팅한 다음, 이러한 XML 메시지를 소비자에게 전송할 것이다. 이러한 자원 메타데이터는 개개의 매칭 자원 뿐만 아니라, 적용 가능하다면, 개개의 멤버 자원을 포함하는 (자원 컨테이너와 같은) 자원 집합(resource collections)도 설명할 수 있다.
수신 중인 제어 포인트 디바이스는 XML 메시지를 제시 포맷(예를 들어, HTML)으로 변환한 다음, 이 정보를 소비자의 검토를 위해 디스플레이할 수 있다. 이러한 디스플레이는, 매칭 자원 메타데이터를 식별하는 매체 리스트를 제공할 수 있다. 그 다음, 소비자는 매체 렌더링 디바이스(316)에 매체 리스트의 적어도 하나의 항목과 관련된 자원 컨텐츠를 재생할 것을 명령할 수 있다. 이것은, 매체 리스트의 선택된 항목과 관련된 (URL과 같은) 자원 로케이터를, 렌더링 디바이스(306)와 같은, 선택된 렌더링 디바이스로 전달하는 것에 의해 수행될 수 있다. 이러한 자원 로케이터는 매체 서버(302)에 의해 소비자에게로 송신된 XML 메시지에 특정되어 있다. (그러나, 여기에서도, 브라우즈 동작의 결과가 자원 컨테이너, 예컨대, 컨테이너의 리스트를 반환할 수 있다는 것에 주의해야 하는데, 자원 컨테이너는 그와 관련된 자원 로케이터를 가질 수도 있고 그렇지 않을 수도 있으며, 그렇지 않다면, 컨테이너에서 식별된 개별 자원은 재생을 위해 렌더링 디바이스에 제시될 수 있다고 하더라고, 컨테이너 자체는 그럴 수 없다.)
매체 서비스 모듈(502)의 다른 일 컴포넌트는 제어 패널 COM 오브젝트(540)이다. 일반적으로, 이 오브젝트(540)로 인해, 제어 패널 모듈(506)은 매체 서비스 모듈(502)의 구성 데이터를 검색하고 설정할 수 있다. 예시적 구현에서, 오브젝트(540)는 COM(component object model) 오브젝트이다. 일반적으로, COM 오브젝트는 적어도 하나의 태스크(tasks)를 수행한다. 즉, COM 오브젝트는, 애플리케이션이 그것의 소속 태스크(its ascribed tasks)을 수행하기 위해 호출할 수 있는 인터페이스를 통해 기능을 노출시킨다.
매체 서비스(502)의 콘텍스트에서, 제어 패널 모듈(506)은 제어 패널 COM 오 브젝트(540)를 통해 매체 서비스 모듈(502)과 상호 작용한다. 이러한 역할을 수행하기 위해, 제어 패널 COM 오브젝트(540)는 다음의 예시적 태스크를 실행한다. 첫번째, 제어 패널 COM 오브젝트(540)로 인해, 제어 패널 모듈(506)은 발견된 디바이스를 열거하고, 그들의 현재 상태(예를 들어, 이들이 승인되었는지, 거부되었는지, 또는 승인되지도 거부되지도 않았는지의 여부)를 검색하며, UI를 채우는데 사용되는 (디바이스의 제조자, 아이콘, 모델 번호 등과 같은) 디바이스 정보를 얻고, 디바이스를 승인 또는 거부할 수 있다. 두번째, 제어 패널 COM 오브젝트(540)로 인해, 제어 패널 모듈(506)은, 자원 저장소(320)에 저장되어 있는 공유 가능한 자원을 포함하는 공유 자원 폴더 및 (이러한 공유 자원 폴더와 관련된 자원 정보를 수신하도록 허용된 디바이스의 리스트와 같은) 이러한 자원 폴더와 관련된 임의의 관련 배포 기준 정보(536)의 리스트를 관리할 수 있다. 이를 위해, 제어 패널 COM 오브젝트(540)는, 제어 패널 모듈(506)이 현재의 공유 자원 폴더 및 그들과 관련된 배포 기준 정보(536)의 리스트를 검색하고, 이러한 자원 폴더를 공유 해제하며, 새로운 공유 자원 폴더 및/또는 배포 기준를 생성하고, 공유 자원 폴더와 관련된 배포 기준를 변경하는 것 등을 허용한다. 마지막으로, 매체 서비스 모듈(502)이 UPnP 네트워크(314)에서 새로운 제어 포인트 또는 매체 렌더링 디바이스를 발견할 경우, 매체 서비스 모듈(502)은 제어 패널 COM 오브젝트(540) 및 (다음에서 부연될) 제어 패널 호스트형 콜백 오브젝트(542)를 사용해 제어 패널 모듈(506)에 통지한다.
FUS(Fast User Switching)를 수용하기 위해, 매체 서버(302)는, 다수의 제어 패널 모듈(506)이 동시에 활성화될 수 있게 한다. 그러나, 일 구현에서는, 매체 서버(502)가, 각각의 터미널 서비스 세션(terminal service session)으로 하여금 단 하나의 활성 제어 패널 모듈(506)을 갖게 한다.
b. CDDM 서비스 모듈
상술된 바와 같이, 매체 서비스 모듈(502)은 로컬 서비스 사용자 콘텍스트(또는 좀더 일반적으로는, 구속된(clamped-down) 사용자 콘텍스트)에서 실행되지만, CDDM 서비스 모듈(504)은 로컬 시스템 사용자 콘텍스트에서 실행된다. 로컬 서비스 사용자 콘텍스트는 일반적으로 로컬 시스템 사용자 콘텍스트에 비해 좀더 한정적인 액세스 특권을 가진다. 따라서, 매체 서비스 모듈(502)은, 단독으로 수행하기 위한 액세스 권한을 갖고 있지 않은 일련의 기능을 수행하기 위해 CDDM 서비스 모듈(504)에 의존한다. 예시적 일 구현에 따라, CDDM 서비스 모듈(504)로 위임된 특권 기능이 다음에서 설명된다.
첫번째, CDDM 서비스 모듈(504)은, 새로운 매체 렌더링 디바이스(306) 또는 제어 포인트(316)가 디바이스 모니터링 모듈(520)에 의해 네트워크에서 검출되었을 때, 제어 패널 모듈(506)을 시작하는 역할을 수행한다. 이로 인해, 매체 서버 사용자는 디바이스를 승인 또는 거부할 수 있다. 승인된 디바이스는 후속적으로 매체 서버(302)의 공유 자원에 대응되는 자원 정보(자원 메타데이터 및 자원 컨텐츠)에 액세스하는 것이 허용된다. (a) 매체 서비스 사용자가 매체 서버(302) 컴퓨터에 로그온한다면(또는, 후술되는 바와 같이, 이전에 확립된 터미널 서버 세션을 이 컴퓨터에서 재접속한다면); 그리고 (b) 매체 서버(302)가 어떠한 매체 서버 사용자 에 의해서도 승인되거나 거부되지 않은 디바이스를 먼저 검출했다면, CDDM 서비스 모듈(504)은 또한 제어 패널 모듈(506)을 시작한다.
또한, CDDM 모듈(504)은, 매체 서버 사용자에게 다양한 오류 또는 조건을 경보하기 위해 제어 패널 모듈(506)을 시작한다. 예를 들어, CDDM 서비스 모듈(504)은, 사전에 구성된 허용 가능한 IP 어드레스 범위(예를 들어, 개인 IP 어드레스 범위 또는 자동 IP 어드레스 범위)의 IP 어드레스를 가진 네트워크 인터페이스가 발견되지 않을 경우, 매체 서버 사용자에게 경보할 수 있다. 또는, CDDM 서비스 모듈(504)은, 자원 정보 공유 기능(322)이 실행되지 않았을 때, 자원 저장소(320)의 공유 자원 폴더가 삭제되거나 개명되었다는 것을 매체 서버 사용자에게 경보할 수 있다. 일반적으로, CDDM 서비스 모듈(504)은 현재 활성화되어 있는 로그온된 사용자의 콘텍스트에서 제어 패널 모듈(506)을 런칭(launching)한다. CDDM 서비스 모듈(504)은, 로그온된 사용자의 토큰을 검색하고 CreateProcessAsUser 기능을 호출하는 것에 의해 제어 패널 모듈(506)을 시작한다. 그러나, 그렇게 하기 전에, CDDM 서비스 모듈(504)은, 제어 패널 모듈(506)이 현재적으로 활성화되어 있는 로그온된 사용자의 터미널 서버 세션에서 이미 실행 중이 아니라는 것을 확인한다.
두번째, CDDM 서비스 모듈(504)은, 매체 서비스 모듈(502)이 (자원 메타데이터(534)를 구성하는 것과 같은) 그것의 소속 기능을 수행하기 위해 자원 폴더에 액세스할 수 있도록, 저장된 자원 폴더와 관련된 액세스 특권을 조정한다. 이것은, 공유 자원 폴더와 관련된 ACL(access control list)을 변경하여 로컬 서비스 사용자 콘텍스트에 의한 액세스를 허용하는 것에 의해, 수행될 수 있다. 예시적 구현 에서, 이것은 로컬 서비스 사용자 콘텍스트에 자원 폴더의 컨텐츠에 대한 판독, 기입, 및 삭제 액세스를 제공한다. (즉, 자원 폴더는 ACL되어 로컬 서비스 사용자 콘텍스트에 판독 액세스 뿐만 아니라 기입 및 삭제 액세스를 제공하는데, 이것은, 일부 매체 유형은 UPnP 네트워크(314)를 통해 이용 가능화 되기 전에, 디코딩되어야 하기 때문이다. 파일을 디코딩하는데 사용되는 도구는 때때로 파일을 포함하는 디렉토리에 임시 파일을 생성한다. 그 다음, 임시 파일은 삭제되어야 한다.
세번째, CDDM 서비스 모듈(504)은, 새로운 매체 서버 사용자가 매체 서버(302)를 구현하는데 사용되는 컴퓨터 시스템에 가입하거나 로그오프하는 때를 검출하기 위해 매체 서버(302)를 모니터링한다. 이것은 매체 서버(302)에 로그된 매체 서버 사용자의 ID도 확인한다. 즉, 상술된 바와 같이, 매체 서비스 모듈(502)은, 현재 매체 서버 컴퓨팅 머신에서 활성화되어 있는 로그온된 매체 서버 사용자의 ID에 따라, 자원 정보의 공유를 한정할 수 있다. 따라서, 매체 서비스 모듈(502)은 CDDM 서비스 모듈(504)에 의해 추출된 사용자 정보를 사용해, 그것이, 현재 활성화되어 있는 로그온된 매체 서버 사용자의 관점에서 자원 정보를 배포할 권한을 가지는지의 여부를 판정할 수 있다. (CDDM 서비스 모듈(504)은, 로그온된 매체 서버 사용자의 토큰을 검색하기 위한 WTSQueryUserToken 기능을 사용하고 GetTokenInformation 기능을 사용해 토큰으로부터 매체 서버 사용자의 SID를 검색하는 것에 의해, 매체 서버 사용자의 ID를 판정할 수 있다.)
c. 제어 패널 모듈(Control Panel Module)
제어 패널 모듈(506)은, 매체 서버 사용자가 UPnP 네트워크(314)에 추가된 새로운 디바이스의 인증을 승인 또는 거부할 수 있게 하는 기능을 제공한다. 또한, 제어 패널 모듈(506)은, 매체 서버 사용자로 하여금 공유 자원 폴더 및 관련된 배포 기준을 정의할 수 있게 한다. 상술된 바와 같이, 하나의 기준은 자원 정보(예를 들어, 자원 메타데이터 및 자원 컨텐츠)의 유포를 특정된 디바이스만으로 한정할 수 있다. 다른 기준은, 자원의 유포가, 매체 서버(302)를 사용 중인 특정 개인이 자원 정보를 공유하기 위한 암시적 또는 명시적 승인을 제공했는지의 여부에 의존하게 할 수 있다. 특정 개인은, 그 또는 그녀가 단지 매체 서버(302)에 로그되었고 개인의 세션이 현재 활성화되어 있다면, (일 구현에서는) 암시적인 승인을 제공했다고 간주된다. 제어 패널 모듈(506)은, 일련의 UI 제시(예를 들어, UI 페이지)을 통해, 위에서 식별된 태스크를 수행할 수 있다. 이러한 UI 제시는 다음의 섹션 B에서 부연될 것이다. 제어 패널 모듈(506)은 애플릿(애플릿은 애플리케이션의 콘텍스트에서 실행되는 프로그램이다)으로 구현될 수 있고 로그온된 매체 서버 사용자의 콘텍스트에서 실행될 수 있다.
매체 서버(302)는 2가지 방법으로 제어 패널 모듈(506)을 활성화할 수 있다. 첫번째, 매체 서버 사용자는 제어 패널 모듈(506)을 수동으로 활성화할 수 있다. 두번째, 매체 서비스 모듈(502)은, 예컨대 새로운 렌더링 디바이스가 UPnP 네트워크(314)에 결합되었을 때, 매체 서버 사용자에게 통지하기 위해 자동적으로 제어 패널 모듈(506)을 시작할 수 있다.
일 구현에서, 매체 서버(302)는 각각의 터미널 서버 세션에 제어 패널 모듈(506)의 단일 인스턴스(single instance)를 제공한다. 따라서, 제어 패널 모듈 (506)이 스타트업할 때, 그것은, 제어 패널 모듈(506)의 다른 인스턴스가 그 터미널 서버 세션에서 이미 실행 중이 아니라는 것을 확인한다. 그 다음, 제어 패널 모듈(506)은, 매체 서비스 모듈(502)이 실행 중인지의 여부를 판정하고, 그렇지 않다면, 제어 패널 모듈(506)은 그것을 스타트업한다. 이어서, 제어 패널 모듈(506)은, 매체 서비스 모듈(502)이 호스팅하는 (상술된) 제어 패널 COM 오브젝트(540)를 함께 생성한다. 마지막으로, 제어 패널 모듈(506)은, 그것이 호스팅하는 클라이언트 콜백 COM 오브젝트(542)를 생성한 다음, 제어 패널 COM 오브젝트(540)와 관련된 Initialize() 메소드(method)를 호출하여, 그것을 클라이언트 콜백 오브젝트(542)로 전달한다. 매체 서비스 모듈(502)은 클라이언트 콜백 오브젝트(542)를 사용해서, 서비스 셧다운, 백그라운드 데이터 변화, 또는 제어 패널 모듈(506)이 실행되고 있는 동안 UPnP 네트워크(314)에서 새로운 제어 포인트 또는 매체 렌더링 디바이스를 발견하는 것과 같은, 소정 이벤트를 제어 패널 모듈(506)에 통지한다.
A.4. FUS(Fast User Switching) 규정
FUS 기술은 개개의 상이한 매체 서버 사용자와 관련된 상이한 컴퓨팅 세션 사이에서의 스위칭을 위한 편리한 기술을 제공한다. 예를 들어, 본 기술은, 제1 매체 서버 사용자가 컴퓨터에 접속해 애플리케이션을 실행하도록 허용하고, 다른 애플리케이션을 실행하는 제2 매체 서버 사용자가 그 뒤를 따른다. 제2 매체 서버 사용자가 컴퓨터에 접속할 때, 컴퓨터는 제1 매체 서버 사용자의 세션과 관련된 애플리케이션 인스턴스 및 데스크탑 설정을 보존할 것이다. 제1 매체 서버 사용자가 컴퓨터에 재접속할 때, 컴퓨터는 제1 매체 서버 사용자가 접속 차단될 때의 그의 또는 그녀의 컴퓨터 세션과 관련된 애플리케이션 및 설정을 복구할 것이다. FUS 기술은, 컴퓨터를 연속적으로 이용하는 개개의 상이한 매체 서버 사용자와 관련된 다수의 애플리케이션 인스턴스 및 데스크탑 설정을 기록하는 것에 의해 상술된 방식으로 임의 수의 매체 서버 사용자 사이에서 토글링(toggling)할 수 있다. FUS를 제공하는 상용 제품의 일례가, Washington주, Redmond의 Microsoft® Corporation에 의해 제공되는, Windows XP® 오퍼레이팅 시스템이다. 대조적으로, 종래의 컴퓨팅 솔루션에서는, 제2 매체 서버 사용자가 컴퓨터에 접속하도록 허용하기 전에, 컴퓨터는 제1 매체 서버 사용자에게 로그아웃할 것을 요구함으로써, 제2 매체 서버 사용자가 동일한 컴퓨터에 접속할 때, 제1 매체 서버 사용자의 애플리케이션은 종료된다.
매체 서버(302)로의 FUS 기술 적용으로 인해, 제어 패널 모듈(506)의 다수 인스턴스가 동시에 존재할 수 있다. 예를 들어, 상술된 바와 같이, 제어 패널 모듈 인스턴스(506)는 매체 서버 사용자 A(508)와 관련되고, 제어 패널 모듈 인스턴스(510)는 매체 서버 사용자 B(512)와 관련되며, 제어 패널 모듈 인스턴스(514)는 매체 서버 사용자 C(516)와 관련된다. 그러나, FUS 기술의 상술된 UPnP 매체 서버 환경으로의 적용은 다양한 위험을 증가시킨다. 이 섹션은, 상술된 UPnP 매체 서버(302)의 콘텍스트에서 이러한 위험을 해결하는 예시적 FUS 솔루션을 설명한다.
첫번째, 매체 서버(302)는, 상술된 바와 같이, 동시에 실행되는, 제어 패널 모듈(506)의 적어도 하나의 인스턴스를 수용하지만, 매체 서버(302)는, 각각의 터미널 서버 세션이 하나의 제어 패널 모듈(506)만을 갖게 한다. 이러한 특징을 강 화하기 위해, 매체 서버(302)는, 각각의 제어 패널 모듈(506)이 COM 오브젝트(540)를 생성하고, 이 오브젝트(540)가 사용되기 전에 (Initialize() 메소드를 호출하는 것에 의해) 그것을 초기화할 것을 요구한다. Initialize 메소드를 호출할 때, 호출자는 클라이언트 콜백 COM 오브젝트(542)를 제공해야 한다.
좀더 구체적으로, 클라이언트가 Initialize() 메소드를 호출할 때, 매체 서비스 모듈(502)은 클라이언트의 위장(impersonation) 토큰으로부터 클라이언트의 터미널 서버 세션 ID를 추출한다. 그 다음, 매체 서비스 모듈(502)은, 이 세션 ID가 다른 클라이언트와 관련되어 있는지의 여부를 판정한다. 그렇다면, 매체 서비스 모듈(502)은, 그러한 클라이언트가 여전히 "활동 상태(alive)"인지를 판정하기 위해, 그러한 클라이언트의 콜백 오브젝트(542)로 호출된다. 클라이언트가 여전히 활동 상태라면, 새로운 클라이언트는 거절된다. 그렇지 않다면, 매체 서비스 모듈(502)은 새로운 클라이언트를 수용하고 클라이언트의 콜백 오브젝트(542)를 미래의 사용을 위해 보존한다.
두번째, 이제는 매체 서버(302)가 다수 매체 서버 사용자를 수용하기 때문에, 매체 서버(320)는, 새로운 디바이스가 네트워크(314)에 도입될 때 적어도 하나의 로그온된 매체 서버 사용자에게 통지하도록 구성될 수 있다. 매체 서버(302)는, 디바이스가 발견될 때, 매체 서버(302)에 로그되어 있는 매체 서버 사용자가 없는(또는 매체 서버 사용자는 로그온되어 있지만 디바이스가 발견될 때 비활성 상태인) 시나리오도 해결한다. 이러한 경우에서, 매체 서버(302)는, 매체 서버 사용자가 로그온하거나 기존 세션을 재개할 때까지, 매체 서버 사용자에게 새로운 디바 이스의 존재를 통지하는 것을 연기한다.
세번째, 제어 패널 모듈(506)은 동시에 활성화될 수 있는 모듈의 다른 인스턴스(예를 들어, 인스턴스(510 및 514))를 인식하고 디바이스의 인증 상태 또는 공유 자원 폴더의 리스트와 같은 전역 데이터(global data)를 변경한다. 이러한 상황을 해결하기 위해, 매체 서버(302)는, 임의의 클라이언트가 전역 데이터를 변경할 때, 활성화 상태인 모든 클라이언트과 관련된 COM 클라이언트 콜백 오브젝트(542)에게 통지한다.
마지막으로, 매체 서버(302)는, 제어 패널 모듈(506)로 "위장(masquerading)" 중일 수 있는 소위 변이 애플리케이션을 제외시키기 위한 메커니즘도 포함한다. 도 5는 이러한 변이 애플리케이션(rogue application: 544)의 일례를 나타낸다. 좀더 구체적으로, 매체 서버(302)는 매체 서비스 모듈(502)과 제어 패널 모듈(506) 사이에 (이것은 매체 서버(302)의 내부 컴포넌트를 다같이 결합시키기 때문에) 개인 API로서의 API(518)를 구현한다. 변이 애플리케이션(544)이 매체 서비스 모듈(502)로 호출되어 그것의 구성 데이터를 모방하는 것을 허용하며, 개인이 API(518)를 역설계하고자 시도할 수 있는 가능성이 존재한다.
이러한 염려를 해결하기 위해, 매체 서비스 모듈(502)은, 클라이언트가 성공적으로 제어 패널 COM 오브젝트(540)와 관련된 Initialize() 메소드를 호출할 때, 클라이언트에게 고유한 클라이언트 ID도 할당한다. 좀더 구체적으로, 매체 서비스 모듈(502)은, 클라이언트의 콜백 오브젝트(542)와 관련된 방법을 호출하는 것에 의해 클라이언트에게 이러한 ID를 통지한다. 매체 서비스 모듈(502)은 또한 할당된 ID를 기록한다. 그 다음, 클라이언트가 나중에 다시 서비스를 호출할 때, 클라이언트는 자신의 클라이언트 ID를 제공할 것이 기대된다. 매체 서비스 모듈(502)은 호출자의 현재 공급되는 ID를 검출하고 이 ID를 이전에 기록된 클라이언트 ID와 비교한다. 즉, 매체 서비스 모듈(502)은, 그것의 위장 토큰으로부터 클라이언트의 터미널 서버 세션 ID를 검색하는 것에 의해 클라이언트를 독립적으로 식별할 수 있으므로, 클라이언트에 의해 공급되어야 하는 클라이언트 ID를 알고 있다. 이러한 ID가 매칭되면, 매체 서비스 모듈(502)은 호출을 허용하지만, 그렇지 않으면, 매체 서비스 모듈(502)은 호출을 거절한다.
상술된 바와 같이, 다수 사용자가 동시에 매체 서버(302)에 로그될 수 있다. 매체 서버(302)는, 사용자와 관련된 개개의 클라이언트 토큰으로부터 추출된 터미널 서비스 세션 ID에 기초해 사용자를 구별하도록 구성될 수 있다.
따라서, 클라이언트 ID는, 변이 애플리케이션(544)이 제어 패널 모듈(506)을 "스푸핑(spoofing)"하는 것을 방지한다. 클라이언트에게 그것의 ID를 통지하기 위해 클라이언트 콜백 오브젝트(542)를 사용하는 것은, (ID를 Initialize() 메소드의 인수(arguments)로서 반환하는 다른 기술에 비해) 변이 애플리케이션에 대한 추가적인 보장을 제공한다. 이것은, 변이 애플리케이션(544)이 Initialize() 메소드를 호출할 때 COM 클라이언트 콜백 오브젝트(542)를 제공하는 추가 허들을 충족시켜야 하기 때문이다.
매체 서버(302)는, 매체 서비스 모듈(502) 및 제어 패널 모듈(506)이 이러한 2개 컴포넌트간의 공식적인 상호 작용을 확립하기 전에 다른 비밀 정보를 교환할 것을 요구하는 것에 의해, 추가적인 보안 계층을 제공할 수 있다.
A.5. 추가적인 보안 규정
(기준 정보(536)를 사용해 구현되는) 상술된 자원 공유 특징은, 인증된 사용자가, (예를 들어, 도 4를 참조하여 논의된 예시적인 가족-관련 애플리케이션에서 상술된 여러 이유로 인해) 매체 서버 사용자가 개인적인 것으로 유지하고자 하는 자원 정보에 액세스하는 것을 방지하는데 가장 흔히 사용된다. (일반적으로, 비교적 다수의 인증된 사용자를 가질 수 있지만, 그럼에도 불구하고 매체 서버 사용자는 소정 자원 정보를 이러한 UPnP 네트워크(314)의 인증된 참가자의 서브세트에게만 선택적으로 배포하고자 하는 임의의 설정에 UPnP 네트워크(314)를 적용하는 것을 의미하는) 기숙사 애플리케이션(dorm room application)과 관련하여서도 유사한 프라이버시 문제가 존재한다.
상술된 자원 공유 특징은, 비인가 엔티티에 의한 액세스로부터 UPnP 네트워크(314)의 자원을 보호하기 위한 메커니즘도 제공한다. 즉, 자원 공유 특징은 자원의 유포를 디바이스의 공지 영역(known universe)으로 제한한다. 따라서, 이러한 공지 영역 외부의 디바이스는 UPnP 네트워크(314)의 자원에 액세스하는 것이 금지된다. 또한, 자원 공유 특징은, 자원 정보 전달이 특정 매체 서버 사용자의 암시적 또는 명시적 동의에 의존하게 함으로써, 추가적인 보장을 제공한다.
그러나, 자원 공유 특징이, UPnP 네트워크(314)가, 특히 (인가된 사용자에 대비되는) 비인가 사용자의 경우와 관련하여, 직면하는 공지의 모든 보안 위협을 해결할 수 있는 것은 아니다. 또한, 비인가 사용자에 의해 제기되는 보안 위협은 본질적으로 동적이며 기회주의적(opportunistic)이므로, 그에 따라, 매체 서버 사용자는, 자원 공유 특징이 UPnP 네트워크(314)의 보안에 대한 장래의 예기치 못한 위험을 견디지 못할 수도 있다는 염려를 가질 수도 있다.
상기 염려는, 특히 비인가 사용자에 대해 UPnP 네트워크(314)의 자원 정보를 보호하도록 설계된 추가적인 보안 메커니즘으로 자원 공유 특징을 보완하는 것을 정당화한다. 추가적인 대책은 바람직하게도, 인가된 사용자가 그들의 소비를 위한 것이 아닌 사적인 자원 정보를 수신하지 않는다는 것도 추가적으로 보장할 것이다. 좀더 구체적으로, UPnP 네트워크(314)가 직면하는 2가지 이상의 보안 염려가 존재한다. 제1 보안 염려는, 비인가 엔티티가 UPnP 네트워크(314)에 의해 제공되는 자원 정보를 "활용(tapping)"할 가능성에 의해 제기된다. 이러한 엔티티는 UPnP 네트워크(314)의 외부에서 동작 중이며 케이블 모뎀, DSL 모뎀, 다이얼업 접속, 무선 접속, 또는 다른 여타 결합 전략을 통해 UPnP 네트워크(314)를 활용하고자 시도 중일 수 있다. 제2 염려는, 인가된 또는 비인가 엔티티가 자원 정보를 UPnP 네트워크(314)의 원래 범위를 벗어난 다수 청중에게 배포할 가능성에 의해 제기된다. 이것을 "초배포(superdistribution)" 시나리오라고 한다. 초배포는 의도적일 수도 그렇지 않을 수도 있다.
이 섹션은, 상기한 2가지 염려를 해결하기 위한 다수의 기술을 설명한다. 이러한 기술 중 어떤 것도 개별적으로, 즉, 다른 기술 없이, 적용될 수 있다. 또한, 매체 서버(302)는, UPnP 네트워크(314)가 이러한 염려를 완화한다는 것을 보장하기 위해, 이러한 기술 중 임의의 2, 3, 4 등을 포함하여, 이러한 기술의 임의 조 합을 적용할 수도 있다. 실제로, 일 구현에서는, 매체 서버(302)가 기술 모두를 적용할 수도 있다. 매체 서버(302) 또는 다른 관리 인터페이스는, 예를 들어, 적절하게 구성된 사용자 인터페이스 제시(user interface presentation)를 통해, 매체 서버 사용자에게 이러한 기술을 개별적으로 인에이블 또는 디스에이블할 수 있는 능력을 선택적으로 제공할 수 있다.
도 7은 매체 서버(302)에 의해 제공되는 다수의 보안 기술을 설명하기 위한 매체로서 기능하는 UPnP 애플리케이션을 나타낸다. 이러한 애플리케이션은 일반적으로 도 4에 제시된 애플리케이션 이후에 모델링된다. 본 애플리케이션은, 집(702)과 같은, 로컬 설정에 적용된다. 집(702)은 복수개 방을 포함한다. 각 방은 적어도 하나의 UPnP 디바이스를 포함할 수 있다. 도 7의 예시적 경우에서, 집(702)은 라우터(718)를 통해 디바이스(706-716)에 결합되어 있는 매체 서버(704)를 포함한다. 라우터(718) 또한 다른 라우터(720)에 결합되어 있다. 라우터(718)는 매체 서버(302)를 디바이스(706-716)에 결합시키기 위한 유선 접속 및/또는 무선 접속을 포함할 수 있다. 예를 들어, 디바이스 중 예시적인 하나(예를 들어, 디바이스(714))는 무선(예를 들어, RF, 적외선 등) 결합을 통해 라우터(718)와 통신한다.
도 7은 또한, 엔티티(722, 724, 및 726)를 포함하여, 집(702)에서의 UPnP 네트워크(314)와 상호 작용하도록 인증되지 않은 엔티티의 대표적인 샘플링을 나타낸다. 엔티티(722)는 디바이스(730)를 사용해, WAN(wide area network)과 같은, 네트워크를 통해 UPnP 네트워크(314)와의 상호 작용을 시도하는 중이다. 이 디바이 스는 무선 접속을 가진 매체 렌더링 디바이스 또는 유사한 디바이스를 나타낼 수 있다. 엔티티(724)는 디바이스(730)를 사용해, WAN과 같은, 네트워크를 통해 UPnP 네트워크(314)와의 상호 작용을 시도하는 중이다. 예를 들어, 이러한 디바이스(730)는 인터넷(732), 모뎀(733), 및 라우터(718)를 통해 매체 서버(704)에 결합되어 있는(또는, 다른 구현에서는, 인터넷(732) 및 모뎀(733)을 통해 직접적으로, 즉, 라우터(718)를 통해 라우팅되지 않고, 매체 서버(704)에 결합되어 있는) 임의 종류의 컴퓨터 디바이스(예를 들어, 퍼스널 컴퓨터, 서버 등)를 표현할 수 있다. 모뎀(733)은 다이얼업 모뎀, 광대역 모뎀, 또는 다른 종류의 모뎀일 수 있다. 마지막으로, 엔티티(726)는 장치(734)를 사용해 라우터(720)를 통한 UPnP 네트워크(314)와의 상호 작용을 시도하는 중이다. 이러한 미인가 엔티티 및 디바이스는, UPnP 네트워크(314)의 자원에 대한 액세스를 획득하고자 시도할 수 있는 상이한 종류의 광범위한 침입자(intruders)의 예시일 뿐이다.
상술된 엔티티를 저지하기 위해, UPnP 네트워크(314)는 다음의 메커니즘 중 적어도 하나을 포함할 수 있다.
a. IP 어드레스 제한하기(IP Address Limiting)
(도 3)의 자원 정보 공유 기능(322)은, 광대역 공중 트래픽을 제외시키는 효과를 가질, 소정의 비-공중 어드레스 범위로 제한될 수 있다. 예시적 일 구현에서, 소정 어드레스 범위는 192.168 범위(예를 들어, 예시적 일 구현에 따른 192.168.0.0 내지 192.168.255.255) 및 자동 IP 범위(예컨대, 예시적 일 구현에 따른 169.254.0.0 내지 169.254.255.255)이다. 예시적인 다른 비-공중 어드레스 범 위는 (예시적 일 구현에 따른) 10.0.0.0 내지 10.255.255.255 및 172.16.0.0 내지 172.31.255.255이다. 이런 범위 중 하나가 사용되거나, 이런 범위의 조합(또는 다른 범위(들))이 사용될 수 있다. 범위가 연속적일 필요는 없다(예를 들어, 이런 범위 중 어떤 것에 "사용 불가능한" 갭이 존재할 수 있다). 일반적으로, 위에서 특정된 범위는 다양한 관점에서(예를 들어, 범위의 "종점(endpoints)"을 변경하는 것에 의해) 변경될 수 있다.
설명을 위해, 192.168 및 자동-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)를 활용하는 것도 방지한다.
이러한 특징을 구현하기 위해, (도 5의) 자원 전달 모듈(524), 컨텐츠 디렉토리 서비스 모듈(526), 및 디바이스 모니터링 모듈(520) 모두는 소정 어드레스 범위의 인터페이스만을 모니터링하며 그리고/또는 다른 IP 어드레스로부터 기인하는 요청을 파기하도록 구성될 수 있다. 자원 정보 공유 기능(322)은, 이러한 어드레스 범위를 매체 서버 사용자 구성에 액세스 가능한 파라미터화하는 것이 아니라 그것을 하드 코딩하는 것에 의한 것과 같이, 매체 서버 사용자가(또는 그 문제를 위한, 다른 누군가가) 이러한 소정 어드레스 범위를 변경하는 것을 방지하는 다양한 메커니즘을 제공할 수 있다.
b. MAC 어드레스 인증
상술된 바와 같이, 자원 정보 공유 기능(322)은 디바이스의 MAC(media access protocol) 어드레스 또는 다른 디바이스-특정 정보를 사용해 그것을 인증한다. 이런 기술에서, 자원 정보 공유 기능(322)은 먼저 UPnP 네트워크(314)에 추가된 새로운 장치의 IP 어드레스를 식별한다. (새로운 디바이스는 먼저 도 5의 디바이스 모니터링 모듈(520)을 사용해 검출된다.) 그 다음, 자원 정보 공유 기능(322)은, 예를 들어, ARP(address resolution protocol)를 사용하는, Microsoft® Corporation의 Internet Protocol Helper에 의해 제공되는 SendARP 기능을 사용해소, IP 어드레스를 MAC 어드레스로 변환한다. 이어서, 상술된 바와 같이, 자원 정보 공유 기능(322)이, 예를 들어, (다음의) 섹션 B에서 논의될 사용자 인터페이스 제시를 사용해, 새로운 디바이스의 존재를 매체 서버 사용자에게 통지할 수 있다. 매체 서버 사용자가 디바이스를 인증하면, 자원 정보 공유 기능(322)은 IP 및 MAC 어드레스를 사용해, 디바이스가 후속적으로 (브라우즈 또는 검색 요청과 같은) UPnP 요청을 형성하거나 (HTTP GET 요청과 같은) 컨텐츠-관련 요청을 형성할 때, 디바이스를 인증한다. 비인가 디바이스로부터의 요청은 무시된다. (IP 어드레스는 DHCP 서버의 이용 가능성에 따라 변할 수 있으므로) IP 어드레스 단독으로는 신뢰할 수 없기 때문에, 요청이 기인하는 MAC 어드레스를 사용해 디바이스를 인증하는 것이 바람직하다.
이런 MAC 인증 기술은, 디바이스(728)와 같은, 무선 디바이스가 UPnP 네트워크(314)의 자원 정보로의 미인가 액세스를 획득하는 것을 방지하고자 할 때 특히 매력적이다. 예를 들어, 엔티티(722)가 집(702)에 의해 구동되는 중이었고 동시에 무선 액세스 디바이스(728)를 사용하는 중이었다면, 자원 정보 공유 기능(322)은, (매체 서버(704))의) 매체 서버 사용자에게, 그 또는 그녀가 이 디바이스를 인증하기를 원하는지의 여부를 물어보는 팝업 메시지를 디스플레이할 수 있다. 매체 서버 사용자가 액세스를 허용하는 것을 선택하지 않는다면, 자원 정보 공유 기능(322)은 이러한 디바이스(728)로의 액세스를 거부한다.
MAC 어드레스 인증은, (상기 서브섹션 (a)에서 설명된) IP 어드레스 제한과 같은, 다른 보안 대책과 함께 사용될 때 가장 의미가 있다. 예를 들어, IP 어드레스 제한이 수반되지 않는 MAC 인증은, 매체 서버(704)가 광대역 네트워크에 직접적으로 접속되어 있는 네트워크 구성에서는 (또는 매체 서버(704)가 다이얼업 접속을 통해 외부 기능에 접속될 경우에는) 적절한 보호를 제공하지 못할 수도 있다. IP 어드레스 제한이 없다면, 자원 정보 공유 기능(322)은 집 밖의 "이웃 (neighboring)" 디바이스를 검출하고 이러한 디바이스가 인증되어야 하는지의 여부를 매체 서버 사용자에게 질의할 수 있는데, 이것이 보안 리스크를 제기하지는 않겠지만, 팝업 메시지의 빈번한 디스플레이로 인해 불편을 줄 수 있다. 또한, 광대역(또는 다이얼업) 모뎀이 인터넷 서비스 제공자 네트워크상의 프럭시 ARP 라우터에 접속되어 있다고 가정한다. 이 경우, 자원 정보 공유 기능(322)은, 그것이 이런 장치 중 하나를 인증할 경우, 프럭시 ARP 라우터를 통해 라우팅되는 서브네트상의 모든 장치를 효과적으로 인증하게 될 것이다.
c. 서브넷 제한하기(Subnet Limiting)
예시적 일 구현에서, 자원 정보 공유 기능(322)은 그것의 네트워크 클라이언트에게 그것이 동작하고 있는 동일 서브네트상에서 동작할 것을 요구한다. 이러한 한정으로 인해, 자원 정보 공유 기능(322)은 자신의 로컬 서브네트 바깥의 클라이언트로부터 수신된 UPnP 액션 요청 및 자원 컨텐츠 검색 요청을 무시한다. 이것은, UPnP 네트워크(314)의 범위 밖에서 동작 중인 디바이스가 그것의 자원에 액세스할 수 있는 가능성을 더 감소시키는 효과를 가진다.
상술된 MAC 어드레스 인증 절차는, ARP 프로토콜이 서브네트 경계에 걸쳐 ARP 패킷을 전송하지 않기 때문에, 서브네트 경계에 걸쳐 작동하지 않아서, MAC 어드레스 인증이 사용되는 경우, 이 기술 또한 본질적으로 동작을 단일 서브네트로 한정하게 될 것이다. 그러나, 자원 정보 공유 기능(322)을 사용해 서브네트 제한을 강요하는 것은 SendARP()에 의해 제공되는 암시적 서브네트 제한과는 차이가 있는데, 예를 들어, 후자의 기술은 본 기술에서 사용되는 라우팅 테이블을 변경하는 것에 의해 절충될 수 있다.
또한, 디폴트로, (예를 들어, Windows® 오퍼레이팅 시스템 플랫폼상의 Microsoft® Corporation에 의해 제공되는) SSDP 서비스는 브로드캐스트 SSDP 고지를 서브네트로 제한한다는 것에 주의해야 한다. 즉, UPnP 디바이스는 SSDP를 사용해 네트워크를 통해 그들의 존재를 알리므로, 디폴트 설정의 경우, 자원 정보 공유 기능(322)이 다른 서브네트상의 UPnP 디바이스에 의해서는 검출되지 않을 것이다. 그러나, 이러한 SSDP 특징이 자원 정보 공유 기능(322)에 의해 수행되는 서브네트 제한과는 상이한데, 전자의 기술은 레지스트리의 구성 가능 설정에 의존하기 때문이다. 또한, SSDP 고지는 192.168 및 자동 IP 어드레스 범위로 제한되지 않는다.
d. TTL 제한하기(TTL Limiting)
자원 정보 공유 기능(322)은, 비인가 엔티티가 UPnP 네트워크(314)의 자원 정보와 상호 작용하도록 허용되는 가능성을 추가적으로 감소시키기 위해, 시간 대 라이브(time to live: TTL) 파라미터를 제한할 수 있다. 예시적 일 구현에서, TTL 파라미터는, 일반적으로 메시지가 소스 노드에서 수신지 노드로 송신되는 과정에서 메시지에 의해 트래버스되는 노드(예를 들어, 라우터와 같은, IP 레벨 3 노드)의 수에 대응되는 IP(Internet Protocol) 파라미터이다. 각각의 IP 패킷은 TTL 파라미터를 포함한다. UPnP 네트워크(314)의 콘텍스트에서, TTL 파라미터는 공유 자원과 관련된 자원 메타데이터를 포함하는 컨텐츠 디렉토리 서비스 모듈(526)에 의해 송신되는 메시지의 라우팅을 한정할 수 있다. 다른 방법으로 또는 그에 추가하여, TTL 파라미터는 응답의 라우팅을 (HTTP GET 메시지와 같은) 자원 컨텐츠 요청으로 한정할 수도 있다. (광대역 공중 네트워크를 통한 수신지로의 전송은 통상적으로 메시지를 3보다 많은 라우터에 노출시킬 것이기 때문에) 예를 들어, 숫자 3으로 설정된 TTL 파라미터는 광대역 공중 네트워크를 통한 자원 정보의 유포를 금지하기에 충분할 것이다. 자원 정보 공유 기능(322)이 UPnP 네트워크(314)를 하나의 라우터만을 수반할 수 있는 단일 네트워크로 한정하는 예시적 경우에, TTL 파라미터는 1만큼 낮게 설정될 수도 있다. 예시적 일 구현에서, 자원 정보 공유 기능(322)은, TTL 파라미터가 매체 서버 사용자(또는 임의의 다른 엔티티)에 의해 쉽게 변경될 수 없도록 하기 위해, TTL 파라미터를 하드 코딩할 수 있다.
예를 들어, TTL 파라미터가 1로 설정된 도 7의 예시적 경우를 살펴본다. 이러한 설정은, 매체 서버(704)가 자원 메타데이터 및 자원 컨텐츠를 엔티티(726)에 배포하는 것을 금지할 수 있는데, 이 엔티티(726)는 적어도 하나의 라우터를 통해 매체 서버(726)에 결합되어 있기 때문이다. 이와 같이, TTL 설정은, 차단된 액세스 심볼(738)에 의해 지시되는 바와 같이, 라우터(720)로의 액세스를 효과적으로 차단한다. TTL 파라미터를 낮은 값으로 설정하는 것 또한 인터넷(732)을 통한 자원 정보의 유포를 금지하게 될텐데, 이러한 광대역 전송은 그것의 최종 수신지로 라우팅하기 위해 다수의 중간 라우터를 필요로 할 것이기 때문이다.
e. 디바이스 및 세션 제한하기
자원 정보 공유 기능(332)은, 한번에 인증될 수 있는 UPnP 디바이스의 수를 (일례에서의 10개 디바이스와 같은) 소정 갯수로 제한할 수 있다. 일 구현에서는, 특정된 최대 갯수의 UPnP 디바이스가, 매체 렌더링 디바이스, 매체 서버, 제어 포 인트 등을 포함하여, UPnP 네트워크에 결합될 수 있는 모든 종류의 디바이스를 포함할 수 있다. 다른 구현에서는, 특정된 최대 갯수의 디바이스가, 오직 매체 렌더링 디바이스와 같은, UPnP 디바이스의 단지 하나 이상의 카테고리만을 수반할 수 있다. 자원 정보 공유 기능(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 인증 디바이스라는 것을 증명한 다음에야, 그 디바이스는 자원 컨텐츠 검색 요청을 사용해 자원 컨텐츠에 액세스하는 것이 허용될 것이다. (예시적 일 구현에서는, 사전에 승인되지 않은 상태에서 자원 컨텐츠를 검색하고자 하는 디바이스는, 그들이 새롭게 발견된 디바이스라 하더라도, 매체 서버 사용자에게 승인을 위해 제시되지도 않는다는 것에 주목해야 하는데, 다시 말해, 이러한 디바이스는 무시될 수 있다는 것에 주목해야 한다.)
추가적인 보호로서, 자원 정보 공유 기능(322)은, 자신을 매체 렌더링 장치 로서 고지한 모든 디바이스가 UDN(unique device number)을 가질 것을 요구할 수 있다. 일 구현에서, 자원 정보 공유 기능(322)은, 렌더링 디바이스의 UDN이 UPnP 네트워크(314)에서 현재적으로 검출되는 또는 이전에 검출된 다른 매체 렌더링 디바이스의 UDN과 상이하다는 것을 확인한다. 자원 정보 공유 기능(322)은, 매체 렌더링 디바이스의 UDN이 이미 검출된 UDN과 매칭되면, 매체 렌더링 디바이스로의 액세스를 조용히 거부할 수 있다. 또한, 디바이스가 일단 매체 렌더링 디바이스인 것으로 검출되었다면, 자원 정보 공유 기능(322)은, 그것의 UDN이 변경없이 유지될 것을 요구할 수 있다. 자원 정보 공유 기능(322)이 변화를 검출하면, 자원 정보 공유 기능(322)은 장치로의 액세스를 조용히 거부할 수 있다. 또한, 매체 렌더링 디바이스가 일련 번호를 가진다면, 자원 정보 공유 기능(322)은, 이 번호 또한 변경없이 유지될 것을 요구할 수 있다. 자원 정보 공유 기능(322)이 이 번호의 변화를 검출하면, 자원 정보 공유 기능(322)은 디바이스로의 액세스를 조용히 거부할 수 있다.
g. 자원 로케이터 폐기(Resource Locator Retirement)
상기한 바와 같이, 자원 정보 공유 기능(322)은 (이에 한정되는 것은 아니지만, HTTP URL과 같은) 자원 로케이터를 사용해 자원에 대한 로케이션을 정의한다. 각 자원 로케이터의 콤포넌트는, 관련된 자원 컨텐츠를 식별하는 자원 ID(예를 들어, ResourceID)이다. 자원 정보 공유 기능(322)은, 그것의 자원 컨텐츠 항목을 식별하는 자원 로케이터를 주기적으로 변경하는 것에 의해 또 다른 보안 대책을 제공할 수 있다. (다음의 논의에서, "자원 컨텐츠 항목(resource content item)"이 라는 용어는 자원 저장소(320)에 저장되어 있는 선택된 자원와 관련된 자원 컨텐츠를 의미하는데, "항목"이라는 용어는 단지 문법적 편의와 명료함을 위해 추가되었다.) 이것은, 자원 컨텐츠 항목을 식별하는 자원 ID를 주기적으로 변경하는 것에 의해 수행될 수 있다. 이러한 보호는, 자원 로케이터의 사용에 시간 제한을 두는 효과를 가질 것이다. 예를 들어, 소비자는 적어도 하나의 자원 로케이터를 검색하기 위해 UPnP 브라우즈 또는 UPnP 검색 동작을 수행할 수 있다. 그러나, 자원 정보 공유 기능(322)이 이러한 자원 로케이터를 주기적으로 변경하므로, 소비자는 비교적 시기 적절한 방식으로 (검색된 자원 로케이터를 사용하는) 자원 컨텐츠 검색 요청을 사용해 자원 컨텐츠 항목을 검색할 것이 강제된다. 소비자가 너무 오래 대기한다면, 이러한 자원 로케이터는 퇴색될 것이고 효력을 상실할 것이다. 따라서, 자원 로케이터가 비인가 엔티티에게 누설된다면, 이러한 자원 로케이터가 오랫동안 효력을 갖지는 않을 것이고, 이것이 자원 로케이터의 원치 않는 공개로 인해 발생되는 손해를 제한한다.
h. 다양한 자원 전달 모듈(524) 보안 대책
위에서 확인된 메커니즘 중 몇가지는 다양한 보안 위협에 대해 (예를 들어, HTTP 서버로서 구현될 수 있는) 자원 전달 모듈(524)을 보호하는데 도움이 된다. 예를 들어, IP 어드레스 제한 대책으로 인해, 자원 정보 공유 기능(322)은, 개인 범위(예를 들어, 192.168 범위) 또는 자동 IP 범위의 네트워크 인터페이스에서만 자원 전달 모듈(524)을 시작한다. 또한, 디바이스 및 세션 제한으로 인해, 자원 정보 공유 기능(322)은 자원 컨텐츠 검색 세션의 수를 소정 갯수(예를 들어, 10개 의 세션)로 제한하고 승인된 디바이스의 수를 소정 갯수(예를 들어, 10개의 디바이스)로 제한한다. TTL 제한으로 인해, 자원 정보 공유 기능(322)은 TTL 파라미터를 (3과 같은) 소정 수로 제한함으로써, 자원 컨텐츠 응답을 제공할 때 연루되는 라우터의 수를 한정할 수 있다. UPnP 액션 제한으로 인해, 자원 정보 공유 기능(322)은, 자원 컨텐츠 요청이 사전에 승인된 디바이스로부터 기인할 경우에만 자원 컨텐츠 요청을 서빙하며 다른 모든 요청은 무시할 수 있다. (좀더 구체적으로, 자원 정보 공유 기능(322)은, 자원 컨텐츠에 액세스하고자 하는 새로운 디바이스를 승인을 위해 매체 서버 사용자에게 제시할 필요가 없다.) 또한, 자원 정보 공유 기능(322)은, 자원 컨텐츠를 공유 중인 매체 서버 사용자가 파일 시스템상의 자원(예컨대, 파일)에 액세스하기 위한 권한을 가질 경우에만 자원 컨텐츠를 공유하는데, 이로 인해, 매체 서버(302)상의 자원로의 액세스가 거부된 매체 서버 사용자는 UPnP 네트워크(314)상의 장치에서 그것의 컨텐츠를 플레이할 수 없다. 자원 정보 공유 기능(322)은 추가적으로, 공유가 소정 디바이스로만 제한되어 있는지 아니면 매체 서버 시스템에 로그되어 있는 특정 개인으로 사전 조정되어 있는지를 판정할 것이다.
자원 전달 모듈(524)은 다양한 여타 보안 대책도 포함할 수 있다. 예를 들어, 자원 전달 모듈(524)은, 클라이언트가 통신 소켓(communication socket)을 개방하고 자원 컨텐츠 검색 요청을 부분적으로만 기입하거나 자원 컨텐츠 응답을 시기 적절한 방식으로 판독하지 않으면, "타임아웃"하도록 구성될 수 있다. 예시적 일 구현에서, 자원 정보 공유 기능(322)은 이러한 타임아웃을 5분으로 설정할 수 있다. 이러한 타임아웃은, 매체 서버 사용자(또는 다른 누군가)가 쉽게 이들 값을 변경하는 것을 방지하기 위해 하드 코딩될 수 있다.
다른 특징에 따르면, 자원 전달 모듈(524)은 자원 컨텐츠 검색 요청을, 약 4000개 문자와 같은, 소정 사이즈로 제한할 수 있다.
또 다른 특징에 따르면, 자원 전달 모듈(524)은 자원 로케이터를 평가할 수 있다. 평가는, 자원 로케이터가, http://machine ip:port/ResourceID(즉, HTTP URL이 사용되는 경우)와 같은, 소정 포맷을 준수하는지를 보장하는 단계를 수반할 수 있다. 또한, 자원 전달 모듈(524)은 요청 헤더를 주의깊게 파싱(parse)하고 평가할 수 있다.
A.6. URL 파라미터화 규정
도 3을 참조하여, 매체 서버(302)로부터의 자원 정보 검색은 4개의 주된 정보 교환을 포함할 수 있다는 것을 상기한다. (경로 324로써 표현된) 제1 교환에서, 소비자는 제어 포인트(316)를 사용해 UPnP 문의를 매체 서버(302)로 송신할 수 있다. 이러한 UPnP 문의는 브라우즈 요청 또는 검색 요청으로 구성될 수 있다. 브라우즈 요청에서, 소비자의 의도는 매체 서버(302)에 의해 제공되는 자원과 관련된 자원 메타데이터의 집합을 스캔하는 것이다. 검색 요청에서, 소비자의 의도는, 예를 들어, 다양한 검색 용어 등에 의해 식별된 매체 서버(302)에 의해 제공되는 특정 자원 메타데이터를 찾는 것에 좀더 목적을 둔다.
어느 경우에서든, (경로 326에 의해 표현되는) 제2 교환에서, 매체 서버(302)는, 소비자의 요청을 충족시키는 적어도 하나의 자원(예를 들어, 자원 저장소 (320)의 파일)과 관련된 자원 메타데이터를 제시하는 것에 의해 응답한다. 이러한 자원 메타데이터는, 타이틀, 장르, 연주자, 생성 날짜 등과 같은, 자원을 매칭하는 것에 관련된 다양한 하이 레벨의 정보를 포함할 수 있다. 이러한 자원 메타데이터는, 그로부터 자원 컨텐츠 항목이 검색될 수 있는 개개의 네트워크 로케이션을 식별하는 (URL과 같은) 자원 로케이터를 포함할 수도 있다. 논의를 용이하게 하기 위해, 이 섹션에서는, HTTP 서버와 함께 URL의 특정 사용이 가정되지만, 여기에서 설명되는 원리는 다른 종류의 자원 로케이터 및 관련된 자원 컨텐츠 서버에도 적용될 수 있다. (다음의 논의에서, "자원 컨텐츠 항목"이라는 용어는 자원 저장소(320)에 저장되어 있는 선택된 자원와 관련된 자원 컨텐츠를 의미하고, "항목"이라는 용어는 단지 문법적 편의와 명료함을 위해 추가되었다.)
자원 메타데이터를 살펴본 후, 소비자는, 렌더링 디바이스(326)와 같은, 렌더링 디바이스에서 플레이될 대응되는 자원 컨텐츠 항목을 선택한다고 가정한다. 이 경우, (경로 330에 의해 표현되는) 제3 교환에서, 소비자는, 렌더링 디바이스(305)가, 선택된 자원 컨텐츠 항목을 검색할 것을 매체 서버(302)에 지시하는 요청을 매체 서버(302)로 전송할 수 있게 한다. 예를 들어, 소비자는 선택된 자원 컨텐츠 항목과 관련된 URL을 렌더링 디바이스(306)로 전달할 수 있다. 렌더링 디바이스(306)는, HTTP GET 요청을, 선택된 자원 컨텐츠 항목을 특정하는 매체 서버(302)로 전송하는 것에 의해 응답한다. 이러한 HTTP GET 요청은 선택된 자원 컨텐츠 항목에 대응되는 (제어 포인트에 의해 그것으로 전달된) URL을 포함한다.
마지막으로, 매체 서버(302)는, URL에 의해 특정된 로케이션에서 선택된 자 원 컨텐츠 항목을 검색하는 것에 의해 HTTP GET 요청에 응답한다. (경로 332에 의해 표현되는) 제4 교환에서, 매체 서버(302)는 다음으로, 선택된 자원 컨텐츠 항목을 렌더링 디바이스(306)에 제공한다.
이 섹션의 나머지는 상술된 정보 교환의 효율성을 향상시키기 위한 기술을 설명한다.
우선, 자원 저장소(320)는 통상적으로, 파일을 정의된 원래의 매체 포맷으로 저장한다는 것에 주의한다. "매체 포맷(media format)"이라는 용어는, 그것이 저장 및/또는 렌더링되는 방법에 영향을 미치는, 자원에 관한 모든 특징을 포함한다. 예를 들어, 매체 포맷은 포맷 유형(예를 들어, 다양한 유형의 압축 및 비압축 포맷), 포맷 해상도 등을 특정할 수 있다. 예를 들어, 자원 저장소(320)는 RGB의 포맷 유형 및 640×480의 포맷 해상도를 가진 이미지 파일을 저장할 수 있다. 따라서, 렌더링 디바이스는, 그것이 RGB 포맷 유형으로 표현된 640×480 사이즈의 이미지를 프로세싱하도록 구성되어 있다면, 이 이미지 파일을 디스플레이할 수 있다. 또한, 매체 서버(302)는 소비자의 요청시에 자원를 그것의 원래 매체 포맷으로부터 다른 매체 포맷으로 변환하기 위한 (도시되지 않은) 기능을 포함할 수 있다. 또한, 자원 저장소(320)는 개개의 상이한 원래 매체 포맷으로 표현된 자원의 복수개 버전을 저장할 수 있다. 이와 같은 2개 중 어떤 경우에서든, 단일 자원와 관련된 상이한 매체 포맷은 복수개의 개별 자원을 구비하는 것으로 개념화될 수 있다. 따라서, 각각의 개별 자원에 대해, 매체 서버(302)는 상이한 매체 포맷에 대응되는 선택적 배포를 위한 복수개 자원을 제공하는 것으로 개념화될 수 있다.
본 명세서에서 설명되는 기술은, 소비자가 특정 매체 포맷에 상응하지 않는 자원 컨텐츠를 검색하도록 허용하기 위한 메커니즘을 제공한다. 매체 서버(302)는 이러한 목적을 상이한 방법으로 실현할 수 있다. 참조 프레임에 대해, 이러한 목적을 실현하는 한가지 방법은, 매체 서버(302)로 하여금 자원 컨텐츠 항목의 상이한 매체 포맷과 관련된 상이한 URL을 개별적으로 게시하게 하는 것이다. 예를 들어, 제1의 예시적 URL은 RGB의 포맷 유형 및 640×480의 포맷 해상도를 가진 자원 컨텐츠 항목을 특정할 수 있다. 제2의 예시적 URL은 동일한 자원 컨텐츠 항목을 특정하지만, 이번에는 YUV의 포맷 유형 및 1280×1024의 포맷 해상도를 가진 자원 컨텐츠 항목일 수 있다. 다른 예시적 매체 포맷은 다양한 아이콘과 매우 작은 크기의 버전, 및 다양한 표준 디스플레이 해상도 포맷에 대응된다. 그러나, 이러한 접근 방법은 여러가지 단점을 가진다. 예를 들어, 이러한 접근 방법은, 매체 서버(302)가 단일 "부모" 자원 컨텐츠 항목에 관한 상이한 매체 포맷 조합과 관련된 잠재적으로 대다수의 URL을 관리하고 게시할 것을 요구한다. 이처럼 많은 URL을 제공하는 것은 UPnP 네트워크(314)를 복잡하게 함으로써, UPnP 네트워크(314)상의 네트워크 트래픽을 증가시킬 수 있고, 다른 문제를 발생시킬 수 있다.
좀더 구체적으로, 일 구현에서는, 매체 서버(302)가, 각각의 매칭 자원에 대해 소위 "res" 요소를 제공하는 것에 의해, 브라우즈 또는 검색 UPnP 요청에 응답할 수 있다. "res" 요소는, 매칭 자원와 관련된 자원 컨텐츠 항목이 어디에서 발견될 수 있는지를 식별하는 URL을 포함한다. 상술된 솔루션은 매칭 자원 항목에 대응되는 다수 매체 포맷을 상이한 방식으로 특정할 수 있다. 예를 들어, 매체 서 버(302)는 (각각이 자신만의 URL을 가진) 개개의 매체 포맷과 관련된 각각에게 다수의 res 요소를 제공할 수 있다. 다른 방법으로, 매체 서버(302)는 각각의 매칭 자원에 대해, 각각이 (자신만의 URL을 가진) 개개의 매체 포맷과 관련되는, 다수의 매칭 항목을 발생시킬 수 있다. 이러한 솔루션 모두는 다양한 복잡성을 UPnP 네트워크(314)에 도입함으로써, 그것의 성능에 부정적인 영향을 미칠 수 있다.
또한, 상기 솔루션에서, 매체 서버(302)는 지원되는 매체 포맷의 관련 세트에 대응되는 URL의 제한된 세트만을 제공한다. 그러나, 제공되는 매체 포맷의 이처럼 제한된 세트는 자원 소비자의 필요를 충족시키지 못할 수도 있다.
이하에 설명되는 기술에서는, 매체 서버(302)가 소비자의 브라우즈 또는 검색 요청에 응답하여 이용 가능한 자원 컨텐츠 항목에 대해 단일 URL을 게시할 수 있고, 그러한 단일 URL은, 상이한 매체 포맷의 범위를 설명하도록 변경될 수 있는, 개개의 특징 속성을 특정하는 가변 파라미터를 포함할 수 있다. 즉, 매체 서버(302)는, 관련된 자원 컨텐츠 항목이 최선으로 제시될 것으로 판정되는 매체 포맷을 반영하는 그것의 가변 파라미터에 대해 채워진 원래의 디폴트 값을 가진 URL을 게시할 수 있다. "최선(best)"인 디폴트 매체 포맷의 판정은 적어도 하나의 기준에 기초할 수 있다. 제어 포인트(예를 들어, 제어 포인트(316))는, 매체 렌더링 디바이스에 의해 사용되는 고유한 매체 포맷을 수용하도록 또는 다른 고려에 기초해, 이런 디폴트 파라미터를 변경할 수 있다. 예를 들어, 제어 포인트(316)는, 그것의 접속 관리자 서비스 모듈에 의해 제공되는 GetProtocolInfo UPnP 동작을 호출하는 것에 의해, 매체 렌더링 디바이스(306)의 렌더링 기능을 판정할 수 있다. 그 다음, 제어 포인트(316)는, 렌더링 디바이스(306)의 제시 기능과 호환 가능하며 (매체 서버(302)에 의해 제어 포인트(316)로 리턴된 자원 메타데이터로부터 수집되는) 자원 자체가 지원할 수 있는 렌더링 포맷과도 호환 가능한 매체 포맷(또는 적어도 하나의 매체 포맷)을 선택할 수 있다. 자원 컨텐츠가 적어도 하나의 매체 포맷으로 표현될 수 있는 경우, 제어 포인트(316)는 소비자에게 이것을 경보하여, 소비자로 하여금 매체 포맷을 선택하게 할 수 있다. 이러한 태스크를 용이하게 하기 위해, 제어 포인트(316)는 지원되는 매체 포맷 정보를, 소비자가 이해하기 쉬운 정보로 변환할 수 있다. 또는, 제어 포인트(316)는 (예를 들어, 소비자가 과거에 무엇을 선택했는지 등에 대한 고려에 기초해) 다수의 가능한 포맷 중에서 선택하기 위해 자동화된 분석을 수행할 수 있다.
어떤 경우에서든, 파라미터를 변경하는 것은 변경된 URL을 발생시키고, 이어서, 변경된 URL은 자원 컨텐츠를 제시할 렌더링 디바이스(예를 들어, 렌더링 디바이스(306))로 전달된다. 그 다음, 렌더링 디바이스(306)는, 이러한 변경된 URL을 매체 서버(302)에 제출하는 것에 의해 변경된 URL에 대응되는 자원 컨텐츠 항목을 검색할 수 있다. 다른 방법으로, 렌더링 디바이스(306)는 (예를 들어, 원래의 URL을 렌더링 디바이스(306)로 전송한 다음, 그것을 매체 서버(302)로 전달하는 것에 의해) 그것의 파라미터 변경없이 원래의 URL을 매체 서버(302)로 단순히 역송신할 수 있다.
매체 서버(302)는, 매체 렌더링 디바이스(306)에 의해 그것으로 송신된 URL로부터 파라미터를 판독한 다음, 자원 컨텐츠 항목을 URL의 파라미터에 의해 특정 된 매체 포맷으로 매체 렌더링 디바이스(306)에 제공함으로써 응답한다. 이러한 동작은, 매체 서버(302)에 선택된 자원 컨텐츠 항목을 원래의 매체 포맷으로부터 URL의 파라미터에 의해 특정되는 매체 포맷으로 변환할 것을 요구할 수 있다. 또는, (파라미터가 변경이 불필요하다고 지시할 경우) 이 동작은 단순하게, 저장되어 있는 자원 컨텐츠 항목을 변경없이 제공할 것을 매체 서버(302)에 요구할 수도 있다. 다른 방법으로, 매체 서버(302)는 자원 컨텐츠 항목을 다수의 상이한 매체 포맷으로 저장했을 수도 있는데, 이 경우, 매체 서버(302)는, 그것을 변경할 필요없이 이용 가능하다면, 저장되어 있는 적당한 매체 포맷을 골라낼 수 있다.
일 구현에서, 매체 렌더링 디바이스(306)는 수신된 자원 컨텐츠 항목을, 그것이 매체 서버(302)로부터 수신한 매체 포맷으로 제시한다. 다른 구현에서, 매체 렌더링 디바이스(306)는 수신된 자원 컨텐츠 항목을, 그것을 제시하기 전에(또는 어쩌면, 그것을 단순히 저장하기 전 등에) 또 다른 매체 포맷으로 변환하기 위한 (도시하지 않은) 변환 기능을 포함할 수도 있다.
상술된 기술로 인해, 매체 서버(302)는 가능한 매체 포맷의 상이한 조합과 관련된 대다수 URL을 게시할 필요가 없다. 이것은 UPnP 네트워크(314)의 트래픽을 감소시킬 수 있게 하며 매체 서버(302)의 URL 관리 요구를 단순화한다. 또한, 이러한 전략은 제어 포인트(316)에, 한정된 수의 스톡 옵션 중에서 선택할 필요없이, 그것이 현재 처리하고 있는 렌더링 시나리오에 대한 그것의 필요에 가장 적합한 매체 포맷을 동적으로 재단할(tailor) 수 있는 유연성을 제공한다. 또한, 이러한 전략은, 제어 포인트가 상호 작용할 수 있는 상이한 매체 서버에 대한 매체 포맷을 제어 포인트가 재단할 수 있게 하는 표준적이고 균일한 기술을 제공한다.
일 구현에서, 매체 서버(302)는 적어도 하나의 기준에 기초해 URL에서 사용된 원래의 디폴트 값을 선택할 수 있다. 예를 들어, 매체 서버(302)는, 이러한 URL과 관련된 자원를 조사하는 것에 의해, URL에서 사용된 원래의 디폴트 값을 선택할 수 있다. 자원는, 바람직한 원래의 디폴트 값을 식별하는, 거기에 포함된 정보를 포함할 수 있다. 다른 방법으로, 매체 서버(302)는, 바람직한 원래의 디폴트 값을 판정하기 위해, 자원으로부터 추출된 정보에 대해 자신만의 분석을 수행할 수 있다. 또는, 매체 서버(302)는, 어떤 매체 포맷이 가장 인기가 있는지에 대한 고려 등과 같은, 자원 자체로부터 유도되는 것이 아닌 다른 요소(factor)를 사용할 수도 있다. 이러한 바람직한 초기 값을 선택하기 위한 또 다른 기술이 제공될 수 있다.
상술된 기술의 예시적인 세부 사항이 다음에서 제공된다. 상술된 자원 컨텐츠 검색 전략을 구현하는데 사용될 수 있는, 다음의 파라미터화된 예시적 URL을 고려한다.
http://ServerName/Tulips.jpg?format=YUV,width=640,height=480
URL은, 프로토콜 방식을 식별하는 제1 필드를 포함한다. 프로토콜 방식은 자원 컨텐츠 항목을 액세스하는데 사용되는 기술을 정의한다. 이 경우, 제1 필드는, 자원 컨텐츠 항목이 http(hypertext transfer protocol) 기술을 사용해 액세스될 것이라는 것을 지시하는 "http"를 특정한다. 제2 필드는 기관(authority)을 식별한다. 기관은 자원 컨텐츠 항목을 제공할 엔티티를 정의하는데, 통상적으로 자원 컨텐츠 항목을 제공하는 것은 서버이다. 이 경우, 제2 필드는 기관으로서 "ServerName"을 특정한다. 제3 필드는 자원 컨텐츠 항목에 액세스하는데 사용되는 경로를 특정한다. (이 경우, "Tulips.jpg"인) 경로는, 기관(예를 들어, ServerName 서버)으로 하여금 그것의 시스템에서 자원 컨텐츠 항목의 로케이션을 식별할 수 있게 한다. 제4 필드는 문의이다. 문의는 자원 컨텐츠 항목의 매체 포맷을 검색하는데 사용되는 정보를 포함한다. (매체 서버(302)는 상술된 파라미터화된 URL을 XML "res" 요소와 함께 제어 포인트(316)에 제공할 수 있다. res 요소는 URL 이외에 매칭 자원와 관련된 다른 메타데이터를 포함할 수도 있다.)
좀더 구체적으로, 예시적 일 구현에서, 상술된 URL의 제4 필드는, 자원를 렌더링하는데 사용되는 매체 포맷을 집합적으로 설명하는 다수의 파라미터를 포함한다. 상기 예에서, 제1 파라미터는 제시 포맷의 포맷 유형을 YUV로 특정하고, 제2 파라미터는 해상도 폭을 640으로 특정하며, 제3 파라미터는 해상도 높이를 480으로 특정한다. 이러한 파라미터는 단지 예일 뿐이다. URL은 추가적인 파라미터를 또는 더 적은 파라미터를 특정할 수 있다. 예를 들어, URL은, 이미지를 렌더링하는데 사용되는 채움 컬러(fill color)를 설명하는 3개의 추가 파라미터, 예를 들어, R(red)=x, B(blue)=y, 및 G(green)=z를 특정할 수 있다. (즉, 이미지가 렌더링될 때, 이미지가 렌더링 디바이스의 전체 디스플레이면을 커버하지 않을 수도 있는데, 채움 컬러는 이미지 컨텐츠를 포함하지 않는 그러한 디스플레이 영역에 디스플레이될 배경 컬러의 레드, 블루, 및 그린 성분을 특정한다.)
또한, 파라미터화된 URL은 위에서 특정된 포맷이 아닌 다른 구문 포맷 (syntactical formats)을 사용해 표현될 수 있다. 상기 포맷에서는, 각각의 파라미터가 "이름 = 값"의 구문을 가진 이름-값 쌍으로 특정된다. 그러나, 다른 구분은 이름 정보를 생략할 수 있는데, 이름 정보를 명시적으로 식별하는 대신에, 이 정보는 URL의 관련 값에 대한 위치로부터 추론될 수 있다. 이름 정보의 명시적인 식별을 생략하는 예시적 URL은 다음과 같다.
http://ServerName/Tulips.jpg?YUV,640×480
일부 파라미터에 대한 이름-값 구문 및 다른 파라미터에 대한 (이름을 명시적으로 식별하지 않는) 위치 구문 모두를 사용하는 혼성 포맷을 제공할 수도 있다.
어떤 포맷이 사용되는지에 관계없이, 매체 서버(302)는, 각각의 파라미터에 대해 선택될 수 있는 값의 범위에 관한 정보를 게시할 수도 있다. 예를 들어, 예시적 일 구현에서, 이름 파라미터는 YUV 또는 RGB의 값을 수용할 수 있고, 폭 파라미터는 0 내지 2048의 값을 수용할 수 있으며, 높이 파라미터는 0 내지 2048의 값을 수용할 수 있다. 매체 서버(302)는, 소비자의 브라우즈 또는 소비자의 검색 요청에 응답할 때, 자원 메타데이터 자체로 이러한 범위 정보를 게시할 수 있다. 다른 방법으로, 매체 서버(302)는 주기적인 기반으로, 예컨대, 하루에 한번, 한주일 한번 등으로, 범위 정보를 유포할 수 있다. 또 다른 방법으로서, 범위 정보는 공지의 허용 가능한 범위에 기초해 제어 포인트 및/또는 렌더링 디바이스에 사전-저장될 수 있으므로, 매체 서버(302)가 이러한 정보를 통신할 필요는 없다.
상술된 바와 같이, 제어 포인트(316)가 파라미터화된 URL을 수신할 때, 제어 포인트(316)는 (소비자의 도움으로 또는 소비자의 도움없이) 값의 특정 범위내에서 허용되는 임의의 값으로 파라미터를 변경할 수 있다. 예를 들어, 처음으로 식별된 예시적 URL을 고려한다. 소비자의 렌더링 디바이스(306)가 640×480의 해상도를 가진 YUV 이미지를 디스플레이할 수 있다면, 제어 포인트(316)는, 렌더링 디바이스(306)가 그것을 매체 서버(302)에 제출하기 전에 URL을 변경할 필요가 없을 것이다. 그러나, 매체 렌더링 디바이스가 1280×1024의 해상도를 가진 디스플레이상에 YUV 이미지를 디스플레이한다고 가정할 수 있다. 이 경우, 제어 포인트는 상술된 URL을 다음과 같이 변경할 수 있다.
http://ServerName/Tulips.jpg?format=YUV,width=1280,height=1024
렌더링 디바이스(306)는 이렇게 변경된 URL을 (그것을 제어 포인트로부터 수신한 후) 매체 서버(302)에 제출할 수 있다. 매체 서버(302)는, 소정의 자원 컨텐츠 항목을 검색하고 그것을 렌더링 디바이스(306)로 송신하기 전에 1280×1024의 특정 해상도로 변환하는 것에 의해, 응답할 것이다.
매체 렌더링 디바이스(306)가 RGB 이미지만을 디스플레이할 수 있는 다른 예를 고려한다. 이 경우, 제어 포인트는 (원래는 YUV 포맷 유형으로 특정된) URL을 다음과 같이 RGB 포맷 유형으로 변경할 수 있다.
http://ServerName/Tulips.jpg?format=RGB,width=1280,height=1024
이번에도, 매체 서버(302)는 자원 컨텐츠 항목의 이미지를 매체 렌더링 디바이스(306)로 송신하기 전에 그것을 RGB 이미지로 변환할 것이다. 또한, 매체 서버(302)는 렌더링 디바이스(306)의 해상도 기대치(예를 들어, 1280×1024)을 수용하기 위해 이 이미지를 스케일링할 것이다.
일 구현에서는, 매체 서버(302)가 렌더링 디바이스(306)의 스펙에 맞추기 위해 이미지의 해상도를 변환할 때, 매체 서버(302)는 원래 이미지의 가로세로비를 보존하고자 할 것이다. 이것은, 이미지가 렌더링 디바이스(306)상에서 부자연스럽게 왜곡되어 표시되는 것을 방지한다. 이것은, 이미지 컨텐츠를 포함하지 않는, 렌더링 디바이스의 디스플레이 표면 영역을 남길 수도 있다. URL에서 특정될 수 있는 채움 컬러가 사용되어 이러한 공백 영역에 배경 컬러를 디스플레이할 수 있다.
상기 예는 이미지를 렌더링하기 위한 파라미터화된 URL의 사용을 강조했다. 그러나, 이러한 전략은, 오디오 정보 및 비디오 정보와 같은, 다른 매체 및 정보 유형에도 적용될 수 있다. 예를 들어, PCM 오디오의 경우, URL은, 샘플링 속도, 채널의 수(모노, 스테레오, 5.1 서라운드 사운드 등), 및 샘플당 비트의 수를 특정하는 파라미터를 포함할 수 있다. 디지털 비디오의 경우, URL은, NTSC 또는 PAL이 렌더링 디바이스에서 사용될 것인지의 여부 등을 특정할 수 있다.
또한, 위에서 제시된 예는, 자원 컨텐츠의 포맷에 관한(예를 들어, 일반적으로 자원 컨텐츠가 저장되거나 그리고/또는 제시되는 방법에 관한) 개개의 특징적 속성을 설명하는 URL 파라미터의 사용을 강조했다. 그러나, 다른 파라미터는, 자원 컨텐츠의 다른 특징에 관한 속성을 설명할 수 있다. 예를 들어, 이러한 다른 파라미터는, 자원 컨텐츠가 재생될 자원 컨텐츠의 시작으로부터의 시간 간격 뿐만 아니라 재생 구간 등과 같은, 자원 컨텐츠의 재생에 관한 타이밍 정보를 설명할 수 있다.
또한, 상술된 예는, 단일 URL을 사용해 자원 컨텐츠 항목과 관련된 모든 매체 포맷 조합을 정의하는 경우를 설명하였다. 그러나, 매체 서버는 2이상의 URL을 사용해 자원 컨텐츠 항목의 상이한 태양을 표현할 수 있다. 예를 들어, 상이한 MIME 유형에 대해 상이한 URL이 생성될 수 있는데, 각각의 URL은 특정한 MIME 유형의 콘텍스트내에 적어도 하나의 파라미터를 포함할 수 있다. 예를 들어, 자원 컨텐츠 항목을 WMA 및 MP3 포맷으로 제시할 수 있는 매체 서버는 이러한 2개 포맷에 대응되는 2개의 URL을 제공할 수 있다. 이러한 URL 각각은 그들의 특정 MIME 유형내에 포맷 특징을 변경하기 위한 적어도 하나의 가변 파라미터를 포함할 수 있다. 예를 들어, WMA URL은, 128kbps의 비트 속도에서 90kbps의 비트 속도 등으로 변경될 수 있는 비트 속도 파라미터를 포함할 수 있다. 하나의 MIME 유형(또는 다른 카테고리 유형)으로부터 다른 것으로 변환하는 것을 "포맷간(inter-format)" 트랜스코딩이라고 할 수 있다. MIME 유형(또는 다른 카테고리 유형)내에서 파라미터를 변환하는 것을 "포맷내(intra-format)" 트랜스코딩이라고 할 수 있다. 그러나, 이것은 예시적인 일 시나리오일 뿐이다. 언급된 바와 같이, 상술된 구현은 단일 URL을 사용해, 포맷 유형을 포함하여, 자원 컨텐츠 항목의 모든 태양 사이에서 변환했다.
또한, 상술된 예은, 제어 포인트가 원래의 URL을 수신하고, 그러한 URL을 변경한 다음, 그렇게 변경된 URL을 매체 렌더링 디바이스로 전달하는(또는 변경이 없다면, 변경되지 않은 URL을 매체 렌더링 디바이스로 전달하는), 자원 컨텐츠 검색 절차를 설명했다. 그 다음, 매체 렌더링 디바이스는, 변경된 또는 변경되지 않은 URL에서 식별되는 자원 컨텐츠 항목을 리턴할 것을 매체 서버에 촉구하면서, 변경된(또는 변경되지 않은) URL을 매체 서버로 전달한다. 그러나, 다수의 다른 검색 방식이 사용될 수도 있다. 예를 들어, 제어 포인트는 원래의 URL을 검색하여 그것을 즉시 매체 렌더링 장치로 송신할 수 있다. 그 다음, 매체 렌더링 장치는 URL을 변경하고(또는 그것을 변경하지 않을 것을 결정하고) URL을 매체 서버로 전달한다. 이러한 구현에서, 제어 포인트는 매체 렌더링 디바이스의 렌더링 요구/특징을 조사할 필요가 없는데, 매체 서버 디바이스 자체가 현재, 요구되거나 바람직할 수 있는 URL의 어떤 변경을 핸들링하고 있기 때문이다. 또 다른 조합이 가능할 수도 있다. 예를 들어, 단일 수신 엔티티가 모든 기능을 수행하거나, 제어 포인트 및 매체 렌더링 디바이스 이외에 적어도 하나의 다른 엔티티가 이용되어 자원 정보의 검색에서 역할을 수행할 수 있다.
마지막으로, 상기 논의는, 매체 서버(302)가 변경된 URL을 수신하고, 변경된 URL에 기초해 자원 컨텐츠 항목을 프로세싱하며, 자원 컨텐츠를 렌더링 디바이스(또는 다른 수신 엔티티)에 배포하는 역할을 수행하는 일 구현에 기초하고 있었다. 그러나, 좀더 일반적으로, 매체 서버(302)는 이러한 태스크 각각을 또는 태스크의 상이한 할당을 수행하기 위한 다수의 에이전트 또는 모듈을 갖도록 구현될 수 있고(또는 갖는 것으로 개념화될 수 있고), 이러한 태스크를 수행하는 에이전트는 다같이 그리고/또는 매체 서버(302)의 다른 부분과 함께-배치될 수도 그렇지 않을 수도 있다. 예를 들어, 일 구현에서는, 매체 서버(302)가, 다같이 매체 서버(302)를 구성하는, 상술된 태스크를 수행하는 분산된 에이전트의 유리된 집합으로 보여질 수 있다.
B. 예시적인 사용자 인터페이스 제시(Exemplary User Interface Presentations)
예시적 일 구현에서, (도 5의) 제어 패널 모듈(506)은, 매체 서버 사용자가 매체 서버(302)와 상호 작용할 수 있게 하는 (페이지라고도 하는) 일련의 UI 제시를 제공한다. 예를 들어, 제어 패널 모듈(506)은 UPnP 네트워크(314)에 결합되어 있는 디바이스를 인에이블 또는 디스에이블하기 위한 제 1의 일련의 UI 페이지를 제공할 수 있다. 제어 패널 모듈(506)은, 매체 서버 사용자가 어떤 자원이 공유되어야 하는지 그리고 어떤 조건에 따라 자원이 공유되어야 하는지를 선택할 수 있도록 하기 위한 또 다른 일련의 UI 페이지를 제공할 수 있다. 섹션 B.1 및 B.2는 각각, 이러한 UI 페이지의 2개 카테고리를 설명한다.
일반적으로, 일 구현에서, 제어 패널 모듈(506)은 (Washington주, Redmond의 Microsoft® Corporation에 의해 제공되는 익숙한 제어 패널 인터페이스 기능과 같은) 제어 패널 인터페이스를 통해 상술된 UI 페이지를 제공할 수 있다. 따라서, UI 제시는 (예를 들어, "탭 조작형(tabbed)" 디스플레이 페이지를 가진) 제어 패널 제시의 외양과 느낌을 채용하도록 재단될 수 있다. UI 스타일에서의 이러한 선택은 단지 예일 뿐이고, 다른 스타일 및 UI 레이아웃을 사용해 UI 페이지를 구현할 수도 있다.
B.1. 새로운 디바이스를 인증하기 위한 예시적 UI
도 8 내지 도 10은, 제어 패널 모듈(506)이 네트워크(314)로의 디바이스 도 입을 핸들링하는데 사용할 수 있는 상이한 UI 페이지를 나타낸다.
우선, 새로운 매체 렌더링 디바이스가 UPnP 네트워크(314)에서 검출될 경우, 매체 서버(302)는 매체 서버 사용자에게 이것의 존재를 경보하도록 구현될 수 있다. 일 기술에 따르면, 제어 패널 모듈(506)은, 도 8에 나타낸 풍선형 메시지(800)를 제공하는 것에 의해 이러한 경보 기능을 수행할 수 있다. 이 메시지(800)는 "새로운 디지털 매체 수신기가 발견되었다. 이 디바이스를 인에이블, 디스에이블 또는 구성하기를 원하는가?(A New Digital Media Receiver has been found. Do you wish to enable, disable, or configure this device?)"라고 기술한다. 이 메시지(800)는, 매체 서버 사용자가 열거된 옵션 중 하나를 선택할 수 있게 하는 하이퍼텍스트 링크를 포함할 수 있는데, 다시 말해, 선택된 옵션과 관련된 하이퍼텍스트 링크상에서 클릭하는 것에 의해 선택이 수행된다. 다른 메시지 스타일 및 선택 포맷이 사용될 수 있는데, 도 8에 나타낸 메시지(800)는 일례일 뿐이다.
제어 패널 오브젝트(506)는, 메시지(800)에서의 하이퍼텍스트 링크의 활성화시에, 도 9에 나타낸 UI 페이지(900)를 활성화한다. 이 페이지(900)는 복수개 섹션(902, 904, 906)을 포함한다. 각각의 섹션은 UPnP 네트워크(314)에 결합되어 있는 상이한 디바이스에 관한 정보를 제공한다. 예를 들어, 섹션(902)은 새로운 디바이스가 발견되었다는 것을 지시한다. 이 섹션(902)은 또한 새로운 디바이스의 제작자 및 모델을 식별한다. 또한, 이 섹션(902)은 매체 서버 사용자에게, 섹션내의 하이퍼텍스트 링크를 활성화하는 것에 의해 새로운 디바이스를 인에이블할 수 있는 옵션을 제공한다. 섹션(904)은, 사전에 인에이블되어 있었던 디바이스를 기 술한다. 따라서, 이 섹션(904)은 매체 서버 사용자에게, 이 섹션(904)과 관련된 하이퍼텍스트 링크를 활성화하는 것에 의해, 이 디바이스를 디스에이블할 수 있는 기회를 제공한다. 섹션(906)은, 사전에 디스에이블되어 있었던 디바이스를 기술한다. 따라서, 이 섹션(906)은 매체 서버 사용자에게 이 디바이스를 다시 인에이블할 수 있는 기회를 제공한다.
제어 패널 오브젝트(506)는, 매체 서버 사용자가 UI 페이지(900)의 섹션 중 하나와 관련된 하이퍼텍스트 링크를 활성화한다면, 도 10에 나타낸 UI 페이지(1000)를 활성화한다. UI 페이지(1000)는, 선택된 디바이스의 특징을 설명하는 개요 정보를 제공한다. 이것은 또한 3개의 명령 버튼(1002, 1004, 1006)을 포함한다. 명령 버튼(1002)은, 매체 서버 사용자가 디바이스를 인에이블할 수 있게 한다. 명령 버튼(1004)은, 매체 서버 사용자가 디바이스를 디스에이블할 수 있게 한다. 명령 버튼(1006)은, 매체 서버 사용자로 하여금, UI 디스플레이 페이지상에 표시될 디바이스의 이름을 변경할 수 있게 한다. 이러한 마지막 버튼(1006)은 디바이스에, "Kid's 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)를 구현 중인 컴퓨터상에서 현재적으로 활성화되어 있는 터미널 서버 세션에 로그되어 있을 경우에만(또는 Donald가, 예를 들어, UPnP 네트워크(314)의 소비자가 자원 정보에 액세스하고자 할 때의 팝업 메시지에 긍정적으로 응답하는 것에 의해, 자원 정보의 전달에 대한 동의를 제공할 때) 검색될 수 있다. 이러한 설계 모티브에 대한 다른 변형도 가능할 수 있다. 예를 들어, 상술된 바와 같이, 자원 정보 공유 기능(322)은, 자원 정보의 배포를 통제하는 2 이상의 배포 기준을 제공하도록 구성될 수 있다(또는 2 미만의 기준을 제공하거나 기준을 제공하지 않도록 구성될 수도 있다).
도 11에는 3개의 자원 폴더(1102)만이 표시되어 있다. 매체 서버 사용자는, 추가 명령 버튼(1106)을 활성화하는 것에 의해, 공유를 위한 추가 자원 폴더를 선택할 수 있다. 변경 명령 버튼(1108)은, 매체 서버 사용자가 공유 자원 폴더(1102)의 기존 리스트를 변경할 수 있게 한다. 삭제 명령 버튼(1120)은, 매체 서버 사용자가 자원 폴더(1102)의 기존 집합으로부터 자원 폴더를 삭제할 수 있게 한다.
이전 섹션에서 설명된 바와 같이, 기준의 제1 세트는 자원 메타데이터의 유포를 통제할 수 있고 기준의 제2 세트는 자원 컨텐츠의 유포를 통제할 수 있다. 설명의 용이화를 위해, 도 11은, 기준의 동일한 세트가 자원 메타데이터와 자원 컨텐츠 모두의 배포를 통제한다는 가정에 기초한다. 그러나, 자원 정보 공유 기능(322)이, 매체 서버 사용자로 하여금 자원 메타데이터에 대한 기준과 자원 컨텐츠에 대한 기준을 구별할 수 있게 한다면, 사용자 인터페이스 페이지는, 좀더 미세한 기준 정보를 디스플레이하도록 그리고 매체 서버 사용자가 좀더 미세한 레벨에서 기준 정보를 입력할 수 있도록 하기 위해, 적절하게 변경될 수 있다. 자원 메타데이터에 대한 기준 및 자원 컨텐츠에 대한 기준은, 이러한 카테고리에 상이한 사용자 엔트리 필드를 할당하는 것에 의한 것과 같은, 상이한 방식으로 사용자 인터페이스 페이지에서 구별될 수 있다.
도 12는, 매체 서버 사용자가 도 11의 변경 명령 버튼(1108)을 누를 때 제어 패널 모듈(506)이 활성화하는 페이지(1200)를 나타낸다. 예를 들어, 매체 서버 사용자가 (예를 들어, 마우스 디바이스 또는 다른 입력 메커니즘을 사용해) 도 11의 제1 엔트리(1122)를 강조한 다음 명령 버튼(1108)을 눌렀다고 가정한다. 도 12에 도시된 결과적 페이지(1200)는 제1 엔트리(1122)의 다양한 기존 특성을 나타내며 매체 서버 사용자에게 이러한 특성을 변경할 수 있는 기회를 제공한다.
예를 들어, 페이지(1200)는 자원의 공유 이름을 "My videos"(1202)로, 동의-관련 기준을 "All"(1204)로, 그리고 디바이스 기준을 "All devices"(1206)로 식별한다. 매체 서버 사용자는, (예를 들어, 마우스 및 키보드 입력 디바이스를 사용해 이 필드를 편집하는 것에 의해) 그것과 관련된 텍스트 상자의 정보를 편집하는 것에 의해 제1 필드(1202)를 변경할 수 있다. 제2 및 제3 필드(1204, 1206)는, 각각, 사용자 및 디바이스의 소정 리스트를 제공하는 풀-다운 선택 메뉴로서 설정되어 있다. 예를 들어, 풀-다운 선택 필드(1206)는 그것의 소정 리스트를 나타내기 위해 도 12와 같이 확장된다. 매체 서버 사용자는 이러한 2개 필드(1204, 1206)에 대한 입력을 제공하기 위해 이들 풀-다운 리스트로부터 적어도 하나의 엔트리를 선택할 수 있다. 텍스트 엔트리 상자 및 풀-다운 메뉴 이외의 다른 데이터 엔트리 기술을 사용해 페이지(1200)에 의해 요청되는 정보를 입력할 수 있다. 이번에도, 매체 서버 기능(322)이, 매체 서버 사용자가 자원 메타 데이터 기준과 자원 컨텐츠 기준을 서로 구별할 수 있게 한다면, 이 페이지(1200)는 데이터 엔트리를 위한 추가 필드를 제공하도록 적당한 방식으로 확장될 수 있다.
도 11 및 도 12가, 자원 폴더를 선택하며 자원 폴더와 관련된 유포 기준을 정의하는데 사용될 수 있는 UI 전략의 총망라는 아니다. 도 13은, 예를 들어, 모든 공유 자원 폴더 및 그들과 관련된 배포 기준의 마스터 디스플레이를 제공하는 예시적 페이지(1300)를 나타내는데, 매체 서버 사용자는 이 페이지(1300) 자체를 사용해 (예를 들어, 다른 페이지를 호출할 필요없이) 디스플레이되어 있는 정보 중 어떤 것도 변경할 수 있다. 예를 들어, 이 페이지(1300)의 각각의 사용자 필드 및 디바이스 필드는, 매체 서버 사용자가 이러한 필드에 대해 디스플레이되어 있는 선택을 변경할 수 있게 하는 개개의 드롭-다운 메뉴를 포함한다. 예를 들어, 예시적인 사용자 필드(1304)에 대한 드롭-다운 메뉴(1302) 및 예시적인 디바이스 필드(1308)에 대한 드롭-다운 메뉴(1306)를 고려한다. 브라우즈 명령 버튼(1310)으로 인해, 매체 서버 사용자는, (예를 들어, 추가 명령 버튼(1312)을 활성화하는 것에 의해) 어떤 자원 폴더가 공유 자원에 추가될 것인지를 판정하기 전에 다양한 디렉토리를 점검할 수 있다. 앞서와 마찬가지로, 삭제 명령 버튼(1314)은 사전에 선택된 자원 폴더를 공유 자원으로부터 삭제하는 기능을 한다.
도 14는 기준 정보를 입력하기 위한 또 하나의 대체 기술을 나타낸다. 이 도면에 도시되어 있는 페이지(1400)로 인해, 매체 서버 사용자는, 공유 자원 폴더에 영향을 미치는 전역 기준 정보를 특정할 수 있다. 즉, 섹션 항목(1402)은, 매체 서버 사용자로 하여금, 매체 서버(302)가 매체 서버(302)에 로그되어 있는 사람이 누구인지에 관계없이 모든 공유 자원 폴더의 자원 정보를 공유해야 하는지의 여부를 특정할 수 있게 한다. 선택 항목(1404)은, 매체 서버 사용자로 하여금, 매체 서버(302)가 모든 자원 폴더를 차별없이 모든 장치에 배포해야 하는지의 여부를 특정할 수 있게 한다. 이러한 선택 항목(1402, 1404)은, 체크박스 UI 입력 특징 또는 다른 종류의 UI 입력 특징을 사용해 매체 서버 사용자로부터 이진의 예/아니오 선택을 수신할 수 있다.
또한, 페이지(1400)로 인해, 매체 서버 사용자는 매체 서버(302)에 의해 적용되는 보안을 통제하는 다양한 선택을 취할 수 있다. 예를 들어, 선택 항목(1406)으로 인해 매체 서버 사용자는, 매체 서버 사용자가 매체 서버(302)를 구현 중인 컴퓨터를 스타트업할 때, 매체 서비스가 자동적으로 시작되어야 하는지의 여부를 특정할 수 있다. 선택 항목(1408)으로 인해 매체 서버 사용자는, 매체 서버(302)와 상호 작용하도록 허용되는, 네트워크(314)상의 디바이스의 최대 수를 특정할 수 있다. 상기 섹션 A.5에서 논의된 보안 메커니즘에 관한 다른 보안 옵션을 매체 서버 사용자가 특정할 수 있도록 하기 위해, (나타내지 않은) 유사한 사용자 엔트리 필드가 사용될 수 있다. 예를 들어, 허용된다면, 적당한 UI 페이지로 인해, 매체 서버 사용자는 섹션 A.5에서 설명된 메커니즘 중 어느 하나를 선택적으로 활성화 또는 비활성화할 수 있을 뿐만 아니라 이러한 메커니즘에서 사용되는 임의의 관련 파라미터를 특정할 수도 있다.
마지막으로, 도 15는, 흔히 "마법사(wizard)"라고 하는, 자동 설정 절차의 일부로서 사용될 수 있는 페이지(1500)를 나타낸다. 이 페이지는 자원을 포함하는 자원 저장소(320)에서 제공되는 자원 폴더(1502)의 계층 구조적 표현을 제공한다. 디렉토리(1502)는 계층 구조의 자원 폴더 각각에 인접하게 위치하는 체크박스를 포함한다. 매체 서버 사용자는, 개개 자원 폴더에 인접한 체크박스를 선택적으로 클릭하는 것에 의해, 이러한 자원 폴더 각각이 공유되어야 하는지의 여부를 지시할 수 있다. 페이지(1500)의 최우측 부분은, 매체 서버 사용자가 도 14의 콘텍스트에서 상술된 동일한 전역적 기준을 선택할 수 있게 하는 선택 항목(1504 및 1506)을 제공한다.
상기 논의에서, 배포 기준은 매-폴더 기반으로 자원에 할당되었다. 그러나, 정보를 매-컨테이너 기반으로 디스플레이하고 매체 서버 사용자가 매-컨테이너 기반으로 정보를 입력할 수 있게 하는 것에 의해, 배포 기준을 매-컨테이너 기반으로 자원에 적용할 수도 있다.
여기에서도 역시, 도면에 도시되어 있는 UI에 대한 레이아웃은 예시이다. 다른 UI 전략은, 매체 서버 사용자로 하여금 Devices; Sharing; Settings; 및 Events의 메인 토픽 중에서 선택하게 할 수 있다. Sharing 카테고리내에서, 매체 서버(302)는 매체 서버 사용자에게 My Music; My Pictures; My Videos 등의 자원 카테고리내에서 공유 자원에 대한 옵션을 부여할 수 있다.
C. 예시적 프로세스
도 16 및 도 17은 디바이스 인증 프로세스에 관한 것이고, 도 18 내지 도 20은 자원 공유 프로세스에 관한 것이다. 이들 도면에 나타낸 개개의 블록은 소프트웨어, 펌웨어, 또는 펌웨어와 소프트웨어의 조합으로 구현될 수 있다.
C.1. 디바이스 인증 프로세스
도 16은, UPnP 네트워크(314)에 추가된 새로운 디바이스를 인증하기 위해 매체 서버(302)에 의해 사용되는 절차(1600)를 나타낸다. 단계 1602에서는, 누군가가 UPnP 네트워크(314)에 새로운 매체 디바이스를 접속한다. 단계 1604에서는, 매체 서버(302)가, 매체 서버 사용자에게 새로운 디바이스의 존재를 경보하는 메시지를 발생시킨다. 도 8은, 이러한 메시지를 제공하는데 사용될 수 있는 하나의 디스 플레이 포맷을 나타낸다. 단계 1606에서는, 매체 서버(302)가, 매체 서버 사용자로 하여금 새로운 디바이스를 인에이블할 수 있게 하는 UI 페이지(또는 페이지)을 오픈한다. 도 9 및 도 10은, 이 단계를 구현하기 위한 2개의 예시적 UI 페이지를 제공한다. 그리고, 단계 1608에서, 매체 서버 사용자는, 예를 들어, 새로운 디바이스를 인에이블하거나 디스에이블하는 것에 의해, 새로운 디바이스에 관한 선택을 수행한다. 매체 서버 사용자에게는 새로운 디바이스에 사용자-친화적 이름을 제공하는 것도 허용될 수 있다.
도 17은 새로운 디바이스의 ID를 판정하기 위한 절차(1700)를 나타낸다. 단계 1702에서, 매체 서버는 새로운 디바이스의 IP 어드레스를 식별한다. 단계 1704에서, 매체 서버는 IP 어드레스를 MAC 어드레스(또는 다른 디바이스-특정 정보)로 변환한다. IP 어드레스는, 예를 들어, ARP(Address Resolution Protocol)를 사용하는, Microsoft® Corporation의 Internet Protocol Helper에 의해 제공되는 SendARP 기능을 사용해 MAC 어드레스로 변환될 수 있다. 일단 인증되고 나면, 디바이스는 네트워크(314)와의 후속적인 상호 작용에서 그것의 IP 및 MAC 어드레스에 의해 식별될 수 있다. (IP 어드레스는 DHCP 서버의 이용 가능성에 따라 변할 수 있으므로) IP 어드레스 단독으로는 신뢰할 수 없기 때문에, MAC 어드레스를 사용해 디바이스를 인증하는 것이 바람직하다.
도 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. 공유 자원 정의하기(Defining Shared Resources)
먼저 도 18로 시작하면, 본 절차(1800)는 공유 자원 폴더 및 배포 기준을 특 정하기 위한 많은 방법 중 하나의 예시일 뿐이다. 상기 섹션 B에서 설명된 바와 같이, 이러한 정보를 수집하기 위한 다수의 상이한 UI 전략이 존재하므로, 이러한 태스크를 수행하기 위한 다수의 관련 프로세스가 존재한다. 논의를 용이하게 하기 위해, 자원 메타데이터와 자원 컨텐츠 모두의 유포를 지배할 기준의 한개 세트만이 수집된다고 가정한다. 자원 정보 공유 기능(322)으로 인해 매체 서버 사용자가 자원 메타데이터 및 자원 컨텐츠에 대한 기준의 상이한 세트를 구별할 수 있는 경우라면, 도 18에 나타낸 동작은 이러한 정보를 수집하도록 적절하게 확장될 수 있다.
단계 1802에서, 매체 서버 사용자는 공유 자원 폴더를 선택한다. 도 11 내지 도 13은, 매체 서버 사용자가 이러한 태스크를 수행하기 위해 사용할 수 있는 기술 중 몇가지만을 나타낸다.
단계 1804에서, 매체 서버 사용자는, (존재한다면) 자원 정보의 전달에 대해 그들의 동의를 제공해야 할 개인을 선택한다. 상술된 바와 같이, 이러한 제한은, 서비스가 구성되는 방법에 따라 광의적으로 또는 협의적으로 해석될 수 있다. 광의적인 구현에서, 식별된 개인은, 그들이 매체 서버(302)를 구현하는 컴퓨터상의 현재적으로 활성화되어 있는 터미널 서버 세션에 로그되어 있다면, 그들의 암시적인 동의를 제공한 것으로 간주된다. 좀더 엄격한 구현에서, 매체 서버(302)는, 식별된 개인이 이러한 전송을 승인하는지의 여부를 판정하기 위해 소비자가 자원 정보를 검색하고자 시도할 때, 식별된 개인에게 구체적으로 문의한다. 전달은, 식별된 개인이 전달을 승인할 경우에만 발생한다. 식별된 개인이 선택되지 않으면, 디폴트로, 자원의 배포에 영향을 미치는 동의-관련 제한은 존재하지 않는다.
단계 1806에서, 매체 서버 사용자는, 선택된 자원 폴더의 자원 정보를 수신하도록 인증된 디바이스를 선택한다. 도 11 내지 도 15는, 단계(1804 및 1806)에서 수집된 기준을 요청하는데 사용될 수 있는 UI 기술 중 몇가지만을 나타낸다. 또한, 상기한 바와 같이, 자원 폴더의 자원 정보 배포에 영향을 미치는 추가 기준을 수집하기 위해 추가 단계가 제공될 수 있다.
단계 1808에서, 제어 패널 모듈(506)은, 특정 동의-관련 사용자 기준에 의해 통제되는, 지정된 자원 폴더의 자원 정보를 특정 디바이스에 대해 공유한 결과를 매체 서버 사용자에게 선택적으로 경보한다. 이것은, 매체 서버 사용자의 선택에 의해 부여된 제한(또는 부여된 제한이 없음)을 설명하는 메시지를 제시하는 것에 의해 수행될 수 있다. 이러한 메시지를 살펴본 후, 매체 서버 사용자는 적어도 하나의 이전 선택을 정정할 것을 결정할 수 있다. 단계 1810은, 매체 서버 사용자가 특정 결과에 만족하지 못한다면 매체 서버 사용자가 적어도 하나의 선택을 반복할 수 있으며, 그렇지 않다면, 프로세스(1800)는 계속될 것을 지시한다.
단계 1812에서, 매체 서버(302)는, 매체 서버 사용자가 선택된 자원 폴더의 자원 정보를 공유하기 위한 권한을 가지고 있는지의 여부를 판정한다. 즉, 자원 폴더의 생성자는, 자원 폴더의 자원 정보를 변경, 판독, 및/또는 배포하기 위한 권한을 가진 한명 이상의 개인을 특정했을 수도 있다. 매체 서버 사용자가 이러한 개인 중 하나가 아니라면, 단계 1814는, 자원 폴더가 공유될 수 없다는 것을 지시한다. 매체 서버 사용자가 이러한 개인 중 하나라면, 단계 1814는, 자원 폴더의 자원 정보가 공유될 수 있다는 것을 지시하고, 따라서, 프로세스(1800)는 계속된 다.
단계 1816은 선택된 자원 폴더의 상태를 "공유"로 변경하는 단계를 수반한다. 이 단계(1816)는 공유 자원 폴더를 공유 자원 저장소(532)에 등록하는 단계 및 관련 배포 기준을 기준 정보(536)에 저장하는 단계를 수반할 수 있다.
상기 논의에서, 배포 기준은 매-폴더 기반으로 할당되었다. 그러나, 상술된 것과 유사한 방식으로 매-컨테이너 기반으로 자원에 배포 기준을 적용할 수도 있다.
자원 폴더의 자원을 공유하는 것에 관련된 일반적인 추가 고려가 다음에서 기술된다. 다음의 논의에서, "자원"은 자원 저장소(320)에 저장되어 있는 자원 폴더내의 파일에 대응될 수 있다. 자원 폴더는 공유 가능한 상태 또는 공유 불가능한 상태를 가진 것으로 지시된다. 각각의 자원는, 자원 메타데이터 및 자원 컨텐츠를 포함하여, 실제로 유포되는 "자원 정보"를 가진다는 것도 상기한다.
좀더 구체적으로, 예시적 일 구현에서, 컨텐츠 디렉토리 서비스 모듈(526)은, 매체 서버 사용자가, 자원 폴더의 개별 자원이 아니라, 자원 폴더를 공유 가능한 것으로 지시하는 것만을 허용한다. 즉, 자원은, 매 자원 기반이 아니라, 공유 가능한 자원 폴더로의 포함에 의해 공유 가능한 것으로 지시된다. 또한, 컨텐츠 디렉토리 서비스 모듈(526)은, 매체 서버 사용자가 (오디오 파일의 경우, MP3, WMA, PCM, 및 WAV 포맷; 비디오 파일의 경우, MPEG-1, 2, WMV, 및 AVI 포맷; 사진 파일의 경우, JPEG, GIF, BMP, PNG, 및 TIFF 포맷을 포함하는 파일의 예시적인 영역과 같은) 오디오, 비디오, 및 사진 자원의 소정 유형만을 공유 가능한 것으로 지 시하도록 허용할 수 있다. 또한, 컨텐츠 디렉토리 서비스 모듈(526)은 은닉 파일, 네트워크 공유, 및 분리형 매체를 공유 가능한 것으로 지시하는 것에 제한을 둘 수 있다(다시 말해, 매체 서버 사용자가 이러한 자원을 공유 가능한 것으로 지시하는 것을 방지한다). 상기 허용 가능한 카테고리에 해당되지 않는 익숙하지 않은 자원 정보는 공유되지 않을 것이므로, 이런 규정은 UPnP 네트워크(314)에 의해 제공되는 보안을 향상시키는데 도움이 될 수 있다. 그러나, 다른 구현에서는, 위에서 식별된 "금지된(forbidden)" 자원 중 적어도 하나을 공유 가능한 것으로 지시할 수도 있다.
다른 예시적 구현에서, 공유 가능한 것으로 지시된 자원 폴더는 추가적인 하부-집합(예를 들어, 서브폴더 및 파일)을 가질 수 있다. 매체 서버 사용자가 임의의 소정 자원 폴더를 공유 가능한 것으로 지시하기로 결정할 경우, 공유 자원 폴더의 모든 자원 및 그것의 모든 서브자원 폴더 또한 자동적으로 공유 가능한 것으로 지시될 수 있다.
다른 예시적 구현에서, 매체 서비스 모듈(520)은, (예를 들어, 자원 폴더에 앞서 할당된 자원 폴더의 공유 가능한 상태를 제거하기 위해) 매체 서버 사용자가 자원 폴더를 "비공유"로 지시하는 것도 허용한다. 그러나, 예시적 일 구현에서, 매체 서버 사용자는 공유 가능한 부모 자원의 서브-자원들(예를 들어, 서브폴더 및 파일) 중 하나를 공유 불가능한 것으로 지시할 수는 없다. 즉, 예를 들어, 매체 서버 사용자가 "c:\doc\"을 공유 가능한 것으로 지시할 경우, 매체 서버 사용자가 "c:\doc\music\"을 비공유로 지시할 수는 없을 것인데, 예를 들어, 루트 자 원 폴더 "c:\doc\"가 공유로 지시되었기 때문이다. 그러나, 다른 구현에서는, 컨텐츠 디렉토리 서비스 모듈(526)이 비공유 자원의 선택적인 지시를 허용하도록 구성될 수도 있다.
다른 예시적 구현에서, 매체 서버 사용자는 공유로 지시된 자원 디렉토리의 이름을 변경할 수 있다. 컨텐츠 디렉토리 서비스 모듈(526)은, 서비스가 실행되는 동안 이름의 어떤 변경을 추적하고 이전 이름과 간련된 공유-관련 특성을 새로운 이름으로 자동적으로 전달할 수 있다. 매체 서버 사용자가 공유로 지시된 자원 중 하나를 변경할 때마다, 컨텐츠 디렉토리 서비스 모듈(526)은 UPnP 네트워크(314)에 결합되어 있는 디바이스에 이러한 변화를 통지하도록 구성될 수 있다. 이것은 UPnP 이벤트를 송신하는 것에 의해 수행될 수 있다.
b. 요청에 기초해 공유 자원 배포하기
도 19는, 소비자가 컨텐츠 디렉토리 서비스 모듈(526)과 상호 작용할 수 있게 하는 절차(1900)를 나타낸다. 단계 1902에서, 소비자는 공유로 지시된 매체 서버(302)의 자원에 관한 자원 메타데이터를 제공할 것을 매체 서버(302)에 요청한다. 소비자는, 선택된 자원 컨텐츠를 최종적으로 수신할 렌더링 디바이스에 통합되어 있거나 렌더링 디바이스와 관련되어 있는 제어 포인트로부터 이 요청을 형성할 수 있다. 다른 방법으로, 소비자는, 자원 컨텐츠를 최종적으로 수신할 렌더링 디바이스로부터 떨어져 있는 제어 포인트로부터 이 요청을 형성할 수도 있다. 소비자는 구체적으로 매체 서버(302)와 브라우즈 세션을 개시할 수 있는데, 이 경우, 매체 서버(302)는, 어쩌면 소정 카테고리 또는 카테고리내에서, 공유로 지시된 이 용 가능한 자원의 리스트를 나타내는 자원 메타데이터를 제공하는 것에 의해 응답할 것이다. 소비자는 다른 방법으로 매체 서버(302)와의 검색 세션을 개시할 수 있는데, 이 경우, 매체 서버(302)는 소비자에 의해 특정된 적어도 하나의 검색 파라미터에 기초해 목표 검색을 수행하고 검색 결과의 지시를 소비자에게 리턴하는 것에 의해 응답할 것이다.
단계 1904에서, 매체 서버(302)는 소비자의 요구를 충족시키는 공유 자원 폴더와 관련된 임의의 자원 메타데이터 항목을 찾아내기 위해 공유 자원 저장소(532)를 통해 스캔한다. 즉, 이것은, 브라우즈 또는 검색 파라미터를 충족시키는 (예를 들어, 소정 자원 유형, 자원 이름, 자원 연주자 등을 포함하는) 특정한 자원 메타데이터 항목을 선택하기 위해 자원 메타데이터(534)를 조사하는 단계를 수반한다. 스캔하는 단계는, 브라우즈 또는 검색 항목과 매칭되는 자원 메타데이터 항목이 특정된 관련 배포 기준을 충족시키지 않는지의 여부를 판정하기 위해 기준 정보(536)를 조사하는 단계를 수반할 수도 있다. 예를 들어, 매체 서버(302)는 소비자의 요구을 충족시키는 (10개의 관련 자원들에 대응되는) 10개의 자원 메타데이터 항목을 식별할 수 있지만, 이들 중 3개만이 (예를 들어, 그로부터 소비자가 브라우즈 또는 검색 요청을 전송했던 제어 포인트와 관련된) 소비자가 현재 사용 중인 장치에 디스플레이될 것이 장치-관련 기준에 의해 허용된다.
단계 1906에서, 매체 서버(302)는, 상술된 프로세싱의 결과를 설명하는 XML 메시지를 발생시킨다. XML 메시지는, 메시지가 포함해야 하는 정보의 다양한 필드 및 어떤 포맷으로 이들 필드를 제시해야 하는지를 특정하는 XML 스키마에 의해 통 제될 수 있다. XML 이외에 다른 포맷을 사용해 이러한 정보를 전달할 수 있다. 단계 1908에서, 매체 서버(302)는 메시지를 매체 서버(302)로부터 소비자가 사용 중인 제어 포인트로 전송한다.
단계 1910에서, 제어 포인트는 XML 메시지를 수신하고 그것의 제시 포맷으로 변환한다. 그 다음, 소비자는 매체 서버(302)에 의해 식별된 적어도 하나의 공유 자원에 대응되는 자원 메타데이터 항목의 리스트를 볼 수 있다. 소비자는 리스트로부터 선택된 렌더링 디바이스에서의 제시를 위한 적어도 하나의 자원을 선택할 수 있다.
c. 파라미터화된 URL의 프로세싱
도 20은, 이전의 UPnP 액션(예를 들어, 브라우즈 또는 검색 액션)에 응답하여 제공된 URL에 기초해 공유 자원 컨텐츠 항목을 검색하기 위한 프로세스(2000)를 나타낸다. 좀더 구체적으로, 브라우즈 또는 검색 액션에 응답하여 매체 서버(302)에 의해 전송된 자원 메타데이터는, 공유 항목과 관련된 자원 컨텐츠 항목을 찾아낼 장소를 설명하는, 공유 자원에 대한 URL을 포함한다. URL은 섹션 A.6에서 상술된 파라미터화된 접근 방법을 사용해 구성될 수 있다. 도 20에 나타낸 프로세스(2000)는 이러한 파라미터화된 URL을 프로세싱하기 위한 기술을 설명한다.
단계 2002에서, 소비자는, 제어 포인트(316)와 같은, 제어 포인트의 매체 서버(302)로부터 자원 메타데이터를 수신한다. 이 단계는 일반적으로 도 19의 단계 1910에 대응된다. 공유 자원에 대해, 메타데이터는 통상적으로 적어도 하나의 파라미터화된 URL을 포함한다. 섹션 A.6에서 설명된 바와 같이, 이러한 URL의 파라 미터는 URL에 의해 식별된 자원 컨텐츠 항목의 매체 포맷을 특정한다. 예를 들어, 하나의 파라미터는, 자원 컨텐츠 항목이 제공될 수 있는 (이미지 자원를 위한 RGB 또는 YUV 포맷 유형과 같은) 포맷 유형을 설명할 수 있다. 다른 파라미터는 (특정 이미지 해상도의 높이 및 폭과 같은) 자원 컨텐츠 항목의 포맷 해상도를 설명할 수 있다. 이러한 파라미터는 단지 예일 뿐이고, 추가적이거나 상이한 파라미터가 제공될 수 있다. 임의의 이벤트에서, 브라우즈 또는 검색 요청에 대한 응답을 공식화할 때, 매체 서버(302)는, 예를 들어, 자원 컨텐츠 항목이 현재적으로 매체 서버(302)에서 저장되고 있는 매체 포맷을 반영할 수 있는, 이러한 파라미터에 대한 디폴트 값을 선택할 수 있다. 또는, 매체 서버(302)는, 다른 고려에 기초해 매체 서버(302)가 최선이라고 판정하는 디폴트 값을 선택할 수도 있다.
단계 2004에서, 제어 포인트(316)는 리턴된 파라미터화 URL의 적어도 하나의 파라미터를 선택적으로 변경한다. 예를 들어, URL은 원래 소정 이미지 해상도를 특정할 수 있다. 제어 포인트는 이미지를 제시할 렌더링 디바이스에 의해 제공되는 더 큰 이미지 해상도를 수용하기 위해 이러한 파라미터 값을 변경할 수 있다.
단계 2006에서, 제어 포인트(316)는 변경된(또는 변경되지 않은) URL을, 최종적으로 자원 컨텐츠 항목을 렌더링할, 렌더링 디바이스(306)와 같은, 렌더링 디바이스로 전달한다.
단계 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)는 자원 컨텐츠 항목의 렌더링 디바이스(306)에서의 제시에 앞서 선택적으로 자원 컨텐츠 항목을 다른 매체 포맷을 변환할 수 있다.
또 다시, 도 20에 나타낸 절차는 가능한 한가지 시나리오일 뿐이다. 다른 시나리오에서는, 제어 포인트(316)는 원래의 URL을 렌더링 디바이스(306)로 전달하고, 렌더링 디바이스(306)가 그것을 변경할 수 있다(또는 그것을 변경하지 않을 것을 결정할 수 있다). 그 후, 렌더링 디바이스(306)는 이렇게 변경된(또는 변경되지 않은) URL을 상술된 방식으로 매체 서버(302)로 전송한다.
도 20에서, URL의 적어도 하나의 파라미터가 대응되는 자원 컨텐츠 항목의 매체 포맷을 특정하는 정보를 포함한다고 가정했다. 그러나, 다른 URL은 매체 포맷 정보 이외에 (타이밍-관련 정보와 같은) 자원 컨텐츠 항목의 다른 특징을 특정하는 파라미터를 포함할 수도 있다.
마지막으로, 도 20의 기본적인 프레임워크는, 자원 메타데이터가 파라미터화된 URL을 포함하지 않는 경우(즉, 자원 메타데이터가 어떤 가변 파라미터도 갖지 않는 URL을 포함하는 경우)에도 적용된다. 이 경우, 도 20에 나타낸, URL을 변경하는 동작은 수행되지 않을 것이다.
D. 예시적인 컴퓨터 환경
도 21은, 도 3 및 도 5에서 설명된 매체 서버(302) 기능과 같은, 선행 섹션에서 설명된 임의의 프로세싱 기능을 구현하는데 사용될 수 있는 컴퓨터 환경(2100)에 관한 정보를 제공한다. 유사한 컴퓨팅 기능이 제어 포인트(예를 들어, 제어 포인트(316, 318)) 및 임의의 매체 렌더링 디바이스(304-312) 등을 구현하는데도 사용될 수 있다.
컴퓨팅 환경(2100)은 범용 컴퓨터(2102) 및 도 1의 콘텍스트에서 논의된 디스플레이 디바이스(2104)를 포함한다. 그러나, 컴퓨팅 환경(2100)은 다른 종류의 컴퓨터 및 네트워크 아키텍처를 포함할 수도 있다. 예를 들어, 나타내지는 않았지만, 컴퓨터 환경(2100)은 핸드-헬드 또는 랩탑 디바이스, 셋톱 박스, 프로그램 가능한 상용 전자 제품, 메인프레임 컴퓨터, 게이밍 콘솔 등을 포함할 수 있다. 또한, 도 21은 논의의 용이화를 위해 함께 분류되어 있는 컴퓨터 환경(2100)의 요소를 나타낸다. 그러나, 컴퓨팅 환경(2100)은 분산 프로세싱 구성을 이용할 수도 있다. 분산 컴퓨팅 환경에서는, 컴퓨팅 자원이 물리적으로 환경 전반에 걸쳐 흩어질 수 있다.
예시적 컴퓨터(2102)는 적어도 하나의 프로세서 또는 프로세싱 유닛(2106), 시스템 메모리(2108), 및 버스(2110)를 포함한다. 버스(2110)는 다양한 시스템 컴포넌트를 다같이 접속시킨다. 예를 들어, 버스(2110)는 프로세서(2106)를 시스템 메모리(2108)에 접속시킨다. 버스(2110)는, 메모리 버스 또는 메모리 컨트롤러, 주변 디바이스 버스, AGP(accelerated graphics port), 및 다양한 버스 아키텍처 중 하나를 사용하는 프로세서 또는 로컬 버스를 포함하여, 임의 종류의 버스 구조 또는 버스 구조의 조합을 사용해 구현될 수 있다. 예를 들어, 이러한 버스 아키텍처로는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 Mezzanine 버스라고도 하는 PCI(peripheral Component Interconnects) 버스를 들 수 있다.
컴퓨터(2102)는 또한, 각각이 분리형 또는 비-분리형일 수 있는, 휘발성 및 비-휘발성 매체의 다양한 유형을 포함하여, 다양한 컴퓨터 판독 가능 매체를 포함할 수 있다. 예를 들어, 시스템 메모리(2108)는, RAM(random access memory:2112)과 같은, 휘발성 메모리 및, ROM(read only memory:2114)과 같은, 비휘발성 메모리 형태의 컴퓨터 판독 가능 매체를 포함한다. ROM(2114)은, 스타트-업(start-up) 동안과 같은 때에, 컴퓨터(2102)내의 요소 사이에서 정보 전달을 돕는 기본적 루틴을 포함하는 BIOS(basic input/output system:2116)를 포함한다. RAM(2112)은 통상적으로, 프로세싱 유닛(2106)에 의해 즉시 액세스될 수 있는 형태의 데이터 및/또는 프로그램 모듈을 포함한다.
다른 종류의 컴퓨터 저장 매체로는 비분리형, 비휘발성 자기 매체로부터 판 독하고 그에 기입하기 위한 하드 디스크 드라이브(2118), 분리형, 비휘발성 자기 디스크(2122:예를 들어, "플로피 디스크")로부터 판독하고 그에 기입하기 위한 자기 디스크 드라이브(2120), 및 CD-ROM, DVD-ROM, 또는 다른 광학 매체와 같은, 분리형, 비휘발성 광학 디스크(2126)로부터 판독하고 그리고/또는 그에 기입하기 위한 광학 디스크 드라이브(2124)를 들 수 있다. 하드 디스크 드라이브(2118), 자기 디스크 드라이브(2120), 및 광학 디스크 드라이브(2124)는 적어도 하나의 데이터 매체 인터페이스(2128)에 의해 시스템 버스(2110)에 각각 접속된다. 다른 방법으로, 하드 디스크 드라이브(2118), 자기 디스크 드라이브(2120), 및 광학 디스크 드라이브(2124)는 (나타내지 않은) SCSI 인터페이스 또는 다른 커플링 메커니즘에 의해 시스템 버스(2110)에 접속될 수도 있다. 나타내지는 않았지만, 컴퓨터(2102)는, 자기 테이프 카세트 또는 다른 자기 저장소, 플래시 메모리 카드, CD-ROM, DVD 또는 다른 광학 저장소, EEPROM 등과 같은, 다른 유형의 컴퓨터 판독 가능 매체을 포함할 수 있다.
일반적으로, 상술된 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 및 컴퓨터(2102)에 의해 사용될 다른 데이터의 비-휘발성 저장을 제공한다. 예를 들어, 판독 가능 매체는 오퍼레이팅 시스템(2130), (도 3에 나타낸 매체 서버(302), 제어 포인트(316, 318), 또는 임의의 매체 렌더링 디바이스(304-312)를 구현하는 로직과 같은) 적어도 하나의 애플리케이션 프로그램(2132), 다른 프로그램 모듈(2134), 및 프로그램 데이터(2136)를 저장할 수 있다.
컴퓨터 환경(2100)은 다양한 입력 디바이스를 포함할 수 있다. 예를 들어, 컴퓨터 환경(2100)은 컴퓨터(2102)에 명령 및 정보를 입력하기 위한 키보드(2138) 및 포인팅 디바이스(2140:예를 들어, "마우스")를 포함한다. 컴퓨터 환경(2100)은, 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 직렬 포트, 스캐너, 카드 판독 디바이스, 디지털 또는 비디오 카메라 등과 같은, (도시되지 않은) 다른 입력 디바이스를 포함할 수 있다. 입/출력 인터페이스(2142)은 입력 디바이스는 프로세싱 유닛(2106)에 결합시킨다. 좀더 일반적으로, 입력 디바이스는, 병렬 포트, 직렬 포트, 게임 포트, USB(universal serial bus) 포트 등과 같은, 임의 종류의 인터페이스 및 버스 구조를 통해 컴퓨터(2102)에 결합될 수 있다.
컴퓨터 환경(2100)은 디스플레이 장치(2104)도 포함한다. 비디오 어댑터(2144)가 디스플레이 장치(2104)를 버스(2110)에 결합시킨다. 디스플레이 장치(2104) 이외에, 컴퓨터 환경(2100)은, (나타내지 않은) 스피커, (나타내지 않은) 프린터 등과 같은, 다른 주변 출력 디바이스도 포함할 수 있다.
컴퓨터(2102)는, 원격 컴퓨팅 디바이스(2146)와 같은, 적어도 하나의 원격 컴퓨터로의 논리적 접속을 사용해 네트워크 환경에서 동작할 수 있다. 원격 컴퓨팅 디바이스(2146)는, 범용 퍼스널 컴퓨터, 포터블 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 피어 디바이스, 또는 다른 공통 네트워크 노드 등을 포함하여, 임의 종류의 컴퓨터 장비를 구비할 수 있다. 원격 컴퓨팅 디바이스(2146)는 컴퓨터(2102)와 관련하여 상술된 특징 모두를, 또는 그것의 소정 서브세트를 포함할 수 있다.
컴퓨터(2102)를 원격 컴퓨팅 디바이스(2146)와 결합시키기 위해, LAN(local area network:2148) 또는 (인터넷과 같은) WAN(wide area network:2150)과 같은, 임의 유형의 네트워크가 사용될 수 있다. LAN 네트워킹 환경으로 구현될 경우, 컴퓨터(2102)는 네트워크 인터페이스 또는 어댑터(2152)를 통해 로컬 네트워크(2148)에 접속된다. WAN 네트워킹 환경으로 구현될 경우, 컴퓨터(2102)는 모뎀(2154) 또는 다른 접속 전략을 통해 WAN(2150)에 접속될 수 있다. 모뎀(2154)은 컴퓨터 내부 또는 외부에 위치할 수 있고, 직렬 I/O 인터페이스(2156) 또는 다른 적합한 커플링 메커니즘을 통해 버스(2110)에 접속될 수 있다. 도시되지는 않았지만, 컴퓨팅 환경(2100)은 컴퓨터(2102)를 원격 컴퓨팅 디바이스(2146)와 접속하기 위해 (예를 들어, 변조 라디오 신호, 변조 적외선 신호 등을 통해) 무선 통신 기능을 제공할 수 있다.
네트워크 환경에서, 컴퓨터(2102)는 원격 메모리 저장소(2158)에 저장되어 있는 프로그램 모듈로부터 끌어올 수 있다. 일반적으로, 도 21에 프로그램 모듈을 이산 블록으로서 도시한 것은 논의의 편의를 위한 것일 뿐이고, 실제로, 프로그램 모듈은 컴퓨팅 환경(2100)에 걸쳐 분산될 수 있으며, 이러한 분산은, 프로세싱 유닛(2106)에 의해 모듈이 실행됨에 따라 동적인 방식으로 변화할 수 있다.
물리적으로 저장되는 곳이라면 어디든지, 도 3 및 도 5에서 설명된 매체 서버(302) 기능을 저장하기 위한 적어도 하나의 메모리 모듈(2108, 2122, 2126, 2158 등)이 제공될 수 있다. 예시적 일 구현에서는, 매체 서버(302)에 의해 제공되는 기능의 태양이, Microsoft® Corporation의 .NET 프레임워크 또는 다른 가상 머신 환경을 목표로 하는 관리형 코드로 구현될 수 있다.
구조적 특징 및/또는 방법론적 동작에 특정적인 언어로 본 발명을 설명하였 지만, 첨부된 청구항에서 정의되는 본 발명이 반드시 설명된 특정 특징 또는 동작으로 한정되는 것은 아니라는 것을 알 수 있을 것이다. 오히려, 특정 특징 및 동작은 청구된 발명을 구현하는 예시적인 형태로서 개시되어 있다.

Claims (109)

  1. 네트워크를 통해 자원 정보(resource information)를 유포하기 위한 방법으로서,
    소스 엔티티(source entity)에서, 자원 정보에 대한 소비자의 요청을 수신하는 단계;
    상기 요청을 충족시키고 적어도 하나의 배포 기준(distribution criterion)을 충족시키며, 상기 네트워크를 통해 공유 가능한 것으로 지정된 임의의 자원이 존재하는지의 여부를 판정하기 위해, 상기 소스 엔티티에서 상기 요청을 프로세싱하는 단계;
    상기 프로세싱하는 단계의 결과를 지시하는 응답을 발생시키는 단계; 및
    상기 응답을 상기 소비자에게로 전달하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 네트워크는 UPnP(Universal Plug and Play) 네트워크로서 구성되는 방법.
  3. 제1항에 있어서,
    상기 자원 정보는 자원 메타데이터(resource metadata)이고,
    상기 적어도 하나의 배포 기준은 상기 자원 메타데이터의 유포를 통제하며,
    상기 응답은 상기 소비자의 요청을 충족시키는 자원 메타데이터를 포함하는 방법.
  4. 제1항에 있어서,
    상기 자원 정보는 자원 컨텐츠(resource contents)이고,
    상기 적어도 하나의 배포 기준은 상기 자원 컨텐츠의 유포를 통제하며,
    상기 응답은 상기 소비자의 요청을 충족시키는 자원 컨텐츠를 포함하는 방법.
  5. 제1항에 있어서,
    상기 적어도 하나의 배포 기준은, 적어도 하나의 자원이 상기 요청을 충족시킨다면, 상기 적어도 하나의 자원에 관한 자원 정보를 수신하도록 허용된 적어도 하나의 수신 엔티티(recepient entity)를 특정하는 방법.
  6. 제5항에 있어서,
    상기 적어도 하나의 수신 엔티티는 렌더링 디바이스 또는 제어 포인트(control point)인 방법.
  7. 제1항에 있어서,
    상기 적어도 하나의 배포 기준은, 식별된 개인이 상기 응답의 전달에 대한 조건으로서 동의를 제공해야 하는지의 여부를 특정하는 방법.
  8. 제7항에 있어서,
    상기 식별된 개인은, 상기 적어도 하나의 배포 기준과 관련된 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 개인에 대응하는 방법.
  9. 제7항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 상기 소스 엔티티에 현재 로그되어 있다면, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 방법.
  10. 제9항에 있어서,
    상기 식별된 개인은, 상기 식별된 개인의 로그온 세션(logon session)이 활성 상태(active status)를 가질 때 상기 소스 엔티티에 로그되어 있는 것으로 간주되는 방법.
  11. 제9항에 있어서,
    상기 식별된 개인은, 상기 식별된 개인이 상기 소스 엔티티를 구현하는 콘솔에 직접적으로 로그되어 있을 때 상기 소스 엔티티에 로그되어 있는 것으로 간주되 는 방법.
  12. 제7항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 질의(query)에 응답하여 상기 전달을 명시적으로 인증한 경우, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 방법.
  13. 제1항에 있어서,
    상기 소스 엔티티는, 개별적으로 또는 추가적으로 호출될 수 있는 배포 기준의 복수개 세트를 저장하는 방법.
  14. 제1항에 있어서,
    상기 소스 엔티티는 사용자로 하여금 상기 적어도 하나의 배포 기준을 변경할 수 있게 하는 방법.
  15. 제14항에 있어서,
    상기 적어도 하나의 배포 기준을 변경하도록 허용된 사용자는 상기 배포 기준과 연관된 적어도 하나의 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 사용자인 방법.
  16. 제1항에 있어서,
    상기 소스 엔티티는, 사용자가 상기 적어도 하나의 배포 기준을 변경하는 것을 방지하는 방법.
  17. 제1항에 있어서,
    새로운 수신 엔티티의 상기 네트워크로의 추가를 자동적으로 검출하는 단계;
    상기 새로운 수신 엔티티의 존재를 사용자에게 통지하는 단계; 및
    상기 사용자로 하여금, 상기 자원 정보의 상기 새로운 수신 엔티티로의 배포를 통제할 적어도 하나의 다른 배포 기준을 추가할 수 있게 하는 단계
    를 더 포함하는 방법.
  18. 제1항에 있어서,
    상기 프로세싱 하는 단계는, 임의의 자원이 상기 요청에서 특정된 브라우즈 또는 검색 항목을 충족시키는지의 여부를 판정하는 단계를 포함하는 방법.
  19. 제18항에 있어서,
    상기 응답이, 상기 브라우즈 또는 검색 항목을 충족시키는 적어도 하나의 자원에 관한 자원 메타데이터를 식별하는 방법.
  20. 제1항에 있어서,
    상기 프로세싱하는 단계는, 임의의 자원이 상기 요청에서 특정된 자원 로케이터(resource locator)를 충족시키는지의 여부를 판정하는 단계를 포함하는 방법.
  21. 제20항에 있어서,
    상기 자원 로케이터는 URL(uniform resource locator)이고,
    상기 요청은 HTTP(hypertext transfer protocol) 검색 요청인 방법.
  22. 제20항에 있어서,
    상기 응답이, 상기 요청을 충족시키는 적어도 하나의 자원으로부터 취해진 자원 컨텐츠를 식별하는 방법.
  23. 제1항에 있어서,
    제1 요청을 포함하는 제1 동작에서,
    상기 프로세싱하는 단계는, 임의의 자원이 상기 제1 요청에서 특정된 브라우즈 또는 검색 항목을 충족시키는지의 여부를 판정하는 단계를 포함하고;
    상기 응답은 상기 브라우즈 또는 검색 항목을 충족시키는 적어도 하나의 자원에 관한 자원 메타데이터를 식별하며, 상기 자원 메타데이터는 어디에서 상기 적어도 하나의 자원이 찾아질 수 있는지를 설명하는 자원 로케이터를 포함하고,
    제2 요청을 포함하는 제2 동작에서,
    상기 프로세싱하는 단계는, 임의의 자원이 상기 제2 요청에서 특정된 상기 자원 로케이터를 충족시키는지의 여부를 판정하는 단계를 포함하고;
    상기 응답은 상기 제2 요청을 충족시키는 적어도 하나의 자원으로부터 취해진 자원 컨텐츠를 식별하는 방법.
  24. 제1항에 기재된, 상기 수신하는 단계, 프로세싱하는 단계, 발생시키는 단계, 및 전달하는 단계 각각을 구현하기 위한 기계 판독 가능 명령어(machine readable instructions)를 포함하는 컴퓨터 판독 가능 매체.
  25. 소스 엔티티를 사용해 네트워크를 통해 자원 정보를 유포하는 것에 관련된 조건을 정의하기 위한 방법으로서,
    사용자로 하여금,
    상기 네트워크를 통해 공유될 적어도 하나의 자원; 및
    상기 적어도 하나의 자원의 적어도 일부에 관한 상기 자원 정보의 상 기 네트워크를 통한 배포를 통제하는 적어도 하나의 배포 기준
    을 선택할 수 있게 하는 사용자 인터페이스 제시(user interface presentation)를 제공하는 단계; 및
    상기 적어도 하나의 자원 및 상기 적어도 하나의 배포 기준에 대한 상기 사용자의 선택을 상기 사용자 인터페이스 제시를 통해 수신하는 단계
    를 구비하는 방법.
  26. 제25항에 있어서,
    상기 네트워크는 UPnP(Universal Plug and Play) 네트워크로서 구성되는 방법.
  27. 제25항에 있어서,
    상기 자원 정보는 자원 메타데이터이고,
    상기 적어도 하나의 배포 기준은 상기 자원 메타데이터의 유포를 통제하는 방법.
  28. 제25항에 있어서,
    상기 자원 정보는 자원 컨텐츠이고,
    상기 적어도 하나의 배포 기준은 상기 자원 컨텐츠의 유포를 통제하는 방법.
  29. 제25항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 적어도 하나의 자원에 관한 자원 정보를 수신하도록 허용된 적어도 하나의 수신 엔티티를 특정하는 방법.
  30. 제29항에 있어서,
    상기 적어도 하나의 수신 엔티티는 렌더링 디바이스 또는 제어 포인트인 방법.
  31. 제25항에 있어서,
    상기 적어도 하나의 배포 기준은, 식별된 개인이 상기 자원 정보의 유포에 대한 조건으로서 동의를 제공해야 하는지의 여부를 특정하는 방법.
  32. 제31항에 있어서,
    상기 식별된 개인은, 상기 적어도 하나의 배포 기준과 관련된 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 개인에 대응되는 방법.
  33. 제31항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 상기 소스 엔티티에 현재 로그되어 있다면, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 방법.
  34. 제33항에 있어서,
    상기 식별된 개인은, 상기 식별된 개인의 로그온 세션이 활성 상태를 가질 때 상기 소스 엔티티에 로그되어 있는 것으로 간주되는 방법.
  35. 제33항에 있어서,
    상기 식별된 개인은, 상기 식별된 개인이 상기 소스 엔티티를 구현하는 콘솔 에 직접적으로 로그되어 있을 때 상기 소스 엔티티에 로그되어 있는 것으로 간주되는 방법.
  36. 제31항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 질의에 응답하여 상기 유포를 명시적으로 인증한 경우, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 방법.
  37. 제25항에 있어서,
    상기 소스 엔티티는, 개별적으로 또는 추가적으로 호출될 수 있는 배포 기준의 복수개 세트를 저장하는 방법.
  38. 제25항에 있어서,
    상기 소스 엔티티는 사용자로 하여금 상기 적어도 하나의 배포 기준을 변경할 수 있게 하는 방법.
  39. 제38항에 있어서,
    상기 적어도 하나의 배포 기준을 변경하도록 허용된 사용자는 상기 배포 기준과 관련된 적어도 하나의 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 사용자인 방법.
  40. 제25항에 있어서,
    상기 소스 엔티티가, 사용자가 상기 적어도 하나의 배포 기준을 변경하는 것을 방지하는 방법.
  41. 제25항에 있어서,
    상기 소스 엔티티는 자원을 자원의 집합으로서 편성하는 방법.
  42. 제41항에 있어서,
    상기 자원의 집합 중 하나는 자원 폴더(resource filder)이고,
    상기 적어도 하나의 배포 기준은 상기 자원 폴더의 적어도 하나의 멤버 자원에 적용되는 방법.
  43. 제41항에 있어서,
    상기 자원의 집합 중 하나는 자원을 내부적으로 관리하기 위해 상기 소스 엔티티에 의해 사용되는 자원 컨테이너(resource container)이고,
    상기 적어도 하나의 배포 기준은 상기 자원 컨테이너의 적어도 하나의 멤버 자원에 적용되는 방법.
  44. 제41항에 있어서,
    상기 집합의 멤버 자원은 그들의 개별 부모 자원의 공유 가능한 상태를 상속(ingerit)받는 방법.
  45. 제41항에 있어서,
    상기 집합의 멤버 자원은 그들의 개별 부모 자원과 연관된 배포 기준을 상속받는 방법.
  46. 제41항에 있어서,
    상기 자원의 집합 중 하나의 공유 가능한 상태를 제거함으로써, 상기 자원의 집합 중 하나를 비공유로 지정하는 단계를 더 포함하는 방법.
  47. 제25항에 있어서,
    상기 소스 엔티티는,
    상기 자원이 착탈식 메모리 매체에 저장되어 있는 조건;
    상기 자원이 상기 소스 엔티티와 관련하여 상기 네트워크상에 원격적으로(remotely) 상주하는 조건;
    상기 자원을 공유하고자 하는 사용자가 상기 자원에 액세스하기 위한 권한을 가지고 있지 않은 조건;
    상기 자원이 은닉 파일(hidden file) 또는 서브폴더에 저장되어 있는 조건; 및
    상기 자원이, 상기 소스 엔티티가 공유하도록 구성되어 있는 매체 유형의 소정 리스트에 따르지 않는 매체 유형을 가진 파일에 저장되어 있는 조건
    중 적어도 하나가 참(true)인 경우, 상기 자원에 대응되는 자원 정보의 공유를 금지하는 방법.
  48. 제25항에 있어서,
    엔티티로부터의 요청에 응답하여, 상기 적어도 하나의 배포 기준에 기초하여, 상기 자원 정보의 유포를 제어하는 단계를 더 포함하는 방법.
  49. 제25항에 기재된 상기 수신하는 단계 및 제공하는 단계 각각을 구현하기 위한 기계 판독 가능 명령어를 포함하는 컴퓨터 판독 가능 매체.
  50. 네트워크를 통해 자원 정보를 유포하기 위한 서버로서,
    상기 네트워크를 통해 공유될 수 있는 자원에 대한 지시(indication)를 저장하도록 구성되는 공유 자원 저장소(shared resource store); 및
    로직으로서,
    자원 정보에 대한 소비자의 요청을 수신하고;
    상기 요청을 충족시키고 적어도 하나의 배포 기준을 만족시키는, 상기 공유 자원 저장소에서 특정된 임의의 자원이 존재하는지의 여부를 판정하기 위해 상기 요청을 프로세싱하며;
    상기 프로세싱의 결과를 지시하는 응답을 발생시키고;
    상기 응답을 상기 소비자에게로 전달하도록 구성되어 있는, 로직
    을 포함하는 서버.
  51. 제50항에 있어서,
    상기 네트워크는 UPnP(Universal Plug and Play) 네트워크로서 구성되는 서버.
  52. 제50항에 있어서,
    상기 공유 자원 저장소는, 상기 자원과 관련된 자원 메타데이터를 저장하는 것에 의해, 상기 네트워크를 통해 공유될 수 있는 자원에 대한 지시를 저장하도록 구성되어 있는 서버.
  53. 제52항에 있어서,
    상기 공유 자원 저장소는 복수개 리포지토리(repositories)를 포함하는 서버.
  54. 제53항에 있어서,
    상기 복수개 리포지토리는 상기 서버에 의해 유지되는 개별 드라이브에 대응되는 서버.
  55. 제52항에 있어서,
    상기 공유 자원 저장소는, 상기 자원 메타데이터를 관련된 자원으로부터 개별적으로 제공하여, 상기 자원 메타데이터가 용이하게 액세스될 수 있도록 하는 서버.
  56. 제52항에 있어서,
    상기 공유 자원 저장소는 상기 적어도 하나의 배포 기준도 저장하는 서버.
  57. 제56항에 있어서,
    상기 공유 자원 저장소는 상기 자원 메타데이터 및 상기 적어도 하나의 배포 기준을 저장하기 위해 2개의 별개 저장소를 할당하는 서버.
  58. 제56항에 있어서,
    상기 공유 자원 저장소는 상기 자원 메타데이터 및 상기 적어도 하나의 배포 기준을 저장하기 위해 단일 저장소를 할당하는 서버.
  59. 제51항에 있어서,
    상기 자원 정보는 자원 메타데이터이고,
    상기 적어도 하나의 배포 기준은 상기 자원 메타데이터의 유포를 통제하며,
    상기 응답은 상기 소비자의 요청을 충족시키는 자원 메타데이터를 포함하는 서버.
  60. 제50항에 있어서,
    상기 자원 정보는 자원 컨텐츠이고,
    상기 적어도 하나의 배포 기준은 상기 자원 컨텐츠의 유포를 통제하며,
    상기 응답은 상기 소비자의 요청을 충족시키는 자원 컨텐츠를 포함하는 서버.
  61. 제50항에 있어서,
    상기 적어도 하나의 배포 기준은, 적어도 하나의 자원이 상기 요청을 충족시킨다면, 상기 적어도 하나의 자원에 관한 자원 정보를 수신하도록 허용된 적어도 하나의 수신 엔티티를 특정하는 서버.
  62. 제61항에 있어서,
    상기 적어도 하나의 수신 엔티티는 렌더링 디바이스 또는 제어 포인트인 서버.
  63. 제50항에 있어서,
    상기 적어도 하나의 배포 기준은, 식별된 개인이 상기 응답의 전달에 대한 조건으로서 동의를 제공해야 하는지의 여부를 특정하는 서버.
  64. 제63항에 있어서,
    상기 식별된 개인은, 상기 적어도 하나의 배포 기준과 관련된 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 개인에 대응되는 서버.
  65. 제63항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 상기 서버에 현재 로그되어 있다면, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 서버.
  66. 제65항에 있어서,
    상기 식별된 개인이, 상기 식별된 개인의 로그온 세션이 활성 상태를 가질 때 상기 서버에 로그되어 있는 것으로 간주되는 서버.
  67. 제65항에 있어서,
    상기 식별된 개인이, 상기 식별된 개인이 상기 서버를 구현하는 콘솔에 직접적으로 로그되어 있을 때 상기 서버에 로그되어 있는 것으로 간주되는 서버.
  68. 제63항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 질의에 응답하여 상기 전달을 명시적으로 인증하는 경우, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 서버.
  69. 제50항에 있어서,
    상기 공유 자원 저장소는, 개별적으로 또는 추가적으로 호출될 수 있는 배포 기준의 복수개 세트를 저장하도록 구성되어 있는 서버.
  70. 제50항에 있어서,
    상기 서버는, 사용자가 상기 적어도 하나의 배포 기준을 변경하는 것을 허용하도록 구성되어 있는 서버.
  71. 제70항에 있어서,
    상기 적어도 하나의 배포 기준을 변경하도록 허용된 사용자는 상기 배포 기준과 관련된 적어도 하나의 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 사용자인 서버.
  72. 제50항에 있어서,
    상기 서버는, 사용자가 상기 적어도 하나의 배포 기준을 변경하는 것을 방지하도록 구성되어 있는 서버.
  73. 제50항에 있어서,
    새로운 수신 엔티티의 상기 네트워크로의 추가를 자동적으로 검출하고;
    상기 새로운 수신 엔티티의 존재를 사용자에게 통지하며;
    상기 사용자가 상기 자원 정보의 상기 새로운 수신 엔티티로의 배포를 통제할 적어도 하나의 다른 배포 기준을 추가하는 것을 허용하도록 구성되어 있는 로직
    을 더 포함하는 서버.
  74. 제50항에 있어서,
    상기 프로세싱하기 위한 로직은, 임의의 자원이 상기 요청에서 특정된 브라우즈 또는 검색 항목을 충족시키는지의 여부를 판정하도록 구성되어 있는 서버.
  75. 제74항에 있어서,
    상기 응답은, 상기 브라우즈 또는 검색 항목을 충족시키는 적어도 하나의 자원에 관한 자원 메타데이터를 식별하는 서버.
  76. 제50항에 있어서,
    상기 프로세싱하기 위한 로직은, 임의의 자원이 상기 요청에서 특정된 자원 로케이터를 충족시키는지의 여부를 판정하도록 구성되어 있는 서버.
  77. 제76항에 있어서,
    상기 자원 로케이터는 URL(uniform resource locator)이고,
    상기 요청은 HTTP(hypertext transfer protocol) 검색 요청인 서버.
  78. 제76항에 있어서,
    상기 응답은 상기 요청을 충족시키는 적어도 하나의 자원으로부터 취해진 자원 컨텐츠를 식별하는 서버.
  79. 네트워크를 통해 자원에 관한 자원 정보를 유포하는 것에 관련된 조건을 정의하기 위한 서버로서,
    상기 네트워크를 통해 공유될 수 있는 자원에 대한 지시를 저장하도록 구성되어 있는 공유 자원 저장소; 및
    로직으로서,
    사용자로 하여금,
    상기 네트워크를 통해 공유될 적어도 하나의 자원; 및
    상기 적어도 하나의 자원의 적어도 일부에 관한 상기 자원 정보 의 상기 네트워크를 통한 배포를 통제하는 적어도 하나의 배포 기준
    을 선택할 수 있게 하는 사용자 인터페이스 제시를 제공하고,
    상기 적어도 하나의 자원 및 상기 적어도 하나의 배포 기준에 대한 상 기 사용자의 선택을 상기 사용자 인터페이스 제시를 통해 수신하도록
    구성되어 있는, 로직
    을 구비하는 서버.
  80. 제79항에 있어서,
    상기 네트워크는 UPnP(Universal Plug and Play) 네트워크로서 구성되는 서버.
  81. 제79항에 있어서,
    상기 공유 자원 저장소는, 상기 자원과 연관된 자원 메타데이터를 저장하는 것에 의해, 상기 네트워크를 통해 공유될 수 있는 자원에 대한 지시를 저장하도록 구성되어 있는 서버.
  82. 제81항에 있어서,
    상기 공유 자원 저장소는 복수개 리포지토리를 포함하는 서버.
  83. 제82항에 있어서,
    상기 복수개 리포지토리는 상기 서버에 의해 유지되는 개별 드라이브에 대응되는 서버.
  84. 제81항에 있어서,
    상기 공유 자원 저장소는, 상기 자원 메타데이터를 관련된 자원으로부터 개별적으로 제공하여, 상기 자원 메타데이터가 용이하게 액세스될 수 있도록 하는 서버.
  85. 제81항에 있어서,
    상기 공유 자원 저장소는 상기 적어도 하나의 배포 기준도 저장하는 서버.
  86. 제85항에 있어서,
    상기 공유 자원 저장소는 상기 자원 메타데이터 및 상기 적어도 하나의 배포 기준을 저장하기 위해 2개의 별개 저장소를 할당하는 서버.
  87. 제85항에 있어서,
    상기 공유 자원 저장소는 상기 자원 메타데이터 및 상기 적어도 하나의 배포 기준을 저장하기 위해 단일 저장소를 할당하는 서버.
  88. 제79항에 있어서,
    상기 자원 정보는 자원 메타데이터이고,
    상기 적어도 하나의 배포 기준은 상기 자원 메타데이터의 유포를 통제하는 서버.
  89. 제79항에 있어서,
    상기 자원 정보는 자원 컨텐츠이고,
    상기 적어도 하나의 배포 기준은 상기 자원 컨텐츠의 유포를 통제하는 서버.
  90. 제79항에 있어서,
    상기 적어도 하나의 배포 기준은, 적어도 하나의 자원이 상기 요청을 충족시킨다면, 상기 적어도 하나의 자원에 관한 자원 정보를 수신하도록 허용된 적어도 하나의 수신 엔티티를 특정하는 서버.
  91. 제90항에 있어서,
    상기 적어도 하나의 수신 엔티티는 렌더링 디바이스 또는 제어 포인트인 서버.
  92. 제79항에 있어서,
    상기 적어도 하나의 배포 기준은, 식별된 개인이 상기 자원 정보의 배포에 대한 조건으로서 동의를 제공해야 하는지의 여부를 특정하는 서버.
  93. 제92항에 있어서,
    상기 식별된 개인은, 상기 적어도 하나의 배포 기준과 연관된 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 개인에 대응되는 서버.
  94. 제92항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 상기 서버에 현재 로그되어 있다면, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 서버.
  95. 제94항에 있어서,
    상기 식별된 개인은, 상기 식별된 개인의 로그온 세션이 활성 상태를 가질 때 상기 서버에 로그되어 있는 것으로 간주되는 서버.
  96. 제94항에 있어서,
    상기 식별된 개인은, 상기 식별된 개인이 상기 서버를 구현하는 콘솔에 직접적으로 로그되어 있을 때 상기 서버에 로그되어 있는 것으로 간주되는 서버.
  97. 제92항에 있어서,
    상기 적어도 하나의 배포 기준은, 상기 식별된 개인이 질의에 응답하여 상기 유포를 명시적으로 인증하는 경우, 상기 식별된 개인이 동의를 제공한 것으로 간주된다고 특정하는 서버.
  98. 제79항에 있어서,
    상기 공유 자원 저장소는, 개별적으로 또는 추가적으로 호출될 수 있는 배포 기준의 복수개 세트를 저장하도록 구성되어 있는 서버.
  99. 제79항에 있어서,
    상기 서버는, 사용자가 상기 적어도 하나의 배포 기준을 변경하는 것을 허용하도록 구성되어 있는 서버.
  100. 제99항에 있어서,
    상기 적어도 하나의 배포 기준을 변경하도록 허용된 사용자는 상기 배포 기준과 관련된 적어도 하나의 자원을 상기 네트워크를 통해 공유 가능한 것으로 지정한 사용자인 서버.
  101. 제79항에 있어서,
    상기 서버는, 사용자가 상기 적어도 하나의 배포 기준을 변경하는 것을 방지하도록 구성되어 있는 서버.
  102. 제79항에 있어서,
    상기 공유 자원 저장소는 공유 가능한 것으로 지정되어 있는 자원의 집합으로서 자원을 편성하는 서버.
  103. 제102항에 있어서,
    상기 자원의 집합 중 하나는 자원 폴더이고,
    상기 적어도 하나의 배포 기준은 상기 자원 폴더의 적어도 하나의 멤버 자원에 적용되는 서버.
  104. 제102항에 있어서,
    상기 자원의 집합 중 하나는 상기 서버에 의해 자원를 내부적으로 관리하는데 사용되는 자원 컨테이너이고,
    상기 적어도 하나의 배포 기준은 상기 자원 컨테이너의 적어도 하나의 멤버 자원에 적용되는 서버.
  105. 제102항에 있어서,
    상기 집합의 멤버 자원은 개별 부모 자원의 공유 가능한 상태를 상속받는 서버.
  106. 제102항에 있어서,
    상기 집합의 멤버 자원은 개별 부모 자원과 관련된 배포 기준을 상속받는 서버.
  107. 제102항에 있어서,
    상기 자원의 집합 중 하나의 공유 가능한 상태를 제거함으로써, 상기 자원의 집합 중 하나를 비공유로 지정하는 단계를 더 포함하는 서버.
  108. 제79항에 있어서,
    상기 서버는,
    상기 자원이 착탈식 메모리 매체에 저장되어 있는 조건;
    상기 자원이 상기 소스 엔티티와 관련하여 상기 네트워크상에 원격적으로 상주하는 조건;
    상기 자원을 공유하고자 하는 사용자가 상기 자원에 액세스하기 위한 권한을 가지고 있지 않은 조건;
    상기 자원이 은닉 파일 또는 서브폴더에 저장되어 있는 조건; 및
    상기 자원이, 상기 서버가 공유하도록 구성되어 있는 매체 유형의 소정 리스트에 따르지 않는 매체 유형을 가진 파일에 저장되어 있는 조건
    중 적어도 하나이 참이라면, 상기 자원에 대응되는 자원 정보의 공유를 금지하도록 구성되어 있는 서버.
  109. 제79항에 있어서,
    엔티티로부터의 요청에 응답하여, 상기 적어도 하나의 배포 기준에 기초하여, 상기 자원 정보의 유포를 제어하도록 구성되어 있는 로직을 더 포함하는 서버.
KR1020057012382A 2003-12-19 2004-07-23 네트워크에서의 자원 정보 라우팅 KR20060112192A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/742,588 2003-12-19
US10/742,588 US7668939B2 (en) 2003-12-19 2003-12-19 Routing of resource information in a network

Publications (1)

Publication Number Publication Date
KR20060112192A true KR20060112192A (ko) 2006-10-31

Family

ID=34678494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057012382A KR20060112192A (ko) 2003-12-19 2004-07-23 네트워크에서의 자원 정보 라우팅

Country Status (6)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101243015B1 (ko) * 2011-03-16 2013-03-12 엔에이치엔비즈니스플랫폼 주식회사 별개의 서비스들을 결합하여 제공하는 서비스 제공 시스템 및 서비스 제공 방법
KR20140020193A (ko) * 2012-08-08 2014-02-18 삼성전자주식회사 디바이스들 간의 리소스 공유하는 방법 및 전자 디바이스
KR20140048019A (ko) * 2012-10-15 2014-04-23 엘지전자 주식회사 미디어 공유 제어장치, 미디어 재생장치, 미디어 공유 애플리케이션 제공 서버 및 미디어 공유 방법
KR20150095768A (ko) * 2012-12-07 2015-08-21 삼성전자주식회사 Wi­fi 네트워크에서 멀티미디어 콘텐츠를 스트리밍하기 위한 방법 및 시스템
US9201624B2 (en) 2009-11-13 2015-12-01 Samsung Electronics Co., Ltd. Display apparatus, client, image display system including the same, and image displaying method

Families Citing this family (272)

* 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 삼성전자주식회사 홈 네트워크 시스템 및 그 관리 방법
US20050138137A1 (en) * 2003-12-19 2005-06-23 Microsoft Corporation Using parameterized URLs for retrieving resource content items
US7668939B2 (en) 2003-12-19 2010-02-23 Microsoft Corporation Routing of resource information in a network
US7555543B2 (en) 2003-12-19 2009-06-30 Microsoft Corporation Server architecture for network resource information routing
US7647385B2 (en) * 2003-12-19 2010-01-12 Microsoft Corporation Techniques for limiting network access
US20060095628A1 (en) * 2003-12-19 2006-05-04 Microsoft Corporation External-Network Data Content Exposure to Network-Connected Devices
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
US8028323B2 (en) * 2004-05-05 2011-09-27 Dryden Enterprises, Llc Method and system for employing a first device to direct a networked audio device to obtain a media item
US8028038B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Obtaining a playlist based on user profile matching
US9826046B2 (en) * 2004-05-05 2017-11-21 Black Hills Media, Llc Device discovery for digital entertainment network
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
US20060028479A1 (en) * 2004-07-08 2006-02-09 Won-Suk Chun 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
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
US7965252B2 (en) 2004-08-18 2011-06-21 Ruckus Wireless, Inc. Dual polarization antenna array with increased wireless coverage
US7880683B2 (en) 2004-08-18 2011-02-01 Ruckus Wireless, Inc. Antennas with polarization diversity
US7362280B2 (en) * 2004-08-18 2008-04-22 Ruckus Wireless, Inc. System and method for a minimized antenna apparatus with selectable 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
US7193562B2 (en) * 2004-11-22 2007-03-20 Ruckus Wireless, Inc. Circuit board having a peripheral antenna apparatus with selectable antenna elements
US7696946B2 (en) 2004-08-18 2010-04-13 Ruckus Wireless, Inc. Reducing stray capacitance in antenna element switching
US7652632B2 (en) * 2004-08-18 2010-01-26 Ruckus Wireless, Inc. Multiband omnidirectional planar antenna apparatus with selectable elements
US8031129B2 (en) 2004-08-18 2011-10-04 Ruckus Wireless, Inc. Dual band dual polarization antenna array
KR100608582B1 (ko) * 2004-08-28 2006-08-03 삼성전자주식회사 범용 플러그 앤 플레이 통신 방법 및 장치
US7590803B2 (en) * 2004-09-23 2009-09-15 Sap Ag Cache eviction
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 藉由確認抑制之增強資訊量
US8619662B2 (en) 2004-11-05 2013-12-31 Ruckus Wireless, Inc. Unicast to multicast conversion
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
US8792414B2 (en) 2005-07-26 2014-07-29 Ruckus Wireless, Inc. Coverage enhancement using dynamic antennas
US7358912B1 (en) 2005-06-24 2008-04-15 Ruckus Wireless, Inc. Coverage antenna apparatus with selectable horizontal and vertical polarization elements
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
US20060143389A1 (en) * 2004-12-28 2006-06-29 Frank Kilian Main concept for common cache management
US7539821B2 (en) 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US7523263B2 (en) * 2004-12-28 2009-04-21 Michael Wintergerst Storage plug-in based on shared closures
US7672949B2 (en) * 2004-12-28 2010-03-02 Sap Ag Connection manager having a common dispatcher for heterogeneous software suites
US7552284B2 (en) * 2004-12-28 2009-06-23 Sap Ag Least frequently used eviction implementation
US7694065B2 (en) * 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US7971001B2 (en) * 2004-12-28 2011-06-28 Sap Ag Least recently used eviction implementation
US7451275B2 (en) * 2004-12-28 2008-11-11 Sap Ag Programming models for storage plug-ins
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US20060143256A1 (en) * 2004-12-28 2006-06-29 Galin Galchev Cache region concept
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
US7893882B2 (en) 2007-01-08 2011-02-22 Ruckus Wireless, Inc. Pattern shaping of RF emission patterns
US7646343B2 (en) * 2005-06-24 2010-01-12 Ruckus Wireless, Inc. Multiple-input multiple-output wireless antennas
KR100645537B1 (ko) * 2005-02-07 2006-11-14 삼성전자주식회사 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소
JP5092200B2 (ja) * 2005-03-17 2012-12-05 株式会社日立製作所 ネットワーク装置およびイベント処理方法
US20060265427A1 (en) * 2005-04-05 2006-11-23 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
US7581066B2 (en) * 2005-04-29 2009-08-25 Sap Ag Cache isolation model
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US7831634B2 (en) 2005-04-29 2010-11-09 Sap Ag Initializing a cache region using a generated cache region configuration structure
KR20080024163A (ko) * 2005-05-31 2008-03-17 코닌클리케 필립스 일렉트로닉스 엔.브이. 이동 저장 미디어, 호스트 디바이스 및 호스트 디바이스에의해 이동 저장 미디어의 콘텐트를 액세스하는 방법
US7689660B2 (en) * 2005-06-09 2010-03-30 Sap Ag Application server architecture
EP1898316A4 (en) * 2005-06-30 2012-04-04 Mitsubishi Electric Corp CLIENT DEVICE
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
JP4933156B2 (ja) * 2005-07-29 2012-05-16 株式会社リコー 画像撮影装置
US20070027808A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Strategies for queuing events for subsequent processing
US20070067386A1 (en) * 2005-08-30 2007-03-22 D-Link Systems, Inc. Embedded media server
US20070073894A1 (en) * 2005-09-14 2007-03-29 O Ya! Inc. Networked information indexing and search apparatus and method
CN101322346A (zh) * 2005-12-01 2008-12-10 鲁库斯无线公司 借助于无线基站虚拟化的按需服务
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
US7600024B2 (en) * 2006-03-31 2009-10-06 Microsoft Corporation Restricting device access per session
US20230017018A1 (en) * 2006-03-31 2023-01-19 Sheng Tai (Ted) Tsao Method and Apparatus For Information exchange Over a Web Based Environment
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
US9071583B2 (en) * 2006-04-24 2015-06-30 Ruckus Wireless, Inc. Provisioned configuration for automatic wireless connection
US9769655B2 (en) 2006-04-24 2017-09-19 Ruckus Wireless, Inc. Sharing security keys with headless devices
CN103441984B (zh) 2006-04-24 2017-09-05 鲁库斯无线公司 安全无线网络中的动态认证
US7639106B2 (en) * 2006-04-28 2009-12-29 Ruckus Wireless, Inc. PIN diode network for multiband RF coupling
US8171482B1 (en) * 2006-05-09 2012-05-01 Vmware, Inc. Application environment specifications for provisioning application specific runtime environments using subsets of resources required for execution
JP4933149B2 (ja) * 2006-05-22 2012-05-16 キヤノン株式会社 情報処理装置、電子データ転送方法及びプログラム
US20080045149A1 (en) * 2006-05-26 2008-02-21 Dinesh Dharmaraju Wireless architecture for a traditional wire-based protocol
US9198084B2 (en) 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
ES2547007T3 (es) * 2006-06-15 2015-09-30 Sony Corporation Dispositivo, método y programa informático de procesamiento de información
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
US8280978B2 (en) * 2006-12-29 2012-10-02 Prodea Systems, Inc. Demarcation between service provider and user in 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
WO2008133555A1 (en) * 2007-04-27 2008-11-06 Telefonaktiebolaget Lm Ericsson (Publ) Universal plug and play extender
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
US11262996B2 (en) * 2007-05-09 2022-03-01 Vmware, Inc. Repository including exclusion list
US9015180B1 (en) 2007-05-09 2015-04-21 Vmware, Inc. Repository including file identification
US8219987B1 (en) 2007-08-24 2012-07-10 Vmware, Inc. Optimized virtual machine specification for provisioning application specific runtime environment
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 オンキヨー株式会社 サーバ及びサーバプログラム
WO2009059221A1 (en) * 2007-11-02 2009-05-07 Research In Motion Corporation 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
US20090150520A1 (en) * 2007-12-07 2009-06-11 David Garcia Transmitting Assets In UPnP Networks To Remote Servers
US20090150481A1 (en) * 2007-12-08 2009-06-11 David Garcia Organizing And Publishing Assets In UPnP Networks
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 ソニー株式会社 ネットワークシステム
US20120016975A1 (en) * 2010-07-15 2012-01-19 Lmr Inventions, Llc System and method for managing network resource requests
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
US8285810B2 (en) 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections between participants of a sharing network utilizing bridging
US8224899B2 (en) 2008-04-17 2012-07-17 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US8285811B2 (en) 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections to provide a primary list and sorted sub-lists
US8484311B2 (en) * 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
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
US9043726B2 (en) * 2008-07-03 2015-05-26 Ebay Inc. Position editing tool 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
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
US8880599B2 (en) 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US20100094834A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Bridging in 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 삼성전자주식회사 디스플레이장치, 단말기 및 영상표시방법
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
WO2011078879A1 (en) * 2009-12-02 2011-06-30 Packet Video Corporation 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
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
US20130185658A1 (en) * 2010-09-30 2013-07-18 Beijing Lenovo Software Ltd. Portable Electronic Device, Content Publishing Method, And Prompting Method
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
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
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
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US8674957B2 (en) 2011-02-04 2014-03-18 Qualcomm Incorporated User input device for wireless back channel
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
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
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
CN103858106B (zh) 2011-05-01 2017-04-26 鲁库斯无线公司 远程电缆接入点复位
CN102882830B (zh) * 2011-07-11 2016-06-08 华为终端有限公司 媒体资源访问控制方法和设备
KR101995425B1 (ko) 2011-08-21 2019-07-02 엘지전자 주식회사 영상 표시 장치, 단말 장치 및 그 동작 방법
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
US9634403B2 (en) 2012-02-14 2017-04-25 Ruckus Wireless, Inc. Radio frequency emission pattern shaping
US10186750B2 (en) 2012-02-14 2019-01-22 Arris Enterprises Llc Radio frequency antenna array with spacing element
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
WO2014026322A1 (zh) * 2012-08-14 2014-02-20 华为技术有限公司 共享图形信息的方法和装置
US9570799B2 (en) 2012-09-07 2017-02-14 Ruckus Wireless, Inc. Multiband monopole antenna apparatus with ground plane aperture
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 国基电子(上海)有限公司 服务请求控制系统及其控制方法
US9565472B2 (en) 2012-12-10 2017-02-07 Time Warner Cable Enterprises Llc Apparatus and methods for content transfer protection
US10230161B2 (en) 2013-03-15 2019-03-12 Arris Enterprises Llc Low-band reflector for dual band directional antenna
US9501533B2 (en) 2013-04-16 2016-11-22 Sonos, Inc. Private queue for a media playback system
US9247363B2 (en) 2013-04-16 2016-01-26 Sonos, Inc. Playback queue transfer in a media playback system
US9361371B2 (en) 2013-04-16 2016-06-07 Sonos, Inc. Playlist update in 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
US10715973B2 (en) 2013-05-29 2020-07-14 Sonos, Inc. Playback queue control transition
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
US9735978B2 (en) 2013-05-29 2017-08-15 Sonos, Inc. Playback queue control via a playlist on a mobile device
US9953179B2 (en) 2013-05-29 2018-04-24 Sonos, Inc. Private queue indicator
US9684484B2 (en) 2013-05-29 2017-06-20 Sonos, Inc. Playback zone silent connect
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 华为技术有限公司 资源处理方法和站点服务器
WO2015006307A1 (en) * 2013-07-09 2015-01-15 Contentraven, Inc. 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
JP6354382B2 (ja) 2014-06-26 2018-07-11 株式会社リコー 認証システム、認証方法、認証装置及びプログラム
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
US11436575B2 (en) * 2015-06-05 2022-09-06 Arris Enterprises Llc Virtual wallet for customer premise equipment device
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
US10462456B2 (en) 2016-04-14 2019-10-29 Contec, Llc Automated network-based test system for set top box devices
US10779056B2 (en) 2016-04-14 2020-09-15 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
WO2021021752A1 (en) * 2019-07-30 2021-02-04 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 百度在线网络技术(北京)有限公司 信息更新方法和装置
CN114154026A (zh) * 2021-11-12 2022-03-08 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质

Family Cites Families (61)

* 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
JP2001514833A (ja) * 1997-03-12 2001-09-11 ノマディックス・リミテッド・ライアビリティ・カンパニー ノーマッド変換器またはルータ
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
ATE225998T1 (de) 1998-07-17 2002-10-15 United Video Properties Inc Interaktive fernsehprogrammführung mit mehreren geräten an einem ort
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
JP2000330937A (ja) * 1999-05-17 2000-11-30 Yaskawa Electric Corp イントラネットシステム及びサーバの制御方法
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
WO2001073593A1 (en) * 2000-03-24 2001-10-04 Eliza Corporation Phonetic data processing system and method
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 ソニー株式会社 情報配信システム及び情報配信方法、情報供給装置及び情報供給方法
JP4007898B2 (ja) * 2001-10-25 2007-11-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
JP2003186831A (ja) * 2001-12-13 2003-07-04 Sony Corp ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム
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
US20050138137A1 (en) 2003-12-19 2005-06-23 Microsoft Corporation Using parameterized URLs for retrieving resource content items
US7647385B2 (en) 2003-12-19 2010-01-12 Microsoft Corporation Techniques for limiting network access
US7555543B2 (en) 2003-12-19 2009-06-30 Microsoft Corporation Server architecture for network resource information routing
US7668939B2 (en) 2003-12-19 2010-02-23 Microsoft Corporation Routing of resource information in a network
US20050160458A1 (en) * 2004-01-21 2005-07-21 United Video Properties, Inc. Interactive television system with custom video-on-demand menus based on personal profiles
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
CN101379464B (zh) * 2005-12-21 2015-05-06 数字标记公司 规则驱动型个域网id元数据路由系统和网络
US7706740B2 (en) * 2006-01-06 2010-04-27 Qualcomm Incorporated Apparatus and methods of selective collection and selective presentation of content

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201624B2 (en) 2009-11-13 2015-12-01 Samsung Electronics Co., Ltd. Display apparatus, client, image display system including the same, and image displaying method
KR101243015B1 (ko) * 2011-03-16 2013-03-12 엔에이치엔비즈니스플랫폼 주식회사 별개의 서비스들을 결합하여 제공하는 서비스 제공 시스템 및 서비스 제공 방법
KR20140020193A (ko) * 2012-08-08 2014-02-18 삼성전자주식회사 디바이스들 간의 리소스 공유하는 방법 및 전자 디바이스
KR20140048019A (ko) * 2012-10-15 2014-04-23 엘지전자 주식회사 미디어 공유 제어장치, 미디어 재생장치, 미디어 공유 애플리케이션 제공 서버 및 미디어 공유 방법
KR20150095768A (ko) * 2012-12-07 2015-08-21 삼성전자주식회사 Wi­fi 네트워크에서 멀티미디어 콘텐츠를 스트리밍하기 위한 방법 및 시스템

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101109232B1 (ko) 네트워크 자원 정보 라우팅을 위한 서버 아키텍처
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
Caswell et al. Creating web representations for places
JP6223979B2 (ja) 共有アイテムアカウント選択
EP2769314B1 (en) Network connected media gateway for communication networks
US8204975B2 (en) Server apparatus, client apparatus and system for securely transmitting stored content
US8037519B2 (en) Apparatus and method for managing access to one or more network resources
JP5148095B2 (ja) コンテンツ配信サーバ、コンテンツ提供サーバ、コンテンツ配信システム、コンテンツ配信方法、コンテンツ提供方法、および、制御プログラム
US20040024875A1 (en) Schema-based services for identity-based access to device data
CN102263782B (zh) 信息处理装置、信息处理方法和信息处理系统
KR20050113626A (ko) 네트워크에서 사용자 스테이션들 사이의 파일들을 공유하는방법
KR20060033735A (ko) Upnp 네트워크상에 저장된 컨텐트와의 사용자-특정상호 작용
JP2009086806A (ja) 中継プログラム、中継装置、中継方法
KR20040058338A (ko) 조건적 액세스 시스템
JP2009507298A (ja) 遠隔のネットワークノードとのデータ通信
Rasheed et al. Home Interoperability Framework for the Digital Home.
JP2003242122A (ja) ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム
Interoperability et al. Interoperable Home Infrastructure

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid