Tesis Versión Final

Anuncio
FUNDACIÓN UNIVERSIDAD DE LAS AMÉRICAS PUEBLA
Escuela de Ingeniería
Departamento de Computación, Electrónica y Mecatrónica
Sistema de gestión de salas y de dispositivos de Red basado en la tecnología
de Java Server Faces
Tesis profesional sometida por
Rafael Cornelio Bautista
Rafael Rodríguez Montes
Como requisito parcial para obtener el título de Licenciatura en
Ingeniería en Sistemas Computacionales y Tecnologías de la Información
Dirigida por
Dr. Oleg Starostenko Basarab
Dr. Roberto Rosas
Sinodal:
Dr. Daniel Vallejo Rodríguez
Santa Catarina Mártir. Cholula, Puebla
Primavera 2010
Sta. Catarina Mártir, Cholula, Puebla a 14 de mayo 2010
Sistema gestor de salas y dispositivos de red basado en JSF
Página 2
Resumen
Las tendencias tecnológicas de hoy en día se enfocan al desarrollo basado en aplicaciones
web, ya que gracias a los avances y desarrollo de velocidad en el ancho de banda del
Internet y de las intranets corporativas, ah permitido cada vez más el uso de aplicaciones
ligeras a través de la web, sin embargo, este desarrollo se ha impulsado bastante ya que
existen grandes ventajas para los usuarios, al no requerir recursos para poder ejecutar o
abrir aplicaciones, ya que todo se encuentra en la web; muestra de esto ha sido el esfuerzo
de Google al integrar su tecnología de “Google Docs” para hacer mas practico, rápido, sin
requerimientos rigurosos de hardware, ni costos de licencia por equipo. Esto también ha
sido una de las tantas ventajas que ha representado la vitalización, que es una rama de estas
tendencias tecnológicas.
De forma general lo anterior fue un argumento del porqué dar solución a
esta necesidad a través de una aplicación web, ya que inicialmente empezamos con una
aplicación local, la convertimos a una aplicación web usando los mismos frameworks
iniciales (gammu).
Otro framework importante usado en este proyecto, fue el uso de un demonio de
mensajes de texto para celular, que funciona en base a eventos programados por nosotros,
el cual nos es bastante útil para interactuar con el sistema gestor de salas a través de
mensajes de texto vía celular. Para informar de eventos y confirmar asistencias, de tal
manera que no solo tenemos interacción vía web, sino de manera móvil a través de
mensajes sencillos y prácticos. Haciendo que la aplicación esté disponible a cualquier hora
en cualquier momento.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 3
Para el desarrollo de la aplicación se uso java server faces, que nos ofrece una serie
de ventajas (ser un estándar, componentes configurables, ocultar en parte que es una
aplicación web, promover el trabajo con backing beans, entre otras que desarrollaremos
más adelante).
El objetivo de esta aplicación se basa en resolver la necesidad de administración de
un conjunto de salas que se encuentran ubicadas en distintos lugares geográficos, que
corresponden a las diferentes dependencias del gobierno del estado de Puebla. Todas estas
bajo una misma infraestructura interconectada a través de tecnologías de WiMax, que se
encuentran en continuo crecimiento, integrando nuevas dependencias hasta poderse
interconectar con otros estados, a la par de esto se encuentra la necesidad del control de
todos los dispositivos de red, es decir se requiere una base de datos que se encuentre
siempre disponible para asignar direcciones IP, lo cual se integro en la aplicación como un
segmento del proyecto.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 4
Índice de contenidos
1.
Introducción ................................................................................................................ 15
1.1
Antecedentes .......................................................................................................... 15
1.2
Histórico................................................................................................................. 18
1.3
Contexto de la Aplicación...................................................................................... 19
1.3.1
Integración de tecnología WiMAX ................................................................ 21
1.4
Planteamiento del problema................................................................................... 22
1.5
Objetivo de la tesis ................................................................................................. 24
1.6
Objetivos específicos (Administración de la sala de conferencias) ....................... 25
1.7
Objetivos específicos (Sistemas de gestión de ips) ............................................... 31
1.8
Alcances ................................................................................................................. 31
1.9
Resumen de Capitulo ............................................................................................. 32
2.
Opciones de Tecnología en el mercado para esta infraestructura. ........................ 33
3.
En el almacenamiento (MySQL) ............................................................................... 34
3.1
4.
Arquitectura del sistema ............................................................................................ 36
4.1
5.
MVC ...................................................................................................................... 37
JFreeChart .................................................................................................................. 39
5.1
6.
Un SGBD como MYSQL permite: ........................................................................ 35
Interfaz gráfica ....................................................................................................... 42
Gammu ........................................................................................................................ 46
Sistema gestor de salas y dispositivos de red basado en JSF
Página 5
7.
8.
9.
6.1
PhpMyAdmin & Gammu....................................................................................... 48
6.2
Uso de gammu en un prototipo previo................................................................... 50
6.3
Detalles técnicos .................................................................................................... 50
Java Server Faces ....................................................................................................... 53
7.1
El porqué del uso de este JSF ................................................................................ 53
7.2
JSF Introducción .................................................................................................... 55
7.3
Objetivos de JSF .................................................................................................... 56
7.4
Versiones de JSF .................................................................................................... 57
7.5
Ventajas de JSF ...................................................................................................... 57
7.6
Integrando Ajax a JSF............................................................................................ 59
7.7
Comparativa con prototipos previos al uso de JSF ................................................ 59
7.7.1
En Vista .......................................................................................................... 59
7.7.2
En el entorno de Desarrollo ............................................................................ 62
JSF Vs Struts ............................................................................................................... 64
8.1
Demostrando el uso de JSF en comparación de Struts .......................................... 65
8.2
Prime Faces ............................................................................................................ 68
Diseño de la Implementación ..................................................................................... 76
9.1
Esquema de base de datos en la gestión de sala..................................................... 76
9.2
Descripción de los Triggers Para la base de datos de la gestión de salas .............. 77
9.3
Esquema de base de datos en la gestión de dispositivos de red ............................. 78
Sistema gestor de salas y dispositivos de red basado en JSF
Página 6
9.4
Esquema de base de datos del Demonio de mensajes (Gammu) ........................... 79
9.5
Diagrama de clases de la Aplicación ..................................................................... 81
9.6
Diagrama de clases para la gestión de dispositivos de red .................................... 86
9.7 Funcionamiento del gestor de dispositivos de red ................................................... 88
10. Implementación del sistema gestor de salas y dispositivos de red ......................... 89
10.1
Introducción ....................................................................................................... 89
10.2
Identificación del usuario ................................................................................... 90
10.3
Interfaz de Administrador .................................................................................. 90
10.4
Alta de un evento................................................................................................ 91
10.5
Alta de usuario ................................................................................................... 93
10.6
Invitaciones ........................................................................................................ 94
10.7
Alta de lugar ....................................................................................................... 96
10.8
Alta de sala ......................................................................................................... 96
11. Evaluación y Conclusiones......................................................................................... 97
11.1
Con respecto a las experiencias aprendidas ....................................................... 97
11.2
Con respecto al uso de los frameworks .............................................................. 97
12. Trabajos a Futuro..................................................................................................... 100
Bibliografía ........................................................................................................................ 101
Apéndice A:
Otras corridas del software..................................................................... 106
Sistema gestor de salas y dispositivos de red basado en JSF
Página 7
Apéndice B:
Video de grafica con PrimeFaces en el sistema de SICOM, funcionando
en tiempo real ................................................................................................................. 107
Sistema gestor de salas y dispositivos de red basado en JSF
Página 8
Índice de figuras
FIGURA 1.1: DESCRIPCIÓN GENERAL DE LOS PRINCIPALES ENLACES QUE CUENTA LA INFRAESTRUCTURA DE
RED DE TELECOMUNICACIONES SICOM 2009 (INTELIMAX, 2009) ......................................................... 19
FIGURA 1.2: EXPANSIONES RECIENTES DE LA RED DE TELECOMUNICACIONES SICOM 2009 (INTELIMAX, 2009)
................................................................................................................................................................ 20
FIGURA 1.3: SE MUESTRA LA IMPLEMENTACIÓN DE LAS RADIO BASES DE TECNOLOGÍA WIMAX EN
FUNCIONAMIENTO (INTELIMAX, 2009) .................................................................................................. 21
FIGURA 1.4: PLANEACIÓN A FUTURO DE LA INTEGRACIÓN DE EQUIPOS WIMAX (INTELIMAX, 2009) ........... 22
FIGURA 1.5: CURVA DE APRENDIZAJE .............................................................................................................. 25
FIGURA 2.1: SISTEMA DE RESERVA DEL AULA MAGNA DEL CIRIA. ................................................................... 34
FIGURA 4.1: FLUJO A TRAVÉS DEL MODELO MVC ............................................................................................ 38
FIGURA 5.1: EJEMPLO DE GRAFICAS QUE SE PUEDEN GENERAR EN JFREECHART .......................................... 40
FIGURA 5.2: EJEMPLOS DE GRAFICAS QUE SE PUEDEN GENERAR EN JFREECHART ......................................... 40
FIGURA 5.3: EN ESTA PRIMERA GRÁFICA, SE PUEDE VER QUE ESTÁN REPRESENTADOS LOS 12 MESES DEL
AÑO, ASÍ MISMO SE MUESTRA LA RELACIÓN EXISTENTE ENTRE EL MES ESPECIFICADO Y SU
OCUPACIÓN EXPRESANDO EN OTRAS PALABRAS EL NÚMERO DE VECES QUE SE HIZO USO DE LA SALA
A LO LARGO DEL AÑO. ............................................................................................................................ 42
FIGURA 5.4: EN SEGUNDO PUESTO ESTÁ UNA GRÁFICA DEL TIPO LINEAL, ESTE ESTILO DE GRÁFICA PUEDE
SER UTILIZADA PARA MOSTRAR LAS ESTIMACIONES DE CRECIMIENTO EN CUANTO A ASIGNACIONES
DE IP O BIEN AL IGUAL QUE LAS SALAS Y SU USO, PARA MOSTRAR EL NUMERO DE ASIGNACIONES QUE
SE HAN HECHO EN UN PERIODO DETERMINADO. .................................................................................. 43
FIGURA 5.5: FINALMENTE COMO SE PUEDE APRECIAR, ESTA ES UNA GRÁFICA DE PASTEL, QUE SE PIENSA
PODRÍA SER DE MUCHA UTILIDAD PARA MOSTRAR LA PROPORCIÓN DE USO EN LA DIRECCIONES IP
POR EJEMPLO AQUELLAS QUE SE UTILIZAN PARA VIDEO, VOZ O TRANSMISIÓN DE DATOS. ................ 43
FIGURA 5.6: CONJUNTO DE PRUEBAS PARA LA REALIZACIÓN DE GRAFICAS EN TIEMPO REAL BASADAS EN
VALORES ALEATORIOS, Y COMO PODEMOS VER CUMPLIERON SATISFACTORIAMENTE LOS REQUISITOS
Sistema gestor de salas y dispositivos de red basado en JSF
Página 9
DE RESPUESTA QUE NECESITAMOS PARA GRAFICAR LOS DISTINTOS TIPOS DE EVENTOS QUE VAMOS
USAR EN TIEMPO REAL PARA EL MONITOREO. ...................................................................................... 44
FIGURA 7.1: VENTANA PRINCIPAL DE NUESTRA BASE DE DATOS QUE USARA NUESTRO DEMONIO DE
MENSAJES (GAMMU) EN LA CUAL SE ESTABLECERÁ PARÁMETROS DE RESPUESTA, LISTA DE NÚMEROS
TELEFÓNICOS Y CASOS DE REACCIÓN EN BASE A LOS MÓDULOS QUE SE PROGRAMARÁN .................. 48
FIGURA 7.2: PRUEBAS DE RECONOCIMIENTO DEL DISPOSITIVO TELEFÓNICO Y DE ENVÍO DE MENSAJES A
TRAVÉS DE SERVIDOR GAMMU Y DE FONDO TENEMOS EL ARCHIVO DE CONFIGURACIÓN QUE TIENE
LA INFORMACIÓN DEL PUERTO, CONEXIÓN A TRAVÉS DE BLUETOOTH CON EL EQUIPO CELULAR.
NOTA: NO EXISTE UNA CONFIGURACIÓN DE CONEXIÓN EN LA PÁGINA DE SOPORTE, SIN EMBARGO A
BASE DE PRUEBAS, EXPERIMENTOS Y CONOCIMIENTO SE PUDO DEDUCIR LA CONEXIÓN HASTA
ENCONTRARLA DE MANERA EXITOSA..................................................................................................... 49
FIGURA 7.3: DEMONIO DE GAMMU ACTIVAD, COMO PARÁMETRO DE ENTRADA SE LE DA LA
CONFIGURACIÓN DE CONEXIÓN Y LA INFORMACIÓN NECESARIA PARA CONECTAR CON MYSQL, EN EL
ARCHIVO SMSDRC. .................................................................................................................................. 50
FIGURA 7.4: INTERFAZ DE PRUEBA PARA EL ENVIÓ DE MENSAJES A TRAVÉS DE LA INTERACCIÓN CON LA
BASE DE DATOS Y EL DEMONIO DE GAMMU ACTIVO, EN EL MOMENTO QUE SE PONE UN MENSAJE EN
EL AUTBOX DE LA BASE DATOS, AUTOMÁTICAMENTE LO ENVÍA Y LO MANDA EN SENDITEMS
INDICANDO QUE YA SE ENVIÓ EL MENSAJE DE MANERA EXITOSA. ....................................................... 50
FIGURA 7.5: ESPECIFICACIONES DE CONFIGURACIÓN PARA QUE FUNCIONE DE MANERA CORRECTA EL
DEMONIO (SE SEÑALA LA PARTE DE DEFINICIÓN DEL EQUIPO CELULAR Y DE LA BASE DE DATOS). ..... 52
FIGURA 8.1: MUESTRA EN CÓMO SE CREABAN LOS EVENTOS Y SE AGREGABAN LOS USUARIOS AL EVENTO Y
AL MOMENTO DE HACER ESTO EL SISTEMA MANDABA MENSAJE VÍA CELULAR Y CORREO HECHOS CON
MENSAJES PREDEFINIDOS....................................................................................................................... 60
FIGURA 8.2 VALIDANDO USUARIO INCORRECTO ............................................................................................. 60
FIGURA 8.3: VALIDACIONES ESPECÍFICAS (SE PLANEA VALIDAR EN TIEMPO REAL USANDO AJAX). ESTAS
VALIDACIONES CUENTAN CON DETALLES ESPECÍFICOS, POR EJEMPLO SI AUN CORREO LE HACE FALTA
Sistema gestor de salas y dispositivos de red basado en JSF
Página 10
UN PUNTO O LA ARROBA O SI E SU NÚMERO DE CELULAR NO SON NÚMEROS Y NO ES DE 10 DÍGITOS.
................................................................................................................................................................ 61
FIGURA 8.4: MOSTRAMOS EL ENTORNO DE DESARROLLO EN NETBEANS, DE LADO INFERIOR IZQUIERDO
TENEMOS NUESTRO CONJUNTO DE BEAS, Y DENTRO LOS “ROWSET” CON CONSULTAS PREDEFINIDAS
DE TAL MANERA QUE SE SINCRONIZAN CON LOS “DATAPROVIDER” PARA PODER HACER USO DE ESTAS
CONSULTAS Y VINCULARLOS CON LOS OBJETOS NECESARIOS. .............................................................. 62
FIGURA 8.5: ENTORNO DE TRABAJO SIN JSF, ENFOCADO A UNA APLICACIÓN LOCAL BASADO EN PROTOTIPOS
PREVIOS, HACIENDO NOTAR LA DIFERENCIA DE HERRAMIENTAS SIN JSF. ............................................ 63
FIGURA 9.1: PANTALLA DE DESPLIEGUE DE LISTADO USADO COMO PRUEBA PARA DEMOSTRAR LA
EFICIENCIA DE STRUTS EN COMPARACIÓN DE JSF (ALEMAN, 2010) ...................................................... 65
FIGURA 9.2: TABLA COMPARATIVA ENTRE JSF Y STRUTS EN BASE A LAS HORAS HOMBRE DE TRABAJO
HECHAS A PARTIR DE UN EXPERIMENTO (ALEMAN, 2010) .................................................................... 67
FIGURA 9.3: TABLA COMPARATIVA ENTRE JSF Y STRUTS EN BASE A LAS HORAS HOMBRE DE TRABAJO PARA
EL MANTENIMIENTO DE UNA PÁGINA EN BASE A UN EXPERIMENTO (ALEMAN, 2010) ........................ 67
FIGURA 9.4: PRIMEFACES: BARRAS DE PROGRESO EN TIEMPO REAL (CASOS DE USO DE PRIMEFACES, 2010)
................................................................................................................................................................ 68
FIGURA 9.5: PRIME FACES: DASHBOARD CON FUNCIONES SIMILARES A LAS VENTANAS DE WINDOWS,
INCLUYEN EFECTOS GRÁFICOS. (CASOS DE USO DE PRIMEFACES, 2010) ............................................... 69
FIGURA 9.6: PRIMEFACES: POSIBILIDAD DE USO DE MENÚS CONTEXTUALES SOBRE IMÁGENES .................. 69
FIGURA 9.7: PRIMEFACES: EJEMPLOS DE APLICACIONES USANDO LA LIBRERÍA TOUCHFACES PARA
DISPOSITIVOS MÓVILES CON CAPACIDADES DE INTERFAZ TÁCTIL ......................................................... 71
FIGURA 9.8: DIAGRAMA DE SECUENCIA DE PRIMEFACES ................................................................................ 71
FIGURA 9.9: CASO 1 DEMOSTRANDO LAS GRÁFICAS EN TIEMPO REAL, DE LADO IZQUIERDO ES LA BASE DE
DATOS ACTUAL DE LAS CONFIRMACIONES ............................................................................................ 73
FIGURA 9.10: CASO 2, CONSIDERANDO QUE LOS DOS INVITADOS CONFIRMARON (DETALLE DE LADO
IZQUIERDO EN LA BASE DE DATOS), SE ACTUALIZA LA GRAFICA DE MANERA AUTOMÁTICA SIN TENER
QUE ACTUALIZAR LA PAGINA DEL LADO DERECHO ................................................................................ 74
Sistema gestor de salas y dispositivos de red basado en JSF
Página 11
FIGURA 10.1: ESQUEMA DE BASE DE DATOS PARA LA PARTE DE LA GESTIÓN DE SALAS DE VIDEO
CONFERENCIAS. ...................................................................................................................................... 76
END FIGURA 10.2: ESTRUCTURA BÁSICA DE TRIGGER. .................................................................................... 77
FIGURA 10.3: TRIGGER QUE ELIMINA INVITACIONES DEL EVENTO QUE SE ELIMINÓ ...................................... 77
FIGURA 10.4: ESQUEMA DE BASE DE DATOS PARA EL GESTOR DE DIRECCIONES IP ....................................... 78
FIGURA 10.5: PRIMERA PARTE DEL ESQUEMA DE BASE DE DATOS DEL DEMONIO DE MENSAJES DE TEXTO
PARA CELULAR (GAMMU) (GAMMU, 2009) ........................................................................................... 79
FIGURA 10.6: PRIMERA PARTE DEL ESQUEMA DE BASE DE DATOS DEL DEMONIO DE MENSAJES DE TEXTO
PARA CELULAR (GAMMU) (GAMMU, 2009) ........................................................................................... 80
FIGURA 10.7: LA CLASE MANEJADOR, LA CUAL GESTIONA PROCESOS COMO LA PROYECCIÓN, PERSISTENCIA
Y MANEJO DE ATRIBUTOS BÁSICOS. ....................................................................................................... 82
FIGURA 10.8: CLASE MANEJADOR, LA CUAL GESTIONA LA SALIDA DE TODOS LOS DATOS A TRAVÉS DE
COMPONENTES VISUALES. ..................................................................................................................... 83
FIGURA 10.9: CLASE VALIDACIONES, EN LA CUAL SE ENCUENTRAN LAS VALIDACIONES BÁSICAS PARA LA
ENTRADA DE INFORMACIÓN DE LAS DIFERENTES SECCIONES DEL SISTEMA. ........................................ 84
FIGURA 10.10: CLASE QUE VALIDA EMPALMES EN LA GESTIÓN DE SALAS. ..................................................... 85
FIGURA 10.11: CLASE UTILERÍAS, REÚNE UN CONJUNTO OPERACIONES BÁSICAS COMO BÚSQUEDAS
PERSONALIZADAS Y GESTIÓN Y CONVERSIÓN DE DATOS....................................................................... 86
FIGURA 10.12: DIAGRAMA DE CLASES DE LAS FAMILIAS DE OCTETOS PARA LA GESTIÓN DE DIRECCIONES IP
................................................................................................................................................................ 87
FIGURA 10.13 DIAGRAMA DE CLASES PARA EL ÚLTIMO OCTETO DE LA GESTIÓN DE DISPOSITIVOS DE RED. 87
FIGURA 10.7.1: SISTEMA GESTOR DE DISPOSITIVOS DE RED ........................................................................... 88
FIGURA 11.1: PANTALLA DE IDENTIFICACIÓN PARA EL USUARIO .................................................................... 90
FIGURA 11.2: INTERFAZ DE ADMINISTRADOR. ................................................................................................. 90
FIGURA 11.3: ALTA DE EVENTOS EN ESTA PARTE CABE LA POSIBILIDAD DE VER LOS EVENTOS QUE SE
ENCUENTRAN YA PARA LA FECHA INDICADA, ASÍ NO SERÍA FÁCIL PREVER ALGÚN INCONVENIENTE
PARA EL EVENTO QUE DESEAMOS PLANEAR COMO SE MUESTRA EN LA SIGUIENTE IMAGEN ............. 91
Sistema gestor de salas y dispositivos de red basado en JSF
Página 12
FIGURA 11.4 VERIFICACIÓN DE EVENTOS YA ESTABLECIDOS PARA UNA FECHA DADA ANTES DE DAR DE ALTA
UN EVENTO ............................................................................................................................................. 91
FIGURA 11.5: PROBANDO VALIDACIONES PARA DAR DE ALTA UN EVENTO .................................................... 92
FIGURA 11.6: ALTA DE USUARIO, PROBANDO LAS VALIDACIONES BÁSICAS ................................................... 93
FIGURA 11.7: BUSCANDO EVENTOS POR NOMBRE PARA INVITAR AL PERSONAL ........................................... 94
FIGURA 11.8: BUSCANDO INVITADOS AL EVENTO PREVIAMENTE SELECCIONADO ......................................... 95
FIGURA 11.9: PROBANDO LAS VALIDACIONES BÁSICAS AL DAR DE ALTA UN EVENTO................................... 96
FIGURA 11.10: DANDO DE ALTA UNA SALA DE CONFERENCIAS. ..................................................................... 96
Sistema gestor de salas y dispositivos de red basado en JSF
Página 13
Lista de acrónimos
WiMAX- Wordwide Interoperability
JSF- Java Server Faces
MVC- Model View Controller
SCT- Secretaría de comunicaciones y transportes
IP – Protocolo de Internet
JSP- java server pages
SICOM – Sistema de Información y comunicación del estado de Puebla
XML – Extensible Markup Language
DTD- Document Type Definition
JSP- Java Server Pages
JPA- Java Persistence API
SQL-Structured Query Language
Sistema gestor de salas y dispositivos de red basado en JSF
Página 14
1. Introducción
1.1
Antecedentes
En el proyecto integrador que es manejado por proveedores y personal que trabaja en el
departamento de TI en el sistema de información y comunicaciones del Estado de Puebla
(SICOM), se presentan una serie de necesidades y problemáticas enfocadas a la
administración de salas, y dispositivos de red, dada esta situación, se requiere desarrollar
tecnología de software aplicativa a la medida, para poder seguir creciendo como
dependencia de tecnología, basa en las tendencias de desarrollo de software más actuales.
Existen una serie de proyectos integradores dentro de esta dependencia de gobierno,
a los cuales nos enfocaremos es específicamente a la gestión de salas de conferencias que
se encuentran en diferentes dependencias del Gobierno del Estado de Puebla, y que debido
a su crecimiento se ha dificultado la administración de éstas, por lo que es necesario
recurrir a la gestión sistemática a través del uso de las tecnologías de la Información para
optimizar este proceso. De forma paralela existe otra necesidad similar, pero con la base de
datos de dispositivos de red, la cual se requiere constante mente en diferentes puntos de la
infraestructura para poder dar de alta y dar de baja equipos dentro de la red.
Para esto se empezó planteando un software para instalarse de manera local, es decir
en cada computadora donde se había a utiliza era necesario la instalación, y de forma
paralela se requería un sistema de base de datos centralizado, pero al seguir la investigación
sobre este tipo de aplicación, encontramos una solución basándose en las tendencias de
desarrollo de software enfocado a aplicaciones web, ya que ofrece una gran cantidad de
Sistema gestor de salas y dispositivos de red basado en JSF
Página 15
ventajas y beneficios que comentaremos a lo largo de estos capítulos. Y de forma paralela
se utilizo gammu como demonio de mensajes para complementar el sistema.
Cabe aclarar que es necesario dar a conocer detalles técnicos y generales en donde
se requiere el sistema, es decir, a pesar de que sea un sistema basado en una aplicación web,
es importante dar a conocer detalles del contexto en donde se va usar y como es que este
entorno se va ir modificando y creciendo conforme a las necesidades de las diferentes
dependencias y es por eso que daremos detalle de esto en los próximos capítulos.
En el contexto donde se va usar la aplicación,
se piensa integrar nuevas
dependencias de gobierno para ofrecer diferentes servicios a éstas de tal manera que se
evite la dependencia de proveedores de red e internet (Telmex, Axtel, etc.) y uno de estos
servicios importantes son las salas de videoconferencia para los usuarios de las diferentes
áreas de gobierno. De forma paralela se está integrando tecnologías nuevas como la de
WiMAX para ofrecer mejor calidad en los achos de banda y movilidad.
SICOM se encuentra invirtiendo en equipos para tecnología WiMAX con apoyo de
recursos del gobierno del estado de Puebla con el objetivo de que el estado se encuentre
listo para que en un tiempo a mediano plazo, Puebla pueda estar listo para interconectarse
con los demás estados e integrar más dependencias como casetas, SCT, penitenciarias,
entre otras a nivel nacional de forma que se puedan intercambiar servicios como los de
gestión de salas y dispositivos de red en un sistema de infraestructura que se está
expandiendo continuamente.
La evolución del desarrollo de software ha ido marcando tendencias a lo largo de la
historia, incluyendo metodologías, arquitectura, frameworks, estándares, tecnologías y
Sistema gestor de salas y dispositivos de red basado en JSF
Página 16
estilos de uso accesibilidad. Lo que tratamos de hacer notar en este proyecto, ver es cómo
es que empezamos basándonos en una arquitectura simple básica (MVC) en una aplicación
local, y la giramos a un estándar mas actualizado en la cual se encuentran inmersos sub
arquitecturas y estándares tales como soporte de internacionalización y accesibilidad,
manejo de eventos, validar en el servidor, conversión de datos, definición de navegación en
un modelo de programación bien definido donde las librerías de etiquetas facilitan la
construcción y mantenimiento de las aplicaciones web con interfaces de usuario. Todo esto
es una especificación desarrollada por la Java Community Process. (Java Community
Proces, 2010), que a comparación de tendencias anteriores de programación de software,
usando esta tecnología nos otorga una clara separación entre vista y modelo, desarrollo
basado en componente y no en peticiones, las acciones del usuario se ligan muy fácilmente
al código en el servidor, creación de familias de componentes visuales para acelerar el
desarrollo, compatibilidad con otros lenguajes de programación para aplicaciones web (ej.
Ajax) entre otras más que desarrollaremos en el capítulo de JSF. Estas características de
programación son las que impulsaron el desarrollo de este proyecto para llevarlo a un nivel
competitivo en base a las tecnologías y tendencias actuales. Después de ver cómo es que
estas tecnologías de han ido desarrollando, de forma paralela necesitamos analizar cómo es
que surge la necesidad de utilizarlas a partir de un problema real en una empresa, que es lo
que analizaremos en el siguiente capítulo.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 17
1.2
Histórico
Inicialmente se empezó desarrollando un software en java, usando modelos básicos de
programación (MVC), basado en el esquema artesanal que se ensena en la Universidad. En el cual
se planeaba monitorear las radio bases para tener un sistema centralizado, en el cual se pudiera
manejar, administrar, alertar y automatizar procesos, sin embargo, se aclaro por parte de SICOM,
que ya se tenía un sistema similar, por lo que nos enfocamos a sus necesidades en la gestión de salas
de juntas en los diferentes municipios y su necesidad de administración de dispositivos de red, por
lo que nos vimos frente a un problema típico al que le teníamos que dar una solución a nivel
empresarial. Empezamos haciendo una aplicación de la manera que se indico al principio
(artesanalmente con modelos básicos de programación) sin embargo, esto en lo personal no nos
convenció para darle una solución completa al usuario, así que vimos las tendencias tecnológicas
para dar una solución a la altura, lo cual nos llevo al sector de las aplicaciones web.
Esto nos llevo a conocer, investigar y a prender frameworks(Java server faces, ajax,
hibérnate, struts, OpenDS) que son usados y se siguen desarrollando para la evolución de la web2.0,
lo cual nos abrió el panorama y la cantidad de posibilidades que podemos hacer con estas
herramientas. Y de forma paralela, integrando otros frameworks de uso comercial, pero
enfocándonos al software libre, para no generar ningún gasto de licencias, en este caso fue el uso de
Gammu. Todo esto es consecuencia a las necesidades y tendencias de software que se desarrollan
hoy en día, donde ya no es suficiente tener todo el software instalado en computadoras, sino que
podemos usarlo desde una aplicación web, ahorrando costos de instalación, actualización, hardware,
etc. Ejemplo de esto es Google Docs, facebook, flick, correo de yahoo, entre otros más.
Todo este proyecto va ser implementado para la infraestructura de SICOM, la cual tiene
ciertas características peculiares, estas serán analizadas en el siguiente capítulo.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 18
1.3
Contexto de la Aplicación
Para el desarrollo de esta aplicación fue un punto importante tener en cuenta la
infraestructura y la magnitud de ésta, para ver si la tecnología utilizada (JSF) cumple las
necesidades de disponibilidad en cualquier parte o en cualquier nodo de ésta y si existe
algún fallo de ésta también existe la posibilidad de interactuar de manera parcial a través de
mensajes vía celular.
SICOM cuenta con una infraestructura que interconecta a la mayoría de los municipios del
estado de Puebla, y dentro de ésta se encuentra un conjunto de salas de conferencia
ubicadas en los diferentes municipios como se ilustra en la figura uno.
Figura 1.1: Descripción general de los principales enlaces que cuenta la infraestructura de red de
telecomunicaciones SICOM 2009 (Intelimax, 2009)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 19
Dentro del plan de crecimiento en los últimos meses se ha incluido un crecimiento en la red
incluyendo los municipios como “XOCOYOLO”, “CUETZALAN”, “TEPEXI” y
“ACATLÁN DE OSORIO”. Los cuales se ilustran en la figura 1.1, integrando otras
salas de conferencias y lógicamente mayor cantidad de dispositivos de red.
(Intelimax, 2009)
Figura 1.2: Expansiones Recientes de la red de telecomunicaciones SICOM 2009 (Intelimax, 2009)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 20
1.3.1 Integración de tecnología WiMAX
Dentro del plan de reingeniería de la red de telecomunicaciones, se encuentra la integración
de la tecnología WiMAX. Actualmente no se encuentra implementada en su totalidad,
como podemos ver en la figura 1.3
Figura 1.3: Se muestra la implementación de las radio bases de tecnología WiMAX en funcionamiento
(Intelimax, 2009)
Gracias a las ventajas que ofrece la tecnología WiMAX, se planea integrar este
servicio en la mayor parte de la infraestructura actual que se cuenta, como se muestra en la
figura 1.4
Sistema gestor de salas y dispositivos de red basado en JSF
Página 21
Figura 1.4: Planeación a futuro de la integración de equipos WiMAX (Intelimax, 2009)
1.4
Planteamiento del problema
La primera problemática y la más importante que nos plantea el equipo de tecnologías de la
información de SICOM, es una aplicación que sea capaz de llevar todos los detalles del
proceso que se necesita para reservar una sala de juntas, con el objetivo de evitar la pérdida
de tiempo y capital humano en estas tareas que pueden ser automatizada usando una
aplicación de manera automatizada y autónoma, que siempre esté disponible tanto para
usuarios de salas como para administrador.
Esto implica que la aplicación sea capaz de tener un horario por cada sala, y que
para casa usuario le sea capaz de reservar ésta por medio de un horario lógico y que avise
en caso de empalme al tratar de reservar, de lo contrario, agregue el evento a la agenda a la
Sistema gestor de salas y dispositivos de red basado en JSF
Página 22
respectiva sala. Para cada evento existen invitados, los cuales deben ser notificados por los
diferentes medios disponibles (en este caso implementamos vía correo electrónico y vía
mensaje de texto por teléfono móvil). De manera paralela, el usuario podrá dar de alta
eventos, y el administrador además de esto podrá dar de alta salas (ya que como lo hemos
discutido en capítulos anteriores, la infraestructura se encuentra en constante crecimiento),
las cuales se encuentran asociadas a un lugar. Estas salas por lo general cuentan con un
nombre para identificarlas y el administrador y no perderá tiempo en la interacción con los
usuarios y en llevar una agenda para cada sala, esto lo hará el sistema de manera automática
notificando a los usuarios en caso de empalme o de alguna situación dada con alguna sala,
y solo el administrador se preocupará por que este lista la sala para los horarios indicados
en el sistema.
Para el administrador de tecnologías de la información también le resulta muy útil
remplazar su archivo de base de datos que tiene en Excel, para llevar el control de todos los
dispositivos de red que se encuentran en esta infraestructura. Ya que existen muchas copias
de este archivo y no todas están actualizadas ni disponibles cuando se requiere, por lo que
sería bastante útil integrar en la parte del administrador de este sistema una sección donde
pueda dar hacer las consultas básicas para la base de datos de dispositivos de red activos, de
tal manera que tan solo tenga acceso a un navegador dentro de la infraestructura, pueda dar
de alta, bajas o modificaciones usando una base de datos única, actualizada y siempre
disponible, validando datos de entrada para llevar un control de coherencia dentro de esta
información.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 23
1.5
Objetivo de la tesis
El objetivo de la tesis es analizar, aplicar, comparar y promover el uso de tecnologías de
desarrollo de aplicaciones web nuevas basándose en tendencias actuales a través de Java
Server Faces como base del sistema aplicado a un conjunto de necesidades reales para una
dependencia del Gobierno del estado de Puebla, incorporando de forma paralela otras
herramientas como Gammu, Ajax y jFreeChart.Todo esto para dar una solución y
demostrar la eficacia de Java Server Faces ante otras tecnologías similares como Struts,
obteniendo respuesta a dicha necesidad con un nivel empresarial y competitivo en relación
a las tendencias de programación más comerciales y más usadas en los sitios exitosos de
aplicaciones web (google docs, facebook, twitter, etc) pero enfocado a las necesidades
especificas de una empresa de tecnología (SICOM), demostrando los beneficios en cuestión
de eficiencia, costos, calidad de uso y desarrollo, basándose en estándares establecidos.
Otro punto muy importante que se encuentra de manera implícita, es dar a conocer
la experiencia que se obtuvo al aprender éstas tecnologías, considerando que este tipo de
desarrollos fueron totalmente ajenos a la programación clásica que se lleva en la
universidad, demostrando que la curva de aprendizaje (figura 1.5) que obtuvimos en esta
experiencia fue repetitiva con periodos de tiempo relativamente cortos, sobretodo porque
no solo se aprendió Java Server Faces, sino también Gammu, Ajax, y jFreeChart.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 24
Figura 1.5: Curva de aprendizaje
1.6
Objetivos específicos (Administración de la sala de conferencias)
Como se mencionó en el punto anterior, el desarrollo que se llevará a cabo tendrá como
último objetivo hacer más eficiente la gestión de video-conferencias en las salas reservadas
para ese fin. Pero para poder concretar este objetivo es necesario hablar de otros a menor
escala, pero que en su conjunto y sumados harán posible incrementar la eficiencia en la
administración de dichas salas.
La aplicación que se planea desarrollar tiene contemplada la implementación de
varias funcionalidades que permitan al usuario introducir, modificar y eliminar datos, así
como también acceder a éstos, razón por la cual se puede decir que el grado de interacción
con el sistema es considerable.
Ahora bien, cuando un sistema informático se desarrolla, como en este caso una
interfaz grafica, es prioritario tomar en cuenta en primer lugar que el sistema va a ser
utilizado por personas y en segundo que en muchas ocasiones cuando interviene el factor
humano en el manejo de sistemas, aplicaciones o software, la forma en que se desarrolla
esta interacción puede llegar ser tan determinante como la aplicación misma, ya que si bien
es cierto que son vitales las soluciones que una aplicación pueda brindar, también es cierto
Sistema gestor de salas y dispositivos de red basado en JSF
Página 25
que si el usuario final no puede acceder fácilmente a ellas, éstas no sirven de mucho, por
eso es que la usabilidad de la aplicación es un factor que se está tomando en cuenta para la
construcción de esta interfaz. Para poder hacer posible todo lo anterior, se ha contemplado
la implementación de pruebas de usabilidad en usuarios para poder comparar los resultados
obtenidos con los esperados y en base a esta retroalimentación desarrollar una mejor
interacción entre la aplicación y las personas que van hacer uso de ésta.
Ahora bien la usabilidad de la interfaz es un tema importante y que sin duda será un
elemento considerado en el desarrollo que se está planteando, pero no es el único; hasta este
punto se ha hecho mención de que la interfaz permitirá la introducción, modificación,
eliminación y presentación de datos, pero no se ha descrito los módulos que permitan esta
interacción.
El primero de estos módulos y el principal, es aquel que ofrecerá la posibilidad dar
de alta un evento o video-conferencia, lo que en otras palabras quiere decir que será la parte
donde el usuario puede especificar el nombre, fecha, hora de inicio, hora de fin y lugar,
entre otras características.
El modulo contará con distintas validaciones, entre la que cabe destacar a aquella
que impedirá el empalme de eventos, la cual contribuirá considerablemente a la solución de
los problemas de logística que ha venido experimentado SICOM; no obstante solo es uno
de los elementos que compone el objetivo general.
Aunado a este modulo serán necesarios agregar otros. En primer lugar será se piensa
que es importante implementar una opción de búsqueda de evento, que permita a los
usuarios localizar cierto evento o grupo de eventos, ya sea por lugar, fecha, hora, o nombre
Sistema gestor de salas y dispositivos de red basado en JSF
Página 26
para poder acceder a la información de éstos; de esta manera será mucho más sencillo
poder llevar un registro del uso de las salas por semana o por temporada, pudiendo revisar
la ocupación de las salas.
En segundo lugar también se piensa desarrollar el modulo que le dé al usuario la
oportunidad de dar de alta invitados para un evento específico, este modulo cumplirá varias
funciones, la más básica de todas ellas es la de tener un control de las personas (autoridades
y personal) que asistirá a la conferencia.
La otra función que desempeñará el modulo refiere a la invitación que se hará a las videoconferencias, la cual será llevada a cabo desde dos perspectivas, una de ellas es el envío de
correos electrónicos con un saludo personalizado a todas aquellas personas de las que se
tengan sus datos y están dadas de alta con todo y su correo electrónico, así como también
que cumplan con la condición de estar invitadas al evento.
La segunda perspectiva desde la cual se llevará a cabo las invitaciones hace
referencia al hecho de que se enviarán mensajes de texto a los respectivos celulares de
quienes estén invitados al evento, contando con la opción de una confirmación de asistencia
vía mensaje sms. Esta última característica fue pensada debido a que el celular por su
propia naturaleza es un dispositivo que está siempre cerca de las personas favoreciendo su
localización casi en cualquier lugar y momento, es un poderoso recurso para hacer llegar
información de distinta índole, entre la que figura aquella que le dé a conocer, en este caso,
su participación en una video-conferencia donde se requiere de su asistencia.
La capacidad que el sistema brinde a los usuarios de dar de alta eventos tiene que
estar acompañada de las opciones de modificación y eliminación de los mismos.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 27
Ambas opciones de interacción con la información son parecidas, si se toma en
cuenta que en ambas las información se modifica, ya sea cambiando algún dato o aspecto
de la video-conferencia o bien borrándola por completo, otro rasgo en común es que para
que ambas (tanto modificación como eliminación) se puedan llevar a cabo es necesario que
el usuario tenga en claro el objeto a modificar o eliminar.
Por todo esto es que los módulos representativos de las funciones de modificación
y eliminación de eventos serán combinados con el respectivo módulo de búsqueda, con el
objeto de que el usuario pueda identificar el evento de su interés, y una vez localizado
pueda visualizar la información respecto a éste, así como también pueda modificar dicha
información o en caso de que así lo desee tenga la opción de eliminarlo.
Sin embargo el modificar o eliminar un evento no solo está relacionado con la
información que se refiere a la video-conferencia, sino también con las personas que
asistirán por lo que se ha considerado que los cambios en lugar, fecha y hora, así como
también la cancelación del evento sea informado por correo electrónico y vía sms a los
celulares de los invitados, de manera automática.
Hasta este punto los módulos descritos a grandes rasgos solo describen un parte del
sistema, la referente a la gestión de las salas de video-conferencias, pero por otra parte hace
falta describir aquellos que tienen relación con la administración de personas, ya sean
autoridades o empleados, que asistirán a dichos eventos; ciertamente se ha descrito que
aunado a la alta de algún evento está la posibilidad de incluir las personas que asistirán, sin
embargo para facilitar esta tarea se ha pensado en añadir un módulo que permita dar de alta
previamente a personas, con el objetivo de que se cuente con una base de datos de
Sistema gestor de salas y dispositivos de red basado en JSF
Página 28
autoridades y empleados con sus respectivos datos y se puedan seleccionar e incluir al
evento cuando se desee, sin tener que estar dando de alta cada vez que se tenga la intención
incluirlas en algún evento determinado.
Ahora bien, al igual que con los eventos es necesario dar la opción a los usuarios de
modificar y eliminar registros de la base de datos de personas, para lo que es necesario
reconocer la necesidad de buscar y localizar la persona sobre cual se desea hacer la
modificación o en su defecto la eliminación. Por esta razón se piensa en incluir una opción
de búsqueda de personas ya sea por nombre, apellidos o cargo entre otras categorías, con el
objetivo de que una vez identificada la persona se pueda hacer la modificación o
eliminación que el usuario considere pertinente.
Por otro lado cabe mencionar que la información tiene la característica de ser
siempre útil, esta utilidad puede verse manifiesta a veces de forma inmediata y en otras a
posteriori, por eso es que se piensa aprovechar la información que el sistema pueda llegar a
contener como resultado de la interacción que se tenga con él , como por ejemplo el
numero de video-conferencias que se puedan llevar a cabo a lo largo de un periodo que al
usuario le interese saber, ya sea las que se realizaron en un mes específico o en un periodo
que se determine, así como también tomando en cuenta que los invitados pueden llegar a
responder vía celular si van o no a asistir se puede almacenar este información no solo para
saber si un evento tendrá buena o mala asistencia, sino para determinar qué tipo de eventos
tienen un promedio de asistencia aceptable, regular o mala.
Tomando en cuenta que muchas veces no solo es suficiente la información que se
presente sino muchas veces importa la manera en que se haga, se ha reflexionado acerca del
Sistema gestor de salas y dispositivos de red basado en JSF
Página 29
tema y con el objeto de que esta información se muestre de una forma rápida y fácil de
entender para quien la solicite, se ha pensado que en lugar de ser solamente datos
numéricos se puede utilizar ciertas librerías que brinden la posibilidad de elaborar gráficas,
de tal manera que se pueda apreciar con un solo vistazo cual es la sala que mas eventos ha
tenido en un determinado periodo, o también que salas son las más concurridas y que
presentan mayor numero de audiencia
La intención de cada uno de estos módulos es mejorar la logística que actualmente
se tiene respecto a la administración de la salas de video-conferencia, así como también de
implementar herramientas que vayan un poco mas de eso y que en su conjunto resulten en
una solución no solo factible sino también más completa, donde los usuarios puedan
resolver en la medida de los posible algunos de los conflictos de organización para los
eventos y además lo hagan de una forma rápida y confiable, que resulta útil y cómoda a
todo aquel que haga uso de la herramienta que se planee desarrollar.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 30
1.7
Objetivos específicos (Sistemas de gestión de ips)
 Facilitar el acceso a la información de los dispositivos Activos
 Dar de alta dispositivos desde cualquier lado parte de la infraestructura
 Facilitar el uso de alta de un dispositivo para que sea de manera intuitiva
 Tener una base de datos siempre organizada, actualizada, coherente y detallada para
