KR20080107308A - 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트를동기화하는 방법 - Google Patents

컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트를동기화하는 방법 Download PDF

Info

Publication number
KR20080107308A
KR20080107308A KR1020080053129A KR20080053129A KR20080107308A KR 20080107308 A KR20080107308 A KR 20080107308A KR 1020080053129 A KR1020080053129 A KR 1020080053129A KR 20080053129 A KR20080053129 A KR 20080053129A KR 20080107308 A KR20080107308 A KR 20080107308A
Authority
KR
South Korea
Prior art keywords
synchronization
cds
component configured
data structure
change log
Prior art date
Application number
KR1020080053129A
Other languages
English (en)
Other versions
KR101511682B1 (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 KR20080107308A publication Critical patent/KR20080107308A/ko
Application granted granted Critical
Publication of KR101511682B1 publication Critical patent/KR101511682B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

일실시예에서, 네트워크에서의 제어 포인트(Control Point:CP)에서 방법이 수행된다. 그 네트워크에서의 컨텐트 디렉토리 서비스(Content Directory Service:CDS)를 포함하는 미디어 서버에서의 동기화 데이터 구조를 생성하는 액션이 호출된다. 여기서, 동기화 데이터 구조는 CP와 CDS 사이의 관계를 설명하는 동기화 관계를 포함한다. 다음으로, CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보를 추가하는 액션이 호출된다. CDS로부터 변경 로그가 요청된다. 그 CDS로부터 변경 로그가 수신된다. 여기서, 변경 로그는 CP를 위한 동기화 쌍 정보가 추가된 적어도 하나의 객체들의 변경에 대한 정보를 포함한다.

Description

컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트를 동기화하는 방법{Synchronizing content betwwen content directory service and control point}
본 발명은 홈 네트워킹과 관련된다. 특히, 본 발명은 홈 네트워크 환경에서 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트 동기화와 관련된다.
UPnP(Universal Plug and Play)는 디바이스들이 끊김없이(seamless) 연결되게 하고, 집에서의 네트워크 구현(데이터 공유, 통신 및 엔터테인먼트)을 단순화하기 위한 분산된 개방형 네트워크 구조로서 환경(environments)을 통합한다. 이를 달성하기 위하여, UPnP는 개방형의 인터넷 기반의 통신 기준에 따라 만들어진 UPnP 디바이스 프로토콜을 정의하고, 발표(publish)한다.
최근에 미디어 서버의 인기가 올라감에 따라, UPnP의 인기도 올라가고 있다. 미디어 서버는 다양한 유형의 컨텐트(예컨대, 사진, 음악, 비디오 등)를 저장하는 소형 컴퓨터이다. 컨텐트는 미디어 서버로부터 적어도 하나의 제어 포인트(예컨대, 아이팟, 텔레비전 등)에게 스트리밍 될 수 있다.
하나의 예로서, 미디어 서버 디바이스는 집주인의 오디오, 비디오 및 스틸 이미지 라이브러리의 중요한 부분을 포함할 수 있다. 집주인이 이와 같은 컨텐트를 즐기기 위해서는, 집주인이 미디어 서버에서 객체(object)를 검색하고, 특정한 하나를 선택하여 적절한 렌더링 디바이스에서 재생되도록 할 수 있어야 한다.
최대한의 편의를 위하여, 다양한 사용자 인터페이스(UI:User Interface) 디바이스로부터 집주인이 이와 같은 동작을 시작할 수 있도록 허용되는 것이 매우 바람직하다. 대부분의 경우에, UI 디바이스는 렌더링 디바이스에 탑재된 UI이거나 무선 PDA 또는 타블렛과 같은 독립적인 UI 디바이스일 것이다. 어떤 경우에도, 집주인이 컨텐트를 저장하고 있는 디바이스와 직접적으로 상호작용하지는 않을 것이다.(즉, 집주인은 서버 디바이스에게 걸어갈 필요가 없다.) 이것을 가능하게 하기 위하여, 서비스 디바이스는 서버의 컨텐트를 검색하고 각각의 컨텐트 객체에 대한 상세한 설명을 얻기 위한 UI 디바이스에 대한 통일된 메커니즘을 제공할 필요가 있다. 이것이 컨텐트 디렉토리 서비스(CDS)의 목적이다.
컨텐트 디렉토리 서비스는 또한 (서버) 디바이스가 제공할 수 있는 개개의 객체들(예컨대, 노래, 영화, 그림 등)을 클라이언트(예컨대 UI 디바이스)가 검색(locate)(및 저장)할 수 있게 해주는 검색/저장 서비스(lookup/storage service)를 제공한다. 예컨대, 이와 같은 서비스는 MP3 플레이어에 저장된 노래들의 리스트, 다양한 슬라이드쇼로 구성되는 스틸 이미지들의 리스트, DVD 쥬크박스에 저장된 영화들의 리스트, 현재 방송되는 TV 쇼들의 리스트, CD 쥬크박스에 저장된 노래들의 리스트 및 PVR(Personal Video Recorder)에 저장된 프로그램들의 리스트 등을 나열하는데 이용될 수 있다.
거의 모든 유형의 컨텐트가 이와 같은 컨텐트 디렉토리 서비스를 통하여 나 열될 수 있다. 다양한 유형의 컨텐트(MP3, MPEG2, JPEG 등)를 포함하는 디바이스, 컨텐트 디렉토리 서비스의 일실시예가 그 유형에 관 없이 모든 객체들을 나열하는데 이용될 수 있다.
본 발명의 목적은 UPnP 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트 동기화를 위한 방법 및 그 장치를 제공하는 것이다.
일실시예에서, 네트워크에서의 제어 포인트(Control Point:CP)에서 방법이 수행된다. 그 네트워크에서의 컨텐트 디렉토리 서비스(Content Directory Service:CDS)를 포함하는 미디어 서버에서의 동기화 데이터 구조를 생성하는 액션이 호출된다. 여기서, 동기화 데이터 구조는 CP와 CDS 사이의 관계를 설명하는 동기화 관계를 포함한다. 다음으로, CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보를 추가하는 액션이 호출된다. CDS로부터 변경 로그가 요청된다. 그 CDS로부터 변경 로그가 수신된다. 여기서, 변경 로그는 CP를 위한 동기화 쌍 정보가 추가된 적어도 하나의 객체들의 변경에 대한 정보를 포함한다.
본 발명은 UPnP 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트를 동기화할 수 있는 효과가 있다.
본 발명은 여기에 레퍼런스로서 첨부된 Mahfuzur Rahman과 권원석에 의하여 2007년 06년 05월에 출원된 U.S.가출원 60/933,416 "UPnP 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트 동기화"에 대하여 우선권을 주장한다.
이하에서는, 본 발명을 수행하기 위하여 발명자에 의하여 고안된 최적 모드를 포함하는 본 발명의 특정한 실시예들에 대하여 구체적으로 기술될 것이다. 그와 같은 특정한 실시예들은 첨부된 도면과 함께 설명될 것이다. 본 발명이 이와 같이 특정한 실시예들과 관련되어 기술되지만, 본 발명을 그와 같은 실시예들로 제한할 의도가 아니라는 것이 인정될 것이다. 반면에, 첨부된 청구항에 의하여 정의되는 것과 같이 택일적인 것(alternatives), 변경된 것(modification) 및 균등한 것(equivalents)이 본 발명의 사상 및 범위에 포함되는 것을 의도한다. 이하에서는, 본 발명에 대한 심도있는 이해를 제공하기 위하여 특정하고 구체적인 내용들이 기술될 것이다. 본 발명은 이와 같은 특정하고 구체적인 내용의 전부 또는 일부가 없어도 실행될 수 있다. 또한, 불필요하게 발명을 모호하게 만들지 않기 위하여 널리 알려진 특징은 기술되지 않았다.
본 발명에 따르면, 다양한 유형의 운영 체제, 프로그램 언어, 컴퓨터 플랫폼, 컴퓨터 프로그램 및/또는 범용 머신을 이용하여 컴포넌트, 프로세스의 단계, 및 또는 데이터 구조가 구현될 수 있다. 게다가, 당업자는 여기에 개시된 본 발명의 사상 및 범위로부터 벗어나지 않고, FPGAs(field programmable gate arrays), ASICs(application specific integrated circuits) 등과 같은 상대적으로 범용적이지 않은 특징을 가지는 하드웨어들이 이용될 수 있다는 것을 인정할 것이다.
본 명세서에서, 홈 네트워킹이라는 용어는 집에서 미디어 디바이스를 연결하는데 일반적으로 이용되는 유형의 네트워크를 말한다. 그러나, 이와 같은 유형의 네트워킹을 집에서 실제로 이용하는데 조건이 없는 것과 같이, 그와 같은 네트워킹 은 사업 또는 다른 엔티티에서 동일한 사용 가능성을 가진다. 따라서, 홈 네트워킹이라는 용어는 본 발명의 실시예를 집에서 사용하도록 한정하는 것으로 추정되지 않는다.
컨텐트 디렉토리 서비스(CDS)는 CDS 객체의 업로드 및 다운로드를 지원한다. 하나의 CDS에서 다른 CDS로 객체를 이동시키기 위해서는, 사용자가 객체를 검색 또는 브라우징하고, CDS가 들여오거나 내보내야 할 객체를 표시하기 위하여 객체를 선택한다. 이동(transfer)이 잠깐 동안 한번 일어난다면, 이와 같은 유형의 동작이 사용자에게 용납될 수 있다. 하지만, 이동이 정기적으로 일어나야만 한다면, 이와 같은 일련의 동작은 번거롭게 된다. 예컨대, 사용자가 휴대용 디바이스 뿐만 아니라 미디어 서버의 음악 폴더에도 동일한 음악을 가지기를 원한다면, 음악 아이템들이 변경될 때마다 사용자가 각각의 객체를 검색하여야한다는 것은 비효율적이다.
현재 UPnP CDS는 CDS가 CDS 객체의 집합(a set of CDS objects)에 대한 변경을 트래킹하기 위한 CDS의 관심사(interest)를 등록하는 것을 허용하지 않는다. UPnP 제어 포인트가 변경을 알기 위한 방법은 객체(들)가 실제로 변경되었는지를 판단하기 위하여 각각의 변경된 객체 및 그 객체의 자식 객체(child objects)를 (속성마다) 수동으로 검색하는 방법뿐이다. CDS가 많은 개수의 객체들(예컨대 수천개)을 가지고 있다면, 이와 같은 프로세스에 긴 시간이 소요될 수 있다. 게다가, 제어 포인트가 특정한 객체들의 집합을 트래킹할 때 트래킹 된 객체(들)가 실제로 변경되지 않은 경우에는 종종 이와 같은 트래킹이 불필요한 노력이 될 수 있다. 다시 말하면, 제어 포인트는 수행될 필요가 없는 것을 판단하기 위하여 많은 불필요 한 동작을 수행해야만 한다. 특히, 삭제된 객체들을 검색하는 경우에는 이와 같은 동작은 번거롭다.
본 발명은 UPnP 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트 동기화를 제공한다. 제어 포인트는 삭제를 포함하는 UPnP CDS에 의하여 보존되는 객체들의 집합의 변경들을 모니터하기 위하여 관심사를 등록할 수 있고, CDS로부터 그와 같은 변경을 검색할 수 있다.
일 실시예에서, 단방향 동기화 데이터 구조가 소개될 수 있다. 이와 같은 동기화 데이터 구조는 제어 포인트가 모니터하기를 원하는 디바이스의 CDS 객체에 대한 단일한 동기화 관계(synchronization relation)를 포함한다. 일단, 동기화 데이터 구조가 생성되고 객체 쌍 정보(objects pair information)가 CDS 객체들에 추가되면, CDS는 그 객체들의 변경에 대한 트래킹을 지속한다. 다음으로, 제어 포인트는 그 동기화 관계의 일부분인 모든 객체들에 대한 변경 로그를 검색할 수 있다. 일단 변경 로그가 검색되면, 그 후 제어 포인트는 객체들의 변경과 제어 포인트 자신의 내부 데이터베이스를 비교하고, 제어 포인트 자신의 내부 데이터베이스를 업데이트함으로써, CDS와 동기화한다. 제어포인트가 동기화 관계의 일부분인 객체들에 대한 변경 로그에 더 이상 관심이 없게 되면, 제어 포인트는 동기화 관계를 삭제할 수 있다.
본 발명의 일 실시예에서, 동기화 데이터 구조는 동기화 쌍 그룹(synchronization pair group), 동기화 파트너 관계(synchronization partnership), 동기화 관계(synchronization relationship)를 포함한다. 동기화 쌍 그룹은 동일한 동기화 정책들이 적용될 수 있는 동기화 쌍의 그룹을 식별하기 위한 데이터 구조이다. 로컬 CDS 내의 어떤 객체가 파트너 CDS에서의 객체와 쌍을 이루는지를 설명하는 실제 동기화 쌍 정보는 객체의 속성 중 일부로서 객체 그 자신에게 포함되어 있다. 동기화 파트너 관계는 두 개의 특정한 CDS들간의 동기화 동작을 설명하는 데이터 구조이다. 이와 같은 두 개의 CDS들은 파트너라고 불린다. 동기화 파트너 관계는 복수개의 동기화 쌍 그룹들을 포함한다. 동기화 파트너 관계는 또한 그 파트너 관계에 포함된 모든 쌍의 그룹들(pair group)에 적용될 수 있는 정책 정보를 포함할 수 있다. 만일 동기화 쌍 그룹이 그 자신만의 정책 정보를 가진다면, 그 동기화 쌍 그룹 정책은 그 특정한 동기화 쌍 그룹을 위한 파트너 관계 정책(partnership policy)에 우선한다.
CDS-CP 동기화가 본 출원의 초점이 되지만, CDS-CDS 동기화도 CDS-CP 동기화와 관련하여 유용하기 때문에 본 문서에서 검토될 것이고, 동일한 동기화 데이터 구조가 두 가지 유형의 동기화 모두에 이용될 수 있다.
동기화 관계는 적어도 하나의 동기화 파트너 관계로 구성되고, 각각의 파트너 관계는 적어도 하나의 동기화 결합(synchronization pairings)으로 구성된다.
도 1은 본 발명의 일실시예에 따른 동기화 관계를 도시한 도면이다. 여기서, 파트너 A(100)와 파트너 B(102)는 제1 동기화 파트너 관계(104)를 형성한다. 파트너 B(102)와 파트너 C(106)는 제2 동기화 파트너 관계(108)를 형성한다. 이와 같은 두 개의 파트너 관계(104, 108)는 동기화 관계(110)를 구성한다. 제1 동기화 파트너 관계(104)에서, 제1 결합(112)은 동일한 동기화 정책이 적용되는 두 개의 쌍(pair)을 포함한다. 객체 116과 객체 118이 제1 쌍(114)이다. 객체 122와 객체 124가 제2 쌍(120)이다. 제2 동기화 파트너 관계(108)에서, 제1 결합(126)은 하나의 쌍(128)을 포함한다. 그 쌍은 객체 130과 객체 132이다.
컨텐트싱크 서비스(CSS:contentsync service)는 동기화 데이터 구조의 관리를 도울 수 있다. CSS는 마지막 동기화 이후로 어떤 CDS 객체가 추가되거나, 변경되거나, 삭제되었는지를 설명하는 변경 로그를 CDS 객체 속성의 일부로서 보유할 수 있다. 동기화는 CSS들간의 상호작용을 가능하게 하기 때문에, 각각의 서비스는 상호간에 컨텐츠의 동기화를 달성할 수 있도록 다른 CSS들에게 액션을 호출하는 제어 포인트 기능을 가진다.
도 2는 두 개의 CSS간의 동기화 달성 방법을 설명하기 위하여 도시한 도면이다. 독립적인 제어 포인트(200)는 두 개의 CSS들(202, 204)간의 동기화를 관리한다. 이와 같은 관리는 컨텐트 동기화 데이터 구조의 관리(즉, 동기화 데이터 구조의 생성, 검색 및 삭제) 및 동기화 동작의 호출을 포함한다. CSS 202에 탑재된 제어 포인트(206)는 변경된 객체들을 위한 변경 로그의 검색, 다른 CSS(204)의 상태에 대한 모니터링 및 객체가 성공적으로 동기화되었을 때의 동기화 데이터 구조의 업데이트를 포함하는 객체들에 대한 실제 동기화를 수행하는 기능을 한다.
도 3은 본 발명의 일 실시예에 따라 컨텐트 동기화 기능을 설명하기 위하여 도시한 도면이다. 도 3에 도시된 것과 같이, 이와 같은 기능은 CDS(304) 내의 컨텐트싱크 서비스(300)와 컨텐트싱크 CP(302)의 결합이다. 컨텐트싱크 서비스(300)는 동기화 데이터 구조를 관리하고 파트너 디바이스와의 동기화 동작을 수행하는 기능 을 한다. 컨텐트싱크 CP(302)는 네트워크에서 동작중인 다른 컨텐트싱크 서비스를 제어하는 제어 포인트(304) 기능을 제공한다.
본 발명의 일 실시예에서, 동기화될 CDS 객체는 동기화 객체라고 불려진다. 동기화 객체는 로컬 디바이스의 객체와 원격 객체(remote object)라고 명명되는 파트너 디바이스에서의 객체 사이의 결합을 나타내는 동기화 객체 쌍 정보를 가진다. 일단 동기화 객체 쌍 정보가 객체에 추가되면, 동기화 객체 쌍 정보는 그 객체에게 변경이 있을 때마다 업데이트된다. 동기화 객체 쌍 정보는 파트너 디바이스가 소정의 원격 객체를 위한 마지막 동기화 이후로 객체에 대하여 어떤 속성 또는 리소스가 변경되었는지를 식별하는 것을 허용한다. 동기화될 객체가 대응되는 파트너에서 의 원격 객체를 가지지 않을 수 있다. 그와 같은 경우에, 동기화 동작 동안 파트너에서 원격 객체가 생성된다.
소정의 파트너 관계에서, 객체는 단일 동기화 객체 쌍 정보를 가질 수 있다. 그러나, 그 객체가 복수개의 파트너 관계에 포함되어 있다면, 그 객체는 각각의 파트너 관계에 대한 복수개의 동기화 객체 쌍들을 가질 수 있다.
동기화 데이터 구조는 하나의 디바이스의 객체가 다른 디바이스의 객체와 동기화되는 것을 허용한다. CDS 내의 모든 동기화가 가능한 객체는 그 객체가 다른 객체와 어떻게 동기화될 것인지를 설명하는 동기화 객체 쌍 정보를 가진다.
동기화 관계, 동기화 파트너 관계 또는 동기화 쌍 그룹은 고유 ID에 의하여 식별된다. 네트워크에서의 이와 같은 서비스의 소멸/재출현과 관계없이, 라이프타임에 걸쳐서 컨텐트싱크 서비스의 구현을 지원하는 구현들은 CDS에서 상기 ID들을 동일한 값으로 유지한다. 한번 사용된 값은 재사용되지 않는다.
동기화 정책은 동기화 관계에 포함된 동기화 파트너들이 동기화 객체들을 어떻게 교환할 수 있는지를 나타낸다. 일반적으로, 동기화 정책은 어떤 디바이스가 어떤 디바이스에게 메타데이터 및 리소스들을 제공하여야 하는지를 나타낸다. 본 발명의 일실시예에서, 오직 트래킹 정책이 정의된다.
트래킹 동기화 정책은 CDS와 비CDS 디바이스간의 동기화를 수행할 때 이용될 수 있다. 이와 같은 정책을 위한 실제 동기화 동작은 본 발명의 범위를 넘어서는 것이다. 이와 같은 정책에서, CDS를 가지는 디바이스만이 동기화 객체들을 위한 변경 로그에 대한 트래킹을 유지한다. 그 디바이스는 액션을 호출하고 그 시점에서의 새로운 로그의 보유를 시작함으로써 변경 로그를 새롭게(clear)한다. 그 디바이스는 동기화 관계가 파괴되었을 때 변경 로그를 보존하는 것을 중지한다. 트래킹 동기화 정책의 특징은 다음과 같다.
동기화 쌍 그룹에 새로운 객체가 자동적으로 추가될 수 있는데, 이는 만일 그 새롭게 추가된 객체의 부모 객체 (보유자(container))가 동기화 객체이고, 그 부모 객체의 정책에서 동기화 쌍 그룹 옵션(synchronization pair group option)에 대하여 새로운 자식 객체(child object)의 자동 추가가 설정되어 있는 경우에 한한다. 그러나, (직접적인 자식 객체들을 제외한) 자손 객체(descendent objects)는 이와 같은 옵션에 영향을 받지 않는다.
사용자가 CDS로부터 객체를 영구적으로 삭제하기를 원하는 경우에는, 사용자는 동기화 관계에서 그 객체를 제외할 수 있다. 만일, 그 객체가 삭제되고 동기화 관계에서 제외되지 않았다면, 동기화 동작에 의하여 그 객체는 다시 생성될 수 있다.
도 4는 본 발명에 따른 제어 포인트와 컨텐트 디렉토리 서비스 사이의 동기화 방법을 설명하기 위하여 도시한 흐름도이다. 이 방법은 제어 포인트에서 수행될 수 있다. 예컨대, CP는 휴대용 미디어 디바이스에 위치할 수 있다. CDS는 미디어 서버에 위치할 수 있다. 상기 방법의 각각의 단계는 하드웨어, 소프트웨어 또는 그것들의 조합에서 수행될 수 있다.
단계 400에서, 네트워크의 CDS를 포함하는 미디어 서버에서 동기화 데이터 구조를 생성하라는 액션이 호출된다. 여기서, 동기화 데이터 구조는 CP와 CDS 사이의 관계를 설명하는 동기화 관계를 포함한다. 단계 402에서 CDS에서의 적어도 하나의 객체에게 동기화 쌍 정보를 추가하라는 액션이 호출된다. 단계 404에서, CDS로부터 변경 로그가 요청된다. 단계 406에서, CDS로부터 변경 로그가 수신될 수 있다. 여기서, 변경 로그는 CP를 위한 동기화 쌍 정보가 추가된 적어도 하나의 객체의 변경에 대한 정보를 포함한다. 단계 408에서, 변경 로그는 CP 내부의 데이터베이스와 비교될 수 있다. 단계 410에서, 그 데이터베이스는 변경 로그에서의 변경을 반영하도록 업데이트될 수 있다. 단계 412에서, CDS에서의 적어도 하나의 객체로부터 동기화 쌍 정보를 삭제하라는 액션이 호출될 수 있다. 단계 414에서, CDS에서의 동기화 데이터 구조로부터 동기화 관계를 삭제하라는 액션이 호출될 수 있다.
도 5는 본 발명에 따른 제어 포인트와 컨텐트 디렉토리 서비스 사이의 동기화 방법을 설명하기 위하여 도시한 흐름도이다. 이 방법은 컨텐트 디렉토리 서비스 에서 수행될 수 있다. 예컨대, CP는 휴대용 미디어 디바이스에 위치할 수 있다. 예컨대, CDS는 미디어 서버에 위치할 수 있다. 상기 방법의 각각의 단계는 하드웨어, 소프트웨어 또는 그것들의 조합에서 수행될 수 있다.
단계 500에서, 동기화 데이터 구조가 생성된다. 여기서, 동기화 데이터 구조는 CP와 CDS 사이의 관계를 설명하는 동기화 관계를 포함한다. 이와 같은 생성은 CP로부터의 요청에 대한 응답으로서 수행될 수 있다. 단계 502에서, CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보가 추가된다. 이와 같은 추가는 CP로부터의 요청에 대응하여 수행될 수 있다. 단계 504에서, CDS에서의 적어도 하나의 객체들에 대한 변경이 모니터된다. 단계 506에서, 그 적어도 하나의 객체에 대한 변경이 변경 로그에 기록된다. 단계 504 및 단계 506은 변경이 증가할수록 복수회(multiple times) 수행될 수 있다.
단계 508에서, CP로부터 변경 로그를 위한 요청을 수신할 수 있다. 단계 510에서, 변경 로그가 CP에게 전송된다. 단계 512에서, CDS에서의 적어도 하나의 객체들로부터 동기화 쌍 정보가 삭제될 수 있다. 단계 514에서, CDS에서의 동기화 데이터 구조로부터 동기화 관계가 삭제될 수 있다. 이와 같은 삭제는 CP로부터의 요청에 대한 응답으로서 수행될 수 있다.
도 6은 본 발명의 일 실시예에 따른 제어 포인트를 설명하기 위하여 도시한 도면이다. 이와 같은 제어 포인트의 각각의 요소는 하드웨어, 소프트웨어 또는 그것들의 조합에서 수행될 수 있다. 상기 요소들은 컴포넌트로서 기술될 것이지만, 당업자는 이와 같은 요소들은 하드웨어 또는 소프트웨어 모듈에서 구현될 수 있다 는 것을 인정할 것이다. 게다가, 이와 같은 컴포넌트들은 구분이 명확하지 않고, 사실상 특정한 태스크를 수행하도록 구성된 컴포넌트가 다른 태스크를 수행하도록 구성된 컴포넌트와 동일한 컴포넌트일 수 있다.
동기화 데이터 구조 생성 액션 호출 컴포넌트(600)는 도 4의 단계 400을 수행하도록 구성될 수 있다. 동기화 쌍 정보 추가 액션 호출 컴포넌트(602)는 도 4의 단계 402를 수행하도록 구성될 수 있다. 변경 로그 요청 컴포넌트(604)는 도 4의 단계 404를 수행하도록 구성될 수 있다. 변경 로그 수신 컴포넌트(606)는 도 4의 단계 406을 수행하도록 구성될 수 있다. 변경 로그 비교 컴포넌트(608)는 도 4의 단계 408을 수행하도록 구성될 수 있다. 데이터베이스 업데이트 컴포넌트(610)는 도 4의 단계 410을 수행하도록 구성될 수 있다. 동기화 쌍 정보 삭제 액션 호출 컴포넌트(612)는 도 4의 단계 412를 수행하도록 구성될 수 있다. 동기화 관계 정보 삭제 액션 호출 컴포넌트(614)는 도 4의 단계 414를 수행하도록 구성될 수 있다.
도 7은 본 발명의 일 실시예에 따른 컨텐트 디렉토리 서비스를 도시한 도면이다. 이와 같은 컨텐트 디렉토리 서비스의 각각의 요소는 하드웨어, 소프트웨어 또는 그것들의 조합에서 수행될 수 있다. 상기 요소들은 컴포넌트로서 기술될 것이지만, 당업자는 이와 같은 요소들은 하드웨어 또는 소프트웨어 모듈에서 구현될 수 있다는 것을 인정할 것이다. 게다가, 이와 같은 컴포넌트들은 구분이 명확하지 않고, 사실상 특정한 태스크를 수행하도록 구성된 컴포넌트가 다른 태스크를 수행하도록 구성된 컴포넌트와 동일한 컴포넌트일 수 있다.
동기화 데이터 구조 생성 컴포넌트(700)는 도 5의 단계 500을 수행하도록 구 성될 수 있다. 동기화 쌍 정보 추가 컴포넌트(702)는 도 5의 단계 502를 수행하도록 구성될 수 있다. 객체 변경 모니터링 컴포넌트(704)는 도 5의 단계 504를 수행하도록 구성될 수 있다. 변경 기록 컴포넌트(706)는 도 5의 단계 506을 수행하도록 구성될 수 있다. 변경 로그 요청 수신 컴포넌트(708)는 도 5의 단계 508을 수행하도록 구성될 수 있다. 변경 로그 전송 컴포넌트(710)는 도 5의 단계 510을 수행하도록 구성될 수 있다. 동기화 쌍 정보 삭제 컴포넌트(712)는 도 5의 단계 512를 수행하도록 구성될 수 있다. 동기화 관계 삭제 컴포넌트(714)는 도 5의 단계 514를 수행하도록 구성될 수 있다.
특정한 XML(Extensible Markup Language) 구현이 이하에 기술된다. 이와 같은 예는 단지 하나의 가능한 구현일 뿐, 이와 같은 구현이 본 발명의 범위를 제한하는 것으로 추정되어서는 안 될 것이다.
동기화 정책은 제로 또는 그 이상의 동기화 데이터 구조를 포함하는 컨텐트싱크 XML 문서에서의 policy 요소에 포함될 수 있고, 우선하는 정책이 필요한 경우에는 CDS 객체에서의 upnp:syncInfo::objectPair::policy 속성에 포함될 수 있다. 하기의 예는 정책에 대한 XML의 일부분을 도시한 것이다.
<policy>
<syncType>tracking</syncType>
<priorityPartnerID>1</priorityPartnerID>
<autoObjAdd>1</ autoObjAdd >
<policy>
제로 또는 그 이상의 요소를 포함하는 루트 요소(root element)인 <policy>는 동기화 정책을 나타낸다.
하기의 예는 일반적인 policy XML 문서의 포맷에 대한 모형(template)을 도시한 것이다.
<?xml version="1.0"?>
< policy
xmlns="urn:schemas-upnp-org:av:css"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
urn:schemas-upnp-org:av:cds-event
http://www.upnp.org/schemas/av/css--v1-20070XXXX.xsd">
< syncType >synchronization policy type</ syncType > syncDataUpdate
< priority >Role of a partner</ priority >
< delProtection >Protect an object deletion</ delProtection >
</ policy >
최소한으로 완성된 동기화 데이터 구조(minimally complete synchronization data structure)는 정확히 하나의 동기화 관계, 그 동기화 관계 내의 정확히 하나의 파트너 관계 및 그 파트너 관계 내의 정확히 하나의 결합(pairing)을 정의한다.
최소한으로 완성된 파트너 관계 데이터 구조는 (현재 존재하는 동기화 관계에 추가될) 정확히 하나의 파트너 관계 및 그 그 파트너 관계 내의 정확히 하나의 결합을 정의한다.
CDS와 비CDS(제어 포인트) 사이의 동기화는 방향성이 없고 다음과 같은 단계
들을 포함할 수 있다.
UPnP 제어 포인트는 제어 포인트가 동기화하기를 원하는 디바이스에서의 단
일 동기화 관계를 포함하는 새로운 동기화 데이터 구조를 생성한다. 하기의 XML 문
서는 CDS와 비CDS 동기화를 위한 동기화 데이터 구조의 예시적인 포맷을 도시한 것
이다.
<syncRelationship id="1cce93c2-6144-4093-9650-ae6c7ba28c91" active="1"
xmlns="urn:schemas-upnp-org:cs"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:schemas-upnp-org:av:cds-event
http://www.upnp.org/schemas/cs/cs-v1-20070XXXX.xsd">
<title>ABC Electronic Program Guide</title>
<partnership id="3fa8e9f8-ff21-47ee-90c8-7730793a613f" active="1">
<partner id="1">
<deviceUDN>e832a654-9c64-429b-9f34-8f55278f73a7</deviceUDN>
<serviceID>AcmeContentSync-001</serviceID>
</partner>
<partner id="2">
<deviceUDN></deviceUDN>
<serviceID></serviceID>
</partner>
<policy>
<syncType>tracking<syncType>
<priorityPartnerID>1</priorityPartnerID>
<autoObjAdd>1</autoObjAdd>
</policy>
<pairGroup id="bca02e62-e9d6-454c-b1b2-a52e199e02e7" active="1"/>
</partnership>
</syncRelationship>
일단 동기화데이터 구조가 생성되고 동기화 쌍 정보가 CDS 객체들에 추가되면, CDS는 그 객체들의 변경에 대한 트래킹을 시작한다.
제어 포인트는 GetChangeLog() 액션을 호출함으로써 동기화 관계의 일부분인 모든 객체들에 대한 변경 로그를 검색할 수 있다. 변경 로그를 검색한 후에, 일단 변경 로그가 검색되거나 그 변경 로그가 예전 로그들을 흘려보낸 후에 새로운 로그의 보존을 시작하면, 제어 포인트는 CDS에게 변경 로그의 축적을 지속할 것인지 여 부에 대하여 지시하기 위한 ResetChangeLog() 액션을 호출할 수 있다.
일단 변경 로그가 검색되면, 제어 포인트는 객체들에 대한 변경과 그 제어포인트 자체의 내부 데이터베이스를 비교하고 그 자신의 내부 데이터베이스를 업데이트함으로써, CDS와 동기화한다.
제어 포인트가 동기화 관계의 일부분인 객체들에 대한 변경 로그에 대하여 더이상 흥미를 느끼지 못하게 되면, 제어 포인트는 DeleteSyncData() 액션을 호출함으로써 동기화 관계를 삭제할 것이다.
SyncChange 상태 변수는 SyncChange 상태 변수의 이벤트가 발생한 마지막 순간 이래로, 발생한 모든 변경들을 식별하는 XML 문서를 포함할 수 있다.
이벤트 통지 메시지가 모든 가입된 제어 포인트들(subscribed control points)에 전송된 후에, SyncChange 상태 변수를 업데이트할 필요가 생길 때, 즉 다음 이벤트가 발생할 때 SyncChange 상태 변수의 값이 리셋된다. 그 결과 값은 그 업데이트를 나타내는 단일 요소를 포함하는 새로운 XML 문서이다(즉, 그 결과 값은 모든 가입자들에 대한 이전의 이벤트 메세지의 배포를 따르는 첫 번째 업데이트 이벤트를 포함한다). 결과적으로, 추가적인 업데이트 요소들은 현재의 적당한 기간(current moderation period)이 종료될 때까지 XML 문서에 추가되고, SyncChange 상태 변수의 현재 값(즉, 현재의 이벤트 메세지)이 모든 이벤트 가입자들에게 전달될 것이다.
하기의 예는 일반화된 SyncChange 상태 변수의 포맷의 모형을 도시한 것이다.
<?xml version="1.0"?>
< SyncChange
xmlns="urn:schemas-upnp-org:av:css-event"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
urn:schemas-upnp-org:av:cds-event
http://www.upnp.org/schemas/cs/css-v1-20070XXXX.xsd">
< syncDataUpdate syncID ="synchronization relationship or partnership
or pairgroup ID of updated synchronization relationship "/>
< syncObjUpdate objectID ="object ID
of updated synchronization object"/>
</ SyncChange >
동기화 관계(및 그 동기화 관계의 syncRelationship 데이터 구조)는 전역적이고 고유한 syncRelationship@id 요소에 의하여 식별된다. 동기화 관계는 적어도 하나의 파트너 관계로 구성된다. 동기화 관계는 활성 또는 비활성 상태에 있을 수 있다. 활성 상태는 동기화 관계가 동기화 동작에 참가하고 있는 것을 의미하지만, 비활성 동기화 관계는 동기화 동작에 참가하지 않는다. 동기화 관계의 활성 상태는 syncRelationship@id 요소에 의하여 표현될 수 있다.
동기화 파트너 관계는 동기화 동작 동안에 동기화되는 컨텐트를 포함하는 특정한 두 개의 파트너 디바이스들을 식별한다. 파트너 관계는 오직 두 개의 싱크 파트너 디바이스들(sync partner devices) 사이에 존재한다. 파트너 디바이스들은 각각의 UDN 값들에 의하여 식별된다. 각각의 파트너 관계는 전역적이고 고유한 partnership@id 요소에 의하여 식별된다.
모든 동기화 데이터 구조(동기화 관계, 동기화 파트너 관계 및 동기화 쌍 그룹)내에서 초기 정책이 정의되면, 종속적인 구조(dependent structure)가 그 자신만의 정책을 특정하지 않으면 모든 종속적인 구조들이 그 정책을 이어받는다. 예컨대, 동기화 쌍 그룹을 위한 정책이 정의되고 그 동기화 쌍 그룹 내의 쌍을 위한 정책이 정의되면, 그 쌍을 위한 정책이 그 동기화 쌍 그룹을 위한 정책보다 우선하게 될 것이다. 유사하게, 파트너 관계를 위한 정책과 그 파트너 관계 내의 동기화 쌍 그룹을 위한 정책이 정의되면, 동기화 쌍 그룹 정책이 파트너 관계 정책보다 우선할 것이다.
partnership@id 요소는 내부적으로 저장된 파트너 관계 정보가 오래된 것인지 여부를 판단하는데 이용될 수 있다. partnership@id 요소의 값은 파트너 관계 정보가 변경될 때마다 하나씩 증가한다.
하기의 예는 동기화 데이터 구조를 정의하는 A_ARG_TYPE_SyncData 상태 변수의 포맷을 위한 일반화된 모형을 도시한 것이다.
<?xml version="1.0"?>
< ContentSync
xmlns="urn:schemas-upnp-org:av:css-event"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
urn:schemas-upnp-org:av:cds-event
http://www.upnp.org/schemas/cs/css-v1-20070XXXX.xsd">
< syncRelationship id ="synchronization relationship ID"
active ="flag indicates whether a relationship is enabled or
disabled"
systemUpdateID ="system update ID of the CDS at the time of change">
< title >title of this synchronization relationship</ title >
< partnership id ="synchronization partnership ID"
active ="flag indicates whether a partnership is enabled or
disabled"
updateID ="uniquely assigned ID when a partnership is updated">
< partner id =" 1 ">
< deviceUDN >device UDN of the first partner</ deviceUDN >
< serviceID >ID of a service of the first partner</ serviceID >
</ partner >
< partner id =" 2 ">
< deviceUDN >device UDN of the second partner</ deviceUDN >
< serviceID >ID of a service of the second partner</ serviceID >
</ partner >
< policy >synchronization policy in a partnership level</ policy >
< pairgroup id ="synchronization pairgroup ID"
active ="flag indicates whether a pairgroup is enabled or
disabled">
< policy >synchronization policy in a pairgroup level</ policy >
</ pairgroup >
</ partnership >
</ syncRelationship >
</ ContentSync >
A_ARG_TYPE_SyncPair 상태 변수는 다양한 액션들에서 이용될 CDS 객체를 위한 동기화 쌍을 포함하는 다양한 독립 변수(arguement)를 위한 유형 정보를 제공하기 위하여 소개된다.
하기에는 A_ARG_TYPE_SyncPair 상태 변수의 일반적인 예가 도시되어 있다.
<?xml version="1.0" encoding="UTF-8"?>
<syncInfo updateID="3">
<pair
syncRelationshipID="d8c9fa13-d79b-4a0c-999b-6ae2ff91a46d "
partnershipID="a0e4d0a7-3378-4f17-8af2-3f7de3345dc6"
pairgroupID="ba8e57de-7f66-4102-ae4b-31b96c86f173">
<remoteObjID>B1</remoteObjID>
<policy>
<syncType>replace</syncType>
<priorityPartnerID>1</priorityPartnerID>
</policy>
<status>MODIFIED</status>
</pair>
<pair
syncRelationshipID="e884c276-c489-44f0-bcec-332450dab074"
partnershipID="1ab3fef4-777e-496a-82ed-d2580cdafa75"
pairgroupID="c1bc5bd7-0207-4226-beee-b528fe63a919">
<remoteParentObjID>B2</remoteParentObjID>
<status>NEW</status>
</pair>
</syncInfo>
A_ARG_TYPE_SyncID 상태 변수는 동기화 관계, 동기화 파트너 관계 또는 동 기화 쌍 그룹을 고유하게 식별하기 위한 다양한 액션의 독립 변수를 위한 유형 정보를 제공하기 위하여 소개된다.
A_ARG_TYPE_ObjectID 상태 변수는 CDS 객체를 고유하게 식별하기 위한 다양한 액션의 독립 변수를 위한 유형 정보를 제공하기 위하여 소개된다.
A_ARG_TYPE_ChangeLog 상태 변수는 GetChangeLog() 액션에서의 독립 변수ChangeLog를 위한 유형 정보를 제공하기 위하여 소개된다.
변경 로그는 DIDL-Lite XML 문서를 확장하여 표현된 CDS 객체들의 리스트이다. 변경 로그는 마지막 동기화 동작 이래로 변경된 CDS 객체를 포함한다. 변경 로그가 GetChangeLog() 액션의 응답으로서 리턴될 때, 그 변경 로그는 특정한 동기화 관계 또는 동기화 파트너 관계 또는 동기화 쌍 그룹에 바인딩 된 변경된 CDS 객체만을 포함한다.
A_ARG_TYPE_Index 상태 변수는 다양한 액션들에서의 독립 변수를 위한 유형 정보를 제공하기 위하여 소개된다. 독립 변수들은 객체들에 대한 임의의 리스트 (변경 로그)에 대한 오프셋을 특정한다.
A_ARG_TYPE_Count 상태 변수는 다양한 액션들에서의 독립 변수를 위한 유형 정보를 제공하기 위하여 소개된다. 독립 변수들은 임의의 객체들에 대한 일반적인 숫자(ordinary number)를 특정한다.
A_ARG_TYPE_ResetObjectList 상태 변수는 변경 로그가 새롭게 될 동기화 객체들의 리스트를 포함하는 독립 변수를 위한 유형 정보를 제공하기 위하여 소개된다.
<예>
<ResetObjectList>
<object id="A1" remoteObjID="32" updateID="2"/>
<object id="A72" remoteObjID="9547" updateID="4"/>
</ResetObjectList>
하기의 예는 A_ARG_TYPE_ResetObjectList 상태 변수의 포맷을 위한 일반화된 모형을 도시한 것이다.
<?xml version="1.0"?>
< ResetObjectList
xmlns="urn:schemas-upnp-org:av:css-event"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
urn:schemas-upnp-org:av:css
http://www.upnp.org/schemas/cs/css-v1-20070XXXX.xsd">
< objectID
id ="object ID"
remoteObjID ="object ID of a partner paired with this object"
updateID ="uniquely assigned ID when the object is changed">
</ objectID >
</ ResetObjectList >
AddsyncData() 액션은 새로운 동기화 관계 모형 또는 현재의 동기화 관계 내에서의 새로운 파트너 관계 모형 또는 현재의 파트너 관계 내에서의 새로운 동기화 쌍 그룹 모형 중 하나를 생성한다.
디바이스가 새로운 동기화 관계를 생성하기 위한 AddSyncData() 액션을 독립적인 제어포인트로부터 수신하면, 그 디바이스는 최소한으로 완성된 동기화 데이터 구조를 위한 동기화 관계, 동기화 파트너 관계 및 동기화 쌍 그룹을 식별하기 위하여 세 개의 ID를 생성한다. 그 생성된 ID들은 A_ARG_TYPE_SyncID 상태 변수의 조건을 만족한다.
독립적인 제어 포인트가 동기화 관계를 추가하고 있을 때, 입력 독립 변수(input argument) SyncID는 빈 문자열(empty string)로 설정된다. 동기화 파트너 관계를 추가하는 동안, 독립 변수 SyncID는 그 동기화 파트너 관계의 정보가 추가될 현재의 동기화 관계의 SyncID를 포함할 것이다. 이와 유사하게, 동기화 쌍 그룹을 추가하는 동안, 독립 변수 SyncID는 동기화 그룹 쌍의 정보가 추가될 현재의 동기화 파트너 관계의 SyncID를 포함할 것이다.
ModifySyncData() 액션은 동기화 관계 또는 현재의 동기화 관계 내에서의 파트너 관계 또는 현재의 파트너 관계 내에서의 동기화 쌍 그룹 중 하나를 변경한다.
독립 변수 ActionCaller가 디바이스 UDN을 특정하면, 파트너 디바이스에 의 하여 상기와 같은 액션이 호출되고 디바이스는 동기화 데이터 구조(Sync Data)를 그 파트너 디바이스에게 배포할 필요가 없다. 그러나, 독립 변수 ActionCaller가 빈 문자열이라면, 그 파트너 디바이스에 대한 ModifySyncData()를 호출함으로써 그 디바이스는 동기화 데이터 구조(Sync Data)를 그 파트너 디바이스에게 배포한다.
오래된 데이터에 의하여 동기화 데이터 구조가 업데이트 되는 것을 방지하기 위하여, 입력 독립 변수 SyncData는 동기화 파트너 관계 또는 동기화 쌍 그룹의 레벨이 변경될 때 그 동기화 파트너 관계 및 동기화 쌍 그룹의 @upadateID 속성을 포함한다.
그와 같은 변경이 더 이상 유효하지 않은 동기화 관계를 발생시킨다면, ModifySyncData() 액션은 어떤 변경이나 적절한 에러 코드의 회신 없이 동작하지 않게 된다.
DeleteSyncData() 액션은 동기화 관계 또는 현재의 동기화 관계 내에서의 파트너 관계 또는 현재의 파트너 관계 내에서의 동기화 쌍 그룹 중 하나를 삭제한다. DeleteSyncData()의 독립변수 SyncID는 삭제될 동기화 관계, 동기화 파트너 관계 또는 동기화 쌍 그룹 중 하나를 식별한다.
독립 변수 ActionCaller가 디바이스 UDN을 특정하면, 파트너 디바이스에 의하여 상기와 같은 액션이 호출되고 디바이스는 그 파트너 디바이스에게 삭제에 대하여 알릴 필요가 없다. 그러나, 독립 변수 ActionCaller가 널(null) 값인 경우에는, 그 파트너 디바이스에 대한 DeleteSyncData() 액션을 호출함으로써 그 디바이스가 그 파트너 디바이스에게 삭제에 대하여 알린다.
동기화 파트너 관계 또는 동기화 쌍 그룹의 삭제는 파트너 디바이스 중 하나가 네트워크에 존재하지 않는 경우에도 허용된다. 이와 같은 경우에, 다른 파트너 디바이스는 그 디바이스가 네트워크에 다시 참가할 때, 어떠한 동기화 동작을 수행하기 전에 ExchangeSyncData() 액션을 호출함으로써 업데이트된 동기화 데이터 구조를 얻는다.
현재의 동기화 파트너 관계 내의 마지막 동기화 쌍 그룹이 삭제되면, 그 동기화 파트너 관계도 삭제된다.
이와 비슷하게, 현재의 동기화 관계 내의 마지막 동기화 파트너 관계가 삭제되면, 그 동기화 관계도 삭제된다.
GetSyncData() 액션은 입력 독립 변수 SyncID에 의하여 식별되는 동기화 데이터 구조를 리턴한다. 상기 액션의 독립 변수 SyncID가 동기화 관계를 식별한다면, 그 출력 독립 변수 SyncData는 동기화 관계를 위한 전체 동기화 데이터 구조를 포함한다. 여기서, 동기화 관계는 그 동기화 관계 내의 모든 동기화 파트너 관계와 그 동기화 관계 내에 포함된 각각의 파트너 관계를 위한 모든 동기화 쌍 그룹들을 포함한다. 만일 상기 액션의 독립 변수 SyncID의 값이 동기화 파트너 관계를 식별한다면, 출력 독립 변수 SyncData는 그 동기화 파트너 관계 내에 포함된 모든 동기화 쌍 그룹들을 포함하는 동기화 파트너 관계를 위한 동기화 데이터 구조를 포함한다. 만일 상기 액션의 독립 변수 SyncID의 값이 동기화 쌍 그룹을 식별한다면, 출력 독립 변수 SyncData는 그 식별된 동기화 쌍 그룹을 위한 동기화 데이터 구조를 포함한다. 만일 상기 액션의 독립 변수 SyncID의 값이 빈 문자열인 경우에는, 출력 독립 변수 SyncData는 모든 동기화 관계들을 위한 동기화 데이터 구조를 포함한다.
AddSyncPair() 액션은 동기화 쌍 정보(synchronization pair information) 를 CDS 객체에 추가한다. 독립 변수 ActionCaller가 디바이스 UDN을 특정하면, 파트너 디바이스에 의하여 상기와 같은 액션이 호출되고, 디바이스는 동기화 쌍 정보를 그 파트너 디바이스에게 배포할 필요가 없다. 그러나, ActionCaller가 널 값이라면, 이와 같은 액션을 수신한 디바이스는 그 파트너 디바이스에 대한 AddsyncPair() 액션을 호출하여 그 파트너 디바이스와 동일한 동기화 쌍 정보를 유지한다.
상기 액션의 입력 독립 변수 ObjectID는 동기화 쌍 정보가 추가되고 있는 객체를 식별한다.
입력 독립 변수 SyncPair는 동기화 쌍 정보를 포함하는 XML의 일부분을 포함한다.
객체를 위한 동기화 쌍 정보를 추가하는 동안, 이와 같은 액션을 호출할 때 발생할 수 있는 두 개의 시나리오 존재한다.
● 상기 쌍(pair)의 일부분인 두 개의 객체들이 이미 존재하는 경우(유형 1)
원격 객체의 object@id 값이 upnp:pair::remoteobjID 요소에 포함되어 있다.
● 파트너 중 하나에만 객체가 존재하는 경우(유형 2 및 유형 3)
■ 파트너 디바이스가 상기 쌍을 위한 대응되는 파트너 객체를 가지지 않는다. 첫번째 동기화 동작 동안에 파트너 디바이스에서 대응되는 객체가 생성될 것이다. 파트너 디바이스에서 객체를 생성하기 위한 규정은 다음과 같다:
◆ 새로운 객체 아이템이 생성될 부모 보유자 객체(parent container object)가 그 파트너 디바이스에 존재한다면 upnp:pair::remoteParentObjID 요소는 부모 보유자 객체의 object@id를 포함한다.
◆ 파트너에 상기 부모 보유자 객체가 존재하지 않고, 상기 새로운 객체 아이템이 위치할 보유자 객체가 내부 보유자 객체(local container object)로부터 생성된다면, upnp:pair::virtualRemoteParentObjID는 내부 보유자의 object@id 값을 포함한다. (즉, 이와 같은 보유자 객체는 파트너 디바이스에서 부모 객체일 것이다.) 마찬가지로, 이와 같은 부모 보유자 객체는 동일한 파트너 관계에서 쌍을 가진다. 동기화 동작 동안에, 로컬 디바이스가 로컬 디바이스에 상기 쌍에 대하여 대응되는 객체가 존재하지 않는다고 판단하면, 그 디바이스는 그 로컬 디바이스에서 새로운 객체를 생성하고 새롭게 생성된 객체의 객체 ID 값을 할당함으로써, upnp:pair::RemoteObjID를 업데이트한다. 다음으로, 그 디바이스는 upnp:pair::remoteParentObjID 또는 the upnp:pair::virtualRemoteParentObjID를 삭제한다.
객체는 단일 동기화 관계 내에서의 복수개의 동기화 쌍 그룹들의 일부일 수 있다. 그러나, 그와 같은 경우에는 하기의 규정이 적용된다:
● 동기화 정책이 '교체(replace)'라면, 소스가 되는 객체가 복수개의 쌍들을 가지는 것이 허용된다.
● 동기화 정책이 '혼합(blend)'이라면, 상위의 우선 순위를 가지는 객체(object with precedence)가 복수개의 쌍들을 가지는 것이 허용된다.
● 동기화 정책이 "병합(merge)"이라면, 단일한 쌍 그룹만이 허용된다.
ModifySyncPair() 액션은 CDS 객체를 위한 동기화 쌍의 속성을 변경한다. 이와 같은 변경은 정책 정보만을 포함한다. 독립 변수 ActionCaller가 디바이스 UDN을 특정하면, 파트너 디바이스에 의하여 상기와 같은 액션이 호출되고, 디바이스는 동기화 쌍 그룹 정보를 그 파트너 디바이스에게 배포할 필요가 없다. 그러나, 독립 변수 ActionCaller가 빈 문자열이라면, 독립적인 제어 포인트에 의하여 그와 같은 액션이 호출되고 그 파트너 디바이스에서의 동일한 동기화 쌍 정보를 유지하기 위하여 파트너 디바이스에 대한 ModifySyncPair() 액션을 호출함으로써 SyncPair에 포함된 상기 쌍 정보를 파트너 디바이스에게 배포한다.
독립 변수 ObjectID는 쌍 정보가 변경될 객체를 식별한다. 입력 독립 변수SyncPair는 추가될 쌍 정보를 포함하는 XML의 일부분을 포함한다. 독립 변수 SyncPair에서, upnp:pair@syncRelationshipID, upnp:pair@partnershipID 및 upnp:pair@pairgroupID는 특정되어야 하고, 유효하여야 한다. SyncPair는 또한 특정된 a upnp:pair::remoteObject 또는 a upnp:pair::remoteParentPair 또는 a upnp::virtualRemoteParentObjID 중 하나를 포함한다.
본 발명은 특정한 실시예들을 참조하여 도시되고 기술되었으며, 그와 같은 실시예들의 형태나 세부 사항은 본 발명의 사상 및 범위를 벗어나지 않고 변경될 수 있음을 당업자가 인정할 것이다. 게다가, 비록 본 발명의 다양한 장점, 측면 및 목적이 다양한 실시예들을 참조하여 기술되었지만, 본 발명의 범위는 그와 같은 장점, 측면 및 목적으로 한정되지 않는다는 것이 인정될 것이다. 오히려, 본 발명의 범위는 첨부된 청구 범위를 참조하여 결정될 것이다.
도 1은 본 발명의 일실시예에 따른 동기화 관계를 도시한 도면이다.
도 2는 두 개의 CSS간의 동기화 달성 방법을 설명하기 위하여 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 컨텐트 동기화 기능을 설명하기 위하여 도시한 도면이다.
도 4는 본 발명에 따른 제어 포인트와 컨텐트 디렉토리 서비스 사이의 동기화 방법을 설명하기 위하여 도시한 흐름도이다.
도 5는 본 발명에 따른 제어 포인트와 컨텐트 디렉토리 서비스 사이의 동기화 방법을 설명하기 위하여 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 제어 포인트를 설명하기 위하여 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 컨텐트 디렉토리 서비스를 도시한 도면이다.

Claims (26)

  1. 동기화 데이터 구조가 네트워크에서의 제어 포인트(Control Point:CP)와 상기 네트워크에서의 컨텐트 디렉토리 서비스(Content Directory Service:CDS) 사이의 관계를 설명하는 동기화 관계(Synchronization Relationship)를 포함할 때, 상기 CP에서 상기 CDS를 포함하는 미디어 서버에서의 동기화 데이터 구조를 생성하는 액션을 호출하는 단계;
    상기 CP에서, 상기 CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보(Synchronization Pair Information)를 추가하는 액션을 호출하는 단계;
    상기 CP에서, 상기 CDS로부터 변경 로그(Change Log)를 요청하는 단계; 및
    상기 변경 로그가 상기 CP를 위한 동기화 쌍 정보가 추가된 상기 적어도 하나의 객체들의 변경에 대한 정보를 포함할 때, 상기 CDS로부터 상기 변경 로그를 수신하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 호출하는 단계들, 상기 요청하는 단계 및 상기 수신하는 단계는 컨텐트 동기화 서비스(content synchronization service:CSS)를 통하여 수행되는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 CP에서, 상기 CDS에서의 적어도 하나의 객체들로부터 상기 동기화 쌍 정보를 삭제하는 액션을 호출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 CP에서, 상기 미디어 서버에서의 상기 동기화 데이터 구조로부터 상기 동기화 관계를 삭제하는 액션을 호출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 변경 로그와 상기 CP의 내부 데이터베이스를 비교하는 단계; 및
    상기 변경 로그에서의 변경을 반영하여 상기 데이터베이스를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 CP는 휴대용 미디어 디바이스에 위치하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 CDS는 미디어 서버에 위치하는 것을 특징으로 하는 방법.
  8. 동기화 데이터 구조가 네트워크에서의 제어 포인트(CP)와 상기 네트워크에서 의 컨텐트 디렉토리 서비스(CDS) 사이의 관계를 설명하는 동기화 관계를 포함할 때, 상기 네트워크에서의 CDS를 포함하는 미디어 서버에서 상기 동기화 데이터 구조를 생성하는 단계;
    상기 CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보를 추가하는 단계;
    상기 CDS에서의 적어도 하나의 객체들에 대한 변경을 모니터하는 단계;
    상기 적어도 하나의 객체들에 대한 변경을 변경 로그에 기록(logging)하는 단계; 및
    상기 변경 로그를 상기 CP에게 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 생성하는 단계는
    상기 CP로부터의 요청에 대한 응답으로서 수행되는 것을 특징으로 하는 방법.
  10. 제8항에 있어서,
    상기 CDS에서의 적어도 하나의 객체들로부터 상기 동기화 쌍 정보를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제8항에 있어서,
    상기 CDS에서의 상기 동기화 데이터 구조로부터 상기 동기화 관계를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 동기화 데이터 구조가 네트워크에서의 제어 포인트(CP)와 상기 네트워크에서의 컨텐트 디렉토리 서비스(CDS) 사이의 관계를 설명하는 동기화 관계를 포함할 때, 상기 CDS를 포함하는 미디어 서버에서의 동기화 데이터 구조를 생성하는 액션을 호출하도록 구성된 컴포넌트;
    상기 CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보를 추가하는 액션을 호출하도록 구성된 컴포넌트;
    상기 CDS로부터 변경 로그를 요청하도록 구성된 컴포넌트;
    상기 변경 로그가 상기 CP를 위한 동기화 쌍 정보가 추가된 상기 적어도 하나의 객체들의 변경에 대한 정보를 포함할 때, 상기 CDS로부터 상기 변경 로그를 수신하도록 구성된 컴포넌트를 포함하는 제어 포인트.
  13. 제12항에 있어서,
    상기 CP에서, 상기 CDS에서의 적어도 하나의 객체들로부터 상기 동기화 쌍 정보를 삭제하는 액션을 호출하도록 구성된 컴포넌트를 더 포함하는 것을 특징으로 하는 제어 포인트.
  14. 제12항에 있어서,
    상기 CP에서, 상기 미디어 서버에서의 상기 동기화 데이터 구조로부터 상기 동기화 관계를 삭제하는 액션을 호출하도록 구성된 컴포넌트를 더 포함하는 것을 특징으로 하는 제어 포인트.
  15. 제12항에 있어서,
    상기 변경 로그와 상기 CP의 내부 데이터베이스를 비교하도록 구성된 컴포넌트; 및
    상기 변경 로그에서의 변경을 반영하여 상기 데이터베이스를 업데이트하도록 구성된 컴포넌트를 더 포함하는 것을 특징으로 하는 제어 포인트.
  16. 제12항에 있어서,
    상기 CP는 휴대용 미디어 디바이스에 위치하는 것을 특징으로 하는 제어 포인트.
  17. 제12항에 있어서,
    상기 CDS는 미디어 서버에 위치하는 것을 특징으로 하는 제어 포인트.
  18. 동기화 데이터 구조가 네트워크에서의 제어 포인트(CP)와 상기 네트워크에서의 컨텐트 디렉토리 서비스(CDS) 사이의 관계를 설명하는 동기화 관계를 포함할 때, 상기 네트워크에서의 CDS를 포함하는 미디어 서버에서 상기 동기화 데이터 구 조를 생성하도록 구성된 컴포넌트;
    상기 CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보를 추가하도록 구성된 컴포넌트;
    상기 CDS에서의 적어도 하나의 객체들에 대한 변경을 모니터하도록 구성된 컴포넌트;
    상기 적어도 하나의 객체들에 대한 변경을 변경 로그에 기록(logging)하도록 구성된 컴포넌트; 및
    상기 변경 로그를 상기 CP에게 전송하도록 구성된 컴포넌트를 포함하는 것을 특징으로 하는 컨텐트 동기화 서비스.
  19. 제18항에 있어서,
    상기 컨텐트 동기화 서비스는 통신적으로 상기 CP와 결합되고, 상기 동기화 데이터 구조의 생성은 상기 CP로부터의 요청에 대한 응답으로서 수행되는 것을 특징으로 하는 컨텐트 동기화 서비스.
  20. 제18항에 있어서,
    상기 CDS에서의 적어도 하나의 객체들로부터 상기 동기화 쌍 정보를 삭제하도록 구성된 컴포넌트를 더 포함하는 것을 특징으로 하는 컨텐트 동기화 서비스.
  21. 제18항에 있어서,
    상기 CDS에서의 상기 동기화 데이터 구조로부터 상기 동기화 관계를 삭제하도록 구성된 컴포넌트를 더 포함하는 것을 특징으로 하는 컨텐트 동기화 서비스.
  22. 미디어 서버; 및
    제어 포인트(CP)를 포함하고,
    상기 미디어 서버는
    컨텐트 디렉토리 서비스(CDS); 및 컨텐트 동기화 서비스(CSS)를 포함하고,
    상기 CSS는 동기화 데이터 구조를 생성하도록 구성된 컴포넌트; 상기 CDS에서 적어도 하나의 객체들에게 동기화 쌍 정보를 추가하도록 구성된 컴포넌트; 상기 CDS에서의 적어도 하나의 객체들에 대한 변경을 모니터하도록 구성된 컴포넌트; 상기 적어도 하나의 객체들에 대한 변경을 변경 로그에 기록(logging)하도록 구성된 컴포넌트; 및 상기 변경 로그를 상기 CP에게 전송하도록 구성된 컴포넌트를 포함하며,
    상기 제어 포인트는
    동기화 데이터 구조가 네트워크에서의 제어 포인트(CP)와 상기 네트워크에서의 컨텐트 디렉토리 서비스(CDS) 사이의 관계를 설명하는 동기화 관계를 포함할 때, 상기 CDS를 포함하는 미디어 서버에서의 동기화 데이터 구조를 생성하는 액션을 호출하도록 구성된 컴포넌트;
    상기 CDS에서의 적어도 하나의 객체들에게 동기화 쌍 정보를 추가하는 액션을 호출하도록 구성된 컴포넌트;
    상기 CDS로부터 변경 로그를 요청하도록 구성된 컴포넌트;
    상기 변경 로그가 상기 CP를 위한 동기화 쌍 정보가 추가된 상기 적어도 하나의 객체들의 변경에 대한 정보를 포함할 때, 상기 CDS로부터 상기 변경 로그를 수신하도록 구성된 컴포넌트를 포함하는 것을 특징으로 하는 시스템.
  23. 제22항에 있어서,
    제2 제어 포인트를 더 포함하고,
    상기 제2 제어 포인트는
    제2 동기화 데이터 구조가 상기 제2 제어 포인트와 상기 CDS 사이의 관계를 설명하는 제2 동기화 관계를 포함할 때, 상기 미디어 서버에서의 제2 동기화 데이터 구조를 생성하는 액션을 호출하도록 구성된 컴포넌트를 포함하는 것을 특징으로 하는 시스템.
  24. 제23항에 있어서,
    상기 제2 제어 포인트는
    상기 CDS로부터 제2 변경 로그를 요청하도록 구성된 컴포넌트;
    상기 제2 변경 로그가 상기 제2 제어 포인트를 위한 동기화 쌍 정보가 추가된 상기 적어도 하나의 객체들의 변경에 대한 정보를 포함할 때, 상기 CDS로부터 상기 제2 변경 로그를 수신하도록 구성된 컴포넌트를 포함하는 것을 특징으로 하는 시스템.
  25. 제22항에 있어서,
    상기 동기화 데이터 구조는 동기화 정책(synchronization policy)을 포함하는 것을 특징으로 하는 시스템.
  26. 제25항에 있어서,
    상기 동기화 정책은
    XML(Extensible Markup Language) 문서로 저장되어 있는 것을 특징으로 하는 시스템.
KR1020080053129A 2007-06-05 2008-06-05 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트를동기화하는 방법 KR101511682B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US93341607P 2007-06-05 2007-06-05
US60/933,416 2007-06-05
US11/965,555 2007-12-27
US11/965,555 US8037022B2 (en) 2007-06-05 2007-12-27 Synchronizing content between content directory service and control point

Publications (2)

Publication Number Publication Date
KR20080107308A true KR20080107308A (ko) 2008-12-10
KR101511682B1 KR101511682B1 (ko) 2015-04-17

Family

ID=40093865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080053129A KR101511682B1 (ko) 2007-06-05 2008-06-05 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트를동기화하는 방법

Country Status (5)

Country Link
US (1) US8037022B2 (ko)
JP (1) JP5027923B2 (ko)
KR (1) KR101511682B1 (ko)
CN (1) CN101681320B (ko)
WO (1) WO2008150112A1 (ko)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7623028B2 (en) 2004-05-27 2009-11-24 Lawrence Kates System and method for high-sensitivity sensor
US7142107B2 (en) 2004-05-27 2006-11-28 Lawrence Kates Wireless sensor unit
US8033479B2 (en) 2004-10-06 2011-10-11 Lawrence Kates Electronically-controlled register vent for zone heating and cooling
WO2007005947A1 (en) 2005-07-01 2007-01-11 Terahop Networks, Inc. Nondeterministic and deterministic network routing
KR100823273B1 (ko) * 2006-06-30 2008-04-21 삼성전자주식회사 UPnP 컨텐트 디렉토리 서비스를 동기화하는 방법 및장치
US8160752B2 (en) 2008-09-30 2012-04-17 Zome Networks, Inc. Managing energy usage
WO2009151877A2 (en) 2008-05-16 2009-12-17 Terahop Networks, Inc. Systems and apparatus for securing a container
US8754775B2 (en) 2009-03-20 2014-06-17 Nest Labs, Inc. Use of optical reflectance proximity detector for nuisance mitigation in smoke alarms
CN102209088B (zh) * 2010-03-29 2014-02-05 上海博泰悦臻网络技术服务有限公司 车载音乐的提供、获取方法和装置以及车载音乐传输系统
US8290900B2 (en) * 2010-04-24 2012-10-16 Research In Motion Limited Apparatus, and associated method, for synchronizing directory services
US8386423B2 (en) 2010-05-28 2013-02-26 Microsoft Corporation Scalable policy-based database synchronization of scopes
US8727611B2 (en) 2010-11-19 2014-05-20 Nest Labs, Inc. System and method for integrating sensors in thermostats
US8606374B2 (en) 2010-09-14 2013-12-10 Nest Labs, Inc. Thermodynamic modeling for enclosures
US9104211B2 (en) 2010-11-19 2015-08-11 Google Inc. Temperature controller with model-based time to target calculation and display
US8950686B2 (en) 2010-11-19 2015-02-10 Google Inc. Control unit with automatic setback capability
US8918219B2 (en) 2010-11-19 2014-12-23 Google Inc. User friendly interface for control unit
US8510255B2 (en) 2010-09-14 2013-08-13 Nest Labs, Inc. Occupancy pattern detection, estimation and prediction
US8843239B2 (en) 2010-11-19 2014-09-23 Nest Labs, Inc. Methods, systems, and related architectures for managing network connected thermostats
US8850348B2 (en) 2010-12-31 2014-09-30 Google Inc. Dynamic device-associated feedback indicative of responsible device usage
US11334034B2 (en) 2010-11-19 2022-05-17 Google Llc Energy efficiency promoting schedule learning algorithms for intelligent thermostat
US9268344B2 (en) 2010-11-19 2016-02-23 Google Inc. Installation of thermostat powered by rechargeable battery
US9075419B2 (en) 2010-11-19 2015-07-07 Google Inc. Systems and methods for a graphical user interface of a controller for an energy-consuming system having spatially related discrete display elements
US9046898B2 (en) 2011-02-24 2015-06-02 Google Inc. Power-preserving communications architecture with long-polling persistent cloud channel for wireless network-connected thermostat
US10346275B2 (en) 2010-11-19 2019-07-09 Google Llc Attributing causation for energy usage and setpoint changes with a network-connected thermostat
US9448567B2 (en) 2010-11-19 2016-09-20 Google Inc. Power management in single circuit HVAC systems and in multiple circuit HVAC systems
US8195313B1 (en) 2010-11-19 2012-06-05 Nest Labs, Inc. Thermostat user interface
US9714772B2 (en) 2010-11-19 2017-07-25 Google Inc. HVAC controller configurations that compensate for heating caused by direct sunlight
US9256230B2 (en) 2010-11-19 2016-02-09 Google Inc. HVAC schedule establishment in an intelligent, network-connected thermostat
US9453655B2 (en) 2011-10-07 2016-09-27 Google Inc. Methods and graphical user interfaces for reporting performance information for an HVAC system controlled by a self-programming network-connected thermostat
US9459018B2 (en) 2010-11-19 2016-10-04 Google Inc. Systems and methods for energy-efficient control of an energy-consuming system
US9417637B2 (en) 2010-12-31 2016-08-16 Google Inc. Background schedule simulations in an intelligent, network-connected thermostat
US9342082B2 (en) 2010-12-31 2016-05-17 Google Inc. Methods for encouraging energy-efficient behaviors based on a network connected thermostat-centric energy efficiency platform
US8511577B2 (en) 2011-02-24 2013-08-20 Nest Labs, Inc. Thermostat with power stealing delay interval at transitions between power stealing states
US8944338B2 (en) 2011-02-24 2015-02-03 Google Inc. Thermostat with self-configuring connections to facilitate do-it-yourself installation
US8688631B2 (en) 2011-03-17 2014-04-01 Alexander Savenok System and method for media file synchronization
US8478719B2 (en) 2011-03-17 2013-07-02 Remote Media LLC System and method for media file synchronization
US9115908B2 (en) 2011-07-27 2015-08-25 Honeywell International Inc. Systems and methods for managing a programmable thermostat
US8893032B2 (en) 2012-03-29 2014-11-18 Google Inc. User interfaces for HVAC schedule display and modification on smartphone or other space-limited touchscreen device
US9222693B2 (en) 2013-04-26 2015-12-29 Google Inc. Touchscreen device user interface for remote control of a thermostat
WO2013059671A1 (en) 2011-10-21 2013-04-25 Nest Labs, Inc. Energy efficiency promoting schedule learning algorithms for intelligent thermostat
US8622314B2 (en) 2011-10-21 2014-01-07 Nest Labs, Inc. Smart-home device that self-qualifies for away-state functionality
JP2014534405A (ja) 2011-10-21 2014-12-18 ネスト・ラブズ・インコーポレイテッド ユーザフレンドリーな、ネットワーク接続された学習サーモスタットならびに関連するシステムおよび方法
JP5917103B2 (ja) * 2011-11-18 2016-05-11 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP5890674B2 (ja) 2011-12-07 2016-03-22 キヤノン株式会社 情報処理装置、情報処理方法
EP2831687B1 (en) 2012-03-29 2020-01-01 Google LLC Processing and reporting usage information for an hvac system controlled by a network-connected thermostat
US9091453B2 (en) 2012-03-29 2015-07-28 Google Inc. Enclosure cooling using early compressor turn-off with extended fan operation
US8620841B1 (en) 2012-08-31 2013-12-31 Nest Labs, Inc. Dynamic distributed-sensor thermostat network for forecasting external events
US9208676B2 (en) 2013-03-14 2015-12-08 Google Inc. Devices, methods, and associated information processing for security in a smart-sensored home
US8635373B1 (en) * 2012-09-22 2014-01-21 Nest Labs, Inc. Subscription-Notification mechanisms for synchronization of distributed states
US8539567B1 (en) 2012-09-22 2013-09-17 Nest Labs, Inc. Multi-tiered authentication methods for facilitating communications amongst smart home devices and cloud-based servers
US8630741B1 (en) 2012-09-30 2014-01-14 Nest Labs, Inc. Automated presence detection and presence-related control within an intelligent controller
US8600561B1 (en) 2012-09-30 2013-12-03 Nest Labs, Inc. Radiant heating controls and methods for an environmental control system
US8594850B1 (en) 2012-09-30 2013-11-26 Nest Labs, Inc. Updating control software on a network-connected HVAC controller
US10775814B2 (en) 2013-04-17 2020-09-15 Google Llc Selective carrying out of scheduled control operations by an intelligent controller
US9696735B2 (en) 2013-04-26 2017-07-04 Google Inc. Context adaptive cool-to-dry feature for HVAC controller
US9360229B2 (en) 2013-04-26 2016-06-07 Google Inc. Facilitating ambient temperature measurement accuracy in an HVAC controller having internal heat-generating components
US9833716B2 (en) * 2013-11-22 2017-12-05 Electronics And Telecommunications Research Institute Web content sharing method, and web content providing apparatus and receiving terminal for web content sharing
US9857238B2 (en) 2014-04-18 2018-01-02 Google Inc. Thermodynamic model generation and implementation using observed HVAC and/or enclosure characteristics
US11086903B2 (en) * 2018-06-28 2021-08-10 Teradata Us, Inc. Methods and system for optimal multi-environment data synchronization/replication
EP3719664A1 (en) * 2019-04-03 2020-10-07 Advanced Digital Broadcast S.A. System and method for or sharing objects based on the universal plug and play (upnp) content directory service (cds) protocol
US11726507B2 (en) 2020-08-28 2023-08-15 Google Llc Compensation for internal power dissipation in ambient room temperature estimation
US11761823B2 (en) * 2020-08-28 2023-09-19 Google Llc Temperature sensor isolation in smart-home devices
US11885838B2 (en) 2020-08-28 2024-01-30 Google Llc Measuring dissipated electrical power on a power rail

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351467B1 (en) * 1997-10-27 2002-02-26 Hughes Electronics Corporation System and method for multicasting multimedia content
US7689510B2 (en) * 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US6879981B2 (en) * 2001-01-16 2005-04-12 Corigin Ltd. Sharing live data with a non cooperative DBMS
CN1197013C (zh) * 2001-02-02 2005-04-13 英业达股份有限公司 利用同步目录容错的方法
US7363388B2 (en) 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
KR20030095897A (ko) 2002-06-15 2003-12-24 엘지전자 주식회사 UPnP 기반 네트워크의 동기화 방법
FI114750B (fi) 2002-10-29 2004-12-15 Nokia Corp Datan synkronoiminen
US20040133896A1 (en) * 2002-12-20 2004-07-08 Sony Corporation And Sony Electronics, Inc. Network device application interface
US20040139180A1 (en) * 2003-01-10 2004-07-15 Sony Corporation Automobile media synchronization
CN1757033A (zh) * 2003-02-28 2006-04-05 皇家飞利浦电子股份有限公司 在网络中的用户站之间共享文件的方法
JP2006524385A (ja) * 2003-04-07 2006-10-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンテンツディレクトリサービスのインポートコンテナ
KR100541636B1 (ko) 2003-04-17 2006-01-10 삼성전자주식회사 컨텐츠 동기화 방법 및 데이터 포맷
US7440985B2 (en) * 2003-07-31 2008-10-21 Microsoft Corporation Filtered replication of data stores
CN100363890C (zh) * 2004-12-11 2008-01-23 鸿富锦精密工业(深圳)有限公司 远程计算机文件同步更新系统及方法
KR100678921B1 (ko) 2005-10-18 2007-02-05 삼성전자주식회사 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치
CN1794724A (zh) * 2005-10-27 2006-06-28 华为技术有限公司 在SyncML层实现数据同步的方法
US20070226312A1 (en) * 2006-03-24 2007-09-27 Nokia Corporation System and method for using web syndication feeds as a change log for synchronization in a UPnP audio/video environment

Also Published As

Publication number Publication date
KR101511682B1 (ko) 2015-04-17
CN101681320A (zh) 2010-03-24
WO2008150112A1 (en) 2008-12-11
CN101681320B (zh) 2012-06-27
JP5027923B2 (ja) 2012-09-19
US20080307246A1 (en) 2008-12-11
JP2010529550A (ja) 2010-08-26
US8037022B2 (en) 2011-10-11

Similar Documents

Publication Publication Date Title
KR101511682B1 (ko) 컨텐트 디렉토리 서비스와 제어 포인트간의 컨텐트를동기화하는 방법
JP5090046B2 (ja) コンテンツ管理方法及び装置
KR100562907B1 (ko) 미디어 컨텐츠의 통합 관리 장치 및 그 방법
JP5275584B2 (ja) UPnPコンテンツディレクトリサービスを同期化する方法及び装置
KR101249232B1 (ko) UPnP AV 네트워크에서 “유니버셜 팔로우-미”기능을 제공하는 시스템 및 방법
US20060168000A1 (en) Method of sharing files between user stations in a network
JP4781822B2 (ja) ホームネットワークでコンテンツに対する一つのビューを提供する方法及びシステム
CA2527491C (en) Computer program listing
US8452775B2 (en) Accessing content items in a network based on device capability information
US7890470B2 (en) Method and apparatus for synchronizing device providing content directory service with device not providing content directory
US20150149599A1 (en) Remote selection and authorization of collected media transmission
US20040172423A1 (en) Method and system for synchronizing data shared among peer computing devices
US20060041596A1 (en) Caching directory server data for controlling the disposition of multimedia data on a network
JP2012516503A (ja) 分散された資産とメタデータを管理するシステム
US20090248713A1 (en) Method and apparatus for synchronizing metadata and media based on upnp protocol
US20070239864A1 (en) Method and apparatus for synchronizing contents of home network devices
KR20050104358A (ko) 정보 처리 장치, 콘텐츠 관리 방법, 콘텐츠 정보 관리 방법및 컴퓨터 프로그램
US9843634B2 (en) Method and apparatus for synchronizing content directory service objects of universal plug and play media servers
Göndör et al. The current state of interoperability in decentralized online social networking services
US20070189733A1 (en) Method of restoring AV session and a control point for the same
Messer et al. Interplay: a middleware for integration of devices, services and contents in the home networking environment.
JP2008177841A (ja) 録画再生装置、通信方法およびプログラム

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
FPAY Annual fee payment

Payment date: 20180321

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee