푸시 또는 풀 상태 결정
클래스 공급자를 푸시 또는 풀 공급자로 모델링할 수 있습니다. 이 공급자는 WMI와 상호 작용하는 방법을 지정합니다. 풀 공급자는 WMI에서 요청을 수신하고 데이터를 동적으로 생성하거나 로컬 캐시에서 검색하여 요청을 충족합니다. 또한 풀 공급자는 많은 수의 인터페이스를 구현해야 합니다.
풀 공급자는 클래스 정의를 동적으로 생성합니다. 일반적으로 풀 공급자가 관리하는 데이터는 자주 변경되어 응용 프로그램이 요청을 발급할 때마다 공급자가 클래스를 동적으로 생성하거나 로컬 캐시에서 클래스를 검색해야 합니다. 풀 공급자는 자체 데이터 검색, 캐시 및 이벤트 알림 메커니즘을 구현해야 합니다. 대부분의 공급자는 풀 공급자이므로 이 파일의 설명서에서는 달리 명시하지 않는 한 풀 공급자를 빌드한다고 가정합니다.
반면 WMI는 WMI 리포지토리의 데이터를 사용하여 푸시 공급자에 대한 모든 응용 프로그램 요청을 처리합니다. 또한 푸시 공급자는 더 적은 수의 인터페이스 메서드를 사용하므로 구현이 더 쉽습니다. 푸시 공급자는 관리되는 개체에 대한 정보를 위해 WMI 리포지토리를 스토리지 영역으로 사용하고 초기화 중에만 해당 정보를 업데이트합니다. 예를 들어 Microsoft SDK(Windows Software Development Kit)의 WMI 섹션에 포함된 WDM 클래스 공급자는 푸시 공급자로 모델링됩니다.
WMI 리포지토리를 스토리지 영역으로 사용하면 푸시 공급자는 풀 공급자에 비해 다음과 같은 이점을 얻을 수 있습니다.
- 공급자는 데이터를 저장하기 위해 로컬 캐시를 구현할 필요가 없습니다.
- 공급자는 데이터 검색을 지원할 필요가 없습니다. 대신 공급자는 WMI를 사용해 검색을 지원할 수 있습니다.
- 응용 프로그램이 공급자가 제공한 데이터를 요청하면 WMI는 해당 요청을 처리합니다.
- 공급자는 WMI를 사용해 이벤트 알림을 지원할 수도 있습니다.
그러나 푸시 공급자는 초기화 중에만 업데이트되므로 클래스에 대한 변경 내용은 WMI 리포지토리에 한동안 반영되지 않을 수 있습니다. 따라서 푸시 공급자 모델은 거의 변경되지 않거나 완전히 정적인 클래스에서 가장 잘 작동합니다.