DESARROLLO DE UNA APLICACIÓN DE CONTROL Y
MONITOREO DE NIÑOS VÍA WEB, PARA EL CENTRO DE
CUIDADOS MATERNO INFANTIL “POPEYE’S” DE LA CIUDAD DE
QUITO
Proyecto de fin de carrera previa a la obtención del título de Ingeniería en Sistemas Informáticos y Computación.
AUTOR:
Max Geovanny Morillo Aguilar
DIRECTOR:
Ing. Guido Riofrío Calderón
LOJA - ECUADOR
CERTIFICACIÓN
Ing.
Guido Riofrío Calderón
C E R T I F I C A :
Que el presente trabajo de investigación, previo a la obtención del título de INGENIERO EN SISTEMAS INFORMÁTICOS Y COMPUTACIÓN, ha sido dirigido, supervisado y revisado en todas sus partes, por lo mismo, cumple con los requisitos legales exigidos por la Universidad Técnica Particular de Loja, quedando autorizada su presentación.
Loja, 01 de julio de 2011
CERTIFICACIÓN
Ing.
Alexander López
C E R T I F I C A :
Que el presente trabajo de investigación, previo a la obtención del título de INGENIERO EN SISTEMAS INFORMÁTICOS Y COMPUTACIÓN, ha sido dirigido, supervisado y revisado en todas sus partes, por lo mismo, cumple con los requisitos legales exigidos por la Universidad Técnica Particular de Loja, quedando autorizada su presentación.
Loja, 01 de julio de 2011
AUTORÍA
El presente proyecto de tesis con cada una de sus observaciones, análisis, evaluaciones, conclusiones y recomendaciones emitidas, es de absoluta responsabilidad del autor.
Además, es necesario indicar que la información de otros autores empleada en el presente trabajo, está debidamente especificada en fuentes de referencia y apartados bibliográficos.
………...
CESIÓN DE DERECHOS
Yo, MAX GEOVANNY MORILLO AGUILAR, declaro ser autor del presente trabajo y eximo expresamente a la Universidad Técnica Particular de Loja y a sus representantes legales de posibles reclamos o acciones legales.
Adicionalmente declaro conocer y aceptar la disposición del Art. 67 del Estatuto Orgánico de la Universidad Técnica Particular de Loja, que en su parte pertinente
textualmente dice: “Forman parte del patrimonio de la Universidad la propiedad
intelectual de investigaciones, trabajos científicos o técnicos y tesis de grado que se realicen a través, o con el apoyo financiero, académico o institucional (operativo) de la Universidad”.
………...
AGRADECIMIENTOS
Expreso mi sincero agradecimiento, a la Universidad Técnica Particular de Loja, principalmente a la Escuela de Informática, a sus directivos, personal administrativo y docentes, quienes supieron con paciencia entregarnos sus mejores conocimientos y experiencias para nuestro crecimiento académico y vivencial. Un especial agradecimiento al Ing. Guido Riofrío, que sin su guía y ayuda, hubiera sido difícil la terminación del presente tema de tesis.
DEDICATORIA
Este trabajo está dedicado en primer lugar a Dios, quien ha dado luz a mi camino. A mi esposa Alexandra y mi hija Wendy, quienes con su amor, apoyo incondicional y paciencia, me dieron un enorme impulso e inspiración. A mis padres Kleber y Angelita, una especial dedicatoria, ya que son ellos quienes han luchado y esforzado para darme el estudio y con ello ver al fin la terminación de una etapa de mi vida, de la cual se puedan sentir orgullosos del deber cumplido. A mis queridos hermanos Kleberito y Rubita, ejemplo para mí a seguir. A Gerson, Paúl y todos mis amigos y excompañeros, que con sus consejos y aliento desinteresados, me ayudaron e incentivaron.
Tabla de Contenidos
Contenido Pág.
Introducción 11
FASE 1. Investigación Preliminar e Identificación de características que deberá tener el aplicativo en el centro infantil.
13
1.1. Datos generales del Centro Infantil Popeye’s 13
1.2. Hallazgos del estudio preliminar 14
1.3. Requerimientos de ubicación de Cámara IP 17
1.4. Características que tendrá el aplicativo para el Centro Infantil 18
1.5. Ubicación física del centro infantil en la ciudad de Quito-Ecuador. 19
1.6. Investigación de funcionamiento de tecnología IP vía Web (manejo de cámaras IP). 20
1.6.1. Componentes de las cámaras IP 21
1.6.2. Requerimientos de conexión para una cámara IP en internet o LAN 22
1.6.3. Seguridad de Acceso a las cámaras IP 22
1.6.4. Características de audio y video emitido por las cámaras IP. 23
1.6.5. Selección de Cámara IP para el desarrollo de tesis 24
1.6.5.1. Descripción General de la cámara IP DLINK DCS-2102 24
1.6.5.2. Características físicas indicadas por el fabricante 25
1.7. Investigación y selección de metodología de desarrollo y herramientas tecnológicas para crear el
aplicativo web. 26
1.7.1. Scrum, como metodología de implementación 26
1.7.1.1. Proceso de aplicación de metodología SCRUM 28
1.7.2. Liferay, como portal. 29
1.7.2.1. Esquema de funcionamiento de la solución con Liferay 34
1.7.2.2. Portlets (Aplicativos) 35
1.7.3. Eclipse, como Framework para desarrollo de Portlets 36
FASE 2. Modelamiento y desarrollo del aplicativo 39
2.1. Perfil del Centro Infantil 39
2.2. Planificación del proyecto utilizando la metodología SCRUM 40
2.3. Análisis y Desarrollo del requerimiento: “Elaborar un portal para el Centro Infantil” 43
2.3.1. Análisis del Portal 43
2.3.2. Diseño del modelo conceptual del Portal 44
2.3.3. Diseño de pantallas del portal 44
2.3.3.1. Diseño de Pantalla “Inicio” 45
2.3.3.2. Diseño de Pantalla “Quienes Somos” 45
2.3.3.3. Diseño de Pantalla “Noticias” 46
2.3.3.4. Diseño de Pantalla “Sugerencias para Padres” 46
2.3.3.5. Diseño de Pantalla “Contáctenos” 47
2.3.3.6. Diseño de Pantalla “Monitoreo Web Cam” 47
2.3.3.7. Diseño de Pantalla “Administración Salones” 48
2.3.4. Desarrollo del portal utilizando Liferay Portal 49
2.3.4.1. Documentación de implantación de Liferay 49
2.3.4.1.1. Instalación de Java en CentOs 5.0 49
2.3.4.1.2. Instalación de Mysql en CentOs 50
2.3.4.1.3. Instalación de Liferay con JBoss en CentOs 5.0 51
2.3.4.2. Crear la página Web principal y opciones públicas con Liferay 52
2.3.4.2.1. Consideraciones previas a la creación de un sitio web con Liferay 52
2.3.4.2.1.1. Administración de Liferay 54
2.3.4.2.1.2. Agregación de páginas web 55
2.3.4.2.1.3. Agregación de Portlets (aplicativos) a las páginas Web 55
2.3.4.2.1.5. Edición de un portlet de contenido 57
2.3.4.2.1.6. Selección de Tema (Template) 58
2.3.4.2.1.7. Inserción de un “Logo” en el sitio Web 60
2.3.4.2.1.8. Creación de usuarios en liferay 61
2.3.4.2.1.9. Creación de grupos de usuarios en liferay 64
2.3.4.2.1.10. Creación de roles para asignación a grupos de usuarios en Liferay 66 2.3.4.3. Instalación de Cámara IP con conexión a Router inalámbrico Dlink DIR-600 67 2.4. Análisis y Desarrollo del requerimiento: “Crear un aplicativo de monitoreo de niños, para el
portal del Centro Infantil” 70
2.4.1. Análisis del portlet de Monitoreo de niños 70
2.4.2. Modelo conceptual del portlet de Monitoreo de niños 70
2.4.3. Diseño de la tabla de datos 71
2.4.4. Modelo de Casos de Uso 71
2.4.5. Detalle de casos de Uso identificados 72
2.4.5.1. Desglose de los Casos de Uso encontrados 72
2.4.6. Diagramas de Clases 75
2.4.7. Configuración de Eclipse para la iteracción con Liferay 78
2.4.7.1. Carga y configuración de Plug-in de Liferay para eclipse 79
2.4.7.2. Creación del proyecto “CamaraIPPortlet” tipo “Portlet” en eclipse 81
2.4.7.3. Investigación para la generación de portlets utilizando la infraestructura de
Liferay 83
2.4.8. Desarrollo del aplicativo utilizando la infraestructura Liferay 85
2.4.8.1. Generación de portlet mediante “Service Builder” de Liferay 85
2.4.8.2. Definición de entorno de variables previo al desarrollo del portlet en Liferay 88
2.4.8.3. Programación de métodos para almacenamiento y recuperación de datos 90
2.4.8.4. Programación de archivos Vista (View.jsp) para presentación de imágenes de
cámara y de administración de salones 92
2.4.8.5. Programación de permisos para los portlets creados 95
2.4.8.6. Despliegue del proyecto en ambiente de desarrollo para pruebas de conexión 97
2.4.8.7. Despliegue del proyecto en ambiente de producción 101
2.4.8.8. Pruebas de funcionamiento de los portlets desplegados en producción 102
FASE 3. Resultados del impacto de la solución en los padres de familia 104
3.1. Utilización de credenciales de acceso a Padres de Familia y análisis de resultados 104
Conclusiones 108
Recomendaciones 109
Bibliografía 110
Anexos 111
Anexo 1. Encuestas preliminares de aceptación del proyecto a padres de familia 112
Anexo 2. Descripción de la metodología de desarrollo SCRUM 128
A2.1. Conceptos manejados en SCRUM 128
A2.2. Estructuración de la metodología 129
A2.3. Aplicación de la metodología para la implementación de la solución 132
Anexo 3. Revisión general de liferay como portal 146
Anexo 4. ECLIPSE, como framework para desarrollo de portlets 151
Anexo 5. Hosting 155
Anexo 6. Recursos a utilizar en el desarrollo de la solución 156
Anexo 7. Encuestas de satisfacción de uso de monitoreo web 158
Anexo 8. Código Fuente del Aplicativo 168
11
INTRODUCCIÓN
Con el auge de las TICs (llamadas así a las Tecnologías de la Información y Comunicación), en la actualidad se han desarrollado aplicativos informáticos que generan una mejor calidad de vida a las personas. El desarrollo e inversión en las telecomunicaciones en nuestro país, ha provocado la mejora sustancial en el rendimiento de las mismas, lo que ha generado un uso más generalizado del Internet en nuestro medio. Al momento tanto las telecomunicaciones y el Internet, especialmente en las ciudades como Quito, Guayaquil y Cuenca, han sido beneficiadas con la mejora de velocidades y cobertura, lo que ha permitido la rápida expansión de nuevos servicios relacionados con las telecomunicaciones y tecnología.
12
RESUMEN
Con este tema se pretende crear un aplicativo Web, utilizando herramientas OpenSource, que permita “monitorear”, de alguna manera, el día a día de los niños en un centro de cuidados materno infantil, y que a su vez, se pueda medir cualitativamente el bienestar que puede aportar el uso de una herramienta de ese tipo tanto en padres de familia como en los niños. Esto implicará el desarrollo de un aplicativo (aplicación Web) con herramientas Open Source (con el objetivo de abaratar costos de licencias), así como la investigación y manejo de cámaras IP y toda su tecnología detrás de las mismas, para poder acoplarlas con el aplicativo.
En la primera Fase del presente tema, se describe los hallazgos de la investigación preliminar de las necesidades del Centro de desarrollo Infantil, así como de un breve estudio de aceptación de la propuesta de monitoreo por parte de los padres. También se hace una identificación de las características que tendrá el aplicativo de acuerdo a los requerimientos del Centro Infantil. Posteriormente se muestra una revisión general de las diferentes tecnologías a aplicar para el desarrollo del presente tema.
En la segunda Fase, se describe tanto el marco conceptual del cómo funcionará la solución, utilizando las tecnologías revisadas en la primera Fase, así como el detalle del proceso de desarrollo en sí, profundizando en cada una de las tecnologías a utilizar (modo de instalación, uso, etc.), y describiendo los resultados que se van obteniendo durante el proceso de desarrollo. También se puede ir observando los resultados de la utilización de la metodología de desarrollo.
En la tercera Fase, se exponen los resultados de los estudios de impacto de la solución en los padres de familia que utilizarán el aplicativo.
13
FASE 1
INVESTIGACIÓN PRELIMINAR E IDENTIFICACIÓN DE
CARACTERÍSTICAS QUE DEBERÁ TENER EL APLICATIVO EN EL CENTRO INFANTIL.
1.1. Datos generales del Centro Infantil Popeye’s:
El centro de desarrollo infantil Popeye’s (CI), tiene como objetivo: “Contribuir técnica y
profesionalmente para que los niños y niñas alcancen un desarrollo bio-psico-socio cultural espiritual adecuado, dentro de un marco afectivo y de valores respetando su ecosistema y su ideología”.
Tiene a cargo el cuidado, control y enseñanza de destrezas en niños desde 1 hasta 5 años de edad.
Su estructura de estudios para los niños está conformada de la siguiente manera:
Inicial 1: Para niños de 1 - 2 años. Inicial 2: Para niños de 2 - 3 años. Inicial 3: Para niños de 3 - 4 años. Pre-Básica : Para niños de 4 - 5 años.
En su infraestructura física, el centro infantil dispone de los siguientes espacios físicos:
Área total: 285 m2
Área de construcción: 142,25 m2
Área exterior total: 142,25 m2
Las dependencias de las que consta el centro infantil son (Ver Figura 1.1. Plano de dependencias del CI):
Juegos y módulos exteriores Espacios verdes
14
Dependencias Generales del Centro Dirección Psicopedagógica
[image:14.595.114.516.228.486.2]Dormitorio.
Figura 1.1. Plano de dependencias del CI (Tomado del CDI).
1.2. Hallazgos del estudio preliminar
Luego de haber realizado las respectivas investigaciones con la directora del Centro Infantil (Lic. Tatiana González), se pudo constatar que la falta de control o monitoreo de los niños,
especialmente de edades comprendidas entre 1 – 3 años (aunque no menos en niños de
edades superiores a estas), crea niveles anormales de ansiedad en los padres.
15
Por experiencia propia, he podido determinar que ante este escenario se produce un incremento importante en las llamadas hacia el Centro Infantil para el seguimiento correspondiente, así como disminución en el rendimiento laboral, especialmente en áreas que requieren especial atención en temas de concentración (ej. Desarrollo de sistemas informáticos bancarios, financieros, etc.).
De acuerdo a un estudio hecho por Forbes Woman (www.forbeswoman.com), de una encuesta realizada en una muestra de 2200 mujeres en los Estados Unidos, Forbes concluye que:
62% de las mujeres encuestadas manifestó que tener hijos puede tener un impacto negativo en sus carreras.
En contraste, sólo el 30% de las madres que trabajan dijo que haber tenido niños, había afectado su vida laboral.
Tomando en cuenta esas estadísticas, decidí hacer una encuesta de aceptación al proyecto (Ver Anexo A1. Encuestas preliminares de aceptación del proyecto a Padres de familia), para determinar las preferencias de monitoreo entre los padres de familia que inscriben a sus niños en el Centro Infantil, por lo que a continuación se muestran los resultados tabulados (los valores están expresados en porcentajes):
1.) Ud. Confía en los cuidados del centro infantil donde está su hijo(a):
%
Si 14 87,50
No 0 -
No contesta 2 12,50
TOTAL 16 100,00
Tabla 1.1. Confianza en cuidados del CI.
2.) Cuando Ud. deja a su niño(a) pequeño(a) al cuidado de un centro infantil, considera que su rendimiento laboral se ha visto:
%
Disminuido 0 -
16
Sigue igual 3 18,75
No se da cuenta 1 6,25
No contesta 1 6,25
TOTAL 16 100,00
Tabla 1.2. Rendimiento Laboral
3.) Considera que un sistema de monitoreo (con cámaras), donde Ud. pueda observar a su niño vía Internet, ayudaría:
%
Mucho 12 75,00
Poco 4 25,00
Nada 0 -
TOTAL 16 100,00
Tabla 1.3. Monitoreo vía Web
4.) El monitoreo vía internet, mejoraría su desempeño laboral:
%
Mucho 4 25,00
Poco 8 50,00
Nada 4 25,00
TOTAL 16 100,00
Tabla 1.4. Monitoreo vs. Desempeño laboral
5.) Ud. labora bajo relación de dependencia en una empresa o institución?:
%
Si 10 62,50
No 6 37,50
TOTAL 16 100,00
Tabla 1.5. Relación de dependencia laboral
6.) El lugar donde trabaja, permite a sus empleados el uso de internet?:
%
Todo el tiempo 12 75,00
Por horas 3 18,75
No permite 0 -
No posee Internet 1 6,25
TOTAL 16 100,00
17
7.) Desearía que el centro infantil disponga de un servicio de monitoreo infantil vía web (internet)?:
%
Si 14 87,50
No 1 6,25
No contesta 1 6,25
TOTAL 16 100,00
Tabla 1.7. Consulta sobre Monitoreo en CI
De lo observado en los resultados de las encuestas, se puede deducir que la mayoría de padres de familia:
Relaciona el aumento de rendimiento laboral al cuidado de niños (68.75%) Cree que ayudaría mucho o poco el monitoreo (100% entre los 2 aspectos) Cree que mejoraría el rendimiento con el monitoreo con cámaras (75% entre los dos)
Tienen acceso a internet (75%).
Se inclina por un servicio de monitoreo vía web (87,50%).
Tomando en cuenta los resultados anteriores, es altamente factible la implantación de una solución, como la propuesta en el presente tema.
1.3. Requerimientos de ubicación de Cámara IP
18
Figura 1.2. Ubicación de cámara IP
1.4. Características que tendrá el aplicativo para el Centro Infantil:
Tomando en cuenta la naturaleza del centro infantil, la solución integral para cubrir con los objetivos del presente tema deberá constar de lo siguiente:
Del Aplicativo Web:
- Portal Web del centro infantil que contendrá la siguiente información:
o Información General del Centro Infantil.
o Menú de Opciones (Inicio, Acerca del centro, Horario de atención,
Contáctenos)
o Link para ingreso de usuarios registrados.
o Link para acceso a ver video mediante cámara IP, para el cual deberá ser
validado el usuario que ingresa. Cámara IP.
Requerida para monitoreo de niños
19
- Administración de usuarios (ingreso de padres de familia). Esta administración de
Usuarios, correrá como parte del Portal seleccionado (Liferay), que en este caso se encargará del manejo de las seguridades.
- Creación del Portlet, para el monitoreo de las imágenes que emita la cámara IP.
De los recursos necesarios para dicha implementación:
- Adquisición de Hosting para albergar el sitio Web del Centro Infantil.- Para esto se
utilizará el proveedor de hosting “sever4you (www.server4you.com)”, el cual es un
proveedor con equipos aptos para implementar la solución, así como el soporte de las diferentes tecnologías (Liferay, Mysql, Java, etc.) a usar en el desarrollo del presente tema.
- Cámara IP, que soporte Java (La selección de la cámara se detalla en el apartado
“Investigación de funcionamiento de tecnología IP”).
- Conexión a Internet tipo ADSL1 (proveedor TV-Cable), con velocidad superior a
1Mbit de transmisión. La fidelidad y resolución de las imágenes, dependerán de las pruebas de video en la etapa de desarrollo.
1.5. Ubicación física del centro infantil en la ciudad de Quito - Ecuador.
A continuación se presentan las imágenes de la ubicación física del Centro de Desarrollo Infantil en la ciudad de Quito (Ver Figura 1.3.).
Dirección: Calle Lugo E13-167 y Pasaje 3. Ciudad: Quito
Sector: La Floresta
20
Figura. 1.3. Ubicación física del Centro (Imagen tomada de GoogleMaps)
1.6. Investigación de funcionamiento de tecnología IP vía web (manejo de cámaras IP)
Las Cámaras IP (también conocidas como cámaras Web o de Red), son cámaras de video especialmente diseñadas para enviar las señales de video, y en algunos casos audio, a través de Internet desde un navegador de internet (ej, Internet Explorer, Firefox, Crome, etc), o a través de concentrador (un HUB o un SWITCH) en una Red de Datos Local (LAN por sus siglas en inglés).
Este tipo de cámaras (IP), puede integrarse aplicaciones para: detección de presencia o movimiento (inclusive se puede enviar correos automáticamente, si detectan presencia), grabación de imágenes o secuencias en equipos informáticos para almacenamiento (tanto en una red local o en una red externa (WAN), de tal forma que al analizar el movimiento se pueda grabar las imágenes correspondientes.
21
Figura. 1.4. Gráfico de la Estructura física de conexión IP
En la actualidad, las cámaras IP están siendo utilizadas en un sinnúmero de entornos para la vigilancia o promoción (utilizando cualquier conexión a internet y un navegador), entre los cuales están:
Hogar: " para vigilar " la casa, negocio, empresa, a personas mayores, a niños o bebés.
Trabajo: puede utilizarse para controlar puntos del negocio a los cuales no hay acceso visual tanto dentro de la empresa como los locales externos, estacionamientos, entradas, puntos de venta, etc.
Hosterías, restaurantes, centros deportivos, museos, control de animales, etc.
En el caso concreto del desarrollo del presente tema de tesis, se la usará para vigilancia y monitoreo de los niños del centro de desarrollo infantil
Popeye’s, de la ciudad de Quito.
1.6.1. Componentes de las cámaras IP
Como se dijo anteriormente, las cámaras IP son cámaras de video, que a diferencia de una video cámara tradicional, dispone adicionalmente de:
Componentes de una cámara de video tradicional (lentes, sensores, procesador digital de imagen, etc.)
Un sistema de compresión de imagen (para poder comprimir las imágenes captadas por la cámara a formatos adecuados como MPEG4), de tal manera
Internet switch /
...
22
que se disminuya el tiempo y el impacto en la utilización de ancho de banda de internet o LAN.
Un sistema de procesamiento (CPU, FLASH, DRAM y un módulo Wireless ETHERNET/WIFI). Este sistema de procesamiento se encarga de: Gestión de las imágenes que incluye el envío de las mismas al módem, del movimiento de la cámara (si dispone de motor), de la detección de movimiento, etc.
1.6.2. Requerimientos de conexión para una cámara IP en internet o LAN.
Debido a que uno de los objetivos de las cámaras IP es el envío de imágenes vía web, no cabe duda que es importante disponer de una conexión a Internet. Para ello se
conecta la cámara IP a un Router2 ADSL , XDSL, o Cablemodem (o a un HUB) u
otros sistemas de banda ancha. No es necesario IP fija, ya que en el caso de IP dinámica se puede acudir a sitios como www.no-ip.com o www.dyndns.org (algunas
cámaras vienen con sitios de resolución dinámica de IP’s especiales ) para la
resolución DNS.
Una vez se disponga de lo anteriormente citado, únicamente se necesita conectar la cámara al Router ADSL y a la alimentación eléctrica, esto para el caso del acceso vía internet, caso contrario si el objetivo es usar la cámara en una red local, debemos conectar la misma a un HUB/SWITCH con lo que pasa a ser un equipo más que se comunica con el resto de nuestra LAN (si la LAN dispone de conexión a Internet, se podrá acceder desde el exterior a la red).
1.6.3. Seguridades de acceso a las cámaras IP.
Un tema que ha llevado a preguntarse si es seguro utilizar cámaras IP, es justamente su accesibilidad, debido a que da la impresión de que una vez conectada a internet, un usuario con conocimientos específicos sobre tecnología, podría acceder a las imágenes que se están capturando. Bueno, esta duda cabe indicar que tiene una respuesta contundente, y es que, las cámaras IP, de la misma manera que los
servidores de Vídeo (que hacen Streaming3 de video), dispone de un software interno
2
Router.- Término inglés para Enrutador. Dispositivo para interconexión de red de computadores, que opera en la capa 3 del modelo OSI.
23
para manejar el tema de seguridad, lo que permite establecer varios niveles de seguridad sobre el acceso a las mismas, y entre los cuales están:
Nivel de Administrador: que sirve para poder configurar diferentes parámetros de la cámara, como lo es: manejo de direcciones IP, claves de acceso, etc. En este nivel se solicita nombre de usuario y una clave para accesar al mismo. Nivel de Usuario: que sirve para que el usuario pueda ver las imágenes que se están capturando, manejar la cámara así como el relé de salida. Igual que en el anterior nivel, se solicita un nombre y clave de usuario.
Nivel Demo: este nivel está pensado para permitir un libre acceso a lo que emita la cámara por tiempos delimitados, por lo tanto no es necesario ningún tipo de identificación.
Tomando en cuenta los accesos, se puede decir que la cantidad de accesos de usuarios de cualquier nivel que podría cubrir cada cámara IP, por lo general, es de aproximadamente entre 10 a 20 usuarios.
1.6.4. Características de audio y video emitido por las cámaras IP.
Con respecto al audio, la mayoría de cámaras IP incorporan micrófonos de alta sensibilidad, con la finalidad de transmitir audio mediante el protocolo de conexión UDP4.
En la parte de video, las cámaras IP poseen un sistema de compresión de imagen, el cual sirve para hacer que la información obtenida de la cámara (que es mucha información y de gran tamaño) ocupe la menor cantidad de tamaño, ajustando a los anchos de banda de los sistemas de transmisión, por lo que si no se comprime adecuadamente es imposible enviar la misma a través de una red Local (LAN) o de las líneas telefónicas. Al comprimir las imágenes enviadas, se evita adicionalmente que sufran pérdidas en la calidad o en la visualización.
4
24
Los estándares de compresión actuales son el JPEG(Joint Picture Experts Group) y MPEG4 (Moving Picture Experts Group), este último es el más reciente y potente (Optmizado para videoteléfonos y PDA, maneja un bajo ancho de banda.).
1.6.5. Selección de Cámara IP para el desarrollo de tesis
Para lograr realizar la captura de imágenes en el centro de desarrollo infantil Popeye’s,
se seleccionó la cámara IP Dlink DCS-2102 (Ver Figura 1.5.), la cual tiene un soporte para JAVA, que permitirá realizar la implementación de la interfaz correspondiente para adaptarla al portal. A continuación se hace una breve descripción y características de la cámara:
1.6.5.1. Descripción General de la cámara IP DLINK DCS-2102
La cámara de vigilancia IP DCS-2102 de D-Link (Ver Figura 1.5. Imagen de cámara Dlink - DCS-2102) proporciona una solución de vigilancia versátil y única tanto para la pequeña oficina como el hogar. A diferencia de una cámara conectada a Internet estándar, la cámara IP DCS-2102 es un sistema completo de seguridad y vigilancia ya que incorpora una CPU interna y un servidor web que transmite imágenes de vídeo de alta calidad entregando en sus manos la posibilidad de mantener ambientes totalmente vigilados durante las 24 horas del día.
La cámara de vigilancia IP DCS-2102 permite acceder a las imágenes en cualquier momento y controlar todas las funciones operativas de la cámara en forma remota desde cualquier PC o computador portátil, ya sea desde la red local como través de Internet utilizando de manera fácil rápida y sencilla su propio navegador web.
25
1.6.5.2. Características físicas indicadas por el fabricante
Entre las principales características que tiene la cámara IP Dlink a utilizar en el presente proyecto, están:
Interfaces
- 1 Puerto RJ-45 10/100 BASE-TX
- Auto-negociación MDI/MDIX
Hardware
- Sensor: 1/4"color CMOS sensor, 1.3 Mega pixel.
- SDRAM 64 MB
- Memoria Flash 8 MB
- Soporte Disparador Electrónico Automático
- Disparador Electrónico 1/60 – 1/15000 segundos.
Video
- Modos de salida de sensor
- VGA (640x480), XGA (1024x768) y SXGA (1280 x 1024).
- Flip & mirror
- Zoom digital hasta 4X
- Soporta ActiveX, Java
- Soporta compresión MPEG-4/MJPEG y JPEG para imágenes sin
movimiento.
Protocolos Soportados
- IPV4, ARP, TCP, UDP, SMTP, ICMP,DHCP Cliente, NTP Cliente (D-Link),
DNS Cliente, DDNS Cliente (D-Link), SMTP Cliente, FTP Cliente, HTTP Server, Samba Cliente, PPPoE, RTP, RTSP, RTCP, 3GPP, LLTD, SSL, SIP, UPnP-x, UPnP AV, 3GPP
Administración y Upgrade
- Configuración vía Web browser, notificación de alertas vía FTP e E-mail.
26
Sistema operativos soportados
- Windows 2000, XP, Vista, 3GPP (3rd Generation Partnership Project)
1.7. Investigación y selección de metodología de desarrollo y herramientas tecnológicas para crear el aplicativo web.
De las distintas metodologías de desarrollo, así como de tecnologías orientadas a internet que adicionalmente dan una versatilidad en la implementación de aplicaciones Web, se determinó que tanto la metodología de desarrollo así como las herramientas más útiles para poder realizar la implementación del proyecto planteado (tomando en cuenta las mejores herramientas de código abierto), son las siguientes:
Scrum, como metodología de desarrollo. Liferay, como portal.
Eclipse, como Framework para desarrollo de Portlets (Aplicativos web).
A continuación se hará una breve descripción de cada una de las tecnologías seleccionadas, para las cuales también se ha elaborado un análisis comparativo de sus pares en cada una de ellas, para posteriormente en el capítulo de desarrollo ir indicando el uso específico de las mismas.
1.7.1. SCRUM, como metodología de desarrollo.
Antes que nada, SCRUM (melé en inglés) como metodología de desarrollo ágil (ahora
implementado para otras áreas), proviene de un término usado en el Rugby que se
traduciría como “colaboración entre partes para alcanzar un objetivo”, por lo que a diferencia de otras herramientas no proviene de un término reducido por siglas como es costumbre en tecnología.
Actualmente existen algunas metodologías de desarrollo de software, sin embargo, entre las metodologías que mejores resultados han generado, están las metodologías ágiles, las mismas que han logrado ajustarse a la dinámica del mercado, el cual
“obliga” a la obtención de resultados rápidos, buenos y baratos. En la Tabla 1.8.
27
de las principales metodologías ágiles que destacan en la actualidad (Xtreme Programing XP y SCRUM).
SCRUM como metodología, justamente ha sido la más adoptada por su facilidad de
uso e implementación, por lo que al ser este proyecto de tesis, de tipo “rápido” en lo
que se refiere a desarrollo, se optó por seleccionar esta metodología. Esto implica que, de acuerdo a la metodología, se pueden ir obteniendo resultados rápidamente, especialmente al utilizar otras tecnologías (como Liferay), que hacen que el desarrollo y obtención de resultados sea ágil y no tan costoso en cuestión de tiempos y recursos tanto humanos como materiales.
XP SCRUM
Características Desarrollo iterativo e incremental Desarrollo iterativo e incremental Pruebas unitarias contínuas Se basa en ciclos (iteraciones, sprints) Programación en parejas Pruebas por cada sprint
Frecuente integración del equipo con el cliente
Desarrollo en grupos de hasta máximo 8 personas
Corrección de todos los errores antes de continuar con nuevos requerimientos
Interacción contínua con el cliente
Refactorización del código Adaptabilidad a los cambios frecuentes
Simplicidad del código
Propiedad del código
Trabaja en función de la previsión
Fortalezas Retroalimentación Equipos auto-organizados e incentivados
Disminución al máximo de errores Entrega de resultados de alta calidad en tiempos cortos
Simplicidad
Debilidades
Usado generalmente para proyectos pequeños
Orientado más a procesos que a desarrollo de software
Dificultad para determinar costo del proyecto Pueden haber errores no detectados a tiempo Posibles retrasos para la entrega de proyecto
Se debe pensar el proyecto anticipadamente, lo que dificulta la adaptabilidad a cambios
Tabla 1.8. Cuadro comparativo de metodologías ágiles
28
Por lo tanto, y tomando en cuenta lo que indica la teoría de la metodología en cuestión, tenemos que, los elementos que componen a la estructura de la metodología SCRUM de acuerdo al proyecto planteado, son (ver Tabla 1.9. Integrantes para aplicación de metodología SCRUM):
ELEMENTO SCRUM Definición de cada Elemento Persona(s) involucrada(s)
Scrum Master Director del Proyecto de tesis Ing. Guido Riofrío
Product Owner Dueño del producto. Directora del
CI. Lic. Tatiana González
Team Grupo de desarrollo. Para este
caso, solo una persona. Max Morillo
Product Backlog Pila de requisitos a implementar.
Ver Tabla 1.9.
Max Morillo
Sprint Backlog Pila de requisitos por cada
elemento del product backlog. Ver Tabla 1.10.
Max Morillo
Sprint Tiempo definido para el Product
Backlog
Tabla 1.9. Integrantes para aplicación de metodología SCRUM
1.7.1.1. Proceso de aplicación de metodología SCRUM.
Con los datos de la investigación preliminar, se puede hacer un acercamiento detallado de cómo funcionará la metodología SCRUM para el presente tema.
Cabe indicar que esta metodología está pensada en la colaboración entre miembros de desarrollo para lograr obtener un resultado óptimo en el menor tiempo, por lo que al ser este tema de implementación unipersonal, se tratará de enfocar los puntos que señala la metodología haciendo énfasis en la colaboración de todas las personas involucradas.
A continuación se detallan como ejemplo, algunos de los requerimientos observados de
acuerdo al estudio preliminar (Ver cuadro Tabla 1.10. Pila de requerimientos priorizados
29
Requerimientos Prioridad Estimación
del Valor (Rango 1- 7)
Estimación del Esfuerzo Inicial
(Rango 1- 25)
Elaborar un portal para el Centro Infantil 1 5 12
Crear un aplicativo de monitoreo de niños
embebido en el portal del Centro infantil. 2 6 15
Tabla 1.10. Pila de requerimientos priorizados (Product Backlog)
De acuerdo al cuadro anterior (Tabla 1.10.), se desprenden los “Sprint Backlogs”, que no
son otra cosa que tareas agrupadas y asignadas al desarrollador (a mi persona, en este caso por ser un tema unipersonal) con una estimación del valor, para la evacuación de los
mismos (Ver Anexo 2. Apartado A2.3.), así se tiene el siguiente cuadro ejemplo (Tabla
1.11. Sprint Backlog.):
Product Backlog (pila de requerimientos)
Sprint Task (Tareas por Sprint) Desarrollador Tiempo de
duración estimado
Elaborar un portal para el Centro Infantil
- Crear página Web principal con Liferay Portal.
Max Morillo 2 semanas
….
- Manejar roles de usuarios, etc. ……….
1 día ………..
… …. … …
Tabla 1.11. Sprint Backlog.
En el Anexo 2. (Descripción de la metodología SCRUM), se mostrará la aplicación de la metodología completa y su aplicabilidad al desarrollo del aplicativo del tema en cuestión.
1.7.2. LIFERAY, como portal.
Una definición aproximada de Portal, de acuerdo a la experiencia personal en la
utilización de Portales es: “Sitio WEB que proporciona a las personas el acceso a
información, aplicaciones y procesos de negocios. Todo esto, desde un único punto de entrada”.
En la actualidad existen un sinnúmero de empresas o marcas, que han desarrollado Portales o manejadores de portales, tendientes a dar facilidad en la implementación de este tipo de soluciones. Tal es así, que empresas de renombre como: IBM, Oracle,
30
soluciones, entre los cuales tenemos: Websphere Portal, Oracle Portal, Jboss Portal, etc, respectivamente. La mayoría de estas empresas, por sus características, desarrollan aplicaciones o herramientas “propietarias”, sin embargo, las herramientas Open Source, han ido ganando terreno, por lo que han proliferado un sinnúmero de ellas por sus ventajas económicas y técnicas.
Tomando en cuenta las diferentes opciones que se tienen en el mundo de los portales OpenSource, y al ser uno de los objetivos del desarrollo del presente tema el hecho de utilizar este tipo de herramientas, se ha seleccionado a Liferay (Ver Anexo.3. Revisión General de Liferay como Portal) por las siguientes razones:
- Está basado100% en Java, por lo tanto, se puede adaptar cualquier aditamento
hecho o por desarrollar en el mismo lenguaje.
- Se puede instalar sobre cualquier plataforma o SO, por lo que se hace fácil su
mantenimiento e instalación.
- Es OpenSource (en su versión Community), lo que facilita la personalización e
incorporación de cualquier cambio que se requiera, sin la necesidad de estar atados a las especificaciones del fabricante.
- Facilita a cualquier usuario, ya sea este principiante o experto, el manejo y administración del portal. En el caso del presente tema, el portal debe permitir el fácil manejo de la administración al grupo de usuarios “Administrador”, que en este caso será la directora del Centro Infantil o a quien delegue tal acción.
- Se puede manejar un motor de base de datos independiente al que viene por
defecto (HSQL), por lo que es posible conectar a la base de datos seleccionada para este caso (MYSQL). Con esto se posibilita el almacenamiento de la información relacionada a por ejemplo: Usuarios, Grupos de usuarios, etc.
- Se pueden “construir” aplicaciones (Portlets), para adaptarlas al portal, sin
ningún tipo de modificación a la estructura de Liferay. En el caso específico del presente tema, se deberá crear una aplicación o portlet para el manejo de las imágenes que genere la cámara IP conectada en el Centro Infantil.
- Posee “potentes” formas de dar seguridad al acceso de usuarios, lo que hace
fácil el manejo de la autenticación de usuarios.
- También es factible realizar enlaces con otras aplicaciones (servidores LDAP),
31
A continuación se muestra un cuadro general comparativo de las fortalezas y debilidades (Tabla 1.12. Fortalezas y debilidades de los portales) entre 3 proveedores de Portales (JbossPortal, eXo y LIFERAY), de los cuales sin duda, se destaca además de las razones anteriormente expuestas, por lo siguiente:
JBOSS eXo LIFERAY
Fortalezas Licencia Open
Source Variedad herramientas de
colaborativas
Distribuido junto a un
elevado número de
portlets funcionales
Variedad en las
opciones de
mantenimiento
ofrecidas por la
empresa
Licencia Open Source Temas y plantillas de
aspecto desarrollados por la comunidad
Abierto a distintos
servidores de
aplicación
Licencia Open Source
Debilidades Sólo utiliza el
servidor de
aplicación Jboss
Complejidad del
desarrollo de
componentes para el portal
Necesarios conocimientos avanzados de J2EE (JEE), para el desarrollo de componentes del portal
Tabla 1.12. Fortalezas y debilidades de los portales
Una de las funcionalidades interesantes que tiene liferay entre otras y que sin duda es uno de los dolores de cabeza de cualquier desarrollador de sistemas, es lo referente al manejo de seguridades. Para este punto, Liferay opera con diferentes tipos de manejo de seguridades como:
General
LDAP (Lightweight Directory Access Protocol) CAS (Central Authentication Service)
NTLM (NT Lan Manager) OPEN
SSO (Single Sign On)
32
Además de las seguridades, Liferay al ser un producto de código abierto, se puede explotar una característica importante y que refiere a la implementación y puesta en marcha de
Portlets (aplicaciones pequeñas) en “caliente”, es decir, se puede aplicar un portlet
determinado y el o los usuarios del portal lo verán inmediatamente desplegado (siempre que tengan acceso para su visualización, claro está).
33
34
1.7.2.1. Esquema de funcionamiento de la solución con Liferay
Tomando en cuenta las características indicadas tanto en la Figura 1.8 (Modelo de funcionamiento de liferay), así como las fortalezas del mismo, para el presente tema de desarrollo se tiene que funcionaría bajo el siguiente esquema (Ver Figura 1.9. Esquema general de funcionamiento de solución con Liferay):
Figura. 1.9. Esquema general de funcionamiento de la solución con Liferay
En la fase 2 de “diseño del modelo”, se especificará a profundidad toda la estructura del modelo a seguir para la implementación de la solución.
Sin embargo, como veremos en el siguiente apartado de “Portlets”, éstos al ser aplicaciones
que se las puede desarrollar y personalizar de acuerdo a las necesidades de los usuarios, se podrá observar cómo se facilita el desarrollo de un portlet utilizando “Eclipse” como
framework de desarrollo del portlet del manejo de video de la cámara IP.
BDD Manejo de Seguridades
“General”
Roles y Permisos
Administración de Portlets LIFERAY PORTAL
35
1.7.2.2. Portlets (Aplicativos)
Como se había mencionado anteriormente, Portlet hace referencia a un pequeño programa web que corre en un portal. Liferay (al igual que otros Portales) al trabajar con Portlets, hace que cada uno de ellos se comporte como una aplicación.
Para la implementación de Portlets, se debe tomar en cuenta el estándar JSR-2865, que es
un modelo de programación conveniente para los desarrolladores de portlets en Java.
Este nuevo modelo JSR-286 que se creó posterior al modelo JSR-168 es una versión mejorada, y es la versión 2.0 de Java Portlet Specification, desarrollada según el JCP(Java
Community Process) y creada en alineación con la versión 2.0 de Servicios Web para
Portlets Remotos (en inglés Web Services for Remote Portlets WSRP).
Entre las características principales de este estándar están:
Comunicación entre Portlets a través de eventos y renderización de parámetros públicos.
Entregar recursos generados dinámicamente de forma directa mediante los portlets.
Entregar datos de AJAX6 o JSON7 de forma directa mediante los portlets.
Introducción de filtros y escuchas de portlets.
Tomando en cuenta la Fig 1.9 (Esquema general de funcionamiento de solución con
Liferay), se puede observar el proceso “Administración de Portlets”, el cual es manejado
enteramente por el portal en sí (LIFERAY), como se pudo observar en la figura 1.8. (Modelo de funcionamiento de Liferay).
Por lo tanto, fácilmente se puede deducir la gran facilidad de administración de portlets, tanto los propios o “nativos” del portal, como de los portlets definidos por el usuario.
5
JSR-286.- Del inglés Java Specification Request. Estándar para la implementación de portlets, desarrollado para mejorar las deficiencias de la versión 1.0 de la especificación JSR-168.
6AJAX.- Siglas del inglés Asynchronous Javascript And Xml. Técnicas de desarrollo para crear aplicaciones
interactivas.
7
36
El siguiente gráfico (Figura 1.10. Esquema de administración de Portlets), ilustra el funcionamiento macro de cómo tanto la utilización del código abierto de Liferay (SDK de Liferay), como del framework correspondiente (Eclipse en este caso), se puede obtener una aplicación o portlet que sea fácilmente ser insertado dentro del portal. Cabe anotar que esta facilidad de desarrollo se da por la ya anotada característica de Liferay que es 100% basada en java.
Figura. 1.10. Esquema de administración de Portlets
1.7.3. ECLIPSE, como Framework para desarrollo de Portlets.
En la actualidad existen muchas herramientas para desarrollo e implementación de código, entre las cuales y las más destacadas por su utilización a nivel mundial están: Eclipse (Fundación Eclipse) y Netbeans (patrocinado por Sun Microsystems).
En la tabla 1.13 (Características de los dos principales entornos de trabajo), se hace una explicación resumida de las bondades de los dos frameworks antes mencionados. Cabe señalar que no existe una característica especial que haga la gran diferencia entre los dos entornos de desarrollo, por lo que generalmente se aplica la familiaridad y
37
adaptabilidad para trabajar, por parte de un desarrollador, como factores que hagan inclinarse hacia una u otro entorno de trabajo.
NETBEANS ECLIPSE
Basado en asistentes (wizards) Compilación en tiempo real Dispone de editor de texto con revisión de
sintaxis.
Dispone de editor de texto con resaltado de Sintaxis
Se puede administrar las interfases y configuraciones de usuario
Integración con ANT
Basado en sistema de proyectos de ANT Se pueden realizar pruebas unitarias con Junit Control de versiones Control de versiones con CVS8
Refactoring Integración con Hibernate
Maneja varios lenguajes, JAVA incluido. Dispone de asistentes (wizards), para creación de proyectos, clases, etc.
Soporta Plug-ins Refactoring
Soporta agregación de Plug-ins
Maneja varios lenguajes, entre los cuales está JAVA
Tabla 1.13. Características de los dos principales entornos de trabajo
Para el caso específico del presente proyecto de tesis, se seleccionó Eclipse como entorno de trabajo, debido a que Liferay (Portal) ya dispone de un Plug-in para este framework, y adicionalmente por la familiaridad con este framework (entorno de trabajo). Finalmente Eclipse al igual que Netbeans, también maneja muy bien Java como lenguaje de programación, por lo que es un punto importante a tomar, en la selección del framework antes mencionado.
En la figura 1.10 (Esquema de administración de Portlets), se puede observar cómo Eclipse se adapta para el desarrollo de los portlets, y en el caso de este tema de tesis, para la
implementación del portlet “Monitoreo de Web Cam”.
Por lo tanto Eclipse (Ver ANEXO 4. ECLIPSE, como Framework para desarrollo de Portlets), será la herramienta a utilizar para el desarrollo del portlet correspondiente al manejo del video que emitirá la cámara Web, el mismo que dará la funcionalidad requerida por el Centro de Desarrollo Infantil Popeye’s, además, que se puede aprovechar el código fuente de Liferay para su debida implementación.
8CVS.- del inglés Concurrent Versioning System. Aplicación que permite controlar las versiones del código o
38
A continuación se muestra el diagrama de representación de cómo eclipse interactuará con
liferay (SDK9 de liferay), para la implementación del portlet correspondiente. (Ver Figura
1.11. Esquema de trabajo con Eclipse)
Figura. 1.11. Esquema de trabajo con Eclipse
9SDK.- Siglas del ingés Software Developement Kit. Conjunto de herramientas de desarrollo que ayudan a
un programador a crear aplicaciones.
Plug-In A
Plug-In B
Plug-In LIFERAY
SDK . . . LIFERAY
Aplicación Web del
Portal
“Centro
Infantil
Popeyes”
API Web Cam Portlet
“Monitoreo Web Cam”
Web Cam
39
FASE 2
MODELAMIENTO Y DESARROLLO DEL APLICATIVO
Una vez se ha realizado tanto la investigación preliminar, como la selección de las herramientas adecuadas para el desarrollo del presente proyecto, en esta fase se determinará el modelo a seguir y su inmediata implementación, tomando en cuenta toda la información recopilada, la cual se ha consolidado para modelar la solución.
A continuación se muestra un resumen de lo que es el Centro Infantil, para seguir con el proceso de análisis y desarrollo del presente tema.
2.1. Perfil del Centro Infantil.
El Centro Infantil, se dedica al cuidado, educación y atención de niños en edades
comprendidas entre el 1 año hasta los 6 años de edad. Tiene como objetivo: “Contribuir
técnica y profesionalmente para que los niños y niñas alcancen un desarrollo bio-psico-socio cultural-espiritual adecuado, dentro de un marco afectivo y de valores respetando su
ecosistema y su ideología”10.
Tomando en cuenta lo expuesto en la primera fase (Ver apartado 1.1. Datos generales del
Centro Infantil Popeye’s), el Centro Infantil (CI) requiere de una solución web para facilitar
a sus clientes (padres de familia) obtener información de lo que el Centro Infantil hace, así como facilitar un acceso seguro para el monitoreo sus niños vía internet.
De lo indicado anteriormente, se puede concluir que específicamente el CI necesita:
1. Un Portal Web para el CI, en el que los usuarios puedan acceder a la información del
mismo, y que contendrá lo siguiente:
10
40
o Información General del Centro Infantil.
o Administración de usuarios
o Creación de un aplicativo de captura de imágenes digitales, para posterior
monitoreo de niños a usuarios autenticados.
Para la creación del Portal, así como la administración de usuarios, se utilizará LIFERAY, del cual se reutilizará toda la lógica interna para el manejo tanto de la administración del portal, como la administración de usuarios.
2.2. Planificación del proyecto utilizando la metodología SCRUM
Como primer punto de partida en esta fase, se tiene la especificación del Product Backlog (“pila de requerimientos”) completo (Ver. Tabla. 2.1. Product Backlog inicial), esto tomando en cuenta la metodología SCRUM. En esta “pila de requerimientos”, se ha detallado los requerimientos fundamentales implicados en el presente proyecto.
Requerimientos Prioridad Estimación
del Valor Rango (1-7)
Estimación del Esfuerzo Inicial
Rango (1-25)
Elaborar un portal para el Centro Infantil 1 5 12
Crear un aplicativo de monitoreo de niños embebido
en el portal del Centro infantil. 2 6 15
Tabla 2.1. Product Backlog inicial
De acuerdo a la tabla anterior, se puede observar que se tiene únicamente dos requerimientos que englobarán las diferentes tareas o actividades, las cuales se las detalla en la tabla de Sprint BackLog (Ver. Tabla 2.2.). De acuerdo a la metodología, la tabla de Sprint Backlog, contiene todas las tareas a realizar y las cuales tienen un peso así como un tiempo estimado de desarrollo.
En el proceso de “desarrollo” de cada una de las tareas, el miembro del equipo de
desarrollo se encarga de cada una de las tareas. El término “Sprint” comúnmente utilizado
en las carreras de autos, se debe justamente a su derivación de “velocidad”, donde cada tarea se la realiza en el menor tiempo posible. A continuación se detalla la lista de tareas
41
Elemento de la Pila del Producto Tareas por Sprint Voluntario Sprint Estimación
del Esfuerzo
Inicial Rango
(1-7)
Elaborar un portal para el Centro Infantil
Analizar y obtener requerimientos del cliente para el portal del CI
Max Morillo
1 4
Diseñar el modelo conceptual del portal 1 5
Diseñar pantallas de portal de acuerdo al modelo conceptual del mismo 1 4
Consultar en diferentes fuentes la documentación sobre instalación de Liferay Portal. (Adquirir bibliografía de autores experimentados en la herramienta).
2 7
Instalar y configurar java jdk en servidor Linux CentOs 5. 2 3
Instalar y configurar Mysql en servidor CentOs 5. Incluye creación de instancia de BDD para interacción con Liferay.
2 3
Descargar la versión libre de Liferay 6.0.5. Versión Community + Jboss AS 2 1 Configurar el servidor de aplicaciones Jboss embebido en Liferay Portal. 2 6
Definir plantilla de temas (Template) para el portal, y disposiciones (Layouts) de cada página. 3 3
Crear página Web principal y opciones públicas, con Liferay Portal. 3 5
Crear usuarios en liferay, de acuerdo a listado entregado por la Directora del CI. 4 4
Crear grupos de usuarios en liferay, para asignación de usuarios. 4 4
Crear roles para asignación a grupos de usuarios y sus permisos correspondientes. 4 4
Definir restricciones de acceso a opción de "Monitoreo Web Cam." 4 3
Instalar Cámara con conexión a Router Inalámbrico Dlink DIR-600 5 6
Crear un DNS dinámico para conexión remota de cámara IP Dlink. (ver alojamiento Dinámico gratis
DYNDNS.ORG) 5 5
Investigar la forma de emisión de video de la cámara, para captura de imágenes desde el portlet a crear. 5 7
42
Crear un aplicativo de monitoreo de niños, embebido en el portal del Centro
Infantil
Analizar y obtener requerimientos del modelo del aplicativo de monitoreo de niños 6 4
Diseñar el modelo conceptual del portlet para el monitoreo de niños 6 5
Diseñar el modelo de Casos de Uso del aplicativo de monitoreo 6 5
Descargar plug-in de Liferay con Tomcat, para Eclipse. 7 1
Cargar y configurar Plug-in de Liferay SDK para Eclipse en ambiente de desarrollo. 7 5
Crear un nuevo proyecto Plug-in Portlet llamado CamaraIPPortlet 7 6
Investigar la forma de generación de portlets con framework de Liferay. 7 7
Crear archivo "service.xml", con definiciones de tabla de datos para la generación vía ServiceBuilder de
Liferay, del modelo, servicio y persistencia de datos. 8 3
Definir entorno de variables para desarrollo de portlet de acuerdo a especificaciones de Liferay. 8 2 Programar métodos para almacenamiento y recuperación de datos 8 3
Programar View.jsp de presentación de imagen de cámara IP 8 5
Programar View.jsp de administración de Salones 8 5
Programar métodos de administración de Permisos para los portlets creados 8 5
Desplegar proyecto en ambiente de desarrollo para pruebas de conexión. 8 3
Desplegar proyecto en ambiente de producción. 9 5
Realizar pruebas de funcionamiento de los portlets desplegados en producción 9 4
Observación de impacto de la solución en Padres de familia con acceso a portal 9 4
Documentar y digitar marco teórico de tesis 10 7
43
Para el desarrollo del presente proyecto, se irá especificando cada tarea del Sprint Backlog de su correspondiente requerimiento, así como toda la documentación de implantación o desarrollo de la misma, se la puede observar en el Anexo 2 (Descripción de metodología de desarrollo SCRUM).
2.3. Análisis y Desarrollo del requerimiento: “Elaborar un portal para el Centro Infantil”.
Una vez que se han definido los 2 requerimientos globales que conforman la documentación del Product Backlog (Pila de requerimientos) para el presente tema de tesis, se empezará con el desarrollo del requerimiento de la elaboración del portal para el Centro Infantil.
Para el desarrollo de este requerimiento, se realizará una especificación detallada de cada una de las tareas que se definieron en la tabla 2.2. (Sprint Backlog), cuya documentación completa de la aplicación de la metodología se podrá observar en el Anexo 2. (Descripción de metodología de desarrollo SCRUM)
2.3.1. Análisis del Portal
El portal del CI debe permitir lo siguiente:
1. Mostrar la información general del Centro Infantil.
2. Realizar encuestas a Padres de Familia.
3. Ingresar usuarios con roles de Padres de Familia al sistema.
4. Ingresar y Mostrar noticias de interés.
5. Ocultar opciones de monitoreo de niños a usuarios Invitados.
44
2.3.2. Diseño del modelo conceptual del Portal
Como se podrá observar en la figura 2.2. (Estructura del portal del CI), existirán 7 opciones principales dentro del portal del CI. En cada una de las opciones se puede apreciar cada uno de los tipos de usuarios que podrán tener acceso a dicha información.
El monitoreo de niños, por lo tanto, debe ser únicamente para los Padres de Familia y Administrador del Portal, por cuestiones obvias de seguridad.
Figura. 2.2. Estructura del portal del CI
2.3.3. Diseño de pantallas del portal
Para la construcción del portal, y tomando en cuenta el modelo de la figura 2.2. (Estructura del portal del CI), se tendrán los siguientes diseños de pantallas.
Home
Inicio
Quienes Somos
Noticias
Sugerencias para padres
Contáctenos
Monitoreo Web Cam
Administración Salones
Accesos
(Guest)
(Guest)
(Guest)
(Guest)
(Guest)
(Padre de Familia)
45
2.3.3.1. Diseño de Pantalla “Inicio”
Figura. 2.3. Diseño de Página “Inicio” del CI
2.3.3.2. Diseño de Pantalla “Quienes Somos”
Figura 2.4. Diseño de Página “Quiénes Somos”
Inicio Quiénes Somos Noticias Sugerencias para Padres Contáctenos Monitoreo Web Cam Administración Salones
Objetivo del Centro Infantil
Visión:
Visión:
Login: * LOGO
Misión:
Inicio Quiénes Somos Noticias Sugerencias para Padres Contáctenos Monitoreo Web Cam Administración Salones
Publicidad o Fotos del CI
PORTLET DE NOTICIAS DEL CI PORTLET DE INFORMACIÓN GENERAL DEL CI
Navegación
Link de Horarios Link de Instalaciones Link de Fotografías ….
46
2.3.3.3. Diseño de Pantalla “Noticias”
Figura 2.5. Diseño de Página “Noticias”
2.3.3.4. Diseño de Pantalla “Sugerencias para Padres”
Figura 2.6. Diseño de Página “Sugerencias para Padres”
Inicio Quiénes Somos Noticias Sugerencias para Padres Contáctenos Monitoreo Web Cam Administración Salones
NOTICIAS
Entradas
Login: * LOGO
Inicio Quiénes Somos Noticias Sugerencias para Padres Contáctenos Monitoreo Web Cam Administración Salones
Login: * LOGO
NOTICIAS
47
2.3.3.5. Diseño de Pantalla “Contáctenos”
Figura 2.7. Diseño de Página “Contáctenos”
2.3.3.6. Diseño de Pantalla “Monitoreo Web Cam”
Figura 2.8. Diseño de Página “Monitoreo Web Cam”
Inicio Quiénes Somos Noticias Sugerencias para Padres Contáctenos Monitoreo Web Cam Administración Salones
Login: * LOGO
Inicio Quiénes Somos Noticias Sugerencias para Padres Contáctenos Monitoreo Web Cam Administración Salones
Login: * LOGO
Mapa del centro Datos de teléfono, Dirección, e-mail del Centro
Infantil
Fecha Emisión: ___________ Hora Emisión:_______
Menores de 2 años V
Salón: de 2
48
2.3.3.7. Diseño de Pantalla “Administración Salones”
Figura 2.9.Diseño de Página “Administración Salones”
2.3.4. Desarrollo del portal utilizando Liferay Portal
La primera etapa del desarrollo del portal implica una serie de acciones que se describen en los apartados siguientes y que permitirán tener el entorno de Liferay operativo para desarrollar el contendio del portal e iniciar el desarrollo del aplicativo propuesto.
Liferay al ser una herramienta de código abierto, tanto el servicio técnico, así como el soporte y documentación están en cierta medida restringidos al público en general, por lo que la mayoría de desarrolladores que utilizan esta herramienta debe revisar un sinnúmero de foros y documentación de comunidades para dicha implantación. Obviamente existe un servicio pagado que permite una instalación sin complicaciones, esta versión se la denomina “Enterprise”, pero para este caso, se utilizará la información y documentación del grupo “COMMUNITY”.
Avanzando en el proceso de instalación de Liferay para la implementación del portal, se tiene que para dicho proceso es necesario contar con los siguientes pre-requisitos:
Inicio Quiénes Somos Noticias Sugerencias para Padres Contáctenos Monitoreo Web Cam Administración Salones
Login: * LOGO
Guardar Id:
Menores de 2 años
Nombre:
192.168.1.2
Ip. Cámara:
800
Puerto:
/video/mpeg.cgi
URL:
Id
. Nombre Salón Ip. Cámara Puerto URL Acciones
49
1. Servidor de Hosting con mínimo 2GB de Memoria y 250GB de disco, con Sistema
Operativo CentOs 5.0.
2. Instalación de JDK de java 5.0 o superior. (De preferencia v. 6.0.22).
3. Instalación de base de datos MySql en CentOs.
4. Acceso vía Putty al servidor como administrador o “root”.
5. Paquete de Liferay 6.0 para su instalación.
En el sitio oficial de Liferay (http://www.liferay.com), existe un link que deriva a los foros (ej. http://www.liferay.com/es/community) de discusión tanto de la instalación como de los diferentes problemas que se presentan en la instalación de Liferay, especialmente con los
“bundles” o servidores de aplicaciones embebidos o que vienen con alguna distribución.
Para este caso se tomará la distribución: “Liferay Portal Community Edition bundled
with JBoss”, es decir la versión de Liferay con Jboss como servidor de aplicaciones.
Los recursos a utilizarse con sus correspondientes valoraciones, se las puede observar en el Anexo 6. (Recursos a utilizar en el desarrollo de la solución).
2.3.4.1. Documentación de implantación de Liferay
Tomando en cuenta los pre-requisitos, así como la información recopilada tanto del sitio oficial como de la documentación existente en otros foros y libros editados por expertos en Liferay, a continuación se detalla la documentación del proceso de implantación de Liferay Portal.
2.3.4.1.1. Instalación de Java en CentOs 5.0
Una vez que se ha contratado el hosting (Ver Anexo 5. Hosting), se deberá realizar la instalación en primer lugar del JDK de java. Para esto se deberán realizar los siguientes pasos:
1. Bajar la versión de JDK (disponible en el sitio oficial https://cds.sun.com). Para la
versión de CentOs 5.0, se deberá obtener el JDK mediante el comando:
$ wget –c jdkADescargar
2. Una vez realizado el “download” o descarga del JDK, se deberá realizar la
50
3. Luego de la instalación se deber realizar la declaración de las variables de ambiente. En el caso de CentOs, se deberá definir la variable JAVA_HOME, así:
$ export JAVA_HOME=/home/jdk $ export PATH=/home/jdk/bin:$PATH
$ echo $JAVA_HOME --> para verificar la instalación de la variable.
2.3.4.1.2. Instalación de Mysql en CentOs
Para la instalación de Liferay es necesario disponer de una base de datos, aunque no es “indispensable”, debido a que trae internamente preinstalada una base “Hsql”. Para este caso, se utilizará Mysql, por lo que a continuación se detalla los pasos para dicha instalación:
1. Obtener la versión de Mysql (del sitio oficial http://dev.mysql.com).
2. Instalar la versión descargada de mysql.
3. Una vez instalada la versión de Mysql, se debe ingresar y crear la instancia
correspondiente para Liferay, así:
$ mysql –unombreusuario –ppassword
Si las credenciales son correctas, mostrará un mensaje como el que sigue:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 119
Server version: 5.1.37-1ubuntu5 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
4. Crear la instancia para liferay una vez se esté dentro de mysql, así:
mysql> create database lportal character set utf8;
51
2.3.4.1.3. Instalación de Liferay con JBoss en CentOs 5.0
La versión de Liferay a instalar será la que viene con el “bundle Jboss” como servidor de
aplicaciones. Para dicha instalación, se deberán realizar los siguientes pasos:
1. Obtener la versión de Liferay con bundle Jboss (en el sitio oficial de Liferay
http://www.liferay.com/es/downloads/liferay-portal/available-releases).
2. Desempaquetar en un directorio, de preferencia del “/home”. Posteriormente se deberá
configurar el archivo “/liferay/jboss…/bin/run.conf”, donde se deberá determinar la
cantidad de memoria que utilizará el servidor de aplicaciones.
3. Crear el archivo “portal-ext.properties” en el directorio raíz de liferay (esto para la
versión 6.0.5), donde constará la conexión a la base de datos Mysql, así:
“# MySQL #
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncodin g=UTF-8&useFastDateParsing=false
jdbc.default.username=admin jdbc.default.password=cholismoquis portal.ctx=/”
4. Borrar los accesos a la base de datos original “hsql” y el directorio “sevencogs*”, ya
que si no se realiza este paso, Liferay tomará como inicio la base hsql, la cual no es recomendada en ambientes de implantación reales, según indicación del mismo fabricante.
5. Configurar el archivo “httpd.conf”, donde se configurará el puerto, así:
6. Configurar el archivo “/liferay/jboss../server/default/
desplegar/jboss.sar/WEB-INF/server.xml”, donde se pondrá el puerto 80 en vez del 8080, para que el portal responda al nombre de dominio contratado.
7. Arrancar el servidor de aplicaciones “jboss”, con el comando:
“sudo nohup ./run.sh –b 0.0.0.0 &”
El servidor mostrará el siguiente mensaje de carga completada:
“01:57:34,487 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_ 5_1_0_GA date=200905221053)] Started in 39s:811ms”
8. En un “browser” o navegador, colocar la dirección del dominio contratado, para la