위브 데이터 관리

이제 Weave의 주요 구성요소에 관해 배웠으므로 일부 기능을 대략적으로 처리하는 방법을 살펴보겠습니다.

일상 업무에서 Nest 생태계의 거의 모든 기능은 Weave 스키마의 일부로 리소스 및 특성에 매핑됩니다. 데이터 관리 프로필은 게시-구독 모델을 사용하여 특성에 관한 모든 요청을 관리합니다. 이러한 요청은 데이터 관리 프로필에 관련된 메시지입니다.

이 유형의 모델에서는 게시자가 특성 (시청할 데이터)을 광고하고 정기 결제 사용자가 게시된 특성의 변화 (시청 중인 데이터)에 반응합니다. 이 함수를 실시간 특성 관리라고 합니다.

데이터 관리 프로필은 Weave의 업무 환경으로, 일반적으로 Weave Data Management (WDM)라고 합니다.

요청

요청 는 WDM의 실시간 특성 관리의 핵심 요소입니다. 요청은 예상된 특성과 함께 특성의 표준 작업 요청입니다. 이러한 특성은 스키마에서 정의되지 않으며 특성과도 관련이 없는 특성의 특성 명령과 다릅니다.

표준 요청에는 세 가지 유형이 있습니다.

  • 알림 표준 속성의 경우 속성 속성의 상태 또는 이러한 특성과 관련된 특정 이벤트의 구독자에게 알림을 전송합니다.
  • Update 특성 속성의 상태를 변경하는 표준 요청입니다.
  • View 특성의 속성을 보는 표준 요청.

프로토콜 역할

WDM 프로토콜 역할에는 게시자와 구독자라는 두 가지 유형이 있습니다. 이러한 역할은 특성 수준에서 할당됩니다.

게시자

WDM 게시자 역할은 하나 이상의 스키마에 버전이 지정된 인스턴스를 생성하여 한 명 이상의 구독자에게 제공하고 스키마의 변경사항에 대한 알림을 관심 있는 구독자에게 전송합니다. 이러한 알림은 알림 표준 요청입니다.

예를 들어 Trait A가 리소스 1에서 게시되고 리소스 2에서 구독된다고 가정해 보겠습니다. 그림 1과 같이 속성 A가 변경되면 다음 사항이 적용됩니다.

  1. WDM은 리소스 1에서 Trait A의 모든 구독자에게 알림 요청을 전송하여 변경사항을 알립니다.
  2. 각 구독자는 그에 따라 Trait A 인스턴스를 업데이트합니다.
WDM 게시자 알림 요청
그림 1 - WDM 게시자 요청

스키마의 다른 특성에서도 같은 일이 발생합니다. 예를 들어 리소스 2가 특성 B를 게시하면 리소스 1은 속성 B를 구독하고 속성 B를 변경합니다.

  1. WDM은 Resource 2의 모든 구독자에게 알림 을 요청하여 변경사항을 알립니다.
  2. 각 구독자는 그에 따라 Trait B 인스턴스를 업데이트합니다.

구독자

WDM 구독자 역할은 외부에 게시된 스키마 중 하나 이상의 버전이 지정된 인스턴스를 보고 사용합니다. update 요청을 사용하여 게시된 스키마의 버전이 지정된 인스턴스를 변경하거나 애플리케이션별 명령어를 실행할 수 있습니다.

예를 들어 리소스 2가 리소스 1에 의해 게시된 속성 A를 변경하려 한다고 가정해 보겠습니다. 그림 2와 같이 특성 A를 변경하려면 다음 안내를 따르세요.

  1. WDM은 리소스 2에서 리소스 1로 업데이트 요청 을 전송하여 Trait A의 변경을 요청합니다.
  2. 리소스 1의 특성 A가 변경되었습니다.
  3. WDM은 리소스 1에서 Trait A의 모든 구독자에게 알림 요청을 전송하여 변경사항을 알립니다.
  4. 각 구독자는 그에 따라 Trait A 인스턴스를 업데이트합니다.
WDM 구독자 보기 및 업데이트
그림 2 - WDM 구독자 요청

구독자는 또한 조회 요청 을 특성 게시자에게 전송하여 이 특성의 속성 를 확인하고 특성의 자체 인스턴스를 게시자와 동기화 상태로 유지할 수 있습니다.

가입 유형

WDM 구독에는 두 가지 유형이 있습니다. 구독은 구독 요청으로 설정됩니다. 그림 3은 단방향 구독을 설정하는 기본적인 메시지 흐름을 보여 줍니다.

WDM 단방향 구독
그림 3 - WDM 단방향 구독

편도

단방향 구독에는 하나 이상의 특성 인스턴스에 대한 구독자의 요청이 포함됩니다. 예를 들어 휴대기기가 서비스에서 집 (구조)의 상태를 검색합니다.

