Progettazione di classi MOF (Managed Object Format)

Un provider WMI è costituito da un file MOF (Managed Object Format) e da un file DLL. Il file MOF definisce le classi per cui l'implementazione del provider fornisce dati.

Le definizioni di classe MOF vengono compilate dall'utilità mofcomp e archiviate nel repository WMI, note anche come repository COMMON Information Model (CIM). Un modo meno comune per creare classi è tramite i metodi dell'API COM per WMI.

Nota

Per assicurarsi che tutte le definizioni di classe WMI per gli oggetti gestiti vengano ripristinate nel repository WMI se WMI ha un errore e viene riavviato, usare l'istruzione #pragma preprocessore di autorecover nel file MOF.

 

Le sezioni seguenti sono illustrate in questo argomento:

Definizione degli oggetti da gestire

Dopo aver identificato la parte dell'organizzazione da gestire, definire gli oggetti da gestire. La definizione deve includere i dati necessari e consentire di implementare le regole aziendali pertinenti in modo accurato. È possibile definire oggetti a livello granulare, ma è consigliabile decidere tra il livello di dettaglio contenuto nella definizione e la necessità di fornire dettagli sufficienti per essere utili. I collegamenti all'inizio del processo possono risparmiare tempo, ma potrebbero causare più lavoro in futuro.

L'esercitazione CIM nel sito Web DMTF (Distributed Management Task Force) contiene informazioni eccellenti sul processo di progettazione. Per altre informazioni, vedere www.dmtf.org.

Prendere in considerazione i fattori seguenti quando si sviluppa e si implementa una progettazione dello schema:

  • Qualificatori

    I qualificatori forniscono informazioni su come descrivere classi, oggetti, proprietà, metodi e parametri; e vengono applicati alle definizioni di classe e proprietà. Nel codice MOF i qualificatori sono racchiusi tra parentesi quadre e possono includere [key] o [association]. Per altre informazioni, vedere Aggiunta di un qualificatore e qualificatore WMI.

  • Spazio dei nomi

    Uno spazio dei nomi è un'unità logica per raggruppare classi e oggetti e controllare l'ambito e la visibilità. In genere, uno spazio dei nomi contiene un set di classi e oggetti che rappresentano oggetti gestiti in un ambiente specifico. Per altre informazioni, vedere Creazione di gerarchie all'interno di WMI.

  • Oggetto

    Un oggetto modellato potrebbe essere un elemento fisico o logico dello schema. Ad esempio, è possibile modellare un'unità disco fisico, ad esempio un disco rigido o un disco logico che può essere una partizione in un disco fisico. Una progettazione che usa una classe per modellare un'unità disco fisico e quindi estende tale classe al modello di un disco logico è più estendibile di una classe che tenta di creare una classe separata per ogni tipo di disco.

  • Data

    I dati possono essere dinamici o statici. Se i dati sono dinamici, è necessario creare un provider di classi.

    Per consentire all'utente di modificare i dati, è necessario determinare se si vuole che una proprietà sia direttamente scrivibile o modificabile solo usando un metodo che l'utente chiama.

Definizione di proprietà o metodi

In genere, una proprietà di classe WMI è simile a una proprietà in una classe C++. Se l'unica azione implementata dal codice per la parte di dati consiste nel ottenere il valore o impostare il valore, i dati devono essere definiti come proprietà della classe WMI.

Un metodo WMI esegue in genere un'azione che modifica lo stato di un oggetto gestito. Ad esempio, se l'azione consiste nell'abilitare o disabilitare l'operazione di un oggetto hardware, un metodo è probabilmente preferibile per la creazione di una proprietà di lettura/scrittura. È anche possibile decidere di creare una proprietà che visualizza lo stato dell'hardware.

Quando si crea una classe o un'istanza, è possibile includere commenti. Usare questa tecnica per documentare la classe o spiegare le tecniche di programmazione. Per altre informazioni, vedere Creazione di un commento. È inoltre possibile aggiungere dati per qualificare lo scopo di un oggetto dati. Per altre informazioni, vedere Aggiunta di un qualificatore.

Correlare gli oggetti a vicenda

Esistono due modi per correlare gli oggetti tra loro: creando oggetti separati e un oggetto di associazione che li correla o incorporando un oggetto nell'altro. CIM non supporta oggetti incorporati, quindi è necessario usare il primo metodo. WMI supporta tuttavia oggetti incorporati in modo da usare entrambi i metodi per rappresentare una relazione tra oggetti. È possibile trovare esempi di oggetti incorporati nelle classi Win32. Ad esempio, Win32_SecurityDescriptor ha l'oggetto incorporato Win32_ACE, che ha un altro oggetto incorporato, Win32_Trustee.

Si consideri quanto segue quando si decide come rappresentare le relazioni tra oggetti:

Sviluppo di un provider WMI

Fornire dati a WMI

Tipi di dati MOF