64
1 IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE CRAWLING, PARA LA BÚSQUEDA DE INFORMACIÓN DE CONVOCATORIAS Y BECAS PARA EL GRUPO DE INVESTIGACIÓN LIDIS DE LA UNIVERSIDAD SAN BUENAVENTURA DE CALI UNIVERSIDAD SAN BUENAVENTURA DE CALI FACULTAD DE INGENIERÍAS PROGRAMA DE INGENIERÍA DE SISTEMAS CALI - VALLE DEL CAUCA - COLOMBIA 2016

IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

1

IMPLEMENTACIÓN DE UN PORTAL WEB POR

MEDIO DE CRAWLING, PARA LA BÚSQUEDA

DE INFORMACIÓN DE CONVOCATORIAS Y

BECAS PARA EL GRUPO DE INVESTIGACIÓN

LIDIS DE LA UNIVERSIDAD SAN

BUENAVENTURA DE CALI

UNIVERSIDAD SAN BUENAVENTURA DE CALI

FACULTAD DE INGENIERÍAS

PROGRAMA DE INGENIERÍA DE SISTEMAS

CALI - VALLE DEL CAUCA - COLOMBIA

2016

Page 2: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

2

IMPLEMENTACIÓN DE UN PORTAL WEB POR

MEDIO DE CRAWLING, PARA LA BÚSQUEDA

DE INFORMACIÓN DE CONVOCATORIAS Y

BECAS PARA EL GRUPO DE INVESTIGACIÓN

LIDIS DE LA UNIVERSIDAD SAN

BUENAVENTURA DE CALI

LUIS CARLOS BURBANO REALPE

Proyecto de Grado Presentado Para Optar al Título de

Ingeniero de Sistemas

Directora del Proyecto

Emilia Rocío Segovia Jiménez

Msc. Ingeniera Sistemas

UNIVERSIDAD SAN BUENAVENTURA DE CALI

FACULTAD DE INGENIERÍAS

PROGRAMA DE INGENIERÍA DE SISTEMAS

CALI - VALLE DEL CAUCA - COLOMBIA

2016

Page 3: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

3

NOTA DE ACEPTACIÓN: El trabajo titulado IMPLEMENTACIÓN DE UN PORTAL

WEB POR MEDIO DE CRAWLING, PARA LA

BÚSQUEDA DE INFORMACIÓN DE CONVOCATORIAS

Y BECAS PARA EL GRUPO DE INVESTIGACIÓN LIDIS

DE LA UNIVERSIDAD SAN BUENAVENTURA DE CALI,

presentado por LUIS CARLOS BURBANO REALPE, en

cumplimiento parcial de los requisitos para optar el título de

Ingeniero de Sistemas.

HA SIDO APROBADO POR

Ingeniera, Emilia Rocío Segovia Jiménez Directora del Proyecto

Ingeniero, Hugo Armando Ordoñez Erazo Jurado del Proyecto

Ingeniero, José Luis Jurado Muñoz Jurado del Proyecto

Page 4: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

4

Dedicatoria

Doy gracias a Dios, por darme salud y colgar en mi ventana

cada mañana la luz de un nuevo día, agradezco a mi

familia, por darme amor y estar incondicionalmente

siempre ahí, a mis amigos, profesores y compañeros del

destino, gracias, gracias por que el camino de la vida solo

es un gran viaje si tienes la fortuna de estar rodeado de

personas como ustedes.

SOÑE que LA VIDA y EL DESTINO eran amantes, que

absolutamente todo lo hacían juntos, que ambos sabían que EL

CAER no es importante, si te levantas con más INTENSIDAD que

antes, dejando una HUELLA digna que seguir…. y haciendo de tu

VIDA un sueño ETERNAMENTE MAGICO…………. (Luis CBR).

Page 5: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

5

TABLA DE CONTENIDO

1. Capítulo I............................................................................................................ 13

1.1 Introducción .................................................................................................. 13

1.2 Planteamiento del Problema ......................................................................... 14

1.3 Justificación .................................................................................................. 15

1.4 Objetivos ....................................................................................................... 17

1.4.1 General ................................................................................................... 17

1.4.2 Específicos ............................................................................................. 17

2. Capitulo II ........................................................................................................... 18

2.1 Estado del Arte ............................................................................................. 18

2.1.1 Apartes históricos del Uso de Herramientas Tipo Crawler ..................... 18

2.1.2 Evolución en los Procesos del Crawling ................................................. 19

2.1.3 Portales Web Para Búsqueda de Información de Becas Por Medio de

Crawling .......................................................................................................... 20

2.1.4 Nodoka ................................................................................................... 20

2.1.5 Universia ................................................................................................ 21

2.1.6 Características de Funcionalidades No Consideradas en los Portales

Nodoka y Universia, que fueron adicionadas al presente proyecto. ................ 22

2.2 Marco Conceptual ......................................................................................... 23

2.2.1 Que es un Crawler.................................................................................. 24

2.2.2 Que son Semillas en un Crawler ............................................................ 24

2.2.3 Arquitectura de un Buscador Web Basado en Crawler .......................... 25

3. Capitulo III .......................................................................................................... 27

3.1 Análisis del Alcance del Proyecto ................................................................. 27

3.2 Descripción de Requerimientos del Proyecto ............................................... 28

3.2.1 El sistema debe generar una lista de links de CBV y mostrarlos al

usuario en pantalla .......................................................................................... 28

3.2.2 El sistema debe permitir generar búsquedas de información de

convocatorias y becas ..................................................................................... 29

Page 6: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

6

3.2.3 El sistema debe generar una lista de links de CBV recomendados y

mostrarlos al usuario en pantalla ..................................................................... 29

3.3 Diagrama General de los Casos de Uso del Proyecto .................................. 30

3.4 Arquitectura de la Aplicación ........................................................................ 31

3.4.1 Modulo de Presentación ......................................................................... 32

3.4.2 Modulo de Lógica ................................................................................... 32

3.4.3 Modulo de Persistencia .......................................................................... 32

4. Capitulo IV ......................................................................................................... 33

4.1 Diseño de la Herramienta ............................................................................. 33

4.2 Tecnologías Requeridas en el Desarrollo ..................................................... 33

4.2.1 Spring Tool Suite (STS) .......................................................................... 33

4.2.2 Zathuracode ........................................................................................... 33

4.2.3 MySQL ................................................................................................... 33

4.2.4 Apache Tomcat ...................................................................................... 34

4.2.5 CSS ........................................................................................................ 34

4.3 Modelo Entidad Relación .............................................................................. 34

4.3.1 Descripción del Modelo .......................................................................... 35

4.3.1.1 Estructura de Datos, Tabla BECAS: .................................................... 36

4.3.1.2 Estructura de Datos, Tabla SITIOS_RECOMENDADOS: ................... 37

4.3.1.3 Estructura de Datos, Tabla USUARIO: ................................................ 37

4.3.1.4 Estructura de Datos, tabla HISTORICO_BUSQUEDAS: ..................... 38

4.4 Diagrama de Componentes del Proceso de Descarga de Información a la

Base de Datos .................................................................................................... 38

4.4.1 Component Clien Side (Componente Lado Cliente) ............................... 39

4.4.2 Component Server Side (Componente Lado Servidor) .......................... 40

4.4.3 Component DataBase (Componente de Base de Datos) ....................... 40

5. Capítulo V .......................................................................................................... 41

5.1 Implementación de la Herramienta ............................................................... 41

5.2 Diagrama de Secuencia del Proceso Automatizado para Descargar

Información de Becas ......................................................................................... 41

5.2.1 Descripción de la Interacción de los Objetos .......................................... 42

5.3 Estructura de los Procesos ........................................................................... 43

Page 7: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

7

5.3.1 Proceso de Extracción de Información dentro de las URLs Visitadas .... 44

5.3.2 Proceso de Caracterizar la Información Extraída de Cada URL ............ 44

5.3.3 Proceso de Búsquedas Por Palabra Clave en el Portal ......................... 45

5.4 Configuración de Tareas Programadas ........................................................ 47

5.4.1 Job .......................................................................................................... 47

5.4.2 timerCronTrigger .................................................................................... 48

5.4.3 Sheduler ................................................................................................. 49

6. Capítulo VI ......................................................................................................... 50

6.1 Pruebas ........................................................................................................ 50

6.2 Consideraciones para realizar las Pruebas .................................................. 50

6.3 Prueba Funcional.......................................................................................... 51

6.3.1 Descripción de la Prueba ....................................................................... 51

6.3.2 Objetivo de la Prueba ............................................................................. 51

6.3.3 Identificando Variables (Técnica Arreglo Ortogonal) .............................. 52

6.3.4 Identificando Posibles Combinaciones ................................................... 52

6.3.5 Mapeo del Arreglo Ortogonal ................................................................. 53

6.3.5 Diseñar Requerimiento de las Pruebas .................................................. 53

6.3.6 Condiciones y Resultados (Técnica Tablas de Decisión) ....................... 55

7. Capítulo VII ........................................................................................................ 57

7.1 Resultados .................................................................................................... 57

7.2 Conclusiones ................................................................................................ 59

7.3 Trabajos Futuros y Recomendaciones ......................................................... 60

Referencias ........................................................................................................ 63

Page 8: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

8

Figuras

Figura 1.Portal Web Nodoka (Buscador de Convocatorias). ................................. 21

Figura 2. Portal Web Universia. ............................................................................. 22

Figura 3. Algoritmo Básico de un Crawler. ............................................................. 24

Figura 4. Inserción de Semillas. ............................................................................. 25

Figura 5.Arquitectura Global de un Buscador Web Basado en Crawler. ............... 26

Figura 6. Diagrama Caso Uso Descargar Becas. .................................................. 28

Figura 7. Diagrama Caso Uso Buscar Becas. ....................................................... 29

Figura 8. Diagrama Caso Uso Recomendar Sitios. ............................................... 30

Figura 9. Diagrama General de Casos de uso del Usuario en el Sistema. ............ 30

Figura 10. Arquitectura General del Software. ....................................................... 31

Figura 11. Modelo Entidad Relación. ..................................................................... 35

Figura 12. Diagrama de Componentes Descarga de Becas. ................................. 39

Figura 13. Diagrama de Secuencia Proceso Descarga Becas y Convocatorias. ... 42

Figura 14. Diagrama de Procesos de Descarga de Convocatorias y Becas. ......... 43

Figura 15. Proceso Extracción en una URL. .......................................................... 44

Figura 16. Proceso Caracterización de Información. ............................................. 45

Figura 17. Diagrama de Procesos de Filtrado de Búsqueda. ................................ 46

Figura 18. Uso Sentencias “SQL” para Realizar Búsquedas. ................................ 46

Figura 19. Uso de la Función “UPPER, ||”. ............................................................ 47

Figura 20. Uso del Bean “runMeTask”. .................................................................. 47

Figura 21. Uso del Planificador de Tareas “schedulerJob”. ................................... 48

