Sie sind auf Seite 1von 4

Seleccin de herramientas para realizar gestin basada en WBEM en la Red de Datos de la Universidad del Cauca

Guefry Agredo Mndez


Universidad del Cauca Popayn, Cauca, Colombia gagredo@unicauca.edu.co

Natalia Maya Ortiz


Universidad del Cauca Popayn, Cauca, Colombia nmaya@unicauca.edu.co

Eva Juliana Maya Ortiz


Universidad del Cauca Popayn, Cauca, Colombia emaya@unicauca.edu.co

Resumen El Proyecto sobre el que trata este documento, tiene por objetivo disear e implementar una aplicacin de gestin para estaciones de usuario con Interfaz Web, que sea portable, escalable, fcil de usar, econmica y se adapte a las necesidades de cualquier red. Esto se va a lograr a travs del uso de tecnologas estndar, tanto para la gestin de redes, como para el desarrollo de la aplicacin, como son respectivamente: la arquitectura de Gestin Empresarial Basada en Web WBEM (Web Based Enterprise Management) y el Modelo Genrico de Informacin CIM (Common Information Model), y la Plataforma de Desarrollo que ofrece Java. INTRODUCCIN Algunos de los estndares de gestin que estn siendo utilizados actualmente, aunque en diferentes reas, son SNMP (Simple Network Management Protocol) y CMIP (Common Management Information Protocol). SNMPv1 ha sido el ms difundido en el mundo de Internet, y CMIP ha estado intentando ganar aceptacin en el mundo de las Telecomunicaciones. SNMPv1 no ofrece seguridad y CMIP no ha tenido gran acogida debido a su complejidad. Adems, las diferentes versiones del mismo estndar pueden ser incompatibles, como es el caso de SNMPv1 y SNMPv3. Las desventajas de estos estndares han hecho surgir nuevas alternativas, que puedan representar todos los elementos de red posibles en un solo modelo de informacin y puedan unificar los estndares actuales. Un intento de alcanzar este objetivo es el estndar WBEM del DMTF (Distributed Management Task Force). Existen varias razones por las cuales WBEM ha tenido un gran impacto, y podra llegar a ser el estndar definitivo para la gestin de redes. La primera de ellas, es el apoyo que ha recibido de empresas lderes del sector de las telecomunicaciones como: 3COM, Cisco, Dell, Hewlett Packard, IBM/Tivoli, Intel, Microsoft, Sun, entre otras. La segunda razn por la que la popularidad de WBEM est creciendo, es el uso del modelo de informacin CIM. Con CIM se puede modelar cualquier objeto gestionable, en una forma estandarizada y fcil de entender. Esto hace que WBEM pueda ser aplicado en casi cualquier rea de gestin. Una tercera razn para creer en el futuro de WBEM, es que este estndar no intenta reemplazar los estndares actuales tales como SNMP, sino que coexiste con ellos y los complementa. ESTNDAR WBEM WBEM [1] es una iniciativa y una tecnologa. Como una iniciativa, WBEM incluye estndares para la gestin de sistemas, redes, usuarios, aplicaciones, bases de datos, dispositivos, eventos, entre otros, utilizando las

tecnologas de Internet. Como una tecnologa, WBEM proporciona una forma para que las aplicaciones de gestin compartan datos independientemente del vendedor, protocolo, sistema operativo o estndar de gestin. El DMTF [2] ha desarrollado un conjunto ncleo de estndares que componen a WBEM, el cual incluye un modelo de datos, el estndar CIM; una especificacin de codificacin, xmlCIM; y un mecanismo de transporte, Operaciones CIM sobre HTTP. Arquitectura WBEM WBEM est basado en un programa que corre sobre el sistema gestionado, llamado CIMOM (CIM Object Manager). El CIMOM es accedido por una aplicacin cliente que monitorea y controla el dispositivo gestionado. Para atender los requerimientos de la aplicacin cliente, el CIMOM usa proveedores, quienes son los que realmente realizan las tareas de gestin ya que ellos acceden los diferentes recursos. La Figura 1 muestra la arquitectura WBEM.

