Menentukan Status Pendorongan atau Penarikan

Anda dapat memodelkan penyedia kelas sebagai penyedia pendorongan atau penarikan, yang menentukan bagaimana penyedia berharap untuk berinteraksi dengan WMI. Penyedia pull menerima permintaan dari WMI dan memenuhi permintaan baik dengan menghasilkan data secara dinamis atau mengambilnya dari cache lokal. Penyedia penarikan juga harus mengimplementasikan sejumlah besar antarmuka.

Penyedia penarikan menghasilkan definisi kelas secara dinamis. Biasanya, data yang dikelola oleh penyedia penarikan sering berubah, mengharuskan penyedia untuk menghasilkan kelas secara dinamis atau mengambil kelas dari cache lokal setiap kali aplikasi mengeluarkan permintaan. Penyedia penarikan harus menerapkan mekanisme pengambilan data, cache, dan pemberitahuan peristiwanya sendiri. Karena sebagian besar penyedia adalah penyedia penarikan, dokumentasi dalam file ini mengasumsikan Anda sedang membangun penyedia penarikan kecuali dinyatakan sebaliknya secara eksplisit.

Sebaliknya, WMI menggunakan data di repositori WMI untuk menangani semua permintaan aplikasi untuk penyedia push. Penyedia pendorongan juga menggunakan metode antarmuka yang lebih sedikit, dan dengan demikian lebih mudah diterapkan. Penyedia push menggunakan repositori WMI sebagai area penyimpanan untuk informasi tentang objek terkelola, dan memperbarui informasi tersebut hanya selama inisialisasi. Misalnya, penyedia kelas WDM yang disertakan di bagian WMI dari Microsoft Windows Software Development Kit (SDK) dimodelkan sebagai penyedia push.

Dengan menggunakan repositori WMI sebagai area penyimpanan, penyedia pendorongan mendapatkan manfaat berikut atas penyedia penarikan:

  • Penyedia tidak perlu menerapkan cache lokal untuk menyimpan data.
  • Penyedia tidak perlu mendukung pengambilan data; sebagai gantinya, penyedia dapat mengandalkan WMI untuk memberikan dukungan pengambilan.
  • Ketika aplikasi meminta data yang disediakan oleh penyedia, WMI memenuhi permintaan tersebut.
  • Penyedia juga dapat mengandalkan WMI untuk mendukung pemberitahuan peristiwa.

Namun, karena penyedia push hanya diperbarui selama inisialisasi, setiap perubahan pada kelas mungkin tidak tercermin dalam repositori WMI selama beberapa waktu. Oleh karena itu, model penyedia pendorongan berfungsi paling baik dengan kelas yang berubah sedikit atau tidak sama sekali statis.