Figura 22. Uso de la Expresión “timerCronTrigger”. .............................................. 48

Figura 23. Uso del Ejecutor “Sheduler”. ................................................................. 49

Page 9: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

9

Tablas

Tabla 1. Portales para buscar becas en el extranjero. ........................................... 20

Tabla 2. Identificación de Variables Para la Prueba .............................................. 52

Tabla 3. Identificación de Combinaciones. ............................................................ 52

Tabla 4. Plantilla de mapeo de variables con sus opciones. .................................. 53

Tabla 5. Lista de requerimientos para las pruebas. ............................................... 54

Tabla 6. Condiciones y Resultados de la prueba. .................................................. 56

Tabla 7. Fórmulas para Cálculo de Indicadores de Pruebas. ................................ 57

Tabla 8. Representación del tiempo requerido para el desarrollo. ......................... 57

Tabla 9. Tabla del Cálculo de Indicadores. ............................................................ 58

Tabla 10. Gráfico de Adjudicación de Becas de América Latina. .......................... 60

Tabla 11. Estadística de Adjudicación de Becas de América Latina. ..................... 61

Page 10: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

10

Anexos

Los documentos entregados adjuntos a este documento de Proyecto de Grado

serán:

Nombre del Documento Nombre de Referencia

Documento de Especificación de Requerimientos de Software.pdf

(adjunto.1)

Plan de Pruebas de Software.pdf (adjunto.2)

Informe Final del Plan de Pruebas de Software.pdf (adjunto.3)

Plantilla Casos de Uso.pdf (adjunto.4)

Encuesta Sobre Páginas Web Visitadas Informac.Convocat.Becas (Doc.Invest.LIDIS).pdf

(adjunto.5)

Matriz de Dispersión Funcional.xlsx (adjunto.6)

Técnicas de Pruebas (CasosUso-TecnicasPrueba-MRP).xlsx

(adjunto.7)

Manual de Usuario.pdf (adjunto.8)

Page 11: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

11

Resumen

En la actualidad internet es considerado como una de las mayores fuentes de información disponibles las 24 horas del día, también podríamos afirmar que uno de los grandes retos a la hora de realizar búsquedas en la Web es la recolección, clasificación y adaptación de la información encontrada, afirmando que: {“Si bien es cierto que existen grandes volúmenes de información en los diferentes servidores Web listos para ser procesados, también es cierto que la consecución de dicha información actualizada y organizada no es una tarea fácil (Diaz, 2007, pág. 7)”}.

Generalmente los usuarios de la web para localizar información, usan motores de búsqueda tradicionales como (Google, Yahoo, Bing), ingresando frases o palabras clave relacionadas con un tema específico y obteniendo diversos resultados.

Los motores de búsqueda realizan procesos de Crawling1 extrayendo todo tipo de información de diferentes servidores web, estos resultados deben ser analizados uno a uno extrayendo la información apropiada o significativa y descartando la que no ofrece ningún interés para el usuario generando pedida de tiempo y pocos resultados significativos, lo que podríamos llamar: {“ofreciendo una visión poco específica de la información, limitando los resultados relevantes y entregando grandes volúmenes de información que en la mayoría de los casos no es importante para el usuario (Avello, 2012, pág. 67)”}.

Esto dificulta la búsqueda de información útil y obliga a los usuarios a pasar un mayor tiempo examinando gran cantidad de documentos hasta encontrar los adecuados o abandonar la búsqueda.

Actualmente el grupo de investigación LIDIS2 de la Universidad San Buenaventura de Cali, no cuenta con una herramienta que facilite la consulta y divulgación de información sobre convocatorias y becas para investigadores y estudiantes, como tampoco existe un repositorio centralizado de información donde cada usuario pueda acceder a una base de datos completa y actualizada generando mayores oportunidades de éxito en el acceso a la información.

Teniendo en cuenta lo anterior, se desarrolló un portal web de información que mejore la precisión de los resultados entregados a los usuarios cuando realizan búsquedas de información sobre convocatorias y becas haciendo uso de los

1 Crawling: Proceso que se usa para recorrer páginas web e indexar información de acuerdo a una configuración especifica. 2 LIDIS: Laboratorio de investigación para el desarrollo de la ingeniería de software.

Page 12: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

12

principios básicos de las herramientas tipo Crawler3 (Alvarez, 2013), con la intención de “visitar” los diferentes repositorios Web de información y extraer lo que allí resida. Por otro lado, personalizar el portal permite que los usuarios puedan guardar sus búsquedas, notificarlas a su correo electrónico y recomendar a los demás usuarios páginas web de información relevante sobre convocatorias y becas de interés.

3 Crawler: También conocido como araña web, es un programa que inspecciona las páginas web de forma metódica y automatizada, según su configuración las visita constantemente y descarga su contenido.

Page 13: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

13

1. Capítulo I

El presente capitulo consta de la introducción del proyecto, el planteamiento del

problema, que es el punto de partida de la investigación, identifica cual es el

problema y por qué es importante resolverlo, la justificación del proyecto, y los

objetivos planteados y alcanzados en el desarrollo del proyecto.

1.1 Introducción

Tomando como referencia el artículo titulado “Excavando la Web” por el señor Ricardo Baeza Yates, Internet podría considerarse como la mayor biblioteca de todos los tiempos, por los conocimientos contenidos así como por su disponibilidad de información, pero como en cualquier biblioteca, tan importante como el almacenamiento de la información es disponer de una herramienta que permita localizar, acceder y recopilar en cada momento las necesidades particulares de un usuario (Baeza-Yates, Excavando la Web, 2004). Los buscadores basados en técnicas de crawling, son el medio de localización y recopilación de información más usados en internet. Los crawlers son programas de software capaces de recorrer la web automáticamente, recopilando las páginas accedidas para construir un índice que permita búsquedas por palabra clave sobre su contenido (Diaz, 2007).

El enfoque de crawling se encuentra en la base de los buscadores más populares y

exitosos de la actualidad, accediendo a parte de la información web a través de

acuerdos específicos con los proveedores de contenido, este tipo de información

puede provenir de diferentes servicios que hacen que presenten diferentes

formatos, lenguajes y estructuras, por ejemplo (páginas, documentos pdf, redes

sociales, audios, videos, jpg) (Camargo F. I., 2013).

A este tipo de información habitualmente se le clasifica dentro de la categoría de

información no estructurada (lo que significa que describe de forma genérica los

datos que no están contenidos en una base de datos o algún otro tipo de estructura

de dato), en contraste con la información estructurada contenida en las bases de

datos que permiten procesamientos más avanzados con un esquema definido en

contraste a los datos no estructurados (L. Hao, 2009).

Los procesamientos que una aplicación de software puede realizar con información

no estructurada son muy limitados. Por el contrario, la información estructurada

contenida en una típica base de datos relacional puede ser manipulada por un

programa de software con toda la complejidad que se desee.

El presente trabajo busca diseñar un portal web de información sobre convocatorias y becas para el grupo de investigadores LIDIS de la universidad, una herramienta

Page 14: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

14

con información estructurada en un modelo característico definido que pueda ser contenido en una base de datos; De esta forma el usuario no solo podrá obtener una mayor precisión en las búsquedas de información realizadas haciendo uso de los principios básicos de la herramientas tipo Crawler, visitando los diferentes repositorios Web de información y extrayendo lo que allí resida (Camargo & Ordóñez, S., 2013).

Del mismo modo, al personalizar la herramienta en un portal web de información, se permite que los usuarios puedan administrar sus contenidos con características de guardado, búsquedas, notificación y recomendación a los demás usuarios de información relevante sobre convocatorias y becas vigentes.

Aunque ya se había mencionado, al estructurar un modelo característico de búsqueda de información web dentro de la configuración de la herramienta tipo Crawler, fue necesario delimitar la búsqueda únicamente a páginas web que publiquen información estructurada y que estén relacionadas con temas sobre becas y convocatorias en páginas de internet como: Colciencias, Icetex, Universia.

1.2 Planteamiento del Problema

La universidad San Buenaventura de Cali. Como institución líder en la educación superior en Colombia cada día debe adaptarse a los rápidos cambios que exigen la sociedad actual respecto a la información y el conocimiento, como se expresó anteriormente internet podría considerarse como la mayor biblioteca de información de todos los tiempos, convirtiendo los buscadores basados en técnicas de crawling como una herramienta fundamental e indispensable dentro del campus universitario. Mediante la búsqueda de información en la Web, las personas tienen acceso a tantos datos e información como nunca antes el ser humano pudo tener y las instituciones y empresas han visto en este recurso una oportunidad para poner a disposición de sus usuarios la información que ellas generan. Sin embargo, tal cantidad y diversidad de datos ha hecho cada vez más difícil conseguir información útil y correcta, en la cantidad y forma adecuada (Palma, 2013). De acuerdo al último informe de gestión del ICETEX (Gestión, 2014), 813 colombianos salieron beneficiados por los programas que otorga la institución y por los organismos oferentes administrados por la misma posibilidad de acceder a una beca en el exterior, enfatizando que las becas no se las ganan los más aplicados, se las ganan los que aplican. Tomando como referencia lo anterior, entendiendo el continuo crecimiento de la web y la gran cantidad de información útil sobre ofrecimientos de becas y convocatorias que se publican constantemente, se plantea como problemática que el grupo de investigación LIDIS de la Universidad no cuenta actualmente con una herramienta

Page 15: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

15

web de búsqueda de información sobre Becas y Convocatorias, que permita realizar consultas, descargas o notificaciones, y que pertenezca a la Universidad, facilitando la administración de la información y el mejoramiento del portal. La revista semana redacto en su sección (Vida Moderna) una publicación con el título “Mitos y poca divulgación, principales obstáculos de las becas” (Restrepo, 2014), los programas de internacionalización se han convertido en los principales obstáculos para aprovechar las alianzas y los espacios de cooperación educativa. Generalmente el otorgamiento de estas becas se socializa como información web que no llega oportunamente a todos los usuarios, los procesos de búsqueda de información y accesibilidad al otorgamiento de convocatorias y becas deben ser desarrollados de forma manual y comunicativa, estos procesos son dispendiosos y poco eficientes, causan retardo en la difusión de la información generando pocas oportunidades de éxito Los motores de búsqueda tradicionales ofrecen una visión amplia de la Web que se limita a la búsqueda de información sin tener en cuenta el significado que esto representa para el usuario. Es decir su contenido (Diaz, 2007). Esto dificulta la búsqueda de información útil y obliga a los usuarios a pasar un mayor tiempo examinando gran cantidad de documentos hasta encontrar los adecuados o abandonar la búsqueda. La manera por la cual se abordara el problema de búsqueda de información sobre convocatorias y becas en la universidad, será desarrollar un portal web por medio de la adaptación de un Crawler para la recuperación de información sobre Convocatorias y Becas, un portal con información estructurada en un modelo característico definido que pueda ser contenido en una base de datos y que pueda generar mayores oportunidades de éxito accediendo a los diferentes repositorios de información sobre becas y convocatorias a los investigadores y estudiantes del campus universitario.