Figura 1. Arquitectura WBEM.

Implementaciones WBEM Actualmente existen pocas implementaciones de fuente abierta. Ellas difieren en el lenguaje de implementacin y el sistema operativo para el cual fueron hechas. Las ms conocidas son WBEMServices [3], Pegasus [4], OpenWBEM [5] y SNIA [6]. Todas ellas soportan los estndares xmlCIM y Operaciones CIM sobre HTTP, y proporcionan API cliente. De las implementaciones comerciales, la ms importante y conocida es WMI de Microsoft [7]. ESTUDIO DE ALTERNATIVAS Despus de estudiar las implementaciones WBEM nombradas anteriormente, la mejor opcin es WBEMServices de Sun Microsystems por utilizar Java

como lenguaje de implementacin y programacin, y por ser la ms completa y clara en la documentacin. Aunque solo proporciona proveedores especficos para Solaris, es posible desarrollar proveedores propios. Adems, puede ser considerada como una implementacin WBEM de referencia, y es utilizada por otras como SNIA y OpenWBEM. Adems, OpenWBEM no es soportada por equipos Windows (un aspecto esencial, teniendo en cuenta que la aplicacin es para estaciones de usuario, que son en su mayora Windows), y Pegasus est an en proceso de desarrollo. WMI viene incluido en los sistemas operativo Microsoft modernos, excepto en Windows 95 y 98, para los cuales se puede descargar sin ningn costo. Utiliza CIM como lenguaje de modelamiento, pero usa DCOM en lugar de operaciones CIM sobre HTTP. Sin embargo, la mayora de las operaciones son soportadas por DCOM. Proporciona varios proveedores especficos de Windows y tambin es posible desarrollar otros. Debido a que utiliza un protocolo propietario (DCOM), solo permite la comunicacin dentro de un entorno Windows, por lo que se pierde interoperabilidad. Por esto, para el desarrollo del Proyecto sobre el que trata este documento, se pens utilizar la API cliente de WBEMServices, con el fin de realizar la aplicacin en Java, y el CIMOM de WMI que ya viene instalado en los equipos Windows (excepto Windows 95 y 98). Sin embargo, es importante tener en cuenta que ya que el CIMOM de WMI no soporta requerimientos XML/HTTP, no se puede lograr la comunicacin entre ste y una aplicacin cliente realizada con el SDK de Sun (WBEMServices), que si soporta estos estndares. Prodexnet [8], una importante empresa en el sector de las telecomunicaciones, desarroll una solucin para que una aplicacin cliente desarrollada, ya sea con la API Cliente del SDK de SNIA o Sun, se comunique con el CIMOM WMI. Esta solucin consiste en un Wrapper WBEM/WMI y un proveedor proxy que se debe instalar solamente en el caso en el que la aplicacin est sobre un sistema no Windows. Esto demuestra la complejidad de una solucin de este tipo. Entonces, se pens utilizar el CIMOM y la API cliente de Sun para evitar estos problemas de comunicacin, pero esto tiene varios inconvenientes. Uno de ellos es la comunicacin entre el CIMOM de Sun y un proveedor de Windows, ya que la comunicacin entre CIMOM y proveedor an no est estandarizada por el DMTF. Para solucionar esto, se estudi la posibilidad de utilizar JNI como un puente de comunicacin entre el CIMOM de Sun y el proveedor de Windows, que consiste de un archivo .mof y una DLL. Esto implica un conocimiento profundo de la DLL y una programacin a bajo nivel. Adems, con esta solucin se debe instalar el CIMOM de Sun en cada una de las mquinas que van a ser gestionadas, algo no tan viable sobre una red. La plataforma .NET de Microsoft proporciona una nueva forma de programacin para la plataforma Windows, y una de las principales caractersticas es el soporte para XML, HTTP y otros protocolos relevantes. Adems,

