Professional Documents
Culture Documents
Escuela de Ingeniera
Departamento de Computacin, Electrnica y Mecatrnica
Dirigida por
Dr. Oleg Starostenko Basarab
Dr. Roberto Rosas
Sinodal:
Dr. Daniel Vallejo Rodrguez
Pgina 2
Resumen
Las tendencias tecnolgicas de hoy en da 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 ms el uso de aplicaciones
ligeras a travs 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 tecnologa de Google Docs para hacer mas practico, rpido, sin
requerimientos rigurosos de hardware, ni costos de licencia por equipo. Esto tambin ha
sido una de las tantas ventajas que ha representado la vitalizacin, que es una rama de estas
tendencias tecnolgicas.
De forma general lo anterior fue un argumento del porqu dar solucin a
esta necesidad a travs de una aplicacin web, ya que inicialmente empezamos con una
aplicacin local, la convertimos a una aplicacin 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 travs de
mensajes de texto va celular. Para informar de eventos y confirmar asistencias, de tal
manera que no solo tenemos interaccin va web, sino de manera mvil a travs de
mensajes sencillos y prcticos. Haciendo que la aplicacin est disponible a cualquier hora
en cualquier momento.
Pgina 3
Para el desarrollo de la aplicacin se uso java server faces, que nos ofrece una serie
de ventajas (ser un estndar, componentes configurables, ocultar en parte que es una
aplicacin web, promover el trabajo con backing beans, entre otras que desarrollaremos
ms adelante).
El objetivo de esta aplicacin se basa en resolver la necesidad de administracin de
un conjunto de salas que se encuentran ubicadas en distintos lugares geogrficos, que
corresponden a las diferentes dependencias del gobierno del estado de Puebla. Todas estas
bajo una misma infraestructura interconectada a travs de tecnologas 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 aplicacin como un
segmento del proyecto.
Pgina 4
ndice de contenidos
1.
Introduccin ................................................................................................................ 15
1.1
Antecedentes .......................................................................................................... 15
1.2
Histrico................................................................................................................. 18
1.3
Contexto de la Aplicacin...................................................................................... 19
1.3.1
1.4
1.5
1.6
1.7
1.8
Alcances ................................................................................................................. 31
1.9
2.
3.
4.
5.
MVC ...................................................................................................................... 37
JFreeChart .................................................................................................................. 39
5.1
6.
Gammu ........................................................................................................................ 46
Pgina 5
7.
8.
9.
6.1
6.2
6.3
7.2
7.3
7.4
7.5
7.6
7.7
7.7.1
En Vista .......................................................................................................... 59
7.7.2
8.2
9.2
9.3
Pgina 6
9.4
9.5
9.6
Introduccin ....................................................................................................... 89
10.2
10.3
10.4
Alta de un evento................................................................................................ 91
10.5
10.6
Invitaciones ........................................................................................................ 94
10.7
10.8
11.2
Pgina 7
Apndice B:
Pgina 8
ndice de figuras
FIGURA 1.1: DESCRIPCIN 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 IMPLEMENTACIN DE LAS RADIO BASES DE TECNOLOGA WIMAX EN
FUNCIONAMIENTO (INTELIMAX, 2009) .................................................................................................. 21
FIGURA 1.4: PLANEACIN A FUTURO DE LA INTEGRACIN 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 TRAVS 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 GRFICA, SE PUEDE VER QUE ESTN REPRESENTADOS LOS 12 MESES DEL
AO, AS MISMO SE MUESTRA LA RELACIN EXISTENTE ENTRE EL MES ESPECIFICADO Y SU
OCUPACIN EXPRESANDO EN OTRAS PALABRAS EL NMERO DE VECES QUE SE HIZO USO DE LA SALA
A LO LARGO DEL AO. ............................................................................................................................ 42
FIGURA 5.4: EN SEGUNDO PUESTO EST UNA GRFICA DEL TIPO LINEAL, ESTE ESTILO DE GRFICA 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 GRFICA DE PASTEL, QUE SE PIENSA
PODRA SER DE MUCHA UTILIDAD PARA MOSTRAR LA PROPORCIN DE USO EN LA DIRECCIONES IP
POR EJEMPLO AQUELLAS QUE SE UTILIZAN PARA VIDEO, VOZ O TRANSMISIN DE DATOS. ................ 43
FIGURA 5.6: CONJUNTO DE PRUEBAS PARA LA REALIZACIN DE GRAFICAS EN TIEMPO REAL BASADAS EN
VALORES ALEATORIOS, Y COMO PODEMOS VER CUMPLIERON SATISFACTORIAMENTE LOS REQUISITOS
Pgina 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 PARMETROS DE RESPUESTA, LISTA DE NMEROS
TELEFNICOS Y CASOS DE REACCIN EN BASE A LOS MDULOS QUE SE PROGRAMARN .................. 48
FIGURA 7.2: PRUEBAS DE RECONOCIMIENTO DEL DISPOSITIVO TELEFNICO Y DE ENVO DE MENSAJES A
TRAVS DE SERVIDOR GAMMU Y DE FONDO TENEMOS EL ARCHIVO DE CONFIGURACIN QUE TIENE
LA INFORMACIN DEL PUERTO, CONEXIN A TRAVS DE BLUETOOTH CON EL EQUIPO CELULAR.
NOTA: NO EXISTE UNA CONFIGURACIN DE CONEXIN EN LA PGINA DE SOPORTE, SIN EMBARGO A
BASE DE PRUEBAS, EXPERIMENTOS Y CONOCIMIENTO SE PUDO DEDUCIR LA CONEXIN HASTA
ENCONTRARLA DE MANERA EXITOSA..................................................................................................... 49
FIGURA 7.3: DEMONIO DE GAMMU ACTIVAD, COMO PARMETRO DE ENTRADA SE LE DA LA
CONFIGURACIN DE CONEXIN Y LA INFORMACIN NECESARIA PARA CONECTAR CON MYSQL, EN EL
ARCHIVO SMSDRC. .................................................................................................................................. 50
FIGURA 7.4: INTERFAZ DE PRUEBA PARA EL ENVI DE MENSAJES A TRAVS DE LA INTERACCIN 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, AUTOMTICAMENTE LO ENVA Y LO MANDA EN SENDITEMS
INDICANDO QUE YA SE ENVI EL MENSAJE DE MANERA EXITOSA. ....................................................... 50
FIGURA 7.5: ESPECIFICACIONES DE CONFIGURACIN PARA QUE FUNCIONE DE MANERA CORRECTA EL
DEMONIO (SE SEALA LA PARTE DE DEFINICIN DEL EQUIPO CELULAR Y DE LA BASE DE DATOS). ..... 52
FIGURA 8.1: MUESTRA EN CMO SE CREABAN LOS EVENTOS Y SE AGREGABAN LOS USUARIOS AL EVENTO Y
AL MOMENTO DE HACER ESTO EL SISTEMA MANDABA MENSAJE VA CELULAR Y CORREO HECHOS CON
MENSAJES PREDEFINIDOS....................................................................................................................... 60
FIGURA 8.2 VALIDANDO USUARIO INCORRECTO ............................................................................................. 60
FIGURA 8.3: VALIDACIONES ESPECFICAS (SE PLANEA VALIDAR EN TIEMPO REAL USANDO AJAX). ESTAS
VALIDACIONES CUENTAN CON DETALLES ESPECFICOS, POR EJEMPLO SI AUN CORREO LE HACE FALTA
Pgina 10
Pgina 11
FIGURA 10.1: ESQUEMA DE BASE DE DATOS PARA LA PARTE DE LA GESTIN DE SALAS DE VIDEO
CONFERENCIAS. ...................................................................................................................................... 76
END FIGURA 10.2: ESTRUCTURA BSICA 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 PROYECCIN, PERSISTENCIA
Y MANEJO DE ATRIBUTOS BSICOS. ....................................................................................................... 82
FIGURA 10.8: CLASE MANEJADOR, LA CUAL GESTIONA LA SALIDA DE TODOS LOS DATOS A TRAVS DE
COMPONENTES VISUALES. ..................................................................................................................... 83
FIGURA 10.9: CLASE VALIDACIONES, EN LA CUAL SE ENCUENTRAN LAS VALIDACIONES BSICAS PARA LA
ENTRADA DE INFORMACIN DE LAS DIFERENTES SECCIONES DEL SISTEMA. ........................................ 84
FIGURA 10.10: CLASE QUE VALIDA EMPALMES EN LA GESTIN DE SALAS. ..................................................... 85
FIGURA 10.11: CLASE UTILERAS, RENE UN CONJUNTO OPERACIONES BSICAS COMO BSQUEDAS
PERSONALIZADAS Y GESTIN Y CONVERSIN DE DATOS....................................................................... 86
FIGURA 10.12: DIAGRAMA DE CLASES DE LAS FAMILIAS DE OCTETOS PARA LA GESTIN DE DIRECCIONES IP
................................................................................................................................................................ 87
FIGURA 10.13 DIAGRAMA DE CLASES PARA EL LTIMO OCTETO DE LA GESTIN DE DISPOSITIVOS DE RED. 87
FIGURA 10.7.1: SISTEMA GESTOR DE DISPOSITIVOS DE RED ........................................................................... 88
FIGURA 11.1: PANTALLA DE IDENTIFICACIN 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 SERA FCIL PREVER ALGN INCONVENIENTE
PARA EL EVENTO QUE DESEAMOS PLANEAR COMO SE MUESTRA EN LA SIGUIENTE IMAGEN ............. 91
Pgina 12
FIGURA 11.4 VERIFICACIN 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 BSICAS ................................................... 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 BSICAS AL DAR DE ALTA UN EVENTO................................... 96
FIGURA 11.10: DANDO DE ALTA UNA SALA DE CONFERENCIAS. ..................................................................... 96
Pgina 13
Lista de acrnimos
Pgina 14
1. Introduccin
1.1
Antecedentes
Pgina 15
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 tecnologas nuevas como la de
WiMAX para ofrecer mejor calidad en los achos de banda y movilidad.
SICOM se encuentra invirtiendo en equipos para tecnologa 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 dems estados e integrar ms dependencias como casetas, SCT, penitenciarias,
entre otras a nivel nacional de forma que se puedan intercambiar servicios como los de
gestin de salas y dispositivos de red en un sistema de infraestructura que se est
expandiendo continuamente.
La evolucin del desarrollo de software ha ido marcando tendencias a lo largo de la
historia, incluyendo metodologas, arquitectura, frameworks, estndares, tecnologas y
Sistema gestor de salas y dispositivos de red basado en JSF
Pgina 16
estilos de uso accesibilidad. Lo que tratamos de hacer notar en este proyecto, ver es cmo
es que empezamos basndonos en una arquitectura simple bsica (MVC) en una aplicacin
local, y la giramos a un estndar mas actualizado en la cual se encuentran inmersos sub
arquitecturas y estndares tales como soporte de internacionalizacin y accesibilidad,
manejo de eventos, validar en el servidor, conversin de datos, definicin de navegacin en
un modelo de programacin bien definido donde las libreras de etiquetas facilitan la
construccin y mantenimiento de las aplicaciones web con interfaces de usuario. Todo esto
es una especificacin desarrollada por la Java Community Process. (Java Community
Proces, 2010), que a comparacin de tendencias anteriores de programacin de software,
usando esta tecnologa nos otorga una clara separacin entre vista y modelo, desarrollo
basado en componente y no en peticiones, las acciones del usuario se ligan muy fcilmente
al cdigo en el servidor, creacin de familias de componentes visuales para acelerar el
desarrollo, compatibilidad con otros lenguajes de programacin para aplicaciones web (ej.
Ajax) entre otras ms que desarrollaremos en el captulo de JSF. Estas caractersticas de
programacin son las que impulsaron el desarrollo de este proyecto para llevarlo a un nivel
competitivo en base a las tecnologas y tendencias actuales. Despus de ver cmo es que
estas tecnologas de han ido desarrollando, de forma paralela necesitamos analizar cmo es
que surge la necesidad de utilizarlas a partir de un problema real en una empresa, que es lo
que analizaremos en el siguiente captulo.
Pgina 17
1.2
Histrico
Pgina 18
1.3
Contexto de la Aplicacin
Figura 1.1: Descripcin general de los principales enlaces que cuenta la infraestructura de red de
Pgina 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
ACATLN DE OSORIO. Los cuales se ilustran en la figura 1.1, integrando otras
salas de conferencias y lgicamente mayor cantidad de dispositivos de red.
(Intelimax, 2009)
Figura 1.2: Expansiones Recientes de la red de telecomunicaciones SICOM 2009 (Intelimax, 2009)
Pgina 20
Figura 1.3: Se muestra la implementacin de las radio bases de tecnologa WiMAX en funcionamiento
(Intelimax, 2009)
Gracias a las ventajas que ofrece la tecnologa 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
Pgina 21
1.4
Pgina 22
respectiva sala. Para cada evento existen invitados, los cuales deben ser notificados por los
diferentes medios disponibles (en este caso implementamos va correo electrnico y va
mensaje de texto por telfono mvil). De manera paralela, el usuario podr dar de alta
eventos, y el administrador adems de esto podr dar de alta salas (ya que como lo hemos
discutido en captulos 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 interaccin con los
usuarios y en llevar una agenda para cada sala, esto lo har el sistema de manera automtica
notificando a los usuarios en caso de empalme o de alguna situacin 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 tecnologas de la informacin tambin 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 estn actualizadas ni disponibles cuando se requiere, por lo que
sera bastante til integrar en la parte del administrador de este sistema una seccin donde
pueda dar hacer las consultas bsicas 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
informacin.
Pgina 23
1.5
Objetivo de la tesis
Pgina 24
1.6
Como se mencion en el punto anterior, el desarrollo que se llevar a cabo tendr como
ltimo objetivo hacer ms eficiente la gestin 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 harn posible incrementar la eficiencia en la
administracin de dichas salas.
La aplicacin que se planea desarrollar tiene contemplada la implementacin de
varias funcionalidades que permitan al usuario introducir, modificar y eliminar datos, as
como tambin acceder a stos, razn por la cual se puede decir que el grado de interaccin
con el sistema es considerable.
Ahora bien, cuando un sistema informtico 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 interaccin puede llegar ser tan determinante como la aplicacin misma, ya que si bien
es cierto que son vitales las soluciones que una aplicacin pueda brindar, tambin es cierto
Sistema gestor de salas y dispositivos de red basado en JSF
Pgina 25
que si el usuario final no puede acceder fcilmente a ellas, stas no sirven de mucho, por
eso es que la usabilidad de la aplicacin es un factor que se est tomando en cuenta para la
construccin de esta interfaz. Para poder hacer posible todo lo anterior, se ha contemplado
la implementacin de pruebas de usabilidad en usuarios para poder comparar los resultados
obtenidos con los esperados y en base a esta retroalimentacin desarrollar una mejor
interaccin entre la aplicacin 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 mencin de que la interfaz permitir la introduccin, modificacin,
eliminacin y presentacin de datos, pero no se ha descrito los mdulos que permitan esta
interaccin.
El primero de estos mdulos 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 caractersticas.
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 solucin de
los problemas de logstica que ha venido experimentado SICOM; no obstante solo es uno
de los elementos que compone el objetivo general.
Aunado a este modulo sern necesarios agregar otros. En primer lugar ser se piensa
que es importante implementar una opcin de bsqueda 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
Pgina 26
para poder acceder a la informacin de stos; de esta manera ser mucho ms sencillo
poder llevar un registro del uso de las salas por semana o por temporada, pudiendo revisar
la ocupacin de las salas.
En segundo lugar tambin se piensa desarrollar el modulo que le d al usuario la
oportunidad de dar de alta invitados para un evento especfico, este modulo cumplir varias
funciones, la ms bsica de todas ellas es la de tener un control de las personas (autoridades
y personal) que asistir a la conferencia.
La otra funcin que desempear el modulo refiere a la invitacin que se har a las videoconferencias, la cual ser llevada a cabo desde dos perspectivas, una de ellas es el envo de
correos electrnicos con un saludo personalizado a todas aquellas personas de las que se
tengan sus datos y estn dadas de alta con todo y su correo electrnico, as como tambin
que cumplan con la condicin de estar invitadas al evento.
La segunda perspectiva desde la cual se llevar a cabo las invitaciones hace
referencia al hecho de que se enviarn mensajes de texto a los respectivos celulares de
quienes estn invitados al evento, contando con la opcin de una confirmacin de asistencia
va mensaje sms. Esta ltima caracterstica fue pensada debido a que el celular por su
propia naturaleza es un dispositivo que est siempre cerca de las personas favoreciendo su
localizacin casi en cualquier lugar y momento, es un poderoso recurso para hacer llegar
informacin de distinta ndole, entre la que figura aquella que le d a conocer, en este caso,
su participacin 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 acompaada de las opciones de modificacin y eliminacin de los mismos.
Sistema gestor de salas y dispositivos de red basado en JSF
Pgina 27
Pgina 28
Pgina 29
tema y con el objeto de que esta informacin se muestre de una forma rpida y fcil de
entender para quien la solicite, se ha pensado que en lugar de ser solamente datos
numricos se puede utilizar ciertas libreras que brinden la posibilidad de elaborar grficas,
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 tambin que salas son las ms concurridas y que
presentan mayor numero de audiencia
La intencin de cada uno de estos mdulos es mejorar la logstica que actualmente
se tiene respecto a la administracin de la salas de video-conferencia, as como tambin de
implementar herramientas que vayan un poco mas de eso y que en su conjunto resulten en
una solucin no solo factible sino tambin ms completa, donde los usuarios puedan
resolver en la medida de los posible algunos de los conflictos de organizacin para los
eventos y adems lo hagan de una forma rpida y confiable, que resulta til y cmoda a
todo aquel que haga uso de la herramienta que se planee desarrollar.
Pgina 30
1.7
1.8
Alcances
Pgina 31
1.9
Resumen de Capitulo
Pgina 32
2. Opciones
de
Tecnologa
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 administracin 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 integracin de un
nuevo dispositivo.
En el rea de logstica existe mucho software comercial genrico para la
administracin de salas de conferencia, como Outlook de Microsoft, sin embargo
necesitamos algo ms preciso a nuestras necesidades, y se enfoque a los detalles especficos
que requerimos.
Como podemos ver, prcticamente 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
Pgina 33
claro ejemplo es el sistema de reserva del Aula Magna del sitio del CIRIA, de la
Universidad de las Amricas Puebla, como se muestra en la figura 2.1.
3. En el almacenamiento (MySQL)
Un sistema de gestin de base de datos es un tipo de software muy especfico, 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.
Pgina 34
3.1
Abstraccin de la informacin. Los SGBD ahorran a los usuarios detalles acerca del
almacenamiento fsico 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 abstraccin.
Pgina 35
Despus de hacer mencin de la parte ms baja del sistema (manejo de datos), ahora en
el siguiente captulo nos enfocaremos a la arquitectura de ste dando detalle de la
estructuracin, sin embargo, en la parte del diseo 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 interacta con el sistema.
Pgina 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 mquina virtual
cdigo 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 pblica general o GNU por su nombre en ingls General Public License, esta licencia
est orientada principalmente a proteger la libre distribucin, modificacin y uso de
software. Su propsito es declarar que el software cubierto por esta licencia es software
libre, lo que significa que esta cualquier software que tenga esta denominacin 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 tecnologas. (GNU Operating System, 2009). Ahora
vamos analizar modelos especficos que usaremos en el sistema donde daremos ms detalle
en el siguiente captulo.
4.1
MVC
Pgina 37
controlador del flujo de trabajo en la aplicacin. Cabe sealar que al existir la separacin de
vistas, controladores y modelos es ms sencillo realizar labores de mejora como:
Agregar nuevas formas de recolectar las ordenes del usuario en caso de que as sea
necesario.
Modificar los objetos bien sea para mejorar el desempeo o para migrar a otra
tecnologa.
Pgina 38
En la Figura 6.1 se muestra la estructura bsica que se encuentra dentro de Java Server
Faces, cumpliendo con un estndar ms en la programacin bsica de cualquier aplicacin,
pero en este caso enfocada a una aplicacin web.
En el siguiente captulo pasaremos de la arquitectura a los complementos que se
pueden integrar fcilmente gracias a este modelo de programacin.
5. JFreeChart
JFreeChart es una librera para grficos escrita en Java por lo que su compatibilidad con el
sistema est asegurada, como se mencion en el prrafo anterior esta librera facilita
mostrar grficas, entre las caractersticas principales de esta biblioteca se pueden mencionar
las siguientes:
tipos de grficas.
Ofrece soporte para varios tipos de salida, incluyendo componentes Swing, archivos
de imagen como PNG y JPEG, y formatos grficos de vectores incluyendo PDF, EPS y
SVG.
Pgina 39
Pgina 40
El prototipo implementa tres tipos de grficas: barras, lineal y pastel; es una aplicacin del
tipo Stand Alone, ya que como prototipo el objetivo era familiarizarse con tecnologa
aplicada a las posibles necesidades de la aplicacin. 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 libreras de java. Haciendo una reflexin acerca de que las
grficas que se van a generar tendrn como datos para construirse, aquellos que estn
almacenados en una base de datos, se consider que los datos utilizados se recuperan para
la generacin de dichas grficas 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 tena
como fin la familiarizacin con la librera 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 mtodos que generan las 3 graficas y finalmente la vista, que contiene la interfaz grfica
que facilitar la visualizacin de las graficas a generar.
Pgina 41
5.1
Interfaz grfica
Figura 5.3: En esta primera grfica, se puede ver que estn representados los 12 meses del ao, as mismo se
muestra la relacin existente entre el mes especificado y su ocupacin expresando en otras palabras el nmero
de veces que se hizo uso de la sala a lo largo del ao.
Pgina 42
Figura 5.4: En segundo puesto est una grfica del tipo lineal, este estilo de grfica 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 grfica de pastel, que se piensa podra ser de
mucha utilidad para mostrar la proporcin de uso en la direcciones ip por ejemplo aquellas que se utilizan
para video, voz o transmisin de datos.
Pgina 43
Figura 5.6: Conjunto de pruebas para la realizacin 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.
Pgina 44
Se puede concluir que jFreeChart es una librera que resulta mucha utilidad para la
aplicacin de se est desarrolla, los distintos formatos en sus tipologas de grficas y en la
generacin 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 librera, es la capacidad de la
generacin de grficas en tiempo real para poder ilustrar ciertos aspectos de la red en el
mdulo de IP en tiempo real, como por ejemplo: el tiempo de respuesta de ciertos
dispositivos, para poder medir ciertos parmetros 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.
Pgina 45
6. Gammu
Otra herramienta que usamos para el desarrollo del sistema, es un demonio de mensajes de
texto va celular, bajo la licencia de cdigo libre y de cdigo abierto.
Este framework se encuentra compuesto por una serie de aplicaciones, scripts, y
drivers para diferentes dispositivos mviles, y dispositivos similares. El cual nos otorga una
serie de funciones
En el rea con el que nos apoyaremos para la interaccin de mensaje ser a travs del
servicio que ofrece Gammu, la cual es una herramienta de consola y una biblioteca para
trabajar con telfonos mviles de varias marcas. Permite usar las caractersticas especficas
de los diferentes modelos, pero las funciones bsicas deberan funcionar en la mayora de
ellos. El programa puede funcionar con contactos, mensajes (SMS, EMS y MMS),
calendario, listas de tareas, sistema de archivos, radio integrada, cmara, etc. Tambin
permite su uso en modo demonio para el envo y recepcin de SMS. (Wik de Gammu,
2009)
Actualmente los telfonos compatibles incluyen:
Pgina 46
Pgina 47
6.1
Otra herramienta muy til que utilizaremos ser phpMyAdmin, la cual es una herramienta
escrita en PHP con la intencin de manejar la administracin de MySQL a travs de
pginas web, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, as
como crear, eliminar y alterar tablas, borrar, editar y aadir 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 parmetros de respuesta, lista de nmeros telefnicos y casos de reaccin en base a los
mdulos que se programarn
Como podemos ver, en la imagen 3, ya tenemos nuestro esquema hecho en base a los
estndares requeridos por el demonio de mensajes, y de esta manera nuestros mdulos
podrn interactuar con esta base de datos y el demonio responder segn las peticiones
recibidas o los cambios o indicaciones hechas por los mdulos de administracin de salas y
de administracin de dispositivos ip.
Pgina 48
Figura 7.2: Pruebas de reconocimiento del dispositivo telefnico y de envo de mensajes a travs de servidor
gammu y de fondo tenemos el archivo de configuracin que tiene la informacin del puerto, conexin a travs
de bluetooth con el equipo celular. NOTA: No existe una configuracin de conexin en la pgina de soporte,
sin embargo a base de pruebas, experimentos y conocimiento se pudo deducir la conexin 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 conexin entre el dispositivo y el
servidor y despus mandamos un mensaje con el comando gammu sendsms TEXT
numero destino text mensaje. Esto lo hicimos para probar la parte ms bsica de este
servidor.
En la figura 3.2 que se muestra a continuacin 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 segn sea el caso.
Pgina 49
Figura 7.3: Demonio de gammu activad, como parmetro de entrada se le da la configuracin de conexin y
la informacin necesaria para conectar con MySQL, en el archivo smsdrc.
6.2
Figura 7.4: Interfaz de prueba para el envi de mensajes a travs de la interaccin 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,
automticamente lo enva y lo manda en senditems indicando que ya se envi el mensaje de manera exitosa.
6.3
Detalles tcnicos
Otro dispositivo que vamos a necesitar es un telfono 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 pgina: http://wammu.eu/phones/
Cabe mencionar que conforme a la experiencia que hemos tenido con este
framework, podemos aadir ms dispositivos de los cuales no se encuentran en la lista,
configurando el archivo gammurc y smsdrc dndole los parmetros de interfaz del
dispositivo que se desea conectar. Gammu en su pgina invita a la gente a colaborar
Sistema gestor de salas y dispositivos de red basado en JSF
Pgina 50
agregando nuevas configuraciones de este estilo para que a la gente le sea ms fcil el uso
de este framework.
Gammu tambin tiene la capacidad de manejar de manera autnoma mas de un
dispositivo celular, ya que en dado caso de que si existe algn problema con alguno de los
dispositivos conectados busca el siguiente disponible para el envi y recepcin 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 configuracin del dispositivo(s) a usar y especificamos los parmetros para
conectar con la base de datos.
Pgina 51
Figura 7.5: Especificaciones de configuracin para que funcione de manera correcta el demonio (se seala la
parte de definicin del equipo celular y de la base de datos).
Pgina 52
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 travs de una
interfaz sencilla, tal vez no completamente implementada, pero usando las funciones
bsicas y las ms importantes. Y entramos en el proceso de investigacin, de cual sera la
mejor tecnologa para desarrollar esto de la manera ms prctica y eficiente, incluyendo el
uso del lenguaje y que siguiera la arquitectura de MVC, adems de que cumpliera los
estndares bsicos y sea sencillo de modelar en la parte de la vista ya que existen una gran
cantidad de formas para modelar una pgina web (html, flash, applets, jsp, etc) y nos dimos
cuenta que podramos hacerlo de manera muy baja, construyendo y modelando cdigo jsp,
html, etc. Pero dentro de la investigacin encontramos varios lenguajes muy usados hoy en
da que ayudan a la construccin de sistemas enfocados a aplicaciones web, sin meterse
tanto con aspectos no importantes y solo concentrarse en la parte de la programacin
lgica, entre estos fue Java Server Faces, Ruby on Rails, PHP bajo diferentes frameworks,
etc. Y el que ms de adecuaba a la solucin de nuestras necesidades y conforme a nuestra
experiencia que llevbamos 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 tambin 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
Pgina 53
pginas de internet Java Server Faces y PHP eran los ms utilizados para este tipo de
necesidades y los ms estables, incluso encontramos en la pgina 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, tambin hace uso de esta tecnologa 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 ms familiar, sin embargo puede que no sea el mejor
para esta tecnologa, pero por cuestiones prcticas lo usamos. Muchos recomiendan el uso
de Eclipse para desarrollar aplicaciones basadas en tecnologa JSF, pero eso ya depende de
gustos de los usuarios.
Al empezar a desarrollar la aplicacin bajo esta tecnologa nos dimos cuenta que
nos daba herramientas poderosas para continuar todo el proyecto, lo cual nos llevo a las
tendencias ms actuales sobre el desarrollo de aplicaciones web, donde las aplicaciones que
comnmente se desarrollan para quipos de manera local, se han convertido en aplicaciones
web como Google Docs, que transforma sus versiones de office a una versin de office
pero basada en web. Nos dimos cuenta de que nos da una serie de ventajas las cuales las
discutiremos de manera ms 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 estndar java J2EE. De hecho se est preparando
una nueva versin que traer numerosas novedades, sobre todo en lo que se refiere a su
Pgina 54
7.2
JSF Introduccin
Java Server Faces es una tecnologa 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 APIs para presentar componentes de una interfaz de
usuario y administrar su estado, manejando eventos, validar entrada, definir esquema de
navegacin y dar soporte para internacionalizacin y accesibilidad, tambin contiene dos
bibliotecas de etiquetas personalizadas para JSPs, que nos ayudan con una interfaz de
nuestra aplicacin, 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 tecnologa solo se encuentra disponible hasta las
versin 6.5 de NetBeans.
Pgina 55
7.3
Objetivos de JSF
Pgina 56
7.4
Versiones de JSF
JSF 1.1 (27-05-2004) - lanzamiento que solucionaba errores. Sin cambios en las
especificaciones ni en el renderkit de HTML.
7.5
Ventajas de JSF
El cdigo JSF con el que creamos las vistas (etiquetas jsp) es muy parecido al
HTML estndar. Lo pueden utilizar fcilmente desarrolladores y diseadores web.
JSF forma parte del estndar J2EE, mientras que otras tecnologas para creacin de
vistas de las aplicaciones no lo forman, como por ejemplo Struts.
Pgina 57
JSF permite recoger los parmetros del formulario de manera ms sencilla que
Struts, e incorpora un lenguaje de expresiones que lo hace ms simple.
JSF est pensado para la creacin 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. (Cristbal Gonzlez Almirn, 2010)
Pgina 58
7.6
JSF es un framework que lanza muchas peticiones al servidor. Para optimizar dicho dialogo
estn 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 pgina completa. La combinacin JSF ajax dota a las
pginas 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 aplicacin 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 ms adelante.
7.7
7.7.1 En Vista
En el prototipo inicial hecho para este proyecto, fue enfocado a una aplicacin local,
usando los elementos bsicos de java, y enfocndonos a la parte de la lgica, en esta etapa
aun no desarrollbamos la parte de la esttica, ya que en esta modalidad de desarrollo existe
mayor cantidad de trabajo para el desarrollo de sta a comparacin de JSF, a continuacin
mostraremos algunas de las ventanas, las cuales ya habamos implementado la lgica bsica
para reserva e invitar en conjunto con el uso de Gammu.
Pgina 59
Figura 8.1: Muestra en cmo se creaban los eventos y se agregaban los usuarios al evento y al momento de
hacer esto el sistema mandaba mensaje va 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 esttica,
lo cual nos ayudo bastante, sin considerar las dems ventajas que hemos venido
comentando.
Pgina 60
Figura 8.3: Validaciones especficas (se planea validar en tiempo real usando ajax). Estas validaciones cuentan
con detalles especficos, por ejemplo si aun correo le hace falta un punto o la arroba o si e su nmero de
celular no son nmeros y no es de 10 dgitos.
De tal manera que muchas de las cosas de esttica y algunos mtodos de programacin, se
encarga JSF como un estndar dedicado a la solucin de aplicaciones web, de tal manera
que el desarrollador solo se preocupe por la parte lgica del sistema. Cabe mencionar que
estos detalles tambin son configurables a los parmetros 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 hubiramos hecho, tendramos que
programarlo de tal manera que hiciera algo similar, sin embargo en este caso ya no tenemos
que preocuparnos por este tipo de aspectos.
Pgina 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.
Como podemos verificar, muchas de estas herramientas que nos otorga JSF, las tendramos
que programar si lo hiciramos como una aplicacin java clsica, lo podemos verificar con
el entorno de desarrollo de nuestros primeros prototipos como se muestra en la siguiente
figura.
Pgina 62
Figura 8.5: Entorno de trabajo SIN JSF, enfocado a una aplicacin local basado en prototipos previos,
haciendo notar la diferencia de herramientas sin JSF.
En esta parte tenemos dividida las vistas y la parte lgica en dos paquetes, pero no
contamos con Beans de sesin ni Data Privaders, RowsSets, herramientas, etc que nos
ayudan a mejorar la esttica y arquitectura del sistema, de tal manera que las consultas se
hacen a muy bajo nivel usando conectores bsicos, dando lugar a un mayor porcentaje de
errores en las transacciones.
Pgina 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
comparacin de Struts
JSF tiene capacidad para ser visto en dispositivos mviles mientras que Struts est
limitado a HTML Y http
Es mantener que una aplicacin escrita en Struts
Elementos Grficos con mayor esttica, y ms fciles de usar ya que son muy
intuitivos los manejos de eventos, facilita conocer el cdigo de la aplicacin cuando
se est haciendo un submit. Como si programramos una aplicacin local en un
entorno de trabajo como NetBeans, los mtodos codificados dan respuesta a botones
en especfico. Tambin podemos conocer su estado de cada elemento de tal manera
que se simplifica el trabajo con los Beans.
Expresin 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
Pgina 64
8.1
En base estudios realizados para medir la eficiencia del uso de estos frameworks se hizo
una prueba a travs de la construccin 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
Pgina 65
HH*
faces-config.xml
Clases
JSF
HH*
Clases
Action
Objeto
ActionForm
Controlador
ValueObject
listado.jsp
20
listado.xhtml
10
dataTable
Cdigo JavaScript del componente
(sin escribirlo)
Dar de alta managed bean en facesconfig.xml
Configurar navegacin
Cdigo de manejo de eventos por
componente.
menuLateral.jsp
menuLateral.xhtml
menuInferior.jsp
menuInferior.xhtml
Curva de aprendizaje
40
Curva de aprendizaje
50
Pgina 66
Acceso a Datos
Acceso a Datos
76
69
Figura 9.2: Tabla comparativa entre JSF y Struts en base a las horas Hombre de trabajo hechas a partir
STRUTS
JSF
Cambios de navegacin
0.25
0.5
10
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
pgina en base a un experimento (Aleman, 2010)
Pgina 67
8.2
Prime Faces
PrimeFaces es una librera open source (licencia apache v2) para Java Server Faces, el
objetivo principal de esta es ofrecer un conjunto de componentes ricos para facilitar la
creacin de aplicaciones web. PrimeFaces se divide principalmente en tres mdulos: 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 navegacin entre pginas e integrar PrimeFaces con JPA, transacciones y ms. Y un
tercer modulo llamado FacesTrace permite monitorear aplicaciones JSF. Lo bueno es que
los tres mdulos son totalmente independientes lo que permite crear cualquier tipo de
combinacin 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)
Pgina 68
Figura 9.5: Prime Faces: Dashboard con funciones similares a las ventanas de Windows, incluyen efectos
En las figuras 9.4, 9.5, 9.6 solo es una pequea muestra de las diversas herramientas
con las que cuenta PrimeFaces, y cabe mencionar, que se encuentran actualizando este
framework de manera constante lanzando ms herramientas.
La estabilidad que se experimenta al utilizar corriendo este framework, es bastante
buena, ya que no se percibe ningn tipo de uso excesivo de recursos sobre el explorador y
Pgina 69
Pgina 70
Figura 9.7: PrimeFaces: Ejemplos de aplicaciones usando la librera TouchFaces para dispositivos mviles
Pgina 71
Figura 10.8: Clase Manejador, la cual gestiona la salida de todos los datos a travs de componentes visuales.
En la clase de la figura 10.8, fue creada con el propsito de administrar todas las
proyecciones, as como la obtencin de datos y operaciones bsicas como limpiar el
formulario de pginas. Es decir la lgica de interaccin con los componentes visuales fue
desarrollada en esta clase de manera intuitiva para que la pueda usar cualquier programador
y
sea
fcil
su
manteamiento
rehus.
Pgina 83
Figura 10.9: Clase Validaciones, en la cual se encuentran las validaciones bsicas para la entrada de
Pgina 84
Pgina 85
Figura 10.11: Clase Utileras, rene un conjunto operaciones bsicas como bsquedas personalizadas y
9.6
Pgina 86
Figura 10.12: Diagrama de clases de las familias de octetos para la gestin de direcciones IP
Finalmente el ultimo octeto viene definido por esta ultima relacin, 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 gestin de dispositivos de red.
Pgina 87
9.7
Tambin 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 estndares de redes.
Como lo podemos ver en las opciones del men derecho de la figura 10.7.1
Pgina 88
10.
de red
10.1 Introduccin
El sistema tiene un modelo bsico, administrador y usuarios. Presentando una pantalla de
identificacin, donde el usuario escribe su seudnimo y contrasea, el sistema
automticamente 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 varan en los
privilegios de stas.
Dentro un usuario puede reservar salas, en un horario especfico y en un lugar, para
esto se implementaron una serie de validaciones donde no exista ningn 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 seccin 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 va correo electrnico y mensaje
de texto por celular.
En la parte del administrador, existe la posibilidad de creacin de usuarios as como su
eliminacin y los eventos creados se van eliminando despus de que pasaron de manera
automtica.
Pgina 89
Pgina 90
Figura 11.4 Verificacin de eventos ya establecidos para una fecha dada antes de dar de alta un evento
Existen validaciones en caso de empalme y de lgica 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
Pgina 91
Pgina 92
Pgina 93
Figura 10.8: Clase Manejador, la cual gestiona la salida de todos los datos a travs de componentes visuales.
En la clase de la figura 10.8, fue creada con el propsito de administrar todas las
proyecciones, as como la obtencin de datos y operaciones bsicas como limpiar el
formulario de pginas. Es decir la lgica de interaccin con los componentes visuales fue
desarrollada en esta clase de manera intuitiva para que la pueda usar cualquier programador
y
sea
fcil
su
manteamiento
rehus.
Pgina 83
Figura 10.9: Clase Validaciones, en la cual se encuentran las validaciones bsicas para la entrada de
Pgina 84
Pgina 85
Figura 10.11: Clase Utileras, rene un conjunto operaciones bsicas como bsquedas personalizadas y
9.6
Pgina 86
Figura 10.12: Diagrama de clases de las familias de octetos para la gestin de direcciones IP
Finalmente el ultimo octeto viene definido por esta ultima relacin, 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 gestin de dispositivos de red.
Pgina 87
9.7
Tambin 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 estndares de redes.
Como lo podemos ver en las opciones del men derecho de la figura 10.7.1
Pgina 88
10.
de red
10.1 Introduccin
El sistema tiene un modelo bsico, administrador y usuarios. Presentando una pantalla de
identificacin, donde el usuario escribe su seudnimo y contrasea, el sistema
automticamente 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 varan en los
privilegios de stas.
Dentro un usuario puede reservar salas, en un horario especfico y en un lugar, para
esto se implementaron una serie de validaciones donde no exista ningn 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 seccin 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 va correo electrnico y mensaje
de texto por celular.
En la parte del administrador, existe la posibilidad de creacin de usuarios as como su
eliminacin y los eventos creados se van eliminando despus de que pasaron de manera
automtica.
Pgina 89
Pgina 90
Figura 11.4 Verificacin de eventos ya establecidos para una fecha dada antes de dar de alta un evento
Existen validaciones en caso de empalme y de lgica 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
Pgina 91
Pgina 92
Pgina 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 bsqueda directa, es decir no aparece ningn 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,
ubicacin,
horario
fecha
horario.
Pgina 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 algn 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 automtica 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 telfono celular, y por correo electrnico principal y alterno. Para esto podemos
navegar fcilmente entre los tabs que se presentan y el usuario pueda escoger su bsqueda
preferente. Y en el momento en que el usuario da clic en invitar se valida y se almacena.
Posteriormente se le va notificando.
Pgina 95
Pgina 96
11.
Evaluacin y Conclusiones
Pgina 97
tal nmero 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 tecnologa 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 ms 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 lgica de nuestro sistema, dejando todo lo dems como un hecho en el que
podemos confiar gracias a que es un estndar, sin embargo podemos decir que no es la
tecnologa ms poderosa hoy en da, pero si una de las ms completas a las que le
apostaramos un gran futuro.
Tambin cabe mencionar, que la utilizacin de un framework nuevo y recin salido,
es una experiencia de aprendizaje donde aplicas prcticamente todos los conocimientos de
arquitectura y diseo de la aplicacin para poder dar solucin cientos de problematicas que
se presentan en este tipo de herramientas, como lo es en el caso de PrimeFaces, ya que
trabajamos prcticamente con frameworks en los cuales utilizamos componentes que solo
tenan unos meses de haber salido, y que el caso especifico de PrimeFaces se tuvo que
hacer una adaptacin 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 problemtica, lo cual nos enorgullece haber podido resuelto
Sistema gestor de salas y dispositivos de red basado en JSF
Pgina 98
esta cuestin 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 IDEs 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
ms primitiva, integrando los jars y modificando archivos XML para que ayudaran a usar
este framework sin rehacer todo en Maven.
Pgina 99
12.
Trabajos a Futuro
Pgina 100
Bibliografa
(2010). Recuperado el Marzo de 2010, de Cristbal Gonzlez Almirn:
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,
Mxico.
Sistema gestor de salas y dispositivos de red basado en JSF
Pgina 101
Pgina 102
Pgina 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,
Mxico.
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
Martnez, 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/
Pgina 104
Pgina 105
Pgina 106
En todos los casos se hacen consultas por todos los campos posibles y utilizados,
haciendo las respectivas validaciones.
Apndice B:
Pgina 107