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 i 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 consiste nell'usare 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 del preprocessore di salvataggio automatico #pragma nel file MOF.

 

In questo argomento vengono illustrate le sezioni seguenti:

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 l'implementazione accurata delle regole business pertinenti. È possibile definire oggetti a livello granulare, ma è preferibile decidere tra il livello di dettaglio contenuto nella definizione e la necessità di fornire dettagli sufficienti per essere utili. I tasti di scelta rapida all'inizio del processo possono risparmiare tempo, ma potrebbero causare un maggior numero di operazioni 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.

Quando si sviluppa e implementa una progettazione dello schema, tenere presenti i fattori seguenti:

  • 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 qualificatori 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 può essere un elemento fisico o logico dello schema. Ad esempio, è possibile modellare un'unità disco fisico, ad esempio un'unità 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 fisica e quindi estende tale classe per modellare un disco logico è più estendibile di una classe che tenta di creare una classe separata per ogni tipo di disco.

  • Dati

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

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

Definizione di proprietà o metodi

In genere, una proprietà della 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 alla creazione di una proprietà di lettura/scrittura. È anche possibile decidere di creare una proprietà che visualizzi 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. È anche possibile aggiungere dati per qualificare lo scopo di un oggetto dati. Per altre informazioni, vedere Aggiunta di un qualificatore.

Correlazione di oggetti tra loro

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 gli oggetti incorporati, quindi per essere conforme a CIM è necessario usare il primo metodo. WMI supporta tuttavia gli oggetti incorporati, quindi 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.

Quando si decide come rappresentare le relazioni tra oggetti, tenere presente quanto segue:

Sviluppo di un provider WMI

Fornire dati a WMI

Tipi di dati MOF