WMI se expone a .NET a travs de la librera system.management. As que, mientras WMI no proporciona soporte para XML y HTTP, .NET si soporta estos dos estndares, y proporciona una forma de usar la API de WMI a travs de XML y Servicios Web. Adems el framework de .NET puede ser instalado en los equipos que lo requieran. Sin embargo esta solucin tambin tiene algunas desventajas, la primera de ellas es que .NET no es una plataforma muy difundida en la actualidad y sigue siendo muy cerrada, es decir la comunicacin se limita a entornos Windows. Hasta este punto, exista un conflicto entre el deseo de utilizar Java, que permite obtener aplicaciones portables y reducir enormemente los costos de desarrollo y despliegue, y la necesidad de utilizar la API de WMI, que adems de ser la ms apropiada y potente para gestionar estaciones de usuario Windows, es la nica que se puede comunicar con el CIMOM WMI, ya instalado en los equipos Windows de los que constan casi en su totalidad la mayora de las empresas en la actualidad (como la Universidad del Cauca). Para solucionar este problema se decidi utilizar un puente Java-COM [9], que permitiera manejar la API WMI desde Java. Existen herramientas gratis, como JACOB, Bridge Between Java and Windows, Jawin, Jcom, JWindows, etc., y otras comerciales, como J-Integra, R-JAX., WebLogic jCOM, jacoZoom, Java2COM, Bridge2Java, entre otras. Ya que se van a gestionar estaciones de trabajo de usuario que en su mayora tienen instalado el sistema operativo Windows, los puentes que se podran utilizar son: Jawin, R-JAX, Java2COM, xFuncion, Jacob, jacoZoom, Puente entre Java y Windows, y J-Integra. El puente escogido fue J-Integra. Los otros fueron descartados por las siguientes razones: Jawin, debido a que no soporta comunicaciones remotas, no permitira la gestin de equipos remotos. R-JAX, porque sera necesario instalar el Servidor RJAX en cada uno de los equipos que se van a gestionar, algo muy dispendioso en una red con un gran nmero de equipos. Java2COM, porque adems de no soportar comunicaciones remotas, est basado en COM que lo hace un poco complicado de utilizar. xFunction, ya que adems de no permitir comunicaciones remotas, tiene una documentacin no muy clara. Jacob, debido a que no tiene documentacin y no soporta comunicaciones remotas. JWindows, debido a que no permite comunicaciones remotas. jacoZoom, porque con este puente no se pueden comunicar objetos remotamente.

Puente entre Java y Windows, debido a que sera necesario instalar el programa que contiene el control ActiveX XYMessenger en cada uno de los equipos Windows a gestionar, algo que no es muy ptimo en una red de gran tamao. Por estas razones y porque J-Integra permite comunicaciones remotas a travs de DCOM, y debido a que con este puente no es necesario instalar ningn software especial en los equipos Windows, y tiene una documentacin muy clara y completa, J-Integra es la mejor eleccin para realizar la gestin de estaciones de trabajo de usuario utilizando WMI y Java. A continuacin se hace una descripcin ms detallada de WMI y el puente Java-COM J-Integra, que fueron las herramientas seleccionas para el desarrollo del proyecto. WMI La comunicacin entre el CIMOM y los clientes se puede hacer a travs de las siguientes formas [10]: API COM, que puede ser accedida desde C y C++. API Scripting, que puede ser accedida desde Visual Basic, JScript, Perl, o cualquier otro lenguaje scripting soportado por Windows. Internet Explorer y ASPs (Active Server Pages), que pueden almacenar scripts WMI. Adaptador ODBC de WMI, que proporciona una API estndar que permite a las aplicaciones basadas en ODBC usar los datos CIM como si ellos estuvieran en una base de datos. Interfaces ADSI, las aplicaciones de servicios directorio pueden usar la extensin ADSI (WMI Active Service Directory) para integrar los servicios de directorio y los datos de gestin. WMI tiene diferentes proveedores [11], algunos de los ms importantes son: Proveedor Win32, Proveedor SNMP, Proveedor de Registro del Sistema, Proveedor de Registro de Eventos, Proveedor de Directorio Activo, Proveedor WDM y Proveedor Instalador de Windows. Adems de usar los proveedores estndar, un desarrollador puede crear uno propio, que atienda requerimientos relacionados con objetos gestionados, especficos de una empresa. WMI tiene las siguientes clases [12]: Clases de Sistema, Clases Win32, Clases Consumidor Estndar, Clases MSFT, Clases MSMCA y Clases C++ WMI. J-INTEGRA [13] J-Integra es un puente Java-COM que puede ser utilizado para acceder componentes COM como si fueran objetos Java, y objetos Java como si fueran componentes COM. El runtime Java de J-Integra se comunica con los objetos COM a travs de DCOM, como se muestra en la Figura 2.

