Documentos de Académico
Documentos de Profesional
Documentos de Cultura
47bb062de66ae PDF
47bb062de66ae PDF
HERRAMIENTA DE
MONITORIZACIN DE SISTEMAS
Agradecimientos
I
Herramienta de Monitorizacin de Sistemas
Resumen
El proyecto consiste en el diseo, desarrollo e implantacin de un sistema que sirva de
apoyo a las empresas de servicios informticos en la tarea de mantenimiento de los
sistemas informticos de sus clientes. El sistema automatiza la auditora y supervisin del
estado y funcionamiento de los sistemas de informacin, consiguiendo que se reduzca
considerablemente el tiempo que se debe dedicar a dicha tarea, y por tanto, aumentando la
productividad. Tanto los sistemas informticos monitorizados como los de la compaa de
servicios, estn compuestos por PCs y Servidores con plataformas de Microsoft.
Obtener acceso, por parte de los usuarios de las mquinas cliente, al programa VCN
One Click de control remoto y a informacin descriptiva del agente.
Alertas: La generacin, a partir de las auditoras y por parte del servidor, de alertas
relacionadas con estados definidos en las mquinas cliente. Registro de dichas
alertas en el sistema externo Microsoft CRM 3.0.
Gestin de Alertas: El filtrado, por parte de los tcnicos, de las alertas que se generan
de forma que se obtenga una herramienta til.
II
Herramienta de Monitorizacin de Sistemas
Interfaz para los tcnicos: El visualizado, por parte de los tcnicos, de los agentes
que hay registrados en el sistema, de las tareas que ejecutan dichos agentes en las
mquinas en las que estn instalados, de las auditoras de dichas mquinas
obtenidas y registradas en el sistema y del log registrado en el sistema por los
agentes.
Una librera, que contiene los componentes del dominio, nivel de negocio y de acceso
a datos. La librera produce un fichero .dll que es utilizado por el resto de
aplicaciones. Se ha construido con una aplicacin Windows Control Library.
Una aplicacin Web que contiene los servicios Web a travs de los que se comunican
los agentes con el sistema y que sirve tambin de apoyo a la aplicacin de escritorio.
Se ha construido mediante una aplicacin ASP.NET Web Service Application.
III
Herramienta de Monitorizacin de Sistemas
Una aplicacin que se encarga de interpretar las tareas repetitivas para asignrselas
a los agentes. Se trata de una aplicacin Console Application.
IV
Herramienta de Monitorizacin de Sistemas
Abstract
The Project consists of the design, development and deployment of a software system to
support IT Companies to undertake the task of maintaining their clients information systems.
The system automate the audit and oversee of the state and operation of the information
systems, making it possible to minimize the time it takes, and also to increase the
productivity. The information system to be monitored and the IT Companys one are
composed of PCs and Servers that carry Microsoft Platforms.
The system is a client-server application where a server which is installed in the IT Company
attends to multiple clients, called agents, which are installed in the customers computers.
Installation: Installation of the agent in a client machine and the following register in
the system.
The clients machines users get access to the program VCN One CLick of remote
control and to the descriptive information about the agent.
Audits: The agents execute the audits in the clients information system computers in
a way the users do not take care of it. The agents will register the audits in the
system.
Alerts: The server, using the audits and due to determined states in the client
computers, generates alerts. It register the alerts in the external system Microsoft
CRM 3.0
Alert generation management: The technicians configure a filter to control the alerts
generated in a way it becomes a useful tool.
Tasks: The technicians set previously defined and designed tasks to be executed by
the agents in the clients computers.
Scheduled Tasks: The IT Company administrators generate scheduled tasks that are
registered in the Server Windows Task Scheduler. The system interprets and
registers them to be executed by the agents in the clients computers.
V
Herramienta de Monitorizacin de Sistemas
User Interface for the technicians: The display of the registered agents in the system,
of the tasks that execute the agents, of the audits and of the log registered in the
system by the agents.
To provide all the features exposed there have been built several applications in which have
been used innovation software development technologies and software application
connections. Generally, due to the easier installation in the information systems, the
applications have been developed using Microsoft tools, the .NET Framework and Visual
Studio 2005.
The Agent application is composed by a Windows Service that provides all the agent
functionality and a Windows application that charges an Icon on the taskbar.
A Windows Control Library, which contains the domain, service and data access and
produce a .dll file to be used by the others applications.
A Web Application (ASP.NET Web Service Application) containing the Web Services
used to connect the agents to the system and also to support the desktop application.
A Console Application used to interpret the scheduled tasks and assign them to the
agents.
Setup Applications, for the installation and upgrading of the agents and the installation
of all the applications.
To end up, there have been used and deepened the knowledge of techniques and
methodologies of software engineering, especially the Object Oriented, as well as other
subjects sawn during the degree as Data Structures, Data Transfer and Database
Technologies, Operating Systems, Networks, Algorithm methods, Technology Security and
Software Development Projects Management.
VI
Herramienta de Monitorizacin de Sistemas
ndice
1. Introduccin __________________________________________________________ 1
1.1 Motivacin y Contexto del proyecto ______________________________________________ 1
1.2 Objetivos y Descripcin del Proyecto _____________________________________________ 1
VIII
Herramienta de Monitorizacin de Sistemas
1. Introduccin
Dicha tarea consiste en comprobar varios tems en los ordenadores de los clientes, tales
como el espacio en disco, la fragmentacin de los archivos, el log de errores de Windows, el
tamao de la cuota de los usuarios del dominio, los servicios automticos de Windows, el
software instalado en los ordenadores o la correcta ejecucin de tareas programadas y de
los backup de datos locales. Esta tarea se debe realizar para cada cliente y de forma diaria,
con el consiguiente tiempo a dedicar.
Por otro lado, se va a trabajar en este proyecto con las ltimas tecnologas. Se trata de un
proyecto muy completo que integra aspectos de redes, bases de datos, y desarrollo de
software. Todo ello hace que sea un proyecto muy atractivo.
El principal objetivo del presente proyecto es disear y construir una herramienta que
permita la monitorizacin automtica de los sistemas informticos facilitando la tarea de los
administradores de sistemas.
1
Herramienta de Monitorizacin de Sistemas
Para la monitorizacin diaria de las mquinas se pretende construir un programa que acte a
modo de agente y que se integre con un servicio ubicado en el servidor de la empresa.
El agente deber ser transparente a los usuarios de las mquinas a monitorizar mostrando la
existencia de la aplicacin mediante un icono en la barra de herramientas. Por tanto, se
deber crear un servicio de Windows y una aplicacin para mostrar el icono.
El agente podr, adems, realizar diferentes tareas segn est instalado en un servidor o en
un pc de usuario. Estar diseado para realizar tareas como:
Apagar la mquina.
Ejecutar Scripts.
Por otro lado, desde el icono que muestra la informacin de la aplicacin al usuario se podr
acceder al programa VNC Single Click de control remoto de ordenadores.
2
Herramienta de Monitorizacin de Sistemas
El servidor del sistema deber atender tanto a los agentes como a la aplicacin de gestin
de los tcnicos mediante los servicios. Tendr, por tanto, dos servicios web, uno para los
agentes y otro para la administracin. Se deber alojar en el Servidor Internet Information
Server que es el utilizado en la empresa. Para ello se crear un directorio virtual con todo el
contenido necesario.
Los datos del sistema se almacenarn en una base de datos que estar alojada en el
sistema gestor SQL Server. El servidor del sistema interactuar con la misma para gestionar
los datos obtenidos a partir de la interaccin con los agentes. La aplicacin de gestin tendr
acceso a la base de datos para los casos de uso que se propongan.
Los tcnicos debern autenticarse para acceder a la aplicacin de gestin que accede a su
vez al servicio de administracin y a la base de datos, dicha autenticacin estar basada en
la cuenta de usuario de Windows utilizada al iniciar la sesin.
Los agentes poseern un identificador recibido del servidor al instalarse y que enviarn a
ste en sus comunicaciones.
Todos los programas y entornos que se han comentado en la descripcin del sistema y que
se utilizarn en el proyecto se exponen en el apartado 2. Herramientas y Tecnologa.
3
Herramienta de Monitorizacin de Sistemas
2. Herramientas y Tecnologa
2.1 Introduccin
Para el desarrollo de este proyecto se van ha utilizar las ltimas herramientas, estndares y
protocolos disponibles en desarrollo de aplicaciones Web distribudas proporcionadas por
Microsoft y por la industria de desarrollo de software.
En Produccin se utilizar un servidor con Windows 2003 Server, que lleva instalada
la versin 6.0 del Internet Information Server y la versin completa del SQL Server.
Por ltimo se disear y desarrollar integracin con varias aplicaciones, tanto herramientas
del sistema operativo y de la empresa como puede ser la herramienta de tareas
programadas de Windows, la aplicacin de Microsoft CRM Dinamics 3.0 o la aplicacin de
control remoto de ordenadores VNC Viewer, as como aplicaciones de libre distribucin
disponibles en el mercado como WinAudit y CCleaner.
4
Herramienta de Monitorizacin de Sistemas
.NET podra considerarse una respuesta de Microsoft al creciente mercado de los negocios
en entornos Web, como competencia a la plataforma Java de Sun Microsistems.
A largo plazo Micorsoft pretende reemplazar el API Win32 o Windows API con la plataforma
.NET. Esto es debido a que el API Win32 fue desarrollada sobre la marcha, careciendo de
documentacin detallada, uniformidad y cohesin entre sus distintos componentes,
provocando mltiples problemas en el desarrollo de aplicaciones para el sistema operativo
Windows. La plataforma .NET pretende solventar la mayora de estos problemas proveyendo
un conjunto nico y expandible con facilidad, de bloques interconectados, diseados de
forma uniforme y bien documentados, que permitan a los desarrolladores tener a mano todo
lo que necesitan para producir aplicaciones slidas.
Con esta plataforma Microsoft incursiona de lleno en el campo de los Servicios Web y
establece el XML como norma en el transporte de informacin en sus productos y lo
promociona como tal en los sistemas desarrollados utilizando sus herramientas.
.NET intenta ofrecer una manera rpida y econmica pero a la vez segura y robusta de
desarrollar aplicaciones - o como la misma plataforma las denomina, soluciones -
permitiendo a su vez una integracin ms rpida y gil entre empresas y un acceso ms
simple y universal a todo tipo de informacin desde cualquier tipo de dispositivo.
Para ver ms detalles de los recursos que comprende la tecnologa .NET y que se van a
aplicar a este proyecto ver Anexo 3. Tecnologas.
El servicio se crea como proyecto de Microsoft Visual Studio, se define el cdigo que
controla qu comandos se pueden enviar al servicio y qu acciones se deben realizar al
recibir esos comandos. Entre los comandos que se pueden enviar a un servicio se
encuentran los comandos de inicio, pausa, reanudacin y detencin del servicio; asimismo,
puede ejecutar comandos personalizados.
Para ver las caractersticas que ofrece el servidor web consultar el Anexo 3. Tecnologas.
Para ver ms informacin acerca de los servicios web, los protocolos que implementan y su
desarrollo e implementacin con .NET consultar el Anexo 3.Tecnologas.
6
Herramienta de Monitorizacin de Sistemas
Evotec Consulting, empresa colaborada en este proyecto, ha apostado fuerte por sta
herramienta. Es utilizada para gestionar las acciones llevadas a cabo con todos sus clientes
y es el escenario escogido para la gestin de las alertas que genere el sistema ha
desarrollar. Por ello, es necesario conocer la aplicacin de Microsoft, su despliegue y
funcionamiento y como conseguir la integracin para el programador.
La experiencia del usuario de Microsoft CRM 3.0 Professional se ha diseado para que sea
una ampliacin natural de Microsoft Office y Outlook, lo que proporciona un entorno de
trabajo familiar e intuitivo que fomenta la receptividad del usuario y su productividad.
Despliegue de la aplicacin
La aplicacin est compuesta por una serie de Servicios Web que proporcionan por un lado
la implementacin de la interfaz en el browser cliente y por otro lado el soporte para la
conexin mediante programas. Como tal, se debe ubicar en el servidor web de la compaa,
y configurar para poder ser accedida.
7
Herramienta de Monitorizacin de Sistemas
Asimismo posee una base de datos que debe ser implementada en Sql Server. En este caso
la base de datos Evotec_MSCRM. Dicha base de datos puede ser utilizada para realizar
consultas directamente sin necesidad de llamar al CRM. Las actualizaciones de datos de
forma directa no son aconsejables ya que es el propio CRM el que se encarga de la
coherencia de los datos almacenados y de esta forma se alterara.
Hay una documentacin de ayuda instalable denominada CRM SDK y que tambin expone
el espacio de nombres que se utiliza en la aplicacin, como se ve en la figura 2.3.
8
Herramienta de Monitorizacin de Sistemas
http://www.microsoft.com/downloads/details.aspx?FamilyID=9c178b68-3a06-4898-bc83-
bd14b74308c5&displaylang=en.
9
Herramienta de Monitorizacin de Sistemas
Una vez hecho esto se podra utilizar el espacio de nombres antes mencionado, crear
entidades y llamar al servicio para que CRM las guarde, tal y como se contemplar en el
Diseo Interno del sistema Aparatado 6.1.
2.6.2 WinAudit
WinAudit es una aplicacin de software libre, se puede descargar desde la pgina web
http://www.pxserver.com/WinAudit.htm.
sta aplicacin produce un informe con todos los aspectos de la configuracin y el inventario
del ordenador en donde se ejecuta. El programa se compone de un archivo, no necesita
instalacin, lo que lo hace ms fcil de utilizar. Posee una interfaz de usuario:
10
Herramienta de Monitorizacin de Sistemas
En Opciones se puede configurar las categoras del inventario que se quieren obtener.
Existe una completa documentacin en la pgina web
http://www.pxserver.com/WinAudit/contents.html donde se puede obtener informacin sobre
cada una de las categoras:
11
Herramienta de Monitorizacin de Sistemas
Para el presente proyecto se necesita obtener un formato que pueda ser fcilmente
transportado y manipulado. El formato ms apropiado, dado que las comunicaciones entre
clientes y servidor que se van ha establecer utilizarn el protocolo SOAP basado en XML,
ser el propio XML. Por otro lado, Visual Studio y el Framework de .NET proporcionan
herramientas para tratar ste tipo de documentos.
Por ltimo, para que se cumpla el requisito de transparencia con el usuario final, si se desea
que ste no se entere de que se est ejecutando el programa WinAudit para obtener la
auditora de su ordenador y asimismo no repercuta en su trabajo, es necesario prescindir de
la interfaz grfica de WinAudit. WinAudit est pensado para poder ser ejecutado va lnea de
comandos, sin mostrar la ventana principal, tan slo una ventana de informacin, que si se
une al hecho de que los servicios de Windows no interactan con el escritorio resulta que en
realidad no se muestre absolutamente nada, lo que hace que sea la herramienta perfecta
para ste proyecto.
12
Herramienta de Monitorizacin de Sistemas
Para ver la tabla donde se explica el significado y los posibles valores de cada switch
consultar el Anexo 3. Tecnologas
http://www.ccleaner.com/
CCleaner es una herramienta que permite realizar una limpieza a fondo del sistema,
mejorando el rendimiento general y aumentando el espacio libre disponible en disco.
CCleaner funciona como el Liberador de espacio en disco que trae Windows pero de manera
mucho ms efectiva. Eliminando ficheros temporales, archivos intiles utilizados en algn
proceso de instalacin, cookies, papelera de reciclaje e incluso registrando el Registro de
Windows en busca de entradas no vlidas.
Antes de eliminar algo CCleaner permite especificar si hacerlo o no de modo tal de no perder
informacin que sea relevante.
13
Herramienta de Monitorizacin de Sistemas
14
Herramienta de Monitorizacin de Sistemas
15
Herramienta de Monitorizacin de Sistemas
16
Herramienta de Monitorizacin de Sistemas
Tres cualidades que tambin son destacables son la replicacin, clustering para evitar fallos
y snapshots de base de datos. La herramienta que sirve de interfaz para el sistema Sql
Server y que va ha utilizarse en este proyecto es el Sql Server Management Studio Express:
3. Metodologa de Trabajo
Para conseguir un software de calidad, que sea duradero y fcil de mantener hay que idear
una slida base arquitectnica que sea flexible al cambio. Para desarrollar software rpida y
eficientemente, minimizando el trabajo de recodificacin y evitando crear miles de lneas de
cdigo intil hay que disponer, adems de la gente y las herramientas necesarias, de un
enfoque apropiado. Es necesario seguir una determinada metodologa y no abordar los
problemas de manera desordenada, con el fin de obtener un modelo que represente el
problema que hay que abordar.
Por otro lado, toda metodologa requiere un lenguaje de representacin. Todos los
diagramas y representaciones grficas que se realizarn a lo largo de la metodologa de
desarrollo de este sistema estn basados en notacin UML. Hay que tener en cuenta que el
estndar UML no define un proceso de desarrollo especfico, tan solo se trata de una
notacin.
Las clases representan los conceptos existentes en el domino del problema. Estos
conceptos suelen tener informacin asociada y relaciones entre ellos. Una clase se
representa mediante una caja subdividida en tres partes: en la superior se muestra el
nombre de la clase, en la media los atributos y en la inferior las operaciones.
Los atributos representan informacin relevante asociada a los conceptos del dominio.
Opcionalmente se mostrar su tipo de dato.
Las asociaciones representan relaciones entre conceptos del dominio. Las asociaciones
entre dos clases se representan mediante una lnea que las une. El nombre de la asociacin
es opcional y se muestra como un texto que est prximo a la lnea. Se puede aadir un
pequeo tringulo negro slido que indique la direccin en la cual leer el nombre de la
asociacin. La cardinalidad es una restriccin que se pone a una asociacin y que limita el
nmero de instancias de una clase que pueden tener esa asociacin con una instancia de la
otra clase. Puede ser un nmero (1), un rango (2..5), una enumeracin (0,1,3,5) o una
combinacin de los anteriores (0..2,5,7..*). El * significa cualquier nmero arbitrariamente
grande.
Un Diagrama de Casos de Uso muestra la relacin entre los actores y los casos de uso del
sistema. Representa la funcionalidad que ofrece el sistema en lo que se refiere a su
interaccin externa. En el diagrama de casos de uso se representa tambin el sistema como
una caja rectangular con el nombre en su interior. Los casos de uso estn en el interior de la
caja del sistema, y los actores fuera, y cada actor est unido a los casos de uso en los que
participa mediante una lnea.
19
Herramienta de Monitorizacin de Sistemas
Los elementos que pueden aparecer en un Diagrama de Casos de Uso son: actores, casos
de uso y relaciones entre casos de uso.
Un actor es algo con comportamiento, como una persona (identificada por un rol), un sistema
informatizado u organizacin, y que realiza algn tipo de interaccin con el sistema.. Se
representa mediante una figura humana dibujada con palotes. Esta representacin sirve
tanto para actores que son personas como para otro tipo de actores.
Un caso de uso, en principio, debera describir una tarea que tiene un sentido completo para
el usuario. Sin embargo, hay ocasiones en las que es til describir una interaccin con un
alcance menor como caso de uso. La razn para utilizar estos casos de uso no completos en
algunos casos, es mejorar la comunicacin en el equipo de desarrollo, el manejo de la
documentacin de casos de uso.
20
Herramienta de Monitorizacin de Sistemas
Cualquier sistema grande se debe dividir en unidades ms pequeas, de modo que las
personas puedan trabajar con una cantidad de informacin limitada, a la vez y de modo que
los equipos de trabajo no interfieran con el trabajo de los otros.
Un paquete es una parte de un modelo. Cada parte del modelo debe pertenecer a un
paquete. Pero para ser funcional, la asignacin debe seguir un cierto principio racional, tal
como funcionalidad comn, implementacin relacionada y punto de vista comn. UML no
impone ninguna regla a la hora de componer los paquetes.
Un paquete puede contener otros paquetes, sin lmite de anidamiento pero cada elemento
pertenece a (est definido en) slo un paquete.
21
Herramienta de Monitorizacin de Sistemas
Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una
relacin de dependencia entre paquetes. Todas las clases no son necesariamente visibles
desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa.
En general, un paquete no puede tener acceso al contenido de otro paquete. Los paquetes
son opacos, a menos que sean abiertos por una dependencia de acceso o de importacin.
La dependencia de acceso indica que el contenido del paquete del proveedor puede
aparecer en referencias efectuadas por los elementos del paquete cliente. En general, un
paquete puede ver solamente los elementos de otros paquetes que tienen visibilidad pblica.
Los elementos con visibilidad protegida pueden ser vistos nicamente por los paquetes que
son descendientes del paquete contenedor de dichos elementos. Los elementos con
visibilidad privada slo son vistos por su paquete contenedor y anidados. La visibilidad
tambin se aplica a las clases. El permiso de acceso y visibilidad son necesarios para hacer
referencia a un elemento.
Los paquetes se dibujan como rectngulos con pestaas (similar al icono "carpeta"), las
dependencias se muestran como flechas con lneas discontinuas.
22
Herramienta de Monitorizacin de Sistemas
Un producto con un buen diseo necesita una buena estructura y un diseo que no caduque
rpidamente, que no sea molesto ni aburrido. Las reuniones de diseo se realizan con
clientes y usuarios. A partir de ellas se desarrollan las primeras ideas.
23
Herramienta de Monitorizacin de Sistemas
ISO/IEC 9126:
Esta definicin hace nfasis en los atributos internos y externos del producto, los cuales
contribuyen a su funcionalidad y eficiencia. La usabilidad depende no slo del producto
sino tambin del usuario. Por ello un producto no es en ningn caso intrnsecamente
usable, slo tendr la capacidad de ser usado en un contexto particular y por usuarios
particulares. La usabilidad no puede ser valorada estudiando un producto de manera aislada
(Bevan, 1994).
ISO/IEC 9241:
A partir de la conceptualizacin llevada a cabo por la ISO, se infieren los principios bsicos
en los que se basa la usabilidad:
24
Herramienta de Monitorizacin de Sistemas
Los objetos interactan para realizar colectivamente los servicios ofrecidos por las
aplicaciones. Los diagramas de interaccin muestran cmo se comunican los objetos en una
interaccin. Existen dos tipos de diagramas de interaccin: el Diagrama de Colaboracin y el
Diagrama de Secuencia.
Un proceso que se repite se representa con una flecha circular que sale del
punto en que termina dicho proceso y entra en el punto en que empieza.
25
Herramienta de Monitorizacin de Sistemas
Retorno
El objeto se destruye
en este punto
getY(x)
recurrencia ob5 : Clase5
Nueva llamada <<create>>
al objeto
ob5
Obtencin de un objeto
<<forward>> del dominio.
retorno de objeto
retorno
Para disear las clases se especificarn los mtodos y atributos que cada clase va a
necesitar para que el sistema pueda alcanzar toda la funcionalidad requerida.
26
Herramienta de Monitorizacin de Sistemas
El diseo de una base de datos es un proceso complejo que abarca decisiones a muy
distintos niveles. La complejidad se controla mejor si se descompone el problema en
subproblemas y se resuelve cada uno de estos subproblemas independientemente,
utilizando tcnicas especficas. As, el diseo de una base de datos se descompone en
diseo conceptual, diseo lgico y diseo fsico.
2. El diseo lgico parte del esquema conceptual y da como resultado un esquema lgico.
Un esquema lgico es una descripcin de la estructura de la base de datos en trminos
de las estructuras de datos que puede procesar un tipo de SGBD. Un modelo lgico es
un lenguaje usado para especificar esquemas lgicos (modelo relacional, modelo de red,
etc.). El diseo lgico depende del tipo de SGBD que se vaya a utilizar, no depende del
producto concreto.
El dise lgico del modelo de datos pasa por una nomalizacin del mismo. El proceso
de normalizacin de una base de datos consiste en aplicar una serie de reglas a las
relaciones obtenidas tras el paso del modelo E-R (entidad-relacin) al modelo relacional.
Las bases de datos relacionales se normalizan para evitar la redundancia de los datos,
evitar problemas de actualizacin de los datos en las tablas y proteger la integridad de
los datos.
El paso del modelo conceptual de datos al modelo lgico supone una abstraccin, un
mecanismo para la conversin del mundo real a un mundo formado por datos, a su
agrupacin y clasificacin. El proceso de abstraccin consiste en identificar los
elementos conceptos empleados en el modelo global y transformarlo en lo que
denominamos entidades en el modelo lgico. El resultado de esta transformacin se
traduce en un nuevo modelo: El modelo RE/R. Ver Anexo 4. Metodologas. Diagrama
RE/R
3. El diseo fsico parte del esquema lgico y da como resultado un esquema fsico. Un
esquema fsico es una descripcin de la implementacin de una base de datos en
memoria secundaria: las estructuras de almacenamiento y los mtodos utilizados para
tener un acceso eficiente a los datos. Por ello, el diseo fsico depende del SGBD
concreto y el esquema fsico se expresa mediante su lenguaje de definicin de datos.
27
Herramienta de Monitorizacin de Sistemas
Una vez finalizado esta etapa, se dispone de un modelo de datos preparado para ser
implementado.
3. Pruebas unitarias
Una vez se haya desarrollado el cdigo de los subsistemas se podrn realizar las pruebas
de dichos subsistemas y sus mdulos por separado. El objetivo de las pruebas unitarias es
aislar, cada parte del programa y mostrar que las partes individuales son correctas.
4. Pruebas de Integracin
El objetivo de las pruebas de verificacin es comprobar que los mdulos o componentes que
conforman un sistema funcionan correctamente en conjunto o integrados. As mismo se
comprueba que el sistema desarrollado cumple con los requisitos definidos.
28
Herramienta de Monitorizacin de Sistemas
Look & Feel: A partir de los estndares de presentacin definidos se definen los
requerimientos de pruebas genricos que se validan en cada una de las aplicaciones
que componen la solucin. Se lleva registro de los requerimientos ejecutados y los
hallazgos obtenidos. En caso que alguno de los requerimientos no aplique sobre
alguno de los productos tambin se deja registro de ello, describiendo las razones por
las cuales no se considera dentro del producto.
29
Herramienta de Monitorizacin de Sistemas
PRUEBAS NO FUNCIONALES
Pruebas de Seguridad
Pruebas de Rendimiento
30
Herramienta de Monitorizacin de Sistemas
4. Anlisis de Requerimientos
Tarea
Cliente
-idTarea 1
-idCliente
-Descripcion
-Nombre
*
*
PERTENECE
*
Dominio *
PERTENECE
-idDominio
-Nombre
[Fecha, Estado]
* PERTENECE
* 1
1
Alerta
-idAlerta Maquina
1 TIENE
-Descripcion * -idMaquina
-Fecha
1 ** -NombreHost
1 GENERA AuditoriaResultado -TimeStamp
TIENE -Permiso
* 1
GENERA
Tarea
Una tarea se define como una posible accin que se puede llevar a cabo en un cliente. Cada
tarea requerir un mtodo especfico para que pueda ser realizada por los clientes. Los
31
Herramienta de Monitorizacin de Sistemas
clientes debern poder interpertar que tarea deben realizar. Las tareas se ejecutan en una
fecha concreta y puede definirse un estado de la tarea en funcin de si se ha ejecutado, si
esta pendiente de que la mquina lo sepa o si est pendiente de ejecucin (ya enviada a la
mquina cliente). Entre las tareas que pueden realizarse se encuentra la tarea de auditora
que por su significado en el proyecto es la ms importante.
Auditora: Requiere una seleccin de los campos a auditar lo que, por tanto, es un
atributo de esta tarea. Se trata de la ejecucin del programa WinAudit visto en el
apartado 2.6.2. Los clientes deben poseer la capacidad de ejecutar el programa y
manejar la auditora resultado.
A parte de la auditora, tambin pueden haber otras tareas, como la ejecucin del programa
CCleaner (limpieza) visto en el apartado 2.6.3. o el inicio de un servicio, apagado de la
mquina cliente u otras tareas que puedan definirse durante el proyecto o en posteriores
evoluciones.
Cliente y Dominio
El cliente es la empresa cliente de Evotec, que est previamente registrada en el CRM. Son
los propietarios de las mquinas cliente. Los clientes normalmente tienen definido un
dominio desde el que administrar sus sistemas de informacin y mquinas. Puede ser que
tengan definido ms, lo que no es normal, o que no tengan dominio definido. El dominio es
conocido por las mquinas de los clientes y, es mediante el cual, el sistema podra asociar
las mquinas a sus respectivos clientes.
Mquina
Con mquina se hace referencia a todas las mquinas cliente, donde residirn los agentes
del sistema. Las mquinas pueden ser, servidores de informacin u cualquier otro equipo.
Una mquina normalmente tiene un nombre host nico en un dominio por el que puede ser
identificada. No obstante, lo que es seguro es que las mquinas tienen definido un nmero
de serie nico asignado por el fabricante.
Auditora resultado
Es el resultado de la ejecucin de una tarea auditora en una mquina. ste puede variar en
funcin de los campos que se definen para auditarse. Consultar apartado 2.6.2 y Anexo 3.
Alerta
Las alertas son comunicadores disparados ante estados definidos en una mquina cliente.
Dichos estados se pueden monitorizar mediante las auditoras resultado.
32
Herramienta de Monitorizacin de Sistemas
1 MemoriaRAMLibre
1 ServicioNoArrancado
1 AltaPrograma
-FechaInstalacion
-Owner Alert
-idAlerta
-Descripcion
GENERA
*
-Fecha
BajaPrograma 1 AuditoriaResultado
1 -FechaInstalacion
-FechaDesinstalacion
-NumeroVecesUsado
-Owner EspacioDisco ErrorLog 1
*
CampoAuditoria
1 1
1 1
33
Herramienta de Monitorizacin de Sistemas
Previamente se ha visto la definicin de alerta. Los estados definidos de las mquinas cliente
que generan estas alertas se pueden observar en la figura 4.2 y tienen que ver con el disco
duro de las mquinas, la memoria RAM, los programas instalados, los errores en el sistema
o en las aplicaciones y los servicios no arrancados. Por otro lado el resultado de la auditora
est compuesto de varios campos, los que se pueden ver tambin en la figura 4.2. Algunos
de dichos campos pueden generar alertas tal y como se aprecia en la figura.
Sistema EvoAgent
Mquina Cliente
34
Herramienta de Monitorizacin de Sistemas
Sistema EvoAgentManager
Tareas
uses uses
Ver Tareas Ver Propiedades de Editar Tarea
Programadas Tarea Programada Programada
uses
Revisar Estado de
Nueva Tarea
Tareas
uses
uses uses
Eliminar Tarea
Buscar Tareas Borrar Tareas
Pendiente
uses
Tcnico Evotec
Editar Tarea
Dominios y Clientes
Eliminar Dominio y
Crear Nuevo Dominio Asociaciones
Actualizar
Clientes Actuales
CRM
Tcnico Evotec
Asociar Dominio
con Cliente Asociar Maquinas a Borrar Maquinas de
Dominio y Cliente Dominio y Cliente
35
Herramienta de Monitorizacin de Sistemas
Sistema EvoAgentManager
Mquinas
Ver Detalle
Buscar Mquinas
Auditoras
Tcnico Evotec
Settings de la Aplicacin
Alertas
CRM
Log Errores
36
Herramienta de Monitorizacin de Sistemas
Sistema EvoAgentServer
Mdulo ProgramacinTareas
Registrar
TareaMaquina de Tarea Programada
Task Scheduler
38
Herramienta de Monitorizacin de Sistemas
Descripcin de datos:
39
Herramienta de Monitorizacin de Sistemas
Fecha Mxima
40
Herramienta de Monitorizacin de Sistemas
41
Herramienta de Monitorizacin de Sistemas
42
Herramienta de Monitorizacin de Sistemas
Precondiciones:
Escenario principal:
2. El tcnico selecciona las mquinas que desea borrar del dominio y el cliente.
Extensiones:
Descripcin de datos:
43
Herramienta de Monitorizacin de Sistemas
44
Herramienta de Monitorizacin de Sistemas
45
Herramienta de Monitorizacin de Sistemas
Extensiones:
Descripcin de datos:
46
Herramienta de Monitorizacin de Sistemas
Extensiones:
2 a. Los usuarios del sistema estn actualizados
Descripcin de datos:
47
Herramienta de Monitorizacin de Sistemas
Extensiones:
Descripcin de datos:
49
Herramienta de Monitorizacin de Sistemas
50
Herramienta de Monitorizacin de Sistemas
Maquina Cliente
EvoAgentService - cliente http
Windows XP/2000/Vista Servidor de Autenticacin
Soap-Ssl-Http
Soap
CRM
Ssl BBDD
Sql
Http
Maquina Cliente
EvoAgentService cliente http
Windows XP/2000/Vista Soap EvoAgentServer
Ssl
Servidor de la aplicacin Servidor de Bases de Datos
Http
Windows 2003 Server
EvoAgentBD
Internet Information Services BBDD
Sql
Maquina Cliente
EvoAgentService cliente http
Windows XP/2000/Vista
Soap-Http Soap-Http
Servidor CRM
Sql
Puesto Evotec
EvoAgentManager cliente http
Windows XP
Sql
Puesto Evotec
EvoAgentManager cliente http
Windows XP
Figura 5.1 Arquitectura General del Sistema
Nota: Cada componente servidor que se describe en este diagrama se corresponden con funcionalidades
de la aplicacin servidor de EvoAgent o aplicaciones con las que se relaciona (CRM 3.0 de Microsoft) y se
dibuja como un servidor a efectos ilustrativos. La realidad es que se requiere un equipo que contiene
todas las funcionalidades: base de datos, servidor de aplicaciones y de seguridad.
51
Herramienta de Monitorizacin de Sistemas
Servidor de la aplicacin
Contenedor de los distintos Servicios Web y otras funcionalidades de que se compone la
aplicacin servidor EvoAgentServer. El servidor de aplicaciones (Internet Information Server)
dispone de la lgica de autenticacin de usuarios y de acceso a los Servicios Web.
En el presente proyecto se crear un sitio Web especfico con un directorio particular con el
mismo nombre, EvoAgentServer.
EvoAgentServer
52
Herramienta de Monitorizacin de Sistemas
A parte del Servicio Web con el que interacta la aplicacin EvoAgentManager, este
directorio recoge las siguientes funcionalidades:
53
Herramienta de Monitorizacin de Sistemas
SERVIDOR EVOTEC
PUESTO EVOTEC
Windows Task
Task Scheduler Tarea-xxxx.job
Archivo XML
Tarea-xxxx.xml
Archivo Lotes
Tarea-xxxx.bat
Servicio Web
EvoAgentServer
Servidor de la aplicacin
Windows 2003 Server
Internet Information Services
CRM
BBDD
54
Herramienta de Monitorizacin de Sistemas
SERVIDOR EVOTEC
PUESTO EVOTEC
Task
Tarea-xxxx.job
Windows
Task Scheduler
Archivo XML
Tarea-xxxx.xml
Archivo Lotes
Tarea-xxxx.bat
Servicio Web
EvoAgentServer TareasManager
Servidor de la aplicacin
Windows 2003 Server
Internet Information Services
CRM
BBDD
Adems:
55
Herramienta de Monitorizacin de Sistemas
Servidor CRM
Integracin con la aplicacin CRM. El sistema necesita comunicarse con dicha aplicacin
para el registro de alertas.
Servidor de Autenticacin
Integracin con diversos esquemas de autenticacin como Active Directory.
Puesto Evotec
Puesto de trabajo del tcnico de evotec. En dicho puesto reside la aplicacin de gestin del
sistema EvoAgnetManager. Como aplicacin de gestin orientada al control del sistema por
parte de los tcnicos posee interfaz grfica de usuario. Adems contiene el programa
servidor de la conexin remota mediante UltraVNC Viewer.
Maquina Cliente
Mquinas pertenecientes a los clientes. En ellas reside el subsistema EvoAgent, que
contiene la aplicacin cliente del sistema distribuido, EvoAgentService (servicio de
Windows), que se ocupa de ejecutar las tareas programadas para la mquina en que est
instalado, y la aplicacin que carga el icono en la barra de tareas, EvoStartup, y que permite
al usuario de la mquina visualizar la informacin de la aplicacin y acceder a servicios como
el cliente del control remoto, evotec_soporte_remoto.
Para la ejecucin de tareas se utilizan herramientas del sistema operativo Windows XP/Vista
y herramientas de software libre. Este subsistema por tanto contiene un servicio de
Windows, una aplicacin que carga el icono iniciada desde el registro de arranque de la
mquina y las aplicaciones necesarias para completar la funcionalidad
56
Herramienta de Monitorizacin de Sistemas
EvoAgent
Herramienta
Centralizada de
Monitorizacin
Windows Task
WinAudit CRM Dynamics
Scheduler
En la imagen se muestra como existen 3 sistemas externos con los que el sistema
intercambia informacin. Se trata de un diagrama que se corresponde en cierto modo con el
diagrama de contexto de la metodologa de diseo de los diagramas de flujo de datos o
DFDs.
WinAudit provee conceptos importantes para el sistema que han sido aadidos en el
modelo de dominio como son los campos generados en la auditoria.
Micorsoft Dynamics CRM posee una librera de clases con las que trabaja los
programadores de extensiones de dicha aplicacin.
Expandiendo el paquete del sistema EvoAgent o Agente de Evotec se puede observar como
se divide en 3 paquetes subsistemas y dos pquetes auxiliares. En la imagen se puede
observar como se relacionan cada uno y como se relacionan con los sistemas externos.
57
Herramienta de Monitorizacin de Sistemas
<<system>>
EvoAgent
<<access/import>>
SQL
EvoAgentLibrary CRM Dynamics
EvoAgentBD
<<access/import>>
<<import>>
<<access>> <<access>>
<<subsystem>> <<subsystem>> <<subsystem>>
EvoAgent EvoAgentServer EvoAgentManager WinAudit
EvoAgentBD se corresponde con el reflejo de los datos tal y como estn en la base
de datos.
5.2.2 Subsistemas
EvoAgentServer es la aplicacin servidor. Contiene toda la lgica de acceso a datos
en el paquete dao y parte de la lgica de negocio del sistema en el paquete services.
Como se ha visto en el modelo de arquitectura en su mayora se compone de
servicios Web con los que da servicio a los otros dos subsistemas. Utiliza muchas de
las clases definidas en el dominio y el acceso a datos y accede a las necesarias de
los sistemas externos CRM Dynamics y WinAudit. Todo ello a travs de
EvoAgentLibrary.
58
Herramienta de Monitorizacin de Sistemas
<<subsystem>> <<subsystem>>
EvoAgentServer EvoAgentManager
Programacion <<access/import>>
services
Tareas
EvoAgentLibrary iu
<<access/import>>
<<subsystem>>
EvoAgentLibrary
<<import>> <<access>>
<<access>>
SQL
WinAudit
EvoAgentBD
59
Herramienta de Monitorizacin de Sistemas
EvoAgent es la aplicacin cliente del sistema, utiliza alguna clase del dominio como
las tareas y accede al subsistema EvoAgnetServer mediante los servicios web
ubicados en ste ltimo creando clases Proxy tal y como se explica en el anexo 3
Servicios Web en .NET de este documento.
<<subsystem>>
EvoAgent
EvoAgentServer
Services
EvoAgentIcon
<<access/import>>
EvoAgentService <<subsystem>>
EvoAgentLibrary
<<import>>
Dominio
60
Herramienta de Monitorizacin de Sistemas
El tercero se trata de la creacin del elemento Alerta dentro de la aplicacin CRM y del
funcionamiento de dicha aplicacin para poder trabajar con este elemento.
Para la eleccin del modelo de interfaz definitivo se ha tenido en cuenta a los usuarios
finales, es decir, los tcnicos de Evotec, de tal forma que se ha seguido el modelo de interfaz
que posee la aplicacin con la que ms se trabaja en dicha empresa y con la que adems, el
sistema a construir est ms ligado, Micorsoft CRM 3.0. Dicho interfaz a su vez esta basado
en el estndar adoptado por Microsoft y aplicado en muchas de sus aplicaciones a partir del
Microsoft Outlook y que consiste en un men principal en el ala izquierda de la ventana de la
aplicacin desde el que poder acceder a toda la funcionalidad de la aplicacin y un
contenedor donde alojar cada ventana que se abra a modo de escritorio de la aplicacin.
61
Herramienta de Monitorizacin de Sistemas
http://www.codeplex.com/ASCENDNET/Release/ProjectReleases.aspx?ReleaseId=317
62
Herramienta de Monitorizacin de Sistemas
Antes de empezar a usar la aplicacin se proceder a realizar una validacin del usuario que
desea utilizarla de la forma que se indica en el diagrama de secuencia de la Figura 6.1.
initLogin()
getDefaultNetworkCredential()
Cre : System . Net .
<<create>> NetworkCredentials
VALIDA USUARIO
Cre
authenticate()
True
[error]
System .Security . Principal
. WindowsIdentity
WI : System .Security
getCurrent().Name
<<createCurrent>> . Principal . WindowsIdentity
WI.Name
Dao . UsuarioAplicacionDAO
getUsuario
(NombreInicioSesion) U:Usuario
<<create>>
U
[error]
<<forward>>
error?
False EvoAgentManager . iu
True . Form_Login
getNombreCompleto()
Init()
Paquete superior::Tecnico Evotec
U.NombreCompleto <<forward>>
IniciarSesion()
63
Herramienta de Monitorizacin de Sistemas
Si la autenticacin no tuviera xito se mostrar la ventana que se indica en la Figura 6.1 con
el nombre de Form_Login y que se corresponde con la siguiente imagen:
64
Herramienta de Monitorizacin de Sistemas
Tareas: Donde se trabajar con las tareas asignables a las mquinas cliente. Se
podr crear nuevas tareas, editarlas o borrarlas, ver el estado actual de tareas o
gestionar las tareas programadas.
Maquinas: Donde se podr ver el detalle de las auditoras as como dar acceso a
mquinas cliente al sistema.
65
Herramienta de Monitorizacin de Sistemas
6.1.1.2 Tareas
Desde aqu se podr gestionar las tareas que se registran para las mquinas cliente. Al
cargar se obtienen las tareas existentes y los datos que se utilizarn como filtros, esto es,
Maquinas, Clientes y Tareas
INICIO TAREAS
EvoAgentManager . iu
. Form_Tareas Dao.ClienteDAO
getClientes()
Dominio.Cliente
<<create>>
Cliente[ ] Dao.MaquinaDAO
getMaquinas()
Dominio.Maquina
<<create>>
Maquina[ ]
Dao.TareaDAO
getTareas()
<<create>>
Tarea[ ]
Dao.TareaMaquinaDAO
getTareasMaquinaByPendiente()
TM : Dominio.TareaMaquina
<<create>>
TareaMaquina[]
66
Herramienta de Monitorizacin de Sistemas
DataGridView que tiene un enlace de datos directo a una tabla de un DataSet y mtodos
automticos de ordenacin.
Por ltimo, el men de acciones se encuentra entre el filtro y la lista y comprende cada una
de las acciones que se explicarn ms adelante:
67
Herramienta de Monitorizacin de Sistemas
BUSCAR TAREAS
EvoAgentManager . iu
. Inicio_Tareas
M : Dominio.Maquina
<<create>>
C : Dominio.Cliente
<<create>>
T : Dominio.Tarea
<<create>>
Dao.TareaMaquinaDAO
Dao.TareaMaquinaDAO
getTareasMaquinaByFilters
(M, C, T, Estado) getTareasMaquina()
TM : Dominio.TareaMaquina
<<create>>
TM[ ]
TareaMaquina[]
ACCIONES:
Nueva Tarea:
Se abre una nueva ventana donde se gestiona la creacin de una nueva tarea. Los botones
del men permiten guardar la tarea o abrir la ventana de parmetros de las tareas que se
explican ms adelante.
68
Herramienta de Monitorizacin de Sistemas
El usuario debe seleccionar los datos necesarios para configurar la tarea, tal y como se
muestra en el diagrama de secuencia de la figura 6.8. Se podrn crear varias tareas para
una mquina o para varias mquinas a la vez. Una vez configurado el tipo de Tarea,
dependiendo del mismo, se requerir introducir ms informacin para poder terminar de
configurar la tarea. Esto se indica en el diagrama mediante la llamada de Form_NuevaTarea
a Form_ParametrosTarea con la condicin: [NombreTarea = Auditoria,Servicio,Cuotas], es
decir, que si la tarea es una auditora, un inicio de servicio o una comprobacin de cuotas de
usuario se requiere configurar parmetros.
Al pulsar el botn Guardar se comprueba que se hayan rellenado los campos y se procede a
crear las nuevas tareas y registrarlas en la base de datos a travs de la capa de datos.
Despus se cierra la ventana y se actualizan las tareas en la ventana de tareas (Figura 6.5).
La ejecucin de las tareas y su diseo en los programas agente se puede ver en el apartado
6.1.2.2 Mdulo EvoAgentService, en el punto Ejecutar Tarea.
69
Herramienta de Monitorizacin de Sistemas
NUEVA TAREA
EvoAgentManager . iu
. Form_Tareas
EvoAgentManager . iu EvoAgentManager . iu
. Form_NuevaTarea . Form_ParametrosTarea
NuevaTarea(Maquina[ ],
Cliente[ ], Tarea[ ])
Paquete superior::TecnicoEvotec
<<forward>>
Set(NombreMaquina[],NombreTarea[])
[NombreTarea = Auditoria,Servicio,Cuotas]
InicioParametros( )
<<forward>>
Set(Seleccin[])
<<ok>>
SetParametros()
Set(Fecha,Hora)
T : Dominio.TareaMaquina
Save
<<create>>
[idTarea = 1,4,5]
GetSeleccin()
setT (Maquina,
Tarea, Seleccion, Dao . TareaMaquinaDAO
Fecha)
CreateTareaMaquina( T )
Actualizar()
70
Herramienta de Monitorizacin de Sistemas
Eliminar Tarea:
El usuario debe seleccionar una o varias tareas que desea eliminar de forma que se habilite
el botn eliminar y entonces pulsando dicho botn el sistema obtendr el identificador de la
tarea/as seleccionada/as y proceder a borrarla/as mediante la capa de datos.
Posteriormente se actualiza la lista de tareas mediante el mtodo actualizar que se ver ms
adelante.
ELIMINAR TAREA
EvoAgentManager . iu
. Form_Tareas
Dao.TareaMaquinaDAO
Eliminar Tarea(idTarea)
<<forward>>
Actualizar()
Actualizar Tareas:
ACTUALIZAR
EvoAgentManager . iu
. Form_Tareas
Buscar Tareas()
71
Herramienta de Monitorizacin de Sistemas
Editar Tarea:
Utiliza la misma ventana que el evento Nueva Tarea (Figura 6.7). En este caso el cliente y la
mquina, as como el tipo de tarea vienen definidos por la tarea que hay que pasar de
entrada, la tarea a editar. Dicha tarea debe estar en estado pendiente para poder editarla. El
usuario debe seleccionar una tarea de la lista (Figura 6.5) que desea editar de forma que se
habilite el botn editar y pulsando dicho botn el sistema obtendr la tarea seleccionada y se
la pasar a la ventana nueva tarea. Se puede editar los parmetros de la tarea o la fecha de
ejecucin de la misma.
EDITAR TAREA
EvoAgentManager . iu
. Form_Tareas
EvoAgentManager . iu EvoAgentManager . iu
. Form_NuevaTarea . Form_ParametrosTarea
T : Dominio .
EditarTareaMaquina TareaMaquina
(TareaMaquina)
<<create>>
[NombreTarea = Auditoria,Servicio,Cuotas]
Inicio(Seleccion)
SetParametros()
Show()
<<forward>>
Set(Seleccin[])
<<ok>>
Set(Fecha,Hora)
Save
[idTarea = 1,4,5]
GetSeleccin()
setT(Seleccion,Fecha)
Dao.TareaMaquinaDAO
updateTarea( T )
Actualizar()
72
Herramienta de Monitorizacin de Sistemas
Programar Tarea:
Tarea: La tarea para las mquinas agente que se desea configurar. Dicha
ventana ser la misma que la utilizada para crear una nueva tarea (Figura
6.7).
73
Herramienta de Monitorizacin de Sistemas
74
Herramienta de Monitorizacin de Sistemas
Una vez configurados todos los elementos de la tarea programada y pulsando sobre el botn
Guardar del men de la izquierda el sistema inicia el proceso de guardado de la tarea
programada. A continuacin se muestra el proceso de generacin de una tarea programada
completo (diagrama de secuencia Programar Tarea, Figura 6.16), incluyendo la
configuracin de los diversos elementos. El proceso de guardado de la tarea programada
comienza al finalizar la interaccin con el usuario -momento en el que se pulsa Guardar-
mediante el mtodo Save() que se observa en el diagrama.
75
Herramienta de Monitorizacin de Sistemas
Set(NombreMaquina[],NombreTarea[])
EvoAgentManager . iu
. Form_ParametrosTarea
[NombreTarea = Auditoria,
<<forward>> Servicio,Cuotas]
InicioParametros( )
Set(Seleccin[])
<<ok>>
SetParametros()
Set(NombreUsuario, Password)
Save()
getCredenciales()
TPR : Dominio.TareaProgramada
<<create>>
getTareas() T : Dominio.TareaMaquina
Set(User, Password)
<<create>>
[idTarea = 1,4,5]
GetSeleccin()
setT (Maquina,
Tarea, Seleccion)
TareaMaquina[ ]
SetTareas(T[])
getProgramacion() Tg : Dominio.MiTrigger
<<create>>
setProgramacion()
Tg
SetTrigger(Tg)
Dao.TareaProgramadaDAO
CreateNewTareaProgramada(TPR)
(*1) Contina
76
Herramienta de Monitorizacin de Sistemas
CreateNewTareaProgramada(TPR)
Ta : EvoAgentLibrary
. TaskScheduler . Task
<<create>>
EvoAgentLibrary . Servicios
. InterpreteProgramacionTarea Set( Nombre, WorkingDirectory,
Aplicacin, Creator, Flags,
AccountInformation, Priority)
Tr : EvoAgentLibrary ConvertMiTriggerToTrigger(TPR.Trigger)
. TaskScheduler . Trigger
<<create>>
Set()
Tr
SetTrigger( Tr)
Server.TaskScheduler
CreateTask( Ta )
ConvertTareasMaquinaToXML(TPR.Tareas)
EvoAgentServer . Servicios
. ControlAdmin
DataSet
CreateNewTareaProgramada( DataSet, NombreTarea )
Para guardar la tarea se debe crear tal y como se ha explicado en el apartado 5.1 de este
documento, en la descripcin de la carpeta AdminManager del Servidor de la aplicacin, se
debe crear un fichero ejecutable por lotes de comandos de MS2 de nombre igual a la tarea
programada. Dicho ejecutable, objetivo de la Task de Windows, contiene un comando con el
nombre de la aplicacin que se encarga de registrar la tarea en el servidor seguido del
atributo que es el nombre de la tarea programada. La aplicacin en cuestin lee las tareas a
registrar accediendo al segundo fichero a crear, un fichero de texto plano XML- con ese
mismo nombre que obtiene en el argumento.
77
Herramienta de Monitorizacin de Sistemas
Para ver las tareas programdas que se han creado se debe pulsar el botn Ver Tareas
Programadas. Se mostrar en la lista de la siguiente ventana la informacin de las tareas.
78
Herramienta de Monitorizacin de Sistemas
MostrarTareasProgramadas()
Dao . TareasProgramadasDAO
LT: EvoAgentLibrary .
TaskScheduler . TasksList
getTarProgramadas() getTaskNames()
<<create>>
Tpr : EvoAgentLibrary
openTask(nombre) . TaskScheduler . Task
<<create>>
Tpr
TPR : Dominio.TareaProgramada
<<create>>
EvoAgentLibrary . Servicios EvoAgentServer . Servicios
Set( Nombre, Aplicacin, Creator, . InterpreteProgramacionTarea . AdminManager
User, ProxEjecucion, UltimaEjecucion)
ConvertCommentToMiTrigger(Tpr.Comment)
<<create>>
Tg : Dominio.MiTrigger
Set()
Tg
SetMiTrigger (Tg)
getPropiedadesTareaProgramada(nombreTarea)
DataSet
ConvertXmlToTareasMaquina(DataSet)
<<create>>
Tm : Dominio . TareaMaquina
Set()
TareaMaquina[ ]
SetTareas (Tm[ ])
TareaProgramada[ ]
79
Herramienta de Monitorizacin de Sistemas
La ventana Ver Tareas Programadas (Figura 6.18) posee un men encima de la lista de
tareas a travs del cual se puede:
Tras seleccionar la tarea desde Ver Tareas Programadas (Figura 6.18) y pulsando el botn
eliminar se iniciara el siguiente proceso que borrara por completo la tarea programada del
sistema.
deleteTask(nombre)
deleteTaskProperties(nombre)
<<forward>>
Dicho programa obtiene como argumento el nombre del fichero que contiene las tareas que
debe registrar en el servidor y que reside en su mismo directorio.
Este mismo programa, dependiendo del argumento, le pedir al servidor que registre alertas
en caso de que una mquina agente lleve tiempo sin comunicarse.
80
Herramienta de Monitorizacin de Sistemas
INICIO
SI
Argumentos Leer Mquinas y
Tareas
Leer Argumento
Nombre fichero
De Entrada
NO
Leer Tareas
Comprobacin
Comunicaciones
Obener
Programacion
Tarea
Calcular Prxima
Ejecucin
Registrar
TareaMaquina
FIN
Acciones:
81
Herramienta de Monitorizacin de Sistemas
COMPROBACION COMUNICACIONES
URL
URL
Dao.MaquinasDAO
M[ ]
Dao.AlertaDAO
NewAlerta(Tipo., Maquina,
Parametro, rutaServidor)
registroAlerta
<<forward>>
<<forward>>
2. Crear Tareas:
82
Herramienta de Monitorizacin de Sistemas
CREAR TAREAS
setT(Maquina,
Tarea, Fecha)
createNuevaTarea(T)
6.1.1.3 Maquinas
En este apartado se pretende configurar varios aspectos de los programas agentes
(maquinas). Por otro lado se realizar la presentacin del resultado de las auditoras
realizadas en las mquinas. Se accede a la ventana de mquinas desde la ventana principal.
Al cargarse se sigue el proceso indicado por el siguiente diagrama de secuencia:
83
Herramienta de Monitorizacin de Sistemas
INICIO MAQUINAS
EvoAgentManager . iu
Dao . ClientesDAO
. Form_Maquinas
getClientes()
C:Cliente
<<create>>
Cliente[ ]
Dao . MaquinaDAO
getMaquinas()
M:Maquina
<<create>>
Maquina[ ]
84
Herramienta de Monitorizacin de Sistemas
Buscar Mquina:
Pertenece al cuadro superior de la ventana que acta como filtro de mquinas a mostrar.
Cuando se seleccione un cliente o bien se introduzca el nombre de una mquina o parte de
el y se pulse sobre el botn de bsqueda se proceder a cargar las mquinas en la lista.
Para ello se recurrir a la capa de datos como se indica en el diagrama de secuencia:
BUSCAR MAQUINAS
EvoAgentManager . iu
Dao . MaquinaDAO
. Form_Maquinas
MostrarMaquinas(NombreCliente)
MostrarMaquina(nombreMaquina)
Maquina[]
Un agente o mquina queda configurado segn estos parmetros cuando se pulsa el botn
guardar de la columna de la derecha. En ese momento se procede a guardar la
configuracin mediante la capa de datos tal y como se indica en el diagrama de secuencia:
85
Herramienta de Monitorizacin de Sistemas
EvoAgentManager . iu
. Form_Maquinas Dao . MaquinaDAO
<<forward>>
Debe de seleccionarse una mquina de la lista de la ventana maquina y pulsar el botn Ver
Detalle Maquina. El resultado del proceso de lectura del detalle de una mquina se muestra
en una ventana que contiene todos los campos reflejados en la documentacin presentada
en el Anexo 3 Documentacin sobre las caractersticas del inventario de WinAudit (En
Ingls). Para ello se ha diseado una ventana con un men en la izquierda mediante el cual
se vaya modificando el campo a mostrar, dicha ventana se muestra en la Figura 6.28.
86
Herramienta de Monitorizacin de Sistemas
Antes de mostrar el proceso que se sigue para generar el detalle de una mquina se ha de
entender que la informacin procede de los ficheros xml que genera la aplicacin WinAudit.
Es, por tanto, necesario la generacin de un mtodo uniforme de lectura de dichos datos y la
generacin de clases dentro del dominio para definir cada uno de los apartados. La lectura
del fichero xml se puede hacer una nica vez mediante el uso de variables de estado para
indicar el lugar del documento en que se encuentra el lector. Dicho lector es un
XmlTextReader. As, con las clases diseadas y siguiendo el orden de categoras que se
observa en los ficheros xml generados y que es el mismo que el mostrado en el men de la
Figura 6.28 el proceso de lectura sera el que se muestra a continuacin:
87
Herramienta de Monitorizacin de Sistemas
LeerAuditoria(Auditoria, VG : Dominio.WinAudit.
urlWorkingDirectory) VistaGeneral
<<create>>
Set()
Act : Dominio.WinAudit.
<<create>> Maquina_Actualizacion
Set()
P : Dominio.WinAudit.
<<create>> Maquina_Programa
Set()
SO : Dominio.WinAudit.
<<create>> Maquina_SSOO
Set()
Pf : Dominio.WinAudit.
<<create>> Maquina_Periferico
Set()
PuA : Dominio.WinAudit.
<<create>> Maquina_PuertoAbierto
Set()
SS : Dominio.WinAudit.
<<create>> Maquina_SettingSeguridad
Set()
PrivilegiosUsuario :
<<create>> String
Set()
WFS : Dominio.WinAudit.
<<create>> Maquina_WindowsFirewallSeting
Set()
TP : Dominio.WinAudit.
<<create>> Maquina_TareaProgramada
Set()
(*1) Contina
El documento xml reside en el servidor y debe ser descargado mediante la clase DataSet.
As, el argumento Auditora que recibe el mtodo es un dataSet que contiene el Xml. Un
DataSet tiene un mtodo que permite escribir el contenido como xml, as, se podra crear un
fichero xml a leer por el XmlTextReader. El otro parmetro urlWorkingDirectory le indica al
mtodo donde escribir y leer dicho fichero. A partir de ah, se debe realizar la lectura de cada
uno de los campos rellenando como se ve en la Figura 6.29 y siguientes:
88
Herramienta de Monitorizacin de Sistemas
EA : Dominio.WinAudit.
<<create>> Maquina_EstadisticasArranque
Set()
Err : Dominio.WinAudit.
<<create>> Maquina_ErrorLog
Set()
NF : Dominio.WinAudit.
<<create>> Maquina_NetworkFile
Set()
NSe : Dominio.WinAudit.
<<create>> Maquina_NetworkSession
Set()
NSh : Dominio.WinAudit.
<<create>> Maquina_NetworkShare
Set()
NTCP : Dominio.WinAudit.
Maquina_NetworkTCPIPControler
<<create>>
Set()
NBA : Dominio.WinAudit.
<<create>> Maquina_NetBIOSAdapter
Set()
Dis : Dominio.WinAudit.
<<create>> Maquina_Dispositivo
Set()
CP : Dominio.WinAudit.
<<create>> Maquina_CaractristicaPantalla
Set()
I : Dominio.WinAudit.
<<create>> Maquina_Impresora
Set()
(*2) Contina
Para devolver todos los campos se crear una clase que los contenga a todos con el nombre
de CamposAuditoria. Cuando se termine de leer los campos, se rellenar dicha clase y se
devolver al solicitante de la lectura como se ve en la Figura 6.31.
89
Herramienta de Monitorizacin de Sistemas
PtC : Dominio.WinAudit.
<<create>> Maquina_PortConnector
Set()
SysSt : Dominio.WinAudit.
<<create>> Maquina_SystemSlot
Set()
Pr : Dominio.WinAudit.
<<create>> Maquina_Procesador
Set()
Memo : Dominio.WinAudit.
<<create>> Maquina_Memoria
Set()
Df : Dominio.WinAudit.
<<create>> Maquina_DiscoFisico
Set()
Dl : Dominio.WinAudit.
<<create>>Maquina_DiscoLogico
Set()
PA : Dominio.WinAudit.
<<create>> Maquina_ProgramaArranque
Set()
Servicio : Dominio.WinAudit.
<<create>> Maquina_Servicio
Set()
Driver : Dominio.WinAudit.
<<create>> Maquina_Servicio
Set()
PE : Dominio.WinAudit.
<<create>> Maquina_ProgramaEjec
Set()
Mod : Dominio.WinAudit.
<<create>> Maquina_Modulo
Set()
CA : Dominio.WinAudit.
<<create>> CamposAuditoria
La tarea auditora de una mquina debera ejecutarse diariamente con los campos
necesarios para generar alertas, y se puede disear para que la auditoria de un da elimine
la del da anterior siempre que tenga los mismos campos auditados y as no se produzca
acumulacin de auditorias. No obstante, se podr llegar a tener registradas varias auditorias
de una misma mquina por lo que es necesario leer los campos coincidentes de la ms
reciente con lo que ser necesario gestionar la lectura de auditorias y los campos final que
se presentan.
91
Herramienta de Monitorizacin de Sistemas
VerDetalleMaquina(idmaquina)
getAuditorias(idMaquina)
DA:DetalleAuditoria
<<create>>
DetalleAuditoria[ ]
EvoAgentServer . Servicios
getAuditoriasXML(DA[ ].idAuditoria) . ControlAdmin
getAuditoriasXML(idAuditorias[ ])
Ds: System.Data.DataSet
<<create>>
readXML(ruta+idAuditoria)
DataSet[ ]
DataSet[ ]
gestionAuditoriaDetalleMaquina
CAdef : Dominio.WinAudit.
(DA[ ], D[ ], urlWorkingDirectory)
<<create>> CamposAuditoria
LeerAuditoria(Auditoria, urlWorkingDirectory)
LeerAuditoria
CamposAuditoria
set(CamposSeleccionados)
CAdef , camposSelec[ ]
92
Herramienta de Monitorizacin de Sistemas
6.1.1.4 Clientes\Dominios
Es el mdulo pensado para la gestin de dominios bajo los que se identificarn las mquinas
con los clientes. Dicha asociacin se hace necesaria si se desean registrar alertas en la
aplicacin CRM y asociarlas a un cliente registrado. Al iniciar se carga el mdulo con los
datos necesarios siguiendo el siguiente proceso:
INICIO CLIENTES
EvoAgentManager . iu
Dao . ClientesDAO
. Form_Clientes
getClientes()
C : Dominio.Cliente
<<create>>
Cliente[ ]
Dao . DominioDAO
getDominios()
D : Dominio.Dominio
<<create>>
Dominio[ ]
Dao . MaquinaDAO
getMaquinas()
M : Dominio.Maquina
<<create>>
Maquina[ ]
Tras cargar los datos necesarios se mostrar la siguiente ventana desde la que se puede
acceder a las diferentes funciones del mdulo.
93
Herramienta de Monitorizacin de Sistemas
<<forward>>
94
Herramienta de Monitorizacin de Sistemas
Actualizar Clientes:
Como se ha explicado anteriormente, el cliente asociado a una mquina tiene una funcin
especfica que es la de servir de referencia a la hora de generar alertas en la aplicacin
CRM. Por tanto, la gestin de clientes registrados en el sistema se llevar a cabo mediante
el uso de los clientes registrados en dicha aplicacin. Se podr copiar clientes del CRM o
borrar clientes registrados.
AGREGAR CLIENTES
EvoAgentManager . iu
Dao.ClientesDAO Dao . CRMDAO
. Form_Clientes
getClientesCRM()
CRMCli : Cliente
<<create>>
CRMCli[ ]
getClientes()
Cli:Cliente
<<create>>
EvoAgentManager . iu
Cli[ ] . Form_SelectElementos
MostrarClientes((CrmCli[] - Cli[]).nombreCli)
Paquete superior::Tecnico
<<forward>>
Select+OK
nombre[ ]
createNewClientes(Cliente[ ])
Actualizar()
95
Herramienta de Monitorizacin de Sistemas
Para agregar clientes se mostrarn, por tanto, los clientes que estn registrados en el CRM y
no lo estn en el sistema y se permitir al usuario seleccionar los que se desean agregar.
Para ello se mostrar una ventana simple como la siguiente:
Al eliminar un cliente del sistema hay que tener en cuenta las mquinas y los dominios
asociados:
96
Herramienta de Monitorizacin de Sistemas
EvoAgentManager . iu Dao.ClientesDAO
ELIMINAR CLIENTES
. Form_Clientes
getClientes()
Cli:Cliente
<<create>>
EvoAgentManager . iu
Cli[ ] . Form_SelectElementos
MostrarClientes(Cli[])
Paquete superior::Tecnico
<<forward>>
Select+OK
nombre[ ]
deleteClientes(idCliente[])
<<forward>>
Dao.DominioDAO
updateDominio(idDominio[ ], idCli=null)
D:Dominio.Cliente
<<create>>
Set(idCli = null,
Actualizar() sRazon = null)
Dao.MaquinaDAO
updateMaquina
(idMaquina[ ], idCli=null,sRazon = null) M:Dominio.Maquina
<<create>>
Set(idCli = null,
Actualizar() sRazon = null)
Asociar Dominio con Cliente: Se trata de rellenar la propiedad cliente del dominio. Se
deber indicar el cliente y el dominio en la parte superior izquierda de la ventana de la
Figura 6.34.
97
Herramienta de Monitorizacin de Sistemas
updateDominio(idCliente,
idDominio) getCliente(idCli)
C:Cliente
<<create>>
D:Dominio.Dominio
<<create>>
setCliente(C)
Actualizar()
EvoAgentManager . iu EvoAgentManager . iu
. Inicio_Clientes . Form_SelectElementos
MostrarMaquinas[Nombres]
Paquete superior::Tecnico
<<forward>>
Select+OK
nombres[]
Dao.MaquinaDAO
updateMaquina(Dominio, idMaquina[])
M:Maquina
<<create>>
setM(D.idDom,D.nombreD,
Actualizar() D.idCli,D.nombreC)
98
Herramienta de Monitorizacin de Sistemas
Los dominios existentes en el sistema con sus clientes asociados se mostrarn en el cuadro
superior derecho de la Figura 6.34. Para agregar mquinas a un dominio se deber
seleccionar un dominio y pulsar sobre asociar mquinas y Agregar. En el proceso ser
necesario seleccionar las mquinas que se desean asociar para lo cual se utilizar de nuevo
la ventana de la Figura 6.37.
Para borrar mquinas se proceder de la misma manera pulsando, esta vez, sobre asociar y
borrar.
EvoAgentManager . iu EvoAgentManager . iu
. Form_Clientes . Form_SelectElementos
MostrarMaquinas[Nombres]
Paquete superior::Tecnico
<<forward>>
Select+OK
nombres[]
Dao . MaquinaDAO
UpdateMaquina(idMaquina[ ],
null, null, null, null) M:Maquina
<<create>>
99
Herramienta de Monitorizacin de Sistemas
EvoAgentManager . iu
Dao . DominioDAO Dao . MaquinaDAO
. Inicio_Clientes
deleteDominio(idDom)
D:Dominio
<<destroy>>
updateMaquinas(idmaquina[],null,null,null,null)
M:Maquina
<<create>>
6.1.1.5 Logs
Este apartado esta pensado para la gestin de errores en el funcionamiento de la aplicacin
y para el control de las actividades de las mquinas agente.
Los errores pueden haber sido generados por las mquinas cliente, por el servidor o por la
interfaz registrndose en la base de datos del servidor. Un error pertenece a una clase
definida en el Framework de .NET denominada Exception. Dicha clase posee una
descripcin del error que incluye el origen en el cdigo del error. La descripcin de un error
suele ser una cadena de texto bastante extensa con lo que se ha diseado un mecanismo
mediante el cual las descripciones se guardarn mediante archivos de texto (.txt) en una
carpeta en el servidor carpeta incidencias - , con un nombre que equivale al identificador
con el que se almacenar en la base de datos. En la base de datos se almacenar tambin
el origen y la fecha del error.
100
Herramienta de Monitorizacin de Sistemas
En la Figura 6.43 se observa que la ventana tendr dos pestaas en la parte superior para
poder cambiar entre acciones y Errores. La figura muestra la pestaa Errores. Se observa un
filtro de bsqueda de errores en la parte superior. En el despegable Origen se mostrar
cliente o servidor y se referirn a los errores generados en los agentes o en el servidor e
interfaz respectivamente. Seleccionando cliente se podr escoger los errores de un cliente
especfico o de una mquina especfica. Al mostrar los errores se seguir el siguiente
proceso, mediante el cual se obtiene la informacin del error registrada en la base de datos:
VER ERRORES
EvoAgentManager . iu
Dao . ErroresDAO
. Form_Log
getErrores(Origen, Fechas)
E : Dominio . ErrorAplicacion
<<create>>
ErrorAplicacion[ ]
101
Herramienta de Monitorizacin de Sistemas
Una vez se muestren los errores se podr acceder a la descripcin pulsando sobre el botn
Ver Descripcin que aparecer sobre la misma lnea del error. Se lanza un proceso que
descargar el archivo de texto des servidor mediante el servicio web de administacin:
getDescripcionError(id, Tipo)
String desc
String desc
System.Windows.Forms.
<<create>> MessageBox
Para mostrar la descripcin se usar una clase del Framework de .NET denominada
MessageBox que, pasndole los parmetros que se observan en el diagrama de secuencia
de la Figura 6.45, muestra la siguiente ventana:
Borrar Errores: Se podr borrar un error especfico pulsando sobre el botn borrar
que aparece al final de la misma lnea que la informacin del error. Tambin se
pueden borrar todos los errores que aparecen en la lista de errores. Se seguir el
siguiente proceso:
102
Herramienta de Monitorizacin de Sistemas
BORRAR ERROR
deleteError(id, Tipo)
err : Dominio.ErrorAplicacion
<<delete(id)>>
REGISTRO ERROR
<<forward>>
103
Herramienta de Monitorizacin de Sistemas
Como se ve la ventana tambin tiene una caja en la parte superior mediante la que realizar
un filtro de bsqueda. En este caso, a diferencia de los errores, slo se originan acciones en
los clientes. Al seleccionar una mquina se podr ver las acciones realizadas por la misma
en la fecha marcada. Se puede seleccionar ver las acciones registradas para una mquina
en todos los das.
Se podr borrar un log de un da de una mquina o borrar el log a partir de una fecha. Los
procesos seguidos son los tpicos ya vistos de acceso a los datos mediante la capa de datos,
para obtener Acciones o borrarlas.
104
Herramienta de Monitorizacin de Sistemas
Gestin de Alertas:
Los tipos de alertas ya se han podido ver a lo largo del presente documento, en especial
en el apartado 4.1 Modelo de Dominio, y son los generados por estados en los discos
lgicos de una mquina agente, en la memoria, en el conjunto del software instalado, en
los errores registrados en el log de Windows, en los servicios de Windows, en el tamao
de las cuotas de los usuarios de un dominio, en la ejecucin de tareas programadas, en
las backup locales o en los usuarios registrados en un dominio. Las cuatro ltimas son
especficas de un agente servidor de dominio. El resto se aplica a los dos tipos de
agentes, pc y servidor.
Para cada posible elemento generador de alerta existir un filtro exclusivo. En la siguiente
ventana se aprecian los posibles filtros:
105
Herramienta de Monitorizacin de Sistemas
EvoAgentManager . iu
. Form_GestionAlertas/
Dao . SettingsDAO
Form_GestionVersiones
updateSetting(valor, idSetting)
AS:Dominio.ApplicationSetting
<<create>>
Set(valor)
106
Herramienta de Monitorizacin de Sistemas
CARGAR SETTINGS
EvoAgentManager . iu
. Form_GestionAlertas/
Dao . SettingsDAO
Form_GestionVersiones
getSettings()
AS:Dominio.ApplicationSetting
<<create>>
ApplicationSetting[ ]
108
Herramienta de Monitorizacin de Sistemas
Gestin de Usuarios:
Se han establecido dos tipos de Usuarios. Usuario Administrador y Usuario Tcnico. Los
Usuarios Administrados tendrn acceso a toda la aplicacin mientras que los tcnicos no
podrn acceder a este apartado ni al apartado Gestin de Versiones. Si se tiene permiso
para acceder se mostrar la siguiente ventana:
109
Herramienta de Monitorizacin de Sistemas
Para cargar la ventana anterior se sigue el siguiente proceso mediante el cual se valida
el usuario utilizando la clase que se cre al iniciar la aplicacin con las credenciales del
usuario y, si pertenece al grupo de administradores, se cargan los usuarios registrados
en el sistema:
EvoAgentManager . iu EvoAgentLibrary .
. Form_GestionUsuarios Dao . UsuarioAplicacionDAO CredencialesUsuario
compruebaUsuarioAdmin()
get(Current.User)
getTipoUsuario(User)
U:Dominio.UsuarioAplicacion
<<create>>
TipoUsuario
bool
getUsuarios()
U:Dominio.UsuarioAplicacion
<<create>>
Usuarios[ ]
110
Herramienta de Monitorizacin de Sistemas
EvoAgentManager . iu
. Form_GestionUsuarios Dao . UsuariosAplicacionDAO Dao . CrmDAO
AGREGAR USUARIOS
getUsuariosCRM()
CrmU : Dominio .
<<create>> UsuarioAplicacion
CrmU[ ]
EvoAgentManager . iu
mostrar(CrmU[ ]-U[ ]) . Form_SelectElementos
Paquete superior::Tecnico
<<forward>>
Select+OK
Usuario[ ]
createUsuario(Usuario)
U : Dominio .
<<create>> UsuarioAplicacion
Set(id,
NombreCompleto,
NombreSesion, Tipo)
111
Herramienta de Monitorizacin de Sistemas
BORRAR USUARIO
EvoAgentManager . iu
. Form_GestionUsuarios Dao . UsuariosAplicacionDAO
EvoAgentManager . iu
mostrar(U[ ]) . Form_SelectElementos
Paquete superior::Tecnico
<<forward>>
Select+OK
Usuario[ ]
createUsuario(Usuario)
<<delete>> U : Dominio .
UsuarioAplicacion
Gestin de Usuarios:
INICIO
Instalacin
Componentes de
la aplicacion
Escritura Clave de
registro de arranque
del programa
EvoAgentIcon
Ejecucin XML
auditora vista Auditora
general
Registro y
Obtencin de
Clave
IdMaquina
Escritura Clave
de registro
IdMaquina
FIN
Figura 6.62 Diagrama de Flujo. Instalacin
113
Herramienta de Monitorizacin de Sistemas
114
Herramienta de Monitorizacin de Sistemas
AltaMaquinaCliente(DataSet)
existeDominio(nombreD) D:Dominio
<<create>>
No
createDominio(idD,nombreD)
D:Dominio
<<create>>
setD(id,nombre)
idDom
registraMaquina(idMaquina,nombreHost,idDom,nombreDom
, idCli, nombreCli,timestamp, !permiso) M:Maquina
<<create>>
setM()
IdMaquina
5. Escritura Clave de Registro idMaquina: La clave que recibe del servidor tras el
registro es la que utilizar en el futuro para comunicarse con el, por lo tanto,
se debe almacenar en un lugar fijo y seguro, en este caso, se crea una
entrada con la clave en el registro de Windows.
115
Herramienta de Monitorizacin de Sistemas
Inicio
NO
Temporizador
Hay Comprueba
Permiso Permiso ERROR DE Registro de
CONEXIN Error en Local
SI
Pregunta Versin
del Cliente
Instalador
Versin
Instalada
Versin del Cliente != Obtener Nueva Instalar Nueva
SI
Versin Instalada Version Versin
NO NO Errores
Envo de
Lee Errores Hay Errores o
SI Errores y
Registrados Acciones
Acciones
NO
NO SI NO
Registro
Hay Tareas SI
Tareas
Tareas
Tareas
Pendientes
Pendientes Errores
SI Registro de
Error en Local
Inicio
Temporizador 2
ERROR
Vencimiento Temporizador
SI
Envo
Resultado
116
Herramienta de Monitorizacin de Sistemas
EvoAgentService . EvoAgentService .
EvoAgentService
ComunicacionServidor ConfigAgente
comprobarPermiso()
getIdMaquina()
IdMaquina
EvoAgentServer . services
getWebService() . ControlCliente
getInstance()
ControlClientes Dao . MaquinasDAO
comprobarPermiso(idMaquina)
ValidaMaquina(idMaquina)
OK
OK
117
Herramienta de Monitorizacin de Sistemas
Una vez que se ha comprobado que el agente tiene permiso para acceder al sistema y
que la comunicacin es correcta, se puede proceder con el resto de acciones.
Comprobar Versin del Cliente: Tras comprobar la comunicacin y el permiso hay que
comprobar que la versin del agente instalado en la mquina es la correcta para que
no haya errores en la comunicacin y sepa interpretar los mandatos obtenidos.
Para ello, se establece un atributo en el programa agente que indica su versin. Dicho
argumento ser enviado en la comunicacin para que sea el servidor el que
compruebe si es correcto comparndolo con el parmetro del sistema existente Tal y
como se ha visto en el apartado 6.1.1.6 Mdulo Settings, existe un setting del sistema
que indica la ltima versin de los programas agente existente. El proceso seguido se
indica en el siguiente diagrama de secuencia:
EvoAgentService . EvoAgentService .
EvoAgentService ComunicacionServidor ConfigAgente
getVersionCliente()
IdMaquina
getVersion()
Version
EvoAgentServer . services
getWebService() . ControlClientes
getInstance()
ControlClientes Dao . MaquinasDAO Dao . SettingsDAO
CompruebaVersion(idMaquina, Version)
validaMaquina(idMaquina)
ok
getVersionCliente()
versin
bool OK
bool OK
EvoAgentService . EvoAgentService .
EvoAgentService ComunicacionServidor ConfigAgente
OBTIENE NUEVA VERSION
getRutaRepositorio()
getIdMaquina()
IdMaquina
EvoAgentServer . services
getWebService() . ControlClientes
getInstance()
ControlClientes Dao . MaquinasDAO Dao . SettingsDAO
getRutaRepositorio(idMaquina)
validaMaquina(idMaquina)
ok
getRutaRepositorio()
Ruta
Ruta
Ruta EvoAgentServer
HttpWebRequest(Ruta)
NuevaVersion.msi
Instalar Nueva Versin: Para instalar la nueva versin se debe crear un proceso que
ejecute el archivo que se ha descargado en el punto anterior. El sistema operativo se
encarga de controlar el proceso de instalacin. Si encuentra que existe un programa
con el mismo cdigo identificador de programa y misma versin o superior generar un
error y no continuar con la instalacin. Si la versin es anterior, proceder a
desinstalar la versin anterior e instalar la nueva. Si la versin anterior cuenta con un
programa que est ejecutndose, parar el programa (en este caso el servicio de
windows) e intentar reiniciarlo tras la instalacin de la nueva versin.
119
Herramienta de Monitorizacin de Sistemas
EvoAgentService .
LogAgente Log : System. Xml .
XmlDocument
REGISTRO DE ERROR EN LOCAL
Load(workingDirectory
+ log.xml) idError : System. Xml
<<create>> . XmlNode
Set(InnerText = error.idError)
Fecha : System. Xml .
<<create>> XmlNode
Set(InnerText = error.fecha)
Error : System. Xml .
<<create>> XmlNode
AppendChild(idError)
AppendChild(Fecha)
get(ChildNode[0])
Errores : System. Xml
<<create>> . XmlNode
Errores
AppendChild(Error)
Save(workingDirectory
+ log.xml)
'idError' : System. IO
<<create(workingDirectory)>> . File
Write(error.descripcion)
Close()
Como se puede observar en el diagrama de secuencia los eventos de log del agente
se almacenarn en un fichero tipo .xml con una rama para los errores y otra para las
acciones. En los errores, al tratarse la descripcin en algunos casos de un bloque
largo de texto se utilizar un documento de texto (.txt) con el identificador del error
como nombre del documento, anlogamente al tratamiento de los mismos en el
120
Herramienta de Monitorizacin de Sistemas
servidor. Por lo tanto el registro de una accin ser similar, obviando la creacin del
documento de texto.
EvoAgentService .
LogAgente Log : System. Xml .
XmlDocument
Load(workingDirectory LECTURA DE ERRORES EN LOCAL
+ log.xml)
Get(ChildNode)
Errores : System. Xml
<<create>> . XmlNode
Errores
getChild()[i]
Error : System. Xml .
<<create>> XmlNode
Error
getChild()[0].InnerText
idError : System. Xml
<<create>> . XmlNode
idError
getChild()[1].InnerText
Fecha : System. Xml .
<<create>> XmlNode
Fecha
'idError' : System. IO
<<create(workingDirectory + idError)>> . File
ReadToEnd()
descripcion
Delete()
error : Dominio .
<<create>> ErrorAplicacion
RemoveAll()
Error : System. Xml .
<<delete>> XmlNode
Save(workingDirectory
+ log.xml)
ste mtodo obtiene el directorio de trabajo donde reside el documento log.xml, lee
todas las entradas de la rama errores del documento, obteniendo el identificador y la
fecha del error. Con el identificador, abre el documento de texto asociado que contiene
la descripcin, elimina dicho documento de texto y crea la clase error. Una vez hecho
esto para todos los errores registrados, borra las entradas del documento log.xml y lo
guarda. Devuelve todos los errores leidos.
IdMaquina
EvoAgentServer . services
getWorkingDirectory() . ControlCliente
WorkingDirectory
getWebService()
getInstance()
ControlClientes
getErrores(WorkingDirectory)
Lectura de Errores
Error[ ] en Local Dao . MaquinaDAO Dao . ErrorAplicacionDAO
validaMaquina(idMaquina)
ok
getMaquina(idMaquina)
M:Maquina
<<create>>
E:Dominio . ErrorAplicacion
<<create>>
registroError(Error)
registroError
122
Herramienta de Monitorizacin de Sistemas
Como se puede ver, hace uso del proceso anteriormente visto en la figura 6.69 al leer
los errores de local y tambin utiliza un proceso llamado registro Error hubicado en la
capa de datos de la librera. Dicho proceso se ha explicado en la figura 6.48, y sirve
para guardar un error en el servidor.
Las acciones del agente siguen un tratamiento similar a los errores, solo que no es
necesario crear documentos de texto asociados para las descripciones.
Tarea Diaria: Tras enviar las entradas del log pendientes o si no hubiera ninguna se
debe comprobar si se ha realizado la tarea diaria. Los agentes sern configurados
para realizar una tarea todos los das. En el servidor de la aplicacin existir un campo
junto con la informacin de los agentes que indique la ltima ejecucin de la tarea
diaria de cada uno de ellos. As, en cada intervalo, se comprobar si la ltima
ejecucin es la de hoy de forma que slo se ejecutar en el primer intervalo del da. La
primera accin, es comprobar si se debe ejecutar la tarea diaria:
EvoAgentService . EvoAgentService .
EvoAgentService
ComunicacionServidor ConfigAgente
comprobarTareaDiaria()
getIdMaquina()
IdMaquina
EvoAgentServer . services
getWebService() . ControlCliente
getInstance()
ControlClientes Dao . MaquinasDAO
comprobarTareaDiaria(idMaquina)
ValidaMaquina(idMaquina)
OK
getTareaDiaria(idMaquina)
OK
OK
OK
123
Herramienta de Monitorizacin de Sistemas
Si se debe ejecutar la tarea diaria el agente debe verificar a que tipo de agente
pertenece, si es PC o Servidor. El proceso es idntico al de la figura 6.71 y,
consecuentemente, al de la figura 6.65 slo que se solicita a la clase MaquinaDAO el
tipo de agente en lugar del permiso o de la tarea diaria, con lo que no se mostrar el
diagrama de secuencia.
Una vez obtenido el tipo de agente se procede a ejecutar la tarea en funcin del tipo.
En cualquier caso se ejecuta una auditora. La ejecucin de una auditora sigue el
siguiente diagrama de flujo:
INICIO
NO
Fin XML
Ejecucin? Auditora
SI
Lectura
Auditora
Lectura de la
clave de
mquina del
registro
Envo de la
Auditora
FIN
124
Herramienta de Monitorizacin de Sistemas
SeleccionAuditoria
EvoAgentServer . services
. ControlCliente
registraAuditora(SeleccionAuditoria, xml.Auditora)
getIdMaquina()
EvoAgentLibrary . Dao
IdMaquina . DetalleAuditoriaDAO
getWebService()
getInstance()
ControlClientes
Dao . MaquinaDAO
registroAuditoria(idMaquina,
seleccionAudit, DataSet) validaMaquina(idMaquina)
ok
nuevaAuditoria(idMaquina,
seleccion, ds,
workingDirectory)
(*1) Contina
Una vez guardada la nueva auditora se procede a realizar el control de la misma para
la generacin de alertas a traves de la clase ControlNuevaAuditora de la librera.
Si todo va bien, al terminar el control se enva un correcto al Servicio para que siga su
trabajo.
125
Herramienta de Monitorizacin de Sistemas
EvoAgentLibrary . Dao
. DetalleAuditoriaDAO
getAuditorias D : Dominio.DetalleAuditoria
(idMaquina) <<create>>
D[ ]
[seleccion.Contains
(D[].seleccion)] D : Dominio.DetalleAuditoria
Delete <<delete>>
(D.idAuditoria)
AU : System.IO.File
Delete(workingDirectory
+ D.idAuditoria)
D : Dominio.DetalleAuditoria
<<create>>
ControlAuditoria(idMaquina, Ds,
EvoAgentService . idAuditoria, workingDirectory)
ComunicacionServidor <<forward>> Control Auditoria
OK
OK
126
Herramienta de Monitorizacin de Sistemas
CONTROL AUDITORIA
EvoAgentLibrary . services EvoAgentLibrary . services
. ControlNuevaAuditoria . LeerAuditoriaXML
Dao . MaquinaDAO
getMaquina(idMaquina)
M : Dominio.Maquina
<<create>>
M Dao . SettingsDAO
getElementosGeneradores(M.tipoAgente)
ElementoGeneradorActivo[ ]
LeerAuditoria(workingDirectory+idAuditoria, dataSet)
LeerAuditoria
CamposAuditoria
EvoAgentLibrary . services
. ControlNuevaAuditoria
ControlProgramas(CamposAuditoria.Programas,
bool ElementoActivo, M, workingDirectory)
control Programas
<<forward>>
ControlDiscos(CamposAuditoria.DiscosLogicos
,bool ElementoActivo, M, workingDirectory)
control Discos
<<forward>>
ControlMemoria(CamposAuditoria.Memoria
,bool ElementoActivo, M, workingDirectory)
control Memoria
<<forward>>
ControlServicios(CamposAuditoria.Servicios
,bool ElementoActivo, M, workingDirectory)
control Servicios
<<forward>>
ControlErrores(CamposAuditoria.Errores
,bool ElementoActivo, M, workingDirectory)
control Errores
<<forward>>
Por cada elemento se crea un mtodo para gestionar cuando generar alertas.
128
Herramienta de Monitorizacin de Sistemas
getProgramas(idMaquina)
P : Dominio.WinAudit.
<<create>>Maquina_Programa
P[ ]
Dao . ProgramaDAO
NewPrograma
(CamposAuditoria.Programas[ ] - P[ ])
Dao . SettingsDAO
getFiltroProgramas()
string[] filtros
Dao.AlertaDAO
[!NuevoPrograma.Contains(Filtros)]
NewAlerta(Tipo, M,
Alta Programa..., rutaServidor) registroAlerta
Dao . ProgramaDAO
P : Dominio.WinAudit.
DeleteDesinstalados(P[ ] Maquina_Programa
<<delete>>
- CamposAuditoria
.Programas[ ] )
Dao.AlertaDAO
[!ProgramaDesinstalado
.Contains(Filtros)] NewAlerta
(Tipo, M, Baja Programa..., registroAlerta
rutaServidor)
getMaximoOcupacionDisco()
procentaje
Dao.AlertaDAO
[Disco.PorcentajeOcupacion>Maximo]
NewAlerta(Tipo, M,
Espacio en disco..., rutaServidor) registroAlerta
130
Herramienta de Monitorizacin de Sistemas
getMnimoMemoriaLibre()
procentaje
Dao.AlertaDAO
[Memoria.PorcentajeLibre>Mnimo]
NewAlerta(Tipo, M,
Memoria RAM..., rutaServidor) registroAlerta
getFiltroServicios(NombreServicio,
M.tipoAgente)
Dao.AlertaDAO
[estado = activo]
NewAlerta(Tipo, M,
ServicioAutomatico..., rutaServidor) registroAlerta
131
Herramienta de Monitorizacin de Sistemas
Control Errores: Todo error del log de windows generara una alerta a no
ser que tuviera un filtro asociado y desactivado (Ver Filtro de Errores en
Gestin de alertas en el apartado 6.1.1.6 Mdulo Settings). El sistema
registra cada nuevo error en el sistema para poder aplicarle un filtro. Los
errores se identifican por su id de instancia.
getErrores(idMaquina)
E : Dominio.WinAudit.
<<create>> Maquina_Error
E[ ]
Dao . ErrorMaquinaDAO
NewError
(CamposAuditoria.Errores[ ] E[ ])
Dao . SettingsDAO
getFiltroErrores(NewError.idInstance, M.TipoAgente)
Dao.AlertaDAO
[estado = activo]
NewAlerta(Tipo, M,
Error del log..., rutaServidor) registroAlerta
Una vez registrada la auditora y generadas las alertas oportunas el servicio contina
con la tarea diaria.
En funcin del tipo de agente obtenido se procede con el resto de tareas que
comprenden las tareas diarias. Para ambos casos, osea, pcs y servidores, se realiza
una desfragmentacin de los discos duros si se ha activado la propiedad en la
especificacin de la mquina (Ver Modificar las propiedades de un programa agente en
132
Herramienta de Monitorizacin de Sistemas
Para los agentes de tipo servidor se han diseado dos tareas: la comprobacin de la
correcta ejecucin de tareas programadas y el control de los usuarios registrados en el
dominio. Para el control de los usuarios de un dominio de Windows se utilizarn
comandos publicados por Microsoft para la gestin del controlador de dominio como el
comando dsquery user con los parmetros inactive y otros (Ver la documentacin en
http://technet2.microsoft.com/windowsserver/en/library/46ba1426-43fd-4985-b429-
cd53d3046f011033.mspx?mfr=true). Otra tarea declarada como tarea programable es la
comprobacin de cuotas. Se puede ver como crear la tarea en el apartado 6.1.1.2
Tareas, en Nueva Tarea, y en que consiste y como se ha diseado en el punto Ejecutar
Tarea ms abajo. Para la comprobacin de tareas programadas se utilizar la librera
comentada en el apartado 2.6.4 Windows Task Scheduler.
Una vez terminada la tarea diaria se comunica al servidor para que actualice el
parmetro.
133
Herramienta de Monitorizacin de Sistemas
EvoAgentService . EvoAgentService .
EvoAgentService
ComunicacionServidor ConfigAgente
getNumTareas()
IdMaquina
EvoAgentServer . services
getWebService() . ControlCliente
getInstance()
ControlClientes EvoAgentServer . dao
. MaquinasDAO
getNumTareas(idMaquina)
EvoAgentServer . dao
ValidaMaquina(idMaquina) . TareaMaquinaDAO
OK
getNumTareas(idMaquina)
numeroTareas
numeroTareas
numeroTareas
getTareas(numTareas)
getIdMaquina()
IdMaquina
getWebService()
getInstance()
ControlClientes
getTareas(idMaquina)
ValidaMaquina(idMaquina)
OK
getTareas(idMaquina)
EvoAgentServer . dao
<<create>>. TareaMaquinaDAO
EvoAgentService .
ControlTareas
TareaMaquina[ ]
String Tarea[ ]
Tarea[ ]
setTareas(Tarea[ ])
134
Herramienta de Monitorizacin de Sistemas
135
Herramienta de Monitorizacin de Sistemas
ENVO RESULTADO
EvoAgentService . EvoAgentService .
EvoAgentService ComunicacionServidor ConfigAgente
ResultadoTareaMaquina( getIdMaquina()
idTarea,fecha,resultado)
IdMaquina
EvoAgentServer . services
getWebService() . ControlCliente
getInstance()
ControlClientes Dao . MaquinasDAO
validaMaquina(idMaquina)
Dao . TareaMaquinaDAO
ok
setTareaRealizada(idTarea)
T:TareaMaquina
<<create>>
setT(realizada)
136
Herramienta de Monitorizacin de Sistemas
EvoAgentService . EvoAgentService .
ComunicacionServidor ConfigAgente
getInstance()
ControlClientes Dao . MaquinaDAO Dao . ErrorAplicacionDAO
[error]
RegistraError(idMaquina, idError
fecha, descripcion) validaMaquina(idMaquina)
getWorkingDirectory() ok
WorkingDirectory
getMaquina(idMaquina)
M:Maquina
EvoAgentService .
LogAgente <<create>>
RegistraError
(WorkingDirectory
,Error) registroError M
en Local E:Dominio . ErrorAplicacion
<<create>>
registroError(Error)
registroError
El intervalo termina al ejecutar todas las tareas. El servicio se queda dormido hasta el
siguiente intervalo en el que volver a repetir el proceso.
137
Herramienta de Monitorizacin de Sistemas
Este mdulo deber poseer interfaz de usuario y consistir en un Icono que se ubicar en la
barra de tareas. El icono tiene como finalidad informar al usuario de la existencia de la
aplicacin y, a su vez, permitir desplegar un men desde el que acceder a la funcionalidad
del mdulo que consiste en el acceso al programa de conexin remota y a la informacin de
la aplicacin.
MOSTRAR INFORMACIN DE
LA APLICACIN
LANZAR CLIENTE DE CONTROL REMOTO DE EVOTEC
138
Herramienta de Monitorizacin de Sistemas
Desde esta ventana se podr acceder tambin al cliente del programa de Control Remoto de
Evotec (Cliente de Ultra VNCViewer)
Figura 6.87 Interfaz del cliente de control Remoto de VNC Viewer Personalizado por Evotec
139
Herramienta de Monitorizacin de Sistemas
6.1.3.1 Interaccin con la interfaz del CRM para generar la entidad Alerta.
6.1.3.4 Interaccin con la interfaz del CRM para trabajar con las alertas
generadas por el sistema.
6.1.3.1 Interaccin con la interfaz del CRM para generar y personificar la entidad
alerta
Primeramente, se debe crear una entidad del CRM con el nombre, los atributos que se
necesitarn y los formularios o interfaz por donde se mostrarn. Microsoft CRM permite crear
y personalizar entidades:
140
Herramienta de Monitorizacin de Sistemas
Para cada entidad se pueden configurar cuatro apartados tal y como se muestra en la figura
6.78:
Los atributos son los campos que tiene la entidad. Se puede especificar el nombre, el tipo
de dato, formato
141
Herramienta de Monitorizacin de Sistemas
Los formularios y vistas permiten configurar la interfaz con la que se mostrar los
atributos de la entidad. En concreto se mostrarn 2 interfaces. El primero servir de vista
general de todas las alertas y el segundo servir de formulario donde recoger la
informacin de cada una.
Figura 6.91 Microsoft CRM. Personalizacin de Vista General para la Entidad Alerta
142
Herramienta de Monitorizacin de Sistemas
Figura 6.92 Microsoft CRM. Personalizacin del Formulario para la Entidad Alerta
Las relaciones permiten asociar entidades entre s. En este proyecto adems de crear
alertas se debern poder asociar a casos para tratarlas por lo que ser necesario asociar
las alertas a los casos:
143
Herramienta de Monitorizacin de Sistemas
Figura 6.93 Microsoft CRM. Personalizacin de la relacin entre la Entidad Alerta y la Entidad Caso.
Una vez que se crea una entidad, el sistema CRM actualiza su base de datos para introducir
las tablas correspondientes por lo que queda fuera del dominio del proyecto el almacenar la
informacin de las alertas. Asimismo, aade la entidad junto con sus atributos al namespace
que se obtiene del Servicio Web CRMService mediante el cual se podr programar la
creacin de alertas como se muestra en el diagrama de secuencia Registro de Auditoria
(Figura 6.72).
Por tanto, ste procedimiento tan slo se utilizara para obtener datos del sistema CRM, en
concreto se debe obtener dos objetos de datos: Usuarios y Clientes, y slo 5 atributos, 3 del
primero y dos del segundo.
Para acceder a dichos datos se va ha utilizar la clase DataSet de Visual Studio que se
explica con ms detalle en el Apartado 6.2.4 Acceso a datos. Se requerir una cadena de
conexin con la base de datos del CRM con un usuario y contrasea vlidos para poder
acceder va autenticacin SQL.
El DataSet contendr dos tablas con los campos que se requieran y dos adaptadores.
Dichos componentes pasarn a formar parte del nivel de datos.
Para ello se debe crear una referencia al servicio web CRMService tal como se indica en el
Apartado 2.6.1 Introduccin al CRM de Microsoft de este documento y en la documentacin
SDK del CRM. Accediendo al espacio de nombres que provee la referencia a dicho servicio
web, se pueden crear las entidades necesarias para registrar alertas en el servidor.
En concreto, se requiere instanciar el propio servicio web y asignarle una credencial vlida.
El servicio CRMService tiene varios mtodos de los que se va a utilizar el mtodo execute.
Dicho mtodo requiere un argumento que puede ser entendido como una llamada y que
recibe el nombre genrico de request. En el SDK se pueden observar todas las clases que
heredan de la clase abstracta request y que se corresponden con cada una de las opciones
de llamada existentes -lase create, retrieve, update, delete-.
144
Herramienta de Monitorizacin de Sistemas
Este argumento llamada a su vez tiene un atributo que viene a ser el objeto de la llamada y
que se denomina genricamente target. El target posee un atributo que vara en funcin de
la llamada (si es create, retrieve) y de la entidad existente en el CRM de la que es objeto la
llamada. As, el objeto del target de un CreateRequest es la entidad que se desea crear y el
objeto del target de un RetrieveRequest es el identificador de la entidad que se desea
obtener. Ms concretamente, existe una clase heredada de cada tipo de target (retrieve,
request) por cada entidad registrada en el CRM. As, al crear una nueva entidad
personalizada, como la entidad alerta, se generaran las clases TargetCreateAlerta,
TargetRerieveAlerta.
Como conclusin, para registrar una entidad alerta, se requiere generar la propia entidad,
asignarla al atributo correspondiente de un nuevo objeto TargetCreateAlerta y ste a un
nuevo objeto CreateRequest. Instanciando el CRMService, asignarle una credencial vlida y
ejecutar el mtodo Execute pasndo como argumento el request. El resultado se obtiene en
forma de CreateResponse. Todo esto se detalla en el siguiente diagrama de secuencia:
145
Herramienta de Monitorizacin de Sistemas
Dao.AlertaDAO
al : Dominio . CRM . REGISTRO ALERTA
<<create>> new_Alerta
Set(Tipo,
NombreMaquina,
UsuarioPropietario,
target: Dominio . CRM
Desc., Cliente)
<<create>> . TargetCreateAlerta
Set(al)
Set(target)
Execute(request)
<<forward>>
[error]
err : Dominio.ErrorAplicacion
<<create>>
Dao . ErrorAplicacionDAO
Set(id, fecha, tipo,maquina,
cliente, descripcion)
registroError(Error, rutaServidor)
registroError
<<forward>>
Desechar Alertas
Con la informacin disponible se puede optar por desechar el evento como alerta y
eliminarlo. Para ello se pude seleccionar las alertas a eliminar y pulsar el botn con un aspa.
Se pedir confirmacin.
Asignar Alertas
Aunque, como se ha visto en el mdulo Settings, que existe un usuario del sistema al que se
registran todas las alertas el usuario propietario de unas determinadas alertas se puede
modificar. Esto permitira poder poner un usuario genrico como el propietario de las alertas
y desde ste asignarlas a quien corresponda.
147
Herramienta de Monitorizacin de Sistemas
Para asignar la alerta se debera acceder primero a la alerta haciendo doble clic sobre ella.
Aparecer la ventana del formulario de la alerta. Sobre el men de arriba pulsar la opcin
Acciones y Asignar:
Aparecer la figura 6.85. Si se desease asignar a otro usuario se podr seleccionar la opcin
y pulsar sobre la lupa que aparece al final del recuadro:
Aparecera otra ventana con los posibles usuarios donde se podr seleccionar el usuario
deseado.
148
Herramienta de Monitorizacin de Sistemas
El caso es la herramienta, interna al CRM, que se ha elegido para tratar las alertas. Es por
ello que se haya realizado una integracin con dicha aplicacin. Cada alerta podr generar
uno o varios casos para un cliente. El tratamiento de casos es un apartado correspondiente
al CRM y por tanto no ser asunto de este proyecto.
149
Herramienta de Monitorizacin de Sistemas
Al crear el nuevo caso, ste llevar asociado una alerta en el apartado Alerta.
A partir de aqu se puede trabajar con el caso como un caso ms, asignarlo a un usuario y
resolverlo.
150
Herramienta de Monitorizacin de Sistemas
N 1 1 M
Alerta R Cliente R Dominio
C C N 1 1
R R R
N
N N R LogCliente
1
1
Maquina
1
R
1
1 1 1
N
R R R ErrorCliente
C
R
N
C
Tarea ErroresAplicacion
N N 1
Error R
C UsuarioAplicacion SettingsAplicacion
N
Programa R
CARDINALIDADES:
N
R R
1 1
R
R
M
0, 1 C
M 1, 2, 3, ... M
M MaqAuditoria 0, 1, 2, 3, ... N
C
151
Herramienta de Monitorizacin de Sistemas
C C N C C
R1
R3
R15 N LogCliente(-idAccion,
M N
dFecha-, dHora, sAccion)
R9 R16
Maquina(-idMaquina-,sNomHost)
N
ErrorCliente(-idError-, C
R4(dFecha, seleccion) dFechaError, sTipo,
N sDescipcion)
R19
N
R10 R8 ErroresAplicacion(-idError-,
dFechaError, sTipo, sDescipcion)
Tarea(-idTarea-
C ,nombreTarea)
R12
N Error(-idError- N R7
,sSource,dFecha,sDescripcion)
R5 UsuarioAplicacion(-
SettingsAplicacion(-idSetting-,
R6 idUsuario-, sNombreSesion,
sNombre, sValor)
sNombreCompleto)
Programa(-idPrograma- N
,sNombrePrograma,sVersion,dFechaInstal
C acion,sRuta) CARDINALIDADES:
N
1 1 (puede omitirse)
0, 1 c
M
1, 2, 3, ... m (puede omitirse) y flecha
R14 M 0, 1, 2, 3, ... n y flecha
MaqAuditoria(idAuditoria,
M
R13 dFechaAuditoria,sSeleccin) C
El modelo obtenido debe pasar por las reglas de transformacin del modelo RE/R explicado
en el anexo 4.3 Metodologas As, el nuevo modelo de datos queda de la siguiente manera:
152
Herramienta de Monitorizacin de Sistemas
Cliente(-idCliente- Dominio(-idDominio-,nombreDom, -
,Nombre) idCliente-*)
N LogCliente(-idMaquina*, idAccion,
dFecha-, dHora, sAccion)
Maquina(-idMaquina-,sNomHost, -
idCliente-*,-idDominio-*)
N
N ErroresAplicacion(-idError-,
dFechaError, sTipo, sDescipcion, <-
AlertaError(-idAlerta-,descripcion,
N idMaquina->*)
tipoAlerta, -idMaquina-*, -idCliente-*,
<-idError-*>, <sSource>, <dFecha>,
sDescripcion> ) N
MaqTarea(-idMaquina*, SettingsAplicacion(-
idTarea*-, dFecha, seleccin, idSetting-, sNombre, sValor)
<-idAuditoria-*>)
N
AlertaPrograma(-idAlerta-,descripcion, N UsuarioAplicacion(-
tipoAlerta, -idMaquina-*, -idCliente-*, <- idUsuario-, sNombreSesion,
idPrograma-*>, <sNombrePrograma>, sNombreCompleto)
<sVersion>, <dFechaInstalacion>, N
<sRuta> )
N Tarea(-idTarea-
,nombreTarea)
ErrorAuditoria(-idMaquina*,
idTarea*-, dFecha, seleccin, -
idAuditoria-*, -idPrograma-*)
CARDINALIDADES:
1 1 (puede omitirse)
N
0, 1 c
ProgramaAuditoria(-idMaquina*, 1, 2, 3, ... m (puede omitirse) y flecha
idTarea*-, dFecha, seleccin, - 0, 1, 2, 3, ... n y flecha
idAuditoria-*, -idError-*)
Por otro lado, tambin resulta conveniente modificar las propiedades de algunos atributos de
forma que estos puedan admitir valores nulos. Por ejemplo, como se ha visto en el diseo
interno, el subsistema EvoAgent registra mquinas sin conocer el cliente, tan slo el dominio.
s el servidor, EvoAgentServer, quien puede conocer el cliente a partir del dominio. Pero
esto puede que no ocurra, de tal forma que sea necesario registrar la mquina sin cliente y
153
Herramienta de Monitorizacin de Sistemas
asociarlo despus mediante el mdulo Clientes del subsistema EvoAgentManager. Por tanto,
sera necesario permitir que el valor del cliente en la tabla de mquinas admitiese nulos.
Tambin hay tablas que son necesarias por la lgica del programa, como las tablas de
errores y programas de las mquinas para poder comprobar si hay nuevos programas
instalados, que pueden reemplazar a las tablas ProgramaAuditora y ErrorAuditora y las
tablas de Settings de la aplicacin, elementos generadores y filtros de generacin de alertas.
Por otro lado, conviene separar las tareas de las auditoras, ya que stas ltimas hacen
referencia al resultado de la tarea auditora correspondiente.
Por ltimo, la tabla alerta no puede considerarse como parte del modelo ya que pertenece
ntegramente a la base de datos del CRM y es ste el que la gestiona.
Por tanto, tras estas consideraciones, el modelo de datos queda como sigue:
154
Herramienta de Monitorizacin de Sistemas
Cliente(-idCliente- N Dominio(-idDominio-,nombreDom,
,Nombre) <-idCliente->*, <sRazon>)
LogCliente(-idMaquina*, idAccion,
dFecha-, dHora, sAccion, <-
N idCliente->*)
ErroresAplicacion(-idError-,
N
N N dFechaError, sTipo, sDescipcion, <-
idMaquina->*, <-idCliente->*)
Maquina(-idMaquina-,sNomHost, <-
idDom->*, sNomDom, <-idCli->*,
<sRazon>)
SettingsAplicacion(-idSetting-,
sNombre, sValor)
N
FiltroAlertaPrograma(-sFiltro-)
MaqTarea(-idMaquina*,
idTarea*-, dFecha, UsuarioAplicacion(-idUsuario-,
sNombreTarea, sSeleccin) sNombreSesion, sNombreCompleto)
MaqPrograma(-idMaquina*,
idPrograma- N N
,sNombrePrograma,sVersion,dFech ElementoGenerador(-sElemento-,
aInstalacion,sRuta) ActivoPC, ActivoServidor)
Tarea(-idTarea-
,nombreTarea)
FiltroAlertaServicio(-
MaqError(-idMaquina*, idError-, N sNombreServicio-, bActivoPC,
sTipo, sSource, dFecha, bActivoServidor)
sDescripcion)
N
CARDINALIDADES:
FiltroAlertaError( -idError-, MaqAuditoria(-idAuditoria-,-
sTipo, sSource, sDescripcion) idMaquina-*,
dFechaAuditoria,sSeleccin)
1 1 (puede omitirse)
0, 1 c
1, 2, 3, ... m (puede omitirse) y flecha
0, 1, 2, 3, ... n y flecha
La tabla de alertas quedar registrada en la base de datos del CRM conteniendo los campos
que se definan en la creacin de la entidad alerta ms los campos que introduzca el CRM.
Ir asociada a la tabla de clientes y de usuarios del CRM.
155
Herramienta de Monitorizacin de Sistemas
Alerta(-idAlerta-,descripcion,tipoAlerta, -
idMaquina-*, -idCliente-*, -idUsuario-*,
<sNombrePrograma>,<dFechaInstalacion>,
<sRuta>, <idError>, <sSource>, <dFecha>,
<sDescripcion>)
N N
CRMCliente(-idCliente-,...)
CRMUser(-idUsuario-,...)
Para introducir los ndices se debe entender que el acceso a los datos suele llevar asociado
mltiples consultas sobre tablas con un filtro asociado (clusula WHERE en el lenguaje
SQL). Dicho filtro hace que slo las filas de una tabla que cumplan con el filtro deben ser
seleccionadas. Si se debe leer toda la tabla para tomar esta decisin (qu registros cumplen
la condicin) se est perdiendo rendimiento.
Los ndices permiten optimizar este proceso. Si se conocen los campos que actan de filtro
se podra acceder directamente a los datos que cumplen la condicin. Un ndice ocupa
espacio en disco y en memoria pero permite optimizar las bsquedas y, por tanto, el
rendimiento del sistema.
Esto es posible porque al realizar una consulta el gestor de bases de datos sigue el siguiente
proceso:
3. Evala el valor de bsqueda contra cada valor de clave y repite esta evaluacin
hasta una de las siguientes ocurrencias
156
Herramienta de Monitorizacin de Sistemas
Los ndices se generan en forma de listas enlazadas y poseen enlaces a las pginas de
datos:
Para la creacin de ndices se debe tener en cuenta aquellos campos que sern
referenciados en las consultas. Por ejemplo, para la tabla T_MaqTarea que contiene las
tareas asignadas a las mquinas se realizarn consultas de tareas en funcin de la tarea, de
la mquina, del cliente o del estado como se muestra en la figura 6.5. Por tanto, ser
conveniente y casi necesario crear ndices por cada uno de estos campos. Esto se realiza
fcilmente por medio de la aplicacin gratuita SQL Server Management Studio Express:
157
Herramienta de Monitorizacin de Sistemas
Se puede ver que se han creado tres ndices adems del generado automticamente segn
la clave principal de la tabla. Un ndice para el campo cliente, otro para el campo tarea y otro
para el campo mquina. Un mismo ndice puede tener asociadas varias columnas por las
que se organiza. Por ejemplo, el ndice PorTarea tiene un primer campo de orden que es el
identificador de la tarea asociada, un segundo campo que es el identificador de cliente y un
tercero que es el identificador de mquina. Al realizar una consulta sobre esta tabla en
funcin de una tarea y un cliente, cabra la posibilidad de utilizar dos ndices, el ndice por
cliente y el ndice por tarea, en cualquier caso, posteriormente a la primera criba, al haber
agregado ambas columnas en los ndices contrarios de forma secundaria, se realizar una
segunda criba por la segunda columna.
158
Herramienta de Monitorizacin de Sistemas
159
Herramienta de Monitorizacin de Sistemas
Figura 6.109 Base de datos Evotec_Control vista con el programa Microsoft SQL Server Management Studio Express.
El acceso a datos se realizar mediante una cadena de conexin estndar de los proyectos
de Visual Studio. Dicha cadena contendr los datos necesarios para autenticarse con el
servidor SQL Server (Figura 6.111). A partir de esa cadena de conexin se construye una
conexin SQL Connection a dicho servidor.
En Visual Studio se pueden utilizar las clases DataSet para acceder a los datos de un origen
de datos. Un DataSet contiene objetos Tabla (System.Data,DataTable) y objetos Adaptador
de datos (System.Data.DataTableAdapter). Lo normal es configurar cada tabla con un
160
Herramienta de Monitorizacin de Sistemas
adaptador de datos propio. Los adaptadores poseen como propiedad la conexin de datos
mencionada anteriormente. Si en cualquier momento se modifica la cadena de conexin los
adaptadores asumen el cambio automticamente, as se obtienen un nico punto donde
modificar la ruta que utiliza el sistema para acceder a los datos.
161
Herramienta de Monitorizacin de Sistemas
162
Herramienta de Monitorizacin de Sistemas
A partir de este momento se puede instanciar los objetos adaptadores y el objeto DataSet
que contiene los objetos tabla. Entonces se puede utilizar los adaptadores para obtener,
modificar y crear datos. Se puede trabajar con las tablas rellenndolas de datos a partir de
una llamada a un mtodo del adaptador correspondiente.
Para la gestin del DataSet y los adaptadores se crearn clases pertenecientes a la capa de
datos, es decir, al paquete DAO de la librera de la aplicacin
163
Herramienta de Monitorizacin de Sistemas
Paquete Dominio
164
Herramienta de Monitorizacin de Sistemas
Figura 6.115 Diagrama de Clases. Paquete Dominio: DetalleAuditoria, Usuario, Tarea, TareaProgramada, ApplicationSetting,
AccionCliente
165
Herramienta de Monitorizacin de Sistemas
El paquete dominio comprende las clases de las figuras 6.114 y 6.115 y 6.116 adems de
todas las clases que importa de otros paquetes tal y como se vio en el diseo externo del
sistema. As se podran incluir las clases del paquete WinAudit o del paquete de
TareasProgramadas aunque en este ltimo caso existe una adaptacin de las clases Trigger
166
Herramienta de Monitorizacin de Sistemas
en la clase MiTrigger. Por ltimo cabra incluir tambin la clase Alerta del paquete CRM
Dinamics.
Paquete Services
167
Herramienta de Monitorizacin de Sistemas
En este paquete se incluyen clases que sirven de complemento para procesos del sistema
como puede ser el Intrprete de programacin de tareas que sirve de interfaz entre el
sistema y el sistema externo TaskSheduler; o el lector de auditoras que sirve de interfaz
entre el resultado del sistema externo winAudit y el sistema; o la clase Control Auditoria que
administra la generacin de alertas en el sistema externo CRM. sta ltima slo la utilizara
el subsistema EvoAgentServer.
Por otro lado se incluye aqu la clase Credenciales Usuario que es utilizada en el subsistema
EvoAgentManager para almacenar las credenciales que utiliza el usuario tcnico de Evotec
para entrar en la aplicacin de gestin. Dicha clase posee tambin el mtodo de
autenticacin (Init_Login()) visto al principio de este captulo 6. Las propiedades de esta
clase son, entre otras, el Usuario registrado en el sistema (Clase Usuario del paquete
Dominio) y las credenciales introducidas en el inicio de sesin de Windows (Clase
NetworkCredential de System.Net). La clase permanece activa mientras lo est la aplicacin
de gestin y se puede acceder mediante su propiedad Current que hace que devuelva la
clase con los parmetros establecidos en el inicio de la sesin.
Tambin est la clase auxiliar campos auditoria que complementa a la clase Campos
Auditora de la que se ha hablado ya en este captulo y se ver en el paquete WinAudit. Es
utilizada por el mdulo rea de Trabajo al mostrar el detalle de las mquinas como se
explica en el apartado 6.1.1.3 Maquinas.
168
Herramienta de Monitorizacin de Sistemas
169
Herramienta de Monitorizacin de Sistemas
170
Herramienta de Monitorizacin de Sistemas
171
Herramienta de Monitorizacin de Sistemas
172
Herramienta de Monitorizacin de Sistemas
Paquete WinAudit
Este paquete ha sido creado a partir de cada campo que se obtiene en la auditora que
realiza el programa WinAudit. Cada campo auditado posee atributos definidos en la
documentacin del programa que se puede analizar desde el link
http://www.pxserver.com/WinAudit/hlp_interp_audit.html. En la pgina web (en ingls) se puede
navegar de un campo a otro viendo los atributos definidos para cada campo. Se ha creado
una clase por cada campo y una clase general, campos auditoria, que las engloba a todas:
173
Herramienta de Monitorizacin de Sistemas
174
Herramienta de Monitorizacin de Sistemas
176
Herramienta de Monitorizacin de Sistemas
Por otro lado, para el control de los DataSet se debe generar clases auxiliares y es lo que se
ha hecho con las clases DAO.
177
Herramienta de Monitorizacin de Sistemas
178
Herramienta de Monitorizacin de Sistemas
179
Herramienta de Monitorizacin de Sistemas
180
Herramienta de Monitorizacin de Sistemas
181
Herramienta de Monitorizacin de Sistemas
182
Herramienta de Monitorizacin de Sistemas
6.3.2SubSistema EvoAgentServer
Paquete EvoAgentServer.services
El subsistema EvoAgentServer posee las clases correspondientes a los Servicios Web,
Cada mtodo reflejado en los Servicios se corresponde con un WebMethod a los que se
puede llamar desde los clientes de los servicios. Como ya se ha explicado en anteriores
apartados hay dos servicios, uno para la comunicacin con el subsistema EvoAgentService y
otro para la comunicacin con el sistema EvoAgentManager.
183
Herramienta de Monitorizacin de Sistemas
Paquete ProgramacinTareas.exe
El modulo de registro de tareas programadas no se correspondera con el subsistema
EvoAgentManager, pero al estar ubicado en la carpeta tareas programadas del servidor se
incluye aqu. Se trata de una aplicacin para consola que contiene el mtodo main ms
algn mtodo auxiliar en la clase primaria de todo proyecto:
Paquete EvoAgentManager.iu
Este paquete se corresponde con la interfaz de usuario para los tcnicos de Evotec. Las
clases se disearon con el editor Visual Studio 2005 tal y como se han ido presentado en el
punto 6.1 Diseo de la Interfaz de Usuario.
184
Herramienta de Monitorizacin de Sistemas
Como se puede ver en la figura 6.134, existir relacin entre las ventanas (clases) que se
pueden mostrar a partir de la ventana principal (Form_Main). Esto se hace as para acceder
slo una vez a cada ventana. Si una ventana est abierta (un objeto instanciado), no se
crear una nueva instancia, sino que se traer la ventana abierta a primer plano. Por otro
lado siempre que se hace referencia a las ventanas se hace directamente a la propiedad
Default que devuelve la instancia activa de la clase en ese momento o una nueva instancia si
no la hubiera (Patrn Singleton).
Los campos de las clases son cada componente de Windows.Forms que se han
implementado en la ventana y que se ven mejor desde el diseo de interfaz, adems de
campos auxiliares que se utilizaran para la gestin de los datos que manejan las ventanas y
de los eventos que disparan, que seran los mtodos descritos mediante los diagramas de
secuencia.
185
Herramienta de Monitorizacin de Sistemas
186
Herramienta de Monitorizacin de Sistemas
Paquete EvoAgent
Aqu se presentan las clases que utiliza el Servicio de Windows.
187
Herramienta de Monitorizacin de Sistemas
188
Herramienta de Monitorizacin de Sistemas
Paquete EvoIcon
El mdulo EvoIcon debe presentar una clase NotifyIcon que es el Icono que aparece en la
barra de tareas. Dicha clase debe aociarse con una clase Form que lo contenga y controle el
Men que ambas comparten y los eventos que produce el mismo. La clase Form
permanecer invisible de forma que slo se vea el Icono (Icon) de la clase NotifyIcon.
189
Herramienta de Monitorizacin de Sistemas
Para el desarrollo del mdulo EvoAgentServer, aplicacin web del sistema y su publicacin
en el entorno de desarrollo, se ha instalado el servidor IIS 7.0 donde se ha creado un sitio
web:
190
Herramienta de Monitorizacin de Sistemas
191
Herramienta de Monitorizacin de Sistemas
EvoAgentService
192
Herramienta de Monitorizacin de Sistemas
EvoAgentProyect
193
Herramienta de Monitorizacin de Sistemas
7.3 Pruebas
Las pruebas pretenden garantizar que el producto desarrollado cumple con los
requerimientos inicialmente registrados, es decir, que se trata de un desarrollo de calidad.
Por otro lado debe garantizarse el correcto funcionamiento del sistema.
A la par que se ha ido construyendo el sistema se han podido ir realizando las pruebas
unitarias para poder comprobar que las partes del sistema son correctas.
Una vez construdo se puede traspasar el sistema a un entorno de prueba donde puedan
realizarse las pruebas de integracin definidas en el apartado 3.4.4. As, queda validado el
desempeo, por parte del sistema, de los requerimientos (Look & Feel), la autenticacin
194
Herramienta de Monitorizacin de Sistemas
Por ltimo, se valida que el instalador del agente funcione correctamente actualizando la
versin de las dos aplicaciones que comprende, el servicio de Windows y la aplicacin
EvoIcon del icono.
195
Herramienta de Monitorizacin de Sistemas
Una vez se han llevado a cabo las pruebas funcionales se puede proceder a pasar el
sistema a un entorno de produccin. En realidad parte de las pruebas funcionales se ralizan
directamente sobre el entorno de produccin. Para probar la interaccin se debe probar
directamente sobre este entorno que es el que se va a utilizar.
Servidor
Se ha creado un directorio virtual en el sitio web del servidor de la empresa donde se ha
publicado la aplicacin EvoAgentServer. Para la publicacin de los servicios desde el IIS se
ha creado un nombre de host nuevo en el servicio DNS. En este punto es necesario hacer
una breve introduccin a los CNAMEs. Consultar el Anexo1. Tecnologas
Se ha registrado un CNAME con el nombre evoagentserver que ser copiado en los DNS de
los clientes. As, el agente acceder mediante la ruta que se indique a travs del CNAME.
Esto hace que la hubicacin de los servicios del servidor sea dinmica.
Base de datos
La base de datos se agrega al servidor SQL Server a traves de la herramienta SQL
Management Studio. Se puede realizar esta accin mediante un fichero de backup (.bak) o
un ficher de datos (.mdf) y logs (.ldf). El fichero de backup se crea desde la aplicacin SQL
Management Studio con el servidor de base de datos donde reside la base de datos
conectado. Hacer clic en el botn derecho del ratn sobre la base de datos y pulsar en
Tareas/Copia de seguridad:
196
Herramienta de Monitorizacin de Sistemas
197
Herramienta de Monitorizacin de Sistemas
Por otro lado, el archivo de datos y del log reside en el directorio c:\Archivos de
Programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data
Para acceder a la base de datos se debe crear una conexin como se ha explicado en el
apartado 6.2.4.
Agente
La instalacin del agente consiste en la ejecucin del fichero .msi generado por el proyecto
EvoAgentSetup. Se puede acceder al fichero desde el directorio de trabajo:
EvoAgentProyect\EvoAgentService\EvoAgentSetup\Debug\ EvoAgentSetup.msi
198
Herramienta de Monitorizacin de Sistemas
http://www.microsoft.com/spain/technet/recursos/articulos/tnt1-119.mspx
ProgramacionTareas
La aplicacin de consola debe residir en la carpeta Programacion Tareas del directorio
AdminManager del servidor. Se debe realizar la instalacin mediante el fichero .msi creado
por el proyecto ProgramacionTareasSetup accesible desde el directorio de trabajo:
EvoAgentProyect\ProgramacionTareas.exe\ProgramacionTareasSetup\Debug\
ProgramacionTareasSetup.msi
Aplicacin de gestin
En los equipos de los tcnicos se instala mediante el correspondiente fichero .msi la
aplicacin EvoAgentManager. El fichero reside en el directorio de trabajo:
EvoAgentProyect\EvoAgentManager\
EvoAgentManager\EvoAgentManagerSetup\Debug\EvoAgentManagerSetup.msi
199
Herramienta de Monitorizacin de Sistemas
8. Planificacin y Presupuesto
8.1 Planificacin
La planificacin de un proyecto es un aspecto fundamental que puede reducir
considerablemente el tiempo y el esfuerzo dedicado al mismo por parte de sus integrantes.
La planificacin debe ser coherente y para ello se debe tener un conocimiento previo de la
complejidad del proyecto y de su alcance. En cualquier caso, las fases o tareas que deben
planificarse se correspondern con el modelo de metodologa de desarrollo escogido.
1. Estudio de las tecnologas y herramientas a utilizar, tanto las Aplicaciones software Libre
como tecnologas como los Servicio de Windows, las comunicaciones, el Servidor Web y
los Servicios Web as como el sistema gestor Sql Server y los accesos a datos.
4. Diseo Interno con el Modelo de Interfaz, los Diagramas de Interaccin, los Diagramas
de Clases y el Modelo de datos.
1. Programacin.
2. Pruebas unitarias.
3. Pruebas de integracin.
7. Documentacin
200
Herramienta de Monitorizacin de Sistemas
Segn esta planificacin se pretenda comenzar con el desarrollo del sistema en Febrero de
2007 toda vez que se hubiera realizado previamente las fases de anlisis y diseo. Dicho
desarrollo debera haber finalizado a principios de Mayo de 2007 momento en el que se
iniciarian las pruebas para, en Junio de 2007, realizar la instalacin del sistema. La
documentacin, por otro lado, se cumplimentara al acabar cada fase.
Es, sin duda, una planificacin ideal, pues el plazo del proyecto debe coincidir con la
finalizacin del curso, es decir, en Junio o en cualquier caso, en Septiembre. Adems, las
fases de ejecucin del proyecto segn la metodologa son adecuadas al tipo de proyecto.
201
Herramienta de Monitorizacin de Sistemas
202
Herramienta de Monitorizacin de Sistemas
Esto ltimo pretende fijar un alcance al proyecto sin afectar esto a que el diseo y
desarrollo del proyecto permita agregar funcionalidad sin demasiada dificultad, es
decir, a que se construya un sistema modularizable y escalable.
Sin duda, una de las causas ms probables de este retraso fue un diseo del sistema
pobre, del que no se pudo sacar provecho a la hora de realizar la programacin. El
diseo implica conocer el sistema a construir de forma modularizada, entendiendolo
de una forma global y cada mdulo en profundidad. Esto permite afrontar el
desarrollo con una idea mucho ms clara de lo que se va a hacer y de cmo se va ha
hacer, ayudando a reducir el cdigo y a hacerlo ms compacto y flexible y, con toda
seguridad, a reducir considerablemente el tiempo dedicado al mismo.
203
Herramienta de Monitorizacin de Sistemas
Esto, unido al tardo comienzo de las pruebas de integracin, provoc que el proyecto no
pudiera terminarse en la ficha de fin del proyecto, Septiembre de 2007, teniendo que recurrir
a una prrroga.
En Octubre, una vez iniciada la prrroga de un curso lectivo, y con el proyecto en sus fases
finales, con la documentacin prcticamente terminada, salieron claramente a la luz los
hechos que se han expuesto anteriormente. Con esto, se observ que no se haban seguido
los pasos necesarios para garantizar un desarrollo de calidad. Por otro lado, como se ve en
la evolucin del proyecto, fue en Octubre cuando se adquirieron nuevos conocimientos para
el diseo y desarrollo de un proyecto basados en los entornos de desarrollo que se estaban
utilizando.
Es bien conocido que en todo proyecto ocurren circunstancias que hacen que el proyecto no
vaya bien. En este caso, sin duda, se pueden atribuir a la falta de experiencia del
responsable del mismo adems de tratarse de un proyecto muy ambicioso.
Sin embargo, lo ms importante es la reflexin llevada a cabo para sacar a la luz los hechos
que hicieron que el proyecto no prosperara segn lo esperado. En este proyecto se ha visto
que el hecho de que no pudiera resolverse en el tiempo previsto no se qued en un simple
retraso, sino que deriv en la evolucin del sistema desarrollado hacia una cuota mucho
mayor de calidad, adems de que proporcion nuevos conocimientos, incluida la propia
experiencia, por parte del responsable del proyecto.
204
Herramienta de Monitorizacin de Sistemas
8.2 Presupuesto
Se debe tener en cuenta dos aspectos para obtener el presupuesto del proyecto: Por un lado
la valoracin econmica del esfuerzo de los integrantes del proyecto y por otro lado, el coste
de las herramientas, ya sea software o hardware, que se necesitan a la hora de desarrollar y
de implemetar el proyecto.
IMPORTE
Herramientas 8.326,82
Servicio
59.925,00
TOTAL 68.251,82
Dicho coste sera aplicable a una empresa de servicios informticos que quisiera desarrollar
e implantar el proyecto de cero incluyendo las herramientas necesarias para ello. En el caso
actual, no sera necesario incluir nada dentro del apartado Herramientas.
Analista-Diseador: 55 /hora.
Programador: 40 /hora.
Para el clculo se han considereado dos periodos distintos. Esto se ha hecho as porque se
produjo un cambio de la jornada laboral y del tiempo de la misma dedicado al proyecto.
205
Herramienta de Monitorizacin de Sistemas
Periodo 2: El segundo periodo va desde Octubre de 2007 hasta la fecha fin del
proyecto, Febrero de 2008. Se ha considerado una media de 35 horas de las 40 de
jornada laboral dedicadas al proyecto durante las 20 semanas del periodo
establecido. Esto hace un total de 700 horas plenamente dedicadas al proyecto.
En resumen se han dedicado 1200 horas en el presente proyecto repartidas entre todas
las tareas. En la siguiente tabla se resume las horas dedicadas a cada actividad:
La tabla anterior es el resultado de unir las dos tablas siguientes donde se desglosan las
horas dedicadas a las actividades durante cada uno de los periodos:
206
Herramienta de Monitorizacin de Sistemas
PERIODO II
Actividad/Periodo (horas)
ACTIVIDAD oct-07 nov-07 dic-07 ene-08 feb-08 TOTAL
Inicio del Proyecto 0
Estudio de las Tecnologas 0
Anlisis de Requerimientos 5 10 15
Estudio de tcnicas de 80 80
diseo y prog.
Diseo Externo 10 10
Diseo Interno 30 20 50
Desarrollo 40 80 50 40 7 217
Pruebas Unitarias 10 30 30 70
Pruebas Integracin 15 70 85
Implantacin 5 10 15
Documentacin 10 20 25 50 50 155
Cierre del Proyecto 3 3
TOTALES 175 140 105 140 140 700
207
Herramienta de Monitorizacin de Sistemas
PARTICIPANTES
JEFE ANALISTA- PROGRAMADOR
PROYECTO DISEADOR
ACTIVIDAD Per H h h h TOTAL
Inicio del I 3 3 255 0 - 0 - 255
Proyecto II 0 0 - 0 - 0 - -
Estudio de las I 81 11 935 35 1.925 35 1.400 4.260
Tecnologas II 0 0 - 0 - 0 - -
Anlisis de I 22 10 850 12 660 0 - 1.510
Requerimientos II 15 7 595 8 440 0 - 1.035
Estudio tcnicas I 0 0 - 0 - 0 - -
de diseo y prog. II 80 10 850 40 2.200 30 1.200 4.250
I 20 4 340 16 880 0 - 1.220
Diseo Externo
II 10 2 170 8 440 0 - 610
I 40 2 170 23 1.265 15 600 2.035
Diseo Interno
II 50 3 255 22 1.210 25 1.000 2.465
I 193 3 255 20 1.100 170 6.800 8.155
Desarrollo
II 217 2 170 15 825 200 8.000 8.995
Pruebas I 50 2 170 18 990 30 1.200 2.360
Unitarias II 70 4 340 16 880 50 2.000 3.220
Pruebas I 20 5 425 10 550 5 200 1.175
Integracin II 85 25 2.125 40 2.200 20 800 5.125
I 0 0 - 0 - 0 - -
Implantacin
II 15 4 340 6 330 5 200 870
I 71 10 850 31 1.705 30 1.200 3.755
Documentacin
II 155 35 2.975 40 2.200 80 3.200 8.375
Cierre del I 0 0 - 0 - 0 - -
Proyecto II 3 3 255 0 - 0 - 255
TOTALES 1200 145 12.325 360 19.800 695 27.800 59.925
Figura 8.7 Estimacin del esfuerzo de los integrantes del proyecto y valoracin econmica.
HERRAMIENTAS IMPORTE
SOFTWARE 1.019,00
Entorno de Produccin
HARDWARE 570,00
Entorno de Desarrollo SOFTWARE 5.071,08
HARDWARE 1.686,74
TOTAL 8.326, 82
Figura 8.8 Estimacin del coste de las herramientas necesarias para el desarrollo e implantacin del proyecto.
Entorno de desarrollo:
En el entorno de desarrollo se requerirna las siguientes herramientas:
208
Herramienta de Monitorizacin de Sistemas
1. Software:
Visual Studio 2005: Se requerira de una licencia del programa Visual Studio.
Visual Studio 2005 Professional Edition con suscripcin MSDN Professional:
1019
2. Hardware:
209
Herramienta de Monitorizacin de Sistemas
Entorno de produccin:
En el entorno de produccin se requerirna las siguientes herramientas:
1. Software:
Sistema Operativo: Microsoft Windows Server 2003 R2, Enterprise Edition with
Microsoft CRM 3.0: Viene includo con la licencia del sistema operativo. 0 .
2. Hardware:
210
Herramienta de Monitorizacin de Sistemas
Caractersticas:
211
Herramienta de Monitorizacin de Sistemas
9.1 Conclusiones
La elaboracin de este proyecto ha servido para afianzar y poner en prctica muchos de los
conocimientos aprendidos a lo largo de toda la carrera.
Principalmente se han tratado aspectos de ingeniera del software en todas sus fases as
como tratamiento de bases de datos, programacin orientada a objetos en C# y aplicacin
de Algoritmia en muchos de los mtodos. Tambin se ha podido afianzar y desarrollar los
conocimientos adquiridos en cuanto a planificacin y gestin de proyectos.
Por otro lado, se puede considerar que se han cumplido los objetivos propuestos antes de
comenzarlo, desarrollando un sistema de calidad que cumple con todos los requesitos y,
adquiriendo un gran conocimiento y familiarizacin no slo con las ltimas tecnologas en
cuanto a desarrollo de software sino tambin con tcnicas adecuadas de diseo y
programacin.
Por otro lado, se podran proponer nuevas fases en el proyecto como podra ser:
212
Herramienta de Monitorizacin de Sistemas
tener que pasar esta informacin a mano. (Ver apartado 6.1.3.4 Interfaz CRM, crear
caso vinculado a alerta).
Esto se podra hacer mediante el uso de los Callouts del CRM. Esta tecnologa
permite agregar funcionalidad a eventos del CRM como el crear un caso. Sera
necesario desarrollar un callout y asociarlo a dicho evento. El CRM de forma interna,
al crear un caso nuevo, vera el callout declarado para tal evento mediante un
fichero de configuracin y lo ejecutara. El callout debera controlar que la creacin
del caso provenga de una alerta, en cullo caso, se obtendra la informacin de la
alerta via sql y se pasara dicha informacin al caso va CRMService.
213
Herramienta de Monitorizacin de Sistemas
10. Bibliografa
[NAGE06] Christian Nagel, Bill Evjen, Jay Glynn, Morgan Skinner, Karli
Watson, Allen Jones. Profesional C# 2005. Wiley Publishing,
2006.
[SKIB06] Craig Skibo, Marc Young, Brian Johnson. Working with Microsoft
Visual Studio 2005. Microsoft Press, 2006.
http://es.wikipedia.org/wiki/Portada (Wikipedia).
http://www.pxserver.com/WinAudit.htm (WinAudit).
http://www.codeproject.com (CodeProject).
http://msdn2.microsoft.com/en-us/library/t0aew7h6.aspx (Scripting).
214
Herramienta de Monitorizacin de Sistemas
Tareas: Donde se trabajar con las tareas asignables a las mquinas cliente. Se
podr crear nuevas tareas, editarlas o borrarlas, ver el estado actual de tareas o
gestionar las tareas programadas.
Maquinas: Donde se podr ver el detalle de las auditoras as como dar acceso a
mquinas cliente al sistema.
Antes de empezar con la gua prctica en cada mdulo cabe resear que el sistema est
fuertemente vinculado con la aplicacin de gestin CRM.
Tanto es as que nuevos usuarios no podrn trabajar con esta aplicacin de gestin de
EvoAgent si no se dispone de la base de datos del CRM operativa. Esto es debido a que los
usuarios permitidos registrados en esta aplicacin han sido obtenidos de la base de datos
del CRM y un nuevo usuario que quiera iniciar la aplicacin deber haber sido previamente
registrado en el CRM y actualizados los usuarios de la aplicacin como se ver en el mdulo
Settings. (Ver Settings de Ususarios)
215
Herramienta de Monitorizacin de Sistemas
Tambin se ha incluido parte de la funcionalidad del sistema dentro de la interfaz del CRM.
Las alertas generadas por el sistema en relacin a las mquinas monitorizadas son
expuestas en esta herramienta de gestin y por tanto se incluye dentro de este manual cmo
acceder y trabajar con ellas.
Tareas
Este mdulo permite gestionar las tareas a realizar por parte de las mquinas agente. Hay
varias tareas definidas:
Inicio Servicio: Se puede iniciar un servicio indicando el nombre del servicio (Ver
Inicio Servicio).
217
Herramienta de Monitorizacin de Sistemas
Los agentes se comunican con el servidor cada hora. En esa comunicacin recibe las
tareas que tiene pendientes hasta la prxima comunicacin. La ltima comunicacin se
puede observar en el log de acciones consultando las acciones del agente en cuestin (Ver
Log Acciones) o en el apartado mquinas en el campo timestamp. Con ello se puede
programar la tarea para un agente a la hora adecuada.
218
Herramienta de Monitorizacin de Sistemas
Nueva tarea
Para asignar una nueva tarea se debe pulsar el botn NUEVA.
Aparece una nueva ventana donde se deben establecer los atributos de la nueva tarea. Se
pueden asignar varias o todas las tareas posibles a una mquina, las mquinas de un cliente
o todas las mquinas registradas en la aplicacin. Para ello hay habilitados tres despegables
para clientes (Cliente), mquinas (Maquina) y tareas (Tarea) que aparecen y se ocultan al
pulsar el botn que hay al final del cuadro de texto de cada respectivo apartado.
Seleccin de la mquina
Una vez se selecciona un cliente, pulsando el botn de nuevo se cierra el despegable, en las
mquinas disponibles en el despegable correspondiente aparecern nicamente las
mquinas correspondientes a ese cliente.
219
Herramienta de Monitorizacin de Sistemas
Seleccin de la tarea
Se sigue el mismo procedimiento con el despegable de Tarea.
Tras seleccionar las tareas deseadas y ocultarse el despegable, para ciertas tareas se
pedir al usuario que introduzca una especificacin para la correcta ejecucin de algunas de
ellas en las mquinas agentes.
Para pasar entre las distintas tareas con parmetros se pueden elegir en el despegable
superior.
Auditora
Se deber seleccionar los campos que se desea que se tengan en cuenta a la hora de
auditar las mquinas. Por defecto aparecen seleccionados los campos que se incluyen en la
auditora para generar alertas.
220
Herramienta de Monitorizacin de Sistemas
Los campos definidos se pueden volver a mostrar para modificarlos pulsando el botn
EDITAR PARMETROS. Si se desea saber el contenido de esos campos se puede
consultar la ayuda en el men superior de la ventana principal de la nueva tarea.
221
Herramienta de Monitorizacin de Sistemas
Inicio de Servicio
Se trata del arranque de un servicio de Windows. Aparece un cuadro de texto dentro del
apartado Inicio Servicio en parmetros de Tareas donde se debe indicar el nombre del
servicio de Windows que se desea iniciar.
222
Herramienta de Monitorizacin de Sistemas
223
Herramienta de Monitorizacin de Sistemas
Comprobar Cuotas
Esta tarea analiza el tamao de las cuotas de usuarios de un dominio en un servidor. Para
ello accede a las rutas donde se almacenan los perfiles de los usuarios. Dichas rutas se
deben indicar al menos la primera vez que se configura la tarea:
224
Herramienta de Monitorizacin de Sistemas
Ejecutar Script
Debe existir el fichero fsico que contiene el script (fichero .vbs) y estar en una ruta accesible
para los agentes. Se debe facilitar la ruta de donde descargar el fichero:
225
Herramienta de Monitorizacin de Sistemas
Seleccin de Hora
Por ltimo se debe indicar una fecha, hora y minuto en la que se desea que la/s mquinas
seleccionadas ejecuten la/s tareas seleccionadas.
Finalizar
Para registrar la/s nueva/s tarea/s pulsar Archivo+Guardar Cambios o bien Archivo+Guardar
Cambios y Salir en el men superior.
Cada dupla mquina-tarea ser tratada posteriormente como una tarea independiente.
Al actualizar la lista se volver a cargar las tareas en funcin de los parmetros del filtro.
Editar tarea
La edicin de tareas slo se permite hacer sobre tareas pendientes. Se debe seleccionar la
tarea sobre la columna Sel y pulsar el botn editar. Al editar una tarea aparece la misma
ventana que al realizar una nueva tarea pero con los atributos predefinidos de la tarea a
editar.
226
Herramienta de Monitorizacin de Sistemas
Eliminar tarea
Se debe seleccionar la tarea sobre la columna Sel y pulsar el botn eliminar. Se pedir
confirmacin:
227
Herramienta de Monitorizacin de Sistemas
Tareas Programadas
Siendo un submdulo perteneciente a Tareas se ha presentado como un mdulo ms debido
a la importancia en cuanto a funcionalidad que proporciona.
228
Herramienta de Monitorizacin de Sistemas
Es necesario rellenar todos los datos de cada uno de los apartados del men de la izquierda
antes de proceder a guardar la tarea programada. No se deber cerrar ninguna ventana, en
caso de hacerlo se perder la informacin introducida al tener que abrirla otra vez para
finalizar la creacin de la tarea. Para moverse entre las diferentes ventanas se puede pulsar
los botones de la izquierda o sobre la forma que se quiera traer al frente.
229
Herramienta de Monitorizacin de Sistemas
Hay que establecer la hora y minuto en que se quiere que las mquinas cliente
seleccionadas ejecuten las tareas a programar, y la fecha de inicio de la tarea.
Asimismo se puede seleccionar una fecha de finalizacin para la tarea programada.
230
Herramienta de Monitorizacin de Sistemas
Programacin Diaria
Esta programacin permite ejecutar tareas todos los das, los das laborables o
siguiendo un intervalo (todos los lunes = cada 7 das empezando un lunes conocido
mejor ver programacin semanal).
Nota Importante: La fecha de inicio debe ser la anterior ejecucin a la que se quiere
que sea la primera. Esto es debido a que el programa de registro automtico de
tareas seleccionar como fecha de las tareas la siguiente fecha al momento en que
se ejecuta dicho programa.
Por ejemplo: Si una tarea est programada para los das laborables y ahora es
viernes, el programa registra las tareas seleccionadas para las mquinas
seleccionadas para ejecutarse el lunes a esta misma hora.
Si se quiere que una tarea se ejecute todos los lunes y es importante que empiece
este mismo lunes, se deber crear una tarea nueva adicional para el primer lunes.
231
Herramienta de Monitorizacin de Sistemas
Programacin Semanal
Esta programacin permite ejecutar tareas los das seleccionados de la semana junto con un
intervalo de semanas definido. Si se deja en blanco el intervalo de semanas es lo mismo que
seleccionar cada semana (cada 1 semana).
Hay que establecer la hora y minuto en que se quiere que las mquinas cliente
seleccionadas ejecuten las tareas seleccionadas, y la fecha de inicio de la tarea.
Nota Importante: La fecha de inicio debe ser la anterior ejecucin a la que se quiere que sea
la primera. Esto es debido a que el programa de registro automtico de tareas seleccionar
como fecha de las tareas la siguiente fecha al momento en que se ejecuta dicho programa.
Por ejemplo: Si una tarea est programada para los das laborables y ahora es viernes, el
programa registra las tareas seleccionadas para las mquinas seleccionadas para ejecutarse
el lunes a esta misma hora.
Si se quiere que una tarea se ejecute todos los lunes y es importante que empiece este
mismo lunes, se deber crear una tarea nueva adicional para el primer lunes.
Programacin Mensual
232
Herramienta de Monitorizacin de Sistemas
Hay que establecer la hora y minuto en que se quiere que las mquinas cliente
seleccionadas ejecuten las tareas seleccionadas, y la fecha de inicio de la tarea.
Nota Importante: La fecha de inicio debe ser la anterior ejecucin a la que se quiere que sea
la primera. Esto es debido a que el programa de registro automtico de tareas seleccionar
como fecha de las tareas la siguiente fecha al momento en que se ejecuta dicho programa.
Por ejemplo: Si una tarea est programada para el ltimo viernes de cada mes y ahora es
viernes, el programa registra las tareas seleccionadas para las mquinas seleccionadas para
ejecutarse el ltimo viernes del prximo mes a esta misma hora.
Si se quiere que una tarea se ejecute todos los primeros lunes y es importante que empiece
este mismo primer lunes, se deber crear una tarea nueva adicional para el primer de los
primeros lunes.
233
Herramienta de Monitorizacin de Sistemas
Por ltimo, el apartado de flags hace referencia a Las propiedades con las que se trabaja:
o Detener la tarea si se ejecuta durante x minutos. Puede ser til cuando parezca
que el proceso de registro de la tarea se haya quedado colgado. De establecerse
es recomendable hacerlo con un valor alto o comprobar que establecido un tiempo
se ejecuta sin problemas. Puede provocar que no se ejecuten las tareas.
Finalizar
Pulsando GUARDAR en la ventana de creacin de tarea programada se comienza el registro
de la tarea programada en el sistema.
234
Herramienta de Monitorizacin de Sistemas
Aparte, la tarea programada hace referencia a un ejecutable por lotes del sistema (.bat) con
el mismo nombre que sta y que se registra en el espacio de direcciones donde reside el
sitio Web EvoAgentServer en el Servidor de Evotec.
Desde esta ventana se puede Eliminar o modificar la tarea Programada y crear nuevas
tareas programadas. Al eliminar se elimina tanto la tarea .job de Windows como los ficheros
.bat y .xml que dan soporte a la tarea programada.
Para modificar pulsar ABRIR PROPIEDADES. Se abrir la ventana de creacin de una tarea
programada con la configuracin de la tarea seleccionada desde donde se podr modificar la
configuracin y guardar la nueva tarea programada.
235
Herramienta de Monitorizacin de Sistemas
236
Herramienta de Monitorizacin de Sistemas
Maquinas
Este mdulo permite controlar el acceso de las mquinas al sistema, ver cundo fue la ltima
comunicacin o ver el detalle de las auditoras realizadas de las mismas. Asimismo permite
configurar parmetros como la fragmentacin automtica o el tipo de Agente
(Cliente/Servidor).
Al cargarse se ha inicializado una lista con las mquinas registradas en la aplicacin. Para
mostrarlas se debe realizar una bsqueda.
Bsqueda de mquinas
Una vez cargado el mdulo Mquinas se puede hacer bsquedas de mquinas de dos
maneras:
237
Herramienta de Monitorizacin de Sistemas
Establecer Auto-desfragmentacin
El agente puede ordenar la desfragmentacin automtica de los discos de la mquina que
monitoriza en caso de que est configurado para ello. Esto se puede establecer desde el
mdulo de mquinas. Viene definido por el campo Dfrag. Se configura de forma automtica
en funcin del nombre del host. No obstante se puede modificar su valor. Se debe localizar
las mquinas y seleccionar/deseleccionar sobre la columna fragmentar haciendo clic sobre el
recuadro y pulsar el botn GUARDAR al final de la fila.
En cualquier caso una de las tareas que se pueden programar para la mquina es la
desfragmentacin de los discos duros.
Una vez encontrada se debe seleccionar y pulsar el botn VER DETALLE. Se carga una
ventana con un men a la izquierda que contiene todos los campos de la auditora:
238
Herramienta de Monitorizacin de Sistemas
239
Herramienta de Monitorizacin de Sistemas
Clientes / Dominios
En ste mdulo se pretende gestionar los clientes registrados en el sistema y las mquinas
que tienen asignados cada uno por medio de los dominios a las que estn asociadas.
Al abrir se carga las mquinas, clientes y dominios existentes. Sobre la lista de la derecha
aparecen los dominios junto con el cliente al que estn asociados y en la lista inferior las
mquinas registradas con los dominios y clientes.
Acciones:
Actualizar Clientes
Permite mantener actualizada la base de datos de clientes del sistema con los clientes
registrados en el CRM.
240
Herramienta de Monitorizacin de Sistemas
Se puede Aadir o Borrar Clientes del sistema. Pulsar sobre la opcin deseada. Aparecer
una lista de los clientes existentes en el CRM si se desea aadir o de los existentes en el
sistema si se desea borrar:
241
Herramienta de Monitorizacin de Sistemas
Nuevo Dominio
Permite crear un dominio nuevo en blanco para poder asociarlo con un cliente. Para ello se
debe pulsar el botn NUEVO DOMINIO.
Para crear un dominio nuevo slo es necesario introducir el nombre del nuevo dominio en el
recuadro que aparece y pulsar OK
Los clientes pueden tener varios dominios conocidos y todos se pueden asociar. Puede
haber dos clientes que tengan el mismo nombre de dominio, por ejemplo WORKGROUP que
es el dominio por defecto al que pertenecen las mquinas que no tienen dominio. Para poder
distinguir entre clientes es necesario asociar las mquinas manualmente desde aqu.
Para asociar un cliente con un dominio tienen que estar ambos registrados en el Sistema.
(Ver Actualizar Clientes y Nuevo Dominio). Una vez registrados se puede hacer lo que sigue
desde el mdulo Clientes:
242
Herramienta de Monitorizacin de Sistemas
243
Herramienta de Monitorizacin de Sistemas
Seleccionar las mquinas que se quiere asociar al cliente y dominio y Pulsar OK. La
mquina aparecer asociada al cliente y dominio en la lista de abajo:
244
Herramienta de Monitorizacin de Sistemas
Eliminar Dominio
Permite eliminar un dominio. Si dicho dominio a su vez tuviera mquinas asociadas, stas
dejaran de estar asociadas a un dominio y al cliente correspondiente.
245
Herramienta de Monitorizacin de Sistemas
Log Agentes
En este mdulo se pretende controlar la actividad del sistema, registrando las acciones de
los distintos agentes as como los errores que se hayan producido, que pueden ser:
Al cargar aparece una ventana con dos pestaas. La primera pestaa corresponde con las
acciones de los agentes.
Acciones Agentes
246
Herramienta de Monitorizacin de Sistemas
Las acciones aparecen ordenadas por fecha, hora y accin. ste ltima campo describe
brevemente el proceso que lleva a cabo el agente. Van numeradas siguiendo la secuencia
de accin del proceso agente ante el vencimiento del temporizador.
Borrar Acciones
Borrar de Cliente: se eliminan del sistema todas las acciones de los agentes que
pertenecen a un cliente. El cliente es el que est seleccionado en el despegable
Cliente.
Borrar Acciones de antes de Fecha: se eliminan del sistema todas las acciones de
todos los agentes anteriores a la fecha que est seleccionada en el calendario
despegable Fecha.
Actualizar
Para disponer la informacin ms reciente se puede cerrar la ventana y volver a cargarla o
se puede pulsar sobre el botn actualizar.
247
Herramienta de Monitorizacin de Sistemas
Log Errores
Al pulsar sobre la pestaa Errores se procede a cargar los errores registrados. Por defecto
se cargan los errores entre la fecha mnima y la mxima indicadas en las respectivas
casillas:
Las fechas se pueden modificar para poder ver todos los errores registrados en el sistema.
En el campo Origen de la tabla se indica si el error ocurri en un agente o en el servidor,
propiedad por la que se puede filtrar en el despegable Origen. Seleccionando el origen
cliente se habilita el despegable correspondiente que permite seleccionar el cliente deseado.
Asimismo, al seleccionar el cliente se habilita el despegable Maquina donde se puede
seleccionar el agente del que se desea ver si hay errores.
En la tabla, si el error pertenece a una mquina agente debe aparecer rellenados los campos
Mquina y Cliente.
La descripcin completa de los errores se puede obtener pulsando el botn Ver Descripcin.
Asimismo, se puede borrar un error pulsando sobre el botn Borrar. El botn Borrar Todos
del men, elimina todos los errores que aparecen en la lista.
Los errores pueden ser debidos a causas temporales que impidan el correcto funcionamiento
de la aplicacin, por ejemplo prdida de comunicacin de la mquina cliente, cada de la red,
etc. Puede ocurrir que sea debido a un fallo ante una circunstancia no prevista que requiera
una modificacin en parte de la aplicacin. Dichas posibles modificaciones se contemplan en
la manera de llevarlas a cabo en el manual de explotacin de la aplicacin.
248
Herramienta de Monitorizacin de Sistemas
Settings
Este mdulo permite controlar parmetros de la aplicacin. Se han definido tres apartados
configurables, alertas, usuarios y versiones de la aplicacin que se explican ms adelante.
Para acceder al mdulo Settings es necesario hacerlo desde el mdulo principal.
Settings de Alertas
Los parmetros relacionados con las alertas permiten configurar las alertas que generarn
las mquinas cliente, as como el usuario que aparecer como encargado de dichas alertas.
Automticamente se carga la ventana con los valores actuales de los parmetros
establecidos.
Estos parmetros son consultados por el sistema a la hora de generar las alertas.
249
Herramienta de Monitorizacin de Sistemas
Usuario Propietario de las Alertas: Es el usuario que tendr asignadas todas las
alertas que se generen. Se puede modificar abriendo el despegable, seleccionando el
usuario deseado y pulsando sobre el botn APLICAR de la derecha.
Elementos Generadores de Alertas: Hasta este punto se han visto filtros simples
para la generacin de alertas. Existen tres campos que poseen un filtro ms
exhaustivo. Son los 3 que aparecen en la tabla de la parte inferior de la pantalla.
Cada elemento se corresponde con una fila de la tabla y tiene 2 apartados, que
permite filtrar las alertas en funcin del tipo de agente ya sea PC o servidor. Las
casillas de activacin permiten habilitar o deshabilitar la total generacin de alertas de
ese elemento para ese tipo de agente. Si est habilitado, se podr configurar filtros
especficos para registros del elemento para el tipo de agente elegido, es decir, se
pueden introducir filtros de generacin de alertas por instalacin o desinstalacin de
ciertos programas en los agentes servidor, por ejemplo.
251
Herramienta de Monitorizacin de Sistemas
252
Herramienta de Monitorizacin de Sistemas
Settings de Usuarios
Se ha realizado una distincin de dos grupos bsicos de usuarios: User y Admin. El usuario
normal User no tiene acceso a esta ventana de propiedades. Aparecer el siguiente mensaje
si intenta acceder:
Se observa una lista con los usuarios registrados junto con el grupo al que pertenece.
Al agregar o borrar un usuario (pulsando sobre sus respectivos botones) aparecer una lista
con los usuarios que se pueden agregar (registrados en el CRM y no en el sistema) o borrar:
253
Herramienta de Monitorizacin de Sistemas
254
Herramienta de Monitorizacin de Sistemas
Settings de Versiones
En este apartado se controla las versiones de la aplicacin cliente (versin del agente de las
mquinas cliente). Slo los usuarios pertenecientes al grupo Administradores tienen acceso
a esta ventana. Si un usuario User intenta acceder le aparecer el siguiente mensaje:
Ruta del Repositorio de Versiones: Dicha ruta se debe indicar en este apartado
dentro del cuadro de texto y actualizarla en el sistema pulsando el botn APLICAR.
Indica una ruta fsica en el servidor donde se ubican los paquetes de instalacin para
poder ser descargados.
255
Herramienta de Monitorizacin de Sistemas
Alertas
ste mdulo forma parte de la aplicacin de gestin EvoAgentManager pero se ha migrado
su funcionalidad a la aplicacin CRM donde se lleva la gestin de los clientes de la empresa
Evotec para, de esta manera, poder trabajar con las alertas combinndolas con otras
herramientas de trabajo que proporciona dicha aplicacin.
Cmo empezar
Para acceder a las alertas generadas por el sistema y registradas en el CRM, se debe abrir
dicha aplicacin. Para ello se ha proporcionado un enlace directo desde la interfaz de la
aplicacin de gestin. Se puede observar desde la ventana principal en el men inferior
izquierdo captulo de Referencias. En cualquier caso se puede acceder a la aplicacin
usando los medios proporcionados por la misma para ello, en este caso, mediante Internet
Explorer a la direccin de su ubicacin en la red de la empresa.
Una vez cargada la aplicacin CRM y si esta correctamente configurada para el usuario
actual se podr ver en el men rea de Trabajo de la izquierda un apartado Extensiones
con el elemento Alerta:
256
Herramienta de Monitorizacin de Sistemas
Pulsando sobre el botn se cargan las alertas activas existentes. La vista general se
compone de Tipo de alerta, identificador, equipo, fecha y descripcin o detalle. Haciendo
doble clic sobre la alerta se puede empezar a trabajar con ella y aparece ms informacin
como el cliente o detalles relevantes dependiendo del tipo de alerta.
257
Herramienta de Monitorizacin de Sistemas
258
Herramienta de Monitorizacin de Sistemas
Desechar Alertas
Con la informacin disponible se puede optar por desechar el evento como alerta y
eliminarlo. Para ello se pude seleccionar las alertas a eliminar y pulsar el botn con un aspa.
Se pedir confirmacin.
Asignar Alertas
Aunque, como se ha visto en el mdulo Settings, existe un usuario del sistema al que se
registran todas las alertas (Ver Settings de Alertas ) el usuario propietario de unas
determinadas alertas se puede modificar. Esto permitira poder poner un usuario genrico
como el propietario de las alertas y desde ste asignarlas a quien corresponda.
Para asignar la alerta se debe acceder primero a la alerta haciendo doble clic sobre ella en la
ventana de alertas del CRM. Aparece la ventana de arriba con la informacin detallada de la
misma. Sobre el men de arriba pulsar la opcin Acciones y Asignar:
259
Herramienta de Monitorizacin de Sistemas
Aparece otra ventana con los posibles usuarios. Seleccionar el usuario deseado y pulsar
ACEPTAR.
260
Herramienta de Monitorizacin de Sistemas
El caso es la herramienta, interna al CRM, que se ha elegido para tratar las alertas. Es por
ello que para ste mdulo se haya realizado una integracin con dicha aplicacin. Cada
alerta podr generar uno o varios casos para un cliente. El tratamiento de casos es un
apartado correspondiente al CRM y la propia compaa y por tanto no ser tratado en este
documento.
Para crear un caso a partir de una alerta es necesario abrir la alerta. En el men de la
izquierda aparece la opcin Servicios y dentro de Servicios Casos. Haciendo clic sobre ste
ltimo se accede a los casos relacionados con la alerta:
261
Herramienta de Monitorizacin de Sistemas
Se abrir una nueva ventana con la informacin del nuevo caso. El caso llevar asociado
una alerta en el apartado Alerta que se seala en la imagen.
A partir de aqu se puede trabajar con el caso como un caso ms, asignarlo a un usuario y
resolverlo.
262
Herramienta de Monitorizacin de Sistemas
El cdigo fuente del sistema, desarrollado con la herramienta Visual Studio 2005, se
descompone en dos soluciones. Todo el cdigo se encuentra bajo el mismo directorio
EvoAgentProyect:
263
Herramienta de Monitorizacin de Sistemas
Desde aqu se puede abrir una de las dos soluciones haciendo doble clic sobre el archivo
EvoAgentProyect.sln. Para acceder a la otra solucin es necesario entrar en el directorio
EvoAgentService y hacer doble clic sobre el archivo EvoAgentService.sln
Ambas soluciones se pueden abrir directamente desde el programa Visual Studio 2005.
Cada uno de los proyectos posee su propia carpeta en el sistema de directorios como se
ha podido observar en la figura A2.3.
264
Herramienta de Monitorizacin de Sistemas
Proyecto EvoAgent
Se trata de un proyecto Visual Studio de tipo Servicio de Windows y es utilizado para
generar el servicio de Windows que se instala en las mquinas cliente y que comprende toda
la funcionalidad del agente del sistema. En la figura A2.4 se puede ver las diferentes clases
que lo componen.
El mtodo OnStart() se ejecuta cada vez que se inicia el ordenador. Al iniciar se crea
la clase ConfigAgente que permanecer activa hasta que se detenga el servicio.
Dicha clase contiene cuatro propiedades:
265
Herramienta de Monitorizacin de Sistemas
Por otro lado, se inicia un temporizador que salta cada hora para realizar su proceso.
El temporizador esta controlado por un handler que detectar cuando salte e iniciar
el mtodo IntervaloComunicacin.
Otros mtodos que se incluyen en esta clase tienen que ver con la funcionalidad del servicio.
Estos instaladores son los que se encargan de instalar el servicio de windows. Son
iniciados en el constructor de la clase con los parmetros del servicio (tipo de inicio,
nombre y cuenta de usuario) e incluidos en el atributo installers de la clase.
En el mtodo Install() se debe incluir todo el cdigo que se quiere que se ejecute al
instalar el servicio y en el mtodo Uninstall() al desinstalar.
266
Herramienta de Monitorizacin de Sistemas
Por ltimo comentar que la versin del agente instalado en la mquina cliente viene indicada
en el apartado Settings dentro de properties con un setting a nivel de aplicacin. Dicho
setting es el que se utiliza para contrastar la versin del agente con la ltima versin
disponible tal y como se explica en el apartado Gestin de Versiones del punto 2 de este
documento.
Proyecto EvoIcon
Se corresponde con el programa que carga el icono en la barra de tareas. En la figura A2.5
se puede ver las clases que lo componen:
La ventana Form1 se mantendr oculta durante toda la vida de la aplicacin. Para ello se
debe acudir a las propiedades de la ventana y configurarla los siguientes Items:
WindowState = Minimized y ShowInTaskBar = False. Por otro lado se debe incluir una lnea
de cdigo en el mtodo Load.
267
Herramienta de Monitorizacin de Sistemas
Proyecto EvoAgentSetup
Se trata de un proyecto de instalacin cuyo resultado es un fichero .msi instalable por medio
del programa Windows Installer en sus distintas versiones. El archivo Windows Installer
resultante contiene la aplicacin, cualquier archivo dependiente, informacin sobre la
aplicacin e instrucciones para la instalacin de forma que se puede instalar en cualquier
equipo.
268
Herramienta de Monitorizacin de Sistemas
Al hacer clic con el botn derecho del ratn sobre el nombre del proyecto y pulsar en View
aparecen varias opciones que permiten configurar aspectos de la instalacin:
Haciendo clic en el botn derecho del ratn sobre Application Folder y pulsando
Properties se ven las propiedades de la carpeta de la aplicacin. Aqu se puede
configurar la ruta por defecto en la que se crear la carpeta de la aplicacin con el
tem DefaultLocation. Por defecto se incluye la ruta Archivos de
Programa/Evotec/EvoAgent/
269
Herramienta de Monitorizacin de Sistemas
Por otra parte, pueden incluirse condiciones en cualquier archivo o carpeta mediante
la propiedad Condition. Esto permite personalizar la instalacin de archivos en
funcin de las condiciones que existan en el equipo de destino durante la instalacin.
Por ejemplo, puede elegir instalar distintos archivos dependiendo de la versin del
sistema operativo instalada en el equipo de destino. Para obtener ms informacin
sobre las condiciones ir al link: http://msdn2.microsoft.com/es-es/library/2f471fc1.aspx
Figura A2.8 Visual Studio. Configuracin del Interfaz de Usuario de la instalacin del paquete
270
Herramienta de Monitorizacin de Sistemas
El editor contiene cuatro carpetas, que se corresponden con cada fase de instalacin:
Instalar, Confirmar, Deshacer y Desinstalar.
Por ltimo, se pueden establecer condiciones para la ejecucin del cdigo. Hay
mltiples condiciones configurables en funcin de las propiedades de la instalacin,
del sistema o de otros aspectos. En este caso se ha configurado una condicin en la
instalacin del servicio de Windows:
271
Herramienta de Monitorizacin de Sistemas
Es muy importante mencionar las propiedades del paquete de instalacin. Al hacer clic con
el botn derecho del ratn sobre el nombre del proyecto y pulsar en Properties aparecen las
propiedades del paquete de instalacin.
272
Herramienta de Monitorizacin de Sistemas
En este apartado se han configurado varios aspectos importantes que se deben tener en
cuenta:
InstallAllUsers = true;
273
Herramienta de Monitorizacin de Sistemas
Proyecto EvoAgentLibrary
Se trata de un proyecto de librera de clases que contiene paquetes de clases del sistema
que son utilizados por el resto de aplicaciones. El subsistema EvoAgentService visto hasta
ahora se considera un subsistema independiente con un sistema de clases independiente. El
resto de aplicaciones utilizan los paquetes de clases aqu definidos:
274
Herramienta de Monitorizacin de Sistemas
datos del CRM y al servicio Web CRMService), como para el sistema externo
TaskScheduler.
Servicios: Clases que definen funciones que son utilizadas por otras aplicaciones.
Entre ellas estn definidas la clase CredencialesUsuario utilizada por la aplicacin de
gestin EvoAgentManager para realizar el login contra el servicio web y la base de
datos, la clase InterpreteProgramacionTareas utilizada por la aplicacin de gestin
EvoAgentManager para gestionar la creacin y lectura de tareas programdas, la
clase ControlNuevaAuditoria utilizada por la aplicacin Web EvoAgentServer para
gestionar la creacin de Alertas y la clase LeerAuditoriaXML utilizada para leer los
ficheros XML de auditoras para mostrar el detalle de las mquinas en la aplicacin
de gestin y para realizar el control de la auditora en la aplicacin Web.
WebReferences: Se incluyen aqu las referencias a los servicios web: el servicio Web
de Administracin del sistema y el servicio Web del CRM.
Proyecto EvoAgentManager
Se trata de una aplicacin de Windows que posee el interfaz grfico de usuario para los
tcnicos. El documento Manual de Usuario muestra toda la funcionalidad de la aplicacin.
275
Herramienta de Monitorizacin de Sistemas
Proyecto EvoAgentServer
Se trata de una aplicacin ASP.NET Web Services Application que contiene el mdulo
servidor del sistema. Contiene una referencia al proyecto EvoAgentLibrary para acceder a la
librera del sistema.
Se distinguen dos directorios que formarn el sitio web, ControlClientes y AdminManager.
Cada uno de ellos debe tener un mtodo de autenticacin diferente. Se procede ahora a
explicar cada uno de los componentes de los directorios:
276
Herramienta de Monitorizacin de Sistemas
277
Herramienta de Monitorizacin de Sistemas
La aplicacin Web reside en un directorio virtual al que hace referencia el sitio web definido
en el Servidor Web. En concreto, la aplicacin web en el entorno de produccin reside en el
directorio \\evtsrv01\Inetpub\EvoAgentServer\ y es ah donde se debe publicar. Para publicar
una aplicacin web pulsar el botn derecho del ratn sobre el nombre del proyecto y hacer
clic en publicar. Aparecer una ventana donde ser necesario indicarle la ruta donde
publicarla. Visual Studio compila el proyecto y crea las carpetas necesarias incluyendo el
cdigo que necesita la aplicacin para funcionar.
Proyecto ProgramacionTareas
Se trata de una aplicacin de consola que interpreta las tareas programadas para registrar
tareas en la base de datos para su realizacin por los agentes. Se ejecuta a partir de
archivos bat que son objeto de la tarea programada. Revive como argumento el nombre de
la tarea programada, que es el mismo que el nombre del fichero bat y que el nombre de un
fichero xml que contiene las tareasa realizar por los agentes. El programa reside en el
archivo Program.cs y contiene la funcin Main() y funciones de interpretacin auxiliares. En
References existe una referencia al proyecto EvoAgentLibrary a travs de la cual utiliza la
librera del sistema para registrar mediante el paquete dao TareasMaquina (del paquete
dominio) en la base de datos.
Proyecto EvoAgentManagerSetup
Es un proyecto de instalacin de la aplicacin EvoAgentManager. El proyecto contiene la
referencia al proyecto EvoAgentManager (Proyect Output). Se ha establecido la ruta por
278
Herramienta de Monitorizacin de Sistemas
Una vez conectado con el servidor se puede acceder a todas las tablas de la base de datos,
modificarlas, introducir datos y realizar operaciones de backup de los datos.
No se puede modificar las propiedades de las columnas de las tablas si la tabla contiene
datos. Para ello borrar los datos o crear una tabla nueva donde posteriormente se
copiarn.
Aqu se incluye una descripcin de cada una de las tablas indicando los datos que
almacenan y los datos asociados que se necesitan obtener de otra fuente. El acceso a
las tablas de la base de datos se realiza mediante conexiones gestionadas por un
DataSet directamente desde las aplicaciones de gestin o desde el servicio web
ControlClientes del servidor. Para obtener los datos asociados a algunas tablas como
descripciones de errores o auditorias se usa el servicio web ControlAdmin del Servidor.
280
Herramienta de Monitorizacin de Sistemas
T_FiltroAlertaErrores: Se identifican los errores del log obtenidos desde cualquier agente
mediante un identificador de instancia y se registran automticamente en la tabla
incluyendo los datos reflejados en los campos que son obtenidos mediante la clase
EventLogEntry de System.Diagnostics. Ver la documentacin relacionada en
http://msdn2.microsoft.com/es-
es/library/system.diagnostics.eventlogentry_members(VS.80).aspx
Adems, se incluyen dos campos que indican, para cada instancia de Error, si se
registran alertas para origen PC o Servidor respectivamente y son configurados desde la
Gestin de Alertas en la aplicacin EvoAgentManager (Ver Manual de Usuario).
281
Herramienta de Monitorizacin de Sistemas
T_MaqTarea: Tabla utilizada para almacenar las tareas que se programan para los
agentes mediante el mdulo tareas en la aplicacin EvoAgentManager. Se alamcena un
identificador de tarea para la maquina que identifica cada una, un identificador de
mquina que identifica la mquina y, por tanto, el cliente para el que se programa la
tarea y un identificador de tarea que identifica la tarea programada y su descripcin. Se
registra el estado de la tarea y los parmetros necesarios para ejecutar la misma as
como la fecha de ejecucin para la que se program. Mediante el identificador de
mquina los agentes obtiene las tareas que deben ejecutar.
T_Tarea: Registro de las tareas que pueden ser programadas para los agentes.
nicamente se indica su identificador y nombre, para ser identificadas por el sistema y
los agentes.
282
Herramienta de Monitorizacin de Sistemas
Se hace necesario llevar un control del volumen de datos que maneja la base de datos. Los
puntos conflictivos se encuentran en:
o El log de acciones que dejan los agentes, tabla, T_MaqAcciones, cuyo volumen se
puede controlar directamente desde el mdulo logs de la aplicacin
EvoAgentManager.
o La tabla T_MaqError que almacena los errores del log registrados en las mquinas
indefinidamente.
Por ltimo, se debe mencionar como realizar el salvado de datos. Se puede utilizar el mismo
programa visto anteriormente, SQL Server 2005 Management Studio Express para realizar
backups totales o incrementales. En las siguientes figuras se ve como acceder a dicha
utilidad y como configurar la copia de seguridad. Se puede seleccionar la ubicacin dentro
del disco donde se crear el fichero .bak de recuperacin.
Para restaurar una base de datos desde un fichero de recuperacin se puede hacer desde
un fichero que contiene una copia completa y otros que contienen copias diferenciales o
simplemente desde uno que contenga la copia completa. Se debe realizar, por tanto, una
copia de seguridad completa al menos una vez al mes o semanalmente y copias
diferenciales diarias para garantizar que en cualquier caso se conservarn los datos.
283
Herramienta de Monitorizacin de Sistemas
Figura A2.17 Acceso a la utilidad Backup desde el programa Management Studio Express
284
Herramienta de Monitorizacin de Sistemas
Las tareas son acciones que pueden realizar los programas agente. Son programadas desde
la aplicacin de gestin para ser ejecutadas por la aplicacin agente. Se registran en la base
de datos y se comunican al agente cuando este realiza la solicitud asocindolas a ste
mediante un id de mquina. Las tareas a realizar por los agentes pueden requerir de
argumento en cuyo caso ste debera poder presentarse como una cadena de texto para su
envo a travs de la red hasta los agentes. Se podra realizar marshaling y unmarshaling
del argumento para que as fuere.
Antes de comenzar con una fase se recomienda leer este apartado entero para obtener una
visin global de lo que implica disear una nueva tarea y de los distintos puntos de vista
desde los que se pueden afrontar esta accin, conociendo qu es preferible para cumplir con
los requisitos necesarios.
Si bien se ha incluido como primer paso, esto es para que se tenga conocimiento de la
existencia de la configuracin de la tarea con nmero identificador y nombre ya que se
utilizar en el resto de puntos de este apartado. Esta accin debera de realizarse la ltima
para no autorizar acceso a programar la nueva tarea hasta que no se hayan realizado los
pasos necesarios para poder ejecutarla.
285
Herramienta de Monitorizacin de Sistemas
break;
Donde pone cdigo desarrollado para ejecutar la tarea se debe incluir el cdigo que
permite ejecutar la nueva tarea diseada. Si se requiere del registro de algn resultado en el
sistema, habr que incluir los pasos para la comunicacin segn se explica en el siguiente
punto.
En este punto del cdigo se posee datos de la tarea; vienen representados en la variable
ProxTarea que es un vector de strings:
286
Herramienta de Monitorizacin de Sistemas
Dicho vector est compuesto por tres strings que indican el id de la tarea, la fecha de
ejecucin y el resultado. Su creacin ser como se indica:
TareaRealizada[0] = ProxTarea[0];
TareaRealizada[1] = DateTime.Now.ToString();
TareaRealizada[2] = resultado;
El cdigo puede desarrollarse en una nueva clase incluyendo una llamada a la misma o en
esta seccin. Una vez desarrollado el cdigo e introducido como se ha indicado, el agente
estar listo para poder ejecutar la nueva tarea.
Se debe incluir un nuevo mtodo web en el servicio web ControlClientes. Para ello, desde
la solucin EvoAgentProyect, abrir el proyecto EvoAgentServer y sobre el fichero
ControlClientes.asmx del directorio ControlClientes pulsar para desplegar y abrir el fichero
ControlClientes.asmx.cs o, clic con el botn derecho sobre el fichero y pulsar ver cdigo.
Se abrir el cdigo fuente del servicio web que contiene los mtodos web a travs de los que
se comunican los agentes.
[WebMethod]
public string AltaMaquinaCliente(DataSet ds){}
[WebMethod]
public bool Comunica(){}
287
Herramienta de Monitorizacin de Sistemas
Ser necesario incluir un nuevo WebMethod para recibir el resultado de la nueva tarea. El
mtodo web debe contener una comprobacin de la identidad del agente que se comunica.
En el siguiente ejemplo de cdigo se ha creado un mtodo web que recibe el identificador
del agente que quiere realizar el registro y el resultado a registrar. Realiza la comprobacin
de identidad del agente mediante la ejecucin del mtodo
MaquinaDao.validaMaquina(idMaquina) que comprueba que la mquina est registrada y
tiene permiso. El mtodo web devuelve un valor booleano en funcin de si se ha registrado
en el sistema el resultado sin problemas o no. Se puede crear un mtodo para que devuelva
cualquier valor. Igualmente, el argumento del mtodo debe contener lo que se quiere
registrar si bien se ha de saber que un mtodo web puede recibir slo variables primitivas del
tipo cadenas de caracteres, vectores y dataSets que contengan texto plano que es lo
utilizado para enviar las auditoras. El registro debera pasar por el uso de una clase DAO
de acceso a datos para guardar el resultado. Puede ser necesario crear una tabla en la base
de datos para registrar los resultados de la nueva tarea o la solucin que se estime ms
oportuna.
Por ltimo en el ejemplo se ha incluido un control de errores try{}catch{} que registra un error
en el registro mediante el bloque catch creando un nuevo error de la aplicacin (definido en
el dominio) y registrndolo utilizando la clase DAO correspondiente.
[WebMethod]
public bool RegistraResultadoNuevaTarea(string idMaquina, resultado)
{
bool registrado = false;
try
{
if (MaquinaDAO.validaMaquina(idMaquina))
{
{Registro de resultado en el sistema}
registrado = true;
}
}
catch (Exception e)
{
ErrorAplicacionDAO.createNewError(new ErrorApliacion("Error_" +
Guid.NewGuid().ToString().Remove(8) + "_" +
DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() +
DateTime.Now.Day.ToString(), DateTime.Now, "servidor", e.ToString()),
AppDomain.CurrentDomain.BaseDirectory);
}
return registrado;
}
Una vez creado el mtodo, para registrarlo en el servidor se debe publicar tal y como se
indica en el apartado Proyecto EvoAgentServer del apartado A2.1.
288
Herramienta de Monitorizacin de Sistemas
Una vez se ha creado el mtodo web en el punto anterior y se han publicado los cambios en
el servidor es necesario actualizar la referencia al servicio web para que sta contenga el
mtodo web creado.
if (_Config.webService.registroResultadoNuevaTarea
(_Config.idMaquina, resultado))
{
registrado = true;
}
}
catch (Exception e)
{
envioError(e.ToString());
}
return registrado;
}
Este mtodo debera ser llamado al terminar la ejecucin de la nueva tarea por parte del
agente pasando el resultado que se quiere registrar en el sistema de dicha ejecucin en un
formato adecuado.
Clase Form_ParametrosTareas:
Se trata de la ventana utilizada para configurar los parmetros de cualquier tarea. Lo primero
es disear el interfaz mediante el cual se indicar el parmetro. Cuando se seleccione la
nueva tarea se presentar al usuario esta ventana para que pueda introducir el parmetro.
Se puede disear mediante un cuadro de texto o lo que sea necesario para poder configurar
el parmetro. Esto se debe introducir en un control nuevo GroupBox como el que se ve a
continuacin.
Mtodo CargarTareas(). Mediante ste mtodo se indica a esta ventana que tareas
se van a configurar. Se obtiene como atributo las tareas y en funcin del nombre de
la tarea se muestra el GroupBox diseado para la configuracin del parmetro de la
tarea en cuestin. Aqu hay que aadir una nueva clusua esle if en el interior del
bucle foreach:
if (t.sDescripcion == "Auditoria")
{
this.groupBoxAuditoria.Visible = true;
this.groupBoxAuditoria.BringToFront();
this.checkedListBox1.SetItemChecked(1, true);
this.checkedListBox1.SetItemChecked(2, true);
this.checkedListBox1.SetItemChecked(7, true);
this.checkedListBox1.SetItemChecked(16, true);
this.checkedListBox1.SetItemChecked(18, true);
this.checkedListBox1.SetItemChecked(20, true);
}
else if (t.sDescripcion == "ComprobarCuotas")
{
this.groupBoxCuotas.Visible = true;
this.groupBoxCuotas.BringToFront();
}
else if (t.sDescripcion == "InicioServicio")
{
this.groupBoxServicio.Visible = true;
this.groupBoxServicio.BringToFront();
}
else if (t.sDescripcion == "EjecutarScript")
{
this.groupBoxScript.Visible = true;
this.groupBoxScript.BringToFront();
}
}
Tambin se podra incluir el relleno de valores por defecto tal y como se ve en el caso de la
auditora.
Nuevos Mtodos get y set. Se deben configurar sendos mtodos para obtener y
configurar el valor del parmetro. En la clase se puede ver ejemplos de stos
mtodos para otras tareas.
Se debe devolver el valor del parmetro como una cadena de texto. Se realizarn las
operaciones oportunas para convertir la configuracin del parmetro en una cadena
de texto.
Clase Form_NuevaTarea:
Se trata de la ventana utilizada para programar las tareas. Dicha ventana se encarga de
obtener de la base de datos todas las tareas disponibles. La nueva tarea, si ha sido creada
en la base de datos, ser posible seleccionarla. Una tarea que no requiera de parmetros no
necesitar de ninguna modificacin en la interfaz. Sin embargo, para una tarea que requiere
de la configuracin de parmetros es necesario realizar las siguientes modificaciones:
Variable Config: Todas las tareas que requieren de parmetros poseen una variable
entera global de la clase que sirve para detectar cuando se ha seleccionado o
deseleccionado la tarea. Es, por tanto, necesario crear una nueva variable siguiendo
el estilo de las anteriores:
if (activar_parametros)
292
Herramienta de Monitorizacin de Sistemas
{
List<Tarea> tareas_para_parametros = new List<Tarea>();
this._parametros = Form_ParametrosTareas.Default;
this._parametros.MdiParent = this.MdiParent;
int i;
this.parametros.tareas = tareas_para_parametros;
this.parametros.CargaTareas();
this.editarToolStripMenuItem.Enabled = true;
}
if (this.cambios_tarea == 1)
{
List<Tarea> tareas = null;
if (this.ConfigAuditoria == 1)
{
tareas = new List<Tarea>();
tareas.Add(new Tarea(1, "Auditoria"));
293
Herramienta de Monitorizacin de Sistemas
}
if (this.ConfigServicio == 1)
{
if (tareas == null)
tareas = new List<Tarea>();
tareas.Add(new Tarea(4, "InicioServicio"));
}
if (this.ConfigCuotas == 1)
{
if (tareas == null)
tareas = new List<Tarea>();
tareas.Add(new Tarea(5, "ComprobarCuotas"));
}
if (this.ConfigScript == 1)
{
if (tareas == null)
tareas = new List<Tarea>();
tareas.Add(new Tarea(7,"EjecutarScript"));
}
if (this.Config-NuevaTarea == 1)
{
if (tareas == null)
tareas = new List<Tarea>();
tareas.Add(new Tarea(numero identificador de tarea, "nombre de la tarea"));
}
int i;
bool auditar = false;
bool inicioS = false;
bool configCuotas = false;
bool ejecutarScript = false;
Crear una nueva variable que haga referencia al config creado al principio pero
poniendo atencin en que tenga un nombre diferente, por ejemplo con c minscula:
bool config-NuevaTarea= false;
Un poco ms abajo, en el bucle for incluir una nueva sentencia else if despus de
la ltima que hubiera:
294
Herramienta de Monitorizacin de Sistemas
Por ltimo, debajo del bucle for incluir una comprobacin por si se hubiera
seleccionado la nueva tarea para activar la variable Config:
if (config-NuevaTarea)
this. Config-NuevaTarea = 1;
else
this.Config-NuevaTarea = 0;
else
{
if (this._parametros != null && !this._parametros.IsDisposed)
{
if (this.tareaEntrada.idTarea == 1)
this.tareaEntrada.sSeleccion =
this._parametros.getSeleccionAuditoria();
else if (this.tareaEntrada.idTarea == 4)
this.tareaEntrada.sSeleccion =
this._parametros.getSeleccionServicio();
else if (this.tareaEntrada.idTarea == 5)
this.tareaEntrada.sSeleccion =
this._parametros.getSeleccionCuotas();
else if (this.tareaEntrada.idTarea == 7)
this.tareaEntrada.sSeleccion =
this._parametros.getSeleccionScript();
}
if (m.idCliente == null)
{
if (t.sDescripcion == "Auditoria")
tareasMaquina.Add(new TareaMaquina());
else if (t.sDescripcion == "InicioServicio")
tareasMaquina.Add(new TareaMaquina());
295
Herramienta de Monitorizacin de Sistemas
En el primer bloque:
296
Herramienta de Monitorizacin de Sistemas
En el segundo bloque:
Esto implica que los agentes actualicen su cdigo fuente obteniendo la nueva versin del
servidor. Todo esto se explica en el punto A2.2.2 Gestin de Versiones.
297
Herramienta de Monitorizacin de Sistemas
En los paquetes de instalacin creados con Visual Studio 2008, la accin de desinstalacin
no es llamada, tratando solamente la instalacin. En la instalacin consulta la base de datos
298
Herramienta de Monitorizacin de Sistemas
de Windows Installer para saber los ficheros que contena la antigua versin de una
aplicacin y compararlos con las que contiene el paquete que est instalando. As, puede
modificar los ficheros que han cambiado de una versin a otra.
Es importante asegurar que ningn fichero que deba ser sustituido este en uso para evitar
que Windows Installer provoque un reinicio de la mquina al finalizar la instalacin.
Dado que se trabajar en un futuro con Visual Studio 2008 se hace necesario determinar
una configuracin apropiada del proyecto de instalacin para gestionar las versiones del
programa agente. Del ltimo prrafo del punto anterior se extrae la conclusin de que ante
una actualizacin se producir un error al instalar el servicio de Windows EvoAgentService
debido a que no se desinstala la aplicacin del servicio correspondiente a la versin anterior
y el sistema operativo no permite registrar dos servicios con el mismo nombre.
299
Herramienta de Monitorizacin de Sistemas
300
Herramienta de Monitorizacin de Sistemas
Por otro lado, como se pretende que los agentes se actualicen automticamente es
necesario configurar el sistema para controlar las actualizaciones.
La aplicacin agente tiene un atributo o setting que le indica la versin de su cdigo. Dicho
setting tiene su anlogo en el sistema que indica la ltima versin disponible de la aplicacin
agente. Los agentes consultan la versin disponible en cada comunicacin con el servidor.
Si un agente encontrara en una consulta que existe una versin diferente (no menor o
mayor), procedera a solicitar al servidor la nueva versin de la aplicacin.
El servidor deber proporcionar al agente una ruta desde donde bajarse la nueva versin.
Con nueva versin, se entiende, un paquete de instalacin msi de Windows Installer. Dicha
ruta es otro setting del sistema. Para poder modificar los settings de versiones y ruta de
descarga se ha habilitado una ventana en la aplicacin de gestin:
La versin que indica el setting de la aplicacin agente se corresponde con la versin que se
configura en el paquete de instalacin. Para introducir la nueva versin desplegar la carpeta
Properties del proyecto EvoAgent en el explorador de soluciones y abrir Settings haciendo
doble clic sobre l:
301
Herramienta de Monitorizacin de Sistemas
Uno de los settings que aparece como string con el nombre de Version contiene en la
columna Value el valor de la versin actual de la aplicacin. Introducir la nueva versin de la
aplicacin, la misma que se ha introducido en el paquete de instalacin, en el apartado
anterior:
Por otro lado el programa Icono muestra la versin actual al pasar el ratn por el icono o al
abrir las propiedades. Por tanto, es necesario actualizar la versin tambin en estos dos
elementos. Para acceder al mensaje del icono abrir Form1 del proyecto EvoIcon haciendo
doble clic sobre la forma en el explorador de soluciones. Pulsar el elemento NotifyIcon que
aparece en la parte inferior en el modo diseo y abrir las propiedades. Modificar la versin en
la propiedad Text que se ve en la siguiente figura:
302
Herramienta de Monitorizacin de Sistemas
Para modificar la versin en el cuadro Acerca de que proporciona una descripcin del
programa agente a los usuarios finales abrir AcercaDe haciendo doble clic sobre la forma en
el explorador de soluciones. Pulsar sobre la primera etiqueta de texto y en el cuadro
propiedades modificar la propiedad Text:
303
Herramienta de Monitorizacin de Sistemas
Una vez actualizadas las versiones faltara adaptar las versiones de los ficheros que
contiene cada aplicacin. Este aspecto es consultado por Windows Installer a la hora de
seleccionar los ficheros que deben ser modificados. Si se ha realizado un cambio en el
cdigo del ensamblado del agente debe reflejarse en. Para acceder a la versin de los
ficheros hacerlo desde las Properties de cada proyecto, EvoAgent y EvoIcon:
304
Herramienta de Monitorizacin de Sistemas
Una vez actualizadas todos los indicadores de versin, compilar primero los proyectos
EvoAgent y EvoIcon y despus el proyecto EvoAgentSetup. El resultado de esto ltimo crea
un paquete de Windows Installer que contiene la nueva versin de la aplicacin Agente. Para
que los agentes obtengan la nueva versin se debe modificar el setting del sistema que
indica la ltima versin disponible como se ha visto en la figura A2.22. Los agentes
comprobarn que existe una nueva versin disponible y le solicitarn la ruta desde donde
bajar la nueva versin. Dicha ruta por defecto es el subdirectorio Repositorio situado en el
directorio ControlClientes del Servidor. All, se deber guardar el nuevo paquete de Windows
Installer. Para obtener dicho paquete que se acaba de crear haya que acceder al directorio
de trabajo a la ruta que se ve en la siguiente imagen:
305
Herramienta de Monitorizacin de Sistemas
Por ltimo, y como se ver ms adelante es necesario modificar el nombre del fichero. El
nombre debe ser: EvoAgentSetupV.V.msi donde V.V es la versin de la aplicacin.
Si se trata de una actualizacin a la versin 1.2, por ejemplo, el nombre del fichero creado
ser EvoAgentSetup1.2.msi y el nmero de versin introducido en todos los pasos hasta
ahora ser 1.2.
306
Herramienta de Monitorizacin de Sistemas
Como se puede ver, el mtodo llama a un mtodo web del servicio ControlClientes mediante
la referencia al mismo existene en la clase ConfigAgente instanciada y referenciada
mediante la variable _Config en esta clase. Se pasa como parmetro el identificador de la
mquina, propiedad de la misma clase y el setting Versin de la aplicacin.
A continuacin se muestra el cdigo del mtodo web que recibe dichos parmetros,
comprueba la validez del identificador de la mquina recibido y contrasta la versin recibida
con el setting del sistema que indica la ltima versin disponible.
[WebMethod]
public bool VersionAgenteOK(string idMaquina, string versionAgente)
{
bool versionOK = true;
try
{
if (MaquinaDAO.validaMaquina(idMaquina))
{
string version_actual = SettingsDAO.getValorSetting(5);
if (version_actual != versionAgente)
versionOK = false;
}
}
catch (Exception e)
{
//Registro de error
}
return versionOK;
307
Herramienta de Monitorizacin de Sistemas
StreamWriter sw = File.CreateText(config.workingDirectory +
"Instalar.bat");
sw.WriteLine(nombreFichero);
sw.Close();
try
{
Process icon = Process.GetProcessesByName("EvoIcon")[0];
icon.Kill();
}
catch (Exception e){ }
actualizacion.StartInfo.WorkingDirectory =
config.workingDirectory;
actualizacion.StartInfo.FileName = "Instalar.bat";
actualizacion.StartInfo.CreateNoWindow = true;
actualizacion.Start();
actualizacion.PriorityClass = ProcessPriorityClass.Idle;
}
catch (Exception e)
{
com.envioError(e.ToString());
}
}
}
308
Herramienta de Monitorizacin de Sistemas
[WebMethod]
public string getRutaRepositorio(string idMaquina)
{
return ruta;
}
A travs del mtodo anterior se devuelve la URL al servicio. El servicio llama a la funcin
descargarArchivo para descargar el paquete de instalacin de la ruta obtenida, crea un
fichero .bat para ejecutarlo y antes de iniciar la instalacin detiene el proceso EvoIcon para
que el proceso no provoque el reinicio del equipo. Cuando empieza la instalacin, Windows
Installer detiene el servicio por encontrarlo asociado al paquete que quiere actualizar. No
hace lo mismo con el Icono pues no es instalado sino un ejecutable que se arranca con una
entrada en el registro de arranque de la mquina.
Se resume los pasos necesarios para actualizar los programas agente. Como ejemplo se
pone la actualizacin de la versin 1.1 a la versin 1.2:
1. Una vez modificado el programa agente, En Settings del proyecto EvoAgent modificar
el Setting Version a 1.2. En properties, pulsar en Assembly Information y actualizar el
valor File Version para que sea 1 en el primer espacio y 2 en el segundo.
2. En el proyecto EvoIcon,
b. Abrir AcercaDe, seleccionar la primera etiqueta cuyo valor indica la versin del
agente y modificar la propiedad Text para que ponga EvoAgent v1.2.
310
Herramienta de Monitorizacin de Sistemas
Anexo 3. Tecnologas
.NET Framework
El "framework" o marco de trabajo, constituye la base de la plataforma .NET y denota la
infraestructura sobre la cual se renen un conjunto de lenguajes, herramientas y servicios
que simplifican el desarrollo de aplicaciones en entorno de ejecucin distribuido.
Bajo el nombre .NET Framework o Marco de trabajo .NET se encuentran reunidas una
serie de normas impulsadas por varias compaas adems de Microsoft (como Hewlett-
Packard , Intel, IBM, Fujitsu Software, Plum Hall, la Universidad de Monash e ISE), entre las
cuales se encuentran:
La norma que define las reglas que debe seguir un lenguaje de programacin para
ser considerado compatible con el marco de trabajo .NET (ECMA-335, ISO/IEC
23271). Por medio de esta norma se garantiza que todos los lenguajes desarrollados
para la plataforma ofrezcan al programador un conjunto mnimo de funcionalidad, y
compatibilidad con todos los dems lenguajes de la plataforma.
El Entorno Comn de Ejecucin para Lenguajes o CLR por sus siglas en ingls.
Algunos de los lenguajes desarrollados para el marco de trabajo .NET son: C#, Visual
Basic, Delphi (Object Pascal), C++, J#, Perl, Python, Fortran y Cobol.NET.
La compilacin JIT la realiza el CLR a medida que el programa invoca mtodos, el cdigo
ejecutable obtenido, se almacena en la memoria cach del ordenador, siendo recompilado
de nuevo slo en el caso de producirse algn cambio en el cdigo fuente.
312
Herramienta de Monitorizacin de Sistemas
313
Herramienta de Monitorizacin de Sistemas
Lenguaje de Programacin C#
C# (pronunciado "si sharp" o C sostenido) es un lenguaje de programacin orientado a
objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que
despus fue aprobado como un estndar por la ECMA e ISO.
C#, como parte de la plataforma .NET, est normalizado por ECMA desde diciembre de
2001 (ECMA-334 "Especificacin del Lenguaje C#"). El 7 de noviembre de 2005 acab la
beta y sali la versin 2.0 del lenguaje que incluye mejoras tales como tipos genricos,
mtodos annimos, iteradores, tipos parciales y tipos anulables. Ya existe la versin 3.0 de
C# en fase de beta destacando los tipos implcitos y el LINQ (Language Integrated Query).
314
Herramienta de Monitorizacin de Sistemas
La ltima versin en lnea de IDEs, Visual Studio .NET soporta los nuevos lenguajes .NET:
C#, Visual Basic .NET y Managed C++, adems de C++. Visual Studio .NET puede utilizarse
para construir aplicaciones dirigidas a Windows (utilizando Windows Forms), Web (usando
ASP.NET y Servicios Web) y dispositivos porttiles (utilizando .NET Compact Framework).
El aspecto de Visual Studio .NET es casi idntico a las versiones anteriores del IDE
(Microsoft Visual Studio). Algunas excepciones destacables son la interfaz ms limpia y
mayor cohesin. Tambin es ms personalizable con ventanas informativas de estado que
automticamente se ocultan cuando no se usan. Todas las versiones de Visual Studio,
tambin su predecesora Visual C++, incluyen un depurador integrado en el entorno de
edicin.
La caracterstica ms notable del IDE es su soporte de los nuevos lenguajes .NET. Los
programas desarrollados en esos lenguajes no se compilan a cdigo mquina ejecutable
(como por ejemplo hace C++) sino que son compilados a algo llamado CIL. Cuando los
programas ejecutan la aplicacin CIL, sta es compilada en ese momento al cdigo de
mquina apropiado para la plataforma en la que se est ejecutando. Mediante este mtodo,
Microsoft espera poder soportar varias implementaciones de sus sistemas operativos
Windows (como Windows CE). Los programas compilados a CIL pueden ejecutarse slo en
plataformas que tengan una implementacin de .NET framework. Es posible ejecutar
programas CIL en Linux o en Mac OS X utilizando algunas implementaciones .NET que no
pertenecen a Microsoft, como Mono y DotGNU.
315
Herramienta de Monitorizacin de Sistemas
La versin definitiva en ingls vio la luz en Noviembre del 2005. En castellano hubo que
esperar hasta Febrero de 2006.
Las DLLs son o pueden verse como la evolucin de las bibliotecas estticas y de forma
anloga contienen funcionalidad o recursos que utilizan otras aplicaciones. Sin embargo, su
uso proporciona algunas ventajas:
Reducen el tamao de los archivos ejecutables: Gran parte del cdigo puede
estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una
mejor modularizacin.
Pueden estar compartidas entre varias aplicaciones: Si el cdigo es
suficientemente genrico, puede resultar de utilidad para mltiples aplicaciones.
Facilitan la gestin y aprovechamiento de la memoria del sistema: La carga
dinmica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento
del sistema cuando se carguen estas bibliotecas. Adems, al estar compartidas,
basta con mantener una copia en memoria para todos los programas que la utilicen.
Brindan mayor flexibilidad frente a cambios: Es posible mejorar el rendimiento o
solucionar pequeos errores distribuyendo nicamente una nueva versin de la
biblioteca dinmica. Nuevamente, est correccin o mejora ser aprovechada por
todas las aplicaciones que compartan la biblioteca.
316
Herramienta de Monitorizacin de Sistemas
Visual Studio Permite generar Proyectos cuya solucin sea una librera dinmica. De
sta forma, y ya pensando en el diseo de la aplicacin, se podr tener un proyecto de
Visual Studio que contenga elementos comunes a todo el sistema como el modelo de
dominio o la lgica de negocio o acceso a datos y simplemente ser necesario
agregar dicha librera a cada una de las aplicaciones del sistema. Esto permitir
coherencia entre las aplicaciones que conforman el sistema adems de proveer un
punto comn de evolucin del mismo.
El mtodo Main para la aplicacin de servicios debe emitir el comando Run para los servicios
que contiene el proyecto. El mtodo Run carga los servicios en el Administrador de control
de servicios del ordenador adecuado. Si se utiliza la plantilla de proyecto Servicios de
Windows, este mtodo se escribir automticamente.
La interaccin del servicio de Windows con el usuario u otras estaciones debe disearse con
cuidado para que incluya casos como, por ejemplo, que no exista un usuario que haya
iniciado una sesin o que el usuario tenga un conjunto inesperado de objetos de escritorio.
En algunos casos, puede ser ms apropiado escribir una aplicacin para Windows que se
ejecute bajo el control del usuario.
Una vez cargado el servicio, es necesario iniciarlo. Al iniciar el servicio, se permite que
empiece a funcionar. Puede iniciar un servicio desde el Administrador de control de
servicios, desde el Explorador de servidores o desde cdigo llamando al mtodo Start. El
mtodo Start pasa el procesamiento al mtodo OnStart de la aplicacin y procesa el cdigo
que haya definido all.
318
Herramienta de Monitorizacin de Sistemas
IIS, es una serie de servicios para los ordenadores que funcionan con Windows.
Originalmente era parte del Option Pack para Windows NT. Luego fue integrado en otros
sistemas operativos de Microsoft destinados a ofrecer servicios, como Windows 2000 o
Windows Server 2003. Windows XP Profesional incluye una versin limitada de IIS. Los
servicios que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS.
El servidor Web se basa en varios mdulos que le dan capacidad para procesar distintos
tipos de pginas, por ejemplo Microsoft incluye los de Active Server Pages (ASP) y
ASP.NET. Tambin pueden ser incluidos los de otros fabricantes, como PHP o Perl.
La versin actual de IIS es la 6.0 para Windows Server 2003 e IIS 5.1 para Windows XP
Profesional. IIS 5.1 para Windows XP es una versin compacta del IIS que soporta solo 10
conexiones simultaneas y solo un sitio Web, aunque puede ser extensible mediante el
manejo de AdminScripts instaladas en la ruta del servidor. En el presente proyecto se
trabajar con las versiones actuales mencionadas, IIS 5.1 para el entorno de desarrollo e IIS
6.0 para el entorno de produccin.
Windows Vista viene con IIS 7.0 preinstalado. No limitar el nmero de conexiones
permitidas pero limitar el flujo de tareas basndose en las solicitudes activas concurrentes,
mejorando la usabilidad y el rendimiento en escenarios punto-a-punto (peer-to-peer).
319
Herramienta de Monitorizacin de Sistemas
IIS gestiona sitios Web. Un sitio Web (en ingls: Website) es un conjunto de pginas Web,
tpicamente comunes a un dominio en Internet o subdominio en la World Wide Web en
Internet.
320
Herramienta de Monitorizacin de Sistemas
A las pginas de un sitio Web se accede desde una URL raz comn llamada portada, que
normalmente reside en el mismo servidor fsico. Las URLs organizan las pginas en una
jerarqua, aunque los hiperenlaces entre ellas controlan cmo el lector percibe la estructura
general y cmo el trfico Web fluye entre las diferentes partes de los sitios.
Los sitios Web estn escritos en HTML (Hyper Text Markup Language), o dinmicamente
convertidos a ste y se acceden usando un cliente http, navegador Web o cualquier otro. Los
sitios Web pueden ser visualizados o accedidos desde un abanico de dispositvos con
disponibilidad de Internet como computadoras personales, computadores portatiles, PDAs y
telefnos mviles.
321
Herramienta de Monitorizacin de Sistemas
En IIS se pueden configurar los sitios Web para que se acceda a ellos a travs de un puerto
TCP diferente al puerto TCP por defecto para los servidores Web, los tipos MIME que son
reconocidos, la versin del ASP.NET que se utiliza as como una serie de parmetros
propios de un sitio Web: (Control de acceso, seguridad, configuracin ssl).
Al configurar los sitios Web debe indicar los directorios que contienen los documentos que
desea publicar. El servidor Web no puede publicar documentos que no estn en los
directorios especificados.
Cada sitio Web o FTP debe tener un directorio particular. El directorio particular es la
ubicacin central de las pginas publicadas. En este caso, por seguridad del sitio Web,
conviene crear un directorio particular diferente al que viene por defecto.
322
Herramienta de Monitorizacin de Sistemas
323
Herramienta de Monitorizacin de Sistemas
324
Herramienta de Monitorizacin de Sistemas
325
Herramienta de Monitorizacin de Sistemas
326
Herramienta de Monitorizacin de Sistemas
XML( eXtensible Markup Language): Un servicio Web es una aplicacin Web creada
en XML.
SOAP (Simple Object Access Protocol): Permite que programas que corren en
diferentes sistemas operativos se comuniquen. La comunicacin entre las diferentes
entidades se realiza mediante mensajes que son rutados en un sobre SOAP.
Protocolo SOAP
Son las siglas de Simple Object Access Protocol. Este protocolo deriva de un protocolo
creado por David Winer, XML-RPC en 1998. En su sitio Web, Userland,
http://www.userland.com se puede encontrar multitud de documentacin acerca de este
primer protocolo de comunicacin bajo http mediante XML. Con este protocolo se pedan
realizar RPC o remote procedure calls, es decir, podamos bien en cliente o servidor realizar
peticiones mediante http a un servidor Web. Los mensajes deban tener un formato
determinado empleando XML para encapsular los parmetros de la peticin. Con el paso del
tiempo el proyecto iniciado por David Winer interes a Importantes multinacionales entre las
que se encuentran IBM y Microsoft y de este inters por XML-RPC se desarrollo SOAP."
En el ncleo de los servicios Web se encuentra el protocolo simple de acceso a datos SOAP,
que proporciona un mecanismo estndar de empaquetar mensajes. SOAP ha recibido gran
atencin debido a que facilita una comunicacin del estilo RPC entre un cliente y un servidor
327
Herramienta de Monitorizacin de Sistemas
remoto. Pero existen multitud de protocolos creados para facilitar la comunicacin entre
aplicaciones, incluyendo RPC de Sum, DCE de Microsoft, RMI de Java y ORPC de CORBA.
Una de las razones principales es que SOAP ha recibido un increble apoyo por parte de la
industria. SOAP es el primer protocolo de su tipo que ha sido aceptado prcticamente por
todas las grandes compaas de software del mundo. Compaas que en raras ocasiones
cooperan entre s estn ofreciendo su apoyo a este protocolo. Algunas de las mayores
Compaas que soportan SOAP son Microsoft, IBM, SUN, Microsystems, SAP y Ariba.
328
Herramienta de Monitorizacin de Sistemas
ASP.NET proporciona soporte para servicios Web con el archivo .asmx. Un archivo .asmx es
un archivo de texto. Se puede asignar una direccin URI a los archivos .asmx.
Este archivo comienza con la directiva WebService ASP.NET y establece el lenguaje en C#,
Visual Basic o JScript. A continuacin, puede contener cdigo o hacer referencia a una clase
externa que lo contiene. La clase deber incluir las libreras de WebServices y podr
implementar servicios declarando mtodos de la clase como WebMethods.
329
Herramienta de Monitorizacin de Sistemas
Los archivos .asmx se publicarn dentro de un sitio Web en un directorio particular o virtual
junto con el cdigo de las clases asociadas. Se podr acceder a ellos con un cliente http
mediante la URI correspondiente.
330
Herramienta de Monitorizacin de Sistemas
Figura A3.12 Servicios Web dentro del Sitio Web en Windows Internet Explorer
Para que una aplicacin consuma servicios Web ubicados en una URL se puede agregar
una referencia al mismo desde el proyecto de la aplicacin en Visual Studio 2005:
Figura A3.14 Agregar referencia a un Servicio Web para una aplicacin cliente en Visual Studio 2005
Se genera as automticamente una carpeta en el directorio del proyecto que contiene las
herramientas necesarias para poder consumir el servicio Web
332
Herramienta de Monitorizacin de Sistemas
Esta ltima clase se parece a la clase que contiene el servicio Web. Contiene un mtodo que
devuelve una cadena. Si compila una clase proxy en una aplicacin y despus llama a su
mtodo, la clase proxy empaqueta una solicitud SOAP a travs de HTTP y recibe la
respuesta codificada por SOAP, que se resolver como una cadena.
De esta forma una aplicacin puede consumir servicios Web ubicados en un sitio Web de un
servidor Web fcilmente creando una clase Proxy que utilizar para realizar las llamadas.
333
Herramienta de Monitorizacin de Sistemas
A3.5 WinAudit
P Include Peripherals
x Include Security
334
Herramienta de Monitorizacin de Sistemas
p Include Processor
m Include Memory
d Include Drives
B Loaded Modules
335
Herramienta de Monitorizacin de Sistemas
supplied the default is WinAuditDSN. If the DSN is a File DSN, supply its name
only. It must have an extension of .dsn and be located in the user's default DSN
directory. If this directory is not specified in the registry, the File DSN must be in
the ODBC\Data Sources directory. If a connection string is supplied, it must
have the ODBC keyword DRIVER=, no forward slashes and not end with .dsn .
/t Timeout in minutes for audit. The audit will automatically stop if it has been
running for more than the specified number of minutes. If unspecified, the
default is 20 minutes. If a timeout occurs then some or perhaps all data will be
discarded.
/l (little L) The log file path to record diagnostic and activity messages. The log
level is fixed at verbose and the output is tab separated machine readable.
If an empty path is specified i.e. '/l=' then the destination will be
computername_log.txt in the programme's directory.
If only a directory is supplied e.g. '/l=\\server\audits' then the destination will be
'\\server\audits\computername_log.txt'.
To avoid concurrency issues, multiple machines cannot log to the same file.
/m The message displayed on the audit window. The user sees this window when the
audit is running in command line mode. Try to keep this message brief as it must
fit in the available space and still remain legible. The message does not need to
be quoted. Avoid forward slashes '/' as your message will not display correctly. If
no message is supplied then a default one will be shown.
/L (Capital L) Set the language of strings used by the programme. By default the
programme will use the language that matches the computer's regional setting or
English if no translation is available. You can override this behaviour by specifying
which language to use as follows:
/L=be - French (Belgium)
/L=br - Portuguese (Brazilian)
/L=cs - Czech
/L=da - Danish
/L=de - German
/L=el - Greek
/L=en - English
/L=es - Spanish
/L=fr - French (France)
/L=he - Hebrew
336
Herramienta de Monitorizacin de Sistemas
/L=hu - Hungarian
/L=id - Indonesian
/L=it - Italian
/L=jp - Japanese (winauditu.exe only)
/L=ko - Korean (winauditu.exe only)
/L=nl - Dutch
/L=pl - Polish
/L=pt - Portuguese (Portugal)
/L=ru - Russian
/L=sk - Slovak
/L=sr - Serbian(Latin)
/L=th - Thai
/L=tr - Turkish
/L=zh_tw - Traditional Chinese (winauditu.exe only)
WinAudit ANSI: Choosing a language which has a character set (code page)
outside of the one a computer is using may give rise to undesired results. For
example, German and Czech are from the Western and Central European
character sets respectively. Character number 163 corresponds to the Japanese
Yen sign in the former and a variant of the letter A in the latter. In general,
characters used in the English language are common across all character sets so
setting /L=en would probably give the most consistent results.
WinAudit Unicode: Use this version in preference over the ANSI version if you
are in an NT only environment. The Unicode version will automatically perform
UTF-8 conversion of characters for HTML and XML output. Text files are saved in
Unicode format (UTF-16 little endian) and database connectivity is via wide (2-
byte) characters. Diagnostic logging will detect the log file's encoding scheme.
You should also be able to set a message (/m) and use file paths in Unicode.
Figura A3.16 Tabla de Switches para la ejecucin de WinAudit en modo lnea de comandos
Su formato es el siguiente
337
Herramienta de Monitorizacin de Sistemas
nombrehost IN A direccinIPdehost
machine1 IN A 157.55.201.143
nombreservidor2 IN A 157.55.200.2
El registro CName que reciben el nombre de alias, aunque son conocidos como entradas de
"nombre cannico" (CNAME o Canonical Name) se utilizan para usar ms de un nombre al
apuntar a un nico host. Esto puede simplificar operaciones como albergar a la vez un
servidor FTP y un servidor web en el mismo equipo.
Su formato es el siguiente
servidorarchivos IN A 157.55.200.41
338
Herramienta de Monitorizacin de Sistemas
La razn fundamental para el uso de lenguajes grficos de modelado es que los lenguajes
de programacin no proporcionan el suficiente grado de abstraccin para realizar el diseo
de un sistema con facilidad. UML ofrece, sin embargo, un estndar para describir un modelo
del sistema, incluyendo aspectos conceptuales tales como procesos de negocio y funciones
del sistema, y aspectos concretos como expresiones de lenguajes de programacin,
esquemas de bases de datos y componentes de software reutilizables.
Diagrama de clases.
339
Herramienta de Monitorizacin de Sistemas
Diagrama de componentes.
Diagrama de objetos.
Diagrama de despliegue.
Diagrama de paquetes.
Diagrama de actividades.
Diagrama de estados.
Diagrama de secuencia.
Diagrama de comunicacin.
Diagrama de tiempos.
340
Herramienta de Monitorizacin de Sistemas
El estndar UML indica qu elementos se usan en cada tipo de diagramas, pero los
diagramas no son especialmente rgidos y frecuentemente se utilizan elementos de un tipo
de diagramas en otros.
Los distintos modelos que se van a utilizar se explicarn a continuacin junto con las fases
de la metodologa que los requieren.
Entidad
341
Herramienta de Monitorizacin de Sistemas
Cualquier tipo de objeto o concepto sobre el que se recoge informacin: cosa, persona,
concepto abstracto o suceso. Por ejemplo: coches, casas, empleados, clientes,
empresas, oficios, diseos de productos, conciertos, excursiones, etc. Las entidades se
representan grficamente mediante rectngulos y su nombre aparece en el interior.
Relacin
Una relacin recursiva es una relacin donde la misma entidad participa ms de una vez
en la relacin con distintos papeles. El nombre de estos papeles es importante para
determinar la funcin de cada participacin.
La cardinalidad con la que una entidad participa en una relacin especifica el nmero
mnimo y el nmero mximo de correspondencias en las que puede tomar parte cada
ocurrencia de dicha entidad. La participacin de una entidad en una relacin es
obligatoria (total) si la existencia de cada una de sus ocurrencias requiere la existencia
de, al menos, una ocurrencia de la otra entidad participante. Si no, la participacin es
opcional (parcial). Las reglas que definen la cardinalidad de las relaciones son las reglas
de negocio. En este caso, se definen por las cardinalidades definidas en el modelo de
dominio.
342
Herramienta de Monitorizacin de Sistemas
1 1 (puede omitirse)
343
Herramienta de Monitorizacin de Sistemas
0, 1 c
0, 1, 2, 3, ... n y flecha
344
Herramienta de Monitorizacin de Sistemas
345
Herramienta de Monitorizacin de Sistemas
346
Herramienta de Monitorizacin de Sistemas
( (m : 1), (1 : c), (1 : 1) )
347
Herramienta de Monitorizacin de Sistemas
Si un rectngulo participa con todos sus atributos en una o varias asociaciones, de las
que una al menos tiene cardinalidad (1 : m), puede suprimirse. (ojo: que no se pierdan
cardinalidades)
348
Herramienta de Monitorizacin de Sistemas
Redefiniciones:
349
Herramienta de Monitorizacin de Sistemas
CLAVE: Los valores no nulos deben ser nicos. Se admite que haya, en general, valores
nulos en las claves, pero una clave que admita valores nulos no puede ser elegida como
clave primaria.
CLAVE AJENA: Los valores no nulos deben existir en una clave de la tabla padre.
Cardinalidad en asociaciones implcitas: solo se refiere a los valores no nulos.
1) Aplicar las reglas que no consideran valores nulos hasta que no pueda transformarse
ms, en el orden: Definicin de Claves, Agregacin de Rectngulos, Supresin de
Rectngulos.
Sean dos rectngulos con una clave X comn sin nulos: A(-X-, Y, -Z-), B(-X-, Y, W), y
con cardinalidad de la asociacin implcita segn X = (c : c), ( (1 : c), (1 : 1) ).
Entonces A y B son agregables permitiendo valores nulos en algunos atributos.
Figura A4.18 Diagrama RE/R. Regla de agregacin externa para la incorporacin de valores nulos
Caso particular: (1 : c)
350
Herramienta de Monitorizacin de Sistemas
Figura A4.19 Diagrama RE/R. Regla de agregacin externa para la incorporacin de valores nulos. Caso (1:c)
351