INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA
MECÁNICA Y ELÉCTRICA
SISTEMA DE MONITOREO DE
FALLAS EN CAMARAS IP
TESIS
QUE PARA OBTENER EL TITULO DE:
INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
PRESENTAN:
RAFAEL GUZMÁN GARCÍA
GABRIEL HERNÁNDEZ HERRERA
ASESORES:
ING. JUAN CARLOS TORRES VILLASÁNCHEZ
M. en C. DAVID VÁZQUEZ ÁLVAREZ
Agradecimiento
A:
A Dios por dejarme vivir este momento, por haberme dado la fuerza y la inteligencia de poder alcanzado esta meta.
A mis Padres: Rafael Guzmán Fuentes y María Matilde García González por todo el apoyo y cariño que me brindaron en este largo camino.
A mis Hermanos: Arturo Guzmán García, Eduardo Guzmán García y Jorge Guzmán García, por apoyar en todos aquellos momentos difíciles por los que pasado para poder conseguir esta meta.
A mi Tío: Pedro Guzmán Fuentes por todo ese gran apoyo en los malos y buenos momentos que me impulsaron para poder conseguir este gran sueño.
A mi hijo: Axel André Guzmán Soto le agradezco la paciencia el amor las sonrisas que fueron el motor que me impulsaron todos los días para poder seguir siempre adelante.
Agradecimiento
A:
Mi madre Silvia Herrera, por darme la vida, quererme mucho, creer en mí y porque siempre me apoyaste. Mamá gracias por darme una carrera para mi futuro.
Mi padre Norberto Hernández, por los ejemplos de perseverancia y constancia que lo caracterizan y que me ha infundado siempre, por el valor mostrado para salir adelante y por tu amor.
Mis abuelos Estela López (QEPD), Ignacia Oledo, Magdaleno Herrera y Samuel Hernández (QEPD), por quererme y apoyarme siempre, esto también se lo debo a ustedes.
Mis hermanos, Carolina Hernández y Norberto Hernández, por estar conmigo y apoyarme siempre, los quiero mucho.
Mi sobrino, Rafael Hernández, para que veas en mí un ejemplo a seguir.
Todos mis amigos, Rafael, Daniel, Abraham, Rosario, Luis Antonio, Adrián, Ricardo, Armando, Julio por compartir los buenos y malos momentos.
1
CONTENIDO
OBJETIVO 3
JUSTIFICACIÓN 4
CAPITULO I Video Vigilancia en la Actualidad 5
1.1. ¿Qué es una Cámara IP? 6
1.1.2. Los Sistemas de Cámaras IP 6
1.2. Seguridad en la Sociedad 6
1.2.1. Video Vigilancia en el Metro del D.F. 7
1.3. Sistemas de Seguridad dentro de Instituciones Educativas 8
1.4. Video Digital sobre IP 9
1.5. Modelo de Referencia OSI 10
1.5.1. Antecedentes del Modelo OSI 10
1.5.2. Capas del Modelo OSI 10
1.6. Capa de Red 12
1.6.1. Direcciones IP 13
CAPITULO II Sistema de Monitoreo 15
2.1. Monitoreo de Redes de computadoras 16
2.2. Protocolo SNMP (Simple Network Management Protocol) 17
2.2.1. Necesidad de Administrar una Red 18
2.2.2. Definición de las Variables 19
2.2.3. Componentes Básicos 20
2.2.4. Comandos Básicos 20
2.2.5. Base de Información de Administración (MIB) 21
2.2.6. Mensajes SNMP 21
2.2.7. Trap 24
2
CAPITULO III Planteamiento de la Aplicación 27
3.1. Software utilizado para el desarrollo de la aplicación 28
3.1.1. Procesamiento de imagen 28
3.1.2. Generación de la aplicación 30
3.1.3. Base de datos 31
3.1.4. Gestión de red 33
3.2. Plan de desarrollo de la aplicación 34
CAPITULO IV Desarrollo de la aplicación 36
4.1. Pantalla de bienvenida 37
4.2. Acceso al usuario 38
4.3. Menú Principal 41
4.4. Reproductor de video 42
4.5. Escaneo de imagen 45
4.6. Gestión de red 48
4.7. Reportes 49
4.8. Navegador web 53
CONCLUSIONES 56
GLOSARIO TECNICO 57
ANEXO 58
3
Objetivo:
Elaborar un sistema de monitoreo para cámaras IP, que permitan detectar fallas de imagen y de comunicación en éstas; reduciendo costos de operación y mantenimiento, maximizando tanto la eficiencia como la rentabilidad de estas cámaras conectadas en un sistema de red
Objetivos particulares:
Implementar una aplicación que permita comprobar errores de imagen en cámaras IP.
Implementar una aplicación que compruebe la comunicación de las cámaras que se encuentren dentro del sistema de red.
4
Justificación:
Actualmente las cámaras IP son una gran herramienta para sistemas de seguridad e implementaciones en la industria con sistemas inteligentes aplicando visión por computadora para la revisión de piezas.
Este proyecto se propuso debido a que al momento de estar realizando el servicio social en el Sistema de Transporte Colectivo “Metro” se observó que en las cámaras IP que utiliza esta institución, se presentaban diversas fallas. Para poder realizar una corrección a estas fallas, se supervisa cada cámara individualmente y poder observar si estaban presentes estas fallas; posteriormente se genera un reporte de error para cada cámara, y al ser un proceso administrativo, se tienen que realizar otros reportes en distintas áreas; esto para el seguimiento de la reparación de las mismas.
6
1.1. ¿Qué es una cámara IP?
Una Cámara IP es una cámara diseñada especialmente para enviar las señales de video (en algunos casos audio) a través de Internet o una red de área local (LAN) desde un explorador de internet.
En las cámaras IP se pueden integrar aplicaciones tales como la detección de presencia y grabación de imágenes, de manera que al momento de realizar una detección de presencia, se realice una grabación de imágenes de lo sucedido.
Debido a un importante avance en diversas ramas como la informática, las telecomunicaciones, las redes electrónicas y las tecnologías de multimedia estas han tenido un gran impacto en la actividad humana y la necesidad de automatizar procesos que actualmente se desarrollan manualmente, también buscar nuevas y diversas alternativas que puedan ser aplicables al medio, debido a tales necesidades se plantea el presente tema de investigación.
1.1.2. Los sistemas de cámaras IP
Funcionan parecido a los sistemas convencionales de CCTV (circuito cerrado de tv) con la diferencia que las imágenes pueden ser grabadas en la memoria de un procesador (hasta con 90 días de duración) y ser vistas por la central de monitoreo en tiempo real (generalmente el operador habré el sitio cuando el sistema de alarmas genera un evento fuera de lo común (desactivación de un comercio a horas de la madrugada), o en caso que el sistema genere eventos de robo o asalto como así también de incendio .
1.2. Seguridad en la sociedad
Actualmente existe en la sociedad un gran problema llamado inseguridad, es un problema sistémico e integral más que un problema de falta de vigilancia, o causado debido a la falta de seguridad misma.
Actualmente este problema recae en gran medida en la vigilancia pública y privada que se realiza tanto en diversos lugares ya sea en forma externa como interna. En el caso de la vídeo vigilancia esta puede ser llevada por diversos métodos como un circuito cerrado de televisión, programas de reconocimiento facial, sensores de proximidad, cámaras infrarrojas, cámaras robots, secuenciadores de vídeo, cámaras de intemperie con radiofrecuencia, cámaras de baja iluminación, en total obscuridad, de interiores visibles u ocultas, cámaras acuáticas.
7
escuelas, cárceles, calles, plazas, tráfico vehicular, seguridad infantil, medio ambiente, hospitales, empresas y casas, estos pueden ser implementados en
“cualquier lugar que lo requiera”.
Debido a que actualmente ha habido un gran aumento en la inseguridad, la sociedad ha tenido que recurrir a diversos servicios que les brinden mayor protección, uno de los más requeridos es el sistema a través de cámaras de vídeo que se ha mantenido desarrollando en gran medida, comenzando con los circuitos cerrados de televisión hasta terminar actualmente con las cámaras IP.
Estos sistemas de vigilancia se están volviendo muy comunes en edificios de oficinas, escuelas e incluso en las calles. La vigilancia se ha convertido en un componente integral de los medios de control de acceso, enriquecidos con sistemas biométricos y sistemas de rastreo.
1.2.1. Vídeo vigilancia en el metro del D.F.
Hoy en día el Metro es uno de los medios de transporte con mayor demanda entre de parte de la población capitalina, esto conlleva que también sea un lugar con alto índice de delincuencia en sus diversas estaciones a lo largo de su red. Esto llevo al gobierno capitalino a implementar un sistema que prevenga y pueda controlar dicho problema y con esto lograr proteger a los usuarios.
El Sistema de Transporte Colectivo Metro cuenta actualmente con una infraestructura de aproximadamente 2500 cámaras que integran el sistema de vídeo vigilancia en las estaciones de mayor con mayor demanda. Además se tiene el proyecto de instalación de fibra óptica para la colocación de las cámaras en el interior de las instalaciones del transporte subterráneo. Para ello se requiere que en varias de las estaciones del Metro se realice la instalación de esta fibra óptica para colocar el equipo y transportar la imagen.
El sistema de vídeo vigilancia del Metro está conectado al centro de mando “C4” de
la Secretaría de Seguridad Pública para atender diversos tipos de situaciones de emergencia.
8
1.3. Sistemas de seguridad dentro de instituciones
educativas
Con el fin de que la comunidad de la UNAM (Universidad Nacional Autónoma de México) pueda observar el avance de las obras de la construcción del edificio 18, se puso en operación una página Web comunicada con una cámara de vídeo IP.
Esta página Web puede ser consultada desde cualquier computadora conectada a la red del Instituto ya sea por interfaz alámbrica o inalámbrica. También se puede consultar desde cualquier lugar con servicio de Internet con una cuenta de usuario valida.
La cámara que se utiliza en la UNAM esta conecta directamente a la red de datos y utiliza los protocolos de comunicación de Internet (TCP/IP: Protocolo de Control de Transmisión/Protocolo de Internet) para transmitir el vídeo a un servidor, que a su vez es consultado a través de una página Web. La cámara también ofrece rutas programadas, paradas predefinidas para realizar acercamiento (zoom) hacia algún detalle en particular que se requiera revisar, fotografiar o grabar en vídeo; ofrece visión nocturna y generación de alarmas con la ayuda de sensores, puede girar en su eje vertical y también en el horizontal y maneja diferentes algoritmos de compresión para usar un menor ancho de banda de la red de datos. Esta solución es muy flexible y económica, a diferencia de los sistemas con cámaras analógicas y cable coaxial, ya que este tipo de cámaras IP pueden ser conectadas en cualquier punto de una red de datos tanto alámbrica como inalámbrica y pueden ser controladas y administradas desde cualquier punto donde exista servicio de Internet.
Al igual que la UNAM, el Instituto Politécnico Nacional y diferentes empresas invirtieron recursos para comprar cámaras de vídeo vigilancia que serán instaladas en escuelas públicas del DF, de las cuales se incluyen desde el nivel básico hasta nivel medio superior. Dicho proyecto consiste en implementar una red de vigilancia con el objetivo de cubrir la vigilancia en las inmediaciones de planteles educativos, verificar los problemas de narcomenudeo, maltrato y abuso contra los estudiantes.
En la mayoría de las escuelas, ya sea del nivel medio superior o del nivel superior y áreas administrativas del Instituto Politécnico Nacional actualmente no se cuenta con este tipo de sistemas de vídeo vigilancia que ofrezcan seguridad a la población estudiantil, docente, personal administrativo y de los bienes materiales.
9
1.4. Vídeo digital sobre IP
La característica Plug and Play permite a las cámaras IP direccionables ser colocadas en cualquier lugar dentro de la infraestructura. Los equipos electrónicos que manejan actualmente tráfico IP se han vuelto parte integral de los sistemas de vigilancia. Ya que los vídeos se almacenan en formato digital, pueden ser vistos en cualquier lugar de la red con nuevas capacidades de seguridad para los archivos administrados como parte de las políticas de seguridad de la red. Además, éstos pueden ser vistos simultáneamente desde varios puntos de la red. No sólo es fácil de implementar, sino también es extremadamente versátil y las redes no son sobrecargadas con otro protocolo.
Las transmisiones son "nativas” esto elimina la necesidad de sistemas de cableado
separado. TCP/IP (Protocolo de Control de Transmisión/Protocolo de Internet) se ha convertido en el estándar para las redes. Su arquitectura abierta permite que varios sistemas puedan compartir el espacio de red y aprovechar estas nuevas tecnologías para aumentar su capacidad, confiabilidad, escalabilidad y accesibilidad de los recursos de red. Con la habilidad de utilizar la infraestructura existente, un edificio puede volverse totalmente automatizado utilizando un sistema de cableado. Esta automatización puede incluir además del CCTV, control de accesos, sistemas de fuego, sistemas de seguridad, voz, y tráfico de red. Los administradores y los usuarios de la red no estarán en un puesto de control y/o administración de estos sistemas ya que puede realizarse desde cualquier estación de trabajo con acceso a la red y esto también aplica para el personal de seguridad. La cámara digital se vuelve ahora el punto de falla, no el centro de control, ya que es fácil hacer redundancia en los servidores.
Un sistema de CCTV basado en el protocolo IP es completamente diferente de las otras soluciones. Las cámaras, servidores de vídeo y teclados IP pueden colocarse en cualquier punto. Los teclados IP pueden controlar actualmente las funciones PTZ
(Pan, Tilt and Zoom; Vista Panorámica, Inclinación y Ampliación) de cualquier cámara con base en su dirección IP. Como cualquier protocolo IP, las funciones de administración son incorporadas en la transmisión. Esto incluye DSP
(Procesamiento de Señales Digitales), manejo de alarmas, grabación, capacidades de búsqueda y/o archivo, calendarización y automatización. Estas funciones de administración y control utilizan SNMP (Protocolo deManejo de Red Simple) y otros cuadros de control, todas ellas parte del estándar IP.
10
1.5. Modelo de referencia OSI (interconexión de sistema
abierto)
1.5.1. Antecedentes del modelo OSI
En 1979, ISO (Organización Internacional para la Estandarización) definió su modelo de arquitectura de red OSI (Interconexión de sistemas abiertos). Este modelo fue
adoptado en 1980 por el CCITT (Comité Consultivo Internacional de
Telefonía y Telegrafía) en su recomendación X.200.
La comunicación de datos comprende 2 aspectos principales:
• Transporte: involucra todas las funciones relacionadas con la transferencia de datos entre dos usuarios.
• Manipulación: los datos deben ser liberados en una forma inteligible. En algunos casos los datos deben ser convertidos.
1.5.2. Capas del modelo OSI
Las redes de computadoras, proveen al usuario de una serie de servicios, e internamente poseen funciones. Las cuales son realizadas por las capas o niveles de la arquitectura que posee el tipo de red. Las arquitecturas de las redes tienen una serie de capas superpuestas (una encima de otra), en la que cada una desempeña su función.
Las funciones y características de las capas son las siguientes: - Permiten fraccionar el desarrollo del protocolo que usa.
- Las capas facilitan el entendimiento del funcionamiento global de un protocolo. - Facilitan las compatibilidades, tanto de software como de hardware de los distintos sistemas conectados.
- La arquitectura o estructuras de capas son flexibles a la hora de modificarlas.
a) CAPA FÍSICA
Es responsable del transporte de bits. Dependiendo del tipo de enlace físico los bits se representan de una manera en la que puedan ser transportados a través del medio.
Define voltajes, tiempo de duración de los pulsos, el número de patas que tiene el conector de la interface y sus funciones, la forma de establecer la conexión inicial y de interrumpirla, etc.
11 b) CAPA DE ENLACE DE DATOS
• Asegura que la información sea transmitida sin errores entre nodos adyacentes de
la red sin importar el medio de transmisión utilizado.
• Maneja tramas de datos como unidad de transmisión de datos. • Crea los límites de la trama.
• Resuelve problemas de daño, pérdida o duplicidad de tramas. • Participa en la regulación de flujo de tramas entre los nodos.
c) CAPA DE RED
Define la forma en que un mensaje se transmite a través de distintos tipos de redes hasta llegar a su destino. El protocolo principal de esta capa es el Protocolo de Internet (IP) aunque también se encuentran a este nivel los protocolos ARP,
ICMP e IGMP.
• Se encarga de que los datos sean enviados a su correcto destino, determinando la
ruta de transmisión.
• La unidad de transmisión de datos en esta capa es el paquete de datos. • Participa en el control de congestión de la red.
• Puede llevar la contabilidad del número de paquetes o bits que se enviaron a cada
cliente para cuestiones de facturación.
• Puede resolver problemas de interconexión de redes heterogéneas.
d) CAPA DE TRANSPORTE
La capa de transporte (protocolos TCP y UDP) ya no se preocupa de la ruta que siguen los mensajes hasta llegar a su destino. Sencillamente, considera que la comunicación extremo a extremo está establecida y la utiliza. Además añade la noción de puertos, como se tratará más adelante.
• Acepta los datos de la capa de sesión, los divide, siempre que sea necesario, en
unidades más pequeñas (la capa de red generalmente pone un límite en el tamaño de los mensajes que acepta), los pasa a la capa de red y asegura que todos ellos lleguen correctamente a su destino.
• A partir de la capa de red, las 4 capas superiores restantes manejan mensajes
como unidad de transmisión de datos.
• Detecta fallas en la red y realiza las acciones correspondientes.
• Solicita el establecimiento de un nuevo enlace, en el caso de que falle un enlace de
la red.
e) CAPA DE SESIÓN
12
• Permite que los usuarios de diferentes computadoras puedan establecer sesiones
entre ellos.
• Realiza el control del diálogo.
• Lleva a cabo la función de sincronización, es decir, inserta puntos de verificación
en el flujo de datos, con objeto de que solamente tengan que retransmitirse los datos que se encuentren en seguida del último punto de verificación cuando se reanuda el servicio después de una caída de la red.
f) CAPA DE PRESENTACIÓN
• Permite a dispositivos que intercambian información, entenderse o interpretarse entre ellos independientemente de la codificación que utilicen para los caracteres, por ejemplo, código ASCII (American Standard Code for Information Interchange; Código Estadounidense Estándar para el Intercambio de Información) y EBCDIC (Extended Binary Coded Decimal Interchange Code; Código Extendido de Binario Codificado Decimal).
• Convierte los datos transmitidos a una forma inteligible para el dispositivo terminal. • Maneja aspectos de representación de la información, por ejemplo: la compresión de datos y la criptografía.
g) CAPA DE APLICACIÓN
Proporciona los distintos servicios de Internet: correo electrónico, páginas Web, FTP, TELNET.
Contiene una variedad de protocolos que hacen posible ofrecer una serie de aplicaciones al usuario final, por ejemplo:
• Correo electrónico.
• Transferencia de archivos. • Terminal virtual (telnet). • Directorio electrónico.
1.6. Capa de red
Se explicará detalladamente la capa de red, porque dentro de ésta se tienen las direcciones IP, el protocolo IP y la máscara de subred. Los cuales son importantes para establecer la comunicación entre el servidor y los usuarios.
Por medio de las direcciones IP se hace referencia al punto de publicación que se transmitirá por internet, ésta conexión se basa en el protocolo IP.
13
encarga de encontrar un camino manteniendo una tabla de enrutamiento y atravesando los equipos que sean necesarios, para hacer llevar los datos al destino.
Los equipos encargados de realizar este encaminamiento se denominan ruteadores. Adicionalmente la capa de red debe gestionar la congestión en la red, que es el fenómeno que se produce cuando una saturación de un nodo tira la red, es decir, provoca una falla en toda la red.
La capa de red se encarga de fragmentar cada mensaje en paquetes de datos llamados datagramas IP y de enviarlos de forma independiente a través de la red de redes. Cada datagrama IP incluye un campo con la dirección IP de destino. Esta información se utiliza para encaminar los datagramas a través de las redes necesarias que los hagan llegar hasta su destino.
1.6.1. Direcciones IP
La dirección IP es el identificador de cada host dentro de su red de redes. Cada anfitrión conectado a una red tiene una dirección IP asignada, la cual debe ser distinta a todas las demás direcciones que estén vigentes en ese momento en el conjunto de redes visibles por el anfitrión. En el caso de Internet, no puede haber dos computadoras con 2 direcciones IP públicas iguales.
Es posible tener dos computadoras con la misma dirección IP siempre y cuando pertenezcan a redes independientes entre sí (sin ningún camino posible que las comunique).
Las direcciones IP se clasifican en:
Direcciones IP públicas. Son visibles en todo Internet. Una computadora con una IP pública es accesible (visible) desde cualquier otra computadora conectada a Internet. Para conectarse a Internet es necesario tener una dirección IP pública.
Direcciones IP privadas (reservadas). Son visibles únicamente por otros anfitriones de su propia red o de otras redes privadas interconectadas por ruteadores. Se utilizan en las empresas para los puestos de trabajo. Las computadoras con direcciones IP privadas pueden salir a Internet por medio de un ruteador (o proxy) que tenga una IP pública. Sin embargo, desde Internet no se puede acceder a computadoras con direcciones IP privadas. A su vez, las direcciones IP pueden ser:
14
16
2.1. Monitoreo de redes de computadoras
La palabra monitoreo no tiene una definición exacta, pero en el contexto
computacional seria “una función que busca conocer cómo se están realizando
ciertas tareas que han sido diseñadas para un plan operativo y de presupuesto”.
Para el área tecnológica el concepto de monitoreo tiene un enfoque práctico, en materia de redes, es supervisar todas las funciones que implica el trabajo de una red de computadoras. El monitoreo está ligado con el concepto de inteligencia competitiva la cual se define como: “conocimiento generado a partir del análisis resultante de la información sobre el entorno de la organización, que está disponible
lícitamente”.
En base a este conocimiento generado, se pueden realizar acciones específicas en el caso de que una infraestructura de redes pueda tener algún tipo de problema, esta sería la diferencia entre el simple análisis de datos y monitorear una red. En el monitoreo además de realizar un análisis detallado acerca de las acciones que suceden en la red, también se realizan acciones de supervisar y reaccionar ante algún imprevisto.
Estos imprevistos se pueden traducir en eventos como es el caso de “problemas de
ruido en la transmisión que crean situaciones que no existen como tales como direcciones de computadoras que no pertenecen a ninguno de los nodos y errores
en la información, por mencionar algunos”.
A grandes rasgos lo que se pretende en el proyecto de tesis es “una verificación
sobre la información contenida en un paquete que viaja a lo largo de toda la red, además de los protocolos manejados en la red, si esta información no es válida por
alguna razón, se declara inválido el paquete escribiendo una bandera de error” .
Si esto sucede con cada una de las computadoras conectadas en red que se
encuentran bajo análisis “se llevará cuenta de los errores que ocurren en la red, si una computadora se da cuenta de que el número de errores excedió a la cuenta permitida, le informa a la computadora que está "monitoreando" a la red, para que esta pueda declarar una condición de error y mostrarla en el servidor de toda la red”.
17 Vistos todos los aspectos anteriormente mencionados se puede dar una definición
de monitoreo en el área de redes y es: “Análisis detallado que surge a partir del
estudio sobre la red supervisada y que nos da un conocimiento de su funcionamiento y en caso de tener algún error dar acción inmediata a su
restablecimiento”.
La situación actual en el tema de monitoreo de redes no se encuentra establecida del todo, ya que existen pocas herramientas que le dan seguimiento al error a la red analizada, existen algunos productos como son: Solarwinds, ActiveXperts, AdvenNet y eEye todas de GIA Software las cuales en conjunto son herramientas de alto nivel que sirven para la administración, monitoreo y corrección de errores en la red. La desventaja es que son herramientas de alto nivel, la cual tienen un costo bastante elevado y que sólo ofrecen soluciones de manera local, es decir, estando en un servidor en el mismo lugar físico de la red supervisada.
La aportación en este proyecto de tesis será una herramienta de menor costo, fácil de usar y que el administrador lo utilice de manera remota, todos estos detalles del proyecto se mencionarán más adelante en el apartado de objetivo general y objetivos específicos.
En esta parte se puede concluir que el tema de monitoreo de redes es apenas un desarrollo que no se ha explotado del todo y que puede tener muchas variantes, para cuestiones de nuestro proyecto de monitoreo de redes se realizará mediante una aplicación Web de manera remota.
2.2. Protocolo SNMP (Simple Network Management
Protocol)
En una internet existen varias redes conectadas entre sí con el uso de routers y un protocolo de interconexión de redes, de modo que los routers usan el protocolo para manejar las características de las redes y proporcionar un servicio uniforme entre ellas, aunque cada red use una tecnología distinta y unas reglas específicas de transmisión, los hosts de cada red la ven de igual manera.
La principal tecnología de interconexión de redes es el conjunto de protocolos de Internet TCP/IP, que fue creado por la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA) y que son los que se usan en el Internet, pero también en la interconexión de redes menores (redes locales).
18
Aplicación SNMP Transporte (TCP,UDP,...) Interred(IP) Interface de red
Física
SNMP es un Protocolo Simple de Administración de Red (SNMP), es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de redes.
2.2.1. Necesidad de Administrar una Red
Los problemas que se presentan en la interconexión de redes son principalmente dos:
Dispositivos diferentes: La interconexión de redes permite diferentes tipos de dispositivos y estos son de diversos vendedores, todos ellos soportando el protocolo TCP/IP. Usar una tecnología de interconexión abierta permitió que existieran las redes formadas por dispositivos de distintos fabricantes, por lo que para administrar estas redes, habrá que usar una tecnología de administración de redes abierta.
Administraciones diferentes: Como se permite la interconexión entre redes de distinto propósito y distinto tamaño, hay que tener en cuenta que también están administradas, gestionadas y financiadas de distinta forma, tales como HP OpenView, Novell, NMS, IBM Net View o Sun Net Manager y entidades administrativas que pueden incluir Hosts, Routers. Hubs o en nuestro caso ATM´s.
El envío de la información queda a cargo del agente de SNMP situado en el cajero, es decir, el Cajero desde el punto de vista del servicio SNMP, opera como SERVIDOR. En tanto que el equipo receptor de la tramas enviadas por el agente, opera como CLIENTE.
19 El protocolo Snmpv1 fue diseñado a mediados de los 80 por Case, McCloghrie, Rose, and Waldbusser, como una solución a los problemas de comunicación entre diferentes tipos de redes.
En un principio, su principal meta era el lograr una solución temporal hasta la llegada de protocolos de gestión de red con mejores diseños y más completos. Pero esos administradores de red no llegaron y SNMPv1 se convirtió en la única opción para la gestión de red.
El manejo de este protocolo era simple, se basaba en el intercambio de información de red a través de mensajes (PDU’s). Además de ser un protocolo fácilmente
extensible a toda la red, debido a esto su uso se estandarizo entre usuarios y empresas que no querían demasiadas complicaciones en la gestión de sus sistemas informáticos dentro de una red.
No obstante este protocolo no era perfecto, además no estaba pensado para poder gestionar la inmensa cantidad de redes que cada día iban apareciendo. Para subsanar sus carencias surgió la versión 2 (SNMP v2). Las mayores innovaciones respecto a la primera versión son:
Introducción de mecanismos de seguridad, totalmente ausentes en la versión 1.
Estos mecanismos protegen la privacidad de los datos, confieren autentificación a los usuarios y controlan el acceso.
2.2.2. Definición de las variables.
Se añaden estructuras de la tabla de datos para facilitar el manejo de los datos. El hecho de poder usar tablas hace aumentar el número de objetos capaces de gestionar, con lo que el aumento de redes dejo de ser un problema.
Realmente esta versión 2 no supuso más que un parche, es más hubo innovaciones como los mecanismos de seguridad que se quedaron en pura teoría, no se llegaron a implementar.
20
2.2.3. Componentes Básicos
Una red administrada a través de SNMP consiste de tres componentes claves:
Dispositivos administrados; Agentes;
Sistemas administradores de red (NMS’s).
Un dispositivo administrado es un nodo de red que contiene un agente SNMP y reside en una red administrada. Estos recogen y almacenan información de
administración, la cual es puesta a disposición de los NMS’s usando SNMP. Los
dispositivos administrados (llamados elementos de red), pueden ser routers, servidores de acceso, switches, bridges, hubs, computadores o impresoras.
Un agente es un módulo de software de administración de red que reside en un dispositivo administrado. Un agente posee un conocimiento local de información de administración (memoria libre, número de paquetes IP recibidos, rutas, etcétera), la cual es traducida a un formato compatible con SNMP y organizada en jerarquías.
Un NMS ejecuta aplicaciones que supervisan y controlan a los dispositivos
administrados. Los NMS’s proporcionan el volumen de recursos de procesamiento y memoria requeridos para la administración de la red. Uno o más NMS’s deben existir en cualquier red administrada.
2.2.4. Comandos Básicos
Los dispositivos administrados son supervisados y controlados usando cuatro comandos SNMP básicos: lectura, escritura, notificación y operaciones transversales.
El comando de lectura es usado por un NMS para supervisar elementos de red. El NMS examina diferentes variables que son mantenidas por los dispositivos administrados.
21 El comando de notificación es usado por los dispositivos administrados para reportar eventos en forma asíncrona a un NMS. Cuando cierto tipo de evento ocurre, un dispositivo administrado envía una notificación al NMS.
Las operaciones transversales son usadas por el NMS para determinar qué variables soporta un dispositivo administrado y para recoger secuencialmente información en tablas de variables, como por ejemplo, una tabla de rutas.
2.2.5. Base de información de Administración SNMP (MIB)
Una Base de Información de Administración (MIB) es una colección de información
que está organizada jerárquicamente. Las MIB’s son accedidas usando un protocolo
de administración de red, como SNMP.
Un objeto administrado (algunas veces llamado objeto MIB, objeto, o MIB) es uno de cualquier número de características específicas de un dispositivo administrado. Los objetos administrados están compuestos de una o más instancias de objeto, que son esencialmente variables.
Existen dos tipos de objetos administrados: Escalares y tabulares. Los objetos escalares definen una simple instancia de objeto. Los objetos tabulares definen múltiples instancias de objeto relacionadas que están agrupadas conjuntamente en tablas MIB.
Un ejemplo de un objeto administrado es atInput, que es un objeto escalar que contiene una simple instancia de objeto, el valor entero que indica el número total de paquetes AppleTalk de entrada sobre una interfaz de un enrutadores.
Un identificador de objeto (object ID) únicamente identifica un objeto administrado en la jerarquía MIB. La jerarquía MIB puede ser representada como un árbol con una raíz anónima y los niveles, que son asignados por diferentes organizaciones.
2.2.6. Mensajes SNMP
22 Los puertos comúnmente utilizados para SNMP son los siguientes:
Número Descripción
161 SNMP
162 SNMP-trap
Los paquetes utilizados para enviar consultas y respuestas SNMP poseen el siguiente formato:
Versión Comunidad SNMP PDU
Versión: Número de versión de protocolo que se está utilizando (por ejemplo 1 para SNMPv1).
Comunidad: Nombre o palabra clave que se usa para la autenticación. Generalmente existe una comunidad de lectura llamada "public" y una comunidad de escritura llamada "private".
SNMP PDU: Contenido de la unidad de datos del protocolo, el que depende de la operación que se ejecute.
Los mensajes GetRequest, GetNextRequest, SetRequest y GetResponse utilizan la siguiente estructura en el campo SNMP PDU:
Tipo Identificador Estado de error Índice de error Enlazado de variables
Identificador: Es un número utilizado por el NMS y el agente para enviar solicitudes y respuesta diferentes en forma simultánea;
23
0: No hay error.
1: Demasiado grande. 2: No existe esa variable. 3: Valor incorrecto.
4: El valor es de solo lectura. 5: Error genérico.
Enlazado de variables: Es una serie de nombres de variables con sus valores correspondientes (codificados en ASN.1).
GetRequest
A través de este mensaje el NMS solicita al agente retornar el valor de un objeto de interés mediante su nombre. En respuesta el agente envía una respuesta indicando el éxito o fracaso de la petición. Si la petición fue correcta, el mensaje resultante también contendrá el valor del objeto solicitado. Este mensaje puede ser usado para recoger un valor de un objeto, o varios valores de varios objetos, a través del uso de listas.
GetNextRequest
Este mensaje es usado para recorrer una tabla de objetos. Una vez que se ha usado un mensaje GetRequest para recoger el valor de un objeto, puede ser utilizado el mensaje GetNextRequest para repetir la operación con el siguiente objeto de la tabla. Siempre el resultado de la operación anterior será utilizado para la nueva consulta. De esta forma un NMS puede recorrer una tabla de longitud variable hasta que haya extraído toda la información para cada fila existente.
SetRequest
Este tipo de mensaje es utilizado por el NMS para solicitar a un agente modificar valores de objetos. Para realizar esta operación el NMS envía al agente una lista de nombres de objetos con sus correspondientes valores.
GetResponse
24
2.2.7. Trap
Una trap es generada por el agente para reportar ciertas condiciones y cambios de estado a un proceso de administración. El formato de la PDU es diferente:
Tipo Enterprise Dirección del agente Tipo genérico de trap
Tipo
específico de
trap Timestamp Enlazado de variables
Enterprise: Identificación del subsistema de gestión que ha emitido el trap.
Dirección del agente: Dirección IP del agente que ha emitido el trap. Tipo genérico de trap.
Cold start (0): Indica que el agente ha sido inicializado o reinicializado.
Warm start (1): Indica que la configuración del agente ha cambiado.
Link down (2): Indica que una interfaz de comunicación se encuentra fuera de servicio (inactiva).
Link up (3): Indica que una interfaz de comunicación se encuentra en servicio (activa).
Authentication failure (4): Indica que el agente ha recibido un requerimiento de un NMS no autorizado (normalmente controlado por una comunidad).
EGP neighbor loss (5): Indica que en sistemas en que los routers están utilizando el protocolo EGP, un equipo colindante se encuentra fuera de servicio.
Enterprise (6): En esta categoría se encuentran todos los nuevos traps incluidos por los vendedores.
Tipo específico de trap: Es usado para traps privados (de fabricantes), así como para precisar la información de un determinado trap genérico.
25 Enlazado de variables: Se utiliza para proporcionar información adicional sobre la causa del mensaje.
GetBulkRequest
Este mensaje es usado por un NMS que utiliza la versión 2 del protocolo SNMP típicamente cuando es requerida una larga transmisión de datos, tal como la recuperación de largas tablas. En este sentido es similar al mensaje GetNextRequest usado en la versión 1 del protocolo, sin embargo, GetBulkRequest es un mensaje que implica un método mucho más rápido y eficiente, ya que a través de un solo mensaje es posible solicitar la totalidad de la tabla.
Solicitud de Información (InformRequest)
Un NMS que utiliza la versión 2 del protocolo SNMP transmite un mensaje de este tipo a otro NMS con las mismas características, para notificar información sobre objetos administrados.
28 Debido a que esta aplicación se implementara en un entorno grafico que sea amigable con el usuario, se ha pensado generar una aplicación que se pueda instalar en el sistema más utilizado actualmente el cual es Windows. Para lo cual se requiere conocer los programas que se implementaran para generar la aplicación que sea sencilla de utilizar, estos usuarios solo necesitan saber manejar el sistema operativo antes mencionado y de esta manera las empresas que utilicen este software no tengan que dar una capacitación o que solo una persona sea la encargada de utilizar dicha aplicación.
La aplicación debe de ser implementada en algún leguaje que nosotros podamos programar, esto para poder hacer más sencilla la resolución de problemas que se puedan llegar a presentar al estarla programando, sin embargo también podemos ver las alternativas que se ofrecen actualmente y de esta manera hacer un análisis sobre qué ventajas y desventajas ofrecen los programas que nosotros escogimos para programar.
3.1. Software utilizado para el desarrollo de la
aplicación
3.1.1. Procesamiento de imagen
MATLAB
Es un software de desarrollo en el cual se pueden realizar diferentes proyectos, algunos ejemplos de estos proyectos pueden ser la manipulación de matrices, resolver ecuaciones de segundo grado, el procesamiento digital de imágenes, la implementación de algoritmos, entre otros.
Este software es muy usado en diversas universidades para efectos educativos; en este caso se hará uso del software para poder hacer la manipulación de una imagen tomada con la cámara IP para hacer la comparación de esta con otra que tomaremos como una imagen base.
Las dos imágenes a utilizar primero tienen que ser convertidas a matrices para hacer
29
Métodos de comparación de imágenes
Dentro de los métodos de comparación de imágenes se encuentran la correlación y la convolución.
1. Correlación
La correlación de imágenes tiene como objeto la localización de un área en una imagen de manera automática. Para poder hacer la correlación en una imagen, se tiene que conocer un punto de la misma, esto puede ser un objeto que se presente y de esta manera poder seleccionarla para realizar una búsqueda. Esta área u objeto seleccionado será conocido como matriz de búsqueda o área de búsqueda y dentro de ella localizaremos determinadas formas que definan un objeto específico, las cuales llamaremos matriz patrón;
en otros casos suele llamarse como ventana de búsqueda.
Al momento de tener la matriz patrón esta será la plantilla a utilizar en la comparación de imágenes, esto al tomar una nueva imagen que será conocida como matriz muestra, y por medio de una diferencia o resta de matrices nos resultara una matriz la cual es el resultado de la anterior operación matemática. Al momento de comprobar esta matriz podremos observar si hay diferencia entre la matriz patrón y la matriz muestra.
2. Convolución
La convolución de imágenes tiene como objeto la fusión dos imágenes f y g
en una tercera imagen que representará la magnitud en la que se superpone la imagen f y una versión trasladada e invertida de la imagen g.
Correlación vs Convolución.
En procesamiento de imágenes, no hay un orden temporal y causal, por lo tanto la convolución y la correlación funcionan casi de la misma manera. Pero la convolución se utiliza para describir transformaciones de sistemas lineales, como
suaviza miento o filtrado, mientras que la correlación es utilizada como medida de similitud en el contexto de casa o correspondencia de patrones o de planillas.
30
3.1.2. Generación de la aplicación
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010 es un entorno de desarrollo integrado para sistemas operativos Windows. Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros.
La versión más reciente es la .NET que se incluye en el paquete Visual Studio .NET de Microsoft. Esta versión combina la sencillez del BASIC con un poderoso lenguaje de programación Visual que juntos permiten desarrollar robustos programas de 32 bits para plataformas Windows. Esta fusión de sencillez y la estética permitió ampliar mucho más el monopolio de Microsoft, ya que el lenguaje sólo es compatible con plataformas Windows, un sistema operativo de la misma empresa.
Visual Basic ya no es más "un lenguaje para principiantes" sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows. Para aquellos programadores avanzados o para quienes deseen incorporar funciones más complejas una alternativa mejor al Visual Basic es el Visual C++.
Java
Otro lenguaje de programación orientado a objetos, fue desarrollado por Sun Microsystems. El lenguaje tiene mucha relación con el lenguaje C y C++, pero contiene un modelo de objetos más simple y sin herramientas de bajo nivel que llegue a producir errores. La memoria es gestionada mediante un recolector de basura.
En mayo de 2007, Sun Microsystems liberó gran parte de las tecnologías Java bajo la licencia GNU GPL, de tal forma que prácticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java aún no lo es).
31
3.1.3.
Base de Datos
SQL Server
SQL Server es un sistema de gestión de base de datos desarrollado por la empresa Microsoft. Microsoft SQL Server es la alternativa de Microsoft a otros gestores de bases de datos como es MySQL.
Características:
Estabilidad y seguridad.
Soporta procedimientos almacenados.
Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los terminales o clientes de la red sólo acceden a la información.
Además permite administrar información de otros servidores de datos.
Este sistema incluye una versión reducida, llamada SQL Express Edition, se distribuye en forma gratuita con el mismo motor de base de datos pero orientado a proyectos más pequeños.
MySQL
MySQL es un sistema de gestión de bases de datos multiusuario, multiplataforma y de código abierto.
MySQL pertenece a la compañíasueca MySQL AB, a la que le pertenece casi todos los derechos del código fuente.
MySQL es muy popular en aplicaciones web y suele combinarse con el popular lenguaje PHP.
Características
MySQL está escrito en C y C++
Emplea el lenguaje SQL para consultas a la base de datos.
MySQL Server está disponible de manera gratuita bajo licencia GPL.
Trabaja en diversas plataformas: GNU/Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, Microsoft Windows (95, 98, ME, NT, 2000, XP y Vista).
32 http://www.latindevelopers.com/articulos/sql-server/diferencias-entre-mysql-y-sql-server.php
A pesar de que el programa MySQL nos brinda muy buenas opciones para el manejo de los reportes de error, consideramos una mejor opción usar Microsoft SQL Server ya que el desarrollador creo la implementación en los 2 programas (Microsoft Visual Studio 2010 y Microsoft SQL Server 2008) de una manera sencilla y sin problemas.
33
3.1.4.
Gestión de Red
SNMPc Network Manager
Castle Rock Computing fue la primera compañía en ofrecer un Windows basado en sistema de gestión SNMP. SNMPc es un sistema seguro de gestión de red que ofrece monitoreo en tiempo real para su infraestructura de red.
SNMPc utiliza una arquitectura de agente de votación distribuidos para proporcionar una solución de alto rendimiento capaz de vigilar redes de varios cientos de dispositivos a decenas de miles de personas.
Características principales:
Monitor de dispositivos SNMP, enlaces WAN, servidores y aplicaciones Protocolo de Internet versión 6 (IPv6)
Compatible con SNMP v1, v2c y SNMP v3
Distribuidor Independiente - Gestiona cualquier dispositivo SNMP de cualquier fabricante
Las alarmas automáticas
Se ejecuta en servicios de Windows De consola remota y el acceso de Java Muestra en tiempo real el MIB
Detección de redes automatizado
Net-SNMP
Net-SNMP es un software utilizado para la gestión del protocolo SNMP (v1, v2c y v3). Soporta diferentes tipos de protocolo tales como IPv4, IPv6 IPX AAL5 y otros más. Contiene una librería genérica, un conjunto de aplicaciones de líneas de comando.
Net-SNMP esta hospedado en el servidor de SourceForge y es uno de los programas más utilizados ya que se encuentra en el rango de los 100 más descargados. Puede ser instalado en la mayoría de los sistemas operativos que se encuentran actualmente tales como Linux, OpenBSD, Solaris y Mac OS X.
34
3.2. Plan de desarrollo de la aplicación
Después de establecer cuales con los programas que se van a utilizar, procederemos a hacer un plan de trabajo a seguir para el desarrollo de la aplicación.
Para poder realizar este diseño la plataforma principal de desarrollo será Microsoft Visual Studio 2010, en el cual se programará la interfaz gráfica de la aplicación y en donde se implementaran diferentes tipos de funciones en forma de botones, que nos proporcionaran las herramientas para poder hacer el análisis de la imagen y de la red.
Al ser una aplicación de seguridad se implementara un acceso controlado, esto se realizara por medio de un usuario con contraseña valida, de tal manera que personas ajenas al área donde se utilice el software no puedan hacer ningún uso de este.
Al ser un sistema de gestión de fallas se requiere tener un control de los incidentes que se lleguen a presentar, y posteriormente darles una solución, para esto implementaremos una base de datos que será implementada a través del programa Microsoft SQL Server 2008, esta base de datos contendrá la descripción de la cámara que llegase a presentar alguna falla, con esto se pretende identificar rápidamente la cámara y dar solución a los problemas. Los datos que se contendrán en el reporte son los siguientes:
Número de reporte
Dirección IP
Tipo de cámara
Fabricante de la cámara
Modelo de la cámara
Falla de cámara
Falla de red
Ubicación de la cámara
Al momento de obtener los datos anteriores, el sistema procederá a generará un reporte global (que puede ser impreso), éste proporcionará la información que el personal de mantenimiento requiere para reparar la cámara. Estos reportes podrían ayudar a resolver problemas en el futuro, por ejemplo, cuando una cámara presente fallas iguales o similares, comprobaremos en el registro si se presentó alguna cámara con los mismos problemas y solucionarlo de una manera más rápida.
35 Incluirá la comparación de imagen para poder hacer la detección de fallas en la cámara IP, esto se lograra al implementar un código que nosotros generaremos en el programa MATLAB, para poder escribir este código de comparación de imagen se utilizara el método de correlación ya explicado anteriormente, ya que es un método bastante sencillo para el procedimiento que se requiere.
Se integrará una interfaz de control de la cámara, donde se podrá observar la imagen que se está capturando en ese momento, y además en caso que a cámara lo permita se podrá tener control de la misma al poderla mover hacía varias direcciones, con esto la podremos observar en un ángulo de visión más extenso.
Contará con un explorador con salida a internet, esto para poder conectarse con las cámaras que actualmente se encuentran de manera gratuita en la red, con esto podemos comprobar que el programa este ejecutándose correctamente o descartar que se presente alguna falla con la conexión a la cámara que no se encuentre reportada con el sistema de red.
37 En este capítulo se explicará cómo fue desarrollada la aplicación en cuestión, también se describirán los problemas que se generaron mientras se desarrollaba esta aplicación, y de esta manera alguien que llegase a tomar esta aplicación como referencia y se encuentre con estos problemas, pueda solucionarlos.
[image:41.612.86.461.191.424.2]4.1. Pantalla de Bienvenida
Fig. 4.1. Pantalla de Bienvenida
Para poder hacer la pantalla de entrada (Fig. 4.1) de esta aplicación se utilizó un SplashScreen o plantilla de presentación que se encuentra Visual Studio 2010 para presentar la aplicación, esta herramienta puede ser programada para que cada vez que la aplicación se muestre mientras otro componentes de la aplicación son ejecutados. Con esta herramienta podemos observar el nombre de la aplicación, datos específicos como creadores, nombre de la compañía, también nos muestra la versión de la aplicación en la que se trabaja y así conocer si la versión está actualizada o estamos utilizando con alguna versión anterior.
38
4.2. Acceso al Usuario
Fig. 4.2. Pantalla de Acceso al Usuario
Cuando la pantalla de bienvenida se cierre, la aplicación nos mostrará una pantalla de acceso (Fig. 4.2). La pantalla de acceso de usuario trabaja se creó al establecer una conexión Visual Studio 2010 con una base de datos desarrollada previamente en SQL Server 2008, esta base fu nombrada database, donde fueron creadas las tablas Rol y Usuario.
La tabla Rol contiene los siguientes campos:
CodRol. Este campo contiene el nombre del rol, Usuario. Este campo contiene los siguientes campos:
CodUsuario: este campo almacenará el código usuario o número del usuario.
CodRol: este campo es la relación con la tabla Rol, en donde, ya se indicó previamente el valor que almacena, en siguientes campos identificamos y tenemos el control de los usuarios estos son los vales nombre, apellidos, dirección, usuario y contraseña. Esta parte solo mencionamos que tipos de valores utilizaremos para poder tener la autentificación de los usuarios.
39 Para poder realizar el acceso al sistema seguiremos utilizando Visual Studio en conjunto con otras herramientas. La primera de estas herramientas utilizadas fue Forms o ventana de Windows, en un leguaje de visual Basic en blanco, posteriormente comenzamos a dar formato a Forms colocándole un nombre especifico, para este caso se utilizó el nombre de “Acceso”, posteriormente se
realizó el cambio del icono que lleva por defecto a otro que identificara Forms, también se colocó un fondo para dar una mejor presentación a nuestro trabajo.
Después procedimos a colocar un cuadro de texto o label en la parte superior de la ventana, en este indicaremos el texto que llevara el encabezado; enseguida colocaremos un PictureBox, donde colocaremos una imagen en la posición que deseemos para poder dar una buena presentación a la ventana, continuamos con la colocación de otro label en donde estableceremos que es campo de Rol, enseguida de este label colocaremos un ComboBox, en donde se podrá mostrar los tipos de roles almacenados en la base de datos, después de colocar nuestro ComboBox colocaremos un label adicional con el texto Usuario y colocaremos un TextBox en donde se escribirá el nombre del usuario que será evaluado.
Colocamos otro label con el texto de contraseña y nuevamente colocaremos un TextBox pero a diferencia del anterior lo configuraremos para que no se muestre lo que estemos escribiendo, así se quedará establecido el perfil que se maneja en las contraseñas, que es ocultar los caracteres para tener una mayor confidencialidad, este campo también es evaluado.
Procederemos a insertar un botón el cual llamaremos Entrar, este se programó con un método en donde analizará los campos Rol, Usuario y Contraseña ya antes mencionados, para poder realizar esta acción se programó primero una clase que se nombró “conexión”, en ésta generamos el código para poder hacer la conexión a la base de datos, esto se realizó al importar valores de SQL Server que previamente habían sido generados, después importar los datos de SQL Server realizamos una conexión hacia la base de datos donde pasaremos los siguientes valores: el nombre de nuestro localhost , el nombre de la base de datos a la que se requiere tener
acceso, en esta se coloca la palabra “true” para indicar que es un autentificación
Windows, también se generó el código para abrir y cerrar la conexión con SQL Server 2008.
Después de ser generado la clase conexión, se tuvo que generar una nueva clase
40 Para poder guardar nuestros valores capturados generamos una nueva clase que
nombramos “funciones”, en esta clase importamos una de las características de SQL
Server llamada “Sqlclient”, también se crea una función con el nombre de “validar” la
cual va capturar los datos de nuestra clase datos.
Con esta nueva función se crea una excepción en donde conectamos la base por
medio de la función “conectado” que hemos heredado previamente. Con nuestra
variable declarada utilizaremos un comando programado en SQL Server que
nombraremos “validar” comprobaremos estos valores capturados Con nuestros campos TextBox y ComboBox y una vez almacenados en nuestra clase “datos”
podremos validarlos con los valores que tenemos almacenados en nuestra base de datos, si estos llegan a ser iguales se mandará un mensaje de error mediante un MsgBox, y para terminar nuestra función desconectamos.
Después de haber comprobado las clases, se procede a programar nuestro
“Button”, importando nuestros valores de SQL, continuaremos con la declaración de variables públicas, y posteriormente continuamos con la creación de una función en donde se realizó un método para poder cargar nuestra variable “ComboBox” con los
valores almacenados en la base de datos, todo esto se cargará en el cuerpo de Windows Forms, esto fue útil para continuar con la programación de nuestro
“Button”, ya que dentro de la estructura de éste pasamos los valores capturados
anteriormente en nuestra clase “datos” y de esta manera validados a través de las clases de funciones, si todos los valores son correctos nos dará acceso a nuestra aplicación, pero si los datos son incorrectos nos mandará un mensaje de error
mediante un MsgBox con la leyenda “Error en el Usuario, Contraseña, o Rol”.
41
4.3. Menú Principal
Fig. 4.3. Menú Principal
Después de hacer una identificacion correcta y pasar el filtro de seguridad, se desplegaré el menú principal (Fig. 4.3) en donde se muestran las funciones principales de la aplicación para poder desarrollar este el menú, volvemos a crear un nuevo archivo con Windows Forms, al cual nombramos “menu” y le dimos
formato cambiendo el icono, tambien se coloco un fondo, posteriomente pasamos a
colocar un “PictureBox” en donde colocamos una imagen de una cámara IP, se
colocan seis botones los cuales se nombraron con los siguiente nombres: Video, Scanner de Imagen, Scanner de red, Reporte de fallas, Navegador y Salir. Los primeros cinco abren los procesos principales de la aplicación y el último nos permite abandonar la aplicación en su totalidad.
Nuestro menú realizará el llamado de las aplicaciones cuando éstas sean requeridas para su utilización por medio de un botón. La forma en la cual se programó cada uno sus botones para que realicen el llamado de los archivos con extensión”.exe”
de cada una de las aplicaciones anteriormente programadas y ejecutadas.
42
4.4. Reproductor de Video
Fig. 4.4. Reproductor de Video
Ya que la mayoría de las cámaras IP cuentan con una opción de grabar video, se pensó que era buena idea hacer la implementación de un reproductor para todas las grabaciones que se llegasen a hacer.
El primer paso para crear el menú es un reproductor de video (Fig. 4.4) creado en Visual Studio 2010, para poder realizarlo se crea un nuevo archivo de Windows
Forms y lo llamaremos “Reproductor de video”, mediante las herramientas y
componentes de Visual Studio aplicaremos el componente de Windows Media Player, también utilizaremos un OpenFileDialog y un ToolStrip.
43 Teniendo el complemento dentro de Windows Forms colocaremos un ToolStrip que es la barra que utiliza Windows para desplegar listas de opciones en las aplicaciones, además agregaremos el complemento OpenFileDialog lo dentro de ToolStrip para poder abrir una ventana de dialogo, donde podremos tener acceso a los videos guardados con esto tenemos una manera sencilla de navegar dentro de Windows.
Agregado el complemento “OpenFileDialog” se programó el “ToolStrip” de la
[image:47.612.86.529.229.545.2]siguiente manera, se creó una lista con dos opciones: la primera con el texto de abrir y la segunda con el texto de salir.
Fig. 4.5. Menú “Archivo” con opciones “Abrir” y “Salir”
Habiendo implementado las opciones de abrir y salir (Fig. 4.5), procedimos a implementar las funciones que van a desarrollar; empezamos con el proceso de abrir en donde usaremos la función “OpenFileDialog”, ésta nos proporciona el acceso a las carpetas y a los archivos, con esto podemos reproducir los videos debido al complemento de Windows Media Player introducido anteriormente.
44 Fig. 4.6. Menú “Abrir”
En la Fig. 4.6 se muestra el resultado de la programación, esta es una ventana personalizada para poder navegar entre las carpetas como las que utiliza Windows.
45
4.5. Escaneo de imagen
Fig. 4.7. Pantalla “Analizar Falla de Imagen”
Para poder implementar el análisis de imagen (Fig. 4.7) que se requiere para la aplicación, se consideró que la mejor opción era utilizar el programa MATLAB, ya que la interfaz que maneja es muy similar a la utilizada por Microsoft Visual Studio, también se consideró que debido a que se requiere el uso de funciones matemáticas, MATLAB es mejor que Microsoft Visual Studio y nos evitaría el escribir demasiado código para llegar al mismo fin. El método de correlación es el ideal para poder hacer la comparación de imágenes en que han sido convertidas en matrices.
La única desventaja con la que se encontró entre MATLAB y Visual Studio es en cuestión del desarrollo de su aplicaciones gráficas, en MATLAB el entorno grafico no es tan amigable como el de Visual Studio, tiene un ambiente grafico simple con pocas funciones, pero es compensado con la facilidad de poder realizar análisis matemáticos.
46 La programación de los botones fue la siguiente: en este ambiente grafico cada botón es una función, para empezar programaremos los primeros dos botones utilizando la función Callback, donde implementaremos el código para poder abrir una venta, en la cual podemos navegar dentro de las carpetas de Windows para poder obtener imágenes a ser analizarlas. Después obtener las imágenes muestra y la imagen a analizar, se tuvieron que guardar los valores a través de handles (función de almacenamiento), incluyendo la función guidata (hObject, handles) nos permitió pasar los valores de las imágenes convertidas en matrices.
Con los siguientes dos botones también se generaron dos nuevas funciones Callback, donde se procedió a guardar los valores de la imagen muestra y la imagen a analizar, pero convertidas en escala de grises (es necesario para que podamos utilizar nuestro método de correlación). Después de realizar la conversión de las dos imágenes a escala de grises utilizaremos nuevamente handles para poder almacenar nuestros valores, utilizaremos también guidata (hObject, handles) que nos permitirá utilizar los valores en la siguiente función.
En el último botón también se generará otra función Callback, donde implementaremos el método de correlación de imágenes ya mencionado en capitulo tres. Para implementar este método necesitamos obtener nuestros valores de las imágenes convertidas a escalas de grises, esto lo podremos realizar declarado dos nuevas variables, donde pasaremos los valores almacenados en nuestros handles, posteriormente declararemos dos nuevas variables de esta manera a=double(A); esto nos permitirá poder trabajar con los valores necesarios para nuestro método. Continuaremos con la lectura de nuestros valores antes de pasarlos al método de correlación, al haber realizado esto, procederemos a aplicar el método de correlación para poder comparar las imágenes convertidas en matrices. La única restricción para la utilización de este método es que las dos matrices deben ser del mismo tamaño para poder ser comparadas entre si.
47 Fig. 4.8. Pantalla de demostración de análisis de Imagen
48
4.6. Gestion de Red
[image:52.612.86.429.109.310.2]Fig. 4.9. Pantalla de inicio del programa SNMPc
Para poder hacer la gestión de la red se utilizará el programa SNMPc (Fig. 4.9) como complemento de la aplicación, esto debido a que es de las mejores aplicaciones para la gestión del protocolo SNMP que es uno de los protocolos con los cuales trabajan estas cámaras y de los más seguros.
Fig. 4.10. Pantalla para ingreso de dirección IP en el programa SNMPc
[image:52.612.85.437.416.612.2]49
4.7. Reportes
Fig. 4.11. Pantalla de Reportes
Para poder tener un control de las fallas que presenten, se generó un sistema de reporte de fallas (Fig. 4.11), donde se maneja gran parte de la información sobre las cámaras IP, y de esta manera analizar si el sistema de seguridad tiene algún punto vulnerable, este sistema de reportes fue generado en el programa Visual Studio. Para poder realizar este sistema de reportes fue necesario crear una nueva aplicación, ya que contiene una conexión a una base de datos llamada Reporte, esta se encuentra alojada en SQL Server, para evitar algún conflicto de conexión se creó un nuevo proyecto el cual se llamara reporte de fallas de cámaras IP.