Cualquier JVM corriendo sobre cualquier plataforma Objetos Java

Proxies Java generados por J-Integra

Runtime Java de J-Integra

DCOM (sobre TCP/IP) Objetos COM corriendo bajo Windows (No es necesario instalar software especial, ya que J-Integra se comunica con los componentes COM a travs de DCOM)

Figura 2. Runtime Java de J-Integra.

Modos de acceder objetos COM desde clientes Java [14] Modo DCOM (Java Puro) En este escenario un cliente Java puro corriendo sobre cualquier plataforma accede un servidor COM. En este modo la autenticacin se establece en el cdigo cliente, adems no se requiere software de J-Integra en la mquina Servidor COM. Modo DCOM con autenticacin nativa Este escenario es idntico al anterior, excepto que en lugar de establecer explcitamente el dominio, usuario y password en el cdigo cliente Java, J-Integra selecciona automticamente la identidad del usuario que corre el cliente Java. Este modo slo trabajar cuando el cliente Java se corra bajo Windows. Modo Nativo En este escenario, J-Integra usa cdigo nativo (DLLs), en lugar de DCOM para invocar mtodos de componentes COM desde un cliente Java. Por defecto, J-Integra usa modo DCOM, el modo Nativo debe ser habilitado explcitamente. IMPLEMENTACIN La aplicacin est siendo desarrollada usando el lenguaje de programacin Java, la API WMI de Microsoft, y la herramienta J-Integra. WMI ofrece dos APIs: la API Scripting y la API COM. Es posible acceder ambas APIs usando J-Integra, pero debido a que J-Integra se debe usar en modo DCOM para lograr la gestin de equipos remotos, es necesario utilizar la API Scripting, que es la nica que el modo DCOM soporta. J-Integra tiene una gran variedad de herramientas, y para el desarrollo del Proyecto fue necesario usar dos de ellas: com2java [15] y setdllhost [16]. Com2java lee informacin desde una librera de tipo, en este caso la librera de WMI, y genera archivos Java

(proxies) que pueden ser utilizados para acceder las interfaces y clases COM definidas en la librera de tipo. Estos archivos junto con el runtime Java de Jintegra (jintegra.jar) deben ser configurados en el JDK seleccionado para manejar la API Scripting desde Java y utilizar las clases WMI. La seleccin de las clases y los proveedores WMI, a utilizar en la aplicacin, se hizo teniendo en cuenta las necesidades de la Administracin de la Red de Datos de la Universidad del Cauca, lo cual sirve tanto de requerimiento, como de validacin funcional. Las clases utilizadas pertenecen a las categoras de hardware y sistema operativo de las Clases Win32. Adems se utilizaron algunas Clases Consumidoras Estndar. Los proveedores escogidos fueron el Proveedor Win32, Proveedor de Registro del Sistema, y Proveedor de Registro de Eventos. La Figura 3 muestra el esquema de la arquitectura de la aplicacin.
B R O W S E R