evitar conflictos en la red.
 Ayudar a los administradores a otorgar direcciones IP por medio de familias ya
establecidas.
 Incrementar la eficiencia, control y evitar pérdidas de tiempo en este proceso.
1.8
Alcances
 El sistema facilitará la administración de las direcciones IP
 El software facilitará la gestión de las salas de video-conferencias
 Facilitará el aviso a los invitados, respecto al evento
 Escalabilidad
 El software será independiente de la plataforma utilizada.
 Interactividad de software, usuario vía mensajes celular y por sitio web
 Productividad en el uso de salas y en el crecimiento de la infraestructura, evitando
pérdidas de tiempo en la parte administrativa de éstos.
 Control total sobre las salas y sobre los dispositivos colocados en cualquier punto de
la infraestructura.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 31
1.9
Resumen de Capitulo
Es importante conocer el objetivo de este trabajo de investigación, resaltando el contexto, el
desarrollo y la aplicación, demostrando las ventajas del uso de Java Server Faces,
complementándose con otras herramientas dentro del marco experimental (Gammu) y otras
más que tienen mayor cantidad de tiempo como frameworks (jfreeChart, Ajax) pero
nosotros nos enfocamos a integrarlas a la tecnología principal para hacer notar el potencial
que ésta puede tener gracias a su arquitectura basada en estándar lo cual de da la cualidad
de interoperabilidad, considerando las ventajas de facilidad de desarrollo y mantenimiento
en comparación a otras tecnologías similares como lo es Struts. Finalmente se menciona en
un marco histórico como es que surge la necesidad de investigación y como es que se
encuentran estas tecnologías muy ah-doc para la solución de necesidades de SICOM.
Para la aplicación de esta tecnología es muy importante conocer el contexto en la
cual se va a desarrollar, para poder considerar factores técnicos y poder prever a largo plazo
y ver si realmente es útil.
Considerando que SICOM se encuentra en expansión integrando tecnologías más
actuales como lo es WiMAX, para su fortalecimiento y escalabilidad, podemos ver que la
tecnología de Java Server Faces se ajusta a la perfección en base a estos detalles de
infraestructura, ya que los anchos de banda manejados dentro de todas las dependencias son
capaces de responder para que la aplicación web funcione perfectamente y sobretodo de
forma paralela tenga la capacidad de escalabilidad y un mantenimiento eficaz, ya que es
posible seguir integrando nuevos módulos sin necesidad de perder tiempo en reestructurar
el sistema actual.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 32
En el desarrollo de la aplicación web existen dos àres que se pueden integrar
fácilmente, una de estas es la gestión de salas de video-conferencia a través de un sistema
autónomo que sea capaz de llevar la agenda de todas las salas y facilitando a los usuarios
hacer uso de estas sin tener que hacer un proceso personal con el administrador de salas en
SICOM, ya que lo vuelve tedioso y con grandes pérdidas de tiempo por la gran cantidad de
salas y su crecimiento en el número de estas. Otro punto a tratar dentro de esta aplicación es
la gestión sistemática de dispositivos IP para dar de alta en cualquier punto de la
infraestructura de manera fácil, rápida y eficiente.
2. Opciones
de
Tecnología
en
el
mercado
para
esta
infraestructura.
Actualmente existen productos como WhatsUpGold (whatsupgold, 2009) que se dedican al
monitoreo de la red, pero no gestiona la administración del ingreso de nuevos dispositivos a
la red, en base a las configuraciones que se encuentran dadas en una base de datos, es decir,
no es capaz de dar indicaciones y advertir las implicaciones que tiene la integración de un
nuevo dispositivo.
En el área de logística existe mucho software comercial genérico para la
administración de salas de conferencia, como Outlook de Microsoft, sin embargo
necesitamos algo más preciso a nuestras necesidades, y se enfoque a los detalles específicos
que requerimos.
Como podemos ver, prácticamente existen implementaciones similares enfocadas al
uso personal y no precisamente para el uso de objetos como en este caso una sala, incluso
muchas empresas desarrollan su propio software especifico a este tipo de necesidades, un
Sistema gestor de salas y dispositivos de red basado en JSF
Página 33
claro ejemplo es el sistema de reserva del Aula Magna del sitio del CIRIA, de la
Universidad de las Américas Puebla, como se muestra en la figura 2.1.
Figura 2.1: Sistema de reserva del aula magna del CIRIA.
De forma concreta, como podemos ver, no existe un software comercial o gratuito
especifico a las necesidades de cada empresa, sin embargo se puede implementar, pero
como el desarrollo de aplicaciones web aun se encuentra en pleno apogeo, no es fácil
encontrar software basado en web completamente implementado a este tipo de problemas,
sin embargo solo será cuestión de tiempo para empezar a ver la comercialización de
aplicaciones web más complejas y de gran magnitud.
3. En el almacenamiento (MySQL)
Un sistema de gestión de base de datos es un tipo de software muy específico, que sirve de
interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan; y debido a las
necesidades que plantea la interfaz se ha elegido como gestor de base de datos a MYSQL.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 34
3.1
•
Un SGBD como MYSQL permite:
Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del
almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o
cientos de archivos, este hecho se hace transparente al usuario. Así, se definen
varios niveles de abstracción.
•
Independencia. La independencia de los datos consiste en la capacidad de modificar
el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en
las aplicaciones que se sirven de ella.
•
Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia,
será necesario vigilar que aquella información que aparece repetida se
actualice de forma coherente, es decir, que todos los datos repetidos se
actualicen de forma simultánea. Por otra parte, la base de datos representa
una realidad determinada que tiene determinadas condiciones, por ejemplo
que los menores de edad no pueden tener licencia de conducir. El sistema no
debería aceptar datos de un conductor menor de edad. En los SGBD existen
herramientas que facilitan la programación de este tipo de condiciones.
•
Seguridad. La información almacenada en una base de datos puede llegar a tener un
gran valor. Los SGBD deben garantizar que esta información se encuentra segura de
permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías
de permisos.
•
Manejo de transacciones. Una Transacción es un programa que se ejecuta como una
sola operación. Esto quiere decir que luego de una ejecución en la que se produce
una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los
Sistema gestor de salas y dispositivos de red basado en JSF
Página 35
SGBD como MYSQL proveen de mecanismos para programar las modificaciones
de los datos de una forma mucho más simple que si no se dispusiera de ellos.
•
Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD
tarda en darnos la información solicitada y en almacenar los cambios realizados.
Después de hacer mención de la parte más baja del sistema (manejo de datos), ahora en
el siguiente capítulo nos enfocaremos a la arquitectura de éste dando detalle de la
estructuración, sin embargo, en la parte del diseño se dará el diagrama de clases que
representa nuestras relaciones, entidades, tributos y triggers utilizados en el sistema,
para dar mayor transparencia en los procesos y transacciones que se realizan mientras el
usuario interactúa con el sistema.
4. Arquitectura del sistema
La aplicación se desarrolló en un lenguaje de programación conocido como java el cual es
un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems. Se
eligió este lenguaje debido a varias razones, en primer lugar permite el desarrollo de
aplicaciones con un paradigma orientado a objetos, esto posibilita diseñar un software de
forma que los distintos tipos de datos que se usen estén unidos a sus operaciones, mediante
la construcción de clases y objetos, entendiéndose como objeto un paquete que contiene el
“comportamiento” es decir el código y el “estado” o los datos. El objetivo básico que se
pretende alcanzar al aplicar el paradigma conocido como orientado a objetos, es el de
separar aquello que cambia de las cosas que permanecen inalterables. Esta separación en
objetos coherentes e independientes en teoría ofrece una base más estable para el diseño de
un sistema software razón por la cual se optó por este paradigma.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 36
Otras de las razones por la que java es el lenguaje que se ha escogido para el desarrollo de
la interfaz, es que permite algo que se conoce como independencia de plataforma, lo que
significa que los programas escritos en este lenguaje pueden ejecutarse igualmente en
cualquier tipo de hardware, ya que provee una máquina virtual
que ejecuta cualquier
código que haya sido escrito en dicho lenguaje, permitiendo que el mismo binario
ejecutable se pueda usar en todos los sistemas compatibles con el software Java por lo
menos en Windows, GNU/Linux, y Solaris.
Por último cabe mencionar que java es que es un lenguaje que cuanta con una licencia de
tipo pública general o GNU por su nombre en inglés General Public License, esta licencia
está orientada principalmente a proteger la libre distribución, modificación y uso de
software. Su propósito es declarar que el software cubierto por esta licencia es software
libre, lo que significa que esta cualquier software que tenga esta denominación respeta la
libertad de los usuarios sobre su producto adquirido y por tanto, una vez obtenido puede ser
usado, copiado, estudiado, cambiado y redistribuido libremente, lo que es importante
porque todo lo anterior se refleja en un ahorro de costos ya que no se tienen que pagar
licencias, como es el caso de otras tecnologías. (GNU Operating System, 2009). Ahora
vamos analizar modelos específicos que usaremos en el sistema donde daremos más detalle
en el siguiente capítulo.
4.1
MVC
El patrón de arquitectura MVC o Model-View-Controller es un patrón que define la
organización independiente del Model referente a los objetos de negocio, la View que es la
interfaz con el usuario u otro sistema y finalmente el Controller que funge como
Sistema gestor de salas y dispositivos de red basado en JSF
Página 37
controlador del flujo de trabajo en la aplicación. Cabe señalar que al existir la separación de
vistas, controladores y modelos es más sencillo realizar labores de mejora como:
•
El agregar nuevas vistas según las necesidades que se presenten.
•
Agregar nuevas formas de recolectar las ordenes del usuario en caso de que así sea
necesario.
•
Modificar los objetos bien sea para mejorar el desempeño o para migrar a otra
tecnología.
Las labores de mantenimiento también se simplifican y se reduce el tiempo necesario para
ellas. Las correcciones solo se deben hacer en un solo lugar y no en varios como sucedería
si tuviésemos una mezcla de presentación e implementación de la lógica del negocio.
Las vistas también son susceptibles de modificación sin necesidad de provocar que todo el
sistema se paralice. Adicionalmente el patrón MVC propende a la especialización de cada
rol del equipo, por tanto en cada liberación de una nueva versión se verán los resultados.
Figura 4.1: Flujo a través del modelo MVC
Sistema gestor de salas y dispositivos de red basado en JSF
Página 38
En la Figura 6.1 se muestra la estructura básica que se encuentra dentro de Java Server
Faces, cumpliendo con un estándar más en la programación básica de cualquier aplicación,
pero en este caso enfocada a una aplicación web.
En el siguiente capítulo pasaremos de la arquitectura a los complementos que se
pueden integrar fácilmente gracias a este modelo de programación.
5. JFreeChart
JFreeChart es una librería para gráficos escrita en Java por lo que su compatibilidad con el
sistema está asegurada, como se mencionó en el párrafo anterior esta librería facilita
mostrar gráficas, entre las características principales de esta biblioteca se pueden mencionar
las siguientes:
•
Es un API consistente y bien documentado con soporte para un amplio rango de
tipos de gráficas.
•
Cuenta con un diseño flexible fácilmente extendible, y la posibilidad de ser usado
en tecnologías de servidor como la que planea desarrollar.
•
Ofrece soporte para varios tipos de salida, incluyendo componentes Swing, archivos
de imagen como PNG y JPEG, y formatos gráficos de vectores incluyendo PDF, EPS y
SVG.
•
JFreeChart es open source y más especificamente, Software Libre, éste está
distribuido bajo la licencia LGPL, que permite el uso en aplicaciones propietarias.
Algunos ejemplos de las graficas que se pueden generar son los siguientes
Sistema gestor de salas y dispositivos de red basado en JSF
Página 39
Figura 5.1: Ejemplo de graficas que se pueden generar en JFreeChart
Figura 5.2: Ejemplos de graficas que se pueden generar en JFreeChart
Como se mencionó anteriormente, en la parte que describe el software a utilizar, la librería
jFreeChart es una las principales herramientas que se utilizarán en el desarrollo que se
planea hacer para SICOM, ya que proporcionará las facilidades de generar gráficos.
Con el objetivo de familiarizarse con esta tecnología, se planeó el desarrollo de un
prototipo que brindara la posibilidad de aplicar esta librería. Cabe mencionar que las
graficas que se generaron no fueron escogidas al azar, sino por el contrario se eligiendo en
función de las estadísticas que se piensan mostrar, como por ejemplo la ocupación de una
sala a lo largo de un año, la asignación de direcciones IP en un periodo determinado o el
uso de las direcciones ip (cámaras, voz, transmisión de datos)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 40
El prototipo implementa tres tipos de gráficas: barras, lineal y pastel; es una aplicación del
tipo Stand Alone, ya que como prototipo el objetivo era familiarizarse con tecnología
aplicada a las posibles necesidades de la aplicación. Es necesario que los datos que se
utilizaron para la prueba fueran generados de una manera aleatoria haciendo uso de la clase
Math que forma parte de las librerías de java. Haciendo una reflexión acerca de que las
gráficas que se van a generar tendrán como datos para construirse, aquellos que estén
almacenados en una base de datos, se consideró que los datos utilizados se recuperan para
la generación de dichas gráficas se obtuvieran de una tabla ubicada dentro de una base de
datos en mySQL. Es necesario aclarar que dado el hecho de que este prototipo solo tenía
como fin la familiarización con la librería jFreeChart, no se tomó en cuenta la usabilidad de
la ventana.
La arquitectura del prototipo es simple, ya que solo cuenta con 3 clases, una donde
se generan los datos aleatorios y se almacenan en la base datos, otra donde se encuentran
los métodos que generan las 3 graficas y finalmente la vista, que contiene la interfaz gráfica
que facilitará la visualización de las graficas a generar.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 41
5.1
Interfaz gráfica
Figura 5.3: En esta primera gráfica, se puede ver que están representados los 12 meses del año, así mismo se
muestra la relación existente entre el mes especificado y su ocupación expresando en otras palabras el número
de veces que se hizo uso de la sala a lo largo del año.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 42
Figura 5.4: En segundo puesto está una gráfica del tipo lineal, este estilo de gráfica puede ser utilizada para
mostrar las estimaciones de crecimiento en cuanto a asignaciones de ip o bien al igual que las salas y su uso,
para mostrar el numero de asignaciones que se han hecho en un periodo determinado.
Figura 5.5: Finalmente como se puede apreciar, esta es una gráfica de pastel, que se piensa podría ser de
mucha utilidad para mostrar la proporción de uso en la direcciones ip por ejemplo aquellas que se utilizan
para video, voz o transmisión de datos.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 43
Algunas pruebas que hicimos con valores de manera aleatoria generándolos y
cambiándolos en tiempo real para probar la capacidad de repuesta en tiempo real:
Figura 5.6: Conjunto de pruebas para la realización de graficas en tiempo real basadas en valores aleatorios, y
como podemos ver cumplieron satisfactoriamente los requisitos de respuesta que necesitamos para graficar
los distintos tipos de eventos que vamos usar en tiempo real para el monitoreo.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 44
Se puede concluir que jFreeChart es una librería que resulta mucha utilidad para la
aplicación de se está desarrolla, los distintos formatos en sus tipologías de gráficas y en la
generación de las mismas permiten que se puedan usar extensiones como (.jpg o png, entre
otras), permitiendo en la posibilidad de generar archivos independientes del sistema que
puedan ser impresos o utilizados fuera del mismo.
Por último otro punto muy importante en la eficiencia de esta librería, es la capacidad de la
generación de gráficas en tiempo real para poder ilustrar ciertos aspectos de la red en el
módulo de IP en tiempo real, como por ejemplo: el tiempo de respuesta de ciertos
dispositivos, para poder medir ciertos parámetros de eficiencia, así como poder medir en
tiempo real los anchos de banda que se encuentran en uso por ciertos dispositivos y poder
graficar de manera ilustrativa en que rangos estamos haciendo el uso de nuestros enlaces
sobre nuestra capacidad total.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 45
6. Gammu
Otra herramienta que usamos para el desarrollo del sistema, es un demonio de mensajes de
texto vía celular, bajo la licencia de código libre y de código abierto.
Este framework se encuentra compuesto por una serie de aplicaciones, scripts, y
drivers para diferentes dispositivos móviles, y dispositivos similares. El cual nos otorga una
serie de funciones
En el área con el que nos apoyaremos para la interacción de mensaje será a través del
servicio que ofrece Gammu, la cual es una herramienta de consola y una biblioteca para
trabajar con teléfonos móviles de varias marcas. Permite usar las características específicas
de los diferentes modelos, pero las funciones básicas deberían funcionar en la mayoría de
ellos. El programa puede funcionar con contactos, mensajes (SMS, EMS y MMS),
calendario, listas de tareas, sistema de archivos, radio integrada, cámara, etc. También
permite su uso en modo demonio para el envío y recepción de SMS. (Wik de Gammu,
2009)
Actualmente los teléfonos compatibles incluyen:
•
Muchos modelos de Nokia.
•
Alcatel BE5 (501/701), BF5 (715), BH4 (535/735).
•
Teléfonos compatibles con AT (Siemens, Nokia, Alcatel, IPAQ).
•
Teléfonos compatibles con OBEX y IrMC (Sony-Ericsson, Motorola).
•
Teléfonos Symbian mediante gnapplet.
Y continuamente se encuentran actualizando nuevos modelos. En nuestro caso, estamos
usando un teléfono SAMSUNG con una conexión vía bluetooth y por cable USB
Sistema gestor de salas y dispositivos de red basado en JSF
Página 46
Este framework cuenta con una serie de configuraciones que se especifican en un
archivo de lectura, en el cual se indica el puerto por el cual se va comunicar con el teléfono
celular y los datos necesarios para conectarse con la base de datos y poder interactuar. Estos
detalles se explicaran en el siguiente subcapítulo
La velocidad de respuesta de Gammu depende de la respuesta de la red telefónica,
ya que muchas veces ésta se encuentra saturada y existe un retraso en el envío y recepción
de mensajes.
Es importante mencionar que gammu originalmente se encontraba integrado y
disponible solo para Linux, por lo cual prácticamente no existe documentación que ayude
en el uso de este demonio para Windows, y muchas de las cosas las tuvimos que adaptar
para hacerlo funcionar en Windows ya que solo se tomaron los códigos fuente de Linux y
se compilaron y generaron ejecutables para Windows, sin considerar los paths que se
manejan en Windows. Es por eso que tenemos que usar ciertos archivos de configuración
para hacerlo funcionar ya que en Linux su uso es más cómodo y documentado.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 47
6.1
PhpMyAdmin & Gammu
Otra herramienta muy útil que utilizaremos será phpMyAdmin, la cual es una herramienta
escrita en PHP con la intención de manejar la administración de MySQL a través de
páginas web, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, así
como crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier
sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en
varios formatos y está disponible en 50 idiomas. Se encuentra disponible bajo la licencia
GPL.
Figura 7.1: Ventana principal de nuestra base de datos que usara nuestro demonio de mensajes (gammu) en la
cual se establecerá parámetros de respuesta, lista de números telefónicos y casos de reacción en base a los
módulos que se programarán
Como podemos ver, en la imagen 3, ya tenemos nuestro esquema hecho en base a los
estándares requeridos por el demonio de mensajes, y de esta manera nuestros módulos
podrán interactuar con esta base de datos y el demonio responderá según las peticiones
recibidas o los cambios o indicaciones hechas por los módulos de administración de salas y
de administración de dispositivos ip.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 48
Figura 7.2: Pruebas de reconocimiento del dispositivo telefónico y de envío de mensajes a través de servidor
gammu y de fondo tenemos el archivo de configuración que tiene la información del puerto, conexión a través
de bluetooth con el equipo celular. NOTA: No existe una configuración de conexión en la página de soporte,
sin embargo a base de pruebas, experimentos y conocimiento se pudo deducir la conexión hasta encontrarla
de manera exitosa.
Como podemos ver en la figura 3.1 Primero vamos a hacer el equivalente a un “ping” por
medio del comando “gammu – identify” para confirmar la conexión entre el dispositivo y el
servidor y después mandamos un mensaje con el comando “gammu –sendsms TEXT
numero destino –text mensaje”. Esto lo hicimos para probar la parte más básica de este
servidor.
En la figura 3.2 que se muestra a continuación levantamos el servicio de del demonio de
gammu que vincula con la base de datos y se mantiene activo para enviar, recibir mensajes
y responder peticiones según sea el caso.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 49
Figura 7.3: Demonio de gammu activad, como parámetro de entrada se le da la configuración de conexión y
la información necesaria para conectar con MySQL, en el archivo smsdrc.
6.2
Uso de gammu en un prototipo previo
Figura 7.4: Interfaz de prueba para el envió de mensajes a través de la interacción con la base de datos y el
demonio de gammu activo, en el momento que se pone un mensaje en el autbox de la base datos,
automáticamente lo envía y lo manda en senditems indicando que ya se envió el mensaje de manera exitosa.
6.3
Detalles técnicos
Otro dispositivo que vamos a necesitar es un teléfono celular que sea compatible
don el demonio de servidor de mensajes. Los modelos compatibles con nuestro demonio de
servidor se encuentran disponibles en la siguiente página: http://wammu.eu/phones/
Cabe mencionar que conforme a la experiencia que hemos tenido con este
framework, podemos añadir más dispositivos de los cuales no se encuentran en la lista,
configurando el archivo “gammurc” y “smsdrc” dándole los parámetros de interfaz del
dispositivo que se desea conectar. Gammu en su página invita a la gente a colaborar
Sistema gestor de salas y dispositivos de red basado en JSF
Página 50
agregando nuevas configuraciones de este estilo para que a la gente le sea más fácil el uso
de este framework.
Gammu también tiene la capacidad de manejar de manera autónoma mas de un
dispositivo celular, ya que en dado caso de que si existe algún problema con alguno de los
dispositivos conectados busca el siguiente disponible para el envió y recepción de
mensajes, es decir, en caso de que por ejemplo, se acabe el saldo de un celular, no importa
que es capaz de usar otro celular disponible que se encuentre conectado.
Todo esto se especifica en el archivo que trae como nombre por default “smsdr”, el cual le
definimos la configuración del dispositivo(s) a usar y especificamos los parámetros para
conectar con la base de datos.
Nuestra aplicación de SICOM interactúa con la base de datos y en cualquier cambio
de esta, el demonio va actuar de manera autónoma enviando mensajes, y en caso de
recepción de mensajes el demonio los va almacenar de manera automática en las bases de
datos especificadas según el sistema.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 51
Figura 7.5: Especificaciones de configuración para que funcione de manera correcta el demonio (se señala la
parte de definición del equipo celular y de la base de datos).
Sistema gestor de salas y dispositivos de red basado en JSF
Página 52
7. Java Server Faces
7.1
El porqué del uso de este JSF
Para las necesidades de SICOM, se planeo inicialmente un software local, el cual cumpliera
las necesidades que se presentaron, y se fue desarrollando de esta manera, hasta que se
encontró la necesidad de interactuar con el sistema de manera remota, a través de una
interfaz sencilla, tal vez no completamente implementada, pero usando las funciones
básicas y las más importantes. Y entramos en el proceso de investigación, de cual sería la
mejor tecnología para desarrollar esto de la manera más práctica y eficiente, incluyendo el
uso del lenguaje y que siguiera la arquitectura de MVC, además de que cumpliera los
estándares básicos y sea sencillo de modelar en la parte de la vista ya que existen una gran
cantidad de formas para modelar una página web (html, flash, applets, jsp, etc) y nos dimos
cuenta que podríamos hacerlo de manera muy baja, construyendo y modelando código jsp,
html, etc. Pero dentro de la investigación encontramos varios lenguajes muy usados hoy en
día que ayudan a la construcción de sistemas enfocados a aplicaciones web, sin meterse
tanto con aspectos no importantes y solo concentrarse en la parte de la programación
lógica, entre estos fue Java Server Faces, Ruby on Rails, PHP bajo diferentes frameworks,
etc. Y el que más de adecuaba a la solución de nuestras necesidades y conforme a nuestra
experiencia que llevábamos con java fue el de Java Server faces.
No solo nos quedamos con Java Server Faces, investigamos sobre distintos
frameworks como los mencionados anteriormente y no usamos otro no porque sea malo,
sino porque no lleno nuestras expectativas de uso en el momento requerido, aunque cabe
mencionar que también tienen sus ventajas y desventajas como cualquier framework, eso
ya está en base a la estabilidad de éste y como vimos en experiencias escritas en foros y
Sistema gestor de salas y dispositivos de red basado en JSF
Página 53
páginas de internet Java Server Faces y PHP eran los más utilizados para este tipo de
necesidades y los más estables, incluso encontramos en la página para desarrolladores de
IBM, el uso de JSF como recurso principal para su empresa, incluyendo gran contenido de
este framework, claro enfocado en el uso con ECLIPSE, el cual es propiedad de IBM. De
forma paralela vimos que ORACLE, también hace uso de esta tecnología como framework
principal para desarrollo de aplicaciones web, el cual se enfoca en el uso de JSF para su
propio IDE de ORACLE (Oracle JDeveloper 11g).
Finalmente lo terminamos usando con la ayuda de NetBeans, ya que el ambiente
que éste IDE nos proporciona es el más familiar, sin embargo puede que no sea el mejor
para esta tecnología, pero por cuestiones prácticas lo usamos. Muchos recomiendan el uso
de Eclipse para desarrollar aplicaciones basadas en tecnología JSF, pero eso ya depende de
gustos de los usuarios.
Al empezar a desarrollar la aplicación bajo esta tecnología nos dimos cuenta que
nos daba herramientas poderosas para continuar todo el proyecto, lo cual nos llevo a las
tendencias más actuales sobre el desarrollo de aplicaciones web, donde las aplicaciones que
comúnmente se desarrollan para quipos de manera local, se han convertido en aplicaciones
web como Google Docs, que transforma sus versiones de office a una versión de office
pero basada en web. Nos dimos cuenta de que nos da una serie de ventajas las cuales las
discutiremos de manera más detallada enfocadas a JSF.
Por lo que decidimos pasar nuestro programa local de java a JSF de manera
completa, ya que es parte importante del estándar java J2EE. De hecho se está preparando
una nueva versión que traerá numerosas novedades, sobre todo en lo que se refiere a su
Sistema gestor de salas y dispositivos de red basado en JSF
Página 54
integración con AJAX. También se está comenzando a utilizar en numerosas aplicaciones
empresariales, ya que permite crear pantallas de usuario bastante complejas con una cierta
facilidad, aunque desde luego no es sencillo la primera vez que te enfrentas a este
framework. En la nueva versión se espera una mejora sobre el control de las fases del ciclo
de vida de la petición que faciliten la creación de componentes JSF complejos que se usan
de manera simple.
7.2
JSF Introducción
Java Server Faces es una tecnología y framework, producto de las tendencias de desarrollo
de software aplicativa basada en web, enfocada para aplicaciones en Java, la cual simplifica
el desarrollo de interfaces de usuario en aplicaciones Java EE, usando JSP (Java server
pages).
Ésta incluye un conjunto de API´s para presentar componentes de una interfaz de
usuario y administrar su estado, manejando eventos, validar entrada, definir esquema de
navegación y dar soporte para internacionalización y accesibilidad, también contiene dos
bibliotecas de etiquetas personalizadas para JSP´s, que nos ayudan con una interfaz de
nuestra aplicación, todo esto bajo un modelo de eventos en el lado del servidor donde
podemos administrar estados y el uso de Beans.
Cabe aclarar que el uso de ésta tecnología solo se encuentra disponible hasta las
versión 6.5 de NetBeans.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 55
7.3
Objetivos de JSF
1. Proporcionar un conjunto de componentes para la interfaz de usuario, incluyendo los
elementos estándares de HTML para representar un formulario. Estos componentes se
obtendrán de un conjunto básico de clases base que se pueden utilizar para definir
componentes nuevos.
2. Definir un conjunto simple de clases base de Java para componentes de la interfaz de
usuario, estado de los componentes y eventos de entrada. Estas clases tratarán los aspectos
del ciclo de vida de la interfaz de usuario, controlando el estado de un componente durante
el ciclo de vida de su página.
2. 3. Proporcionar un modelo de JavaBeans para enviar eventos desde los controles de la
interfaz de usuario del lado del cliente a la aplicación del servidor.
4. Definir APIs para la validación de entrada, incluyendo soporte para la validación en el
lado del cliente.
5. Especificar un modelo para la internacionalización y localización de la interfaz de
usuario.
6. Automatizar la generación de salidas apropiadas para el objetivo del cliente, teniendo
en cuenta todos los datos de configuración disponibles del cliente, como versión del
navegador... (JavaServer Faces Technology, 2010)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 56
7.4
Versiones de JSF
•
JSF 1.0 (11-03-2004) - lanzamiento inicial de las especificaciones de JSF.
•
JSF 1.1 (27-05-2004) - lanzamiento que solucionaba errores. Sin cambios en las
especificaciones ni en el renderkit de HTML.
•
JSF 1.2 (11-05-2006) - lanzamiento con mejoras y corrección de errores.
•
JSF 2.0 (12-08-2009) - último lanzamiento.
7.5
•
Ventajas de JSF
El código JSF con el que creamos las vistas (etiquetas jsp) es muy parecido al
HTML estándar. Lo pueden utilizar fácilmente desarrolladores y diseñadores web.
•
JSF resuelve validaciones, conversiones, mensajes de error e internacionalización
•
JSF permite introducir javascript en la página, para acelerar la respuesta de la
interfaz en el cliente (navegador del usuario).
•
JSF es extensible, por lo que se pueden desarrollar nuevos componentes a medida,
También se puede modificar el comportamiento del framework mediante APIs que
controlan su funcionamiento.
•
JSF forma parte del estándar J2EE, mientras que otras tecnologías para creación de
vistas de las aplicaciones no lo forman, como por ejemplo Struts.
•
JSF dispone de varias implementaciones diferentes, incluyendo un conjunto de
etiquetas y APIs estándar que forman el núcleo del framework. Entre estas
implementaciones cabe destacar la implementación de referencia de Sun
Microsystems, actualmente desarrollada como un proyecto open source, y la
implementación del proyecto Apache, MyFaces, dotada de un conjunto de
Sistema gestor de salas y dispositivos de red basado en JSF
Página 57
extensiones que la hacen muy interesante para el desarrollo de aplicaciones
corporativas.
•
La arquitectura del controlador es más avanzada y flexible. Podremos hacer algunas
tareas avanzadas de manera sencilla (por ejemplo, utilizando “phase listeners”).
•
JSF permite definir la navegación no solo a través de los métodos de navegación de
los beans, sino incluso en la propia página (navegación definida en los componentes
de la página).
•
JSF permite recoger los parámetros del formulario de manera más sencilla que
Struts, e incorpora un lenguaje de expresiones que lo hace más simple.
•
JSF soporta la creación de manejadores de eventos asociados a los componentes de
la página, lo que dota a dichos componentes de gran potencia. Un ejemplo: creación
de combos enlazados, en los que la elección de un elemento en el primer combo
obliga a recalcular los elementos disponibles en el segundo combo, por ejemplo, en
combos de paises y estados o ciudades.
•
JSF está pensado para la creación de interfaces de usuario avanzadas. Basta ver los
nuevos frameworks extendidos JSF, como Apache MyFaces Trinidad y el resto de
frameworks JSF con soporte AJAX.
•
El desarrollo de JSF está en sus inicios por lo que las nuevas versiones del
framework recogen la funcionalidad de versiones anteriores siendo su
compatibilidad muy alta, de manera que el mantenimiento de aplicaciones no se ve
penalizado por el cambio de versiones. (Cristóbal González Almirón, 2010)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 58
7.6
Integrando Ajax a JSF
JSF es un framework que lanza muchas peticiones al servidor. Para optimizar dicho dialogo
están empezando a aparecer implementaciones de JSF que incorporan AJAX en sus
etiquetas. Esto permite actualizar los componentes en el navegador del usuario de manera
selectiva, sin necesidad de recargar la página completa. La combinación JSF ajax dota a las
páginas de gran dinamismo sin complicar el desarrollo, evitando el uso de javascript
codificado a mano asegurando un mayor soporte a los navegadores web.
En el uso de la aplicación de SICOM lo utilizamos para las consultas en tiempo real,
en el momento de teclear las letras se va actualizando en el instante, esta parte será
explicada a detalle más adelante.
7.7
Comparativa con prototipos previos al uso de JSF
7.7.1 En Vista
En el prototipo inicial hecho para este proyecto, fue enfocado a una aplicación local,
usando los elementos básicos de java, y enfocándonos a la parte de la lógica, en esta etapa
aun no desarrollábamos la parte de la estética, ya que en esta modalidad de desarrollo existe
mayor cantidad de trabajo para el desarrollo de ésta a comparación de JSF, a continuación
mostraremos algunas de las ventanas, las cuales ya habíamos implementado la lógica básica
para reserva e invitar en conjunto con el uso de Gammu.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 59
Figura 8.1: Muestra en cómo se creaban los eventos y se agregaban los usuarios al evento y al momento de
hacer esto el sistema mandaba mensaje vía celular y correo hechos con mensajes predefinidos.
Ahora bien, vista previa de algunas interfaces que usamos con JSF, y como
podemos ver a simple vista, hicimos lo mismo pero existe una mayor cantidad de estética,
lo cual nos ayudo bastante, sin considerar las demás ventajas que hemos venido
comentando.
Figura 8.2 Validando usuario incorrecto
Sistema gestor de salas y dispositivos de red basado en JSF
Página 60
Figura 8.3: Validaciones específicas (se planea validar en tiempo real usando ajax). Estas validaciones cuentan
con detalles específicos, por ejemplo si aun correo le hace falta un punto o la arroba o si e su número de
celular no son números y no es de 10 dígitos.
De tal manera que muchas de las cosas de estética y algunos métodos de programación, se
encarga JSF como un estándar dedicado a la solución de aplicaciones web, de tal manera
que el desarrollador solo se preocupe por la parte lógica del sistema. Cabe mencionar que
estos detalles también son configurables a los parámetros de la computadora, es decir, es
capaz de tomar el idioma del sistema operativo para poder desplegar las validaciones en
dicho idioma. Como estos detalles, nosotros, si lo hubiéramos hecho, tendríamos que
programarlo de tal manera que hiciera algo similar, sin embargo en este caso ya no tenemos
que preocuparnos por este tipo de aspectos.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 61
7.7.2 En el entorno de Desarrollo
En la parte de programación usando como IDE Netbeans, es muy similar, pero a diferencia
que aquí ya tenemos nuestros beans hechos para cada vista, y un conjunto de herramientas
enfocadas a aplicaciones web donde ya solo usamos los métodos necesarios, así también en
la parte de manejo de bases de datos, JSF nos provee un conjunto de herramientas como
son los “DataProviders” y los “RowSet” los cuales los podemos personalizar.
Figura 8.4: Mostramos el entorno de desarrollo en NetBeans, de lado inferior izquierdo tenemos nuestro
conjunto de beas, y dentro los “RowSet” con consultas predefinidas de tal manera que se sincronizan con los
“DataProvider” para poder hacer uso de estas consultas y vincularlos con los objetos necesarios.
Como podemos verificar, muchas de estas herramientas que nos otorga JSF, las tendríamos
que programar si lo hiciéramos como una aplicación java clásica, lo podemos verificar con
el entorno de desarrollo de nuestros primeros prototipos como se muestra en la siguiente
figura.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 62
Figura 8.5: Entorno de trabajo SIN JSF, enfocado a una aplicación local basado en prototipos previos,
haciendo notar la diferencia de herramientas sin JSF.
En esta parte tenemos dividida las vistas y la parte lógica en dos paquetes, pero no
contamos con Beans de sesión ni ‘Data Privaders’, ‘RowsSets’, herramientas, etc que nos
ayudan a mejorar la estética y arquitectura del sistema, de tal manera que las consultas se
hacen a muy bajo nivel usando conectores básicos, dando lugar a un mayor porcentaje de
errores en las transacciones.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 63
8. JSF Vs Struts
En la propuesta inicial de este proyecto, se plantaba el uso de Struts, pero sin embargo,
conforme se fue desarrollando y se uso JSF, se encontraron mejoras en el uso de JSF a
comparación de Struts
 JSF tiene capacidad para ser visto en dispositivos móviles mientras que Struts está