1.3 Justificación

El contexto de la educación a nivel mundial tiene como objetivo apoyar y fomentar la educación entre las culturas, creando vínculos de cooperación en proyectos de postulación de becas de educación con América Latina (Europea, 2008).

Como ejemplo, los programas ALFA (América Latina Formación Académica 1994),

y Becas ALBAN4 (Ginés Mora, 2010), contribuyen con la formación de 2471

profesionales latinoamericanos que desarrollaron estudios de maestría, doctorado

y especialización profesional en instituciones de educación superior de la UE.

4 Becas ALBAN: América Latina Becas de Alto Nivel

Page 16: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

16

Teniendo en cuenta lo anterior, se tomó como referencia la tesis doctoral (Arquitectura Optimizada para un Motor de Búsqueda Web Eficiente (Alvarez, 2013)), diseñando un portal web personalizado que hace uso de los principios básicos de una herramientas tipo Crawler, como una herramienta imprescindible que permita realizar búsquedas de información en la web filtrando aquellos documentos que son relevantes para una temática o usuario. Con el objetivo de conocer cuáles son los medios más usados para obtener información de becas y convocatorias, se realizó una encuesta a algunos Investigadores del grupo LIDIS de la Universidad de San Buenaventura Cali (adjunto.5). Obteniendo como resultado de dicha encuesta que algunos de los sitios web más visitados son las páginas de Colciencias, Icetex, Universia; Estos sitios web permiten realizar búsquedas de información respecto al ofrecimiento de diferentes tipos de becas pero estas búsquedas deben ser hechas de forma manual consultando una y otra vez los mismos sitios web en espera de las nuevas convocatorias que se publiquen. La implementación del portal web de información sobre becas y convocatorias, facilitara la búsqueda de información a todos sus usuarios, disminuyendo el tiempo que normalmente requiere realizar búsquedas de información web con buscadores tradicionales como (Google, Yahoo, Bing), ya que la herramienta estará descargando automáticamente todas las publicaciones vigentes en cualquiera de las páginas web que se configuran como semillas5 en el código. Por otro lado los usuarios del portal podrán disponer de un repositorio centralizado de información donde cada usuario pueda acceder a una base de datos completa y actualizada obteniendo por cada link de información extraído, el título de la convocatoria, un resumen general y la fecha de su publicación, brindando la posibilidad de decidir rápidamente si es o no de su interés. Al personalizar el portal los usuarios también podrán realizar procesos de guardado de búsquedas (Se podrá guardar los resultados de las búsquedas que seleccione), notificación de búsquedas (enviar los resultados de las búsquedas generadas que seleccione al correo electrónico registrado) y recomendación de becas y convocatorias (se podrá ver los nombre de las becas y convocatorias que los usuarios quieran recomendar y recomendar becas a los demás usuarios). Por consiguiente el grupo de investigación LIDIS de la Universidad, integrado por sus Investigadores y estudiantes, podrán aprovechar las enormes posibilidades de información existes en el portal web, manteniendo una comunicación permanente con otros usuarios y compartiendo la información.

5 Semillas: son las páginas de inicio para el Crawler. A partir de estas, se navegará por la web

Page 17: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

17

1.4 Objetivos

1.4.1 General

Desarrollar un portal web por medio de la adaptación de un Crawler para la recuperación de información sobre Convocatorias y Becas para el grupo de investigación LIDIS de la Universidad San Buenaventura de Cali.

1.4.2 Específicos

Adaptar características de herramientas tipo Crawler a un portal web para la consulta de información de convocatorias y becas.

Diseñar un modelo de datos característico que permita representar la información recuperada dentro del portal web.

Construir un portal web de consulta de información de convocatorias y becas.

Validar la herramienta realizando casos de prueba funcionales que demuestren el acceso a la información web.

Page 18: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

18

2. Capitulo II

Este capítulo consta del estado del arte de proyectos similares, donde se describen

algunos portales web de búsqueda de información sobre convocatorias y becas, así

como la descripción de los conceptos de las herramientas que fueron necesarias

dentro del marco teórico y finalmente se precisa la definición del alcance del

proyecto.

2.1 Estado del Arte

En Colombia existen más de 135,000 organizaciones sociales que buscan combatir

la desigualdad y la pobreza mejorando las condiciones de vida de millones de

personas. En América Latina se estiman más de 500,000 (DNP, 2010-2014). Estas

organizaciones enfrentan grandes retos e ineficiencias en el manejo de sus

recursos, el uso de la información y la tecnología, la falta de herramientas

adecuadas y de acceso a fuentes de conocimiento, financiación y alianzas

nacionales e internacionales.

La tecnología de hoy nos permite adaptar herramientas tipo Crawler que pueden

ayudarnos a aprovechar mejor estos recursos, en el año 2013 la tesis doctoral

(Arquitectura Optimizada para un Motor de Búsqueda Web Eficiente), que realizaba

una investigación del gran tamaño de la Web y su compleja estructura, presentando

el diseño de una arquitectura de búsqueda web tipo Crawler, como una herramienta

imprescindible que permita filtrar aquellos documentos que son relevantes para una

temática o usuario (Alvarez, 2013).

Se trata de los conocidos motores de búsqueda, complejos sistemas, que permiten,

entre otras cosas, recopilar los recursos web, almacenarlos y gestionarlos para

permitir su acceso y localización. La tarea de recuperación de los recursos web es

llevada a cabo por los Crawler, también conocidos como, Web Robots. Los Crawler

son sistemas capaces de recorrer y analizar la Web en un cierto orden, siguiendo

para ello los enlaces existentes entre las diferentes páginas.

Estas herramientas han evolucionado en el trascurso de los años, veamos a

continuación algunos apartes históricos al respecto:

2.1.1 Apartes históricos del Uso de Herramientas Tipo Crawler

RBSE (Eichman, 1994) Primer Crawler publicado. Con una arquitectura

basada en dos componentes que actualizaba la base de Google Crawler

(Bring y Page, 1998). Programado en C++4 y Python5, sólo se conoce su

arquitectura centralizada y su sistema integrado, en ese entonces recorría

100 páginas por minuto una sola vez y de manera continua (Herrera, 2015).

Page 19: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

19

WebRACE (Crawler desarrollado por la Universidad de California, 2002). Con

capacidades de procesamiento distribuido, almacenamiento temporal de

objetos y servicio de filtrado, sus autores establecieron que en promedio, 1

de cada 10 documentos cambiaba luego de una semana, era necesario

reprocesarlo (Camargo & Ordóñez, S., 2013).

Ubicrawler en el año 2004. Un Crawler distribuido, programado en Java se

pueden procesar hasta 660 páginas por segundo (Camargo & Ordóñez, S.,

2013).

Mbot6, Crawler Multiproposito. Creado en 2010 para cubrir las necesidades

específicas de los investigadores en Documentación que se enfrentaban al

estudio de la web.

2.1.2 Evolución en los Procesos del Crawling

La evolución de la Web ha hecho que surjan diferentes tipos de sistemas de crawling en función de su ámbito de aplicación:

Crawler Focalizado: Este concepto ha sido ampliamente utilizado en los últimos años como herramienta para rastrear las web para problemas específicos, es usual que incorporen técnicas de clasificación y conceptos tradicionales del procesamiento de lenguaje natural (Camargo & Ordóñez, S., 2013).

Crawlers Sociales: Existen crawlers dirigidos al contenido de redes sociales, aunque el objetivo de dicho estudio era el desarrollo de una red social, propone utilizar agentes multicrawler o MCA Los autores centran el trabajo en la extracción de información relevante para los negocios, pero no utilizan un crawler focalizado para ello (Camargo & Ordóñez, S., 2013).

Crawling Dirigido: Están diseñados para recuperar páginas web y recursos

de una temática en particular. Este tipo de crawlers usan estrategias mucho más precisas que los sistemas de crawling generalistas para guiar su recorrido por la Web. Parten de un conjunto de páginas de una misma temática o de un conjunto de documentos de ejemplo, a partir de los cuales deben detectar nuevas páginas web de su misma temática (Alvarez, 2013).

Page 20: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

20

2.1.3 Portales Web Para Búsqueda de Información de Becas Por Medio de Crawling

En septiembre de 2014, la revista semana en su portal de educación, publico seis

portales para buscar becas en el extranjero, haciendo énfasis en que El dinero no

debe ser un impedimento para estudiar en otro país (Semana, 2014).

En la misma publicación se destaca que también existen organizaciones públicas y

privadas, que ofrecen becas para estudiar fuera del país:

País Portal Web

En el Reino Unido British Council

En Holanda Nuffic

En Francia Campus France

En Alemania Gobierno Federal Alemán

Es Estados Unidos Fulbright

En China República Popular China Tabla 1. Portales para buscar becas en el extranjero.

Nota: Semana Educación hizo una lista de seis agencias que ofrecen apoyo a estudiantes de todo el mundo.

Cada uno de los portales web mencionados, ofrece diferentes tipos de

oportunidades para los colombianos que desean realizar una solicitud de beca.

Al finalizar la investigación sobre el estado del arte se pudo determinar la

importancia del uso de herramientas tipo Crawler en la búsqueda de información

web, por tal razón se determinó implementar un portal web de recuperación de

información basado en las características de funcionalidad de los Crawlers.

A continuación se presentan 2 ejemplos de plataformas web que existen

actualmente para realizar búsquedas de información sobre convocatorias y becas y

que hacen uso de técnicas de crawling para visitar repositorios web y extraer

información de su interés:

2.1.4 Nodoka

La empresa Makaia6 lanza NodoKá en el año 2013, una plataforma online, basada

en la nube, adaptada a las necesidades del sector social en Colombia, ofreciéndoles

herramientas de fortalecimiento institucional para incrementar su impacto social y

lograr mayor eficiencia optimizando los procesos de consulta y obtención de datos

de forma precisa y en tiempo real.

Nodoka ofrece un componente de gestión Externa que proporciona información

relevante y oportuna en temas de consecución de recursos, oportunidades de

6 Makaika: Organización sin ánimo de lucro que promueve el fortalecimiento institucional de organizaciones de la sociedad civil comprometidas con el desarrollo social y económico.

Page 21: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

21

cooperación, convocatorias nacionales e internacionales y herramientas para la

gestión y mantenimiento de alianzas y el aprovechamiento de las TIC7.

Figura 1.Portal Web Nodoka (Buscador de Convocatorias). Nota: Plataforma web para realizar busquedas de convocatorias. Nodoka by Makaika.

Recuperado de: http://www.nodoka.co/es/convocatorias

2.1.5 Universia

El portal de búsqueda de becas Universia, se creó en España con el objetivo de

agrupar a las universidades iberoamericanas entorno a un único espacio en Internet,

en el año 2005 Universia extiende su actividad a Argentina, Brasil, Chile, Colombia,

