Bestimmen von Push- oder Pullstatus

Sie können einen Klassenanbieter als Push- oder Pullanbieter modellieren, der angibt, wie ein Anbieter erwartet, mit WMI zu interagieren. Pullanbieter erhalten eine Anforderung von WMI und erfüllen die Anforderung entweder durch dynamisches Generieren der Daten oder abrufen sie aus einem lokalen Cache. Pullanbieter müssen auch eine große Anzahl von Schnittstellen implementieren.

Ein Pullanbieter generiert Klassendefinitionen dynamisch. In der Regel ändern sich die von einem Pullanbieter verwalteten Daten häufig, sodass der Anbieter entweder die Klasse dynamisch generieren oder die Klasse aus einem lokalen Cache abrufen muss, wenn eine Anwendung eine Anforderung ausgibt. Ein Pullanbieter muss eigene Datenabruf-, Cache- und Ereignisbenachrichtigungsmechanismen implementieren. Da es sich bei den meisten Anbietern um Pullanbieter handelt, wird in der Dokumentation in dieser Datei davon ausgegangen, dass Sie einen Pullanbieter erstellen, sofern nicht explizit anders angegeben.

Im Gegensatz dazu verwendet WMI Daten im WMI-Repository, um alle Anwendungsanforderungen für Pushanbieter zu verarbeiten. Pushanbieter verwenden auch weniger Schnittstellenmethoden und sind daher einfacher zu implementieren. Ein Pushanbieter verwendet das WMI-Repository als Speicherbereich für Informationen zum verwalteten Objekt und aktualisiert diese Informationen nur während der Initialisierung. Beispielsweise wird der WDM-Klassenanbieter, der im Abschnitt WMI des Microsoft Windows Software Development Kit (SDK) enthalten ist, als Pushanbieter modelliert.

Durch die Verwendung des WMI-Repositorys als Speicherbereich erhält ein Pushanbieter gegenüber einem Pullanbieter die folgenden Vorteile:

  • Der Anbieter muss keinen lokalen Cache zum Speichern von Daten implementieren.
  • Der Anbieter muss den Datenabruf nicht unterstützen. Stattdessen kann sich der Anbieter auf WMI verlassen, um Abrufunterstützung bereitzustellen.
  • Wenn eine Anwendung vom Anbieter bereitgestellte Daten anfordert, erfüllt WMI diese Anforderung.
  • Der Anbieter kann sich auch auf WMI verlassen, um Ereignisbenachrichtigungen zu unterstützen.

Da ein Pushanbieter jedoch nur während der Initialisierung aktualisiert wird, werden alle Änderungen an einer Klasse möglicherweise für einige Zeit nicht im WMI-Repository widerspiegelt. Daher funktioniert das Pushanbietermodell am besten mit Klassen, die sich wenig ändern oder völlig statisch sind.