Do que trata o artigo

O Windows Management Instrumentation, de maneira simples, é uma biblioteca de classes que tem como objetivo principal facilitar o gerenciamento de sistemas Windows. Através dele temos uma interface única para o gerenciamento dos mais variados recursos desses sistemas, eliminando a necessidade de soluções ad-hoc para cada tipo de recurso. E por ser uma implementação da Microsoft, se integra muito bem com o .NET Framework, o que facilita ainda mais o seu uso.


Para que serve

Através de uma interface única para o acesso a informações de gerenciamento, tanto de hardware como de software, o WMI possibilita a administração de sistemas de forma centralizada. É possível, por exemplo, disponibilizar métodos para operações de gerenciamento que podem também ser chamados através dessa interface. Neste artigo veremos não apenas como utilizar as informações disponibilizadas pela própria Microsoft, mas também como criar nossas próprias classes de gerenciamento.


Em que situação o tema é útil

O WMI possui diversos usos, seja para fornecer informações sobre suas próprias aplicações ou consultar informações sobre o hardware ou sistema operacional, possibilitando assim criar aplicações inteligentes que monitorem a infraestrutura de rede e as aplicações nela contidas. Além disso, é possível também criar provedores personalizados de forma a facilitar o gerenciamento da infraestrutura de suas próprias aplicações.

Resumo do DevMan

Primeiramente, veremos um pouco da teoria sobre o WMI, apresentando os padrões implementados e a arquitetura do mesmo, mostrando a estrutura e como o .NET framework fornece suporte a essa tecnologia. Em seguida partiremos para a parte prática, onde criaremos nosso próprio provider WMI e também uma aplicação web para consumir os dados disponibilizados pelo provider criado, além de mostrar algumas dicas e caminhos para o leitor que deseje se aprofundar mais no assunto.

Apesar de ser um componente nativo do Windows desde a versão 2000, o Windows Management Instrumentation não é comumente utilizado por desenvolvedores, sendo raro encontrar alguma aplicação que não seja de mercado que utilize as suas funcionalidades. É importante lembrar que apesar de não ser um componente nativo nas versões do Windows anteriores a 2000, é possível instalar o WMI nestas versões (a Microsoft disponibiliza para download gratuitamente - confira na seção de links mais adiante).

O WMI consiste basicamente em uma estrutura de objetos que são utilizados principalmente para automatizar as tarefas de gerenciamento de sistemas e/ou aplicações. Ele fornece suporte para a criação de scripts e aplicações para a automatização de tarefas de gerenciamento de computadores com o sistema operacional Windows instalado. Isso facilita e muito a vida dos desenvolvedores e analistas de suporte, pois eles têm um local único para acessar a informação em vez de precisar conhecer centenas de diferentes interfaces.

Neste artigo veremos como está estruturado o WMI e aprenderemos, através de um exemplo prático, a disponibilizar informações sobre nossas aplicações e utilizá-las para monitorar o seu funcionamento.

Um pouco de teoria

O WMI é a implementação Microsoft de uma interface padrão chamada WBEM (Web Based Enterprise Management). O WBEM consiste em um conjunto de padrões desenvolvidos com o intuito de unificar o gerenciamento de aplicações em diferentes ambientes, sendo um padrão da DTMF (Distributed Management Task Force – organização que tem como função definir padrão para o gerenciamento de sistemas). O principal objetivo do WMI é fornecer uma interface padrão para o gerenciamento remoto de aplicações e sistemas, evitando que a aplicação de gerenciamento precise conhecer detalhes específicos de cada aplicação sendo monitorada. Além disso, o fato de existir um único padrão de interface facilita o acesso a informações entre as próprias aplicações.

Para implementar o conceito de interface padrão é necessário algum tipo de notação que seja flexível o bastante para que os mais diversos tipos de aplicações possam utilizar. Para isso é utilizado o padrão CIM (Common Information Model), definido também pela DTMF. O objetivo do CIM é possibilitar a representação de entidades de uma maneira unificada. Portanto, é baseado no padrão CIM que as informações são trabalhadas dentro do WMI.

Arquitetura

A arquitetura do WMI (Figura 1) está dividida em basicamente três camadas: a primeira delas é o núcleo (WMI Core) que gerencia todas as informações disponibilizadas pelos provedores (representada na Figura 1 pelo número 2); a segunda e terceira camadas (WMI providers e WMI consumers) são compostas pelos clientes, com suas aplicações que efetivamente disponibilizam dados e/ou utilizam as informações disponibilizadas pelo WMI.

Figura 1. A arquitetura do WMI

Os Providers são basicamente extensões que sabem como acessar a informação que será acessada via WMI. O core do WMI, ao receber uma consulta, pergunta ao provider responsável por retornar aquela informação. Podemos fazer uma analogia com drivers de dispositivos, que têm a função de informar como o sistema operacional deve acessar e manipular o hardware.

...
Quer ler esse conteúdo completo? Tenha acesso completo