México, Perú, Portugal, Puerto Rico, Uruguay y Venezuela, convirtiéndose en la red

de universidades más importante de Iberoamérica, constituida por 1.404

universidades de 23 países, que representan a 19,2 millones de estudiantes y

profesores.

7 TIC: Tecnologías de la información y la comunicación.

Page 22: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

22

Universia habla de Accesibilidad Web como un término de acceso universal,

independientemente del tipo de hardware, software, infraestructura de red, idioma,

cultura, localización geográfica y capacidades de los usuarios.

Para hacer la búsqueda, se puede filtrar las becas disponibles por tipo, destinación,

origen del solicitante o perfil: estudiante preuniversitario, universitario, titulado,

personal docente e investigador o personal de administración y servicios.

Figura 2. Portal Web Universia. Nota: Plataforma web para realizar búsquedas de convocatorias y Becas.

Recuperado de: http://www.universia.net.co/

2.1.6 Características de Funcionalidades No Consideradas en los Portales Nodoka y Universia, que fueron adicionadas al presente proyecto.

La implementación del portal web de información sobre convocatorias y becas no busca simplemente visitar y extraer los sitios web de información relacionada con estos temas, sino también, que los usuarios del grupo de investigación LIDIS de la Universidad, tengan facilidad de acceso a un repositorio de datos centralizado y que se encuentra alojado en un servidor de aplicaciones dentro de la universidad.

Page 23: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

23

