업데이트를 받으려면 HTTP 클라이언트는 반드시 수동으로 폴해야 합니다. HTTP는 이벤트 발생 또는 변경을 HTTP 클라이언트에게 알리는데 사용하는 서버 Push 메소드를 제공하지 않습니다. 폴 수행 시 불필요한 트래픽을 감소하기 위해 OData는 변경 또는 추가된 아이템만 반환하는 $deltatoken 파라미터를 제공합니다.

VariableValueGroups 그룹에서 $deltatoken 파라미터는 마지막 요청 이후 변경되지 않은 변수값을 건너뛰고 업데이트된 변수값만 제공합니다.

이 과정은 다음과 같은 방법으로 작동합니다:

우선, HTTP 클라이언트는 그룹의 변수값 프로퍼티를 읽습니다.

GET http://my_server:3580/nivariable/VariableValueGroups('1587dcd4a87d118ae3ddd0fce09246f6')/VariableValues?$format=json

HTTP 클라이언트가 초기 데이터 세트를 받습니다. HTTP 클라이언트는 _delta 프로퍼티가 제공한 다음 URI를 사용하여 델타 변경을 요청하며, 이 때 변수값 의 타임스탬프는 $deltatoken입니다.

GET http://my_server:3580/nivariable/VariableValueGroups('1587dcd4a87d118ae3ddd0fce09246f6')/VariableValues?$format=json&$deltatoken=1305692428170

이전 GET에서 아무 것도 변경되지 않은 경우, 결과는 비어있습니다. 변경사항을 얻으려면 마지막 응답에서 지정된 델타 URI를 따릅니다.

GET http://my_server:3580/nivariable/VariableValueGroups('1587dcd4a87d118ae3ddd0fce09246f6')/VariableValues?$format=json&$deltatoken=1305692428170

노트 변경되지 않은 델타값을 요청해도 HTTP 클라이언트에 에러가 발생하지 않습니다.

외부 I/O 또는 다른 공유에 연결된 변수를 정해진 주기 안에 폴하기

공유 변수가 외부 I/O 또는 다른 공유 변수에 연결된 경우, 값은 deltatoken 토큰보다 오래된 타임스탬프를 기준으로 업데이트됩니다. 예를 들어, 시간 t에서 델타 변경을 요청하고 값이 t+1에서 새로 변경되지만 이때 기준이 되는 타임스탬프는 t-1입니다. 다음에 또 델타 변경을 얻을 때 서버는 t-1 타임스탬프를 새 값으로 간주하지 않습니다. 이 문제를 방지하려면 $delta 링크를 사용하는 대신 정해진 주기 안에 변수값을 폴하십시오.