Merancang Kelas Managed Object Format (MOF)

Penyedia WMI terdiri dari file Managed Object Format (MOF) dan file DLL. File MOF mendefinisikan kelas tempat implementasi penyedia memasok data.

Definisi kelas MOF dikompilasi oleh utilitasmofcompdan disimpan direpositori WMI, juga dikenal sebagai repositori Common Information Model (CIM). Cara yang kurang umum untuk membuat kelas adalah melalui metode COM API untuk WMI.

Nota

Untuk memastikan bahwa semua definisi kelas WMI Anda untuk objek terkelola dipulihkan ke repositori WMI jika WMI mengalami kegagalan dan memulai ulang, gunakan instruksi #pragma autorecover preprocessor dalam file MOF Anda.

 

Bagian berikut dibahas dalam topik ini:

Menentukan Objek yang Akan Dikelola

Setelah Anda mengidentifikasi bagian perusahaan Anda untuk dikelola, tentukan objek yang akan dikelola. Definisi harus menyertakan data yang diperlukan, dan memungkinkan Anda menerapkan aturan bisnis yang relevan secara akurat. Anda dapat menentukan objek pada tingkat terperinci, tetapi yang terbaik adalah memutuskan antara tingkat detail yang terkandung dalam definisi, dan kebutuhan untuk memberikan detail yang cukup agar berguna. Pintasan di awal proses dapat menghemat waktu, tetapi dapat menyebabkan lebih banyak pekerjaan di masa depan.

Tutorial CIM di situs web Distributed Management Task Force (DMTF) berisi informasi yang sangat baik tentang proses desain. Untuk informasi selengkapnya, lihat www.dmtf.org.

Pertimbangkan faktor-faktor berikut saat Anda mengembangkan dan menerapkan desain skema:

  • Kualifikasi

    Kualifikasi menyediakan informasi tentang cara menjelaskan kelas, objek, properti, metode, dan parameter; dan diterapkan ke definisi kelas dan properti. Dalam kode MOF, pengualifikasi diapit dalam kurung siku dan dapat mencakup [kunci] atau [asosiasi]. Untuk informasi selengkapnya, lihat Menambahkan Kualifikasi dan Kualifikasi WMI.

  • Namespace

    Namespace adalah unit logis untuk mengelompokkan kelas dan objek, serta mengontrol cakupan dan visibilitas. Biasanya, namespace berisi sekumpulan kelas dan objek yang mewakili objek terkelola di lingkungan tertentu. Untuk informasi selengkapnya, lihat Membuat Hierarki Dalam WMI.

  • Benda

    Objek yang dimodelkan mungkin merupakan elemen fisik atau logis dari skema. Misalnya, Anda dapat memodelkan drive disk fisik seperti hard disk drive, atau disk logis yang dapat menjadi partisi pada disk fisik. Desain yang menggunakan kelas untuk memodelkan sebuah drive disk fisik, lalu memperluas kelas itu untuk menjadikan sebuah disk logis, lebih mudah diperluas dibandingkan dengan desain yang mencoba membuat kelas terpisah untuk setiap jenis disk.

  • Data

    Data mungkin dinamis atau statis. Jika data bersifat dinamis, Anda harus membuat penyedia kelas untuk data tersebut.

    Untuk memungkinkan pengguna mengubah data, Anda harus menentukan apakah Anda ingin properti dapat ditulis secara langsung atau dapat diubah hanya dengan menggunakan metode yang dipanggil pengguna.

Menentukan Properti atau Metode

Umumnya, properti kelas WMI mirip dengan properti di kelas C++. Jika satu-satunya tindakan yang diterapkan kode Anda untuk bagian data adalah mendapatkan nilai atau mengatur nilai, maka data harus didefinisikan sebagai properti kelas WMI.

Metode WMI umumnya melakukan tindakan yang mengubah status objek terkelola. Misalnya, jika tindakannya adalah mengaktifkan atau menonaktifkan operasi objek perangkat keras, maka metode mungkin lebih baik untuk membuat properti baca/tulis. Anda juga dapat memutuskan untuk membuat properti yang menampilkan status perangkat keras.

Saat membuat kelas atau instans, Anda dapat menyertakan komentar. Gunakan teknik ini untuk mendokumen kelas Anda atau menjelaskan teknik pemrograman Anda. Untuk informasi selengkapnya, lihat Membuat Komentar. Selain itu, Anda dapat menambahkan data untuk memenuhi syarat tujuan objek data. Untuk informasi lebih lanjut, lihat Menambahkan Kualifikator.

Menghubungkan Objek satu sama lain

Ada dua cara untuk menghubungkan objek satu sama lain: dengan membuat objek terpisah dan objek asosiasi yang berkaitan dengannya, atau dengan menyematkan satu objek di objek lainnya. CIM tidak mendukung objek yang disematkan, jadi agar sesuai dengan CIM, Anda harus menggunakan metode pertama. Namun, WMI mendukung objek yang disematkan, jadi gunakan salah satu metode untuk mewakili hubungan antar objek. Anda dapat menemukan contoh objek yang disematkan di kelas Win32. Misalnya, Win32_SecurityDescriptor memiliki objek yang disematkan Win32_ACE, yang memiliki objek tersemat lain, Win32_Trustee.

Pertimbangkan hal berikut saat memutuskan cara mewakili hubungan antar objek:

Mengembangkan Penyedia WMI

Menyediakan Data ke WMI

Jenis Data MOF