Al administrar la información extraída de las URL insertadas en el código, los usuarios puedes hacer uso de los filtros de búsqueda de información por (Palabra clave, Estado de la beca y fecha de apertura de la beca.

Del mismo modo, como características adicionales en funcionalidades desarrolladas en el presente portal, se presentan las siguientes:

Guardar resultados de búsquedas de información, esta funcionalidad permite que los usuarios mantengan un histórico de sus búsquedas, seleccionando los links que serán guardados en su base de datos como información de su interés.

Notificar resultados de búsquedas de información al correo electrónico, esta funcionalidad brinda la posibilidad de seleccionar que links de información serán enviados al correo electrónico registrado, el sistema genera automáticamente un correo con los títulos y el resumen de los links seleccionados para que el usuario pueda realizar la consulta desde su correo sin tener que acceder al servidor donde se encuentra alojado el portal.

Socializar sitios web con todos los usuarios del portal, con esta funcionalidad se puede observar una lista de links que han sido recomendados por algunos de los usuarios del portal, de este modo se pueden hacer recomendaciones de sitios web de información que corresponda con convocatorias y becas adicionando un sitio con su correspondiente nombre y URL.

2.2 Marco Conceptual

Dado que el objetivo de este proyecto se centra en el desarrollo de un portal web

de búsqueda de información, se han tomado como referencia los principios básicos

de una herramienta tipo Crawler, convirtiendo como primicia fundamental analizar

los elementos teóricos y los conceptos claves que sirvieron de guía para el

desarrollo de esta investigación.

Como se mencionó anteriormente si queremos administrar la información existente en la web, debemos definir de qué manera será recolectada, clasificada y adaptada para nuestro beneficio. Puesto que los buscadores tradicionales solo nos ofrecen una visión de la web que se limita al tratamiento de los documentos sin tener en cuenta el significado que éstos representan para el usuario. La herramienta funcionara como un sistema de recuperación de información en Internet, basado en páginas previamente insertadas como semillas dentro del código, el sistema toma como referencia meta-etiquetas8 de marcado como títulos, descripción o palabras clave dentro de los documentos, y con base en ello extrae la información de los documentos.

8 Metaetiquetas: Se utiliza para identificar propiedades de un documento (el autor, una lista de palabras claves, la descripción de una página, etc.) y para asignar valores a esas propiedades.

Page 24: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

24

2.2.1 Que es un Crawler Es una pieza de software que recorre la web de manera metódica y automatizada, es también la herramienta Base del proyecto, su implementación y configuración, permite visitar sitios web descargando la información que allí reside para luego almacenarla obteniendo resultados de búsquedas más eficientes (Kobayashi, 2000). El Crawler comienza visitando una lista de URL que se encuentran insertados en su código llamados Semillas, identifica los hiperenlaces en dichas páginas y los añade a la lista de URL a visitar de manera recurrente de acuerdo a determinado conjunto de reglas.

Figura 3. Algoritmo Básico de un Crawler.

Nota: El algoritmo demuestra la secuencia de procesos con los que el código explora las URLs de manera automática. Recuperado de: Evolución y tendencias actuales de los Web crawlers, Camargo, F. y Ordóñez, S. (2013). Vol.18, No. 2, pp. 19–35

2.2.2 Que son Semillas en un Crawler

Las semillas son las páginas de inicio para el Crawler. A partir de estas, se navegará por la web. Para definir una semilla, se debe indicar la dirección URL9 de la semilla. Para la implementación en el código de la herramienta, se configuro como semilla los URLs de 3 servidores diferentes, para cada uno de ellos se creó una clase pública como se muestra a continuación:

9 URL: (Uniform Resource Locator - Localizador Uniforme de Recursos) le permite al navegador encontrar una dirección o sitio en Internet.

Page 25: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

25

Figura 4. Inserción de Semillas. Nota: la figura representa las URL que se configuran en el código fuente, la línea 1 representa la clase "MyJobClassName" es la encargada

de hace el llamado a cada método que vista las URL.

2.2.3 Arquitectura de un Buscador Web Basado en Crawler

Esta herramienta permite rastrear un sitio web para extraer de él cualquier contenido existente haciendo uso de la estructura de los documentos, sus etiquetas de hipertexto y sus meta-etiquetas para catalogar el contenido.

Page 26: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

26

Figura 5.Arquitectura Global de un Buscador Web Basado en Crawler.

Nota: La arquitectura muestra el esquema básico de un buscador web con sus componentes (Crawling, indexación y consulta). Recuparado de: Arquitectura para Crawler Dirigido, Manuel A.D. 2007, pg.37

El módulo de control del crawler determina qué enlaces visitar y el orden de los mismos, y alimenta con ellos al módulo de Craw ler . Es el responsable de gestionar la dirección de exploración del crawler y establecer su criterio de parada. El módulo de indexación extrae todas las palabras de cada página y le asocia el URL en el que cada palabra ha aparecido. Normalmente se suele hacer uso de varios índices. El módulo de análisis de páginas es el responsable de la creación de los índices. El repositorio de páginas representa la colección (posiblemente temporal) de páginas que son descargadas por el crawler. Esta colección de páginas suele mantenerse mientras no se finaliza el proceso de crawling/indexación10. El módulo de consulta es el responsable de recibir y procesar las peticiones de los usuarios. Para resolver una petición utilizan la información almacenada en los índices y, en algunas ocasiones, también en el repositorio de páginas. El módulo de ranking tiene como misión ordenar los resultados de tal forma que los que más interesen al usuario aparezcan al principio. 10 Indexar: Con respecto a indexar información de la web es ordenar una serie de datos de acuerdo a un criterio común para su análisis y extracción.

Page 27: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

27

3. Capitulo III

Para el presente capitulo se abordan los siguientes temas: El análisis del alcance del proyecto, la descripción de los requerimientos del proyecto, el diagrama general de casos de uso y la arquitectura del proyecto.

3.1 Análisis del Alcance del Proyecto

Debido al gran crecimiento de la web y sus continuos cambios, se determinó

implementar un modelo de Crawling Dirigido, diseñado para recuperar

información web de una temática en particular, este tipo de crawlers parten de

un conjunto de páginas de una misma temática o de un conjunto de semillas o URLs

de ejemplo, a partir de los cuales se visita y se extrae cierta información.

La investigación realizada fue fundamental para determinar qué tipo de semillas o

páginas web deberían estar siendo consultadas por el sistema, teniendo en cuenta

que existen millones de servidores web con información relevante y no relevante

sobre temas de becas y convocatorias.

Por consiguiente se realizó una encuesta de investigación a algunos docentes

investigadores del grupo LIDIS de la Universidad San Buenaventura de Cali,

(adjunto.5).

La encuesta permitió establecer cuál es la preferencia respecto a las páginas web

más visitadas por los investigadores para realizar consultas de información de

convocatorias y becas vigentes.

Por esta razón fue necesario delimitar la búsqueda únicamente a servidores web

que estén relacionadas con temas sobre becas y convocatorias en páginas de

internet como: Colciencias, Icetex, Universia.

Finalmente se determinó personalizar un portal web de información sobre

convocatorias y becas con información estructurada en un repositorio de datos que

pueda brindar una mayor precisión en las búsquedas de información y que permita

que los usuarios puedan guardar sus búsquedas, notificarlas a su correo electrónico

y recomendar a los demás usuarios páginas web de información relevante sobre

convocatorias y becas vigentes.

A continuación se presenta una breve descripción de algunos de los requerimientos más importantes para el desarrollo del proyecto:

Page 28: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

28

3.2 Descripción de Requerimientos del Proyecto

Para este proyecto se han definido un total de 17 requerimientos que pueden ser consultados en el documento de Especificación de Requerimientos de Software (Ver adjunto. 1). A continuación se hará una descripción de tres requerimientos con su correspondiente diagrama de caso de uso, que son considerados como principales en el proyecto. 3.2.1 El sistema debe generar una lista de links de CBV y mostrarlos al usuario en pantalla

El usuario puede dar clic en la opción (Información Becas & Convocatorias)

generando una pantalla con una lista de links de información sobre convocatorias

de becas vigentes con su correspondiente título, un resumen y la fecha de la

publicación de la convocatoria de la beca.

El usuario puede realizar una acción dando clic en la opción “Acceder” para ingresar inmediatamente a su página web respectiva, también puede realizar una acción dando clic en la opción “Guardar” que permite cargar específicamente esa información en su historial de búsquedas, y puede realizar una acción dando clic en la opción “Enviar” que inmediatamente genera un mensaje al correo electrónico registrado con la información pertinente.

Figura 6. Diagrama Caso Uso Descargar Becas.

Nota: El diagrama representa al sistema descargando de forma automática información de becas.

Page 29: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

29

3.2.2 El sistema debe permitir generar búsquedas de información de convocatorias y becas

El usuario puede dar clic en la opción (Buscar Becas) generando una pantalla con

tres campos donde el usuario podrá filtrar sus búsquedas con el objetivo de obtener

una lista de links de información más específica y relevante.

El usuario puede realizar una acción ingresando una palabra clave en el campo de

texto “Palabra Clave” y hacer clic en la opción (Buscar) para obtener una lista de

links relacionados con la palabra clave ingresada.

El usuario puede realizar una acción dando clic en la opción “Estado” y

seleccionando (Vigente, Cerrado, Todos) y hacer clic en la opción (Buscar) para

obtener una lista de links relacionados con la opción seleccionada.

El usuario puede realizar una acción dando clic en la opción “Rango de Fecha” y

determinar la fecha de inicio y finalización de la búsqueda de la convocatoria de la

beca y hacer clic en la opción (Buscar) para obtener una lista de links relacionados

con la opción seleccionada.

Figura 7. Diagrama Caso Uso Buscar Becas.

Nota: El diagrama representa al sistema generando opciones de filtrado en la búsqueda de información

3.2.3 El sistema debe generar una lista de links de CBV recomendados y mostrarlos al usuario en pantalla El usuario puede dar clic en la opción (Sitios de Interés) generando una pantalla con

la lista de links sobre convocatorias de becas vigentes que han sido recomendados

por los usuarios del sistema con el nombre del usuario que lo recomienda.

El usuario puede dar clic en la opción “Recomendar Sitio” e ingresar un link y un nombre que corresponda a la información que desea recomendar y que será vista por todos los usuarios del sistema con la descripción del nombre del usuario que lo recomienda.

Page 30: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

30

Figura 8. Diagrama Caso Uso Recomendar Sitios.

Nota: El usuario puede hacer clic en la opción para recomendar sitios.

3.3 Diagrama General de los Casos de Uso del Proyecto

Este diagrama representa la funcionalidad principal del sistema mostrando su interacción con los procesos principales de la herramienta. Esta representación se hace a través de la relación entre el usuario y los casos de uso (acciones) dentro del sistema.

Figura 9. Diagrama General de Casos de uso del Usuario en el Sistema.

Nota: Este diagrama representa todos los casos de uso del sistema

Page 31: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

31

La plantilla completa con todos los casos de uso del sistema, la podrá consultar en el documento anexo (adjunto. 4).

3.4 Arquitectura de la Aplicación

Para el desarrollo del proyecto se usó la herramienta ZathuraCode que es un generador de código en JavaEE, a partir de un modelo de base de datos existente, su estilo arquitectónico facilito la integración con tecnologías como Primefaces, Spring, Hibernet, permitiendo que sus componentes cumplan con una labor específica, con niveles de dependencia bajos donde cada componente depende de un solo componente.

Figura 10. Arquitectura General del Software.

Page 32: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

32

Nota: La figura representa la arquitectura del software ilustrando la vista en módulos y la relación que existe con los procesos que realizan sus componentes más importantes.

3.4.1 Modulo de Presentación

En este módulo se realiza la autenticación de seguridad de los usuarios a través del correo electrónico registrado en la base de datos, entre sus componentes más importantes se encuentran los ficheros (XHTML) que son archivos planos interpretados por los navegadores web para mostrarlos en pantalla, la clase (BusinessDelegator) que proporciona control y ofrece una serie de servicios para ser consumidos por el sistema, y el componente (View) que se encarga de interpretar las acciones del usuario informando al modelo y/o a la vista para cambiar apropiadamente sus estados. 3.4.2 Modulo de Lógica Es el modulo más representativo del sistema, es el encargado de gestionar la

dirección de exploración de páginas web, entre sus métodos más representativos

está el (SessionFactory) que se encarga de establecer donde se encuentran todos

los ficheros de mapeo de Hibernate, también se encarga de asociar los DAO dentro

del sistema, el componente de control del crawler contiene la clase

(MyJobClassName) con un método que se encarga de visitar las URL de cada

semilla o link insertado y configurado en el código y cuyo trabajo es descargar y

parsear el HTML extrayendo la información contenida.

3.4.3 Modulo de Persistencia Es el modulo encargado del almacenamiento de datos, recibe peticiones y las procesa retornando mensajes de transacciones exitosas o no exitosas, el componente DAO, se encargan de todo lo que tenga que ver con salvar, guardar, modificar y realizar consultas a la base de datos usando la fábrica de JPA y el entityManager11 para realizar consultas o para ejecutar querys.

11 entityManager: se usa para gestionar la persistencia de los datos.

Page 33: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

33

4. Capitulo IV

Para el presente capitulo se abordan los siguientes temas: El diseño de la herramienta, algunas de las tecnologías más importantes que fueron empleadas en el desarrollo, el modelo entidad relación y el diagrama de componentes de los procesos.

4.1 Diseño de la Herramienta

Para el diseño de esta herramienta fue necesario establecer que tecnologías de desarrollo web serían más convenientes para el desarrollo, así como definir la estructura como se quería construir el sistema, esto facilito la interpretación y la realización física de cada uno de los componentes del desarrollo del código fuente, a partir de esto logramos estructurar una base de datos que se representa por medio del modelo entidad relación explícito en este apartado.

4.2 Tecnologías Requeridas en el Desarrollo

A continuación se describe el nombre y la razón de uso dentro del proyecto para

cada una de las tecnologías importantes que fueron requeridas dentro del desarrollo

de la herramienta.

4.2.1 Spring Tool Suite (STS) Se determinó desarrollar la herramienta con la Suite (STS) por ser un entorno de desarrollo basado en Eclipse muy completo y adaptable, ya que permite configurar el ambiente de desarrollo con base a nuestras necesidades, aprovechando los diferentes plugins de java desde el entorno de Eclipse.

4.2.2 Zathuracode Fue necesario usar el entorno de desarrollo de Zathura por ser un generador de

código que apoya el desarrollo de aplicaciones empresariales, también para

aprovechar la generación de código a partir de un modelo de base de datos

existente, además cuenta con Tecnologías que generan aplicaciones JavaEE12,

(Spring13, PrimeFaces14, Hibernate15, por nombrar algunas de ellas).

4.2.3 MySQL Entre los gestores de bases de datos que existe actualmente, se usó el servidor de bases de datos MySQL por ser muy rápido, seguro, fácil de usar, y por ser un

12 JavaEE: Java Platform, Enterprise Edition, es una plataforma de programación en lenguaje de programación Java 13 Spring: framework para el desarrollo de aplicaciones de código abierto para la plataforma Java. 14 PrimeFaces: es una librería de componentes para JavaServer Faces (JSF) de código abierto que cuenta con un conjunto de componentes enriquecidos que facilitan la creación de las aplicaciones web. 15 Hibernate: es una herramienta de Mapeo objeto-relacional (ORM) para la plataforma Java.

Page 34: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

34

sistema de gestión de base de datos Open source multiusuario para agregar, accesar, y procesar los datos almacenados.

4.2.4 Apache Tomcat Por ser un servidor de internet (especializado en aplicaciones Java), capaz de almacenar los sitios Web que creas (en simple HTML16 o en Java) y enviarlos a las personas que se conecten a él como una página que puedan ver en diferentes Navegadores.

4.2.5 CSS Se usó para definir características como el aspecto con el que se va a presentar el documento en el navegador, es usado tanto en documentos HTML como en documentos XML17. Las hojas de estilo permiten un mayor control sobre el aspecto de los documentos a la vez que ofrecen la posibilidad de separar el contenido de la presentación, siendo posible controlar el aspecto de varias páginas a la vez.

4.3 Modelo Entidad Relación

Es en esta fase cada una de las tablas, campos, dependencias y atributos se relacionan con otras tablas. Un buen diseño en esta etapa, forjará una buena futura implementación, debido a que las tablas representan de forma factible la representación o modelado de un objeto o entidad de la vida real y como tal la definición de sus atributos.

Para diseñar este modelo fue necesario investigar qué tipo de información tienen en

común cada uno de los sitios web o semillas que fueron configurados dentro del

código, para esto se realizó una encuesta de investigación (ver adjunto.5) a algunos

docentes investigadores del grupo LIDIS de la Universidad San Buenaventura de

Cali, la encuesta permitió establecer cuál es la preferencia respecto a las páginas

web visitadas por los usuarios para realizar consultas de información de

convocatorias y becas vigentes.

Por esta razón fue necesario identificar la estructura de las páginas que contenían los documentos HTML de los servidores que contenían la información de becas y convocatorias, sus índices, sus metaetiquetas, símbolos y comentarios, lo cual permitió definir o más bien caracterizar cual es la información relevante o significativa que será extraída por la herramienta.

16 HTML: Las siglas HTML pertenecen al término Hyper Text Markup Language o (Lenguaje de Marcado de Hipertexto), es el encargado de publicar tablas, listas, y todo tipo de elementos de texto. 17 XML: Xtensible Markup Language ("lenguaje de marcas Extensible") utilizado para almacenar datos en forma legible.

Page 35: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

35

Figura 11. Modelo Entidad Relación.

Nota: El diagrama representa la relación entre los objetos del sistema (Clases), cada una de sus tablas y campos de almacenamiento, así como sus principales atributos.

4.3.1 Descripción del Modelo

El modelo está compuesto por 4 tablas, la tabla "BECAS" es la superclase con una

asociación de uno a muchos (1...*) en la tabla “HISTORICO_BUSQUEDAS" ya que

una beca puede estar en muchos históricos de becas de diferentes usuarios, estas

tablas se relacionan por generalización hereda con el atributo (BEC_ID), así mismo

la relación que existe entre la tabla "BECAS" y la tabla "USUARIO" es de uno a

Page 36: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

36

muchos (1...*) ya que una beca puede ser de muchos usuarios, por otro lado la tabla

"USUARIO" es una subclase con una asociación de uno a muchos (1...*) en las

tablas “SITIOS_RECOMENDADOS” y “HISTORICO_BUSQUEDAS” (1…*) ya que un

usuario puede tener muchos históricos de búsquedas y muchos sitios

recomendados, la ilustración representa una relación dinámica de agregación por

referencia con ambas tablas debido a que la tabla "USUARIO" únicamente hace uso

de los objetos base incluidos para su funcionamiento.

A continuación se hará una breve descripción de cada una de las tablas del modelo

con sus correspondientes atributos.

4.3.1.1 Estructura de Datos, Tabla BECAS:

Almacena toda la información de convocatorias y becas extraídas de los links

configurados como semillas dentro del código de la aplicación, tiene una relación de

muchos a uno ya que muchas becas pueden ser de un usuario, posee un total de 7

atributos.

Atributo (BEC_ID): Es la identificación única que puede tener una beca dentro del

sistema, también es la llave primaria de la tabla.

Atributo (BEC_LINK): Es el enlace o vínculo de los documentos electrónicos que

hacen referencia a los servidores web de convocatorias y becas y que son visitados

y descargados por el sistema.

Atributo (BEC_TITULO): Es la descripción breve de la información contenida en el

resultado de una búsqueda de información sobre convocatorias y becas.

Atributo (BEC_RESUMEN): Son las ideas más importantes que se encuentran

dentro del documento que se descargó durante una búsqueda de información.

Atributo (BEC_FECHACREACIÓN): Es la fecha de la publicación de la información

sobre becas y convocatorias, el sistema tiene configurada una restricción para

descargar información únicamente si la fecha de creación o publicación es igual o

superior al año actual.

Atributo (BEC_ESTADO): Es la manera de establecer dentro del código del

programa qué tipo de información es extraída de las páginas web, si el estado es

vigente o activo se descarga la información, de lo contrario no.

Atributo (BEC_CUANTIA): Este atributo se encarga de extraer la información

correspondiente al valor que se relacione en el documento, se determinó de tipo

float18 para tener en cuenta los valores decimales.

18 Dato Float: es un dato primitivo que se usa como variable de tipo decimal simple de 4 bytes para cadenas de texto grandes

Page 37: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

37

4.3.1.2 Estructura de Datos, Tabla SITIOS_RECOMENDADOS:

Almacena toda la información de los sitios que cada usuario desea recomendar públicamente, se ingresa la Url del sitio, el nombre que se asigna al sitio que se recomienda y el sistema asigna el usuario que hizo la publicación, tiene una relación de muchos a uno ya que muchos sitios recomendados pueden ser de un usuario, posee un total de 5 atributos. Atributo (SITIOREC_ID): Es la identificación única que puede tener un sitio

recomendado dentro del sistema, también es la llave primaria de la tabla.

Atributo (SITIO_URL): Es el Link o enlace de los documentos electrónicos que

debe ingresarse y que hacen referencia a los servidores web de convocatorias y

becas y que son visitados y descargados por el sistema.

Atributo (USUARIOUSU_ID): Es la forma de relacionar el ID de la tabla de usuarios

que será necesario para mostrar la información.

Atributo (NOMBRE_SITIO): Es el nombre con un límite de 50 caracteres que el

usuario desea asignar a la información de la página que desea recomendar

públicamente.

Atributo (NOMBRE_USUARIO): Es la forma de acceder a la tabla USUARIO para

relacionar el NOMBRE del usuario que será necesario para mostrar la información.

4.3.1.3 Estructura de Datos, Tabla USUARIO:

Almacena toda la información ingresada en el formulario de registro que diligencian

los usuarios nuevos, tiene una relación de uno a muchos ya que un usuario puede

tener muchas becas, sitios recomendados, sitios de interés, histórico de búsquedas,

posee un total de 9 atributos.

Atributo (USU_ID): Es la identificación única que puede tener un usuario dentro del

sistema, también es la llave primaria de la tabla.

Atributo (USU_CORREO): Es la identificación como usuario dentro del sistema, el correo electrónico de un usuario no debe estar repetido. Atributo (USU_PASWORD): Es la forma de autenticación para acceder al sistema,

permite hasta 20 caracteres alfanuméricos.

Atributo (USU_NOMBRES): Es el campo donde se almacena los nombres

completos de cada usuario.

Atributo (USU_APELLIDOS): Es el campo donde se almacena los apellidos

completos de cada usuario.

Page 38: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

38

Atributo (USU_TELEFONO): Es el campo donde se almacena los registros

telefónicos de los usuarios.

Atributo (USU_DIRECCIÓN): Es el campo donde se almacena los registros de

ubicación de los usuarios.

Atributo (USU_EMPRESA): Es el campo donde se almacena los registros con el

nombre de la empresa donde laboran los usuarios.

Atributo (USU_PROFESION): Es el campo donde se almacena los registros del

perfil con respecto a la profesión de los usuarios.

Atributo (USU_TIPO): Es el campo donde se determina el rol del usuario, existen

2 rolas, administrador y usuario.

4.3.1.4 Estructura de Datos, tabla HISTORICO_BUSQUEDAS:

Almacena toda la información de las becas que el usuario ha seleccionado para

guardar dentro de su historial de búsquedas, tiene una relación de muchos a uno

ya que muchos históricos de becas pueden ser de un usuario, posee un total de 6

atributos.

Atributo (HISTO_ID): Es la identificación única que puede tener un registro del

histórico de una beca dentro del sistema, también es la llave primaria de la tabla.

Atributo (HISTO_PALABRACLAVE): Es el campo donde se almacena la

información de los resultados de las búsquedas realizadas cuando el usuario da clic

en la opción guardar.

Atributo (HISTO_FECHA): Este campo almacena las fechas de los resultados de

las búsquedas que han sido seleccionadas por el usuario.

Atributo (USUARIOUSU_ID): Es la forma de relacionar el ID de la tabla de usuarios

que será necesario para mostrar la información.

Atributo (BEC_ID): Es la identificación única que puede tener una beca dentro del

sistema, se usa para relacionar la beca que será cargada en el histórico del usuario.

4.4 Diagrama de Componentes del Proceso de Descarga

de Información a la Base de Datos

El siguiente diagrama de componentes hace parte de la vista física del sistema, el cual modela la estructura de implementación de la aplicación por sí misma, su organización en componentes y su despliegue, utilizando la tecnología Primefaces, Hibernate y Spring.

Page 39: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

39

En la siguiente ilustración se visualiza los componentes del lado del cliente y los componentes del lado del servidor:

Figura 12. Diagrama de Componentes Descarga de Becas.

Nota: El diagrama representa una vista estática del software con las dependencias entre sus componentes.

4.4.1 Component Clien Side (Componente Lado Cliente)

Es el componente encargado de interactuar con el navegador representando la estructura de los documentos XHTML interpretando la información de las hojas de estilo, JavaScript19 y las etiquetas de marcado <Meta>entre otras.

19 JavaScript: es un lenguaje de programación interpretado orientado a objetos lado cliente.

Page 40: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

40

4.4.2 Component Server Side (Componente Lado Servidor)

Es el componente encargado de construir todos los objetos que la aplicación va a utilizar, responde a los requerimientos de información acerca de su estado

(usualmente desde la vista) y responde a las instrucciones para cambiar de estado (usualmente desde el controlador). View (Vista), Dentro del código fuente sus métodos se encuentran dentro del paquete (co.edu.usbcali.becas.presentation.backingBeans), se encargan de mostrar el despliegue de la información, interpreta las acciones del usuario informando al modelo y/o a la vista para cambiar apropiadamente sus estados. Busines Delegate (Delegado del Negocio), Dentro del código fuente sus métodos se encuentran dentro del paquete (co.edu.usbcali.becas.presentation.businessDelegate), es la clase que ofrece una serie de servicios para consumir, todos sus métodos son estáticos, proporciona control y protección para los servicios. Model Control (Modelo de Control), Dentro del código fuente sus métodos se encuentran dentro del paquete (co.edu.usbcali.becas.modelo.control), se encargan de redirigir o asignar una aplicación a cada petición; el controlador contiene la lógica con los métodos que acceden a los atributos de las clases. Dao (Data Access Object, Objeto de Acceso a Datos), Dentro del código fuente sus métodos se encuentran dentro del paquete (co.edu.usbcali.becas.dataaccess.dao), se encargan de todo lo que tenga que ver con salvar, guardar, modificar y realizar consultas a la base de datos. Session Factory (Objeto de Sesion), En un método que se encuentra en varias clases dentro de los diferentes paquetes del código, se encarga de establecer donde se encuentran todos los ficheros de mapeo de Hibernate, también se encarga de asociar los DAO dentro del sistema. 4.4.3 Component DataBase (Componente de Base de Datos)

Este componente se encarga de almacenar datos, recibir peticiones y procesarlas, de acuerdo a su configuración retorna mensajes de transacciones exitosas o no exitosas.

Page 41: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

41

5. Capítulo V

En este apartado se tratara la implementación de la herramienta mostrando el diagrama de secuencia de los procesos de descarga de información y abordando temas como las tecnologías que se usaron para el desarrollo, la estructura de los procesos de extracción y caracterización de información y por último la configuración del proceso de tarea programada.

5.1 Implementación de la Herramienta

Con el fin de dar cumplimento al objetivo planteado en este proyecto que corresponde a la Implementación de un Portal Web de Información sobre Convocatorias y Becas, que valide cada uno de los requerimientos presentados, (ver adjunto.1), se presenta un diagrama de secuencia del proceso de descarga de información que modela la interacción en el tiempo entre los objetos del sistema, del mismo modo se pudo definir una arquitectura viable para el proyecto que nos permitió diseñar procesos de métodos específicos para el contexto de búsqueda y descarga de información web para la herramienta, así como procesos de programación de tareas automatizadas en el código fuente necesarios para su desarrollo. A continuación se expone cada uno de los procesos que fueron necesarios para cumplir con el desarrollo del proyecto.

5.2 Diagrama de Secuencia del Proceso Automatizado

para Descargar Información de Becas

El siguiente diagrama de secuencia representa el proceso de descarga de

información de becas y convocatorias, el diagrama modela la interacción entre las

clases y el intercambio de mensajes entre los objetos.

Page 42: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

42

Figura 13. Diagrama de Secuencia Proceso Descarga Becas y Convocatorias.

Nota: Este diagrama modela la interacción entre los objetos del sistema a través del tiempo intercambiando mensajes entre los objetos

5.2.1 Descripción de la Interacción de los Objetos

El (TimeService20) inicia el servicio generando una consulta al método

(MyJobClassName), el método genera una consulta de búsqueda por criterio

Becas(Nombre, Fecha) al (BusinessDelegator), quien delega la consulta al paquete

modelo donde está el método (BecasLogic) que pasa el (StringQuery21) a la clase

(BecasDao), a continuación se retorna una lista con las becas encontradas que

serán cargadas en la BD para finalmente retornar la información de la beca

seleccionada por el usuario.

20 TimerService: En EJB permite especificar un método que es invocado automáticamente después de un determinado

intervalo de tiempo. 21 StringQuery: es la cadena de consulta que se usa para pasar datos contenidos en una Url dentro de una página web

Page 43: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

43

5.3 Estructura de los Procesos

El portal fue diseñada tomando como base los principios de un motor de búsqueda tipo Crawler que comience visitando una lista de URL que se encuentran insertados en su código llamados Semillas, identificando los hiperenlaces en dichas páginas y añadiéndolos a la lista de URL a visitar de manera recurrente de acuerdo a determinado conjunto de reglas.

Para determinar qué tipo de semillas o páginas web debería estar visitando la herramienta, se realizó una encuesta de investigación (ver adjunto.5) a algunos docentes investigadores del grupo LIDIS22 de la Universidad San Buenaventura de Cali, la encuesta permitió establecer cuál es la preferencia respecto a las páginas web visitadas por los usuarios del portal para realizar consultas de información de convocatorias y becas vigentes.

A continuación se muestra el diagrama general del proceso de descarga de información de convocatorias y becas que realiza el portal.

Figura 14. Diagrama de Procesos de Descarga de Convocatorias y Becas.

Nota: El diagrama representa gráficamente la secuencia de los pasos del proceso de descarga de automática de información de becas.

22 LIDIS: Laboratorio de Investigación para el Desarrollo de la Ingeniería de Software.

Page 44: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

44

5.3.1 Proceso de Extracción de Información dentro de las URLs Visitadas

La clase “MyJobClassName”, contiene un método con el nombre “consultarBecas()”, que se encarga de visitar las URL de cada semilla o link insertado y configurado en el código y cuyo trabajo es descargar el HTML con la información contenida.

El método “consultarBecas()” hace el proceso de extracción de datos de la página, por ejemplo en la página web de “becasColciencias()”, la herramienta visita la URL configurada como semilla y descarga el HTML con la información contenida, a continuación el método Parsea23 el HTML y extrae la información relevante que previamente se configuro, a continuación se consulta si la beca ya existe para descartarla o de lo contrario se inserta en la BD.

La siguiente vista detalla el proceso anterior.

Figura 15. Proceso Extracción en una URL.

Nota: La ilustración representa el método que ejecuta la clase "MyJobClassName", visitando la URL del servidor de Colciencias, para extraer (Parsear) información de sus páginas.

5.3.2 Proceso de Caracterizar la Información Extraída de Cada URL

Los documentos HTML están estructurados por sus metaetiquetas, símbolos y comentarios, los enlaces “href24 = URL” son etiquetas que permiten crear enlaces a otras páginas u objetos, identificando el destino del enlace, lo cual permitió definir o

23 Parsing: Parsear es analizar el código HTML del que se componen las web con el fin de obtener datos específicos. 24 Href: Permite especificar una dirección de enlace dentro de un documento HTML.

Page 45: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

45

más bien caracterizar cual es la información relevante o significativa que será extraída por la herramienta.

Para esto fue necesario investigar qué tipo de información tienen en común cada uno de los sitios web o semillas que fueron configurados dentro del código y que son los que serán descargados y visibles para los usuarios.

La siguiente vista detalla el proceso anterior.

Figura 16. Proceso Caracterización de Información.

Nota: La ilustración representa el proceso de caracterización de la información que será descargada por el sistema, las líneas 3 a la 9

representan las meta-etiquetas que serán buscadas en el HTML. .

5.3.3 Proceso de Búsquedas Por Palabra Clave en el Portal

El proceso de filtro de búsqueda se realiza en el archivo de configuración de Hibérnate que se llama “Consultas.hbm.xml25” dentro del paquete modelo, con esto se busca mantener la consistencia de la información y la persistencia en la BD.

A continuación se muestra el diagrama general del proceso de búsqueda por filtros de información de convocatorias y becas que realiza el sistema.

25 Hbm.Xml: Fichero de mapeo que permite persistir las clases que relacionan una base de datos

Page 46: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

46

Figura 17. Diagrama de Procesos de Filtrado de Búsqueda.

Nota: la Ilustracion representa el proceso de filtros de busqueda de informaqcion con metodos de consulta (Sql-Queri).

Dentro del paquete modelo se ejecuta una consulta (sql-query) con el nombre “búsqueda_beca”, este recibe la palabra clave, lo que se va a buscar y consulta toda la información contenida en los títulos, resumen y fechas de todas las becas, se ejecuta la función (SELECT TRANSLATE) que remplaza una secuencia de caracteres de una cadena, en este caso se usó para quitar las tildes sustituyendo un carácter a la vez, como se muestra a continuación:

Figura 18. Uso Sentencias “SQL” para Realizar Búsquedas.

Nota: La ilustración representa la el método (Select Translate) que remplaza una secuencia de caracteres de una cadena.

Page 47: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

47

La función “UPPER('%'||:pBusqueda||'%')” permite devolver una expresión de caracteres con datos en minúsculas convertidos a mayúsculas, así como “||” para unir 2 string like y encontrar coincidencias, como se muestra a continuación:

Figura 19. Uso de la Función “UPPER, ||”.

Nota: La ilustración representa el método para convertir caracteres de minúsculas a mayúsculas y unir coincidencias.

5.4 Configuración de Tareas Programadas Se implementó una tarea programada para la configuración de la herramienta, con el planificador Quartz26 para programar la misma tarea dentro de una aplicación J2EE, Quartz es un servicio opensource de planificación de tareas que puede ser integrado con cualquier aplicación Java.

Lo primero que se creo es la tarea a ejecutar, con un método público dentro de una clase pública donde se busca editar el fichero XML de contexto de nuestra aplicación web Spring y añadir un bean27 que haga referencia a la clase anterior, como se muestra a continuación:

Figura 20. Uso del Bean “runMeTask”.

Nota: La ilustración representa el nombre de la clase que ejecuta la tarea programada en el código.

Una vez definida la tarea pasamos a configurar los principales conceptos que se usó de Quartz: Job28, timerCronTrigger29 y Sheduler30:

5.4.1 Job

26 Quartz: es un servicio opensource de planificación de tareas que puede ser integrado con cualquier aplicación Java 27 Bean: componente software que tiene la particularidad de ser reutilizable. 28 Job: Es la unidad de trabajo o tarea a ejecutar. 29 timerCronTrigger: Permite especificar expresiones cron de Unix para establecer fechas y horas de ejecución del Job. 30 Sheduler: Módulo del sistema operativo que lleva a cabo la planificación

Page 48: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

48

Es la unidad de trabajo o tarea a ejecutar, la cual nos permite la ejecución de un método de cualquier clase java.

Figura 21. Uso del Planificador de Tareas “schedulerJob”.

Nota: La ilustración representa el método "consultarBecas” que será invocado para la tarea programada.

.

5.4.2 timerCronTrigger

Permite especificar expresiones cron de Unix31 para establecer fechas y horas de ejecución del Job.

Figura 22. Uso de la Expresión “timerCronTrigger”.

Nota: La ilustración representa la configuración de los días y la hora en los que se activara el proceso de descarga de información automáticamente.

En el ejemplo se ejecuta el Job de la siguiente manera:

1/59 significa que se ejecuta cada 59 minutos 8-18 es el horario de ejecución Desde las 8:00 hasta las 19:00

* son todos los días

* son todos los meses

? Cualquier año

31 Unix: sistema operativo portable, multitarea y multiusuario

Page 49: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

49

5.4.3 Sheduler

La aplicación lo usa para lanzar la ejecución del Job mediante un planificador que gestione la ejecución a partir de la información especificada en el Trigger32. Spring incorpora la clase SchedulerFactoryBean33 para ejecutar uno o varios trigger:

Figura 23. Uso del Ejecutor “Sheduler”.

Nota: La ilustración representa la ejecución del Job mediante la clase SchedulerFactoryBean. .

Con todo esto configurado dentro de la herramienta, desplegamos la aplicación en el servidor de aplicaciones y se ejecutará la tarea con la programación especificada.

32 Trigger: son objetos que se asocian con tablas y se almacenan en la base de datos 33 SchedulerFactoryBean: Clase que incorpora spring para ejecutar uno o varios trigger.

Page 50: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

50

6. Capítulo VI

En esta etapa del desarrollo del proyecto se han definido los tipos de pruebas a realizar, para esto se abordan temas como las consideraciones que se tuvieron en cuenta para cada prueba, validando que el sistema cumple con el funcionamiento esperado desde el punto de vista de su funcionalidad y rendimiento.

6.1 Pruebas

Al desarrollar las pruebas del software se obtuvo información sobre los errores, defectos o fallas que tiene la herramienta, así se realizaron las correcciones pertinentes, según el caso y se asegura la calidad del producto que se está entregando al cliente.

Las pruebas del software se aplican sobre el producto, es decir, las pruebas a implementar son funcionales, ya que son vitales para la validación del producto con el objetivo de establecer que los requisitos se estén cumpliendo.

Por ser un desarrollo web, Las pruebas se realizaron en un ambiente con acceso a internet y en máquinas con las siguientes características:

Memoria mínimo 2Gb (recomienda 4 en adelante)

Procesador 2Ghz en adelante.

Video 512Mb (Como mínimo).

Pantalla que soporte resolución de 1024 x 768 o más

Sistema Operativo Windows 7 o versiones posteriores.

Acceso a internet con navegador web, IExplorer, Mozilla, Chrome, etc.

JAVA7 o versiones posteriores.

6.2 Consideraciones para realizar las Pruebas Con el objetivo de realizar pruebas acertadas y lo más cercanas a la realidad de acuerdo al proyecto que se está desarrollando, se diseñaron pruebas enfocadas a los métodos de caja negra o (Funcionales), para verificar que los requerimientos fueran cumplidos, las pruebas de software se realizaron de acuerdo al documento Plan de Pruebas de Software, (ver adjunto.2). A continuación se presenta un ejemplo de las pruebas realizadas a uno de los procesos más importantes en el desarrollo, los casos de prueba fueron diseñados conforme a las técnicas descritas en el documento Técnicas de Pruebas (Casos Uso-Técnicas Prueba-MPR, (ver adjunto.5).

Page 51: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

51

6.3 Prueba Funcional

Se realiza validando que el software funcione de forma natural como el usuario lo espera, registrando errores y fallas de uso en las instalaciones y con las máquinas de la universidad. Como ejemplo para esta prueba se tomó uno de los procesos más importantes que realiza el sistema, que es realizar filtros de búsqueda por diferentes opciones, los casos de uso que representan esta prueba son: ID-CU-13, “Buscar Por Palabra Calve”, ID-CU-14, “Buscar Por Estado”, ID-CU-15, “Buscar Por Fecha de Inicio”, ID-CU-16, “Buscar Por Fecha Fin”. La plantilla completa con los casos de uso del sistema la puede ver en, (Ver adjunto.4), a continuación se muestra un ejemplo de la prueba realizada: 6.3.1 Descripción de la Prueba

Para la siguiente prueba se determinó usar la técnica de Arreglos Ortogonales dado

que nos permite identificar unas posibles combinaciones de variables para reducir

la cantidad de pruebas realizadas, también se usó la técnica de Tablas de Decisión

que nos permiten registrar las reglas o condiciones del negocio.

6.3.2 Objetivo de la Prueba

El objetivo de la prueba es confirmar que el usuario puede generar una acción de

búsqueda de información dando clic en la opción "Buscar" seleccionando cualquiera

de las opciones de filtrado y obteniendo como resultado información más precisa o

relevante con una lista de links según el tipo de filtro de búsqueda requerido, para

esta prueba se presenta el siguiente escenario:

El usuario ingreso al sistema y está ubicado en la pantalla del menú de opciones de

"Búsqueda de Becas", tiene 4 opciones para realizar filtros de búsqueda de

información: (1) Buscar por palabra clave, (2) Buscar por estado de la beca, (3)

Buscar por fecha de inicio de la beca, (4) Buscar por fecha de finalización de la

beca.

Page 52: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

52

6.3.3 Identificando Variables (Técnica Arreglo Ortogonal)

Tabla 2. Identificación de Variables Para la Prueba Nota: La tabla representa la cantidad de variables usadas en la prueba y la cantidad de opciones por variable

6.3.4 Identificando Posibles Combinaciones

Tabla 3. Identificación de Combinaciones. Nota: La tabla representa la cantidad de combinaciones posibles para la prueba

Page 53: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

53

6.3.5 Mapeo del Arreglo Ortogonal

Tabla 4. Plantilla de mapeo de variables con sus opciones.

Nota: la tabla representa cada opción que se debe tomar en el sistema para realizar la prueba

6.3.6 Diseñar Requerimiento de las Pruebas

Page 54: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

54

Tabla 5. Lista de requerimientos para las pruebas.

Nota: La tabla representa la lista de cada una de las pruebas que se deben realizar.

Page 55: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

55

6.3.7 Condiciones y Resultados (Técnica Tablas de Decisión)

Page 56: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

56

Tabla 6. Condiciones y Resultados de la prueba.

Nota: La tabla representa el conjunto de reglas o condiciones para cada prueba así como los resultados obtenidos.

Page 57: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

57

7. Capítulo VII

Este capítulo consta de los resultados de las pruebas realizadas a la herramienta,

las conclusiones a que se ha llegado con base en la experiencia del desarrollo del

proyecto, así como un apartado con recomendaciones para los trabajos futuros de

temas referentes a los planteados en este trabajo y finalmente se entregan cada

una de las referencias que sirvieron de guía para el desarrollo de este trabajo.

7.1 Resultados

Una vez finalizadas las pruebas, se realizó un reporte que resume el proyecto en su

conjunto con respecto a sus indicadores de esfuerzo total, estas mediciones sirven

de base para las estimaciones de posteriores proyectos en temas relacionados.

A continuación se expone la planilla del cálculo de indicadores que representa cada

actividad de las pruebas y su correspondiente fecha de planeación y fecha de

ejecución:

Tabla 7. Fórmulas para Cálculo de Indicadores de Pruebas.

Nota: La tabla representa la fórmula para calcular el esfuerzo requerido en el desarrollo.

Tabla 8. Representación del tiempo requerido para el desarrollo.

Nota: La tabla representa el tiempo requerido (Diseño, ejecución, reproceso).

Page 58: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

58

Tabla 9. Tabla del Cálculo de Indicadores.

Nota: la tabla representa el resultado en porcentajes de las pruebas realizadas al software.

Page 59: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

59

7.2 Conclusiones

La implementación del portal web de información sobre becas y convocatorias por medio de técnicas de Crawling proporciona un soporte en la búsqueda de información a todos sus usuarios, al hacer uso de los principios básicos de la herramienta se realizaran visitas a los URLs de los servidores web de información que fueron configurados en el código fuente del sistema con la intención de descargar automáticamente todas las publicaciones vigentes y facilitar los procesos de búsqueda de información que normalmente se realizaban con buscadores web tradicionales. El uso de técnicas para la extracción automática de información a base de Crawling, ha permitido representar un modelo de datos característico, este modelo de datos estructurado facilita la extracción de información de los servidores web ofreciendo a todos sus usuarios un repositorio centralizado de información donde cada uno de ellos pueda acceder a una base de datos actualizada obteniendo por cada link de información extraído, el título de la convocatoria, un resumen general y la fecha de su publicación, brindando la posibilidad de decidir rápidamente si es o no de su interés. Se ha conseguido un portal web de información que presenta sus contenidos con el mismo aspecto que una página web, razón por la cual sus usuarios podrán interactuar con la herramienta como si estuvieran navegando en la red. También es fácil de ampliar y mantener ya que las tecnologías usadas son en su totalidad de software libre que ofrece entre sus ventajas soporte y compatibilidad a largo plazo. La implementación de las técnicas propuestas supone una solución a los principales problemas que plantea la extracción de información estructurada de la web sobre el tema específico (Convocatorias y Becas) para todos los usuarios del portal. Es importante diseñar un software con una arquitectura en capas, donde la distribución de responsabilidades en sus componentes sean tareas específicas tales como presentación visual, lógica de negocio y persistencia entre otros, con esto se permite identificar fácilmente fallas en las funcionalidades del sistema facilitando su mantenimiento y actualización. A nivel general se concluye que dada la gran cantidad de información que existe en la web y sus continuos cambios, cualquier esfuerzo que se realice para crear herramientas o medios de extracción de información automatizados para un dominio determinado, son valiosos y deben continuar.

Page 60: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

60

7.3 Trabajos Futuros y Recomendaciones

Como recomendación a trabajos futuros que busquen el aprovechamiento de las

publicaciones de ofrecimientos de becas y convocatorias en estudios de educación

superior en la web, se expone a continuación los siguientes gráficos que evidencian

el uso y la necesidad de herramientas que faciliten el acceso a este tipo de

información:

Tabla 10. Gráfico de Adjudicación de Becas de América Latina. Nota: Distribución de becas por país de origen.

El programa Albán (América Latina Becas de Alto Nivel), que entre 2003 y 2010

contribuyó con la formación de 2471 profesionales latinoamericanos que

desarrollaron estudios de maestría, doctorado y especialización profesional en

instituciones de educación superior de la UE.

Page 61: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

61

Tabla 11. Estadística de Adjudicación de Becas de América Latina.

Nota: Distribución de becas por áreas de estudio y proyecto de formación.

De acuerdo al informe de gestión de Icetex, (Gestión, 2014), 813 colombianos

salieron beneficiados por los programas que otorga la institución y los organismos

oferentes de acceder a una beca en el exterior, Enfatizando que las becas no se

las ganan los más aplicados, se las ganan los que aplican.

Tomando en cuenta lo anterior, este trabajo se presenta como la primera versión al

desarrollo de trabajos futuros que puedan generar extractores de información

mediante un análisis comparativo de los extractores desarrollados en este proyecto,

con el objetivo de obtener información de diferentes fuentes y aprovechar cualquier

oportunidad de adjudicación a una beca por medio de esta herramienta.

El modelo utilizado asume un dominio de aplicación específico a algunos servidores

web de temas relevantes sobre becas y convocatorias, una aproximación más

ambiciosa consistiría en aplicar las técnicas propuestas para definir un dominio

general de la web, una arquitectura de Crawling que recorra toda la web localizando

y extrayendo información de cualquier servidor web que contenga índices sobre los

que se pueda consultar, esto con el fin de que algunos servidores web que

Page 62: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

62

contienen información no estructurada o esquemas de datos diferentes no permitan

extraer su contenido.

Tomando como guía la implementación realizada en este proyecto se podría incursionar en el desarrollo de un sistema de búsqueda de información que permita visitar cualquier Url de cualquier tipo de servidor sin que esta Url se encuentre insertada en el código fuente, un sistema genérico que permita al usuario generar búsquedas de información sin limitarse a determinados sitios web que ofrezcan información sobre convocatorias y becas. Para cualquier proyecto que se desarrolle a futuro, se recomienda investigar las tendencias actuales de los procesos de búsquedas de información en la web, esto debido al constante crecimiento y evolución que demandan los grandes desarrolladores de sitios web, quienes en la actualidad están enfocados en la búsqueda de información focalizada y para ellos existen los llamados Crawlers focalizados, que han hecho que sea posible este tipo de rastreo. Adicionalmente, el diseño del portal web por medio de técnicas de Crawling permite recomendar el uso de herramientas como el framework de Spring y el generador de código de Zathuracode como herramientas para la inyección de dependencias y la unificación de código, esto conlleva a disminuir tiempo y costos en el desarrollo, además su uso es libre, GPL u OpenSource, ya que muy difícil adquirir herramientas de software propietarias por sus costos de licenciamiento.

Page 63: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

63

Referencias

Alvarez, V. M. (2013). Arquitectura Optimizada para un Motor de Busqueda Web

Eficiente. Universidade da Coruña. Departamento de Tecnoloxías da

Información e as Comunicacións.

Baeza, R., & Poblete, B. (2003). Dynamics of the Chilean Web Structure.

Volume 50, Issue 10, Pages 1464–1473.

Baeza-Yates, R. (2004). Excavando la Web.

El profesional de la información, 2004, enero-febrero, v. 13, n. 1, pp. 4-10.

Baeza-Yates, R. (2007). Caracterizando la web chilena.

Eduardo Graells Technical report, Center for Web Research, University of

Chile, 2007.

Blazqúez Ochando, M. (2012). análisis webmétrico de los medios de comunicación brasileños. The Verge. [Brazilian newspapers yank content from Google

News, blame lack of compensation].

Camargo, F. I. (2013). Web crawlers: Evolution and current.

Ingeniería (0121-750X).2013, Vol. 18 Issue 2, p19-35. 17p.

Colle, R. (2014). Internet Ayer, Hoy y Mañana.

INCOM Chile, Asociación Chilena de Investigadores en Comunicación, Lugar y fecha de edición: Santiago de Chile, 2015.

Diaz, M. A. (2007). Arquitectura para un Crawling Dirigido.

Universidade da Coruña (España) en 2007.

DNP, P. D. (2010-2014). CNA_PlanNacionalDesarrollO.

Uni-pluri/versidad, Vol. 13, N.° 2, 2013

Europea, C. (2008). La asociación estratégica entre la Unión Europe.

Malamud, Carlos (2008) Los actores extrarregionales en América Latina (y

III): las relaciones con la Unión Europea. Boletín Elcano (99). 7 p.ISSN

1696-3326

Page 64: IMPLEMENTACIÓN DE UN PORTAL WEB POR MEDIO DE …

64

Garcia, H. L. (2010). Técnicas de Visualización Crawler Wire.

Área de lenguajes y sistemas informáticos, departamento de informática facultad de traducción y documentación universidad de salamanca.

Gestión, I. I. (2014). Informe Gestión Icetex 2014.

Centro Administrativo Nacional, CAN, Bogotá, D.C

Ginés Mora, J. &. (2010). Informe de evaluación final del Programa ALBAN.

Disponible. ISSN Impreso 0121-3261, vol. 21 n.° 1

Herrera, J. G. (2015). Crawler focalizado para la extracción de documentos desde

revistas científicas.Serie Científica de la Universidad de las Ciencias

Informáticas Vol. 8, No.1, Octubre, 2015 ISSN: 2306-2495 | RNPS: 2343

L. Hao, R. F. (s.f.). The Preliminary Process of Modeling in Deep Web Information

Fusion. Vol. 18, Núm. 2 (2013) Sarmiento

Ochando, M. B. (2013). Nuevos retos de la tecnología web crawler.

In XIII Jornadas Españolas de Documentación FESABID, Toledo (Spain),

23-25 mayo 2013

Oscar, G. (2005). Información y caracterización de los contenidos de las páginas

web sobre antivacunación en internet en lengua castellana y catalana.

Universidad Oberta de Catalunya, Information Research. Núm. 10(3), 1-23. ISSN.1368-1613

Pareja, C. c. (2014). Portales de busqueda de becas en el extrangero. Semana Educación 2014, Rev. Semana

Palma, G. M. (2013). Aplicación de técnicas de inteligencia artificial para el.

Universidad Computence de Madrid, Tesis Doctoral.

Ramos Simon, L. (2013). Análisis de la web medioambiental de la Administración

Pública en España.

Rev. Interam. Bibliot vol.36 no.3 Medellín Sept/Dec. 2013

Restrepo, M. c. (2014). Mitos y poca divulgación, principales obstáculos de las

becas. Vida moderna 2014, Rev. Semana.