상호

상호 구독은 리소스가 서로 구독하는 역할을 하며 각 구독이 게시자 및 구독자 역할을 모두 합니다. 이러한 예로는 Nest Secure 시스템의 일부인 Nest Guard와 Nest 감지를 들 수 있습니다. 상호 정기 결제를 통해 두 리소스는 모두 게시된 스키마를 관리하고 정기 결제 상태 및 활성 상태를 2개의 단방향 정기 결제보다 보다 효율적으로 유지할 수 있습니다.

WDM이 모바일 앱을 사용하여 기기의 언어 변경을 처리하는 간단한 예를 살펴보겠습니다.

이 그림에는 그림 4와 같이 3개의 리소스와 2개의 특성이 있습니다.

  • 기기 (구독자)
  • 서비스 (게시자)
  • 모바일 앱 (구독자)
  • 언어 기능 사용 가능한 언어 속성
  • 언어 설정 특성 활성 언어 속성

두 특성 모두 서비스 리소스에서 게시하고 기기 및 모바일 앱 리소스를 통해 구독됩니다. 각 구독자는 서비스 리소스의 특성 게시자에 대한 단방향 구독으로 작동합니다.

이 예시의 모든 리소스는 동일한 Weave 패브릭 의 일부입니다.

WDM 예
그림 4 - WDM 예

업데이트 흐름

사용자가 연결된 모바일 앱을 사용하여 모바일 앱을 사용하여 기기 언어를 en_US에서 fr_FR로 변경한다고 가정해 보겠습니다. 그림 5와 같이 WDM 내의 업데이트 흐름은 다음과 같습니다.

  1. 모바일 앱 리소스 (구독자)는 서비스 리소스 (게시자)에게 업데이트 요청 을 전송하여 언어 설정 특성의 활성 언어 속성을 fr_FR로 변경합니다.
  2. 서비스 리소스는 스키마 사본에서 언어 설정 특성의 활성 언어 속성을 변경합니다.
  3. 서비스 리소스는 언어 설정 특성의 모든 구독자에게 변경사항에 관한 알림 요청 을 보냅니다.
  4. 기기 및 모바일 앱 리소스 (구독자)는 모두 서비스 리소스를 수신하고 알림 을 수신하고 스키마 사본에서 언어 설정 특성의 활성 언어 속성을 업데이트합니다.
WDM 업데이트 흐름 순서
그림 5 - WDM 업데이트 흐름

WDM의 이점

모바일 앱에서 기기의 언어를 변경하는 것만으로도 매우 복잡할 수 있습니다. 그러나 버전이 지정된 스키마, 게시-구독 패턴, 요청을 WDM 프로필에 래핑하면 Weave는 모든 리소스에서 데이터 무결성을 보장할 수 있습니다.

이 도구는 또한 활성 상태를 보장하므로 기기가 다시 시작될 때 게시된 특성의 상태를 모든 구독자에게 즉시 알리고, 등록된 특성의 상태를 관찰하며, 모든 기능을 기능 손실 없이 스키마 사본에 반영합니다.

정기 결제 이외

리소스가 특정 속성 구독을 취소하는 경우 마지막으로 알려진 특성의 복사본을 보관합니다. 더 이상 이 특성의 게시자로부터 알림 요청 을 받지 않지만, 이 게시자에게 업데이트 요청 을 계속 보낼 수 있습니다.

특성 게시자를 구독한 적이 없는 리소스도 요청을 보낼 수 있습니다. 예를 들어 리소스는 속성 상태를 알 필요가 없지만 외부 이벤트에 대한 응답으로 특성 상태를 변경하도록 update 요청을 전송해야 할 수 있습니다.

요약

학습한 내용:

  • WDM (Weave Data Management) 는 실시간 특성 관리를 위한 Weave 프로필이며 모든 리소스에서 활성 및 데이터 무결성을 보장합니다.
  • 요청은 예상 응답과 함께 특성 작업을 위한 표준 요청입니다.
  • WDM에는 두 가지 프로토콜 역할이 있습니다.
    • 게시자 - 특정 특성의 정보 소스로서 알림을 요청하며
    • 구독자 — 게시된 스키마를 관찰하고, 보기 , 업데이트, , 명령어 요청을 보냅니다.
  • WDM에는 두 가지 정기 결제 모델이 있습니다.
    • 단방향 — 구독자에서 게시자로 전송되는 요청 흐름
    • 상호 - 기기가 서로 구독합니다.
  • 구독은 구독 요청에 따라 설정됩니다.
  • 구독하지 않은 리소스도 특성에 WDM 메시지를 보낼 수 있습니다.

자세한 내용은 다음을 참고하세요.