limitado a HTML Y http
 Es mantener que una aplicación escrita en Struts
 Elementos Gráficos con mayor estética, y más fáciles de usar ya que son muy
intuitivos los manejos de eventos, facilita conocer el código de la aplicación cuando
se está haciendo un submit. Como si programáramos una aplicación local en un
entorno de trabajo como NetBeans, los métodos codificados dan respuesta a botones
en específico. También podemos conocer su estado de cada elemento de tal manera
que se simplifica el trabajo con los Beans.
 Expresión Lenguaje (EL), ya que JSF da un lenguaje para acceder las propiedades
de los beans y los elementos en las colecciones.
 JSF es mas reutilizable y orientado a componentes mientras que en Struts no.
 Struts te obliga a que las clases controller y beans extiendan de una clase en
particular ej. Action
y que utilicen un método específico x como ececute(…)
mientras que en JSF no.
 Es más fácil usar el archivo de configuración faces-config.xml que struts-config.xml
ya que en JSF lo podemos interpretar de manera gráfica con algún IDE, y hacerlo
más intuitivo y claro.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 64
8.1
Demostrando el uso de JSF en comparación de Struts
En base estudios realizados para medir la eficiencia del uso de estos frameworks se hizo
una prueba a través de la construcción de una pantalla que despliegue un listado y una
forma como se muestra en la siguiente figura (Aleman, 2010)
Figura 9.1: Pantalla de despliegue de listado usado como prueba para demostrar la eficiencia de Struts en
comparación de JSF (Aleman, 2010)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 65
En la siguiente tabla verificamos la cantidad de Horas Hombre (HH*) de un programador
sin experiencia en el respectivo framework mostrado, para hacer la pantalla mostrada en la
figura 9.2
STRUTS
struts-config.xml
•
•
HH*
3
faces-config.xml
•
un <form-bean> por cada forma
un <action en action-mappings
por cada evento + un <forward
name por cada success o failure
Clases
JSF
•
5
HH*
1
un <managed-bean x cada value
object
una <navigation-rule por cada
evento (tarea a realizar con click
determinado)
Clases
3
Action
Objeto
ActionForm
Controlador
ValueObject
listado.jsp
•
•
•
•
•
20
listado.xhtml
•
•
Código controlando el tipo de
componente a desplegar según la
columna.
Código para paginar la tabla
Una clase action para cada botón,
cada una con sus respectivos action
mappings
Implantar el validator o validar en el
método validate de la ActionForm
Configurar al menos dos forwards
por cada action y los global forwards
necesarios para todos
•
•
•
10
dataTable
Código JavaScript del componente
(sin escribirlo)
Dar de alta managed bean en facesconfig.xml
Configurar navegación
Código de manejo de eventos por
componente.
menuLateral.jsp
3
menuLateral.xhtml
3
menuInferior.jsp
3
menuInferior.xhtml
1
Pestañas con struts-menu
2
Pestañas con tabbedPane
1
Curva de aprendizaje
40
Curva de aprendizaje
50
Aprender el flujo del request y el response
Aprender todo lo que se puede controlar,
muchos eventos, vistas, ajax
Sistema gestor de salas y dispositivos de red basado en JSF
Página 66
Integración con Spring
Integración con Spring
Acceso a Datos
Acceso a Datos
TOTAL Horas Hombre con STRUTS
TOTAL Horas Hombre JSF
76
69
Figura 9.2: Tabla comparativa entre JSF y Struts en base a las horas Hombre de trabajo hechas a partir
de un experimento (Aleman, 2010)
Ahora considerando el mantenimiento
Mantenimiento
STRUTS
JSF
Cambios de navegación
2
0.25
Cambios de layout, orden de
6
0.5
10
1
componentes
Cambios de look and feel
Figura 9.3: Tabla comparativa entre JSF y Struts en base a las horas hombre de trabajo para el mantenimiento de una
página en base a un experimento (Aleman, 2010)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 67
8.2
Prime Faces
PrimeFaces es una librería open source (licencia apache v2) para Java Server Faces, el
objetivo principal de esta es ofrecer un conjunto de componentes ricos para facilitar la
creación de aplicaciones web. PrimeFaces se divide principalmente en tres módulos: El
primero es el set de componentes para la interfaces de usuario, el segundo modulo llamado
Optimus utiliza Guice para poder crear managed beans utilizando anotaciones, simplificar
la navegación entre páginas e integrar PrimeFaces con JPA, transacciones y más. Y un
tercer modulo llamado FacesTrace permite monitorear aplicaciones JSF. Lo bueno es que
los tres módulos son totalmente independientes lo que permite crear cualquier tipo de
combinación de frameworks, por ejemplo: PrimeFaces UI + Spring + Hibernate. (java
Hispano, 2009)
Figura 9.4: PrimeFaces: Barras de progreso en tiempo real (Casos de uso de PrimeFaces, 2010)
Sistema gestor de salas y dispositivos de red basado en JSF
Página 68
Figura 9.5: Prime Faces: Dashboard con funciones similares a las ventanas de Windows, incluyen efectos
gráficos. (Casos de uso de PrimeFaces, 2010)
Figura 9.6: PrimeFaces: Posibilidad de uso de menús contextuales sobre imágenes
En las figuras 9.4, 9.5, 9.6 solo es una pequeña muestra de las diversas herramientas
con las que cuenta PrimeFaces, y cabe mencionar, que se encuentran actualizando este
framework de manera constante lanzando más herramientas.
La estabilidad que se experimenta al utilizar corriendo este framework, es bastante
buena, ya que no se percibe ningún tipo de uso excesivo de recursos sobre el explorador y
Sistema gestor de salas y dispositivos de red basado en JSF
Página 69
ningún error al utilizarlo. Incluso es más rápido en comparación de otras aplicaciones
existentes como FaceBook o Twitter.
El uso justificado de ésta herramienta fue cuando nos encontramos con la
problemática de proyectar las gráficas de jFreeChar sobre la aplicación, con la necesidad de
tener las graficas siempre en tiempo real, sin embargo, los componentes gráficos de Java
Server Faces no cuentan con la capacidad de desplegar gráficos de este tipo, por lo que las
investigaciones sobre como implementarlo de la mejor manera y nos encontramos con esta
herramienta que cuenta con una gran cantidad de utilidades para darle vista, presentación y
agilidad a los gráficos de la aplicación web, usando como base Java Server Faces y otros
frameworks dependiendo lo que se desee utilizar.
Algo que nos impresiono de esta poderosa herramienta, fue la capacidad de ser
ejecutada en dispositivos móviles sin tener que programar de manera específica para cada
modelo de teléfono o dispositivo. Además de que nos ofrece una librería llamada Touch
Faces para agregar propiedades táctiles para todos los dispositivos que cuenten con dicha
propiedad (PrimeFaces, 2009).
Por el momento esta tecnología es compatible con IPhone, Palm, Android Phones,
Nokia S60 y otros mas, gracias a su forma de trabajo estandarizada con el soporte de Java
Server Faces. Algunas de las aplicaciones que se encuentran de ejemplo en el sitio se
muestran en la figura 9.7
Sistema gestor de salas y dispositivos de red basado en JSF
Página 70
Figura 9.7: PrimeFaces: Ejemplos de aplicaciones usando la librería TouchFaces para dispositivos móviles
con capacidades de interfaz táctil
Figura 9.8: Diagrama de secuencia de PrimeFaces
Sistema gestor de salas y dispositivos de red basado en JSF
Página 71
Como podemos ver en la figura 9.8, Prime Faces usa como herramienta principal
Ajax para responder a eventos que se encuentren del lado de la interfaz, sin embargo las
últimas versiones, también responden a eventos disparados por el servidor, como lo es en el
caso de la grafica que se desarrollo en el sistema, la cual la veremos a continuación.
Para el sistema de SICOM, implementamos esta tecnología en la parte de
confirmaciones, desplegando una grafica que muestra el número de usuarios que confirmo
para un evento específico, y el número de personas que aún se encuentran por confirmar, la
cual se despliega en tiempo real, es decir si alguien envía una confirmación, ya sea por
correo electrónico o por mensaje vía teléfono celular, podremos apreciar el cambio en la
gráfica sin tener que actualizarla. Como podemos ver en la figura 9.4 y 9.5, estamos
simulando un primer caso en donde se ha confirmado un invitado de dos, y en el segundo
caso los dos, para verificarlo y comprobarlo se pone aún lado una vista de la base de datos,
para ver como es la interacción en tiempo real, considerando que estas confirmaciones se
vía mensaje y correo electrónico
Sistema gestor de salas y dispositivos de red basado en JSF
Página 72
Figura 9.9: Caso 1 demostrando las gráficas en tiempo real, de lado izquierdo es la base de datos actual de las
confirmaciones
Sistema gestor de salas y dispositivos de red basado en JSF
Página 73
Figura 9.10: Caso 2, considerando que los dos invitados confirmaron (detalle de lado izquierdo en la base de
datos), se actualiza la grafica de manera automática sin tener que actualizar la pagina del lado derecho
Como podemos ver, las herramientas de PrimeFaces, son bastante útiles y poderosas
al poder realizar este tipo de transacciones sin necesidad de actualizar la página completa,
dejando atrás las viejas maneras de obtener información actualizada de paginas obligando
al usuario a estar actualizando de manera manual su página (Como en los inicios de
Twitter), haciendo un ambiente de aplicación local y no como una aplicación web.
Un detalle que cable aclarar sobre la integración de este framework, es que
PrimeFaces trabaja sobre Maven, la cual es una herramienta de software para la gestión y
construcción de proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar
en funcionalidad a Apache Ant (y en menor medida a PEAR de PHP y CPAN de Perl), pero
tiene un modelo de configuración de construcción más simple, basado en un formato XML.
Estuvo integrado inicialmente dentro del proyecto Jakarta pero ahora ya es un proyecto de
Sistema gestor de salas y dispositivos de red basado en JSF
Página 74
nivel superior de la Apache Software Foundation (Maven, 2010). Pero inicialmente usamos
la arquitectura que trae por default Java Server Faces
Sistema gestor de salas y dispositivos de red basado en JSF
Página 75
9. Diseño de la Implementación
9.1
Esquema de base de datos en la gestión de sala
Figura 10.1: Esquema de base de datos para la parte de la gestión de salas de video Conferencias.
Este esquema fue planteándose la naturaleza del proyecto, considerando que las salas se
encuentran en diferentes lugares, y que dentro de éstos puede haber disntintas salas, asi
como departamentos, en los cuales existen empleados, y estos pueden ser invitados de un
evento. Como se muestra en la figura 10.1
Sistema gestor de salas y dispositivos de red basado en JSF
Página 76
9.2
Descripción de los Triggers Para la base de datos de la gestión de
salas
Teniendo en cuanta el optimo uso del espacio en memoria y de la usabilidad del sistema, se
tuvo que tener en cuenta, el hecho de que una vez que un evento ha pasado éste ha dejado
de tener importancia para el usuario, por lo que el tenerlo almacenado se vuelve
innecesario. Una solución para esta situación es la de eliminarlo una vez que la fecha dada
para el evento ha pasado, para esto se implementaron triggers que hicieran posible esta
acción.
La estructura de estos triggers, es bastante simple:
BEGIN
delete from eventos
where eventos.fecha<=CURDATE();
END
Figura 10.2: Estructura básica de trigger.
Esta estructura indica que se eliminaran de la tabla eventos , todos aquellos eventos ahí
almacenados que cumplan con la condición fecha<=CURDATE();
Para que esta condición sea verdadera, la fecha del evento tiene que ser menor a la
fecha del actual sistema, indicando en otras palabras que el evento ha pasado.
Trigger No 1:
CREATE TRIGGER `eventosDelete_DesInvitar` BEFORE DELETE ON `eventos` FOR
EACH ROW BEGIN delete from invitados where
invitados.idEvento=OLD.idEvento; END;
Figura 10.3: Trigger que elimina invitaciones del evento que se eliminó
Lo que hace es eliminar de la tabla invitados todas aquellas invitaciones al evento que
se eliminó, ya que como es obvio no pueden existir invitaciones a un evento que ha dejado
de existir, por eso, este trigger se dispara cuando se elimina un evento.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 77
9.3
Esquema de base de datos en la gestión de dispositivos de red
Figura 10.4: Esquema de base de datos para el gestor de direcciones IP
Este esquema fue basado a una versión que se tenía en Excel, y fue modificado para su
optimización en el sistema, además de que se pasaron todos los registros que se contenía en
dicho archivo a mysql.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 78
9.4
Esquema de base de datos del Demonio de mensajes (Gammu)
Figura 10.5: Primera parte del esquema de base de datos del demonio de mensajes de texto para celular
(Gammu) (gammu, 2009)
En esta parte encontramos la relación “inbox” donde se reciben todos los mensajes
entrantes, de la cual usamos para ver quienes han confirmando, y es la manera principal en
que interactiamos con el demonio en tiempo real, ya que este almacena los almacena de
manera inmediata a esta relación, en base al tiempo de retardo configurado en el archivo de
configuración descrito en el capítulo de Gammu. También se encuentra el “outbox” que son
todos los mensajes que se encuentran en espera para ser enviados, este incluye atributos que
especifican al mensaje si es mensaje corto (1 solo) o si es mensaje largo(al mismo
destinatario pero no alcanzaron los caracteres lo por lo que se tiene que dividir en varios
Sistema gestor de salas y dispositivos de red basado en JSF
Página 79
mensajes), así como numero destino y entre otros atributos más especializados que ya no
fue necesario utilizar para esta aplicación.
Figura 10.6: Primera parte del esquema de base de datos del demonio de mensajes de texto para celular
(Gammu) (gammu, 2009)
En la Figura 10.6 se muestran el resto de las relaciones que utiliza nuestro demonio en la
cual podemos observar la parte de “sentItems”, en la cual se almacena todos los mensajes
enviados incluyendo datos importantes como el mensaje de texto, el teléfono usado (si es
que existen varios teléfonos conectados al demonio), el nivel de batería del teléfono usado,
numero destino, si hubo error por parte de la red, entre otros detalles técnicos interesantes.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 80
También está la relación “phones” en la cual se almacena la lista de teléfonos disponibles
que pude utilizar el demonio para mandar mensajes y recibir mensajes, en esta se detallan
aspectos técnicos en sus atributos, como numero de serie del teléfono usado, IMEI, nivel de
señal, nivel de batería, etc, que se va actualizando cada vez que se envía y se recibe un
mensaje de texto y cuando se conecta y levanta el demonio.
Estas relaciones vienen ya predefinidos junto con el demonio, pero cabe mencionar
que se pueden modificar y adecuar según las necesidades, de tal manera que se requiere
modificar el código fuente del demonio.
Existen otras relaciones menores que usa para cuestiones técnicas, como la versión
del demonio, y otras dos que no son relevantes para nuestro uso.
9.5
Diagrama de clases de la Aplicación
Dentro del sistema, creamos un conjunto de clases genéricas, donde agrupamos las
funciones más frecuentes utilizadas en toda la aplicación, para facilitar su mantenimiento,
y crecimiento, dado que el sistema está diseñado en base a la escalabilidad pensando en la
expansión e implementación de nuevos módulos dentro de esta aplicación por lo que el
conjunto de herramientas lo dividimos en las siguientes clases, tratando de ser los mas
explicito e intuitivo.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 81
Figura 10.7: La clase manejador, la cual gestiona procesos como la proyección, persistencia y manejo de
atributos básicos.
En la clase de la figura 10.7 incluimos un conjunto de herramientas como la proyección en
etiquetas en base a atributos previos asignados, la forma en que lo proyectamos en base a
formatos de hora, fecha, minutos, y verificación de la coherencia de los datos para ser
mostrados.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 82
Figura 10.8: Clase Manejador, la cual gestiona la salida de todos los datos a través de componentes visuales.
En la clase de la figura 10.8, fue creada con el propósito de administrar todas las
proyecciones, así como la obtención de datos y operaciones básicas como limpiar el
formulario de páginas. Es decir la lógica de interacción con los componentes visuales fue
desarrollada en esta clase de manera intuitiva para que la pueda usar cualquier programador
y
sea
fácil
su
manteamiento
Sistema gestor de salas y dispositivos de red basado en JSF
y
rehusó.
Página 83
Figura 10.9: Clase Validaciones, en la cual se encuentran las validaciones básicas para la entrada de
información de las diferentes secciones del sistema.
En esta clase(Figura 10.9), básicamente gestionamos la parte de la gestión de validación de
entrada de datos, para evitar que existan datos inconsistentes dentro de la base de datos, así
como datos nulos que son requeridos para que se complete la transacción. En esta parte
consideramos detalles de longitud de datos, caracteres necesarios, y tipo de datos. Cabe
mencionar, que existe otra clase de validaciones que mostraremos en la siguiente figura, la
cual es más especializada y enfocada a la validación de horarios de las salas, en cuestión de
empalmes.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 84
Figura 10.10: Clase que valida empalmes en la gestión de salas.
Una de las clases más importantes, es la de la figura 10.10, ya que consta de un conjunto de
reglas para poder aceptar una reservación de sala, considerando que no existan
reservaciones en el horario deseado, así como empalmes dentro de una misma hora
considerando los minutos y el lugar. Esto lo hace haciendo consultas a la base de datos,
para poder verificar en tiempo real si existe algún problema con su reservación y poderlo
notificar al usuario.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 85
Figura 10.11: Clase Utilerías, reúne un conjunto operaciones básicas como búsquedas personalizadas y
gestión y conversión de datos.
En la figura 10.11 consta de un conjunto de herramientas que facilitan al desarrollador para
hacer un conjunto de consultas y despliegues a la interfaz de manera automática, conforme
los parámetros que se lo otorgue, esta clase nos ayuda a reducir en gran cantidad el código
repetitivo en cuestión de consultas, ahorrando tiempo de forma paralela en la
implementación de todo el proceso de una consulta.
9.6
Diagrama de clases para la gestión de dispositivos de red
En la gestión de dispositivos de red, dividimos las direcciones IP en sus respectivos octetos
para poder almacenarnos en las bases de datos de tal manera que no existieran
registros repetidos. Para esto en el primer Octeto lo almacenamos en una relación
como la familia cero, en el segundo octeto, tiene un apuntado al primer octeto, y de
la misma manera para el tercer octeto, el cual tiene un apuntador a la relación de la
familia anterior. Las relaciones se muestran en la figura 10.12
Sistema gestor de salas y dispositivos de red basado en JSF
Página 86
Figura 10.12: Diagrama de clases de las familias de octetos para la gestión de direcciones IP
Finalmente el ultimo octeto viene definido por esta ultima relación, en la apuntamos
al tercer octeto y así se van sucesivamente hasta llegar al primer octeto. Como se muestra
en la figura 10.13
Figura 10.13 Diagrama de clases para el último octeto de la gestión de dispositivos de red.
De esta manera estamos garantizando que no va existir redundancia en el
almacenamiento, lo cual nos permite ahorrar espacio y mantener una lógica transparente.
Por seguridad del sistema no mostramos el usuario y contraseña de la base de datos.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 87
9.7
Funcionamiento del gestor de dispositivos de red
En el menú del administrador del sistema, tiene una sección de administración de
direcciones IP como TAB, en el cual cuenta con la funcionalidad principal de dar de alta
dispositivos de red, con la función de sugerir una dirección IP disponible para la familia de
octetos seleccionada, o de lo contrario, el usuario puede escoger una con la seguridad de
que el sistema valida si se encuentra libre, de lo contrario el sistema notifica en dado caso
de que se encuentre ya ocupada. También existe la validación en la parte de la dirección
MAC. Una vista previa de este sistema se muestra en la figura 10.7.1
Figura 10.7.1: Sistema gestor de dispositivos de red
También se pueden dar altas y bajas de las familias de octetos, con sus respectivas
validaciones en los rangos que éstos pueden ocupar conforme a los estándares de redes.
Como lo podemos ver en las opciones del menú derecho de la figura 10.7.1
Sistema gestor de salas y dispositivos de red basado en JSF
Página 88
10.
Implementación del sistema gestor de salas y dispositivos
de red
10.1 Introducción
El sistema tiene un modelo básico, administrador y usuarios. Presentando una pantalla de
identificación, donde el usuario escribe su seudónimo y contraseña, el sistema
automáticamente reconoce el tipo de usuario y el sistema muestra la respectiva interfaz que
le corresponde dependiendo si es administrador o si es usuario, ya que varían en los
privilegios de éstas.
Dentro un usuario puede reservar salas, en un horario específico y en un lugar, para
esto se implementaron una serie de validaciones donde no exista ningún empalme con otro
evento considerando la fecha, horarios y lugar.
En el momento en que el usuario reserva puede ahora invitar al personal al evento
en otra sección del programa, donde se selecciona el evento y los participantes del evento,
en esta fase se valida de que usuarios ya se encuentren en otros eventos en ese mismo
horario. En este paso se notifica a los invitados del evento vía correo electrónico y mensaje
de texto por celular.
En la parte del administrador, existe la posibilidad de creación de usuarios así como su
eliminación y los eventos creados se van eliminando después de que pasaron de manera
automática.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 89
10.2 Identificación del usuario
Figura 11.1: Pantalla de identificación para el usuario
10.3 Interfaz de Administrador
En esta parte a diferencia del usuario que no es administrador nos aparece un menú extra
del lado derecho con opciones y privilegios de administrador.
Figura 11.2: interfaz de administrador.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 90
10.4 Alta de un evento
En esta parte llenamos los datos necesarios para un evento como, nombre del evento, fecha
hora de inicio y hora fin, así como lugar.
Figura 11.3: Alta de eventos
En esta parte cabe la posibilidad de ver los eventos que se encuentran ya para la fecha indicada, así no sería
fácil prever algún inconveniente para el evento que deseamos planear como se muestra en la siguiente imagen
Figura 11.4 Verificación de eventos ya establecidos para una fecha dada antes de dar de alta un evento
Existen validaciones en caso de empalme y de lógica de horario como (ej. La hora fin debe
ser mayor a la hora de inicio).
Sistema gestor de salas y dispositivos de red basado en JSF
Página 91
Figura 11.5: Probando validaciones para dar de alta un evento
Sistema gestor de salas y dispositivos de red basado en JSF
Página 92
10.5 Alta de usuario
En alta de usuario existen también una serie de validaciones básicas, y cuenta con un
estándar de seguridad el cual consiste en que el administrador asigna contraseña por default
pero el usuario final y el usuario final posteriormente debe cambiar esta contraseña.
Figura 11.6: Alta de usuario, probando las validaciones básicas
Sistema gestor de salas y dispositivos de red basado en JSF
Página 93
10.6 Invitaciones
En esta parte consta de dos etapas, la primera es buscar primero el evento a cual vamos a
invitar, y posteriormente buscamos los invitados.
En esta parte para evitar que el usuario navegue sobre la lista de eventos disponibles,
usamos una búsqueda directa, es decir no aparece ningún registro hasta que el usuario
empieza a teclar el evento, (esto se hizo con ajax) y en tiempo real se empiezan a filtrar los
registros que tengan que ver con el atributo con el cual se esté buscando. El evento se puede
buscar
por
nombre,
fecha,
ubicación,
horario
y
fecha
y
horario.
Figura 11.7: Buscando eventos por nombre para invitar al personal
Sistema gestor de salas y dispositivos de red basado en JSF
Página 94
En el paso siguiente, consiste ahora en verificar la lista de invitados, en esta parte se valida
de que un invitado ya este programado en algún otro horario y se empalme. Al hacerle clic
en guardar evento se habilita el Tab de buscar invitados y nos re direcciona a ese Tab de
manera automática deshabilitando el tab de Buscar evento. En esta parte de la misma
manera podemos hacer consultas con solo teclear el nombre o el apellido patero, materno,
buscar por teléfono celular, y por correo electrónico principal y alterno. Para esto podemos
navegar fácilmente entre los tabs que se presentan y el usuario pueda escoger su búsqueda
preferente. Y en el momento en que el usuario da clic en invitar se valida y se almacena.
Posteriormente se le va notificando.
Figura 11.8: Buscando invitados al evento previamente seleccionado
Sistema gestor de salas y dispositivos de red basado en JSF
Página 95
10.7 Alta de lugar
El administrador puede dar de alta tanto lugares como salas, a cada sala le corresponde un
lugar y esta parte se encuentra también validada.
Figura 11.9: Probando las validaciones básicas al dar de alta un evento.
10.8 Alta de sala
Para el alta de una sala se necesita un lugar de manera obligatoria el cual se debe
especificar en la sección del punto 10.6. También cuenta con las validaciones básicas.
Figura 11.10: Dando de alta una sala de conferencias.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 96
11.
Evaluación y Conclusiones
11.1 Con respecto a las experiencias aprendidas
La experiencia de el poder haber aprendido algo más, de aquello que se imparte en la
universidad fue la parte más importante de este proyecto, al poder usar un framework
comercial basado en las tendencias de desarrollo de aplicaciones web más actuales y que
muchas veces nos sentimos solos al presentarnos problemas de desarrollo que era difícil de
encontrar la solución ya que muchos aun no pisaban esos campos en el uso del framework
(como el uso de gammu en Windows).
También fue importante ver las ventajas y desventajas que JSF y aventurarse a usar
este tipo de frameworks que nos da la experiencia necesaria y la habilidad de manejo de
este tipo de tecnologías para poder fácilmente migrar y evolucionar a las tendencias, ya que
existen elementos en común entre los diferentes lenguajes.
Algo muy importante que nos dimos cuenta, es no cerrarse con un solo lenguaje, si
no explorar las diferentes herramientas en el uso de frameworks que se encuentran en
desarrollo ya que nos abre un mundo de posibilidades y nos da la capacidad de responde a
las necesidades con un nivel competitivo impresionante.
11.2 Con respecto al uso de los frameworks
En el momento en que desarrollábamos el software de SICOM para la solución de sus
necesidades nos podemos dar cuenta que podemos hacer una gran cantidad de cosas, por
ejemplo tan solo del uso del demonio de gammu, podemos hacer sistemas inteligentes con
interacción de mensajes a celular como sistemas de automatización para casas, incluyendo
alertas, o un sistema de negocios similares a los que pasan en televisión (manda mensaje a
Sistema gestor de salas y dispositivos de red basado en JSF
Página 97
tal número y te regreso el tono de tal artista), y entre otras miles de aplicaciones que se
pueden desarrollar no precisamente con java sino con cualquier sistema que pueda
interactuar con MySQL.
Con respecto a al uso de Java Server Faces, nos pareció una herramienta bastante
útil con grandes capacidades de desarrollo, y como toda tecnología nueva, aun existe un
mundo por recorrer y mejora, ya que aun cuenta con una serie de “bus” que han ido
corrigiendo en sus versiones más recientes, dando la confianza a muchas empresas a nivel
carrier para delegar sus necesidades en este tipo de aplicaciones que ayudan a enfocarse
solo a la parte lógica de nuestro sistema, dejando todo lo demás como un hecho en el que
podemos confiar gracias a que es un estándar, sin embargo podemos decir que no es la
tecnología más poderosa hoy en día, pero si una de las más completas a las que le
apostaríamos un gran futuro.
También cabe mencionar, que la utilización de un framework nuevo y recién salido,
es una experiencia de aprendizaje donde aplicas prácticamente todos los conocimientos de
arquitectura y diseño de la aplicación para poder dar solución cientos de problematicas que
se presentan en este tipo de herramientas, como lo es en el caso de PrimeFaces, ya que
trabajamos prácticamente con frameworks en los cuales utilizamos componentes que solo
tenían unos meses de haber salido, y que el caso especifico de PrimeFaces se tuvo que
hacer una adaptación a nuestra arquitectura para no convertir todo nuestro proyecto a
Maven como lo implementa en todos los ejemplos de Prime Faces en su portal, lo cual fue
un reto bastante interesante ya que gracias a la experiencia que nos dio Java Server Faces,
fue posible hacer esto, y que durante el camino nos encontramos a mucha gente en foros,
pidiendo ayuda sobre la misma problemática, lo cual nos enorgullece haber podido resuelto
Sistema gestor de salas y dispositivos de red basado en JSF
Página 98
esta cuestión de arquitecturas, ya que iba a representar un gran esfuerzo pasar todo nuestro
proyecto actual a un proyecto nuevo basado en Maven. Cabe mencionar que existen plugins
para IDE’s como eclipse que ayudan a convertir proyectos java a proyectos en Maven, sin
embargo, como hicimos uso de NetBeans, se tuvo que implementar PrimeFaces de manera
más primitiva, integrando los jar’s y modificando archivos XML para que ayudaran a usar
este framework sin rehacer todo en Maven.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 99
12.
Trabajos a Futuro
El desarrollo de este proyecto, aún cuenta con una gran cantidad de desarrollo,
implementado mas frameworks, y especializándose de forma paralela en la parte de
desarrollo para dispositivos móviles. Ya que como vimos en el desarrollo de esta plicacion,
podemos integrar nuevas funcionalidades y capcidades de manera personalizada, además de
que es un framework que se encuentra aún en pleno desarrollo, existe la posibilidad de
escalabilidad sin preocuparse por tener que alterar o modificar el sistema en caso dado de
alguna actualización de Java Server Faces. Por lo que nos da la plena confianza de seguir
trabajando e implementado tecnologías complementarias como JavaFX, jfreeChart, Ajax,
POJOs, etc. Que son usadas hoy en día para el desarrollo de sitios basados en aplicaciones
web, ampliando grandes capacidades de desarrollo gracias a la interoperabilidad, dando
poderosas herramientas para la gestión de nuestra aplicación, haciendo más fácil el
desarrollo e incrementando la productividad, calidad y eficiencia en todos los aspectos que
involucra el desarrollo de una aplicación en Java Server Faces por lo que es considerable un
futuro de grandes desarrollos en este framework, y en especial, en este proyecto, existe la
posibilidad de integrar mas tecnologías como las mencionadas anteriormente, haciendo un
sistema poderoso, práctico y sobretodo novedoso para el usuario final dando evolución a la
nueva era de las aplicaciones sobre la web 2.0.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 100
Bibliografía
(2010). Recuperado el Marzo de 2010, de Cristóbal González Almirón:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=IntroduccionJSFJava
Aleman, I. N. (26 de Enero de 2010). STRUTS o JSF No Existe Un único. Recuperado el 22
de Marzo de 2010, de http://www.scribd.com/doc/27325581/STRUTS-o-JSF-No-ExisteUn-unico
Casos de uso de PrimeFaces. (2010). Recuperado el Mayo de 2010, de
http://www.primefaces.org:8080/prime-showcase/ui/dashboard.jsf
cisco. (11 de Octubre de 2009). Recuperado el 11 de Octubre de 2009, de
http://www.cisco.com/en/US/netsol/ns811/networking_solutions_solution_category.html
Daniweb. (2010). Recuperado el Enero de 2010, de
http://www.daniweb.com/forums/thread111719.html
DB2 Express-C. (11 de Octubre de 2009). Recuperado el 20 de Septiembre de 2009, de
http://www-01.ibm.com/software/data/db2/express/
Fags. (13 de febrero de 2009). Recuperado el enero de 2010, de Javabeat:
http://74.125.113.132/search?q=cache:2mJHuPWpy40J:www.javabeat.net/articles/print.p
hp%3Farticle_id%3D105+netbeans+login+jsf+Handle+HttpSession.invalidate%28%29+
redirect&cd=3&hl=en&ct=clnk
gammu. (2009). Obtenido de http://cihar.com/gammu/gammu-smsd-tables.7.html
Gammu. (2010). Recuperado el Diciembre de 2009, de http://wammu.eu/gammu/
GNU Operating System. (Octubre de 2009). Recuperado el 11 de Octubre de 2009, de
http://www.gnu.org/licenses/licenses.es.html
IceFaces. (2010). Recuperado el febrero de 2010, de
http://www.icefaces.org/JForum/posts/list/3111.page
Intelimax. (2009). RED DE TELECOMUNICACIONES SICOM 2009. Puebla, Pue,
México.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 101
Java Community Proces. (2010). Recuperado el Enero de 2010, de
http://jcp.org/en/jsr/detail?id=252
java Hispano. (19 de 5 de 2009). Recuperado el mayo de 2010, de
http://www.javahispano.org/contenidos/es/conozcamos_primefaces/
JavaServer Faces Technology. (2010). Recuperado el Enero de 2010, de Java Platform,
Enterprise Edition (Java EE) : http://java.sun.com/javaee/javaserverfaces/
Livevalidation. (2009). Recuperado el 2010, de
http://livevalidation.com/examples#exampleHomepage
Martínez, H. H. (14 de agosto de 2009). NeosSfotware. Obtenido de
http://neossoftware.260mb.com/2009/08/primeros-pasos-en-jsf-20/
Maven. (2010). Recuperado el Mayo de 2010, de http://maven.apache.org/maven-1.x/
Netbeans. (2010). Recuperado el febrero de 2010, de http://netbeans.org/kb/docs/web/jsfjpa-crud-code2.html
Netbeans. (2010). Recuperado el febrero de 2010, de
http://netbeans.org/kb/65/web/fileupload.html
OCPSOFT. (23 de JULY de 2009). Obtenido de SPRING SECURITY:
http://ocpsoft.com/java/jsf-java/spring-security-what-happens-after-you-log-in/
ORACLE. (s.f.). Recuperado el febrero de 2010, de http://downloaduk.oracle.com/docs/cd/B32110_01/webcenter.1013/b31072/tt_security.htm
PrimeFaces. (2009). Recuperado el Mayo de 2010, de
http://www.primefaces.org:8080/prime-showcase/touch/index.jsf
Sánchez, B. B. (s.f.). Adictos Al trabajo. Obtenido de
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=entornosJSF
Sistema gestor de salas y dispositivos de red basado en JSF
Página 102
Sitio de descargas de software. (11 de Octubre de 2009). Recuperado el 11 de Octubre de
2009, de
http://www.freedownloadmanager.org/es/downloads/Directorio_Activo_Mejorado_58747_
p/
whatsupgold. (20 de noviembre de 2009). Recuperado el 20 de noviembre de 2009, de
http://www.whatsupgold.com/
Wik de Gammu. (11 de noviembre de 2009). Recuperado el 11 de noviembre de 2009, de
http://www.gammu.org/wiki/index.php?title=Main_Page
WiMAX Industry. (11 de Octubre de 2009). Recuperado el 11 de Octubre de 2000, de
http://www.wimax-industry.com/cl/wimaxequipmentmanufacturers.htm
(2010). Recuperado el Marzo de 2010, de Cristóbal González Almirón:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=IntroduccionJSFJava
Aleman, I. N. (26 de Enero de 2010). STRUTS o JSF No Existe Un único. Recuperado el 22
de Marzo de 2010, de http://www.scribd.com/doc/27325581/STRUTS-o-JSF-No-Existe-Ununico
Casos de uso de PrimeFaces. (2010). Recuperado el Mayo de 2010, de
http://www.primefaces.org:8080/prime-showcase/ui/dashboard.jsf
cisco. (11 de Octubre de 2009). Recuperado el 11 de Octubre de 2009, de
http://www.cisco.com/en/US/netsol/ns811/networking_solutions_solution_category.html
Daniweb. (2010). Recuperado el Enero de 2010, de
http://www.daniweb.com/forums/thread111719.html
DB2 Express-C. (11 de Octubre de 2009). Recuperado el 20 de Septiembre de 2009, de
http://www-01.ibm.com/software/data/db2/express/
Fags. (13 de febrero de 2009). Recuperado el enero de 2010, de Javabeat:
http://74.125.113.132/search?q=cache:2mJHuPWpy40J:www.javabeat.net/articles/print.p
hp%3Farticle_id%3D105+netbeans+login+jsf+Handle+HttpSession.invalidate%28%29+
Sistema gestor de salas y dispositivos de red basado en JSF
Página 103
redirect&cd=3&hl=en&ct=clnk
GNU Operating System. (Octubre de 2009). Recuperado el 11 de Octubre de 2009, de
http://www.gnu.org/licenses/licenses.es.html
IceFaces. (2010). Recuperado el febrero de 2010, de
http://www.icefaces.org/JForum/posts/list/3111.page
Intelimax. (2009). RED DE TELECOMUNICACIONES SICOM 2009. Puebla, Pue,
México.
Java Community Proces. (2010). Recuperado el Enero de 2010, de
http://jcp.org/en/jsr/detail?id=252
java Hispano. (19 de 5 de 2009). Recuperado el mayo de 2010, de
http://www.javahispano.org/contenidos/es/conozcamos_primefaces/
JavaServer Faces Technology. (2010). Recuperado el Enero de 2010, de Java Platform,
Enterprise Edition (Java EE) : http://java.sun.com/javaee/javaserverfaces/
Livevalidation. (2009). Recuperado el 2010, de
http://livevalidation.com/examples#exampleHomepage
Martínez, H. H. (14 de agosto de 2009). NeosSfotware. Obtenido de
http://neossoftware.260mb.com/2009/08/primeros-pasos-en-jsf-20/
Maven. (2010). Recuperado el Mayo de 2010, de http://maven.apache.org/maven-1.x/
Netbeans. (2010). Recuperado el febrero de 2010, de http://netbeans.org/kb/docs/web/jsfjpa-crud-code2.html
Netbeans. (2010). Recuperado el febrero de 2010, de
http://netbeans.org/kb/65/web/fileupload.html
OCPSOFT. (23 de JULY de 2009). Obtenido de SPRING SECURITY:
http://ocpsoft.com/java/jsf-java/spring-security-what-happens-after-you-log-in/
Sistema gestor de salas y dispositivos de red basado en JSF
Página 104
ORACLE. (s.f.). Recuperado el febrero de 2010, de http://downloaduk.oracle.com/docs/cd/B32110_01/webcenter.1013/b31072/tt_security.htm
PrimeFaces. (2009). Recuperado el Mayo de 2010, de
http://www.primefaces.org:8080/prime-showcase/touch/index.jsf
Sánchez, B. B. (s.f.). Adictos Al trabajo. Obtenido de
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=entornosJSF
Sitio de descargas de software. (11 de Octubre de 2009). Recuperado el 11 de Octubre de
2009, de
http://www.freedownloadmanager.org/es/downloads/Directorio_Activo_Mejorado_58747_
p/
whatsupgold. (20 de noviembre de 2009). Recuperado el 20 de noviembre de 2009, de
http://www.whatsupgold.com/
Wik de Gammu. (11 de noviembre de 2009). Recuperado el 11 de noviembre de 2009, de
http://www.gammu.org/wiki/index.php?title=Main_Page
WiMAX Industry. (11 de Octubre de 2009). Recuperado el 11 de Octubre de 2000, de
http://www.wimax-industry.com/cl/wimaxequipmentmanufacturers.htm
IceFaces. (2010). Recuperado el febrero de 2010, de
http://www.icefaces.org/JForum/posts/list/3111.page
Sistema gestor de salas y dispositivos de red basado en JSF
Página 105
Apéndice A: Otras corridas del software
http://web.uvic.ca/~rafaelr/Thesis/Video.swf (Parte 1)
http://web.uvic.ca/~rafaelr/Thesis/Video_1.swf (Parte 2)
En el video se muestra el alta de usuarios, haciendo énfasis en las validaciones lógicas,
como campos requeridos, así como en el atributo de número telefónico debe ser de 10
dígitos, el correo electrónico debe tener una arroba y un punto, etc. En el momento de hacer
modificaciones también se valida estos mismos capos para evitar inconsistencias en la base
de datos cuidando que en cualquier parte del sistema donde se tenga algún tipo de edición
se evite la posibilidad de que exista alguna forma de introducir datos no validos.
En la parte de de altas de salas, en primera instancia, se muestra cómo es que en la
fecha y lugar seleccionado se despliegan un conjunto de horarios ya establecidos para dar
una hora valida y no estar “atinando” a una posible hora libre o estar navegando a otra
página que te muestre el horario (como es en el caso del sistema de reserva para el Aula
magna del CIRIA), haciéndolo más práctico y cómodo para el usuario, y a continuación de
esta acción, se demuestra cómo es que el sistema es capaz de validar los horarios en caso de
empalme avisando al usuario con que evento se está empalmando para que lo pueda
identificar de manera fácil en la tabla.
Estas validaciones se hacen de la misma forma en la parte de modificaciones de
usuarios y en caso de eliminar un evento se eliminan las invitaciones a los usuarios que
estaban asociadas a ese evento para conservar la consistencia en la tabla, esto fue hecho a
través de los triggers mencionados en el capítulo del diseño.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 106
En todos los casos se hacen consultas por todos los campos posibles y utilizados,
haciendo las respectivas validaciones.
Apéndice B:
Video de grafica con PrimeFaces en el sistema de SICOM,
funcionando en tiempo real
http://web.uvic.ca/~rafaelr/Chart.swf
En el link anterior se muestra una simulación de confirmación de invitados al evento,
agregando a la base de datos las confirmaciones de manera manual con el fin de ver esa
interacción, cabe mencionar que esta acción el sistema la hace de manera automática por
medio de correo electrónico y de mensajes a través de mensajes de teléfono celular.
Sistema gestor de salas y dispositivos de red basado en JSF
Página 107
Descargar