Apagar o reiniciar un equipo. Obtener el tamao que ocupan los archivos de un determinado tipo, y borrar archivos. Instalar y desinstalar productos a travs del Instalador de Windows. Enviar un email o ejecutar un scritps cuando ocurren eventos. Todo esto es posible sobre mquinas remotas. Adems la aplicacin permite establecer todas las restricciones que sean necesarias para que los usuarios no cambien las configuraciones realizadas. Esta aplicacin podra ser fcilmente convertida en un Servicio Web, lo que permitira a otro tipo de usuarios, como los de dispositivos mviles, acceder a toda la funcionalidad de esta herramienta de gestin. Adems, ya que J-Integra proporciona un plugin JCACOM [18], con el que se puede acceder Enterprise Java Beans (EJB) desde COM, la aplicacin podra ser desarrollada usando EJBs. REFERENCIAS [1] http://www.dmtf.org/standards/wbem [2] http://www.dmtf.org/home [3] http://wbemservices.sourceforge.net/ [4] http://www.openpegasus.org [5] http://openwbem.sourceforge.net/ [6] http://www.opengroup.org/snia-cimom [7]http://msdn.microsoft.com/library/default.asp?url=/libr ary/en-us/wmisdk/wmi/wmi_start_page.asp [8] http://www.prodexnet.com/nsm/wbem_products.htm [9] http://staff.develop.com/halloway/JavaWin32.html [10]http://msdn.microsoft.com/library/default.asp?url=/lib rary/enus/wmisdk/wmi/wmi_management_applications.asp [11]http://msdn.microsoft.com/library/default.asp?url=/lib rary/en-us/wmisdk/wmi/wmi_providers.asp [12]http://msdn.microsoft.com/library/default.asp?url=/lib rary/en-us/wmisdk/wmi/win32_classes.asp [13] http://j-integra.intrinsyc.com/j-integra/doc/ [14]http://www.intrinsyc.com/support/jintegra/doc/deployment/javatocom.htm [15]http://www.intrinsyc.com/support/jintegra/doc/com2java/ [16]http://j-integra.intrinsyc.com/jintegra/doc/tools/SetDllHost.html [17]http://developer.java.sun.com/developer/onlineTraini ng/JSPIntro/contents.html [18]http://j-integra.intrinsyc.com/jintegra/doc/jca_com/Intro.htm

HTTP

Aplicacin Java

Proxies de Jintegra

DCOM Objeto COM

Runtime de Jintegra

Figura 3. Esquema de la arquitectura de la aplicacin.

La Aplicacin Java se est desarrollando utilizando el modelo de diseo MVC (Model/View/Controller) [17]. Con este modelo la lgica o procesamiento es dividido en tres partes: Model (Beans): corresponde a la lgica y a los datos. View (Servlets o JSPs): corresponde al presentacin. Controller (Servlets o JSPs): corresponde al procesamiento de requerimientos. Esta arquitectura tiene varias ventajas, como claridad en el diseo, modularidad, escalabilidad, y permite separar la lgica de la presentacin. La aplicacin permite: Descubrir los puertos de switches o hubs gestionables, y proporciona las direcciones MAC e IP y el nombre de los dispositivos conectados a esos puertos. Proporciona informacin del sistema operativo, BIOS, memoria, motherboard, puertos, teclado, tarjeta de red, procesos, servicios, archivos, cuentas, particiones, usuarios, grupos, protocolos, etc. Permite configurar direcciones IP, DNSs, puertas de enlace y proxies. Permite habilitar y deshabilitar seguridad IP. Habilitar DHCP. Configurar los puertos permitidos. Restringir las aplicaciones que los usuarios pueden correr y restringir a los usuarios de correr aplicaciones especficas.