Sdílet prostřednictvím


Určení stavu push nebo pull

Můžete modelovat poskytovatele třídy jako push nebo pull poskytovatele, což určuje, jak poskytovatel očekává interakci s rozhraním WMI (Windows Management Instrumentation). Poskytovatelé dotazování obdrží žádost od WMI a splní požadavek buď dynamickým generováním dat, nebo jejich načtením z místní mezipaměti. Poskytovatelé přetahovaných dat také musí implementovat velký počet rozhraní.

"Pull zprostředkovatel generuje definice tříd dynamicky." Data spravovaná poskytovatelem vyžádané služby se často mění, což vyžaduje, aby poskytovatel buď dynamicky vygeneroval třídu, nebo načetl třídu z místní mezipaměti pokaždé, když aplikace vydá požadavek. Poskytovatel pull musí implementovat vlastní mechanismy načítání dat, ukládání do vyrovnávací paměti a oznamování událostí. Vzhledem k tomu, že většina poskytovatelů jsou poskytovatelé požadavků, se v dokumentaci v tomto souboru předpokládá, že stavíte poskytovatele požadavků, pokud není výslovně uvedeno jinak.

Rozhraní WMI naproti tomu používá data v úložišti WMI ke zpracování všech žádostí aplikací pro poskytovatele push oznámení. Poskytovatelé push oznámení také používají méně metod rozhraní, a proto je jejich implementace snadnější. Poskytovatel nabízených oznámení používá úložiště WMI jako oblast úložiště pro informace o spravovaném objektu a aktualizuje tyto informace pouze během inicializace. Například zprostředkovatel třídy WDM zahrnutý v části WMI sady Microsoft Windows Software Development Kit (SDK) je modelován jako push poskytovatel.

Pokud použijete úložiště WMI jako oblast úložiště, poskytovatel push oznámení získá následující výhody oproti poskytovateli pull oznámení:

  • Poskytovatel nemusí implementovat místní mezipaměť pro ukládání dat.
  • Poskytovatel nemusí podporovat načítání dat; Místo toho může poskytovatel spoléhat na rozhraní WMI, aby poskytoval podporu načítání.
  • Když aplikace požaduje data poskytnutá poskytovatelem, služba WMI tento požadavek splní.
  • Poskytovatel může také spoléhat na rozhraní WMI, aby podporoval oznámení o událostech.

Jelikož poskytovatel aktualizací provádí aktualizace pouze během inicializace, nemusí se změny ve třídě nějakou dobu projevit v úložišti WMI. Model poskytovatele notifikací proto funguje nejlépe s třídami, které se příliš nemění nebo jsou zcela statické.