<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Consulta con el equipo de Windows : providers</title><link>http://blogs.technet.com/plataformas/archive/tags/providers/default.aspx</link><description>Tags: providers</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Introducción a la solución de problemas de WMI</title><link>http://blogs.technet.com/plataformas/archive/2009/04/12/introducci-n-a-la-soluci-n-de-problemas-de-wmi.aspx</link><pubDate>Sun, 12 Apr 2009 22:34:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3225601</guid><dc:creator>esplat</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/plataformas/comments/3225601.aspx</comments><wfw:commentRss>http://blogs.technet.com/plataformas/commentrss.aspx?PostID=3225601</wfw:commentRss><description>&lt;P&gt;Últimamente en nuestro equipo de soporte hemos estado recibiendo muchas consultas y problemas relacionados con WMI. Dado que este componente está siendo utilizado últimamente por varias aplicaciones y cada vez lo será más, creo que va a ser de mucha utilidad para todos la siguiente serie de posts que les presento.&lt;/P&gt;
&lt;P&gt;Estarán divididos dado que es mucho material para un solo post.&lt;/P&gt;
&lt;P&gt;Cubriremos:&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Arquitectura Básica de WMI&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Accediendo al repositorio WMI&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Pasos Básicos de Troubleshoot de WMI&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Troubleshoot de Problemas de Performance de WMI&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;Hoy comenzaremos con los aspectos básicos de la arquitectura de WMI&lt;/P&gt;
&lt;P&gt;Que es el WMI? WMI es un sistema basado en el standard Web-based Enterprise Management (WBEM). Con el podemos acceder a gran cantidad de información almacenada en nuestro sistema operativo Windows. Este acceso a esta información puede ser realizado mediante scripts, .Net (clase system.management) o por líneas de comando.&lt;/P&gt;
&lt;P&gt;Podemos dividir la arquitectura de WMI de la siguiente forma:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i.msdn.microsoft.com/Aa394553.wmi_architecture(en-us,VS.85).png" width=514 height=430 mce_src="http://i.msdn.microsoft.com/Aa394553.wmi_architecture(en-us,VS.85).png"&gt; &lt;/P&gt;
&lt;P&gt;Como vemos en el punto 2, la estructura de WMI está dividida en 2, el servicio de WMI (winmgmt) y el Repositorio.&lt;/P&gt;
&lt;P&gt;El repositorio usa namespace que contienen a su vez sub-namespaces y estos están ordenados en una jerarquía de objetos. Las aplicaciones se conectan primero a un namespace y luego a través de ese namespace puede acceder a los objetos.&lt;/P&gt;
&lt;P&gt;El comienzo de estos namespace esta dado desde &lt;I&gt;ROOT/&lt;/I&gt; Luego al iniciar el servicio de WMI se crean namespaces como &lt;I&gt;ROOT/DEFAULT&lt;/I&gt; &lt;I&gt;ROOT/CIMV2&lt;/I&gt; . Como vemos en el grafico, el servicio de WMI es el intermediario entre los Providers, las aplicaciones y el repositorio. &lt;/P&gt;
&lt;P&gt;Este repositorio aloja información estática de objetos como las clases definidas por los objetos y toda esta información obtenida de los providers cuando el cliente lo requiere.&lt;/P&gt;
&lt;P&gt;Un Provider es un objeto COM que controla los objetos de WMI. Este objeto es un componente que puede ser un disco rigido, una tarjeta de red o un servicio. El Provider entrega al WMI la información sobre el objeto y controla los mensajes de los mismos.&lt;/P&gt;
&lt;P&gt;Los Providers son una DLL y un fichero Managed Object Format (MOF) que define las clases para el Provider. Los Providers son clasificados por el WMI de acuerdo a lo que realiza el provider. 
&lt;TABLE border=1 cellSpacing=1 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=150&gt;
&lt;P&gt;&lt;B&gt;Clasificaciones&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=492&gt;
&lt;P&gt;&lt;B&gt;Descripción&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=153&gt;
&lt;P&gt;Clase&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=489&gt;
&lt;P&gt;Puede entregar, modificar, eliminar y listar una clase especifica. También soporta las queries realizadas. Por ejemplo el Directorio Activo es un ejemplo de un servicio que también entrega clases.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=156&gt;
&lt;P&gt;Instancia&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=487&gt;
&lt;P&gt;Puede entregar, modificar, eliminar y listar una instancia especifica. Una instancia representa a un objeto. También soporta que se le realicen queries.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=158&gt;
&lt;P&gt;Propiedad&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=485&gt;
&lt;P&gt;Puede entregar y modificar los valores de las propiedades de los objetos.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=160&gt;
&lt;P&gt;Metodo&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=483&gt;
&lt;P&gt;Métodos específicos para clases de un provider.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=162&gt;
&lt;P&gt;Evento&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=482&gt;
&lt;P&gt;Genera eventos de notificaciones.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=163&gt;
&lt;P&gt;“Event Consumer”&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=481&gt;
&lt;P&gt;Crea una relación entre el objeto físico y el objeto lógico para poder crear la notificaciones de eventos.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;Por último, debemos hablar de Common Information Model (CIM) y de los ficheros Managed Object Format (MOF). &lt;/P&gt;
&lt;P&gt;CIM es un modelo para lenguajes orientados a objetos como C++ y Java. Los desarrolladores de WMI escriben sus clases en lenguaje MOF, una vez que estas clases están estructuradas en MOF, los desarrolladores pueden dar definiciones a las clases.&lt;/P&gt;
&lt;P&gt;Esto se hace compilando un fichero MOF en un binario (BMF) e introduciéndola dentro del Windows Driver Model (WDM).&lt;/P&gt;
&lt;P&gt;Los Providers se pueden compilar también en MOF y utilizar las APIs de WMI COM para crear la estructura de WMI con sus definiciones.&lt;/P&gt;
&lt;P&gt;Finalmente, los Providers pueden usar un compilador MOF (mofcomp.exe) para agregar las clases al repositorio WMI.&lt;/P&gt;
&lt;P&gt;Nos vemos en el próximo post&lt;/P&gt;
&lt;P&gt;Saludos&lt;/P&gt;
&lt;P&gt;Gastón Gardonio&lt;/P&gt;
&lt;P&gt;TAGs: WMI arquitectura, basico, providers&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3225601" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/plataformas/archive/tags/Core/default.aspx">Core</category><category domain="http://blogs.technet.com/plataformas/archive/tags/Server+2008/default.aspx">Server 2008</category><category domain="http://blogs.technet.com/plataformas/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.technet.com/plataformas/archive/tags/WMI/default.aspx">WMI</category><category domain="http://blogs.technet.com/plataformas/archive/tags/providers/default.aspx">providers</category></item></channel></rss>