KR20100066488A - 메타데이터를 위한 네트워크 레포지토리 - Google Patents

메타데이터를 위한 네트워크 레포지토리 Download PDF

Info

Publication number
KR20100066488A
KR20100066488A KR1020107005044A KR20107005044A KR20100066488A KR 20100066488 A KR20100066488 A KR 20100066488A KR 1020107005044 A KR1020107005044 A KR 1020107005044A KR 20107005044 A KR20107005044 A KR 20107005044A KR 20100066488 A KR20100066488 A KR 20100066488A
Authority
KR
South Korea
Prior art keywords
data
metadata
network
repository
network device
Prior art date
Application number
KR1020107005044A
Other languages
English (en)
Other versions
KR101470991B1 (ko
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 KR20100066488A publication Critical patent/KR20100066488A/ko
Application granted granted Critical
Publication of KR101470991B1 publication Critical patent/KR101470991B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

메타데이터를 위한 네트워크 레포지토리에 대한 방법 및 장치가 개시된다. 데이터 레포지토리의 실시예는 하나 이상의 데이터 콘텐츠 항목을 포함한 데이터를 저장하기 위해 메모리를 포함하고, 여기서 각 데이터 콘텐츠 항목은 0 이상의 메타데이터 항목과 관련있고, 그리고 각 데이터 콘텐츠 항목은 핸들과 관련있으며, 각 메타데이터 항목은 속성 이름과 관련있다. 데이터 레포지토리는 클라이언트 장치와 통신하도록 구성된 네트워크 인터페이스, 그리고 메모리에서 데이터 저장을 제어하도록 구성된 제어 유닛을 더 포함하고, 여기서 제어 유닛은 메모리로 데이터를 기록하하고 메모리로부터 데이터를 판독하기 위한 기능을 제공하고, 제어 유닛은 해석없이 데이터를 전송하기 위한 것이다.

Description

메타데이터를 위한 네트워크 레포지토리{NETWORK REPOSITORY FOR METADATA}
본 발명의 실시예는 일반적으로 네트워크 분야에 관한 것으로, 특히 메타데이터(metadata)를 위한 네트워크 레포지토리(repository)에 대한 방법 및 장치에 관한 것이다.
네트워크는 다수의 퍼스널 전자 엔터테인먼트 미디어 장치의 상호연결을 포함할 수 있다. 다양한 미디어 장치는 데이터 공유, 편리성 증가, 그리고 각 요소의 보다 충분한 사용을 위하여 함께 네트워크화될 수 있다. 예를 들면 홈 내의 소정 장치들이 함께 연결될 수 있다. 이러한 환경에서, 오디오, 비디오, 게이밍 및 다른 사용을 위한 스트리밍 디지털 미디어 콘텐츠(streaming digital media content)의 다수의 잠재적 소스 및 사용자가 있다.
이러한 네트워크 내에서, 연결된 메타데이터를 함께 가지는 다양하고 상이한 데이터 유형 및 포맷의 데이터가 있을 수 있으며, 여기서 메타데이터는 다른 데이터에 대한 정보를 말한다. 예를 들면 디지털 음악과 관련된 메타데이터는 아티스트, 노래 제목, 앨범 아트, 출시일 및 다른 정보에 관한 정보를 포함할 수 있다. 디지털 데이터의 레포지토리는 전형적으로 특정 속성을 가진 데이터에 대해 레포지토리를 브라우징(browsing), 필터링 또는 검색하는 능력을 지원한다. 이것은 전형적으로 이들 동작을 지원하는 데이터베이스에 관련 메타데이터를 저장함으로써 성취된다. 현대 시스템에서, 데이터베이스와 데이터 레포지토리는 전형적으로 단일 시스템으로 결합된다. 예를 들면 디지털 음악 시스템은 노래 데이터베이스를 유지하는 반면에, DVR(digital video recorder)은 레코딩된 텔레비젼 쇼의 그 자신의 데이터베이스를 유지할 수 있다.
그러나 상호연결된 네트워크에서, 네트워크를 통해 데이터 레포지토리를 공유할 필요가 있을 수 있다. 데이터 레포지토리의 공유는 관련 메타데이터를 유지해야하는 복잡한 상황을 가져온다. 예를 들면 레포지토리의 각 클라이언트는 데이터베이스에 저장할 포맷 및 데이터 유형에 대해 상이한 요구를 가질 수 있다. 더욱이 각 클라이언트에 의해 추가된 값 부분은 지원되는 질의(queries) 유형, 그리고 이러한 질의에 응답하여 제공되는 성능일 수 있다. 특히 데이터베이스에 저장할 가능한 메타데이터 세트를 미리 결정할 수 없다면, 네트워크에서 모든 요구를 만족시킬 수 있는 단일 데이터베이스 포맷을 지원하는 일은 불가능하다. 예를 들면 디지털 미디어 레포지토리는 개인 사진 및 홈 무비, 프리미엄 영화 콘텐츠, 텔레비젼 레코딩, 디지털 음악 및 다른 데이터를 포함할 수 있다. 메타데이터 세트는 콘텐츠 특정적, (사용자가 매긴 평가와 같은) 개인화, 벤더(vendor) 특정적 및 다른 인자에 특정적일 수 있다. 반면에, 완전히 조정가능한(open-ended) 데이터베이스는 폭넓게 다양한 데이터 유형을 허용하지만 성능 및 맞춤화를 위한 요구에는 반대된다.
메타데이터를 위한 네트워크 레포지토리에 대한 방법 및 장치를 제공한다.
본 발명의 제1 양상에서, 데이터 레포지토리는 하나 이상의 콘텐츠 항목을 포함한 데이터를 저장하기 위해 메모리를 포함할 수 있고, 여기서 각 데이터 콘텐츠 항목은 0 이상의 메타데이터 항목과 관련있고, 각 데이터 콘텐츠 항목은 핸들(handle)과 관련있으며, 각 메타데이터 항목은 속성 이름과 관련있다. 데이터 레포지토리는 클라이언트 장치와 통신하도록 구성된 네트워크 인터페이스. 그리고 메모리에서 데이터 저장을 제어하도록 구성된 제어 유닛을 더 포함하고, 여기서 제어 유닛은 메모리로 데이터를 기록하고 메모리로부터 데이터를 판독하기 위한 기능을 제공하고, 제어 유닛은 해석(interpretation)없이 데이터를 전송하기 위한 것이다.
본 발명의 제2 양상에서, 네트워크 장치는 네트워크 데이터 레포지토리와 통신하기 위해 네트워크 인터페이스를 포함할 수 있고, 여기서 데이터 레포지토리는 콘텐츠 데이터 및 메타데이터 세트를 불투명 데이터(opaque data)로서 보유하고, 각 데이터 콘텐츠 항목은 핸들과 관련있고, 각 메타데이터 항목은 속성 이름과 관련있다. 네트워크 장치는 네트워크 데이터 레포지토리에 대한 액세스를 제어하기 위해 네트워크 유닛을 더 포함하고, 네트워크 유닛은 콘텐츠 핸들 및 메타데이터 속성 이름을 사용하는 콘텐츠 데이터 및 메타데이터 세트에 데이터베이스 기능을 제공한다. 또한 네트워크 장치는 네트워크 데이터 레포지토리로부터 하나 이상의 메타데이터 항목을 저장하기 위해 캐시 메모리를 포함할 수 있다.
본 발명의 제3 양상에 있어서, 네트워크는 데이터베이스를 포함한 제1 네트워크 장치를 포함할 수 있고, 데이터베이스는 다수의 데이터 콘텐츠 항목을 포함하고, 각 데이터 콘텐츠 항목은 0 이상의 관련 메타데이터 항목을 가지고, 여기서 제1 네트워크는 데이터 콘텐츠 항목 및 메타데이터 항목을 불투명 데이터로서 보유한다. 네트워크는 제1 네트워크 장치로부터 하나 이상의 메타데이터 항목을 캐싱(caching)하기 위한 캐시 메모리를 구비한 제2 네트워크 장치를 더 포함할 수 있고, 여기서 제2 네트워크 장치는 데이터베이스에 담긴 데이터에 대한 데이터 액세스를 제공하기 위한 것이다.
본 발명의 제4 양상에 따라서, 본 방법은 데이터 레포지토리에 데이터를 저장하는 단계를 포함할 수 있고, 데이터는 다수의 콘텐츠 데이터 항목을 포함하고, 각 콘텐츠 데이터 항목은 0 이상의 메타데이터 항목과 관련있다. 본 방법은 각 콘텐츠 데이터 항목을 핸들과 관련시키는 단계 및, 각 메타데이터 항목을 속성 이름과 관련시키는 단계, 그리고 상기 콘텐츠 데이터의 핸들과 메타데이터의 속성 이름을 사용하여 데이터 해석없이 클라이언트 장치에 의한 데이터로의 액세스를 제공하는 단계를 더 포함한다.
본 발명의 실시예는 동일 참조번호가 유사 요소를 언급하는 첨부도면의 도면에서 제한을 위한 것이 아닌 예로서 도시된다.
도 1은 네트워크 데이터 레포지토리를 포함한 네트워크의 실시예를 도시하는 도면.
도 2는 메타데이터의 캐싱을 위한 실시예를 도시하는 도면.
도 3은 네트워크 데이터 레포지토리의 실시예를 도시하는 도면.
도 4는 메타데이터의 저장을 위한 데이터 레포지토리 및 캐시의 실시예를 도시하는 도면.
도 5는 데이터 레포지토리에 사용하기 위한 메타데이터 속성의 실시예를 도시하는 도면.
도 6은 네트워크 데이터 레포지토리로부터 메타데이터의 캐시를 유지하기 위한 처리의 실시예를 도시하는 흐름도.
도 7은 네트워크 장치의 실시예를 도시하는 도면.
도 8은 네트워크 장치의 구성 요소의 실시예를 도시하는 도면.
도 9는 엔터테인먼트 네트워크의 실시예를 도시하는 도면.
본 발명의 실시예는 일반적으로 메타데이터를 위한 네트워크 레포지토리에 대한 방법 및 장치에 관한 것이다.
여기에 사용되는 바와 같이, "엔터테인먼트 네트워크"는 장치들 간에 (음악, 오디오/비디오, 게이밍, 포토 및 다른 것들을 포함한) 디지털 미디어 콘텐츠를 전달하기 위한 상호연결 네트워크를 의미한다. 엔터테인먼트 네트워크는 가정에서의 네트워크와 같은 퍼스널 엔터테인먼트 네트워크, 비즈니스 환경에서의 엔터테인먼트 네트워크, 또는 임의 다른 엔터테인먼트 장치 네트워크를 포함할 수 있다. 이러한 네트워크에서, 소정 네트워크 장치는 디지털 텔레비젼 튜너, 케이블 셋탑 박스, 비디오 저장 서버 및 다른 소스 장치와 같은 미디어 콘텐츠 소스일 수 있다. 다른 장치는 디지털 텔레비젼, 홈 시어터 시스템, 오디오 시스템, 게이밍 시스템 및 다른 장치와 같은 미디어 콘텐츠를 디스플레이 또는 사용할 수 있다. 또한 소정 장치는 비디오 및 오디오 저장 서버와 같은 미디어 콘텐츠를 저장 또는 전송하기 위한 것일 수 있다. 소정 장치는 다수의 미디어 기능을 수행할 수 있다. 소정 실시예에서, 네트워크 장치들은 단일 LAN(local area network)상에 함께 배치될 수 있다. 다른 실시예에서, 네트워크 장치들은 LAN들 사이의 터널링(tunneling)을 통하는 등, 다수의 네트워크 세그먼트에 미칠 수 있다. 엔터테인먼트 네트워크는 다수의 데이터 인코딩 및 암호화 처리를 포함할 수 있다.
여기에 사용되는 바와 같이, "데이터"는 콘텐츠 데이터, 콘텐츠 데이터를 위한 메타데이터, 그리고 임의 다른 유형의 데이터를 의미한다.
여기에 사용되는 바와 같이, "불투명(opaque) 데이터"는 데이터의 해석없이 전달되거나 달리 처리되는 데이터이다.
소정 실시예에서, 네트워크는 콘텐츠 데이터 및 메타데이터를 위한 일반적 레포지토리를 포함한다. 소정 실시예에서, 다수의 상이한 종류의 데이터 및 메타데이터가 단일 저장소를 사용하여 레포지토리에 존재한다. 소정 실시에에서, 미디어 메타데이터의 저장소는 저장되는 데이터 유형에 상관없이 일반적 레포지토리에 제공된다. 이러한 데이터 레포지토리는 다수의 상이한 유형 및 포맷의 데이터를 저장할 수 있다. 소정 실시예에서, 데이터 레포지토리는 데이터를 불투명 방식으로 저장하는데, 그 데이터 레포지토리는 데이터의 해석없이, 그리고 저장된 데이터의 포맷 또는 유형의 이해없이 동작한다. 소정 실시예에서, 메타데이터는 네트워크 장치에서 데이터의 간단한 캐싱을 허용하는 방식으로 저장된다. 소정 실시예에서, 네트워크는 제한된 처리 및 버퍼링 능력을 가진 네트워크 장치에 의해 액세스가능한 형태로 네트워크 데이터의 저장 및 캐싱을 허용한다.
일 예에서, 네트워크는 다수의 상호연결된 엔터테인먼트 장치를 포함한 엔터테인먼트 네트워크일 수 있다. 이러한 네트워크에서, 저장 서버는 다수의 상이한 유형 및 포맷의 미디어 데이터를 위한 네트워크 레포지토리로서 동작할 수 있다. 이러한 네트워크에서 일 예로 셋탑 박스와 같은 네트워크 장치는 저장된 영화 또는 텔레비젼 프로그램에 관한 메타데이터의 캐시를 포함할 수 있으며, 미디어 데이터 및 원(original) 메타데이터는 저장 서버상에 저장된다. 이러한 환경에서, 캐시는 저장 서버상에 존재하는 메타데이터와 관련하여 최신(up-to-date) 상태로 유지될 필요가 있다.
본 발명의 실시예에서, 미디어 콘텐츠 및 관련 미디어 콘텐츠 메타데이터와 같은 데이터 및 관련 메타데이터를 포함한 데이터베이스는 저 자원 환경에서 지원되는데, 그 데이터베이스는 검색 및 필터링 옵션을 포함한다. 보통 종래의 데이터베이스는 데이터베이스에 저장될 수 있는 데이터 유형 및 포맷과 관련하여 매우 특정적이다. 그러나 미디어 콘텐츠 및 관련 메타데이터는 유형 및 포맷과 관련하여 상당히 변할 수 있다. 소정 실시예에서, 데이터베이스는 허용되는 데이터 유형 및 포맷과 관련하여 제한되지 않으며, 데이터 유형 및 포맷은 데이터베이스를 위해 알려지지 않을 수 있다. 종래 데이터베이스에서, (데이터 레포지토리와 데이터 액세서 세트를 포함한) 데이터베이스 백 엔드(back end)는 데이터 저장과 표준 데이터베이스 동작 세트를 지원할 것이다. 그러나 이들 데이터베이스 동작은 일반적으로 복잡하고 데이터 특정적이다. 폭넓게 다양한 유형 및 포맷의 데이터를 지원하는 데이터베이스에서, 특히 데이터 요소가 제한된 메모리 또는 처리 능력을 가지는 저 자원 환경에서 이러한 데이터베이스 기능을 구현하는 일은 불가능할 것이다.
소정 실시예에서, 데이터베이스 레포지토리는 불투명 데이터 항목에 대한 네트워크 액세스를 제공한다. 소정 실시예에서, 데이터베이스에 저장된 데이터에 대한 동작은 데이터베이스보다는 데이터를 위한 각 클라이언트에 귀속하는 반면에, 데이터베이스는 데이터의 저장을 제공하기 위해 분할된다. 소정 실시예에서, 데이터베이스 시스템은 클라이언트로 하여금 원자 단위로 파일을 판독 또는 기록하게 하는 파일 복사 시맨틱스(file copy semantics)로 제한된다. 소정 실시예에서, 데이터베이스 레포지토리에 의한 메타데이터의 임의 해석의 요구없이 데이터베이스에 대한 액세스를 제공한다. 소정 실시예에서, 데이터베이스는 저 자원으로, 그리고 저장된 데이터의 실제 포맷 또는 콘텐츠의 이해없이 데이터를 검색할 수 있게 하는 필터링 능력을 포함한다.
소정 실시예에서, 데이터베이스 클라이언트/프론트 엔드(front end)와 데이터베이스 레포지토리/백 엔드 사이에서의 필요한 파일 전송을 제한하기 위한 메카니즘을 제공한다. 소정 실시예에서, 대역폭 및 액세스 요청을 최소화하면서 불투명 데이터 항목을 효율적으로 캐싱 및 액세스하기 위한 처리를 제공한다.
소정 실시예에서, 레포지토리는 여기서 "콘텐츠"로 언급되는 다양한 데이터 세트를 보유한다. 소정 실시예에서, 각 콘텐츠 피스 또는 항목은 콘텐츠를 처음 저장할 때 또는 그 전에 레포지토리에 의해 국부적으로 고유한 비반복 식별자(또는 "핸들(handle")를 할당받는다. 이 핸들은 특정 콘텐츠 피스 및 그의 관련 메타데이터를 참조하기 위하여 레포지토리의 클라이언트에 의해 사용된다. 전형적인 구현시에, 핸들은 고정 표현(예를 들면 32 비트 빅 엔디안(big endian) 또는 64 비트 빅 엔디안)을 가진 정수와 같이 고정 포맷을 가진 지정자일 수 있지만, 핸들은 임의 특정 표현으로 제한되지 않는다. 핸들은 실제 콘텐츠 및 메타데이터를 보유하기 위한 콘테이너로서 기능하는 레포지토리에 디렉토리 또는 폴더로 생각될 수 있다. 일 예에서, (콘텐츠로 명명될 수 있는) 디렉토리는 관련 메타데이터를 포함할 수 있는 (메타데이터로 명명될 수 있는) 또 다른 디렉토리와 함께, 저장된 콘텐츠를 포함한 하나 이상의 파일을 더 포함할 수 있다.
소정 실시예에서, 메타데이터는 관련 데이터를 기술하는 속성에 대응한다. 데이터 레포지토리 및 관련 메타데이터의 구조에 관한 이 설명에서, 파일 시스템 용어는 이 유형의 시스템이 통상적으로 사용되며 퍼스널 컴퓨터 상의 시스템, 네트워크 부착 저장소, 휴대용 장치, 단일칩 솔루션 및 다른 시스템과 같이 폭넓게 다양한 실시예에 구현될 수 있으므로 예로서 사용된다. 그러나 실시예는 파일 시스템으로 제한되지 않으며 다른 하부구조로 구현될 수 있다. 소정 실시예에서, 파일 크기는 속성 크기를 제공한다. 각 메타데이터 요소는 이름(또는 키), 길이(또는 파일 크기) 그리고 관련 값(파일 콘텐츠)을 가진다. 파일 시스템 용어를 사용시에, 메타데이터 디렉토리에서 각 파일은 하나의 피스의 메타데이터 또는 속성을 표현할 수 있다. 파일 시스템의 예를 사용하면, 파일 이름은 메타데이터 속성의 이름에 대응하고, 파일의 콘텐츠는 관련 값에 대응한다. 전형적인 저장 시스템에서, 이름은 문자열로 표현된다. 소정 실시예에서 저 자원 구현을 지원하기 위하여, 모든 이름은 대신에 고정 포맷, 예를 들면 32 비트 빅 엔디안을 가진 정수로서 표현된다. 따라서 고정 포맷 정수를 사용하면, 특정 속성값을 검색하기 위한 요청을 할 때 등에, 가변 길이 스트링 처리 부담을 줄일 수 있고 속성 이름을 위한 버퍼 관리를 단순화시킬 수 있다.
데이터 레포지토리의 데이터의 캐싱을 제공하기 위하여, 소정 실시예에서 네트워크 데이터 레포지토리는 시간 스탬프(time stamp) 또는 다른 시간 값을 저장하기 위한 레지스터 또는 메모리를 포함하고, 그 시간 값은 데이터 레포지토리에 저장된 데이터의 최근 변경을 나타낸다. 소정 실시예에서, 시간 값은 임의 데이터를 새롭게 저장, 수정 또는 삭제할 때와 같이 데이터 변경이 있을 때마다 단조 증가하는 발생 카운트(generation count)(또는 GC)이지만, 다른 유형의 시간 값이 또한 사용될 수 있다. 소정 실시예에서, 데이터 레포지토리의 발생 카운트는 캐시 저장소의 발생 카운트와 비교된다. 데이터 레포지토리의 발생 카운트가 (데이터 레포지토리에서 나중 시간 값을 나타내는) 캐시의 발생 카운트보다 높다면, 레포지토리 데이터는 변경되었으며 캐시의 갱신이 요구될 수 있다. 소정 실시예에서, 불투명 데이터의 유형 및 포맷이 알려지지 않은 환경에서와 같이 데이터 레포지토리 내 데이터의 어떠한 해석없이도 갱신에 관한 결정을 행할 수 있다. 소정 실시예에서, (예를 들면 미디어 데이터의 각 영화, 노래, 사진 등과 같은) 각 콘텐츠 항목 및/또는 각 메타데이터 항목은 또한 메타데이터 요소가 캐싱을 요구하는 보다 상세한 사항을 식별하기 위해 사용될 수 있는 저장된 날짜 스탬프 또는 다른 시간 값을 포함한다.
소정 실시예에서, 시스템은 발생 카운트가 변경을 표시한다면 데이터 레포지토리에 포함된 모든 관련 메타데이터를 캐시로 제공할 수 있다. 이 처리는 데이터 레포지토리에서 데이터가 매우 자주 변경되지 않는다면, 및/또는 전송되는 메타데이터의 양이 비교적 작다면, 실행가능할 수 있다. 그러나 모든 데이터를 전송한다는 것은 데이터량 또는 데이터 수정 횟수로 인하여 어려울 수 있다.
소정 실시예에서, 메타데이터 갱신 처리는 저장소에 대한 발생 카운트가 캐시에 대한 발생 카운트보다 오래된 것인지의 여부를 결정하는 것을 포함한다. 그 후, 저장소는 두 발생 카운트들 간에 갱신되었던 모든 메타데이터를 요청할 수 있다. 그 후, 캐시 장치는 저장소의 발생 카운트를 다시 요청할 수 있다. 저장소의 발생 카운트가 캐시보다 더 오래되지 않았다면, 캐시는 완전히 갱신되었다. 저장소의 발생 카운트가 보다 오래된 발생 카운트를 가진다면, 이것은 또 다른 변경이 행해졌으며, 또 다른 갱신 사이클이 발생할 수 있다는 것을 나타낸다. 이것은 날짜가 일치할 때까지, 또는 저장소의 너무 잦은 변경으로 캐시를 연속하여 갱신할 수 없다고 캐시가 결정할 때까지 계속될 수 있다.
갱신시에 데이터 레포지토리로부터 데이터 캐시로 전송할 필요가 있는 데이터량을 감소시키기 위하여, 소정 실시예에서 임의 데이터 변경을 기록하기 위한 로그(log)를 사용할 수 있다. 로그는 캐시로의 데이터 전송을 로그에 반영되는 변경된 데이터 요소만으로 제한하는데 사용될 수 있다. 간단한 형태의 경우, 로그는 메타데이터에 변경이 있었던 각 데이터 요소의 리스팅을 표현할 수 있다. 소정 실시예에서, 로그는 데이터의 유형 또는 포맷을 나타내지 않는다.
소정 실시예에서, 데이터에 대해 주기적 갱신 사이클이 발생할 것이다. 갱신 사이클의 시작은 다수 방식으로 일어날 수 있다. 일 실시예에서, 캐시는 단순히 그의 현 GC에 대해 저장소에 주기적으로 요청하고 적절한 간격으로 저장소를 폴링(polling)할 수 있다. 다른 실시예에서, 데이터 레포지토리는 임의 데이터 변경에 관한 정보를 네트워크상의 장치들에 브로드캐스트할 수 있고, 데이터 캐시를 가진 장치는 예를 들면 그 장치의 데이터 캐시를 데이터 레포지토리와 동기화시키기 위하여 그 브로드캐스트에 응답할 수 있다.
소정 실시예에서, 저렴하고 폭넓은 스케일 상에서 사용가능한 데이터 레포지토리를 만들기 위해서는, 단일 칩 솔루션이 바람직할 수 있다. 그러나 단일 칩 솔루션은 전형적으로 표준 데이터베이스 동작을 지원하는데 필요한 메모리, 로직 및 처리 자원를 포함하지 않을 것이다. 메타데이터는, 충분한 데이터베이스 지원을 제공하지 않을지라도, 전형적으로 단일 칩 환경에서 쉽게 지원되지 않는 가변 길이 문자열 형태로 표현된다. 소정 실시예에서, 네트워크 데이터 레포지토리에 대한 데이터베이스 동작은 단순화되며, 그 데이터베이스 동작은 일반적으로 클라이언트에 의해 레포지토리로 제공되어, 네트워크 장치를 위한 단일 칩 솔루션을 가능하게 하도록 도울 수 있다.
소정 실시예에서, 시스템은 단순한 클라이언트가 간단한 규칙 세트를 사용하여 메타데이터를 브라우징, 필터링 및 검색할 수 있게 해주면서, 유능한 클라이언트가 메타데이터의 (주문형 데이터베이스에서와 같은) 로컬 캐시를 유지할 수 있도록 해주는 방식으로 임의의 확장가능한 메타데이터를 저장하기 위한 메카니즘을 제공한다. 또한 메타데이터의 유형 및 값은 저 자원 구현에 따르는 불투명 방식으로 다루어진다. 소정 실시예에서, 동작은 중앙 서버를 사용할 필요없이 상호연결된 네트워크에서 제공된다.
도 1은 네트워크 데이터 레포지토리를 포함한 네트워크의 실시예를 도시한다. 이 도시에서, 네트워크(105)는 네트워크 장치 A(110), 네트워크 장치 B(115), 네트워크 C(120) 및 네트워크 데이터 레포지토리(125)를 포함할 수 있는 다수의 네트워크 장치를 포함한다. 네트워크는 다수의 미디어 장치를 포함한 퍼스널 엔터테인먼트 네트워크를 포함하지만 이로 제한되지 않는다. 소정 실시예에서, 네트워크 데이터 레포지토리(125)는 데이터 콘텐츠 및 이러한 데이터 콘텐츠에 관한 메타데이터(130)의 데이터베이스를 포함한다. 콘텐츠 데이터는 예를 들면 미디어 데이터일 수 있고, 메타데이터는 이러한 미디어 데이터를 기술한다. 소정 실시예에서, 콘텐츠 데이터 및 메타데이터(130)는 임의 다른 네트워크 장치(110-120)에 의한 액세스에 사용될 수 있다.
소정 실시예에서, 메타데이터는 다양하고 상이한 프로토콜에서 메타데이터를 저장할 수 있도록 불투명 방식으로 저장된다. 소정 실시예에서, 네트워크 데이터 레포지토리는 메타데이터를 이해할 수 없을 수도 있는데, 데이터는 필드 이름에 따라 필드에 저장된다. 소정 실시예에서, 메타데이터는 하나 이상의 다른 네트워크 장치에 캐싱될 수 있다.
일 예에서, 데이터 및 메타데이터(130)는 영화 데이터 및, 이러한 영화 데이터에 관한 메타데이터를 포함할 수 있다. 네트워크 장치 A(110)가 예를 들어 텔레비젼 모니터를 위한 셋탑 박스라면, 네트워크 장치 A(110)는 네트워크 데이터 레포지토리(125)를 액세스하지 않고 이러한 데이터를 액세스 및 검색할 수 있도록 영화 메타데이터의 캐시를 유지할 수 있다. 소정 실시예에서, 다른 네트워크 장치 및 네트워크 데이터 레포지토리는 저장된 메타데이터와 일치하게 캐싱된 데이터를 유지하도록 동작한다.
도 2는 메타데이터의 캐싱을 위한 실시예를 도시한다. 도시된 바와 같이, 네트워크 장치(205)는 네트워크 데이터 레포지토리(225)와 통신한다. 네트워크 데이터 레포지토리(225)는 데이터 세트(230) 및, 이러한 데이터에 관한 메타데이터(235)를 포함한다. 예에서, 데이터(230)는 다수의 상이한 유형의 미디어 데이터를 포함할 수 있고, 적절한 메타데이터가 이러한 미디어 데이터를 기술한다. 네트워크 데이터 레포지토리(225)는 네트워크 상에서의 통신을 위한 네트워크 인터페이스를 더 포함한다. 네트워크 장치(205)는 메타데이터(215)의 저장을 위해 캐시(210)를 포함하고, 네트워크 상에서의 통신을 위한 네트워크 인터페이스(220)를 더 포함한다.
소정 실시예에서, 네트워크 장치(205)의 메타데이터(215)를 사용하여 이러한 정보에 대한 보다 신속한 액세스를 제공한다. 네트워크 장치(205)와 데이터 레포지토리(225)는 메타데이터(215)의 현재 상태를 유지하도록 동작하며 데이터 레포지토리의 메타데이터(235)의 저장소에서 변경이 있다면 갱신을 요구할 수 있다. 그러나 네트워크 장치(205)와 데이터 레포지토리(225)는 최소 처리 능력을 가진 경량의 네트워크 장치일 수 있다. 소정 실시예에서, 데이터 레포지토리는 메타데이터의 포맷 또는 콘텐츠를 알지 못한다.
소정 실시예에서, 레포지토리의 클라이언트는 데이터 레포지토리의 메카니즘에 의해 지원되는 것보다 더 향상된 데이터베이스 질의를 지원하기를 원할 수 있거나, 또는 다수의 레포지토리에 미치는 통합 데이터베이스를 제공하기를 원할 수 있다. 이 경우에, 클라이언트는 그 자신의 데이터베이스 내에 메타데이터를 캐시하기를 원할 수 있다. 캐싱의 지원없이, 클라이언트는 임의 질의를 만족시키기 전에 메타데이터에 대해 레포지토리에 질의할 필요가 있는데, 레포지토리에서의 항목 수가 증가함에 따라 처리가 실행 불가능하게 된다. 이러한 동작에서는, 캐시의 메타데이터와 데이터 레포지토리의 메타데이터와의 동기화의 유지가 요구된다. 그러나 동기화는 네트워크 데이터 레포지토리에서 보다 복잡해진다. 다른 이슈들 중에, 메타데이터 갱신은 클라이언트 장치의 이해없이 다른 장치에 의해 행해질 수 있다.
소정 실시예에서, 클라이언트 장치에 의한 원격 캐싱을 용이하게 하기 위하여, 데이터 레포지토리 상의 발생 카운트 또는 다른 시간 값의 사용은 그 레포지토리에 의해 유지되고, 발생 카운트는 메타데이터의 상대 나이를 설정하는데 사용된다. 예를 들면 발생 카운트는 콘텐츠 항목 또는 메타데이터 항목의 추가시마다, 메타데이터 항목 값의 변경시마다, 콘텐츠 항목의 변경시마다, 메타데이터 항목의 삭제시마다 등과 같이, 레포지토리의 변경시마다 증분되는 단조 증가 정수일 수 있다. 이 예에서, 발생 카운트는 절대로 감소되어서는 안되고, 따라서 그의 표현은 데이터 레포지토리의 수명에 걸친 변경에 적응하기에 충분해야 한다.
소정 실시예에서, 단순한 캐싱 기법은 클라이언트가 현 발생 카운트에 대해 레포지토리에 질의하고 이러한 발생 카운트를 기록하는 것을 포함한다. 그 후, 클라이언트는 전체 메타데이터 세트에 대해 레포지토리에 질의하고, 클라이언트의 캐시에 메타데이터를 추가한다. 클라이언트는 주기적으로 현 발생 카운트에 대해 레포지토리에 질의할 수 있다. 현 발생 카운트가 클라이언트의 발생 카운트의 기록 값과 상이하다면(즉, 레포지토리의 시간 값이 클라이언트의 시간 값보다 나중이라면), 클라이언트는 전체 메타데이터 세트에 대해 레포지토리에 질의하고, 이에 따라 클라이언트의 캐시를 갱신한다. 그러나 이 접근방안은 특히 레포지토리의 변경이 빈번하거나, 또는 상당한 양의 메타데이터가 있을 때에 동작시 비용이 많이 들 수 있다.
소정 실시예에서, 데이터 레포지토리는 각 콘텐츠 피스를 위한 수정 시간(modification time)(MT) 속성을 더 포함할 수 있다. 콘텐츠 피스 또는 그의 메타데이터가 변할 때마다, 현 발생 카운트가 관련된 수정 시간으로서 기록된다. 이 접근 방안에서, 클라이언트는 (전술한 바와 같이) 현 발생 카운트에 대해 레포지토리에 질의할 수 있고, 상이한 경우, 알고 있는 최근 발생 카운트를 포함함으로써 갱신된 콘텐츠 리스트에 대해 질의를 계속한다. 레포지토리가 이러한 질의를 수신할 때, 레포지토리는 콘텐츠 리스트에 걸쳐 반복하고, 클라이언트로부터 발생 카운트와 각 수정 시간을 비교하고, 보다 낮은 발생 카운트를 가진 각 콘텐츠 피스에 대한 핸들을 반환한다. 그 후, 클라이언트는 새롭거나 또는 수정된 이들 콘텐츠 피스에 대해서만 메타데이터를 요청할 수 있다.
수정 시간 접근방안을 사용하려면, 클라이언트는 각 수정된 콘텐츠 피스에 대한 모든 메타데이터를 수집해야 한다. 소정 실시예에서, 수정 시간은 콘텐츠 수정 시간 이외에도 각 메타데이터 항목에 대한 수정 시간을 포함함으로써 보다 향상될 수 있다. 이런 식으로, 질의는 콘텐츠와 관련된 모든 메타데이터가 아닌, 변경된 콘텐츠 및 속성만을 반환할 수 있다.
도 3은 네트워크 데이터 레포지토리의 실시예를 도시한다. 이 도면에서, 데이터 레포지토리(302)는 네트워크 요소일 수 있고, 다양한 유형 및 포맷의 데이터를 저장하는데 사용될 수 있다. 데이터 레포지토리(303)는 데이터 레포지토리의 동작을 제어하기 위한 제어 유닛(303)을 포함할 수 있고, 여기서 제어 유닛은 프로세서, 제어 로직 또는 다른 하드웨어 또는 소프트웨어 제어부일 수 있다. 각 데이터 콘텐츠 요소는 고정 디지트 정수로서 정의된 핸들에 의해 지정된다. 예를 들면 데이터 레포지토리(302)의 콘텐츠는 핸들(304)(예를 제공하기 위한 정수 10101010) 및 핸들(340)(정수 11011111)과 관련된 콘텐츠를 포함할 수 있다. 핸들(304)은 콘텐츠(306)와 관련있으며, 콘텐츠(306)는 데이터 요소(330)를 포함한다. 이 핸들은 메타데이터(308)와 더 관련되며, 메타데이터의 각 항목은 값(312, 316, 320, 324)을 각각 가진 이름(310, 314, 318, 322)과 같은 이름 및 값을 가진다. 유사하게, 핸들(340)은 데이터 요소(366)를 포함한 콘텐츠(342)와 관련있다. 이 핸들은 메타데이터(342)와 더 관련있으며, 각 항목은 값(348, 352, 364)을 각각 가진 이름(346, 350, 362)과 같은 이름 및 값을 가진다.
또한 데이터 레포지토리(302)는 데이터 레포지토리 데이터 또는 메타데이터에서 임의 변경이 있을 때마다 증가하는 발생 카운트(370)로서 여기에 도시된, 레지스터 또는 다른 메모리에 저장된 날짜 스탬프 또는 다른 시간 값을 포함한다. 소정 실시예에서, 발생 카운트(370)는 캐시가 최신인지의 여부를 결정하기 위해 클라이언트 장치의 발생 카운트와 비교될 것이다. 소정 실시예에서, 데이터(330)와 같은 콘텐츠의 각 항목은 수정 시간 MT(372)를 포함하고, MT는 데이터의 최근 수정 시간이고, 변경시에 통용된 발생 카운트를 나타낼 수 있다. 소정 실시예에서, 수정 시간은 콘텐츠의 항목이 클라이언트의 캐시와 관련하여 변경되었는지를 결정하는데 사용될 수 있다. 소정 실시예에서, 메타데이터의 각 항목은 또한 메타데이터 이름(322)에 대한 MT(374)와 같은 수정 시간을 포함할 수 있다. 메타데이터가 최근 변경되었을 때, MT(374)는 현 발생 카운트를 반영한다. 소정 실시예에서, 메타데이터의 각 항목에 대한 수정 시간은 변경된 메타데이터의 항목으로 클라이언트 캐시의 갱신을 제한하는데 사용될 수 있다.
소정 실시예에서, 시스템에서 발생 카운트 및 수정 시간과 같은 시간 값을 사용하면 클라이언트로 하여금 다수의 데이터 추가 및 수정에도 불구하고 그의 캐시를 신속히 동기화할 수 있도록 해준다. 그러나 적절한 데이터 삭제의 취급은 더 어렵게 만들 수 있다. 어떤 콘텐츠 피스가 삭제된 것인지를 알아내기 위하여, 클라이언트는 전체 레포지토리에 질의할 필요가 있을 수 있다. 유사하게, 메타데이터의 삭제된 항목을 알아내기 위하여, 클라이언트는 콘텐츠 피스에 대해 모든 메타데이터를 질의할 필요가 있을 수 있다.
소정 실시예에서, 데이터 레포지토리는 최근 콘텐츠 삭제의 로그를 유지하고, 콘텐츠 핸들 및 발생 카운트를 기록한다. 클라이언트가 레포지토리 변경에 대해 질의할 때, 데이터 레포지토리는 또한 삭제 로그에 저장된 시간과, 클라이언트로부터의 발생 카운트를 비교한다. 클라이언트의 발생 카운트가 로그에서 마지막 항목을 넘어선다면, 이것은 클라이언트 캐시의 마지막 갱신 후에 삭제된 것은 없으며, 따라서 아무것도 반환되지 않는다는 것을 가리킨다. 클라이언트의 발생 카운트가 로그에서 임의 삭제 시간을 진행한다면, 그러면 클라이언트는 삭제되었던 것을 알아내기 위하여 전체 레포지토리에 질의할 수 있다. 이러한 질의에 소비되는 시간은 레포지토리의 빈번한 폴링에 의해 최소화될 수 있다. 클라이언트의 발생 카운트가 로그에서 항목의 삭제 시간 내에 떨어진다면(일부 삭제는 보다 오래된 것, 일부 삭제는 보다 새로운 것), 레포지토리는 클라이언트의 발생 카운트를 초과하는 삭제 시간으로써 콘텐츠 핸들을 반환한다.
소정 실시예에서, 로그는 콘텐츠에 대한 갱신을 더 포함하도록 확장된다. 이러한 실시예에서, 레포지토리는 발생 카운트에 비하여 레포지토리의 모든 콘텐츠에 걸쳐 반복할 필요가 없다. 소정 실시예에서, 로그는 개별 메타데이터 갱신의 레코드를 더 포함할 수 있다. 이 정보가 포함된다면, 정보는 모든 이러한 메타데이터에 걸쳐 반복없이 캐시에서 갱신을 요구한 메타데이터의 개별 항목을 식별하는데 사용될 수 있다. 로그에 저장할 요소를 결정하기 위하여, 설계자는 로그를 사용시 절약된 시간, 데이터 레포지토리에 수신된 질의 수 및 필요한 로그 크기와 같은 요소들을 균형맞출 수 있다.
도 4는 메타데이터의 저장을 위한 데이터 레포지토리 및 캐시의 실시예를 도시한다. 데이터 레포지토리(400)는 레지스터 또는 다른 메모리에 저장된 발생 카운트(404)를 포함하고, 발생 카운트는 데이터 레포지토리 내 데이터 또는 메타데이터에서 변경이 행해질 때마다 증가된다. 이 시점에서, GC는 값 X와 동일하다. 이 예에서, 어떤 시점에, 데이터 레포지토리는 핸들 A(406)를 가지며 콘텐츠 A(408)를 포함하고 그 콘텐츠는 메타데이터 A1(410) 및 메타데이터 A2(412)와 관련있는 콘텐츠 엔트리와, 핸들 B(414)를 가지며 콘텐츠(416)를 포함하고 그 콘텐츠는 메타데이터 B1(418) 및 메타데이터 B2(420)와 관련있는 콘텐츠 엔트리를 포함한다.
이 실례에서, 클라이언트 장치의 캐시(430)는 데이터 레포지토리(400)의 메타데이터와 계속 동기되도록 하기 위한 것이다. 캐시는 현재 발생 카운트 Y를 가진다. 그러나 변경이 행해졌고, 따라서 캐시는 최신이 아니다. 따라서 캐시 발생 카운트 Y는 레포지토리 발생 카운트 X보다 작다. 도시된 바와 같이, 캐시(430)는 메타데이터 A1(434), 메타데이터 B1(438), 메타데이터 B2(438), 메타데이터 B3(440) 및 메타데이터 C1(442)을 포함한다. 따라서 캐시는 (나중에 입력되는) 메타데이터 A2를 생략할 수 있고, 삭제된 메타데이터 B3를 포함할 수 있고, 그리고 삭제된 콘텐츠 항목에 대한 메타데이터 C1을 포함할 수 있다.(이 실례에서, 동일 지정을 가진 메타데이터는 변경되지 않았다.)
소정 실시예에서, 클라이언트 장치는 레포지토리(400)를 주기적으로 폴링(polling)할 수 있다. 이 경우, 레포지토리는 캐시(430)의 발생 카운트 Y보다 크다고 클라이언트 장치가 결정할 발생 카운트 X(404)를 반환할 것이다. 소정 실시예에서, 캐시는 데이터 레포지토리(400)의 모든 메타데이터가 반환되도록 요청할 수 있다. 그러나 이것은 메타데이터를 필요한 것보다 더 많게 한다. 소정 실시예에서, 콘텐츠 요소(408, 416)는 각각 어떤 콘텐츠 요소가 변경되었는지를 결정하는데 사용할 수 있는 수정 시간을 포함할 수 있다. 소정 실시예에서, 메타데이터 요소(410, 412, 418, 420)는 각각 어떤 메타데이터 요소가 변경되었는지를 식별하는데 사용할 수 있는 수정 시간을 포함할 수 있다.
소정 실시예에서, 데이터 레포지토리는 질의 응답시에 데이터 레포지토리를 돕도록 한 데이터 로그(450)를 가지거나 그것과 관련될 수 있다. 소정 실시예에서, 데이터 로그는 레포지토리가 보다 적은 메타데이터로 응답할 수 있게 하거나, 정확한 데이터로 보다 신속하게 응답할 수 있게 할 수 있다. 소정 실시예에서, 로그(450)는 데이터가 삭제된 때를 나타내는 수정 시간과 함께, 삭제된 콘텐츠(452)의 핸들을 포함할 수 있다. 이 경우, 로그는 콘텐츠 요소 C(454)가 시간 a에서 삭제되었고, 콘텐츠 요소 D(455)가 시간 b에서 삭제되었음을 나타내야 한다. 수정 시간과 발생 카운트(432)를 비교하여, 예를 들면 콘텐츠 요소 D(455)는 캐시(430)의 최근 갱신 전에 삭제되었고, 따라서 갱신이 필요없지만, 콘텐츠 요소 C(454)는 캐시(430)의 최근 갱신 후에 삭제되었고, 따라서 삭제된 콘텐츠와 관련된 메타데이터(이 경우에 메타데이터 C1(442))를 제거하기 위한 갱신이 필요하다는 것을 결정할 수 있다.
소정 실시예에서, 로그(450)는 또한 변경에 대한 수정 시간과 함께 변경된 데이터(456)의 핸들을 포함할 수 있다. 이 경우, 레포지토리에의 질의는 콘텐츠 A(458)가 시간 c에서 변경되었고, 콘텐츠 B(460)가 시간 b에서 변경되었고, (삭제되었을 때) 콘텐츠 C는 시간 a에서 변경되었다는 것을 나타낼 수 있다. 이 정보는 캐시(430)의 발생 카운트(432)에 비교될 수 있고, 콘텐츠 A의 변경은 콘텐츠 A에 관련된 모든 메타데이터가 캐시로 제공되어야 한다는 것을 의미하는 것으로 가리킬 수 있다(메타데이터 A1(410) 및 메타데이터 A2(412), 따라서 미싱 메타데이터 A2(412)를 캐시로 추가). 또한 콘텐츠 B에서 변경은 콘텐츠 B와 관련된 모든 메타데이터가 제공되어야 한다는 것을 의미한다(메타데이터 B1(418) 및 메타데이터 B2(420), 따라서 캐시로부터 삭제된 메타데이터 B3(440)의 제거 허용).
소정 실시예에서, 로그(450)는 또한 변경된 메타데이터 요소(464)의 이름을 포함할 수 있다. 이 실례에서, 로그에의 질의는 (레포지토리로 추가되었을 때) 메타데이터 A2(466)가 시간 c에서 변경되었고, (레포지토리로부터 삭제되었을 때) 메타데이터 B3(468)는 시간 d에서 변경되었고, 그리고 (콘텐츠가 삭제되었을 때) 메타데이터 C1(470)은 시간 a에서 변경되었다는 것을 가리킬 수 있다. 캐시(430)의 발생 카운트(432)를 캐시 메타데이터 엔트리의 발생 카운트와 비교하면, 캐시에 대한 갱신이 메타데이터 A2의 추가 및 캐시(430)로부터 메타데이터 B3의 삭제를 포함할 것이라는 것을 가리킬 것이다.
도 4는 소정 실시예에서 로그의 동작을 간단히 도시한다. 소정 실시예에서, 로그 엔트리는 도 4에 도시되지 않은 추가 정보를 포함할 수 있거나, 또는 도 4에 도시된 소정 정보를 배제할 수 있다.
소정 실시예에서, 메타데이터에 대한 속성 이름이 계층적 방식으로 할당된다. 상부 레벨 속성 클래스는 넓은 범주로 속성 이름을 세분화한다. 예를 들면 미디어 데이터 속성이 영화 콘텐츠, 음악 콘텐츠, 사진 콘텐츠, 장치 속성, 벤더-특정적 속성 등을 포함할 수 있다. 소정 실시예에서, 속성 클래스는 특정 용도에 할당되는 값 범위를 가지는 고정 포맷 정수로서 표현된다. 예를 들면 잘 알려진 속성 클래스는 제1 범위의 값을 할당받을 수 있다. 벤더-특정적 속성은 제2 범위의 값을 할당받을 수 있는데, 예를 들면, 글로벌 기관은 고유 값을 개별 벤더에 할당할 책임이 있다. 제3 범위의 값은 애플리케이션이 글로벌 기관에 요청하지 않고 이들 값을 사용할 수 있도록 정의되지 않은 채 남겨질 수 있다. 이 예에서, 상이한 목적을 위해 동일 값을 사용하려고 하는 것과 같이 제3 범위의 사용에 충돌이 있을 수 있으며, 애플리케이션 설계자는 이 문제를 처리할 책임이 있을 수 있다.
소정 실시예에서, 속성 유형은 속성 클래스를 위한 부-범주를 정의하고, 클래스-특정적인 값을 허용한다. 소정 실시예에서, 범위는 특정 용도에 할당된다. 잘 알려진 값은 이름, 아티스트, 레이팅, 지속기간, 아이콘 등과 같은 속성 유형을 포함한다. 잘 알려진 값은 필터링 동작을 용이하게 하기 위하여 할당 기관에 의해 더 그룹화될 수 있다. 예에서, 모든 비디오-관련 속성은 특정 속성을 위한 요청을 파싱(parsing)할 때에 범위 검사를 사용할 수 있도록 함께 그룹화될 수 있다. 속성 클래스에 대해 전술한 것과 동일한 제지(caveat)로, 또 다른 범위가 확장용으로 예약될 수 있다.
소정 실시예에서, 수치 기반 포맷은 사용자에게 제공될 때에 스트링-기반 표현으로 매핑될 수 있다. 그러나 실제 레포지토리의 설계는 이러한 매핑을 요구하지 않으며, 따라서 처리는 단일 칩과 같은 경량 장치에서 구현하기 위하여 단순화될 수 있다.
소정 실시예에서, 데이터 레포지토리 그 자체는 속성에 할당된 범위, 또는 속성 클래스 및 유형의 해석을 알 필요가 없다. 소정 실시예에서, 특정 클래스 및 유형의 속성(메타데이터 항목)이 데이터 레포지토리에 저장될 때, 데이터 레포지토리는 그의 이름으로서 속성 클래스를 가진 (필요한 경우에) 디렉토리를 논리적으로 생성하고, 속성 유형인 이름을 가진 파일 내에 이를 저장한다. 소정 실시예에서, 파일 콘텐츠도 불투명 데이터로서 다루어질 수 있으므로, 데이터 레포지토리는 해석없이 임의 값을 저장 및 검색하기 위하여 속성을 사용할 것이다.
동작시에, 원격 네트워크 장치와 같은 외부 클라이언트는 소정 속성을 기반으로 네트워크 데이터 레포지토리를 네비게이트하기를 원할 수 있다. 데이터 레포지토리는 데이터 저장소에 포함된 콘텐츠 핸들 목록을 제공한다. 클라이언트는 원격으로 위치할 수 있으므로, (단순한 정수인) 핸들의 집합으로 요청에 응답하도록 지원하면, 네트워크 트래픽 감소를 도울 수 있다. 소정 실시예에서, 속성 이름은 고정 길이 스트링일 수 있다. 고정 길이 스트링 속성 이름을 사용하여 정수 값 비교와 유사한 방식으로 간단한 바이트 방식(byte-wise) 비교를 가능하게 할 수 있으면서, 또한 동일 이름이 상이한 속성에 사용된 경우에 발생되는 데이터 충돌의 위험을 보다 낮게 하여 사용자에 의한 확장을 허용한다. 다른 실시예에서, 가변 길이 스트링은 이 대신에 예를 들면 속성에 포함된 스트링 길이를 가진 속성 이름으로 사용될 수 있다.
소정 실시예에서, 클라이언트는 향상된 방안에 의해 특정 메타데이터 피스의 값을 기반으로 콘텐츠를 검색할 수 있다. 클라이언트는 레포지토리에 저장된 값에 매칭시키기 위하여 불투명 데이터와 함께 속성 클래스 및 유형을 제출한다. 이 동작시에, 레포지토리는 임의 메타데이터의 값을 해석할 필요가 없다. 이 대신에, 레포지토리는 각 대응한 메타-파일의 콘텐츠를 간단히 비교하고, 일치하는 콘텐츠의 핸들을 반환할 수 있다.
소정 실시예에서, 보다 향상된 데이터 레포지토리는 이러한 정확한-매칭 질의 세트에 대한 불(Boolean) 연산 세트를 지원하는 것을 포함할 수 있다. 예를 들면 클라이언트는 속성 클래스, 유형 및 값으로 구성되는 일련의 투플(tuple)을 송신함으로써 질의를 제기할 수 있다. 이들 요소는 불 질의(Boolean query) 항을 형성할 수 있다. 항 간의 관계는 특정 해에 출시되었던 특정 장르의 모든 영화를 알아내기 위한 것과 같이 복잡한 질의를 가능하게 하는데 사용될 수 있다. 소정 실시예에서, 이러한 정확한 매칭 필터는 질의를 저장하는데 사용가능한 저장소 내에 저자원 장치에 의해 쉽게 지원될 수 있다. 소정 실시예에서, 클라이언트가 속성값을 어떻게 해석해야 하는지에 관해 레포지토리에게 알린다면, 보다 복잡한 질의가 가능할 수 있다. 소정 실시예에서, 허용된 해석 세트가 최소로 유지된다면, 저 자원 실시예가 가능할 수 있다. 예를 들면 32 비트 및 64 비트 빅 엔디언 정수를 지원한다면, 1970년대에 출시된 모든 콘텐츠를 알아내기 위한 것과 같은 수치 범위 검사가 가능하다. 또한 서브스트링 매칭을 지원한다면, 배역에서 특정 배우를 가진 모든 영화를 알아내기 위한 것과 같이 저장 값의 어느 곳에서 정확한 매칭을 알아낼 수 있다. 케이스 및 캐릭터 세트를 더 명시한다면, 보다 지능적 매칭을 할 수 있지만, 이것은 자원 증가 또는 로컬화를 가져온다. 소정 실시예에서, 불투명 값과 함께 수치적 속성 클래스 및 유형의 형태로 메타데이터를 저장하는 이 방안에 저 비용 필터링 기법을 적용할 수 있다.
도 5는 데이터 레포지토리에 사용하기 위한 메타데이터 속성의 실시예를 도시한다. 이 도시에서, 속성 클래스(502)는 다수의 메타데이터 속성을 포함할 수 있다. 소정 실시예에서, 속성은 고정 디지트 정수값과 같은 수치 값이 할당된 이름을 가진다. 소정 실시예에서, 값은 16진수 값 00000000 내지 FFFFFFFF 범위로서 도시된 값 범위(550)를 형성할 수 있다. 이 전체 범위의 값 내에, 범위는 일정 목적을 위해 설정될 수 있고, 그 범위는 속성 클래스 내에 속성 유형을 정의한다. 예에서, 제1 범위는 알려진 속성(504)의 속성 유형을 위해 설정될 수 있고, 제2 범위는 벤더-특정적 속성(506)의 속성 유형을 위해 설정될 수 있고, 그리고 제3 범위는 정의되지 않은 속성(508)의 속성 유형을 위해 설정될 수 있다.
알려진 속성(504) 내에서, 다른 것들 중에서 비디오 속성(510) 및 오디오 속성(512)을 위한 속성 유형을 제공하는 부-범위가 있을 수 있다. 비디오 속성은 비디오 제목(518), 비디오 유형(520), 비디오 등급(522) 및 다른 것들과 같은 메타데이터를 포함할 수 있다. 오디오 속성은 오디오 제목(518), 아티스트(520), 음악 장르(522) 및 다른 것들을 포함할 수 있다. 벤더-특정적 속성(506) 내에서, 벤더 A(514)를 위한 부-범위 및 벤더 B(516)를 위한 부-범위가 있을 수 있다.
소정 실시예에서, 레포지토리 메카니즘은 데이터 레포지토리가 변경되었을 때에 통지를 송신하기 위한 데이터 레포지토리의 능력을 포함할 수 있고, 이로써 클라이언트 장치에 의한 폴링의 필요성을 감소 또는 제거한다. 소정 실시예에서, 클라이언트가 변경의 통지를 등록하게 할 수 있다. 클라이언트의 등록은 처리를 지원하기 위하여 레포지토리의 일부에 대한 레코드 유지 및 연결 관리를 요구할 것이다. 소정 다른 실시예에서, 레포지토리는 모든 관심있는 측에서 들을 수 있도록 통지를 브로드캐스트할 수 있다. 소정 실시예에서, 통지는 데이터 레포지토리에서 변경이 있었다는 것을 가리킨다. 소정 실시예에서, 통지는 변경에 관한 정보를 더 포함할 수 있다. 향상된 통지는 예를 들면 새로운 발생 카운트, 변경된 콘텐츠 핸들(들), 변경된 메타데이터 항목(들), 그리고 변경된 메타데이터 값(들)을 포함할 수 있다. 소정 실시예에서, 다수 통지가 병합될 수 있고, 변경이 빈번할 때에 채터(chatter)를 감소시키는데 사용될 수 있다.
도 6은 네트워크 데이터 레포지토리로부터 메타데이터의 캐시를 유지하기 위한 처리의 실시예를 도시한다. 이 처리에서, 소정 데이터 및 메타데이터를 데이터 레포지토리에 저장할 수 있다(602). 이러한 데이터를 저장시, 발생 카운트(또는 다른 시간 값)를 설정하는데, 발생 카운트는 레포지토리의 현 상태를 나타낸다. 데이터 레포지토리에의 질의는 현 발생 카운트에 대해 네트워크 장치로부터 차후에 수신될 수 있다(604). 이에 이어서, 현 발생 카운트에 대한 일정 유형의 모든 데이터를 요청하는 질의가 뒤따른다(606). 이것은 네트워크 장치를 먼저 연결 또는 초기화할 때와 같이, 캐시 또는 캐시의 일부의 초기화를 포함할 수 있다. 그 후, 결과적인 메타데이터를 네트워크 장치에 캐싱하고, 캐시에 대한 발생 카운트를 데이터 레포지토리의 발생 카운트로 설정한다(608). 일정 시점에서, 데이터 레포지토리(610)에 변경이 있을 수 있다. 이러한 변경은 데이터 레포지토리의 발생 카운트를 증분시킨다. 더욱이 데이터 레포지토리와 관련된 로그가 있다면, 로그에 적절한 엔트리를 만들 수 있다.
소정 실시예에서, 처리는 예를 들면 네트워크 장치에 의한 데이터 레포지토리에의 주기적 검사(폴)에 의해, 또는 데이터 레포지토리로부터 네트워크 장치로 레포지토리 데이터에 대한 변경을 네트워크 장치에게 경고하는 브로드캐스트 메시지에 의해 개시될 수 있다(612). 네트워크 장치는 레포지토리의 현 발생 카운트에 대해 데이터 레포지토리에 질의한다(614). 레포지토리의 발생 카운트가 캐시의 발생 카운트보다 크지 않다면, 캐시의 최근 갱신 이후에 변경이 없었고, 정상 동작은 계속될 수 있다(618). 레포지토리의 발생 카운트가 캐시의 발생 카운트보다 크다면(캐시에 대한 것보다 레포지토리에 대한 나중의 시간 값을 나타냄), 캐시의 최근 갱신 이후에 하나 이상의 변경이 있었고, 네트워크 장치는 캐시의 생성 날짜 이후의 변경에 관하여 질의한다(620). 로그가 데이터 레포지토리와 관련있다면, 변경된 항목의 취득은 레포지토리를 통한 검색 및/또는 로그 엔트리 검사를 포함할 수 있다(622). 그 후, 임의 변경된 메타데이터 요소에 대한 요청이 있을 수 있다(624). 변경된 메타데이터는 어떤 요소가 변경되었는지를 식별하는 데이터 레포지토리의 능력에 따라, 데이터 캐시에 이미 존재하는 요소들의 일부 또는 전부를 포함할 수 있다. 그 후, 데이터 레포지토리는 변경된 메타데이터 요소를 캐시에 제공하고, 캐시의 발생 카운트를 데이터 레포지토리로부터 수신된 발생 카운트로 리셋한다(626). 그 후, 데이터 레포지토리의 현 발생 카운트에 대해 다른 질의가 있을 수 있다(628). 레포지토리의 발생 카운트가 캐시의 발생 카운트보다 크다면(630), 데이터 레포지토리에 추가적인 변경이 있었고, 갱신 사이클은 캐시의 발생 카운트 이후에 발생된 임의 변경에 관한 질의로 복귀할 수 있다(620). 레포지토리의 발생 카운트가 캐시의 발생 카운트보다 크지 않다면(630), 데이터 레포지토리에 추가적인 변경이 없었고, 동작은 계속될 수 있다(618).
도 7은 네트워크 장치의 실시예를 도시한다. 소정 실시예에서, 네트워크 장치(705)는 이더넷 MAC 주소와 같은, 적어도 하나의 물리적 네트워크 인터페이스를 갖는 엔티티이다. 도 7에 도시된 바와 같이, 네트워크 장치는 2개의 네트워크 인터페이스(710, 715)를 포함한다. 따라서 소정 실시예에서, 네트워크 장치는 물리적 엔티티이다. 소정 실시예에서, 네트워크 장치는 하나 이상의 에이전트(agent)를 포함하고, 각 에이전트는 네트워크 장치 상에 상주하는 논리적 엔티티이다. 네트워크 장치 상에 다수의 에이전트가 있을 수 있다. 예를 들면 도 7은 통신 관리자(720)를 통한 에이전트(730, 735, 740)에의 액세스 및 통신 관리자(725)를 통한 에이전트(745, 750)에의 액세스를 제공하고, 통신 관리자(730)를 통한 에이전트(755, 760)에의 액세스를 제공하는, 네트워크 인터페이스(710)를 가진 네트워크 장치(705)를 도시한다. 소정 실시예에서, 각 에이전트는 네트워크 장치 IP 주소에 관계없이 장치 리셋 동작들에 걸쳐 그것을 다른 에이전트와 구별하기 위한 글로벌 고유 식별자를 할당받는다. 이런 식으로, 에이전트(755)에 예정된 커맨드는 이 에이전트에 대한 고유 주소로 주소지정될 수 있고, 그 후 메시지는 네트워크 인터페이스(715)를 통해 에이전트(755)로 향할 것이다.
소정 실시예에서, 에이전트는 네트워크 장치 내 통신의 종점으로 기능하고, 특정한 능력 및 관련 행동 세트를 제공한다. 에이전트는 미디어 소스, 미디오 싱크, 미디오 제어기 및 다른 요소를 포함할 수 있다. 일 예에서, 에이전트는 비디오 스트리밍 서비스를 제공할 수 있다. 이 예에서, 에이전트는 메시지에 응답하여 미디어 스트림을 질의 및 제어하고, 지시받으면, 에이전트는 또 다른 에이전트로 미디오 스트림을 자율적으로 전달할 수 있다. 소정 실시예에서, 에이전트는 언제든지 단지 하나의 활성 미디어 세션을 가지므로, 따라서 비교적 간단한 동작을 제공한다. 에이전트는 메시지를 송신 및 수신할 수 있고, 이러한 메시지에 응답하여 내부 상태를 수정할 수 있고, 그리고 부작용으로서 연속된 조치를 수행할 능력을 가진다는 점에서 능동 객체(active object)로 동작하는 것으로 보여질 수 있다.
소정 실시예에서, 에이전트는 통신 관리자에 의해 엔터테인먼트 네트워크 상에서 통신할 수 있다. 소정 실시예에서, 도 7의 통신 관리자(720, 725, 730)와 같이 장치당 하나 이상의 통신 관리자가 있을 수 있다. 소정 실시예에서, 다수 에이전트는 예를 들면 통신 관리자(720)에 의해 관리되는 에이전트(730, 735, 740)와 같이 단일 통신 관리자에 의해 관리될 수 있다. 소정 실시예에서, 통신 관리자는 이 통신 관리자에 결속된 에이전트로/로부터 메시지를 라우팅할 책임이 있다. 처리는 동일한 네트워크 장치에 국부적인 다른 에이전트로 메시지를 전달하고, 원격 네트워크 장치상의 에이전트로의 출력 커넥션으로 개별 에이전트로부터의 메시지를 멀티플렉싱하고, 그리고 브로드캐스트 요청을 처리하는 것을 포함할 수 있다. 소정 실시예에서, 에이전트는 단지 하나의 통신 관리자에 결속될 수 있고, 통신 관리자는 단지 하나의 네트워크 인터페이스에 결속될 수 있다.
소정 실시예에서, 디스플레이 관리자는 디스플레이 장치 상에 자원을 관리하는 에이전트이다. 특히 디스플레이 관리자는 디스플레이 자원 및 스크린 기하에 대한 액세스를 제공하는 책임이 있다. 소정 실시예에서, 각 디스플레이 장치는 비디오 출력, 그래픽 출력, 오디오 출력, 및 사용자 입력과 같은 각 관련된 I/O 장치 세트를 위해 단지 하나의 디스플레이 관리자를 가진다. 소정 실시예에서, 에이전트는 세션 관리자와 협동하여, 디스플레이 장치에서의 미디어 콘텐츠의 전달 및 디스플레이를 조정하고, 디스플레이 장치 자원에 대한 액세스를 제공한다. 소정 실시예에서, 디스플레이 관리자는 사용자 세션을 위한 시작점을 나타내고, 세션 관리자에 제어를 위임한다.
소정 실시예에서, 세션 관리자는 액티브 유저를 위한 미디어 콘텐츠 세트를 조정하는 에이전트이다. 소정 실시예에서, 일단 선택되면, 세션 관리자는 대응하는 디스플레이 관리자와의 원격 온-스크린 디스플레이 세션을 개시하고, 네트워크의 다른 장치를 관리하기 위하여 애플리케이션 프로그램을 실행하기 시작한다. 소정 실시예에서, 디스플레이 관리자는 세션 관리자로 입력 이벤트를 전송하고, 그의 디스플레이 자원에 대한 액세스 권한을 부여하여, 세션 관리자가 다른 에이전트에 위임할 수 있고, 따라서 다른 에이전트가 디스플레이에 콘텐츠를 전달할 수 있게 한다. 일 예에서, 디스플레이 관리자는 셋탑 박스 내에서 실행하는 세션 관리자에 액세스 권한을 부여할 수 있다. 세션 관리자는 디스플레이와의 원격 UI(사용자 인터페이스) 세션을 개시할 수 있고, 네트워크 장치의 사용자로 하여금 원격 비디오 저장 장치로부터 재생될 비디오를 선택할 수 있게 해준다. 소정 실시예에서, 세션 관리자는 비디오 서버에 액세스 권한을 전달할 수 있고, 비디오 서버에게 디스플레이에 미디어 스트림을 전달하도록 지시할 수 있다. 소정 실시예에서, 세션 관리자는 미디어 콘텐츠의 사용시 사용자의 경험 관리에 필요한 상태를 유지한다.
도 8은 네트워크 장치의 구성 요소의 실시예를 도시한다. 이 실례에서, 네트워크 장치(805)는 도 1에 도시된 장치를 포함하지만 이로 제한되지 않는 엔터테인먼트 네트워크에서 임의 장치일 수 있다. 예를 들면 네트워크 장치는 텔레비젼, 셋탑 박스, 저장 유닛, (예를 들어 2차원 또는 3차원 그래픽 데이터를 사용할 수 있는) 게임 콘솔 또는 다른 미디어 장치일 수 있다. 소정 실시예에서, 네트워크 장치(805)는 네트워크 기능을 제공하는 네트워크 유닛(810)을 포함한다. 네트워크 기능은 미디어 데이터 스트림의 생성, 전송, 저장 및 수신을 포함하지만 이로 제한되지 않는다. 네트워크 유닛(810)은 SoC(single system on a chip) 또는 다수의 구성 요소로서 구현될 수 있다.
소정 실시예에서, 네트워크 유닛(810)은 데이터를 처리하기 위한 프로세서를 포함한다. 데이터의 처리는 미디어 데이터 스트림의 생성, 전송 또는 저장 시에 미디어 데이터 스트림의 조작, 그리고 사용을 위해 미디어 데이터 스트림의 해독 및 디코딩을 포함할 수 있다. 또한 네트워크 장치는 DRAM(dynamic random access memory)(820) 또는 다른 유사 메모리, 그리고 플래시 메모리(825) 또는 다른 비휘발성 메모리와 같이, 네트워크 동작을 지원하기 위한 메모리를 포함할 수 있다.
또한 네트워크 장치(805)는 하나 이상의 네트워크 인터페이스(855)를 통해, 각각, 네트워크에 데이터를 전송하거나, 네트워크로부터 데이터를 수신하는, 송신기(830) 및/또는 수신기(840)를 포함할 수 있다. 송신기(830) 또는 수신기(840)는 예를 들면 이더넷 케이블(850)을 포함한 유선 송신 케이블, 또는 무선 유닛에 연결될 수 있다. 송신기(830) 또는 수신기(840)는 데이터 전송 및 제어 신호를 위해 네트워크 유닛(810)에 대하여, 데이터를 송신하기 위한 라인(835) 및 데이터를 수신하기 위한 라인(845) 등, 하나 이상의 라인과 결합될 수 있다. 또한 추가의 커넥션이 존재할 수 있다. 또한 네트워크 장치(805)는 여기서 도시되지 않은, 장치의 미디어 동작을 위한 다수의 구성 요소를 포함할 수 있다.
도 9는 엔터테인먼트 네트워크의 실시예를 도시한다. 이 실례에서, 엔터테인먼트 네트워크 시스템(900)은 임의 호환가능 미디어 장치의 네트워크에의 연결을 제공한다. 그 연결은 엔터테인먼트 네트워크(905)에의 연결로서 도시된다. 소정 실시예에서, 장치는 중앙 네트워크 서버없이 네트워크로서 동작한다. 엔터테인먼트 네트워크를 통해, 미디어 데이터 스트림은 임의 연결된 장치들 간에 전송될 수 있다. 또한 장치는 네트워크를 통해 원격으로 제어될 수 있다. 장치는 동축 케이블, 이더넷 케이블 및 펌웨어, 그리고 Wi-Fi, 블루투스 및 다른 무선 기술을 통한 무선 연결을 포함한 임의 알려진 커넥터 및 연결 프로토콜을 통해 네트워크에 연결될 수 있다.
소정 실시예에서, 장치는 임의 미디어 소스 또는 수신자를 포함할 수 있다. 도 9에서, 오피스(910)는 모뎀(922)을 통해 네트워크(905)로 인터넷 연결(920)을 제공할 수 있다. 인터넷으로부터 수신한 데이터는 (다운로드한 음악 파일과 같이) 구입한 오디오 파일, (영화, 텔레비젼 및 다른 것과 같은) 비디오 파일, 그리고 컴퓨터 게임을 포함하지만 이로 제한되지 않는 임의 스트리밍 미디어 소스를 포함할 수 있다. 또한 오피스(910)는 다른 기능들 중에서 소정 미디어 스트림을 디스플레이하거나 소정 컴퓨터 게임을 동작시킬 수 있는, 모니터(926)를 사용하는 퍼스널 컴퓨터(924)에 연결될 수 있다.
엔터테인먼트 네트워크는 또한 예를 들어 텔레비젼(932)에 데이터를 제공하기 위한 셋탑 박스(930)를 포함할 수 있는, 침실(912)의 장치와 연결될 수 있다. 또한 침실(또는 임의 다른 공간)은 미디어 저장 유닛(928)을 포함할 수 있다. 미디어 저장 유닛(928)은 네트워크(905)에 연결된 임의 소스로부터 데이터를 수신할 수 있고, 네트워크(905)에 연결된 임의 데이터 수신자에 제공할 수 있다. 미디어 저장 유닛(928)은 네트워크를 위한 임의 유형의 미디어 스트림 데이터를 포함할 수 있다.
시스템은 예를 들어 케이블 또는 광섬유 시스템(934)으로부터, 또는 위성 디스크 네트워크(936)로부터의 입력을 수신하는 거실(914)을 더 포함할 수 있다. 이러한 소스로부터의 미디어 입력은 네트워크(905) 및 제2 텔레비젼(940)에 연결된 셋탑 박스(938)에 제공될 수 있다. 또한 거실 텔레비젼(940) 상에 디스플레이하기 위해 네트워크(905)에 연결된 것은 비디오 게임 유닛(942)일 수 있다. 네트워크(905)에 연결된 제3 텔레비젼(944)을 포함하는 주방과 같이, 네트워크 장치를 가진 임의 수의 다른 방이 있을 수 있다. 또한 집을 통해 배치된 스피커를 포함할 수 있는 스테레오 오디오 시스템을 포함하지만 이로 제한되지 않는 다른 네트워크 장치가 존재할 수 있다.
또한 임의 수의 모바일 퍼스널 전자 장치가 네트워크에 연결될 수 있다. 장치는 블루투스, Wi-Fi, 적외선 또는 다른 유사한 무선 통신 프로토콜을 포함하지만 이로 제한되지 않는 무선 신호를 통해 또는 케이블을 통해 연결될 수 있다. 이러한 각각의 프로토콜은 Wi-Fi 기지국과 같이 (도 9에 도시되지 않은) 네트워크에의 인터페이스를 요구할 수 있다. 이러한 모바일 퍼스널 전자 장치는 디지털 카메라(946), 셀룰러 폰(948), 퍼스널 음악 장치(950), 또는 비디오 카메라(952)를 포함할 수 있다. 또한 자동차(954)에 포함된 모바일 시스템은 자동차가 (집 창고에 존재할 때와 같이) 네트워크에 상당히 근접하게 있을 때에 네트워크(905)에 연결될 수 있다. 모바일 퍼스널 전자 장치는 예를 들면 네트워크의 범위내에 있을 때에 네트워크에 자동적으로 연결될 수 있다. 연결된 동안에, 장치는 장치로의 가능한 자동 갱신 또는 다운로드를 포함하여, 네트워크에 데이터를 제공하기 위해, 또는 네트워크를 통해 데이터를 얻기 위하여 사용될 수 있다. 일 예에서, 사용자는 셋탑 박스(938)를 통해 거실 텔레비젼(940)에서 디지털 카메라(946)에 저장된 사진을 액세스하는 것과 같이 네트워크를 통해 임의 모바일 전자 장치에 포함된 데이터를 액세스할 수 있다. 소정 실시예에서, 도 9에 도시된 네트워크 장치는 제한된 네트워크 처리 및 버퍼링 능력으로 설계된 저 자원 장치이다.
전술한 내용에서는 설명을 위하여, 본 발명의 철저한 이해를 위해 무수한 특정 상세사항을 설명한다. 그러나 당업자는 본 발명이 이들 특정 상세사항의 일부 없이도 실행될 수 있다는 것을 명백히 알 것이다. 다른 경우, 잘 알려진 구조 및 장치가 블록도 형태로 도시된다. 도시된 구성 요소들 간에 중간 구조가 있을 수 있다. 여기에 기술 또는 도시된 구성 요소는 도시 또는 기술되지 않은 추가 입력 또는 출력을 가질 수 있다.
본 발명은 다양한 처리를 포함할 수 있다. 본 발명의 처리는 명령어들로 프로그래밍된 범용 또는 특용 프로세서 또는 논리 회로로 하여금 그 처리를 수행하도록 하는데 사용될 수 있는 머신-실행가능 명령어들로 구현될 수 있거나, 또는 하드웨어 구성 요소들에 의해 수행될 수 있다. 이 대신에, 처리는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다.
본 발명의 일부는 컴퓨터 프로그램 제품으로서 제공될 수 있는데, 이 컴퓨터 프로그램 제품은 컴퓨터 프로그램 명령어들이 저장된 컴퓨터-판독가능 매체를 포함할 수 있고, 이들 명령어는 본 발명에 따라서 처리를 수행하도록 컴퓨터(또는 다른 전자 장치)를 프로그램하는데 사용될 수 있다. 머신-판독가능 매체는 플로피 디스켓, 광 디스크, CD-ROM(compact disk read-only memory), 그리고 자기 광학 디스크, ROM(read-only memory), RAM(random access memory), EPROM(erasable programmable ROM), EEPROM(electrically-EPROM), 자기 또는 광학 카드, 플래시 메모리 또는 전자 명령어들을 저장하는데 적합한 다른 유형의 미디어/머신-판독가능 매체를 포함할 수 있지만 이로 제한되지 않는다. 또한 본 발명은 컴퓨터 프로그램 제품으로서 다운로드될 수 있고, 여기서 프로그램은 원격 컴퓨터로부터 요청 컴퓨터로 전송될 수 있다.
다수의 방법을 그들의 가장 기본 형태로 기술하였지만, 본 발명의 기본 범주를 벗어나지 않고, 임의 방법에 처리를 추가하거나 그로부터 처리를 삭제할 수 있고, 기술한 임의 메시지로부터 정보를 빼거나 추가할 수 있다. 당업자는 다수의 다른 변형 및 적용을 행할 수 있다는 명백히 알 것이다. 특정 실시예는 본 발명을 제한하기 위한 것이 아니라 설명을 위해 제공된다. 본 발명의 범주는 위에 제공된 특정 예에 의해 결정되는 것이아니라 후술되는 특허청구범위에 의해서만 결정된다.
요소 "A"가 요소 "B"에/와 결합된다는 것은, 요소 A는 요소 B에 직접 결합되거나 예를 들면 요소 C를 통해 간접적으로 결합될 수 있다. 명세서 또는 청구범위에서 구성 요소, 특징, 구조, 처리 또는 특성 A가 구성 요소, 특징, 처리 또는 특성 B의 "원인이 된다"(cause)고 할 때, 이것은 "A"가 "B"의 적어도 부분적 원인이지만 적어도 하나의 다른 구성 요소, 특징, 구조, 처리 또는 "B"의 발생을 돕는 특성이 있다는 것을 의미한다. 명세서에서 구성 요소, 특징, 구조, 처리 또는 특성이 "포함될 수 있다"(may, might 또는 could)고 할 때, 특정한 구성 요소, 특징, 구조, 처리 또는 특성이 포함될 필요는 없다. 명세서 또는 특허청구범위에서 요소("a element 또는 an element")를 언급한다면, 이것은 단지 하나의 기술된 요소가 있다는 것을 의미하지는 않는다.
실시예는 본 발명의 구현 또는 예이다. 명세서에서 "실시예", "일 실시예", "소정 실시예" 또는 "다른 실시예"라는 것은 실시예와 관련하여 기술되는 특정한 특징, 구조 또는 특성이 적어도 소정 실시예에 포함되지만 모든 실시예에 포함될 필요는 없다는 것을 의미한다. "실시예", "일 실시예", 또는 "소정 실시예"의 다양한 외형은 모두 동일한 실시예를 나타낼 필요는 없다. 본 발명의 예시적 실시예의 전술한 설명에서, 본 발명의 다양한 특징은 단일 실시예, 도면, 또는 이의 설명은 개시물을 간소화하고 하나 이상의 다양한 발명 양상의 이해를 돕기 위하여 함께 그룹화된다는 것을 알아야 한다. 그러나 본 개시물의 방법은 주장되는 본 발명이 각 청구범위에서 널리 주장되는 것보다 많은 특징을 요구한다는 의도를 반영하여 해석되어서는 안된다. 오히려 다음의 청구범위가 반영하는 바와 같이, 발명 양상은 앞에서 개시한 단일 실시예의 모든 특징보다 작다. 따라서 청구범위는 이로써 본 설명으로 명확히 병합되고, 각 청구범위는 본 발명의 개별 실시예로서 독립된다.

Claims (33)

  1. 하나 이상의 데이터 콘텐츠 항목을 포함하는 데이터를 저장하도록 구성된 메모리 - 각 데이터 콘텐츠 항목은 0 이상의 메타데이터 항목과 관련되고, 각 데이터 콘텐츠 항목은 핸들과 관련되고, 각 메타데이터 항목은 속성 이름과 관련됨 - ;
    클라이언트 장치와 통신하도록 구성된 네트워크 인터페이스; 및
    상기 메모리에의 데이터 저장을 제어하도록 구성된 제어 유닛 - 상기 제어 유닛은 상기 메모리에 데이터를 기입하고 상기 메모리로부터 데이터를 판독하는 기능들을 제공하고, 상기 제어 유닛은 해석없이 상기 데이터를 전송하도록 구성됨 -
    을 포함하는 데이터 레포지토리(data repository).
  2. 제1항에 있어서,
    상기 클라이언트는 상기 제어 유닛의 기능들을 이용하여 상기 데이터 레포지토리를 위한 데이터베이스 기능들을 제공하도록 구성되는 데이터 레포지토리.
  3. 제1항에 있어서,
    각 데이터 항목의 핸들은 정수 값인 데이터 레포지토리.
  4. 제1항에 있어서,
    제1 메타데이터 항목의 속성 이름은 정수 값, 고정 길이 스트링, 또는 가변 길이 스트링 중 하나인 데이터 레포지토리.
  5. 제1항에 있어서,
    상기 제어 유닛은 저장된 데이터의 바이트 방식(byte-wise) 비교에 의해 데이터 요소에 대해 검색하도록 구성되는 데이터 레포지토리.
  6. 제1항에 있어서,
    시간 값을 저장하는 레지스터를 더 포함하는 데이터 레포지토리.
  7. 제6항에 있어서,
    상기 시간 값은 상기 저장된 데이터 콘텐츠 항목들 또는 메타데이터 항목들에 변경이 행해질 때에 증가되고, 상기 데이터 레포지토리는 상기 데이터 레포지토리의 시간 값과 상기 클라이언트 장치의 시간 값의 비교에 적어도 부분적으로 기초하여 상기 클라이언트 장치에 하나 이상의 메타데이터 항목을 제공하는 데이터 레포지토리.
  8. 제7항에 있어서,
    각 데이터 콘텐츠 항목은 수정 시간과 관련되고, 상기 수정 시간은 상기 데이터 콘텐츠 항목이 마지막으로 수정되었을 때에 상기 데이터 레포지토리의 시간 값과 동일한 데이터 레포지토리.
  9. 제8항에 있어서,
    각 메타데이터 항목은 수정 시간과 관련되고, 상기 수정 시간은 상기 메타데이터 항목이 마지막으로 변경되었을 때에 상기 데이터 레포지토리의 시간 값과 동일한 데이터 레포지토리.
  10. 제8항에 있어서,
    상기 데이터 저장에서의 변경에 관한 엔트리들을 기록하기 위한 로그를 더 포함하는 데이터 레포지토리.
  11. 네트워크 데이터 레포지토리와 통신하도록 구성된 네트워크 인터페이스 - 상기 데이터 레포지토리는 불투명 데이터로서 콘텐츠 데이터 및 메타데이터 세트를 보유하고, 각 데이터 콘텐츠 항목은 핸들과 관련되고, 각 메타데이타 항목은 속성 이름과 관련됨 - ;
    상기 네트워크 데이터 레포지토리에 대한 액세스를 제어하도록 구성된 네트워크 유닛 - 상기 네트워크 유닛은 상기 콘텐츠 핸들들 및 상기 메타데이터 속성 이름들을 이용하여 상기 콘텐츠 데이터 및 메타데이터 세트를 위한 데이터베이스 기능들을 제공함 - ; 및
    상기 네트워크 데이터 레포지토리로부터 하나 이상의 메타데이터 항목을 저장하기 위한 캐시 메모리
    를 포함하는 네트워크 장치.
  12. 제11항에 있어서,
    상기 네트워크 장치에 대한 시간 값을 보유하는 레지스터를 더 포함하고, 상기 네트워크 장치는 상기 네트워크 장치에 저장된 메타데이터가 갱신될 때에 상기 네트워크 데이터 레포지토리에 대한 시간 값과 일치하도록 상기 레지스터를 설정하고, 상기 네트워크 장치는 상기 네트워크 장치 레포지토리의 현 시간 값이 상기 네트워크 장치의 시간 값보다 늦은 경우 상기 네트워크 장치의 메타데이터의 갱신을 요청하는 네트워크 장치.
  13. 제12항에 있어서,
    상기 네트워크 장치는 상기 네트워크 데이터 레포지토리의 시간 값을 요청하는 네트워크 장치.
  14. 제13항에 있어서,
    상기 네트워크 장치의 시간 값을 요청하는 것은 상기 네트워크 데이터 레포지토리를 주기적으로 폴링(polling)하는 것을 포함하는 네트워크 장치.
  15. 제11항에 있어서,
    상기 메타데이터는 상기 네트워크 장치에 대한 미디어 데이터를 기술하는 네트워크 장치.
  16. 제15항에 있어서,
    상기 네트워크 장치는 엔터테인먼트 장치를 포함하는 네트워크 장치.
  17. 데이터베이스를 포함하는 제1 네트워크 장치 - 상기 데이터베이스는 복수의 데이터 콘텐츠 항목을 포함하도록 구성되고, 각 데이터 콘텐츠 항목은 0 이상의 관련 메타데이터 항목을 가지며, 상기 제1 네트워크 장치는 불투명 데이터로서 상기 데이터 콘텐츠 항목들 및 메타데이터 항목들을 보유하도록 구성됨 - ; 및
    상기 제1 네트워크 장치로부터 하나 이상의 메타데이터 항목을 캐싱하기 위한 캐시 메모리를 포함하는 제2 네트워크 장치 - 상기 제2 네트워크 장치는 상기 데이터베이스에 포함된 데이터에 대한 데이터 액세스를 제공하도록 구성됨 -
    를 포함하는 네트워크.
  18. 제17항에 있어서,
    상기 데이터베이스는 복수의 유형의 콘텐츠 데이터를 포함하는 네트워크.
  19. 제18항에 있어서,
    제3 네트워크 장치를 더 포함하고, 상기 제2 네트워크 장치는 상기 데이터베이스에 있는 제1 포맷을 갖는 메타데이터를 액세스하도록 구성되고, 상기 제3 네트워크 장치는 상기 데이터베이스에 있는 제2 포맷을 갖는 메타데이터를 액세스하도록 구성되는 네트워크.
  20. 제18항에 있어서,
    상기 복수의 유형의 콘텐츠 데이터는 비디오 데이터, 오디오 데이터, 사진 데이터, 및 2차원 및 3차원 그래픽 데이터 중 하나 이상을 포함하는 네트워크.
  21. 제17항에 있어서,
    상기 제1 네트워크 장치 및 상기 제2 네트워크 장치는 퍼스널 엔터테인먼트 장치인 네트워크.
  22. 제17항에 있어서,
    상기 제1 네트워크는 발생 카운트를 포함하고, 상기 발생 카운트는 상기 데이터베이스에서의 변경마다 증가하는 네트워크.
  23. 제22항에 있어서,
    상기 제2 네트워크 장치는 발생 카운트를 포함하고, 상기 제2 네트워크 장치의 발생 카운트는 상기 제2 네트워크 장치의 캐시 메모리에 있는 메타데이터가 갱신될 때에 상기 제1 네트워크 장치의 발생 카운트로 설정되는 네트워크.
  24. 제23항에 있어서,
    상기 제2 네트워크 장치는 상기 제1 네트워크 장치의 발생 카운트와 상기 제2 네트워크 장치의 발생 카운트의 비교에 응답하여 상기 제2 장치의 캐시 메모리에 있는 메타데이터를 갱신하도록 구성되는 네트워크.
  25. 제24항에 있어서,
    상기 제2 장치는 일정 시구간에서 상기 제1 장치를 폴링하도록 구성되고, 상기 제1 장치는 상기 폴링에 응답하여 상기 제1 장치의 발생 카운트를 상기 제2 장치에 제공하도록 구성되는 네트워크.
  26. 제24항에 있어서,
    상기 제1 장치는 상기 데이터베이스에 변경이 발생할 때에 브로드캐스트를 전송하도록 구성되고, 상기 제2 장치는 상기 브로드캐스트에 응답하여 상기 제1 장치의 발생 카운트를 취득하도록 구성되는 네트워크.
  27. 데이터 레포지토리에 데이터를 저장하는 단계 - 상기 데이터는 복수의 콘텐츠 데이터 항목을 포함하고, 각 콘텐츠 데이터 항목은 0 이상의 메타데이터 항목과 관련됨 - ;
    각 콘텐츠 데이터 항목을 핸들과 관련시키고, 각 메타데이터 항목을 속성 이름과 관련시키는 단계; 및
    상기 콘텐츠 데이터의 핸들들 및 상기 메타데이터의 속성 이름들을 이용하여 상기 데이터의 해석없이 클라이언트 장치에 의해 상기 데이터에 대한 액세스를 제공하는 단계
    를 포함하는 방법.
  28. 제27항에 있어서,
    상기 콘텐츠 데이터 항목들은 복수의 데이터 포맷을 포함하는 방법.
  29. 제27항에 있어서,
    상기 데이터에 대한 액세스를 제공하는 단계는 저장된 데이터 바이트들의 비교에 기초하여 데이터 항목에 대해 검색하는 단계를 포함하는 방법.
  30. 제27항에 있어서,
    상기 속성 이름들은 속성 클래스를 구성하는 방법.
  31. 제30항에 있어서,
    상기 속성 클래스는 복수의 속성 유형을 포함하고, 각 속성 유형은 메타데이터의 범주를 지정하는 방법.
  32. 제27항에 있어서,
    상기 데이터 레포지토리에 대한 시간 값을 설정하는 단계 - 상기 시간 값은 상기 데이터 레포지토리의 데이터가 변경될 때마다 증가함 - ;
    현 시간 값을 클라이언트에 전송하는 단계;
    상기 클라이언트의 시간 값 이후에 변경된 메타데이터에 대한 상기 클라이언트로부터의 요청을 수신하는 단계; 및
    메타데이터 세트를 상기 클라이언트에 전송하는 단계
    를 더 포함하는 방법.
  33. 제32항에 있어서,
    상기 클라이언트의 시간 값 이후에 변경된 데이터에 대해 상기 데이터 레포지토리를 검색하는 단계를 더 포함하는 방법.
KR1020107005044A 2007-08-08 2008-07-07 메타데이터를 위한 네트워크 레포지토리 KR101470991B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/836,082 2007-08-08
US11/836,082 US8468212B2 (en) 2007-08-08 2007-08-08 Network repository for metadata

Publications (2)

Publication Number Publication Date
KR20100066488A true KR20100066488A (ko) 2010-06-17
KR101470991B1 KR101470991B1 (ko) 2014-12-09

Family

ID=39797261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107005044A KR101470991B1 (ko) 2007-08-08 2008-07-07 메타데이터를 위한 네트워크 레포지토리

Country Status (7)

Country Link
US (3) US8468212B2 (ko)
EP (1) EP2186023A2 (ko)
JP (2) JP5425070B2 (ko)
KR (1) KR101470991B1 (ko)
CN (1) CN101772767A (ko)
TW (1) TWI376611B (ko)
WO (1) WO2009020729A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170103021A (ko) * 2013-01-07 2017-09-12 페이스북, 인크. 분산형 데이터베이스 쿼리 엔진을 위한 시스템 및 방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552491B1 (en) * 2007-12-04 2017-01-24 Crimson Corporation Systems and methods for securing data
US8583610B2 (en) * 2008-03-04 2013-11-12 International Business Machines Corporation Dynamically extending a plurality of manageability capabilities of it resources through the use of manageability aspects
US7953777B2 (en) * 2008-04-25 2011-05-31 Yahoo! Inc. Method and system for retrieving and organizing web media
US8407194B1 (en) * 2009-01-15 2013-03-26 Privity Systems Inc. Data classification and privacy repository
US8533230B2 (en) * 2009-06-24 2013-09-10 International Business Machines Corporation Expressing manageable resource topology graphs as dynamic stateful resources
US8812585B2 (en) * 2010-03-29 2014-08-19 Google Inc. Trusted maps: updating map locations using trust-based social graphs
US8312055B2 (en) 2010-06-11 2012-11-13 Sony Corporation Content alert upon availability for internet-enabled TV
CN102682043B (zh) * 2011-04-14 2013-11-27 天脉聚源(北京)传媒科技有限公司 一种分布式数据库连接方法
US8862492B1 (en) 2011-04-29 2014-10-14 Google Inc. Identifying unreliable contributors of user-generated content
US8700580B1 (en) 2011-04-29 2014-04-15 Google Inc. Moderation of user-generated content
US8533146B1 (en) 2011-04-29 2013-09-10 Google Inc. Identification of over-clustered map features
US8745084B2 (en) * 2011-07-20 2014-06-03 Docscorp Australia Repository content analysis and management
US9257056B2 (en) 2011-10-31 2016-02-09 Google Inc. Proactive user-based content correction and enrichment for geo data
US8832116B1 (en) * 2012-01-11 2014-09-09 Google Inc. Using mobile application logs to measure and maintain accuracy of business information
KR101638656B1 (ko) * 2012-08-23 2016-07-11 엘에스산전 주식회사 산업용 자동화를 위한 클라우드 컴퓨팅 기반의 데이터 공유 시스템 및 산업용 기기 관리 장치
US9015212B2 (en) * 2012-10-16 2015-04-21 Rackspace Us, Inc. System and method for exposing cloud stored data to a content delivery network
CA2925426C (en) * 2013-09-27 2021-11-23 Jad John Saliba Methods, systems, and devices for identifying an application type of unknown data
AU2015207840B2 (en) * 2014-07-31 2020-06-18 Samsung Electronics Co., Ltd. System and method of managing metadata
US9626271B2 (en) * 2014-09-26 2017-04-18 Oracle International Corporation Multivariate metadata based cloud deployment monitoring for lifecycle operations
US10318581B2 (en) * 2016-04-13 2019-06-11 Google Llc Video metadata association recommendation
JP6194073B1 (ja) * 2016-07-05 2017-09-06 株式会社バンダイ ゲーム装置、ゲームシステム及びプログラム
US10785116B1 (en) * 2017-01-12 2020-09-22 Electronic Arts Inc. Computer architecture for asset management and delivery
US10298895B1 (en) * 2018-02-15 2019-05-21 Wipro Limited Method and system for performing context-based transformation of a video
KR20200112386A (ko) * 2019-03-22 2020-10-05 삼성전자주식회사 전자 장치 및 그 제어 방법
CN110704538B (zh) * 2019-09-29 2023-07-21 深圳市迅雷网络技术有限公司 一种多盘数据的处理方法、装置、系统及介质
US11768767B2 (en) * 2021-10-29 2023-09-26 Micro Focus Llc Opaque object caching

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5870746A (en) * 1995-10-12 1999-02-09 Ncr Corporation System and method for segmenting a database based upon data attributes
JPH09305473A (ja) 1996-05-16 1997-11-28 Fuji Xerox Co Ltd 検索システムにおけるキャッシング方式
US6226666B1 (en) * 1997-06-27 2001-05-01 International Business Machines Corporation Agent-based management system having an open layered architecture for synchronous and/or asynchronous messaging handling
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US6516336B1 (en) * 1999-09-08 2003-02-04 International Business Machines Corporation Method and system for using a two-tiered cache
US7178100B2 (en) * 2000-12-15 2007-02-13 Call Charles G Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
CA2440279A1 (en) * 2001-03-09 2002-09-19 N2 Broadband, Inc. Method and system for managing and updating metadata associated with digital assets
WO2002078286A2 (en) * 2001-03-27 2002-10-03 Bea Systems, Inc. System and method for managing objects and resources with access rights embedded in nodes within a hierarchical tree structure
EP1248206A1 (en) * 2001-04-05 2002-10-09 Sun Microsystems, Inc. Method and apparatus for database table definition
US6839812B2 (en) * 2001-12-21 2005-01-04 Intel Corporation Method and system to cache metadata
US6954748B2 (en) 2002-04-25 2005-10-11 International Business Machines Corporation Remote data access and integration of distributed data sources through data schema and query abstraction
EP1547357B1 (en) * 2002-09-26 2023-01-25 Haivision Systems Inc. Digital content delivery and viewing system and method
US7620535B2 (en) * 2002-12-19 2009-11-17 Computer Associates Think, Inc. Method and apparatus for the simulation of computer networks
US7555504B2 (en) * 2003-09-23 2009-06-30 Emc Corporation Maintenance of a file version set including read-only and read-write snapshot copies of a production file
EP2317449A3 (en) 2004-01-16 2011-07-13 Hillcrest Laboratories, Inc. Metadata brokering server and methods
US20060041596A1 (en) 2004-08-19 2006-02-23 Vlad Stirbu Caching directory server data for controlling the disposition of multimedia data on a network
US7272592B2 (en) * 2004-12-30 2007-09-18 Microsoft Corporation Updating metadata stored in a read-only media file
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US8762403B2 (en) * 2005-10-10 2014-06-24 Yahoo! Inc. Method of searching for media item portions
US20070083380A1 (en) * 2005-10-10 2007-04-12 Yahoo! Inc. Data container and set of metadata for association with a media item and composite media items
US20070156770A1 (en) 2005-10-18 2007-07-05 Joel Espelien System and method for controlling and/or managing metadata of multimedia
CN101379464B (zh) 2005-12-21 2015-05-06 数字标记公司 规则驱动型个域网id元数据路由系统和网络
US20080032739A1 (en) * 2005-12-21 2008-02-07 Faraz Hoodbhoy Management of digital media using portable wireless devices in a client-server network
US8719341B2 (en) * 2005-12-27 2014-05-06 Qurio Holdings, Inc. System and method for accessing and managing mobile device metadata

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170103021A (ko) * 2013-01-07 2017-09-12 페이스북, 인크. 분산형 데이터베이스 쿼리 엔진을 위한 시스템 및 방법
US10698913B2 (en) 2013-01-07 2020-06-30 Facebook, Inc. System and methods for distributed database query engines
US11347761B1 (en) 2013-01-07 2022-05-31 Meta Platforms, Inc. System and methods for distributed database query engines

Also Published As

Publication number Publication date
US8468212B2 (en) 2013-06-18
US20140032619A1 (en) 2014-01-30
TW200921431A (en) 2009-05-16
US20090043786A1 (en) 2009-02-12
US20180052859A1 (en) 2018-02-22
JP5756508B2 (ja) 2015-07-29
KR101470991B1 (ko) 2014-12-09
WO2009020729A3 (en) 2009-04-02
CN101772767A (zh) 2010-07-07
WO2009020729A2 (en) 2009-02-12
TWI376611B (en) 2012-11-11
US9934227B2 (en) 2018-04-03
EP2186023A2 (en) 2010-05-19
US11138150B2 (en) 2021-10-05
JP2010536096A (ja) 2010-11-25
JP5425070B2 (ja) 2014-02-26
JP2014063512A (ja) 2014-04-10

Similar Documents

Publication Publication Date Title
US11138150B2 (en) Network repository for metadata
JP5027923B2 (ja) コンテンツディレクトリ・サービスと制御ポイントとの間のコンテンツを同期化する方法
US8452775B2 (en) Accessing content items in a network based on device capability information
US7571167B1 (en) Peer-to-peer network content object information caching
JP4781822B2 (ja) ホームネットワークでコンテンツに対する一つのビューを提供する方法及びシステム
TWI498751B (zh) 用於運算環境表示之方法及電腦可讀取儲存裝置
JP5145719B2 (ja) メタデータ収集システム、コンテンツ管理サーバ、メタデータ収集装置、メタデータ収集方法およびプログラム
US20070118606A1 (en) Virtual content directory service
US20060168126A1 (en) Aggregated content listing for ad-hoc peer to peer networks
US20120066336A1 (en) Apparatus and method for aggregating disparate storage on consumer electronics devices
JP5638608B2 (ja) メタデータに従ってファイルシステムのファイルにアクセスする方法、およびその方法を実装する装置
US20070055650A1 (en) Query caching in a system with a content directory service
US20080028033A1 (en) Network directory file stream cache and id lookup
US9614894B1 (en) On-the-fly media-tagging, media-uploading and media navigating by tags
US8756303B2 (en) Method and apparatus for determining object updates in a home network
KR100694157B1 (ko) 홈 네트워크의 멀티미디어 컨텐츠를 관리하는 방법 및 장치
KR20130039003A (ko) 휴대용 단말기의 메타데이터 데이터베이스 복사를 이용한 멀티미디어 공유장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171124

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181122

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191126

Year of fee payment: 6