You are on page 1of 154

UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITCNICA SUPERIOR INGENIERA EN INFORMTICA PROYECTO FIN DE CARRERA

BUSCAEMPLEO AGREGADOR DE PORTALES DE EMPLEO

Autor: Jorge Molinero Muoz Tutor: Vicente Luque Centeno Fecha: Octubre 2004

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Jorge Molinero Muoz

Pgina 2

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Agradecimientos
Agradezco enormemente el apoyo y la paciencia recibidos de quienes ms me quieren, de quienes han estado a mi lado siempre, y concreto, durante el transcurso de mi formacin acadmica, a quienes siempre, tanto en buenos momentos como en malos, me han ayudado.

Gracias Pap y Mam, ya que de no ser por vosotros no habra terminado, por permitir mi completa dedicacin a mi trabajo y a mi carrera. Y ante todo, por marcarme siempre el camino correcto.

Gracias Hermanos, por ayudarme a desconectar cuando era necesario y por pasar tantos ratos conmigo mientras estudiaba.

Gracias Loly, por animarme, por sufrir mi falta de tiempo libre y por estar a mi lado.

Y por ltimo, gracias a mis compaeros de clase quienes tambin me han ayudado a llevar lo mejor posible la carrera.

Muchas gracias a todos.

Jorge Molinero Muoz

Pgina 3

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

ndice
AGRADECIMIENTOS ..........................................................................................................3 NDICE ................................................................................................................................4 NDICE DE FIGURAS ...........................................................................................................7 NDICE DE TABLAS ............................................................................................................8 NDICE DE CDIGO FUENTE..............................................................................................9 1 INTRODUCCIN............................................................................................................. 10 INTRODUCCIN ................................................................................................................. 10 CONTEXTO. ...................................................................................................................... 11 MOTIVACIN..................................................................................................................... 12 OBJETIVOS ....................................................................................................................... 13 ESTRUCTURA DEL P ROYECTO ............................................................................................. 14 SIGLAS Y ACRNIMOS ........................................................................................................ 16 2 ESTADO DEL ARTE...................................................................................................... 17 BSQUEDA DE E MPLEO ...................................................................................................... 18 W EB S EMNTICA ............................................................................................................... 19 Descripcin de los datos. ............................................................................................. 21 Manipulacin de los datos disponibles en Internet.......................................................... 22 ARQUITECTURA ................................................................................................................. 24 Patrones de Diseo ..................................................................................................... 24 Modelo Vista Controlador............................................................................................. 26 Arquitectura en tres capas ............................................................................................ 27 CAPA DE PRESENTACIN.................................................................................................... 29 Servl ets....................................................................................................................... 30 Jsp ............................................................................................................................. 30 WebL.......................................................................................................................... 31 CAPA DE DATOS ................................................................................................................ 31 Base de Datos ............................................................................................................. 31 Ficheros XML .............................................................................................................. 33 CAPA DE LGICA DE N EGOCIO ............................................................................................ 35 Java con DOM............................................................................................................. 35 WEBL ......................................................................................................................... 36 XPATH ............................................................................................................................. 38 MODELO V ISTA CONTROLADOR ........................................................................................... 48 3 ANLISIS Y DISEO ...................................................................................................... 49

Jorge Molinero Muoz

Pgina 4

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

ESPECIFICACIN DEL PROBLEMA ......................................................................................... 50 ANLISIS F UNCIONAL ......................................................................................................... 51 Anlisis de los Portales de Empleo ............................................................................... 51 MODELADO DE R EQUISITOS ................................................................................................ 54 Operaciones de Bsqueda ........................................................................................... 64 ANLISIS DEL SISTEMA ....................................................................................................... 66 Patrones de diseo ...................................................................................................... 66 D ISEO ........................................................................................................................... 69 MODELO E NTIDAD R ELACIN .............................................................................................. 72 COMPORTAMIENTO DEL S ISTEMA ......................................................................................... 75 Bsqueda.................................................................................................................... 75 Proceso de Alta ........................................................................................................... 76 Modificacin de datos asociados a un usuario ............................................................... 77 Gestin de alertas........................................................................................................ 78 Gestin de controles .................................................................................................... 79 Proceso de actualizacin de controles, generacin de alertas y actualizacin de cach. .. 79 Proceso de visualizacin de controles ........................................................................... 83 Gestin de puestos de trabajos asociados a un usuario ................................................. 84 Bsqueda Inteligente. .................................................................................................. 85 Bsqueda de Empresas. .............................................................................................. 86 4 IMPLEMENTACIN ........................................................................................................ 88 D EFINICIN DEL INTERFAZ .................................................................................................. 88 TECNOLOGAS APLICADAS................................................................................................... 89 JSDK .......................................................................................................................... 90 Xalan .......................................................................................................................... 91 Jtidy............................................................................................................................ 93 WebL.......................................................................................................................... 94 SOPORTE DE LA INFORMACIN. ........................................................................................... 94 ACCESIBILIDAD. .............................................................................................................. 100 R EDUCCIN DE LATENCIA ................................................................................................. 101 OTRAS CARACTERSTICAS: ESCALABILIDAD, DISPONIBILIDAD, CONCURRENCIA , REUTILIZACIN,
MANTENIMIENTO, PORTABILIDAD. ....................................................................................... 104

Escalabilidad ............................................................................................................. 104 Disponibilidad ............................................................................................................ 105 Concurrencia ............................................................................................................. 106 Robustez................................................................................................................... 107 Reutilizacin.............................................................................................................. 109 Mantenimiento........................................................................................................... 110 Portabilidad ............................................................................................................... 112 D IAGRAMA DE C ONSULTA ................................................................................................. 113

Jorge Molinero Muoz

Pgina 5

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

5 PRUEBAS .................................................................................................................... 116 6 HISTORIAL DEL PROYECTO ....................................................................................... 119 BALANCE DE TIEMPOS Y ESFUERZO. ................................................................................... 126 7 PROBLEMAS ENCONTRADOS .................................................................................... 127 8 CONCLUSIONES Y TRABAJOS FUTUROS .................................................................. 130 9 BIBLIOGRAFA............................................................................................................. 132 ANEXO A: MANUAL DE USUARIO.................................................................................. 137 ANEXO B: CONFIGURACIN DE CRONTAB .................................................................. 146 ANEXO C: MANUAL DE INSTALACIN DEL SISTEMA ................................................... 148 ANEXO D: MAPA DE PUNTOS DE VERIFICACIN.......................................................... 152

Jorge Molinero Muoz

Pgina 6

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

ndice de Figuras
Figura 1 Web Actual y Web Semntica ................................................................................ 20 Figura 2 Modelo Vista Controlador....................................................................................... 26 Figura 3 Arquitectura de Tres Capas ................................................................................... 28 Figura 4 Arquitectura de Tres Capas Implantada .................................................................. 29 Figura 5 Diagrama de Casos de Uso General ...................................................................... 55 Figura 6 Diagrama de Casos de Uso Bsqueda de Puesto................................................. 58 Figura 7 Diagrama de Casos de Uso - Gestin de Perfil........................................................ 61 Figura 8 Diagrama de Estados. Flujo de Puesto ................................................................... 63 Figura 9 Dominio de Unin de Consultas ............................................................................. 64 Figura 10 Dominio de Intereseccin de Consultas ................................................................ 65 Figura 11 Dominio de SubConsultas .................................................................................... 65 Figura 12 Patrn Singlenton ................................................................................................ 67 Figura 13 Patrn Command ................................................................................................ 68 Figura 14 Patrn Strategy ................................................................................................... 68 Figura 15 Diagrama de Clases Modelo Lgico de Negocio ................................................. 70 Figura 16 Diagrama de Clases - Modelo Logico de Negocio II............................................... 71 Figura 17 Diagrama de Clases - Modelo Lgico de Negocio (Comandos) .............................. 72 Figura 18 Diagrama de Clases - Capa de Datos ................................................................... 72 Figura 19 Modelo Entidad-Relacin ..................................................................................... 74 Figura 20 Diagrama de Actividad - Bsqueda ....................................................................... 75 Figura 21 Diagrama de Secuencia - Proceso de Alta ............................................................ 76 Figura 22 Diagrama de Secuencia - Modificacin de Datos Asociados a un Usuario ............... 77 Figura 23 Diagrama de Secuencia - Gestin de Alertas ........................................................ 78 Figura 24 Diagrama de Secuencia - Gestin de Controles .................................................... 79 Figura 25 Diagrama de Secuencia - Proceso de Actualizacin de Controles, Generacin de Alertas y Actualizacin de Cach .................................................................................. 80 Figura 26 Diagrama de Secuencia - Actualizacin de Cach................................................. 81 Figura 27 Diagrama de Secuencia - Generacin de Alertas ................................................... 82 Figura 28 Diagrama de Secuencia - Generacin de Controles ............................................... 83 Figura 29 Diagrama de Secuencia Proceso de Visualizacin de Controles .......................... 84 Figura 30 Diagrama de Secuencia - Gestin de Puestos Asociados a un Usuario................... 85 Figura 31 Diagrama de Colaboracin - Bsqueda Inteligente ................................................ 86 Figura 32 Interfaz de Usuario .............................................................................................. 89 Figura 33 Interfaz de Usuario - rea de Trabajo Secundaria.................................................. 89 Figura 34 Arquitectura Mediador........................................................................................ 114

Jorge Molinero Muoz

Pgina 7

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

ndice de Tablas
Tabla 1 Siglas y Acrnimos ................................................................................................. 16 Tabla 2 Locations Paths...................................................................................................... 41 Tabla 3 Locations Steps...................................................................................................... 42 Tabla 4 Axes ...................................................................................................................... 43 Tabla 5 Axes(NodeTest) ..................................................................................................... 45 Tabla 6 Predicates.............................................................................................................. 45 Tabla 7 Abbreviations ......................................................................................................... 47 Tabla 8 Expresions ............................................................................................................. 47 Tabla 9 Functions ............................................................................................................... 48 Tabla 10 Reduccin de Tiempos con Concurrencia ............................................................ 102 Tabla 11 Reduccin de Tiempos con Cach (50% de acierto) ............................................. 104 Tabla 12 Reduccin de Tiempos con Cach (75% de acierto) ............................................. 104 Tabla 13 Tipos de Cambios ............................................................................................... 107 Tabla 14 Tipos de Atributos ............................................................................................... 108 Tabla 15 Ficheros de Logs ................................................................................................ 112 Tabla 16 Pruebas - Bsqueda de Puestos de Trabajos ....................................................... 117 Tabla 17 Pruebas - Bsquedas de Empresas ..................................................................... 117 Tabla 18 Pruebas - Acceso al rea Personal...................................................................... 117 Tabla 19 Pruebas - Funcionalidades del rea Personal ...................................................... 118 Tabla 20 Pruebas - Funcionalidades de la Bsqueda Inteligente ......................................... 118 Tabla 21 Tiempos de Desarrollo del Proyecto..................................................................... 126 Tabla 22 Estructura de Directorios de Jakarta-Tomcat ........................................................ 150 Tabla 23 Estructura de Directorios de WebL ...................................................................... 151 Tabla 24 Puntos de Verificacin de Prioridad 1................................................................... 153 Tabla 25 Puntos de Verificacin de Prioridad 2................................................................... 154

Jorge Molinero Muoz

Pgina 8

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

NDICE DE CDIGO FUENTE


Cdigo Fuente 1 Obtencin de objeto Document .................................................................. 91 Cdigo Fuente 2 Transformacin de XML con XSL............................................................... 92 Cdigo Fuente 3 XML de Usuarios ...................................................................................... 93 Cdigo Fuente 4 DTD de usuarios ....................................................................................... 95 Cdigo Fuente 5 DTD de Cach.......................................................................................... 96 Cdigo Fuente 6 DTD de Empresas .................................................................................... 96 Cdigo Fuente 7 DTD de Bsquedas ................................................................................... 97 Cdigo Fuente 8 Fichero XML de ejemplo de usuarios ......................................................... 98 Cdigo Fuente 9 Fichero XML de ejemplo de empresas ....................................................... 98 Cdigo Fuente 10 Fichero XML de ejemplo de cach ........................................................... 99 Cdigo Fuente 11 Fichero XML de bsquedas ................................................................... 100

Jorge Molinero Muoz

Pgina 9

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

1 Introduccin
Introduccin
El presente proyecto comprende el anlisis, diseo y la implementacin de un portal de empleo que constituya una potente herramienta en la ardua tarea de buscar trabajo, facilitando tanto la incorporacin al mundo laboral, como el cambio en busca de un empleo ms acorde a las necesidades del usuario.

Inicialmente, la implementacin de dicho portal ofrece la complejidad de la realizacin de una aplicacin web. Pero para ello, es necesario que las ofertas de empleo fuesen insertadas manualmente o automticamente. Y en este punto es donde surge la problemtica y el verdadero potencial del proyecto, pues las empresas no van a acceder a dicho portal para ofrecer sus puestos de trabajo, sino que es la aplicacin la que debe extraer toda la informacin necesaria de los portales de empleo disponibles en Internet [1, 2, 3, 4, 5, 6, 7], en los cuales, s se dan de alta dichas empresas.

Se realizar un estudio sobre los distintos portales de empleo con el objetivo de determinar sus funcionalidades, ventajas y desventajas. Y una vez realizado dicho estudio se definir un tipo genrico de plataforma con las principales caractersticas de los anteriores y aadiendo una serie de funcionalidades que faciliten en la medida de lo posible la bsqueda de empleo. Tambin se determinar en este paso que portales de empleo se integrarn en la plataforma a desarrollar.

Una vez se hayan definido los requisitos del sistema, se proceder a su anlisis y diseo, que quedar correctamente plasmado mediante la utilizacin del lenguaje UML [32] como herramienta de modelado, asentando con ello los conocimientos adquiridos durante el transcurso de los estudios de la Ingeniera en Informtica.

En el desarrollo del proyecto se estudiarn diversas tecnologas disponibles en el momento actual y propensas a ser utilizadas en la implementacin de una aplicacin web, con el objetivo de utilizar aquella que resulte ms eficiente y que permita un desarrollo ms correcto y estructurado. Con ello se consigue que a la finalizacin del proyecto, se tenga un conocimiento ms completo de las tecnologas existentes en el mercado y se aprenda a utilizar algunas de estas.

Jorge Molinero Muoz

Pgina 10

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Se crear un sistema cuya instalacin sea sencilla y se describirn los pasos necesarios para llevarla a cabo, de modo que pueda ser montado sin necesidad de utilizar grandes estaciones de trabajo o servidores corporativos. Tambin se documentarn toda las caractersticas configurables de la aplicacin para que su mantenimiento sea sencillo y rpido, permitiendo al administrador cambiar en un fututo, y si lo considera necesario, el interfaz de la aplicacin adaptndolo a los nuevos tiempo, y a su vez poder agregar o borrar los portales de empleo con los que el sistema se integrar.

Por otro lado, funcionalmente, se buscar ofrecer una interfaz simple e intuitivo que permita que los usuarios que utilicen la aplicacin se familiaricen rpidamente con el sistema. Pues el objetivo principal del proyecto es constituir un sistema prctico y til a la hora de buscar un puesto de trabajo.

Contexto.
Actualmente la World Wide Web es la mayor fuente de informacin gratuita y disponible. En ella se puede encontrar informacin de cualquier naturaleza, nicamente con buscar apropiadamente.

Realmente Internet, consiste en un canal de comunicacin entre las personas con un enorme potencial, cada da mejor aprovechado. Dicho canal se lleva utilizando bastante tiempo, no nicamente para satisfacer las necesidades del conocimiento, sino tambin como un medio para poner en contacto a las personas que trabajan con l.

Con el objetivo de maximizar los beneficios informativos proporcionados por la WWW, se han desarrollado mltiples agentes que extraen informacin de Internet para posteriormente tratarla y permitir a los usuarios que navegan por la Web poder acceder a aquellos contenidos que realmente les interesan, como es el caso de los buscadores.

Pero en la creacin de dichos agentes, se ha dejado cierta parcela sin cubrir, y es la relativa a aquellos contenidos que se ofrecen a los navegantes durante un tiempo muy corto, de modo que sea el usuario que esta interesado el que tiene que preocuparse por localizar dichos elementos. Son casos como los productos que se venden por Internet, viajes, subastas, o como la bsqueda de trabajo, la bsqueda de un piso en venta...

En este proyecto se ha perseguido cubrir parte de dicha parcela de la WWW en la cual los agentes existentes no se han utilizado, en concreto en la bsqueda de puestos de trabajos. Y para ello se va a estudiar la arquitectura que se va a utilizar as como las distintas

Jorge Molinero Muoz

Pgina 11

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

tecnologas que son proclives a ser usadas para la implementacin del sistema, decidiendo finalmente cuales de estas van a ser empleadas en el desarrollo de la aplicacin.

Motivacin
En la actualidad Internet es uno de los recursos de informacin ms importante y accesible que existe, incluso por encima de otros canales de informacin como la prensa escrita, la televisin, la radio... Dicho canal de informacin resulta muy til y prctico en lo relativo a la bsqueda de informacin de cualquier naturaleza, puesto que se puede encontrar en l todo lo que se desee, simplemente con buscarlo de la forma correcta.

Precisamente las dificultades para acceder a dicha informacin aparecen en las bsquedas, ya que el contenido, el formato y la estructura de la informacin disponible en Internet es muy heterognea y diversa, obligando a los usuarios que demandan dichos datos a aprender a utilizar mltiples aplicaciones. Aparte de que es necesario el conocimiento de la existencia de dichas aplicaciones por parte del usuario.

Otro problema que resulta de la utilizacin de dichas aplicaciones, es la necesidad implcita de que los usuarios dispongan de un equipo apropiado conectado a Internet con un navegador adecuado, dando lugar a una importante limitacin, puesto que puede haber personas que no cumplan dichos requisitos y deseen acceder a las aplicaciones. Por lo que se requerira que dichas aplicaciones estuviesen disponibles para acceder a ellas a travs de otros dispositivos.

Por qu Bsqueda de Empleo?

El proyecto elaborado constituye un sistema de bsqueda de empleo. Se ha decidido implementar un agregador de portales de empleo debido a que es un caso en que se observa que los usuarios realizan bsquedas de informacin, la cual se encuentra en muy diversos formatos, y existen mltiples portales que cubren la necesidad parcialmente.

En lo concerniente a la bsqueda de un puesto de trabajo, actualmente existen multitud de portales de empleo en los cuales las empresas se dan de alta y colocan los puestos de trabajo disponibles, de cara a que la gente que desee buscar un empleo, pueda acceder a travs de Internet, y realizar sus bsquedas de empleo sin necesidad de ir visitando las distintas empresas.

La problemtica resultante de esta situacin se basa nicamente en el hecho de la existencia de mltiples portales, por lo que las empresas se pueden dar de alta en muchos portales, y los usuarios puedan realizar sus bsquedas en algn portal que no sea el

Jorge Molinero Muoz

Pgina 12

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

adecuado, de tal modo que no encuentre el puesto de trabajo deseado, pese a que este se encuentre vacante.

Todo esto hace que por un lado los usuarios sin experiencia ni si quieran lleguen a consultar todos los portales de empleo disponibles ignorando la existencia de puestos que se ajusten a su perfil. Y por otro lado que usuarios experimentados traten con mltiples portales de empleo dando lugar a una gran prdida de tiempo pues se ven obligados a repetir en varias ocasiones las mismas acciones de bsqueda pero con distintas aplicaciones.

Objetivos
Este proyecto se ha realizado para satisfacer las necesidades de quien requiere buscar un trabajo, ya que pese a la existencia de los portales de empleo, se observan una serie de necesidades sin cubrir.

El primer aspecto que hay que destacar, es que la informacin que se le ofrece al usuario en los diversos portales de empleo es muy heterognea obligando a este a familiarizarse con mltiples aplicaciones, por lo que el primer objetivo es ofrecer un sistema de consulta homogneo, estructurado y lo ms intuitivo posible, con el fin de facilitar al usuario la interaccin con la aplicacin.

Otro fin del proyecto, es permitir que el usuario interaccione con varios portales de empleo, pues la propia existencia de mltiples portales de empleo, hace que el usuario no pueda consultarlos todos en su actividad de bsqueda, pudiendo dejar un puesto de trabajo asociado a su perfil simplemente por el hecho de no haber consultado el portal de empleo adecuado. Este mismo objetivo es bidireccional, ya que las empresas se deberan dar de alta en varios portales de empleo para poder estar al alcance de todos los usuarios que buscan trabajo.

Otro objetivo que se pretende cubrir es evitar que el usuario se encuentre desbordado por la gran oferta de empleo que aparecen en estos portales dndole una serie de utilidades que le permitan establecer criterios para filtrar aquellos puestos de trabajo que no son de inters.

Tambin se pretende administrar una herramienta de gestin de puestos de trabajo, en la cual se puedan tener un listado de vacantes interesantes para el demandante, y registrar un seguimiento del estado de dichas vacantes.

Jorge Molinero Muoz

Pgina 13

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Por lo que se observa que la realizacin de este proyecto puede generar un gran beneficio a quien se encuentre en la compleja tarea de buscar empleo.

Estructura del Proyecto


Este documento describe el anlisis, diseo e implementacin del Agregador de Portales de Empleo, indicando los problemas que se han dado para su realizacin. Tambin se ha incluido en la documentacin las tcnicas y libreras que se han utilizado para la implementacin del sistema, as como las alternativas que se tenan inicialmente y las decisiones por las que se ha decantado.

Para la realizacin de esta documentacin se ha utilizado la metodologa UML (Unified Modeling Language) [25, 32] pues se considera la mejor metodologa para representar funcionalmente y tcnicamente el sistema desarrollado.

A continuacin se describen cada uno de los captulos que componen la documentacin:

El primer captulo consiste en una breve introduccin en la cual se identifica el contexto actual en el que se ha desarrollado el proyecto, la motivacin que ha incentivado la creacin de este sistema as como la justificacin por la cual se ha optado por la realizacin de un sistema agregador de portales de empleo y no otro tipo de aplicacin.

En el segundo captulo Estado del Arte se ha presentado el contexto tecnolgico en el cual nos encontramos actualmente, indicando las distintas tecnologas que podan haber sido utilizadas para la realizacin del sistema y decidiendo cual de stas eran las ms apropiadas para la implementacin de la aplicacin. Todo este estudio ha sido segmentado siguiendo la arquitectura que se pretenda implantar, Arquitectura en Tres Capas. [26, 27] Otro aspecto que se ha presentado en este captulo ha sido las ltimas tendencias tecnolgicas en la implementacin de aplicaciones web.

En el captulo de Anlisis y Diseo se ha realizado como indica su nombre el anlisis y el diseo del sistema siguiendo la metodologa UML. Inicialmente se ha realizado un anlisis funcional, en el cual se identificaban y explicaban brevemente las funcionalidades principales del sistema. Posteriormente se ha realizado un modelado de requisitos por medio de diagrama de casos de uso con el objetivo de acotar las funcionalidades de la aplicacin, de modo que pueda ser consultado en cualquier momento y que con un golpe de vista se identifiquen las acciones que el sistema realiza. Una vez identificado los requisitos, se ha procedido a realizar el anlisis del sistema y finalizado este, se ha hecho el diseo de la aplicacin. Entre las

Jorge Molinero Muoz

Pgina 14

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

secciones de este captulo, tambin se encuentra el Diseo de Entidad Relacin de la Informacin que se debe almacenar en el sistema y el Modelado del Comportamiento de la aplicacin por medio de Diagramas de Colaboracin y Diagramas de Secuencia.

El siguiente captulo denominado Implementacin muestra todos aquellos aspectos relacionados con el desarrollo de la aplicacin, pero con un mayor nivel de detalle que el diseo. Es decir, presentar todas las caractersticas destacables de la implementacin del sistema y que no quedan debajo del anlisis y diseo, como puede ser la especificacin del interfaz de usuario, las tecnologas implantadas, u otras propiedades importantes de la aplicacin. Entre ellas, la reduccin del tiempo de espera, el soporte fsico en el cual se ha almacenado la informacin, la accesibilidad...[9] En este captulo se describe detalladamente el proceso de una consulta a la aplicacin. Otras cualidades de la aplicacin que tambin se han abordado en este captulo son la como la accesibilidad, la consistencia, la concurrencia, la portabilidad, etc...

Un elemento imprescindible para garantizar un software estable y de calidad son las pruebas, por lo que se le dedicado un captulo aparte, ya que para tener la certeza de que son correctamente realizadas, hay que aislarlas de la implementacin.

El captulo Historial del Proyecto presenta una descripcin cronolgica de las actividades realizadas para la implementacin del proyecto, permitiendo hacer un seguimiento de estas y descubrir cual ha sido la evolucin que ha seguido el desarrollo de la aplicacin.

Problemas Encontrados muestra las situaciones conflictivas que se han dado en el desarrollo de la aplicacin, indicando cual era el origen de dichos problemas y las acciones que se han llevado a cabo para solventarlos.

El captulo Conclusiones y Trabajos Futuros indica las conclusiones a las que se ha llegado una vez finalizado el proyecto y presenta varios frentes de evolucin que permitiran que el servicio ofrecido por el portal sea ms completo.

Finalmente, aparecen la Bibliografa y los Anexos donde se presenta la documentacin que ha sido consultada para la realizacin del proyecto, y se aporta una serie de documentos auxiliares que facilitaran el entendimiento del funcionamiento de la aplicacin.

Jorge Molinero Muoz

Pgina 15

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Siglas y Acrnimos
A continuacin se presentan una serie de siglas y acrnimos que son utilizados frecuentemente en la documentacin del proyecto.

API CSS DOM DTD ETT GPL HTML HTTP J2EE JDK JSDK JSP MVC RDF SQL Ssh UML URI URL W3C WAI WebL WWW XML XSL XSLT

Application Program Interface Cascading Style Sheets Document Object Model Document Type Definition Empresa de Trabajo Temporal General Public License HyperText Markup Language Hipertext Transfer Protocol Java 2 Enterprise Edition Java Development Kit Java Servl et Development Kit Java Server Pages Modelo Vista Controlador Resource Description Framework Standard Query Language Secure Shell Unified Modeling Language Uniform Resource Identifier Uniform Resource Locators World Wide Web Consortium Web Accessibility Iniciative Compaq's Web Language World Wide Web Extensible Markup Language Extensible Stylesheet Language Transformations XSL
Tabla 1 Siglas y Acrnimos

Jorge Molinero Muoz

Pgina 16

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

2 Estado del Arte


En el contexto actual en el que nos movemos en el cual las aplicaciones web se encuentran en pleno auge, han aparecido multitud de herramientas orientadas a la creacin de sistemas a los cuales se puede acceder a travs de la web. En este captulo se realizar en un estudio de las distintas tecnologas, herramientas y estndares existentes para la automatizacin de procesos y el desarrollo de aplicaciones web.

Se comentar el contexto en el cual nos encontramos con el objetivo de identificar aquellas herramientas que mejor se adapten a la implementacin del proyecto que se desea llevar a cabo.

Tambin se realizaran observaciones sobre las ltimas tendencias en desarrollo de aplicaciones web, como la utilizacin de frameworks, que aportan al sistema gran consistencia por medio del cumplimiento de patrones de diseo y un mecanismo para la correcta validacin de los datos introducidos por el usuario.

Jorge Molinero Muoz

Pgina 17

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Bsqueda de Empleo
La bsqueda de empleo, es una de las actividades ms comunes en la actualidad, ya que con los tiempos que corren de crisis, son muchas las personas que no tienen trabajo o que simplemente no estn conformes con su empleo actual. Esta demanda de bsqueda de empleo ha contribuido a la aparicin de una multitud de canales a disposicin del candidato que facilitan la ardua tarea de buscar trabajo. Entre estos canales se encuentra Internet. La Red pone al alcance del candidato una serie de herramientas que complementan las disponibles en el mundo fsico. Un estudio realizado por iLogos Research, indica que en el ao 2003 el 94% de las empresas ms importantes de Estados Unidos incluan en su pgina web un apartado para contratar personal.

Otra de las herramientas que proporciona la Red para facilitar la bsqueda de un trabajo, son los portales de empleo, que permiten al usuario buscar y localizar una vacante apropiada sin necesidad de acceder a las pginas web de las empresas, permitiendo aglutinarlas todas en un solo portal, agilizando en gran medida el proceso de bsqueda.

Despus de realizar un estudio, se llega a la conclusin de que pese a la multitud de herramientas existentes, la bsqueda de empleo es un proceso activo, el cual requiere un esfuerzo y una dedicacin. Puesto que es muy complicado encontrar el trabajo deseado nicamente incluyendo el currculo en un portal de empleo.

Las empresas tienden a utilizar tanto Internet como el correo electrnico en sus procesos de seleccin, de modo que el candidato pierde una gran cantidad de oportunidades si no dispone de estos canales de comunicacin. Internet permite el acceso a enormes bolsas de empleo y facilita el contacto entre las empresas y los trabajadores, pero no libra a los demandantes de realizar el esfuerzo.

La gran ventaja que ofrece la Red es que permite acortar las distancias entre las empresas y las personas que buscan trabajo, aportando una gran cantidad de ventajas: comodidad, inmediatez, ahorro de dinero y tiempo...

Esto ha motivado a que las mayoras de las empresas tengan una seccin en su web destinado al empleo. Dicha seccin normalmente es de libre acceso y si el usuario requiere de mayores servicios, se le solicita que se registre (generalmente el proceso de registro es gratuito)

Dnde buscar trabajo?

Jorge Molinero Muoz

Pgina 18

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Estos servicios han levantado tanto inters que se han creado un gran nmero de bolsas de trabajo disponibles en la Red, de modo que la oferta para el demandante es amplia y variada. Segn un estudio de Pew Internet Proyect, la mitad de los internautas estadounidenses (52 millones de personas) utiliz la Red para buscar trabajo. Los recursos disponibles en la Red, para buscar trabajo son muy variados: ? Portales de empleo ? Cuentan con las bases de datos ms extensas y es donde suelen acudir las empresas a buscar currculos. [1,2,4,5,6,7] ? Sitios especializados ? Son portales a los cuales acceden aquellos demandantes que tienen claro el rea en el cual desean trabajar. Prcticamente cada sector tiene su pgina de empleo, aunque, lo que ms abundan son las bolsas de trabajo de informtica y tecnologa: Tecnoempleo [3] en Espaa o Computerjobs en Estados Unidos. Tambin destacan aquellos sites para trabajos relacionados con las finanzas. ? Anuncios clasificados ? Las publicaciones de anuncios clasificados tambin se han incluido en la Red. El grupo Anuntis, editor de peridicos gratuitos y publicaciones especializadas sobre inmobiliaria, motor y empleo se encuentra presente en Internet con Segundamano, que tiene su seccin de trabajo en Internet, que a su vez complementa con el portal Mercado de Trabajo. ? Trabajo temporal ? Otra alternativa para buscar trabajo es acceder a las pginas de las ETT. Estas disponen de portales que ofrecen recursos tanto a las empresas como a los demandantes de empleo. Entre estas encontramos: Interempleo, Manpower, Adecco y Temps

Web Semntica
El objetivo de la Web Semntica es convertir la informacin disponible en Internet en conocimiento. [19,48]

Internet, es un canal de comunicacin orientado a las personas, es decir para que estas interacten con los sistemas buscando informacin, cuyo objetivo final es la obtencin de

Jorge Molinero Muoz

Pgina 19

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

un conocimiento. Y la problemtica surge del hecho de que dicho conocimiento nicamente se obtiene de una forma manual por medio de una dedicacin a la bsqueda de contenidos. Es decir, al conocimiento nicamente llegan las personas por medio de la interaccin con la web y el aprendizaje que dicha accin conlleva. El objetivo de la Web Semntica es que dicho conocimiento no este nicamente al alcance de las personas, es decir, que automticamente sea posible obtener la informacin disponible en Internet y estructurarla de modo que se llegue al conocimiento.[47]

HTML

Universidad

HREF

HREF

Contiene

Contiene

HTML

HTML

Departamento

Departamento

HREF

Formado

HTML

HREF

HTML

Profesor

Ensea

Estudiante

HREF HTML

HREF HTML

Ensea Estudiante

Ensea Estudiante

Web Actual

Web Semntica

Figura 1 Web Actual y Web Semntica

Cul es el principal problema que se encuentra la Web Semntica?

Que los datos disponibles en Internet no tienen ninguna estructura y en numerosas ocasiones estn fuera del contexto, de modo que su tratamiento resulta muy complejo. Para convertir dichos datos en informacin es necesario estructurarlos, y esto requiere de un conocimiento del contexto en el cual se encuentran los datos. Es decir, es necesaria una explicacin de los datos, informacin acerca de los datos, lo que se denomina: metadatos.

En la Web Semntica aparecen dos conceptos fundamentales:

Jorge Molinero Muoz

Pgina 20

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? La descripcin del significado de los datos. ? ? La manipulacin automtica de dichos datos. ?

Descripcin de los datos.


Para el correcto tratamiento de los datos, se debe tener un conocimiento inicial acerca de estos. La descripcin de los datos comprende los siguientes conceptos: ? La Semntica. ? La semntica hace referencia al significado real de los datos, pero para llegar a dicho significado es necesario verlos dentro de un contexto, pues individualmente pueden tener varias acepciones. ? Los Metadatos. ? Describen el contexto en el cual se encuentran los datos, de modo que colaboran en el establecimiento del significado de la informacin, es decir, la semntica.

Los metadatos no se visualizan, pero se encuentran integrados en el documento ofreciendo informacin variada: desde el tipo de formato utilizado (html, xml...) hasta el autor, editor con el que se ha confeccionado, informacin para los buscadores, etc.

Los metadatos permiten el tratamiento automtico de la informacin disponible en la web, por ejemplo, los buscadores se apoyan utilizan, entre otros elementos, los metadatos para indexar las pginas web disponibles en Internet. ? Las Ontologas [46]. ? Son colecciones de enunciados que definen las relaciones entre conceptos y especifica las reglas lgicas que permiten razonar con dichos conceptos. Las ontologas permiten el tratamiento automtico de los datos semnticos de una pgina de la red siguiendo los vnculos especificados en las relaciones.

Un lenguaje en el cual se definen dichas ontologas son los RDF.

RDF (Resource Description Framework)

Los RDF [55] se crearon a partir del XML, mediante ellos podemos dotar de contenido a los datos de las pginas web. Consiste en la descripcin de los recursos disponibles en la red. Como son las pginas, los frames, los formularios...

Jorge Molinero Muoz

Pgina 21

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Los RDF definen un lenguaje semntico comn para crear pginas web, se definieron etiquetas para indicar lo que es una noticia, lo que es un ttulo, etc. De esta forma se permite el intercambio de datos entre webs a nivel semntico, por ejemplo, la obtencin de noticias de la web mediante programas que leen RDF sin necesidad de acceder a la web con un navegador.

Los RDF mediante el uso de los URI (Uniform Resource Identifier, que identifican de los recursos de la red de manera unvoca) proveen de una estructura semntica precisa, que permite la codificacin y el intercambio de metadatos correctamente normalizados.

Pero esta no es la nica utilidad que proporcionan los RDF, estos tambin ofrecen las reglas que permiten asociar los conceptos representados mediante metadatos, posibilitando su tratamiento automtico, y permitiendo que el procesamiento de esta informacin sea rpido.

RDF usa la sintaxis del lenguaje XML para el intercambio y procesamiento de metadatos.

No hay que confundir RDF con Web Semntica. RDF es simplemente un modelo y formato de datos que permite a la gente crear datos legibles por la mquina. La Web Semntica ser construida por encima de estos datos. Por lo tanto, cuando se publica algo en RDF, no se est creando necesariamente una parte de la web semntica, sino que se est poniendo los datos a disposicin de los procesadores semnticos de la web.

Manipulacin de los datos disponibles en Internet.


Pero el significado de los datos, no es el nico problema con el que se encuentra la web semntica, no es suficiente con saber que significan los datos para obtener el conocimiento. Para ello es indispensable el tratamiento de dichos datos. Y el tratamiento automatizado de estos supone un gran inconveniente debido a que la web esta ideada para la interaccin con el hombre.

La web es un entorno visual en el cual los seres humanos navegan entre los mltiples vnculos disponibles en las pginas utilizando en dicha navegacin: la intuicin, el conocimiento del contexto, la identificacin del significado de las imgenes expuestas en las pginas, etc... De modo que automatizar todas esas tareas que resultan tan simples de realizar por parte una persona no es sencillo, y todo pese a que se tenga conocimiento del significado de los elementos que componen las pginas.

Existen mltiples aplicaciones que se encargan de la manipulacin de los datos:

Jorge Molinero Muoz

Pgina 22

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? Motores de bsquedas. ? Son aplicaciones que permiten realizar bsquedas de recursos disponibles en la Red y que se encuentran correctamente indexados. Existen distintos tipos de buscadores o motores de bsqueda segn se indexe dicha informacin. Entre ellos se encuentran: Spiders: Recorren las pginas recopilando informacin sobre los contenidos de estas. Principalmente el texto que en ellas aparece. Cuando se busca una informacin en los motores, ellos consultan su base de datos, y con la informacin que han recogido de las pginas, presentan un resultado clasificando las ocurrencias segn su relevancia.

Directorios: En estos, los algoritmos son mucho ms sencillos, presentan la informacin sobre las webs registradas como una coleccin de directorios. No recorren las webs ni almacenan sus contenidos. Solo registran algunos de los datos de las pginas. Como el ttulo y la descripcin de la web que se introduzcan a la hora de registrar las webs.

? Agentes inteligentes. [56] ? Un agente es una entidad software que recoge, filtra y procesa informacin contenida en la Web, realiza inferencias sobre dicha informacin e interacta con el entorno sin necesidad de supervisin o control constante por parte del usuario.

Cualidades de los agentes: ? Comunicativo: El agente debe entender las necesidades, objetivo y ? preferencias del usuario. As mismo, debe poder comunicarse con el entorno mediante representaciones compartidas del conocimiento (ontologas) ? Autnomo: El agente aparte de comunicarse, debe poder interactuar con el ? entorno, tomando decisiones y actuando por s solo, limitando sus acciones segn el nivel de autonoma permitida por el usuario. ? Adaptable: El agente debe ser capaz de aprender del entorno: usuarios ? (preferencias), fuentes de informacin y otros agentes.

El papel del agente inteligente en el proceso de recuperacin semntica de informacin no debe confundirse con la de un buscador inteligente. Un buscador inteligente se aprovechar del enriquecimiento semntico de los recursos web para mejorar (principalmente en la precisin) la recuperacin de informacin, aunque su funcionamiento se basar, como los actuales buscadores, en la previa indexacin de todos aquellos recursos susceptibles de ser recuperados.

En cambio, un agente inteligente recorrer la Web a travs de los enlaces entre recursos (hiperdocumentos, ontologas...) en busca de aquella informacin que le sea

Jorge Molinero Muoz

Pgina 23

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

solicitada, pudiendo adems interactuar con el entorno para el cumplimiento de tareas encomendadas. Por ejemplo, un agente inteligente, ante una consulta dada, podra consultar autnomamente un buscador, y a partir de sus resultados, explorar la Web hasta encontrar la informacin solicitada, pudiendo finalmente llevar a cabo una accin sobre dicho recurso, como podra ser la reserva de una habitacin en un hotel.

Realmente este es uno de los objetivos del presente proyecto, la capacidad de manipular los datos, en este caso los puestos de trabajos, disponibles en Internet permitiendo estructurarlos y operar con ellos, llegando a obtener cierto conocimiento: Los puestos de trabajo que se repiten, los puesto que son realmente nuevos, agrupar los empleos de las empresas aunque se encuentren en distintos portales.

Arquitectura
El sistema cumple con una arquitectura J2EE (Java 2 Enterprise Edition) [24]. J2EE es un conjunto de especificaciones propuestas por Sun Microsystem en Java para la construccin de aplicaciones empresariales.

Esta arquitectura se caracteriza por: ? Heterogeneidad y descentralizacin: Las aplicaciones resultantes son muy diversas y ? no tienen porque encontrarse ubicadas en una misma mquina fsica. Caracterstica muy comn en los sistemas de informacin actuales. ? Independencia de plataforma, portabilidad e interoperabilidad entre aplicaciones. El ? propio hecho que las aplicaciones se encuentren distribuidas genera la necesidad de que los sistemas sean independientes de la plataforma y que sean fcilmente portables de una mquina a otra.

Patrones de Diseo
Se considera un patrn de diseo a la descripcin de un conjunto de objetos y clases que se comunican entre s y que pueden ser adaptados para resolver un problema de diseo general en un contexto particular. Son tcnicas genricas que han tenido xito en una gran cantidad de proyectos y se han destilado y recopilado para ser usadas. [25,26]

Cada patrn describe un problema que se repite habitualmente, y explica los fundamentos de la solucin a dicho problema, de tal modo que se puede usar esta solucin

Jorge Molinero Muoz

Pgina 24

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

siempre que se presente el mismo problema, de una manera diferente, pero usando los mismos fundamentos.

En general, un patrn de diseo tiene cuatro elementos:

1. El nombre del patrn. Es un identificador que usa para describir un problema de diseo, su solucin y las consecuencias. Es utilizado para facilitar la comunicacin entre los desarrolladores. Es la manera corta y inequvoca de nombrar el patrn.

2. El problema, que describe en que contexto se debe usar el patrn. Para ayudar en la identificacin de los "sntomas" precisos de los problemas que el patrn solucionar. Describe cuando se puede aplicar el patrn. Se explica el problema a resolver y su contexto. A veces el problema incluir una lista de las condiciones que se deben cumplir para que tenga sentido aplicar el correspondiente patrn de diseo.

3. La solucin. Descripcin de los elementos que conforman el diseo en cuestin, incluyendo sus relaciones, responsabilidades y colaboraciones. La solucin no describe un diseo particular y concreto o una implementacin, dado que un patrn es como una plantilla que puede ser aplicada en situaciones diversas. Por consiguiente, un patrn da las directrices de cmo se debe arreglar el problema.

4. Las consecuencias, son los resultados y costes de usar el patrn. Esto es muy importante porque permite prever los beneficios de la solucin, de manera que se pueda evaluar fielmente si es el patrn ptimo.

Hay que darse cuenta de que los patrones de diseo dependen del punto de vista, de la manera de interpretarlos. El hecho es que el patrn que aplica una persona, otra persona lo puede haber hecho igual sin saber que es un patrn sencillamente porque ha "reinventado la rueda", es decir ante un problema ha hallado una solucin que coincide con la que se describen en los patrones de diseo. En este sentido, para hablar de patrones de diseo es mejor concentrarse en aquellos que poseen cierto nivel de abstraccin.

Un patrn de diseo identifica, abstrae y formaliza los aspectos clave de una estructura comn de diseo til para ser reusada en la resolucin de toda una serie de problemas similares. Cada patrn se especializa en un aspecto concreto.

Los patrones ayudan a aumentar la calidad de un desarrollo, bsicamente dando ideas de como hacer el cdigo ms reusable y mantenible. Es decir, ensean a saber que hacer con la herencia, el polimorfismo, y todas las ventajas que tiene la orientacin a objetos. Un patrn se describe mediante UML para que pueda aplicarse a cualquier lenguaje orientado a objetos.

Jorge Molinero Muoz

Pgina 25

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Existen 3 tipos de patrones: los patrones de creacin, los estructurales y los de comportamiento. Los patrones de creacin indican como los objetos son creados, compuestos y representados. Los patrones estructurales tratan sobre como las clases y objetos se estructuran para formar entidades mayores. Los patrones de comportamiento estn relacionados sobre la adjudicacin de responsabilidades a los objetos y de los algoritmos.

Modelo Vista Controlador

El sistema se caracteriza por ser una aplicacin Cliente-Servidor, y con el objetivo de que el sistema sea lo ms estructurado posible, se ha decidido que se debe ajustar en la medida de lo posible a una arquitectura (o patrn) Modelo Vista Controlador.

HTTP

Controlador Resultado

Action

Redirecciona

Modelo

Respuesta

Vista

Consulta

Figura 2 Modelo Vista Controlador

Este patrn divide una aplicacin en tres reas: procesamiento, entrada y salida. Y esta compuestos por: Modelo: encapsula los datos y la funcionalidad principal de la aplicacin. Es independiente de la representacin de los datos.

Jorge Molinero Muoz

Pgina 26

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Vista: despliega la informacin al usuario, a partir de los datos del Modelo. Cada Vista tiene un componente Controlador asociado. Controlador: que se encarga de recibir las entradas del usuario.

Esta separacin de componentes, permite tener distintas vistas del mismo modelo e independizar las acciones (las cuales son interpretadas por el controlador) de la presentacin de los resultados.

El funcionamiento del patrn consiste en que el navegador del usuario, en su peticin HTTP, genera una solicitud que es atendida por el controlador. ste analiza la peticin, y en funcin de la operacin que se desee realizar se llama a los objetos correspondientes del Modelo. El Modelo se encarga de ejecutar la solicitud y generar los resultados que mostrarn posteriormente las Vistas.

En funcin del resultado devuelto por el Modelo, el Controlador redireccionar la peticin hacia una Vista u otra. Las cuales presentan los resultados generando el cdigo HTML de las pginas, proceso que puede necesitar consultar al Modelo para realizar su tarea adecuadamente.

Ventajas: ? Se independizan tanto las vistas como las acciones del Modelo, dotando al sistema de ? un ncleo ms estable y robusto. ? Permite posponer el desarrollo del interfaz de la aplicacin a la implementacin de ? esta. De tal modo que las decisiones asociadas a la imagen, quedan en segundo plano. ? Permite centralizar las operaciones. ? ? Favorece la reutilizacin de las vistas, puesto que estas pueden ser llamadas a partir ? de distintas operaciones.

Arquitectura en tres capas


Aparte de cumplir el Modelo Vista Controlador, el sistema responde a una arquitectura en tres capas. Donde el Modelo Vista Controlador se implementa en la capa de presentacin y en la capa Lgica de Negocio. [26,53]

Jorge Molinero Muoz

Pgina 27

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Capa de Presentacin Navegador Navegador Navegador Interfaz Web

Capa Lgica de Negocio

Capa de Datos

Modelo

Figura 3 Arquitectura de Tres Capas

Capa de Presentacin: Es la capa que se encarga del interfaz de usuario, de la presentacin con la que se encuentra el usuario. Consiste en una interfaz web a la que acceden los usuarios va http mediante navegadores, de tal modo que cualquier persona puede interactuar con la aplicacin nicamente con tener instalado un navegador web.

Capa Lgica de Negocio: Es el ncleo del sistema en el se realizarn todas las operaciones y clculos necesarios para el funcionamiento de la aplicacin.

Capa de Datos: Es la parte del sistema que se encarga del acceso a los datos.

Las ventajas de esta arquitectura: ? Mayor claridad de desarrollo, pues se divide la implementacin en partes claramente ? diferenciadas, permitiendo un desarrollo por mdulos, lo que permite una distribucin de las tareas de desarrollo ms ptima. ? Menor coste de modificacin en la presentacin. Al considerar la presentacin de la ? informacin al usuario como una capa independiente, esto permite que si en un momento determinado se decide cambiar el interfaz de usuario, esta modificacin no repercuta en el funcionamiento del sistema, pues nicamente se debe modificar la capa de presentacin. ? Menor coste en caso de modificacin de los datos. Del mismo modo que con la capa ? de presentacin, el hecho de tener una capa independiente de datos, permite una fcil migracin del sistema de una fuente de datos a otra. ? Facilidad de desarrollo y disminucin del tiempo necesario para terminar el sistema, ? pues permite la paralelizacin en el desarrollo de las tareas.

Jorge Molinero Muoz

Pgina 28

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? Facilita la especializacin de perfiles de programacin (cada uno de los diferentes ? bloques es desarrollado por distintos perfiles en funcin de sus cualidades de programacin). ? Aumenta en gran medida el nivel de reusabilidad de cdigo. Facilita una evolucin ? continuada de los sistemas, sin puntos de ruptura, ya que un cambio en un sistema afectar a uno o ms componentes pero nunca afectar significativamente al ncleo de la aplicacin

Otro aspecto a tener en cuenta en un sistema con esta arquitectura, son los intercambios de informacin entre las capas. Esta informacin se representar mediante ficheros XML, los cuales ofrecen los datos en una estructura determinada, la cual puede llegar a ser tratada directamente por las capas de presentacin y de datos.

Por otro lado, pese a que el sistema respete la estructura anterior, se encuentra la particularidad de que son necesarios tres interfaces en el sistema, es decir tres conexiones del sistema con el exterior:

BASE DE DATOS USUARIO SISTEMA INTERNET

Figura 4 Arquitectura de Tres Capas Implantada

Esta necesidad viene motivada por el hecho de que el sistema requiere de una interaccin con Internet, independiente del interfaz de usuario, ya que necesita como fuente de informacin los portales de empleo. De tal modo que se observa que realmente en el sistema la capa de Datos comprende tanto los accesos a los datos almacenados por el sistema como los accesos a los datos contenidos en Internet (en los portales de empleo) por lo que realmente aparecen tres canales de comunicacin entre el sistema y el exterior.

Capa de Presentacin

Jorge Molinero Muoz

Pgina 29

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Respecto a la capa de presentacin, se presentan mltiples opciones tecnolgicas para su implementacin. Todas ellas cumplen los requisitos de ser orientadas a la realizacin de aplicaciones Web, y ser multiplataforma.

Las tecnologas que van a ser estudiadas son: ? Servlets ? ? Jsp ? ? WebL ?

Servlets
Los servlets son mdulos de Java, que se pueden implantar en un servidor web o contenedor de aplicaciones, de tal modo que es posible crear aplicaciones a las cuales se acceda mediante un navegador web, es decir aplicaciones Web. [24]

El servidor web o contenedor de aplicaciones ejecuta dichos servlets cuando estos son invocados mediante el protocolo http. Estos procesan la peticin http del cliente y generan una respuesta en forma de pgina html que es enviada al cliente, el cual la visualiza en su navegador.

Una de las ventajas de los servlets es que son cargados en memoria nicamente cuando son solicitados por el cliente, y posteriormente residen en ella. Esta propiedad de los servlets permite agilizar enormemente su ejecucin, ya que las tareas ms pesadas slo se ejecutan en el constructor.

Otra ventaja que ofrecen los servlets, es su fcil asociacin con la tecnologa XML, pues la pgina de respuesta de los servlets puede ser el resultado de aplicar a un fichero XML una serie de transformaciones indicadas en ficheros XSL. Lo que conllevara a una gran independencia de los datos con la presentacin de la informacin al usuario.

Jsp
Al igual que los servlets, los jsp (Java Server Pages) son mdulos Java, que tambin permiten la creacin de aplicaciones web, con la diferencia conceptual de que los servlets son programas Java que reciben, procesan y generan una pgina de respuesta y los jsp son pginas html, en las cuales hay directivas en Java que son ejecutadas cuando se va a devolver la pgina solicitada por el usuario. [29,30]

Estas directivas en Java, dan una gran flexibilidad pues pueden invocar a los mtodos de las clases que constituyan la aplicacin.

Jorge Molinero Muoz

Pgina 30

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

La problemtica de esta tecnologa es que no se ve tan claramente la independencia de la informacin con la presentacin de los datos, pues el jsp representa la pgina que se va a mostrar. Esto permite un desarrollo en principio ms rpido pero menos flexible y reutilizable.

WebL
WebL dispone de un mdulo denominado Servlet cuya funcionalidad es parecida a la que ofrecen los Servlets realizados en Java, aspecto lgico pues WebL est realizado en Java. Dicho mdulo permite realizar aplicaciones Web en WebL, de tal modo que un programa en WebL es capaz de recibir, procesar y responder a una peticin http realizada por un cliente desde un navegador. [14,16,17]

Resolucin

Finalmente se determina que la tecnologa ms adecuada para la implementacin de la capa de presentacin son los Servlets por los siguientes motivos: ? Es la tecnologa con la cual el desarrollador esta ms familiarizado. ? ? Frente a los JSP: Permiten independizar en mayor medida la interfaz de usuario, pues ? esta se encontrar formada por una serie de plantillas (ficheros xsl) fcilmente modificables. ? Frente a WebL: Suponiendo que el ncleo de la aplicacin este hecho en Java, es ? conveniente utilizar servlets, ya que se obtendra una aplicacin ms homognea, pues as la mayor parte del software estar realizado en Java, generando una mayor capacidad de reutilizacin de funcionalidades..

Capa de Datos
Para que el sistema sea persistente en el tiempo y no se pierda la informacin, es necesario un soporte fsico en el cual se almacene la informacin. Como soporte fsico aparecen dos opciones a utilizar, una base de datos o ficheros xml.

Base de Datos
Es un sistema formado por un conjunto de datos y unos programas que se encarga de la gestin de dichos datos, de manera que se controla el almacenamiento de estos. En estos

Jorge Molinero Muoz

Pgina 31

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

sistemas, los datos son independientes de los programas que los usan. Las relaciones que hay en la informacin se almacenan junto a los datos. Caractersticas: ? Acceso mltiple: Varios usuarios pueden acceder al sistema sin que se produzcan ? conflictos ni resultados incoherentes. ? La descripcin de los datos est almacenada junto a ellos, se encuentra implcita en la ? estructura de la Base de Datos. ? Control de redundancia: Los datos se almacenan una sola vez, por lo que no es ? necesario actualizar un dato en varios ficheros.

Para la implementacin del proyecto se consider la utilizacin MySQL, un sistema de administracin de bases de datos relacionales.[31]

Una base de datos relacional almacena los datos en tablas separadas en lugar de poner todos los datos en un solo lugar. Esto agrega velocidad y flexibilidad. Las tablas son enlazadas al definir relaciones que hacen posible combinar datos de varias tablas cuando se necesitan consultar datos. Para realizar dichas consultas se utiliza SQL, "Lenguaje Estructurado de Consulta", es el lenguaje ms usado y estandarizado para acceder a bases de datos relacionales.

MySQL es Open Source, es decir que puede ser usado gratuitamente Cualquiera puede descargar el software de MySQL de Internet y usarlo sin pagar por ello. Inclusive, cualquiera que lo necesite puede estudiar el cdigo fuente y cambiarlo de acuerdo a sus necesidades. MySQL usa la licencia GPL (Licencia Pblica General GNU), para definir qu es lo que se puede y no se puede hacer con el software para diferentes situaciones.

El servidor MySQL fue desarrollado originalmente para manejar grandes bases de datos mucho ms rpido que las soluciones existentes y ha estado siendo usado exitosamente en ambientes de produccin sumamente exigentes por varios aos. Aunque se encuentra en desarrollo constante, el servidor MySQL ofrece hoy un conjunto rico y til de funciones. Su conectividad, velocidad, y seguridad hacen de MySQL un servidor bastante apropiado para acceder a bases de datos en Internet.

El software de bases de datos MySQL consiste de un sistema cliente/servidor que se compone de un servidor SQL multihilo, varios programas clientes y bibliotecas, herramientas administrativas, y una gran variedad de interfaces de programacin (APIs). Se puede obtener tambin como una biblioteca multihilo que se puede enlazar dentro de otras aplicaciones para obtener un producto ms pequeo, ms rpido, y ms fcil de manejar.

Jorge Molinero Muoz

Pgina 32

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Ficheros XML
XML, o Lenguaje de Marcado Extensible (Extensible Markup Language), es un lenguaje de marcado basado en texto que permite estructurar la informacin por medio de etiquetas. Fue creado por el Consorcio para la World Wide Web (W3C) para superar las limitaciones de HTML, el Lenguaje de Marcado de Hipertexto que es la base para todas las pginas Web. [20, 22]

Existen tres trminos comnmente usados para describir las partes de un documento XML: etiquetas, elementos y atributos. ? Una etiqueta es un texto entre el smbolo menor que (<) y el smbolo mayor que (>). ? Existen etiquetas de inicio (como <nombre>) y etiquetas de fin (como </nombre>) ? Un elemento consta de la etiqueta de inicio, la etiqueta de fin y de todo aquello que ? este entre ambas. ? Un atributo es un par nombre-valor dentro de la etiqueta de inicio de un elemento. ?

Hay tres tipos de documentos XML: ? Documentos invlidos no siguen las reglas de sintaxis definidas por la especificacin ? XML. Si un desarrollador tiene reglas definidas de lo que ese documento puede contener en una DTD o Esquema, y el documento no las sigue, ese documento es invlido. ? Documentos vlidos siguen tanto las reglas de sintaxis XML como las reglas ? definidas en su propio DTD o Esquema. ? Documento bien formado sigue las reglas de sintaxis XML, pero no tiene un ? Esquema o DTD.

Existen dos mtodos para definir los elementos se pueden usar en representar de los datos en un fichero XML: ? Un mtodo es usar un Document Type Definition o DTD. Un DTD define los ? elementos que pueden aparecer en un documento XML, el orden en el cual pueden aparecer, cmo pueden estar anidados y otros detalles bsicos de la estructura del documento XML. Los DTD son parte de la especificacin original de XML y son muy similares a los DTDs de SGML. ? El otro mtodo es usar un Esquema XML (XML Schema). Un esquema puede definir ? todas las estructuras de documento que pudieran definirse con DTDs y adems, puede definir tipos de datos y reglas mucho ms complicadas de las que pueden hacerse con un DTD. El W3C desarroll la especificacin de Esquemas XML un par de aos despus que la especificacin original XML.

Jorge Molinero Muoz

Pgina 33

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Aunque, no siempre es necesario la utilizacin de DTD o Esquemas XML. Ya que los documentos XML gracias a sus etiquetas auto-describen los datos que contienen.

A continuacin se muestran las ventajas de la utilizacin de documentos XML: ? XML simplifica el intercambio de datos. Debido a que diferentes organizaciones (en ? incluso diferentes partes dentro de una misma organizacin) raramente utilizan un nico conjunto de herramientas, esto puede suponer una cantidad de trabajo significativa para comunicar las aplicaciones. Usando XML cada grupo crea una nica utilidad que transforma sus formatos de datos internos en XML y viceversa. ? XML permite un cdigo ms ligero. Debido a que los documentos XML pueden ser ? estructurados para identificar cada pieza importante de informacin ( as como las relaciones entre dichas piezas), es posible escribir cdigo que procese estos documentos XML sin intervencin humana. ? XML permite bsquedas ms rpidas. Debido a que los motores de bsqueda han ? mejorado sustancialmente durante los aos, es todava bastante comn encontrar resultados errneos en una bsqueda. Si se estn buscando pginas HTML de alguien llamado Chip, se pueden encontrar pginas sobre chips de chocolate, chips de ordenador, chips de madera y montones de otros enlaces intiles. Buscando en documentos XML por elementos <nombre> que contengan el texto Chip debera darnos un conjunto de resultados mucho mejor. ? Se encuentra en almacenado en Texto Plano, lo que permite su edicin y depuracin ? con un simple editor de texto, sin necesidad de complejas herramientas para su tratamiento y visualizacin. ? Contiene nicamente la informacin de la cual se dispone, no indica como se presenta. ? De tal modo que permite separar el contenido de la presentacin. ? Permite ser fcilmente tratado por hojas de estilos xsl, lo cual ofrece un mecanismo ? muy til para presentar posteriormente la informacin e incluso cambiar su formato si es necesario (utilizando dichos xsl como filtros). ? Los documentos xml son fcilmente procesables para su tratamiento automtico, pero ? para ello es imprescindible que el documento se encuentre bien-formateado.

Todas estas caractersticas hacen de XML sea un buen sistema de almacenamiento e intercambio de informacin.

Jorge Molinero Muoz

Pgina 34

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Resolucin

Finalmente se opta por la utilizacin de ficheros xml pues las ventajas que estos ofrecen para el sistema son ms convincentes que aquellas que nos proporciona la utilizacin de una Base de Datos.

El principal motivo es que de cara a la implementacin del sistema BuscaEmpleo prima ms el hecho de que la informacin sea fcilmente tratable de manera automtica, a la eficiencia en su consulta y almacenamiento. Que es la mayor cualidad de las bases de datos respecto la utilizacin de ficheros.

Capa de Lgica de Negocio


Respecto a la capa de Lgica de Negocio, es decir como est realizado el ncleo del sistema, se debe decidir que tecnologa se va a utilizar para implementarlo. El uso de una tecnologa u otra vendr directamente asociado a cual sea la mejor estructura para trabajar con la informacin. Las opciones que se van a considerar sern: ? Java, apoyndose en DOM para almacenar la informacin y XPath para direccionarla. ? ? WebL, utilizando el recurso Pgina (Page) para almacenar la informacin y el lgebra ? de Marcado para direccionarla.

A continuacin se describen las caractersticas de cada una de las tecnologas.

Java con DOM


El Modelo de Objetos del Documento (DOM) es una interfaz de programacin de aplicaciones (API) para documentos HTML y XML. Define la estructura lgica de los documentos y el modo en que se accede y manipula un documento. En la especificacin del DOM, el trmino "documento" se utiliza en un sentido amplio. XML se utiliza cada vez ms como un medio para representar informacin, y esto se hace por medio documentos, de tal modo que se puede usar el DOM para manipular dicha informacin. [12]

Con el Modelo de Objetos del Documento los programadores pueden construir documentos, navegar por su estructura, y aadir, modificar o eliminar elementos y contenido. Se puede acceder a cualquier cosa que se encuentre en un documento HTML o XML, y se puede modificar, eliminar o aadir usando el Modelo de Objetos del Documento.

Jorge Molinero Muoz

Pgina 35

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

En el DOM, los documentos tienen una estructura lgica que es muy parecida a un rbol. Una propiedad importante de los modelos de estructura del DOM es su isomorfismo estructural: si dos implementaciones cualesquiera del Modelo de Objetos del Documento se usan para crear una representacin del mismo documento, ambas crearn el mismo modelo de estructura, con exactamente los mismos objetos y relaciones.

Se denomin "Modelo de Objetos del Documento" porque es un "modelo de objetos" en el sentido tradicional del diseo orientado a objetos: los documentos se modelizan usando objetos, y el modelo comprende no solamente la estructura de un documento, sino tambin el comportamiento de un documento y de los objetos de los cuales se compone. En otras palabras, los nodos no representan una estructura de datos, sino que representan objetos, los cuales pueden tener funciones e identidad. Como modelo de objetos, el DOM identifica: ? las interfaces y objetos usados para representar y manipular un documento ? ? la semntica de estas interfaces y objetos, incluyendo comportamiento y atributos ? ? las relaciones y colaboraciones entre estas interfaces y objetos ?

WEBL
Por otro lado WebL dispone de un recurso denominado Pgina (Page) para representar las pginas web, y dicho recurso a su vez tiene una estructura interna en la que se encuentran Etiquetas (Tags), Elementos (Elements), Comentarios (Comments), Elementos no vacos (Non-empty Elements), Elementos Vacos (Empty Elements), Instrucciones de Proceso (Processing Instructions), Directivas SGML (SGML Directives)... que permite su manipulacin por medio de lgebra de Marcado (Markup Algebra).[14,16,17]

El lgebra de marcado (markup algebra) de WebL se usa para manipular pginas web y extraer datos de ellas. La extraccin de informacin puede consistir en operaciones simples como contar los enlaces de una pgina u operaciones ms complejas que completan formularios Web y procesan los resultados retornados desde el servidor. Los operadores del lgebra de marcado son diseados para hacer ms fcil la obtencin de informacin selectiva de una pgina, ignorando el desorden subyacente.

El lgebra de marcado se basa en tres conceptos: etiquetas (tags), partes (pieces) y conjuntos de partes (piece sets). En trminos simples, una etiqueta corresponde a una etiqueta de marcado, una parte identifica una subregin contigua de una pgina, y un conjunto de partes es una coleccin de partes.

El primer paso en analizar una pgina Web es identificar todas las etiquetas de marcado en la pgina (encerradas entre los caracteres < y >). Cada una de las etiquetas se

Jorge Molinero Muoz

Pgina 36

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

convierte en un tag (un valor WebL de tipo tag). Conceptualmente la pgina consiste de una lista de objetos de tipo tag y segmentos de texto (o datos de tipo carcter).

El modelo WebL tambin soporta etiquetas sin nombre (unnamed). Lo equivalente en HTML o en XML es <> (que en la prctica no ocurre). WebL usa estas etiquetas para ubicar marcadores en una pgina. Como su nombre lo indica, las etiquetas sin nombre no tienen ni nombre ni atributos.

Una parte (piece) es un tipo de valor WebL que denota una regin de la pgina. Cada parte se referencia con dos etiquetas: la etiqueta de inicio (begin tag) que denota el comienzo de la regin, y la etiqueta de fin que denota el final de la regin. La etiqueta de inicio y fin pueden ser las mismas. Otro hecho importante es que las partes nunca apuntan a segmentos de texto.

Los tipos ms comunes de partes son aquellos que corresponden a los elementos de una pgina. Para permitir que el programador acceda a los atributos de los elementos, los atributos de una etiqueta de inicio de un elemento se copian dentro de variables de campo de cada parte. De manera que, una parte es muy similar a un tipo de valor objeto.

Esta es una parte importante del lgebra de marcado. Como ya se ha comentado, los atributos de los elementos de marcado pueden ser fcilmente modificados accediendo a los campos de la parte.

Aparte de la estructura y del lgebra de Marcado, WebL aporta una serie de funciones que se pueden utilizar para insertar partes en una pgina, borrarlas o sustituirlas: ? Crear partes: Hay muchas maneras de crear nuevas pieces. Las funciones creadas para ? este propsito son NewPiece, NewNamedPiece. ? Insertar partes: Una vez creada una piece, sta puede ser insertada en una posicin ? especfica de una pgina. Para ello se usan InsertBefore e InsertAfter. ? Borrar partes: Para borrar una parte de una pgina se usa Delete. ? ? Sustituir partes: La funcin Replace sustituye unas partes (las borra) por otras (las inserta). ?

Resolucin

Una vez que se ha descrito cada una de las tecnologas se considera que es ms correcta la utilizacin de Java apoyndose en DOM y en XPath para la implementacin la lgica de negocio por los siguientes motivos: ? Se considera que la utilizacin de Java generar un sistema ms flexible, sencillo y ? reutilizable que un sistema desarrollado en WebL.

Jorge Molinero Muoz

Pgina 37

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? DOM, es una recomendacin del W3C, mientras que WebL no es un estndar. Por lo ? que se considera ms adecuado la utilizacin de DOM por su estabilidad. ? La utilizacin de DOM, permite una integracin ms estable entre las distintas capas ? del sistema, pues al ser un estndar, la comunicacin entre ellas slo requiere que todas las capas trabajen con el mismo estndar. ? Respecto a la extraccin de informacin, XPath ofrece tanta flexibilidad o ms que ? WebL, pues todas las consultas realizadas en WebL se pueden traducir fcilmente a XPath.

Xpath
El objetivo principal de XPath es direccionar partes de un documento XML. Para ello, proporciona facilidades como la manipulacin de cadenas, nmeros y booleanos. XPath obtiene su denominacin por el uso que hace de la notacin de caminos, como en las URLs, para navegar a travs de la estructura jerrquica de un documento XML. [34]

XPath interpreta un documento XML como un rbol de nodos. El nombre de un nodo se modela como un par consistente en una parte local y una URI (quiz nulo) de espacio de nombres. A este nombre se le conoce como nombre expandido.

La construccin sintctica bsica en XPath es la expresin. Las expresiones son evaluadas para producir un objeto, que tendr uno de los siguientes cuatro tipos bsicos: ? Conjunto de nodos (una coleccin desordenada de nodos sin duplicados) ? ? Booleano (verdadero o falso) ? ? Nmero (un nmero en punto flotante) ? ? Cadena (una secuencia de caracteres) ?

Xpath tambin dispone de una biblioteca de funciones, la cual consiste en una correspondencia de nombres a funciones. Cada funcin toma cero o ms argumentos y devuelve un nico resultado.

Jorge Molinero Muoz

Pgina 38

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Un elemento importante de la expresin es el camino de localizacin. El cual permite identificar un conjunto de nodos relativo al nodo del contexto, es decir, al nodo en el cual se encuentra en ese momento realizando la llamada. Los caminos de localizacin pueden contener recursivamente expresiones utilizadas para filtrar conjuntos de nodos. Un camino de localizacin se ajusta a la regla de produccin LocationPath.

Caminos de Localizacin

Aunque los caminos de localizacin no son la construccin gramatical ms general en el lenguaje (un LocationPath es un caso especial de Expresin), son la construccin ms importante.

A continuacin explicar la semntica de los caminos de localizacin utilizando la sintaxis no abreviada.

He aqu algunos ejemplos de caminos de localizacin utilizando la sintaxis no abreviada: ? child::obj Selecciona los elementos obj hijos del nodo contextual. ?

? child::* Selecciona todos los elementos hijos del nodo contextual. ?

? child::text() Selecciona todos los nodos texto hijos del nodo contextual. ?

? child::node() Selecciona todos los hijos del nodo contextual, cualquiera que sea su ? tipo de nodo.

? attribute::name Selecciona el atributo name del nodo contextual. ? ? attribute::* Selecciona todos los atributos del nodo contextual. ?

? descendant::obj Selecciona los elementos obj descendientes del nodo contextual. ?

? ancestor::obj Selecciona todos los ancestros obj del nodo contextual. ?

? self::obj ?

Selecciona el nodo contextual si este es un elemento obj , en otro caso

no selecciona nada.

? child::chapter/descendant::obj ?

Selecciona los elementos obj descendientes

de los elementos chapter hijos del nodo contextual.

Jorge Molinero Muoz

Pgina 39

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? child::*/child::obj ?

Selecciona todos los nietos obj del nodo contextual.

? / selecciona la raz del documento (que es siempre el padre del elemento de ? documento).

? /descendant::obj Selecciona todos los elementos obj en el mismo documento que ? el nodo contextual.

? child::obj[position()=1] Selecciona el primer hijo obj del nodo contextual. ?

? child::obj[position()=last()] Selecciona el ltimo hijo obj del nodo ? contextual. ? child::obj[position()=last()-1] Selecciona el penltimo hijo obj del nodo ? contextual. ? child::obj[position()>1] Selecciona todos los hijos obj del nodo contextual ? salvo el primero.

? /descendant::figure[position()=10] Selecciona el dcimo elemento figure ? en el documento.

? child::obj[attribute::tipo="nuevo"] Selecciona todos los hijos obj del nodo ? contextual que tengan un atributo tipo con valor nuevo.

? child::obj [child::obj2=Nuevo] Selecciona los hijos obj del nodo ? contextual que tengan uno o ms hijos obj2 con string-value igual a Nuevo

Hay dos tipos de caminos de localizacin: caminos de localizacin relativos y caminos de localizacin absolutos.

Un camino de localizacin relativo consiste en una secuencia de uno o ms pasos de localizacin separados por /. Los pasos en un camino de localizacin relativo se componen de izquierda a derecha. Cada paso selecciona un conjunto de nodos relativos a un nodo contextual. Una secuencia inicial de pasos se une al paso siguiente de la siguiente forma: La secuencia inicial de pasos selecciona un conjunto de nodos relativos a un nodo de contexto. Cada nodo de ese conjunto se usa como nodo de contexto para el siguiente paso. Los distintos conjuntos de nodos identificados por ese paso se unen. El conjunto de nodos identificado por la composicin de pasos es dicha unin. Por ejemplo, child::obj/child::obj2 selecciona

Jorge Molinero Muoz

Pgina 40

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

los elementos obj2 hijos de los elementos obj hijos del nodo contextual, o, en otras palabras, los elementos obj2 nietos que tengan padres obj.

Un camino de localizacin absoluto consiste en / seguido opcionalmente por un camino de localizacin relativo. Una / por si misma selecciona el nodo raz del documento que contiene al nodo contextual. Si es seguida por un camino de localizacin relativo, entonces el camino de localizacin selecciona el conjunto de nodos que seleccionara el camino de localizacin relativo al nodo raz del documento que contiene al nodo contextual.

Location Paths LocationPath ::= RelativeLocationPath | AbsoluteLocationPath AbsoluteLocationPath ::= / RelativeLocationPath ? | AbbreviatedAbsoluteLocationPath RelativeLocationPath ::= Step | RelativeLocationPath / Step | AbbreviatedRelativeLocationPath
Tabla 2 Locations Paths

Pasos de localizacin

Un paso de localizacin tiene tres partes: Un eje, que especifica la relacin jerrquica entre los nodos seleccionados por el paso de localizacin y el nodo contextual. Una prueba de nodo, que especifica el tipo de nodo y el nombre-expandido de los nodos seleccionados por el paso de localizacin. Cero o ms predicados, que usan expresiones arbitrarias para refinar an ms el conjunto de nodos seleccionado por el paso de localizacin.

La sintaxis del paso de localizacin es el nombre del eje y una prueba de nodo separados por dos caracteres de dos puntos, seguido de cero o ms expresiones, cada una entre corchetes. Por ejemplo, en child::obj[position()=1] , child es el nombre del eje, obj es la prueba de nodo y [position()=1] es un predicado.

El conjunto de nodos seleccionado por el paso de localizacin es el que resulta de generar un conjunto de nodos inicial a partir del eje y la prueba de nodo, y a continuacin filtrar dicho conjunto por cada uno de los predicados sucesivamente.

Jorge Molinero Muoz

Pgina 41

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

El conjunto de nodos inicial se compone de los nodos que tengan la relacin con el nodo contextual que se especifica en el eje, y tengan el tipo de nodo especificado por la prueba de nodo. Por ejemplo, un paso de localizacin descendant::obj selecciona los elementos k descendientes del nodo contextual.

El conjunto de nodos inicial se filtra por el primer predicado para generar un nuevo conjunto de nodos. Este nuevo conjunto de nodos es entonces filtrado usando el segundo predicado, y as sucesivamente.

Location Steps Step ::= AxisSpecifierNodeTestPredicate* | AbbreviatedStep AxisSpecifier ::= AxisName :: | AbbreviaterAxisSpecifier
Tabla 3 Locations Steps

Ejes

Estn disponibles los siguientes ejes: ? child Contiene los hijos del nodo contextual. ?

? descendant Contiene los descendientes del nodo contextual. Un descendiente es un ? hijo o el hijo de un hijo, etc De este modo el eje descendant nunca contiene nodos atributo o espacio de nombres. ? parent Contiene el padre del nodo contextual, si lo hay. ?

? ancestor Contiene los ancestros del nodo contextual. Los ancestros del nodo ? contextual consisten en el padre del nodo contextual y el padre del padre, etc.. As, el eje ancestor siempre incluir al nodo raz.

? following-sibling Contiene todos los siguientes hermanos del nodo contextual. ? Si el nodo contextual es un nodo atributo o un nodo espacio de nombres, el eje following-sibling est vaco.

? preceding-sibling Contiene todos los hermanos precedentes del nodo contextual. ? Si el nodo contextual es un nodo atributo o un nodo espacio de nombres, el eje preceding-sibling est vaco.

Jorge Molinero Muoz

Pgina 42

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? following Contiene todos los nodos del mismo documento que el nodo contextual ? que estn despus de este segn el orden del documento, excluyendo los descendientes y excluyendo nodos atributo y nodos espacio de nombres. ? preceding Contiene todos los nodos del mismo documento que el nodo contextual ? que estn antes de este segn el orden del documento, excluyendo los ancestros y excluyendo nodos atributo y nodos espacio de nombres. ? attribute Contiene los atributos del nodo contextual. El eje estar vaco a no ser ? que el nodo contextual sea un elemento.

? namespace Contiene los nodos espacio de nombres del nodo contextual. El eje estar ? vaco a no ser que el nodo contextual sea un elemento.

? self Contiene simplemente el propio nodo contextual. ?

? descendant-or-self Contiene el nodo contextual y sus descendientes. ?

? ancestor-or-self Contiene el nodo contextual y sus ancestros; as, el eje ? ancestor-or-self siempre incluir el nodo raz

Axes AxisName ::= ancestor | ancestor-or-self | child | descendant | descendant-or-self | following | preceding | preceding-sibling | self
Tabla 4 Axes

Pruebas de nodo

Cada eje tiene un tipo principal de nodo. El tipo principal de un eje ser el tipo de los nodos que contiene. ? Para el eje attribute, el tipo de nodo principal es atributo. ?

Jorge Molinero Muoz

Pgina 43

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? Para el eje namespace, el tipo de nodo principal es espacio de nombres. ? ? Para los dems ejes, el tipo de nodo principal es elemento. ?

Una prueba de nodo que sea un Qname (nombre calificado) es verdadera si y slo si el tipo del nodo es el tipo principal de nodo y tiene un nombre expandido igual al especificado en el QName. Por ejemplo, child::obj selecciona los elementos obj hijos del nodo contextual. Si el nodo contextual no tiene ningn hijo obj, seleccionar un conjunto de nodos vaco. attribute::href selecciona el atributo href del nodo contextual. Si el nodo contextual no tiene atributo href, seleccionar un conjunto de nodos vaco.

Un QName en la prueba de nodo da lugar a un nombre expandido utilizando las declaraciones de espacio de nombres del contexto de la expresin. Si el QName no tiene prefijo, entonces el URI de espacio de nombres es nulo.

Una prueba de nodo * es verdadera para cualquier nodo del tipo principal de nodo. Por ejemplo, child::* seleccionar todo elemento hijo del nodo contextual, y attribute::* seleccionar todos los atributos del nodo contextual.

Una prueba de nodo puede tener la forma NCName:*. En este caso, el prefijo es expandido de la misma forma que con un QName, utilizando las declaraciones de espacio de nombres del contexto. La prueba de nodo ser verdadera para cualquier nodo del tipo principal cuyo expanded-name tenga el URI de espacio de nombres al qu el prefijo se expande, con independencia de la parte local del nombre.

La prueba de nodo text() es verdadera para cualquier nodo de texto. Por ejemplo, child::text() seleccionar los nodos de texto hijos del nodo contextual. La prueba de nodo comment() es verdadera para cualquier nodo comentario. La prueba de nodo processing-instruction() es verdadera para cualquier instruccin de procesamiento.

La prueba processing-instruction() puede tener un argumento que sea Literal. En este caso, ser verdadera para cualquier instruccin de procesamiento que tenga un nombre igual al valor del Literal.

Una prueba de nodo node() es verdadera para cualquier nodo de cualquier tipo que sea.

Axes

Jorge Molinero Muoz

Pgina 44

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

NodeTest ::=

NameTest | NodeType ( ) | processing-instruction ( Literal )


Tabla 5 Axes(NodeTest)

Predicados

Los ejes estn orientados hacia adelante o hacia atrs. Un eje hacia delante slo puede contener el nodo contextual y los que se encuentran a continuacin en el orden del documento. Si puede contener el nodo contextual o nodos que estn antes del nodo contextual en el orden del documento es un eje hacia atrs. As, los ejes ancestor, ancestor-or-self, preceding, y preceding-sibling son ejes hacia atrs y todos los dems ejes son hacia adelante. Dado que el eje self siempre tendr a lo sumo un nodo, no supone ninguna diferencia que sea un eje hacia adelante o hacia atrs.

Un predicado filtra un conjunto de nodos con respecto a un eje para producir un nuevo conjunto de nodos. Por cada nodo del conjunto, la PredicateExpr es evaluada, si se evala como verdadera, el nodo se incluye en el nuevo conjunto de nodos.

Predicates Predicate ::= [ PredicateExpr ]

PredicateExpr ::= Expr


Tabla 6 Predicates

Sintaxis Abreviada

He aqu algunos ejemplos de caminos de localizacin usando la sintaxis abreviada: ? obj ? Selecciona los elementos obj hijos del nodo contextual.

? * Selecciona todos los elementos hijos del nodo contextual. ?

? text() Selecciona todos los nodos texto hijos del nodo contextual. ?

? @nombre ?

Selecciona el atributo nombre del nodo contextual.

? @* Selecciona todos los atributos del nodo contextual. ?

? obj[1] Selecciona el primer hijo obj del nodo contextual. ?

? obj[last()] Selecciona el ltimo hijo obj del nodo contextual. ?

Jorge Molinero Muoz

Pgina 45

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? */obj ?

Selecciona todos los nietos obj del nodo contextual.

? /libro/pagina[5]/linea[2] Selecciona la segunda linea de la quinta pagina del ? libro.

? capitulo//obj ?

Selecciona todos los elementos obj descendientes de los elementos

capitulo, hijos del nodo contextual.

? //obj ?

Selecciona todos los descendientes obj de la raz del documento y por tanto

selecciona todos los elementos obj que estn en el mismo documento que el nodo contextual.

? //lista/elemento Selecciona todos los elementos elemento que estn en el ? mismo documento que el nodo contextual y tengan un padre lista.

? . Selecciona el nodo contextual. ?

? .//obj ?

Selecciona los elementos obj descendientes del nodo contextual.

? .. Selecciona el padre del nodo contextual. ? ? ../@nombre Selecciona el atributo nombre del padre del nodo contextual. ?

? obj[@tipo="libro"] Selecciona todos los hijos obj del nodo contextual que ? tengan un atributo tipo con valor libro.

? obj[@tipo="libro"][5] Selecciona el quinto hijo obj del nodo contextual que ? tenga un atributo tipo con valor libro

? obj[5][@tipo="libro"] Selecciona el quinto hijo obj del nodo contextual si dicho ? hijo tiene un atributo tipo con valor libro. ? tema[titulo="Introduccion"] Selecciona los hijos tema del nodo contextual ? que tengan uno o ms hijos titulo con valor igual a Introduccin.

? capitulo[uno] Selecciona los hijos capitulo del nodo contextual que tengan uno o ? ms hijos uno.

Jorge Molinero Muoz

Pgina 46

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? trabajo [@nombre and @url] Selecciona todos los hijos trabajo del nodo ? contextual que tengan un atributo nombre y un atributo url.

La abreviatura ms importante es child:: que puede ser omitida en un paso de localizacin. A efectos prcticos, child es el eje por defecto. Por ejemplo, un camino de localizacin puesto/trabajo es abreviatura de child::puesto/child::trabajo.

Hay tambin una abreviatura para atributo, attribute:: puede abreviarse como @. Por ejemplo, un camino de localizacin puesto [@nombre="uno"] es abreviatura de child::puesto [attribute::nombre="uno"].

La abreviatura de /descendant-or-self::node()/ es //. Por ejemplo, //obj es abreviatura de /descendant-or-self::node()/child::obj y por tanto seleccionar cualquier elemento para en el documento. obj1//obj2 es abreviatura de child::obj1/descendant-or-self::node()/child::obj2 y por tanto seleccionar todos los descendientes obj2 de hijos obj1.

Abbreviations AbbreviatedAbsoluteLocationPath AbbreviatedRelativeLocationPath AbbreviatedStep ::= // RelativeLocationPath ::= RelativeLocationPath // Step ::= . | .. AbbreviatedAxisSpecifier ::= @?
Tabla 7 Abbreviations

Expresiones

La construccin sintctica bsica en XPath es la expresin. Las expresiones son evaluadas para producir un conjunto de nodos, un boleando, un nmero o una cadena.

Expresions Expr PrimaryExpr ::= OrExpr ::= VariableReference | ( Expr ) | Literal | Number | FunctionCall
Tabla 8 Expresions

Jorge Molinero Muoz

Pgina 47

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Funciones

Con XPath, tambin se pueden construir funciones, las cuales pueden recibir parmetros como argumentos (que pueden ser string, number o boolean).

Functions FunctionCall Argument ::= FunctionName ( ( Argument ( , Argument )* )? ) ::= Expr


Tabla 9 Functions

Modelo Vista Controlador


Para la implementacin del Modelo Vista Controlador, se presentaron las siguientes dos opciones: ? Struts: Es un framework que implementa el patrn de arquitectura MVC en Java ? ? Java: Implementar el patrn MVC directamente en Java, sin necesidad de utilizar ? nuevas libreras.

Struts

Struts es un framework OpenSource cuyo objetivo es la implementacin de aplicaciones Web con Servlets y Jsp respetando el patrn arquitectnico Modelo Vista Controlador. [28, 54]

Un framework es la extensin de un lenguaje mediante una o ms jerarquas de clases que implementan una funcionalidad y que (opcionalmente) pueden ser extendidas.

De los componentes del Modelo Vista Controlador, struts ofrece el controlador ya implementado, permitiendo si fuese necesario su herencia para ampliarlo o modificarlo. Respecto al workflow de la aplicacin, este se puede programar desde un archivo XML, donde se indican las acciones que se ejecutarn sobre el modelo de objetos de negocio, y posteriormente se implementan dichas acciones basndose en clases predefinidas por el framework y siguiendo el patrn Facade. La generacin de interfaz se lleva a cabo mediante un conjunto de etiquetas (Tags) predefinidas por Struts cuyo objetivo es evitar el uso de Scriplets (los trozos de cdigo Java entre "<%" y "%>").

Jorge Molinero Muoz

Pgina 48

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Para configurar struts existe un fichero xml: struts-config.xml. Dicho fichero indica la descripcin de la Navegacin, es decir que links llevan a donde, y refleja: ? Las acciones que se deben ejecutar. Struts cumple el patrn command, donde cada ? accin viene representada por un comando independiente. ? Como se deben ejecutar dichas acciones. ? ? Quien debe ejecutarlas. Es decir que objeto del modelo debe lanzar dicha accin. ?

Java

La opcin de Java consiste nicamente en realizar la aplicacin procurando cumplir en la medida de lo posible el patrn Modelo Vista Controlador. [25,26]

Para ello se utilizaran una serie de clases (servlets) que realizan las funciones de controlador, cuyo objetivo es transmitir al modelo las operaciones invocadas por el usuario, y redireccionar a otras clases (servlets) que se encargan de generar una pgina de respuesta con la informacin que le ofrece el modelo.

Para realizar un sistema que cumpla al totalmente el patrn, sera necesario que la clase que acepta las peticiones fuese nica, y que esta realizase la distribucin de acciones en funcin del tipo de peticin. Pero para evitar que una clase englobe tantsima funcionalidad, se diversificar en varias, una por cada rea funcional.

Resolucin

Para la implementacin de este sistema se ha considerado que la mejor opcin es utilizar Java directamente sin la necesidad de utilizar struts principalmente porque el equipo de desarrollo no tiene experiencia con el framework por lo que sera una necesario su aprendizaje, conllevando una dilatacin del tiempo de desarrollo del sistema.

Otro de los motivos por los que se ha decidido utilizar Java, es para aprovechar el potencial ofrecido por xml, ya que dicha estructura se ha utilizado tanto para el almacenamiento de informacin como para la transmisin de esta a travs de las distintas capas del sistema. De modo que las vistas nicamente se limitan a obtener el xml asociado y su correspondiente xsl y a presentarlo, en lugar de utilizar un jsp, que sera la tecnologa por la que se optara en el caso de utilizar struts.

3 Anlisis y Diseo

Jorge Molinero Muoz

Pgina 49

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Especificacin del Problema


La principal funcionalidad es posibilitar una bsqueda mltiple en varios sites desde un nico interfaz accesible a travs de la Web, permitiendo agrupar en un mismo portal varios portales de empleo y ofreciendo al usuario todos los puestos de trabajo ofertados con el mismo formato y presentacin.

Pero esta no es la nica funcionalidad, ya que con el objetivo de facilitar en lo posible la bsqueda de empleo se le ofrecen al usuario otras utilidades: ? Buscar Empresas: Consiste en un procedimiento anlogo a la bsqueda de puestos de ? trabajo, de tal modo que el usuario desde el sistema puede realizar una bsqueda de las empresas que estn inscritas a los portales de empleo, pudiendo visualizar posteriormente los puestos de trabajo que dichas empresas oferten. ? Darse de Alta: Es un procedimiento que permite al usuario annimo (rol que el sistema ? asume por defecto) llegar a ser un usuario registrado, de tal modo que pueda acceder a muchas funcionalidades que nicamente estn disponibles para los usuarios registrados. Cuando el usuario se da de alta, el sistema almacena la informacin de dicho usuario, de tal modo que cuando vuelva a acceder al sistema, no es necesario volver a repetir el proceso de darse de alta. ? Validarse: Permite a los usuarios annimos cambiar su rol a usuario registrado, de tal ? modo que tenga acceso a las funcionalidades privadas. Para que un usuario pueda validarse es necesario que se haya dado de alta en el sistema anteriormente. ? Buscar Inteligentemente: Bsqueda en principio anloga a la genrica con la diferencia ? de que el resultado ofrecido al usuario se valida frente a los puestos de trabajo ya ofertados en das anteriores. Permitiendo que el sistema tenga conocimiento de si un puesto de trabajo es nuevo o no, y si lleva mucho tiempo publicado. Dando la capacidad de ignorar aquellas ofertas que no son interesantes y visualizar nicamente aquellas ofertas que han sido publicadas recientemente. Este tipo de bsqueda slo esta disponible para aquellos usuarios que se han validado anteriormente. ? Gestionar Perfil: Un usuario registrado tiene asociado una serie de servicios ofrecidos ? por el sistema, que se detallarn ms adelante. A la personalizacin de estos servicios se le denomina gestin de perfil. ? Recibir Alertas: Los usuarios registrados que lo hayan solicitado en su gestin de perfil, ? recibirn peridicamente los resultados de las bsquedas que deseen en su direccin

Jorge Molinero Muoz

Pgina 50

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

de correo electrnico. Pudiendo realizar un seguimiento de los puestos de trabajos ofertados por varios portales del empleo nicamente con consultar su correo electrnico.

Anlisis Funcional
El anlisis funcional tiene como objetivo describir todas y cada una de las funcionalidades del sistema BuscaEmpleo. Para su realizacin se han utilizado diagramas de casos de uso de UML. Hay que destacar que por la complejidad del sistema y en bsqueda de la mayor claridad posible, se han creado varias vistas, de tal modo que se pueda profundizar en el nivel de detalle, dando inicialmente una imagen muy genrica y posteriormente descomponiendo cada una de las funcionalidades principales en subfuncionalidades.

La lectura de este apartado es relativamente importante, para el correcto seguimiento de la documentacin.

Pero antes de identificar las funcionalidades del sistema se va a realizar un estudio de los portales de empleo que son utilizados por la aplicacin y las utilidades que estos brindan al usuario para realizar la bsqueda de empleo.

Anlisis de los Portales de Empleo


Antes de identificar las funcionalidades del sistema, se procedi a la realizacin de un estudio de los portales de empleo disponibles en Internet, de cara a tener mejor conocimiento de las posibilidades y limitaciones con las que habra que enfrentarse en el desarrollo del nuevo sistema, ya que la nica fuente de informacin de este son los portales disponibles en Internet.[1,2,3,4,5,6,7]

Otro objetivo de este anlisis era descubrir los portales que: ? Tenan ms aceptacin en los potenciales usuarios del sistema. Para lo cual se ? procedi a realizar un pequeo estudio sociolgico. ? Disponan de una mayor oferta de puestos de trabajo. ? ? Respetan una estructura ms homognea y simple en la presentacin de los resultados ? de bsqueda de cara a que su tratamiento sea lo ms sencillo posible. ? Se observ el cdigo que conformaban las respuestas de los portales a fin de constatar ? que realmente los portales seleccionados eran fcilmente tratables mediante mecanismos automticos.

Jorge Molinero Muoz

Pgina 51

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Inicialmente se observ cuales eran las funcionalidades ms comunes de los portales: ? Buscar puestos de trabajo. Funcionalidad que lgicamente compartan todos los ? portales ? Capacidad de realizar bsquedas con varios criterios (distintas tecnologas) ? simultneamente. Dicha capacidad no la compartan todos los portales, nicamente algunos de los estudiados, e incluso aquellos que permitan hacer bsquedas con varios criterios, se encontraban muy limitados, ya que nicamente permitan dos tecnologas simultneamente. ? Buscar empresas: Funcionalidad que slo aportaban algunos de los portales. ? ? Darse de alta en el Sistema: Lo daban todos los portales de empleo estudiados, con la ? diferencia de cada uno solicitaba unos datos distintos de registro.

Respecto a la informacin que ofrecan del puesto de trabajo: ? Nombre del puesto. ? ? URL con la descripcin del puesto. ? ? Empresa que oferta el puesto. ? ? Descripcin de la empresa. ? ? Provincia o Localidad en donde se oferta el trabajo. ? ? Fecha de la ltima publicacin, que en ocasiones no era ofrecida. ? ? Nmero de curriculums enviados a dicha oferta. Dato que no todas los portales ? mostraban. ? Porcentaje de curriculums ledos por la empresa. Tampoco era mostrado por todos los ? portales.

En cuanto a la informacin que presentaban aquellos portales que permitan bsquedas de empresas sobre estas: ? Nombre de la empresa. ? ? URL con la descripcin detallada de esta. ? ? Forma jurdica. Dato que no ofrecan todos los portales. ? ? Tipo de Industria. ? ? Provincia. ? ? URL con la Web de la Empresa. Dato que no ofrecan todos los portales. ?

El resultado de este anlisis es que los portales ms proclives a ser utilizados por el sistema seran: ? Infojobs. Es el portal de empleo lder en Espaa, con un alto prestigio y aceptacin ? entre el pblico objetivo que utilizaran el sistema BuscaEmpleo. En el mbito de las nuevas tecnologas, se considera el mejor portal de empleo. Y la razn fundamental: el nmero de ofertas disponibles. Ofertas de Empleo: 24.600

Jorge Molinero Muoz

Pgina 52

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Puestos Vacantes: 71.000 Currculum: 1.800.000

El principal servicio que ofrece es el acercamiento de los usuarios que demandan un puesto de trabajo a las empresas que lo ofertan, pero tambin ofrecen informacin relacionada con la bsqueda de empleo, consejos, informacin legal, entrevistas... Url: http://www.infojobs.net ? Tecnoempleo. Portal de empleo especializado en informtica, telecomunicaciones y ? tecnologas con gran aceptacin pero con la diferencia de que su oferta es mucho menor que infojobs. Al igual que el anterior, su principal funcionalidad es permitir a los usuarios buscar puestos de trabajos que son ofertados en el portal, pero tambin ofrece noticias y artculos relacionados con la bsqueda de empleo. Url: http://www.tecnoempleo.com ? Monsters. Portal de empleo de mbito internacional con presencia en 22 pases. Es la ? mejor opcin para encontrar trabajo en Estados Unidos, Canad y buena parte de Europa (en todos esos pases hay, al menos, tantas ofertas como en Espaa). Son los lderes en el mundo en el sector de portales de empleo, y este es el principal motivo por el cual se aadi a BuscaEmpleo. Es una herramienta sencilla y rpida de usar, ofreciendo los resultados en varios formatos, de modo que nos permite escoger aquel que sea ms fcilmente tratable por el sistema. Ofrece puestos de trabajos de naturalezas muy diversas. No especializndose en los trabajos relacionados con las nuevas tecnologas. Url: http://www.monster.es ? TodoTrabajo. Portal que permite diversificar en cierto modo el pblico al cual estar ? destinado el sistema puesto que los anteriores portales principalmente ofrecen puestos de trabajos relacionados con las nuevas tecnologas (Informtica, Telecomunicaciones, Ingenieras) Url: http://www.todotrabajo.com

Otros portales que fueron sometidos a estudio: ? http://www.trabajos.com/ ? ? http://www.expansionyempleo.com/ ? ? http://www.infoempleo.com/ ?

Y en cuanto a la informacin que se mostrara tanto de las bsquedas de empresa como de las bsquedas de puestos seran aquellos datos que compartiesen la gran mayora de los

Jorge Molinero Muoz

Pgina 53

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

portales de tal modo que se le ofreciera al usuario una informacin ms homognea y estructurada.

Modelado de Requisitos
El principal objetivo del sistema es llegar a constituir una herramienta til, cmoda y eficiente que permita a un usuario encontrar un puesto de trabajo que se ajuste a su perfil profesional. Para ello se ha concluido que el sistema debe ser un portal web, de tal modo que sea accesible desde cualquier dispositivo conectado a la Word Wide Web.

Funcionalidades Principales

Jorge Molinero Muoz

Pgina 54

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Darse de Alta

Usuario Anonimo

Buscar Empresa

Buscar Puestos

Buscar Inteligentemente

Usuario Registrado Gestionar Perfil

Validarse

Recibir Alertas

Figura 5 Diagrama de Casos de Uso General

Descripcin:

Caso de uso: Actor: Propsito:

Buscar Puestos Usuario Annimo Mostrar al usuario, un listado de puestos de trabajo ofertados por las empresas que se encuentran disponibles en varios portales de empleo.

Descripcin:

El usuario especifica al sistema la tecnologa y la provincia de los puestos de trabajo en los cuales esta interesado y pulsa el botn buscar.

Caso de uso: Actor: Propsito:

Darse de Alta Usuario Annimo Registra al usuario en el sistema, almacenando su informacin personal. Permitiendo acceso a funcionalidades para usuarios registrados.

Jorge Molinero Muoz

Pgina 55

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Permitiendo acceso a funcionalidades para usuarios registrados. Descripcin: El usuario nicamente debe dar su login y password, y si dicho login no ha sido escogido por ninguna persona anteriormente. Debe rellenar sus datos personales y pulsar el botn guardar.

Caso de uso: Actor: Propsito:

Buscar Empresa Usuario Annimo Muestra al usuario el listado de empresas asociadas a la consulta realizada, pudiendo acceder a los puestos de trabajo ofertados por dichas empresas.

Descripcin:

El usuario introduce en el sistema un trmino y pulsa el botn buscar, obteniendo aquellas empresas cuyo nombre contenga dicho termino.

Caso de uso: Actor: Propsito:

Validarse Usuario Registrado Permite al usuario annimo (rol por defecto) cambiar de rol a usuario registrado y poder acceder a las funcionalidades privadas del sistema.

Descripcin:

Para validarse, el usuario debe pulsar el botn Area Personal y posteriormente insertar en la aplicacin su usuario y password. Para que un usuario pueda validarse es necesario que se haya dado de alta en el sistema anteriormente.

Caso de uso: Actor: Propsito:

Buscar Inteligentemente Usuario Registrado Permite al usuario realizar bsquedas de puestos de trabajo filtrando aquellos puestos han sido ofertados en das anteriores, de modo que pueda acceder a los puestos de trabajo realmente nuevos.

Descripcin:

El usuario especifica la tecnologa y la provincia de donde son los puestos ofertados as como un tercer parmetro indicando si desea los puestos de trabajo: ? Nuevos (no han sido publicados en das anteriores). ? ? Casi Nuevos (han sido publicados no ms de en dos ocasiones). ? ? Viejos (han sido publicados menos de 10 veces) ? ? Todos los puestos de trabajo. ?

Requisitos:

Que el usuario se haya validado anteriormente.

Caso de uso:

Gestionar Perfil

Jorge Molinero Muoz

Pgina 56

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Actor: Propsito: Descripcin:

Usuario Registrado Permite la personalizacin de los servicios ofrecidos por el sistema al usuario. El usuario tiene una serie de servicios asociados que puede configurar accediendo al rea personal, entre dichos requisitos: ? Modificacin de datos personales ? ? Configuracin de alertas asociados. ? ? Configuracin de los controles asociados. ? ? Gestin de los puestos de trabajos asociados. ?

Requisitos:

Que el usuario se haya validado anteriormente.

Caso de uso: Actor: Propsito:

Recibir Alertas Usuario Registrado El usuario registrado recibe en su direccin de correo electrnico las bsquedas que desee.

Descripcin:

El usuario configura en el sistema una serie de bsquedas, para que los resultados de dichas consultas se le enven peridicamente a su direccin de correo personal. Permitindole realizar un seguimiento de los puestos de trabajos ofertados por varios portales del empleo nicamente con consultar su correo electrnico.

Requisitos:

1. 2.

Usuario se haya registrado en la aplicacin. Que la alerta haya sido creada y configurada anteriormente por el usuario.

Bsqueda de Puestos

En un sistema en el cual el objetivo principal es que los usuarios que interacten con l encuentren trabajo, el proceso ms importante ser aquel que permita realizar bsquedas de los puestos ofertados por las empresas, es decir, las bsquedas de puestos de trabajo, y por ello, dicho proceso se ha descompuesto ofreciendo mltiples funcionalidades.

Jorge Molinero Muoz

Pgina 57

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Bsqueda Simple Busqueda Unitaria

Usuario Anonimo

Buscar Puestos

Bsqueda Completa

Unir Resultados Busqueda Compuesta

Interseccionar Resultados Buscar Inteligentemente

Usuario Registrado

Figura 6 Diagrama de Casos de Uso Bsqueda de Puesto

Descripcin

Caso de uso: Actor: Propsito:

Buscar Puestos Usuario Annimo Permite al usuario realizar los puestos de trabajo de varios portales de empleo.

Descripcin:

Es la principal funcionalidad del sistema, consiste en que el usuario realiza una consulta contra el sistema y este realiza una bsqueda mltiple en varios portales de empleo, agrupando los resultados de todos los portales y ofrecindolos con el mismo formato y presentacin.

Caso de uso: Actor: Propsito: Descripcin:

Bsqueda Unitaria Usuario Annimo Una consulta de los puestos de trabajos de una nica tecnologa y provincia. Las bsquedas de puestos de trabajos son consideradas unitarias, cuando la consulta tenga asociada una nica tecnologa, de tal modo que se implemente con una nica bsqueda a los portales de empleo.

Jorge Molinero Muoz

Pgina 58

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Caso de uso: Actor: Propsito: Descripcin:

Bsqueda Simple Usuario Annimo Una consulta de los principales puestos de trabajos. Las consultas unitarias a su vez, pueden ser simples, es decir, los resultados de dichas bsquedas no contienen todos los puestos de trabajos asociados a dicha consulta, sino que nicamente se presentan las ofertas de empleo ms importantes, las que aparecen en la primera pgina de resultados

Caso de uso: Actor: Propsito: Descripcin:

Bsqueda Completa Usuario Annimo Una consulta de todos los puestos de trabajos. Consiste en una bsqueda que presenta todos los puestos de trabajo asociados a una consulta, es decir muestra las ofertas de empleo de todas las pginas de resultados que los portales de empleo ofrecen como respuesta a la bsqueda.

Caso de uso: Actor: Propsito: Descripcin:

Bsqueda Compuesta Usuario Annimo Una consulta de los puestos de trabajos asociados a varias tecnologas. Son consultas en las cuales el usuario indica que desea que le aparezcan resultados asociados a varias tecnologas. Este tipo de bsquedas es implementada con varias consultas a los portales de empleo

Requisitos:

Este tipo de consulta requiere a su vez: ? Unir resultados. ? ? Interseccionar resultado. ?

Caso de uso: Actor: Propsito: Descripcin:

Unir Resultados Usuario Annimo Presenta la unin de los resultados de varias consultas. Cuando un usuario realiza una bsqueda compuesta, puede indicar al sistema que los resultados que se le presenten sean la unin de cada una de las subconsultas que forman la bsqueda compuesta, tratando los resultados ofrecidos por los portales como conjuntos de elementos.

Caso de uso:

Interseccionar Resultados

Jorge Molinero Muoz

Pgina 59

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Actor: Propsito: Descripcin:

Usuario Annimo Presenta la interseccin de los resultados de varias consultas. Cuando un usuario realiza una bsqueda compuesta, puede indicar al sistema que desea que los resultados que se le presenten sean la interseccin de cada una de las subconsultas que forman la bsqueda compuesta, es decir, slo los puestos de trabajo que aparecen en las todas las subconsultas.

Caso de uso: Actor: Propsito: Descripcin:

Buscar Inteligentemente Usuario Registrado Presenta los puestos de trabajo que son nuevos. Es un caso concreto de Buscar Puestos, que permite descartar aquellos puestos que no son nuevos o aquellos que han sido publicados en numerosas ocasiones. A su vez, este tipo de consultas hereda todos los subtipos de bsquedas que tienen las bsquedas normales. Es decir la bsqueda puede ser unitaria o compuesta, y en el caso de ser compuesta, puede estar formada por la unin o la interseccin de los resultados de cada una de las subconsultas

Jorge Molinero Muoz

Pgina 60

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Gestin del Perfil

Gestionar Datos Personales

Gestionar Alertas

Gestionar Controles

Visualizar Seguimiento

Usuario Registrado Agregar Puesto Gestionar Puestos de Trabajo

Modificadar Estado Puesto

Borrar Puesto

Figura 7 Diagrama de Casos de Uso - Gestin de Perfil

Descripcin

Caso de uso: Actor: Propsito: Descripcin:

Gestin de Alertas Usuario Registrado Configuracin de las alertas asociadas al usuario. Una alerta consiste en una bsqueda cuyo resultado se desea recibir por correo electrnico con una periodicidad determinada. El sistema permite al usuario agregar y eliminar alertas, as como indicar la periodicidad con la que desea recibir los correos electrnicos. El usuario puede elegir recibir los correos, diaria, semanal o mensualmente.

Caso de uso:

Gestin de Controles

Jorge Molinero Muoz

Pgina 61

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Actor: Propsito: Descripcin:

Usuario Registrado Configuracin de los controles asociados al usuario. Los controles son utilizados para que el usuario pueda establecer cual es la bsqueda que le interesa, permitiendo al sistema la realizacin de un seguimiento de dicha bsqueda. Estos seguimientos son utilizados por el buscador inteligente para determinar si un puesto de trabajo es interesante o no. El sistema permite al usuario agregar y eliminar sus controles.

Caso de uso: Actor: Propsi to: Descripcin:

Visualizacin de Controles. Usuario Registrado Realizar el seguimiento de los controles. El posible observar los puestos de trabajos publicados y que responden a la bsqueda de dicho control, y el nmero de ocasiones que dichos puestos han sido ofertados.

Caso de uso: Actor: Propsito:

Gestin de puestos de trabajo Usuario Registrado Permite al usuario realizar un seguimiento de los puestos de trabajo que le interesan.

Descripcin:

Los usuarios del sistema tienen la posibilidad de almacenar en el sistema un listado de puestos de trabajo ofertados por las empresas, con el fin de poder llevar un control de estos de una forma rpida y sencilla.

Caso de uso: Actor: Propsito: Descripcin:

Agregar Puestos Usuario Registrado Almacenar los puestos de trabajo interesantes. Los usuarios podrn agregar a su listado los puestos de trabajo que hayan sido publicados y consideren interesantes. Dichos puestos son almacenados por el sistema de modo que el usuario los puede consultar cuando desee.

Caso de uso: Actor: Propsito: Descripcin:

Modificar Estado Puesto Usuario Registrado Realizar un seguimiento de los estados de los puestos interesantes Los puestos de trabajo almacenados en el sistema contienen un estado, que es utilizado para realizar el seguimiento del proceso de seleccin. El sistema permite al usuario modificar el estado de estos.

Jorge Molinero Muoz

Pgina 62

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

permite al usuario modificar el estado de estos.

Caso de uso: Actor: Propsito: Descripcin:

Borrar Puestos Usuario Registrado Eliminar los puestos de trabajo del listado. Los usuarios pueden eliminar puestos de trabajo de su listado, cuando los haya descartado, por el tiempo en el cual no ha recibido ninguna noticia de ellos o porque simplemente ya no le interesen.

A continuacin se presenta un diagrama de estados que refleja los posibles estados de un puesto de trabajo:

Inicio Guardar Puesto Puesto Interesante Enviar CV Curriculum Enviado Realizar Entrevista Borrar Entrevista realizada Aceptar Puesto Aceptado Borrar

Borrar

Eliminado

Figura 8 Diagrama de Estados. Flujo de Puesto

Los puestos de trabajo, tienen una secuencia de estados lineal. Inicialmente un puesto de trabajo es almacenado porque el usuario se siente interesado por l, despus, entre todos los puestos que se ha almacenado, se le enviar el curriculun slo a aquellos que cumplen los requisitos mnimos establecidos por el usuario. El siguiente paso, si la empresa lo considera necesario, es realizar una entrevista. Y finalmente, si el usuario cumple todos los requisitos establecidos por la empresa, y a l le interesa, se incorpora a la empresa.

Jorge Molinero Muoz

Pgina 63

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Durante todo este proceso, el usuario puede descartar el puesto, ya sea porque no quiera mandar el curriculum, porque en la entrevista le descarten o porque la empresa no le llame.

Operaciones de Bsqueda
Como ya se ha comentado anteriormente, la principal funcionalidad del sistema es la bsqueda de un puesto de trabajo en mltiples portales de forma simultnea, y de cara a enriquecer dicha funcionalidad, se ha incluido la posibilidad de trabajar con los resultados de las bsquedas como si fuesen conjuntos de puestos de trabajos permitiendo al usuario realizar uniones o intersecciones sobre dichos conjuntos.

Esta posibilidad, favorece enormemente la bsqueda en dos sentidos: ? ?

Porque permiten generar consultas ms amplias, en el caso de que los puestos de trabajo asociados a una nica tecnologa sean muy pocos, pudiendo aumentar el nmero de resultados de una bsqueda. Para ello se utiliza la unin de las consultas.

JAVA Barcelona

SQL Barcelona

XML Barcelona

Figura 9 Dominio de Unin de Consultas

? ?

Porque permiten generar consultas ms refinadas de tal modo que se consiguen filtrar aquellas ofertas de empleo que realmente son interesantes. Permitiendo al usuario establecer ms requisitos que deban cumplir los puestos de trabajo. Para ello se utiliza la interseccin de las consultas.

Jorge Molinero Muoz

Pgina 64

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

JAVA Madrid

XML Madrid

SQL Madrid

Figura 10 Dominio de Interseccin de Consultas

Esta interseccin, pese a que existen portales que ofrecen dicha utilidad, se ha comprobado que nicamente permiten realizar bsquedas de dos tecnologas, de tal modo que gracias a BuscaEmpleo, es posible refinar ms la bsqueda que en los portales de empleo, propiedad necesaria, pues el sistema aporta una cantidad mayor de puestos de trabajo al usuario, que los portales convencionales.

Otro aspecto destacable del sistema de cara al refinamiento de las bsquedas, es que este da la posibilidad al usuario de especificar el municipio al cual pertenece el puesto de trabajo, con lo que es posible descartar aquellos puestos que no pertenezcan a un municipio determinado. Opcin que no aportaba ninguno de los portales de empleo con los que se ha tratado.

JAVA Madrid

Las Rozas

Figura 11 Dominio de SubConsultas

Jorge Molinero Muoz

Pgina 65

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Anlisis del Sistema


Tecnolgicamente el sistema estar compuesto por dos mdulos: ? Mdulo JAVA: Compone la mayor parte de la aplicacin: ? ? Capa de presentacin: Realizada con JSDK (Servlets) ? ? Capa lgica de negocio. ? ? Capa de datos: Los datos se almacenan en xml, y para su tratamiento se ha ? utilizado Xalan. ? Mdulo WebL: Compone la parte de la capa de datos en lo relativo al acceso a la ? informacin publicada en los portales de empleo.

Respecto al Mdulo realizado en JAVA, este se encuentra formado por los siguientes paquetes: ? repositorios: Donde se encuentran las clases que implementan el registro de la ? informacin, as como las consultas. ? nucleo: Clases que componen la capa lgica del negocio. ? o nucleo.comunes: Donde se encuentran clases con utilidades comunes a la capa lgica, como son el tratamiento de cadenas, el tratamiento de fechas, generacin de ficheros xml. o nucleo.buscador: Clases directamente relacionadas con las bsquedas en los portales, tanto de los puestos de trabajo como de las empresas registradas. o nucleo.avanzado: Donde se encuentran las clases que realizan operaciones complejas cuyo objetivo es el dotar de inteligencia al sistema. ? interfaz: Es un paquete ficticio ya que realmente no se ha creado, las clases que lo ? componen han quedado sin agrupar. Son todas aquellas clases que representan la capa de presentacin de la Informacin, los Servlets.

Patrones de diseo
Algunos patrones que se ha utilizado en este proyecto son:

Singleton

El problema se presenta cuando existe un objeto de una clase determinada que nicamente se puede crear en una ocasin, y que es utilizado por mltiples clases. De tal modo que cada clase debe utilizar siempre los mtodos de la misma instancia de la clase, sin poder crear nuevos objetos de dicha clase.

Jorge Molinero Muoz

Pgina 66

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Este patrn se caracteriza porque permite controlar el nmero de ocasiones que se instancia una clase determinada. Generalmente se utiliza para que slo exista una instancia, pero puede ser extendido fcilmente para generar varias, de tal modo que se puede utilizar para implementar un pool de conexiones de una base de datos. Para que una clase se ajuste a este patrn, simplemente hay que declarar privado el constructor, y crear un mtodo esttico que nos devuelva la nica instancia existente de la clase en el caso de que ya exista, y si no existe, la construya.

Singleton object = Singleton.getInstance( );

Singleton Singleton() getInstance()

Figura 12 Patrn Singlenton

Este patrn se ha utilizado en el sistema para la realizacin de la clase RepositorioUsuariosXML.

Command

La problemtica surge cuando se desea tratar a las acciones de manera independiente, de tal modo que estas se creen, se almacenen y cuando sea necesario, se ejecuten.

Este patrn se caracteriza porque permite tratar a las acciones como objetos, pues cada accin se representa mediante un objeto de una clase que a su vez implementa el interfaz Command. De tal modo que es posible almacenar dichas acciones y ejecutarlas, independientemente de lo que haga dicha accin.

El funcionamiento es el siguiente, el cliente crea una serie de comandos diferentes utilizando como argumento un objeto de la clase Receiver, y aadiendo posteriormente los comandos al Invoker, que lanza la ejecucin de estos cuando es necesario, provocando que el objeto Receiver realice la accin adecuada.

Jorge Molinero Muoz

Pgina 67

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Client

Invoker

Command execute()

Receiver action() ConcreteCommand Creates receiver.action() state execute()

Figura 13 Patrn Command

Este patrn se ha utilizado en el sistema para la implementacin de las alertas y los controles de seguimiento y la actualizacin de la cach (Comentada ms adelante).

Strategy

La situacin que se da es la siguiente, es necesario realizar un desarrollo pero todava no est decidido como se va a implementar las clases que se deben utilizar, es decir se conoce la funcionalidad que estas deben dar, pero no su implementacin definitiva. O simplemente, se desea dejar abierta la posibilidad de cambiarla en un futuro.

El funcionamiento consiste en que se define un interfaz con las operaciones y los algoritmos que se deben implementar, y las aplicaciones que requieren de dichos algoritmos se apoyan en el interfaz. Esto permite que el algoritmo se pueda realizar de diversos modos.

Context contextInterface()

Strategy algorithmInterface()

ConcreteStrategyA algorithmInterface()

ConcreteStrategyB algorithmInterface()

ConcreteStrategyC algorithmInterface()

Figura 14 Patrn Strategy

Jorge Molinero Muoz

Pgina 68

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Este patrn se ha utilizado en el sistema para la implementacin de los repositorios, el cual inicialmente se implement con vectores, que no aseguraban la persistencia de los datos, y posteriormente se hizo con ficheros xml.

Diseo
El sistema ha sido implementado siguiendo una metodologa Orientada a Objetos, y por lo tanto el diagrama que mejor modela el diseo de la aplicacin es el Diagrama de Clases.

La aplicacin como ya se ha comentado anteriormente est estructurado en tres capas. A continuacin se presenta el diseo de cada una de las capas que forman el sistema.

Capa de Presentacin

Donde se encuentran las clases relacionadas con el Interfaz de Usuario, que a su vez estn conectadas con su respectivo Gestor, el cual se encarga de transmitir las operaciones a la Capa Lgica de Negocio.

Jorge Molinero Muoz

Pgina 69

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

GestorUsuario IUGestorPersonal ExisteUsuario() addUsuario() getUsuario() setUsuario()

GestorPuesto IUGestorPuesto getPuestos() addPuesto() borrarPuesto() actualizarPuesto() GestorControl IUGestorControl getControles() addControl() borrarControl() GestorAlerta IUGestorAlerta getAlertas() addAlerta() borrarAlerta()

Figura 15 Diagrama de Clases Modelo Lgico de Negocio

Como se puede observar en el diagrama todos los Gestores de la capa de presentacin heredan del GestorUsuario, esto es debido a que todas las operaciones tienen una relacin directa con la clase Usuario, es decir se borrar una Alerta, es porque se le borra a un usuario, si se aade un control es porque se le asigne a un usuario. De modo que al extender dicho Gestor, los dems gestores heredan las operaciones implementadas en el GestorUsuario evitando tener cdigo duplicado en el sistema.

Capa de Lgica de Negocio

En la capa lgica de Negocio del sistema se identifican dos grupos de clases que aportan las principales funcionalidades del sistema.

Por un lado nos encontramos con las clases que se encargan de ejecutar las operaciones de gestin de recursos, es decir la creacin de usuarios, la agregacin de

Jorge Molinero Muoz

Pgina 70

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

controles, alertas o controles, etc... Dichas clases modelan las acciones que los usuarios solicitan al sistema.

Modelo Lgico de Negocio

GestorUsuario ExisteUsuario() addUsuario() getUsuario() setUsuario()

Usuario login password nombre apellido mail

Alerta GestorPuesto getPuestos() addPuesto() borrarPuesto() actualizarPuesto() GestorAlerta getAlertas() addAlerta() borrarAlerta() GestorControl getControles() addControl() borrarControl() Control tecnologia provincia tecnologia provincia mail periodicidad actua() getTecnologia() getProvincia() getMail() Puesto empresa puesto urlpuesto urlempresa fecha

Figura 16 Diagrama de Clases - Modelo Lgico de Negocio II

Y por otro lado se encuentran las clases que modelan las acciones peridicas que realiza la aplicacin. Dichas clases se ajustan al patrn command, de modo que cada tipo de operacin se implementa con una clase que hereda de Command, y por lo tanto se puede ejecutar de manera independiente cuando el LanzadorCommand lo considere necesario.

Jorge Molinero Muoz

Pgina 71

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Modelo Lgico de Negocio (Comandos)

Buscador buscar() buscarTodo()

Command actua()

LanzadorCommand actua() addComando()

ComandoAvisar

ComandoControlar

ComandoBuscar

GestorAvisos avisa()

RepositorioEmpresa getPuestos() addPuestos()

CacheBusqueda agregarBusqueda() agregarBusquedaTodo()

Figura 17 Diagrama de Clases - Modelo Lgico de Negocio (Comandos)

Capa de Datos

Respecto al modelo de datos, este viene representado con RepositorioUsuario, clase que independiza la aplicacin de la Base de Datos.
RepositorioUsuario GestorUsuario ExisteUsuario() addUsuario() getUsuario() setUsuario() existeUsuario() addUsuario() getUsuario() setUsuario() getAlertas() addAlerta() addControl() getControles()

Figura 18 Diagrama de Clases - Capa de Datos

Modelo Entidad Relacin


Una vez se ha decidido cual es el soporte fsico que va a ser utilizado para la implementacin de la capa de datos se procede a representar la estructura lgica de la

Jorge Molinero Muoz

Pgina 72

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

informacin que va a ser almacenada, para ello se utiliza un diagrama Entidad-Relacin. Para la realizacin de dicho diagrama se seguirn los siguiente pasos: ?? Identificacin de las entidades y sus atributos, especificando cuales de estos son clave: Usuario: Login, Password, Nombre, Apellido, Mail Puesto: Nombre, Url, Empresa, UrlEmpresa, Fecha Control: Tecnologia, Provincia Alerta: Tecnologa, Provincia, Periodicidad Bsqueda: Tecnologa, Provincia, Accesos Empresa: Nombre, UrlEmpresa PuestoPublicado: Fecha_Hasta, Publicados ?? Identificacin de las Relaciones, y sus atributos: Almacena: Usuario x Puesto Controla: Usuario x Control Gestiona: Usuario x Alerta Formado: Control x Puesto (Publicados) Publica: Empresa x PuestoPublicado Es_Un: PuestoPublicado x Puesto ?? Una vez se han identificado las entidades y las relaciones, se procede a su representacin grfica:

Jorge Molinero Muoz

Pgina 73

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Login Password Nombre Apellido Mail Usuario 1 n n Tecnologia Localidad gestiona n Alerta Tecnologia Localidad Periodicidad

controla n

Control n

Publicados

formado n Nombre Url Empresa UrlEmpresa Fecha

almacena n

Puesto

Es_un Nombre URLEmpresa Empresa publica 1 n PuestoPublicado

Nombre URLEmpresa

Figura 19 Modelo Entidad-Relacin

Jorge Molinero Muoz

Pgina 74

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Comportamiento del Sistema


Definida la estructura de la aplicacin se procede a modelar el comportamiento de esta, con el objetivo de plasmar el sistema tanto esttica como dinmicamente.

Para representar el comportamiento del sistema se van a utilizar diagramas de secuencia y diagramas de colaboracin de UML.

Bsqueda

: Usuario Anonimo

1: Buscar Puestos

5: Respuesta en HTML IUBuscador transforma el resultado en XML en una pgina HTML con XSL

: IUBuscador

2: buscar( )

4: Resultado en XML

: GestorConsultas

3: buscar( ) : Buscador El Buscador hace multiples petiones http concurrentes a los portales de empleo, unificando los resultados

Figura 20 Diagrama de Actividad - Bsqueda

Descripcin

El usuario se conecta al sistema mediante un navegador da una orden de bsqueda. El sistema en ese momento traduce la orden y genera una serie de peticiones utilizando el

Jorge Molinero Muoz

Pgina 75

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

protocolo http a los diversos portales para obtener las pginas html con los resultados de dicha bsqueda.

Una vez obtenidas las pginas, son tratadas para producir unas pginas html bien estructuradas, y posteriormente utilizando expresiones Xpath, se saca la informacin necesaria y se transforma a un mismo formato en XML.

Finalmente se le da al usuario la informacin obtenida transformndola mediante plantillas XSL, para su correcta presentacin en el Navegador.

Proceso de Alta

: Usuario Anonimo

oIUGestorPersonal : IUGestorPersonal

oGestorUsuario : GestorUsuario

oRepositorioUsuario : RepositorioUsuario

oUsuario : Usuario

ExisteUsuario( ) existeUsuario( )

Formulario HTML

Crear Usuario new Usuario()

addUsuario( oUsuario ) addUsuario( oUsuario )

Usuario XML Confirmacion HTML

Figura 21 Diagrama de Secuencia - Proceso de Alta

Descripcin

Jorge Molinero Muoz

Pgina 76

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

El usuario inserta su identificador (Login) y su contrasea, y el sistema, apoyndose en el Repositorio de Usuarios, comprueba si dichos datos ya existen. Si no existen se le presenta en el navegador un formulario para que sea rellenado por el usuario. Una vez el sistema recibe dicha informacin, actualiza el Repositorio de Usuarios dichos datos (quedando registrada la informacin en un fichero XML). Posteriormente el usuario tiene la posibilidad de seguir en la parte privada del portal o desconectarse (Logout).

Modificacin de datos asociados a un usuario

: Usuario Registrado

oServletPersonal : IUGestorPersonal

oGestorUsuario : GestorUsuario

oRepositorioUsuario : RepositorioUsuario

getUsuario( ) getUsuario( )

Formulario HTML relleno

setUsuario( ) setUsuario( ) Confirmacion HTML

Figura 22 Diagrama de Secuencia - Modificacin de Datos Asociados a un Usuario

Descripcin

El usuario se valida contra el sistema, de tal modo que si no esta dado de alta, le presenta un mensaje de error. Y si se encuentra ya registrado en la aplicacin, obtiene del Repositorio de Usuarios un XML que es utilizado para mostrar al usuario el formulario de datos con la informacin que anteriormente registr. (Dicho proceso se apoya en una plantilla XSL)

Jorge Molinero Muoz

Pgina 77

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Una vez aparezca en el navegador el formulario con los datos personales, se proceder a la modificacin de estos para su posterior envo al servidor, el cual actualizar el Repositorio de Usuarios con la informacin nueva.

Gestin de alertas

: Usuario Registrado

oIUGestorAlertas : IUGestorAlerta Ver Alertas

oGestorAlerta : GestorAlerta

oRepositorioUsuario : RepositorioUsuario Se pide el usuario, y este ya incluye sus alertas. Luego el obj. IUGestorAlertas muestra lo necesario

getUsuario( )

getUsuario( )

Formulario HTML relleno

Aadir alerta

addAlerta( )

addAlerta( )

Ver Alertas getUsuario( )

getUsuario( ) Pagina HTML rellena

Figura 23 Diagrama de Secuencia - Gestin de Alertas

Descripcin

El proceso de gestin de alertas de un usuario, es anlogo al de modificacin de los datos asociados a un usuario, simplemente se realiza la correspondiente peticin de las alertas del usuario (las cuales se obtienen mediante un fichero XML) y se le ofrecen por pantalla al usuario para que este pueda modificarlas. Finalmente dichos cambios quedan registrados en el servidor.

Jorge Molinero Muoz

Pgina 78

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Gestin de controles

oIUGestorControles : oGestorControl : : Usuario IUGestorControl GestorControl Registrado Ver Controles getUsuario( )

oRepositorioUsuario : RepositorioUsuario Se pide el usuario, y este ya incluye sus controles. Luego el obj. IUGestorControles muestra lo necesario

getUsuario( )

Formulario HTML relleno

Aadir control

addControl( )

addControl( )

Ver Controles getUsuario( )

getUsuario( ) Pagina HTML rellena

Figura 24 Diagrama de Secuencia - Gestin de Controles

Descripcin

El proceso de gestin de controles de un usuario, es anlogo al de modificacin de los datos asociados a un usuario, simplemente se realiza la correspondiente peticin de los controles del usuario (los cuales se obtienen mediante un fichero XML) y se le ofrecen por pantalla al usuario para que este pueda modificarlos. Finalmente dichos cambios quedan registrados en el servidor.

Proceso de actualizacin de controles, generacin de alertas y actualizacin de cach.

Jorge Molinero Muoz

Pgina 79

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Creacin de Comandos

oLanzadorComandos : LanzadorCommand

oGestorCache : GestorCache

agregarComandos( )

Se crean todos los comandos de la cache y se aaden al Lanzador. Estos comandos son objetos ComandoBuscar oComando : Command

new Command

addComando( )

: GestorAlerta

Se crean todos los comandos de Alertas (ComandoAvisar)

agregarComandos( ) new Command addComando( )

agregarComandos( )

oGestorControl : GestorControl

Se crean todos los comandos de Contros (ComandoControl)

new Command addComando( )

Figura 25 Diagrama de Secuencia - Proceso de Actualizacin de Controles, Generacin de Alertas y Actualizacin de Cach

Descripcin

Los procesos de actualizacin de controles, generacin de alertas y actualizacin de cach, se han unificado para cumplir el patrn command. Cada uno de los procesos esta formado por una serie de comandos unitarios e independientes. Es decir existen tres tipos de comandos, uno que realiza la actualizacin de un control en concreto, otro que genera el aviso correspondiente a una alerta y finalmente otro tipo de comando que realiza una bsqueda y actualiza la cach del sistema.

El funcionamiento es el siguiente, existe una clase esttica que es ejecutada peridicamente desde lnea de comandos gracias a la utilidad crontab disponible en linux. Esta

Jorge Molinero Muoz

Pgina 80

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

clase construye los comandos necesarios en funcin de la hora en la que se ha lanzado (existen acciones que se deben ejecutar en varias ocasiones en el mismo da y otras que una nica vez) y despus ejecutan todos los comandos secuencialmente.

Actualizacin de Cache oLanzadorComandos : LanzadorCommand actua( ) buscar( ) oComandoBuscar : ComandoBuscar oBuscador : Buscador oCacheBusqueda : CacheBusqueda

agregarBusqueda( )

buscarTodo( )

agregarBusquedaTodo( )

Figura 26 Diagrama de Secuencia - Actualizacin de Cach

Descripcin

La actualizacin de la memoria cach consiste en la creacin de un conjunto de comandos con las consultas ms frecuentes y su posterior ejecucin. De tal modo que cada comando realiza una peticin al Buscador y su correspondiente almacenamiento de los resultados en la Cach de Bsquedas (quedando los datos guardados en ficheros XML).

Jorge Molinero Muoz

Pgina 81

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Generacin de Alertas oLanzadorComandos : LanzadorCommand oComandoAvisar : ComandoAvisar oAlerta : Alerta oGestorAvisos : GestorAvisos oBuscador : Buscador oGestorCorreo : GestorCorreo

El lanzador avisa a todos los comandos y estos segun la periodicidad realiza los avisos de las alertas. actua( ) getPeriodicidad( )

avisa(oAlerta) getTecnologia( ) getProvincia( ) getMail( ) buscar( )

mandarCorreo( )

Figura 27 Diagrama de Secuencia - Generacin de Alertas

Descripcin

La ejecucin de las alertas, consiste en una peticin al Buscador, el cual se conecta mediante http a los portales, unificando los formatos para posteriormente componer un listado de todos los puestos de trabajo disponibles. Finalmente, se enva un correo electrnico con el listado al usuario adecuado.

Jorge Molinero Muoz

Pgina 82

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Generacin de Controles oLanzadorComandos : LanzadorCommand oComandoControlar : ComandoControlar oControl : Control oBuscador : Buscador oRepositorioEmpresa : RepositorioEmpresa

actua( ) getTecnologia( ) getProvincia( )

buscarTodo( ) addPuestos( )

Figura 28 Diagrama de Secuencia - Generacin de Controles

Descripcin

El proceso de generacin de controles se basa en que cada da se realizan todas las bsquedas establecidas en los controles de los usuarios (evitando la realizacin de dos bsquedas iguales) y se almacenan en el Repositorio de Empresas (quedando los datos registrados en un fichero XML).

Con el fin de optimizar en la medida de lo posible este proceso, se tomo como criterio que los comandos que se deban ejecutar antes, deberan ser los de actualizacin de la cach, de tal modo que los dems tipos de comandos que tambin requeran de bsquedas pudiesen aprovechar la funcionalidad ofrecida por la cach.

Proceso de visualizacin de controles

Jorge Molinero Muoz

Pgina 83

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

oIUGestorControl : IUGestorControl : Usuario Registrado Ver Control

oGestorControl : GestorControl

oRepositorioEmpresa : RepositorioEmpresa

getControles( ) getPuestos( ) Puestos en Xml Respuesta en Html Se transforma el xml en html utilizando una hoja de estilo xsl

Figura 29 Diagrama de Secuencia Proceso de Visualizacin de Controles

Descripcin

El usuario realiza la peticin de visualizacin de un control, y el sistema accediendo al Repositorio de Empresas ofrece al usuario la informacin almacenada correspondiente a dicho control, utilizando una plantilla XSL, que trata el documento XML obtenido del Repositorio de Empresas para que la informacin este estructurada correctamente y sea visible desde el Navegador.

Gestin de puestos de trabajos asociados a un usuario

Jorge Molinero Muoz

Pgina 84

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

oIUGestorPuestos : oGestorPuestos : : Usuario IUGestorPuesto GestorPuesto Registrado Ver Controles getUsuario( )

oRepositorioUsuario : RepositorioUsuario

getUsuario( )

Se pide el usuario, y este ya incluye sus controles. Luego el obj. IUGestorControles muestra lo necesario

Pagina HTML con Puestos

Cambiar Estado Puesto

actualizarPuesto( )

actualizarPuesto( )

Ver Puestos getUsuario( )

getUsuario( ) Pagina HTML rellena

Figura 30 Diagrama de Secuencia - Gestin de Puestos Asociados a un Usuario

Descripcin

Cada usuario tiene la posibilidad de tener almacenados una serie de puestos de trabajo, con el fin de recordar cuando se realiz una solicitud de empleo, y a que empresa se hizo. Por lo tanto el sistema da la posibilidad al usuario de poder gestionar un listado de puestos de empleo.

El proceso de actualizacin de estos es anlogo al de gestin de alertas y al de gestin de controles.

Bsqueda Inteligente.

Jorge Molinero Muoz

Pgina 85

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

1: Buscar Inteligentemente oIUBuscador : IUBuscador 7: Resultado en HTML : Usuario Registrado 6: Resultado en XML

El IUBuscador transforma el resultado en XML a una pgina HTML utilizando una hoja de estilo XSL

2: buscarInteligente( )

El Gestor de Consulta completa la busqueda realizada con los controles establecidos a fin de poder obtener ms criterios de busqueda

oGestorConsultas : GestorConsultas

5: getPuestos( ) 4: getControles( ) 3: buscarTodo( )

obuscador : Buscador

oGestorControles : GestorControl

oRepositorioEmpresa : RepositorioEmpresa

Figura 31 Diagrama de Colaboracin - Bsqueda Inteligente

Descripcin

La bsqueda Inteligente consiste en una bsqueda que es capaz de eliminar aquellos puestos de trabajos que se consideran fantasmas, es decir puestos de trabajo que llevan mucho tiempo publicados en los portales de empleo.

El usuario una vez se ha validado contra el sistema, accede a la opcin de bsqueda inteligente y rellenando el formulario de bsqueda, realiza la peticin. El sistema traduce dicha peticin, y utilizando WEBL, genera una serie de peticiones http concurrentes a fin de obtener las pginas de resultados de los diversos portales de empleo.

Una vez se han obtenido, se unifican los formatos y contenidos dando lugar a una informacin con una estructura correcta (en XML) con los puestos ofertados por los portales.

Cuando ya se dispone de la informacin en un formato adecuado, se valida siguiendo unos criterios contra los controles y los puestos de trabajo disponibles en das anteriores determinando que empleos se le mostrarn al usuario.

Bsqueda de Empresas.
Proceso anlogo al de la bsqueda de puestos de trabajo, en el cual el usuario realiza una peticin que mediante WebL se transmite a los portales, obteniendo de estos ficheros xml

Jorge Molinero Muoz

Pgina 86

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

que se traducen con las correspondientes hojas de estilos xsl. Se diferencia en que los scripts en WebL no son los mismos y que se extrae una informacin distinta de las pginas html de resultados.

Jorge Molinero Muoz

Pgina 87

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

4 Implementacin
Definicin del Interfaz
Con el objetivo de conseguir una aplicacin con una imagen moderna cuyo aprendizaje resulte sencillo e intuitivo y buscando que a los usuarios habituados a navegar por Internet les resulte familiar, se realiz un estudio de los de las interfaces de diversos portales disponibles en Internet, con el fin de descubrir las tendencias relativas al diseo de aplicaciones Web.

Una vez, realizado dicho estudio se pas a agrupar todas las funcionalidades segn un orden lgico, con el objetivo de presentrselas al usuario siguiendo dicha lgica, de modo que le resulte sencillo encontrar las distintas funcionalidades.

Por otro lado el diseo del interfaz se orient a que el usuario dispusiera en todo momento de acceso a las funcionalidades ms importante, como es el caso de la bsqueda de puestos de trabajo, o de empresas.

El interfaz cumple una estructura muy habitual en las aplicaciones disponibles en la WWW, en la cual aparecen principalmente tres reas: ? rea de Cabecera: Destinada principalmente a dar imagen al portal, ya que no tienen ? en ninguna funcionalidad, salvo la de ofrecer al usuario la sensacin de que est en todo momento en el mismo portal. ? rea de Funcionalidades Principales: Su finalidad es que el usuario en todo momento ? tenga acceso a las funcionalidades principales del sistema, durante toda la interaccin con la aplicacin. En dicho rea nos encontraremos distintas opciones en funcin del rol del usuario: o Si el usuario es annimo: ? Bsqueda de Puestos de Trabajo. ? ? Bsqueda de Empresas. ? ? Acceso al rea personal, es decir, validarse como usuario registrado ? ? Darse de alta en la aplicacin. ? o Si el usuario ya se encuentra registrado y se ha validado: ? Bsqueda de Puestos de Trabajo ? ? Bsqueda Inteligente de Puestos de Trabajo ? ? Bsqueda de Empresas. ? ? Posibilidad de salir del sistema, es decir, pasar a ser usuario annimo. ? ? rea de Trabajo Principal: Cuyo objetivo es presentar la informacin al usuario, tanto ? de consultas como personal (configuracin de su perfil).

Jorge Molinero Muoz

Pgina 88

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

REA DE CABECERA

REA DE FUNCIONALIDADES PRINCIPALES REA DE TRABAJO PRINCIPAL

Figura 32 Interfaz de Usuario

En el rea de trabajo principal, a su vez se puede encontrar con la siguiente estructura en pestaa, de modo que el usuario pueda navegar por el sistema pulsando las distintas opciones disponibles en el margen superior del rea de trabajo, y presentando la informacin de las distintas opciones en el rea de Trabajo Secundara.

Opcin 1

Opcin 2

Opcin 3

Opcin 4

REA DE TRABAJO SECUNDARIA

Figura 33 Interfaz de Usuario - rea de Trabajo Secundaria

Las opciones que se encuentran en el rea de Trabajo Principal sern: ? Datos Personales. ? ? Alertas. ? ? Controles. ? ? Puestos. ?

Tecnologas aplicadas
Para su implementacin se han utilizado los siguientes mdulos: ? JSDK: Necesario para la integracin de la aplicacin con la Web ? ? Xalan: Permite el tratamiento de ficheros XML ?

Jorge Molinero Muoz

Pgina 89

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? Jtidy: Mdulo en Java que permite analizar pginas HTML as como imprimir de ? forma elegante documentos DOM. ? WebL. ?

JSDK
Para la implementacin de la capa de presentacin se ha utilizado JSDK, en concreto se han utilizado servlets. Estos se encargan de recibir las peticiones de los usuarios a travs del protocolo HTTP, y transmitirlas correctamente al sistema. [24, 50, 51]

Tambin se encargan de traducir las respuestas del sistema en forma de ficheros XML al usuario como cdigo HTML utilizando hojas de estilo XSL.

Se pueden identificar dos tipos de servlets dentro del sistema. ? Servlets que muestran informacin al usuario. Se limitan a obtener la informacin en ? XML resultante de una peticin al sistema y traducirla a HTML. Estos servlets son los que aportan la funcionalidad de navegacin a travs del sistema.

A continuacin se listan estos servlets: ? MostrarInformacion.java ? ? MostrarMenu.java ? ? MostrarArea.java ? ? MostrarPersonal.java ? ? MostrarAlertas.java ? ? MostrarControles.java ? ? MostrarPuestos.java ? ? MostrarControl.java ? ? MostrarEmpresa.java ? ? MostrarBusquedaInt.java ? ? MostrarMensaje.java ? ? Servlets que realizan operaciones con el sistema. Se encargar de interpretar las ? peticiones y transmitirlas al correspondiente gestor de la lgica de negocio de la aplicacin, para que ejecute la orden, y posteriormente se redireccion la peticin a uno de los servlets anteriores para mostrar al usuario la respuesta de la operacin.

A continuacin se listan estos servlets: ? IUConsulta.java ? ? IUConsultaInteligente.java ?

Jorge Molinero Muoz

Pgina 90

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? IUConsultaEmpresa.java ? ? IUGestorUsuario.java ? ? IUGestorAlertas.java ? ? IUGestorControles.java ? ? IUGestorPuestos.java ?

Xalan
Es un mdulo realizado en Java que ofrece un lenguaje XSLT (Transformations XSL) y un Lenguaje de Direccionamiento de XML (XPath), herramientas muy tiles para el tratamiento de ficheros XML. [34, 36, 37]

XSLT es un lenguaje que permite componer hojas de estilos XSL (Extensible Stylesheet Language), las cuales contienen instrucciones para realizar transformaciones en documentos XML, pudiendo cambiar el formato de estos, de tal modo que es posible traducir un fichero XML a una pgina HTML o a otro fichero XML.

Por defecto Xalan utiliza como analizador de XML, Xerces, pero puede ser configurado para utilizar otros analizadores de XML. Xerces, permite analizar un documento XML y crear un objeto Document, con la estructura de dicho documento y respetando el Modelo de Objetos del Documento (DOM). Este objeto, cumplir las especificaciones de Nivel 2 del Modelo de Objetos del Documento (Document Object Model (DOM) Level 2 Core Specification). [12]

Dichas especificaciones consisten en un plataforma y una API que permite que programas y scripts accedan dinmicamente y actualicen el contenido y la estructura de los documentos. La especificacin tambin incluye unas interfaces especializada orientadas a documentos XML.

El analizador Xerces, funciona extraer un objeto Document de un fichero XML como se indica a continuacin:

DocumentBuilderFactory factoria = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factoria.newDocumentBuilder(); Document documento = builder.parse(Constantes.pathXML+"usuarios.xml");


Cdigo Fuente 1 Obtencin de objeto Document

Jorge Molinero Muoz

Pgina 91

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Una ventaja de Xalan, es que permite su fcil integracin con los servlets, de tal modo que es posible generar la pgina de respuesta del servlet como el resultado de traducir un fichero XML con la ayuda de una hoja de estilo XSL.

Por ejemplo, se utiliza el mdulo de Xalan al presentar el resultado de hacer una bsqueda, que es un objeto de tipo Document (XML), de tal modo que para dicha presentacin se le aplica una hoja de estilo determinada (puestos.xsl).

TransformerFactory tFactory = TransformerFactory.newInstance(); FileInputStream entrada = new FileInputStream(Constantes.pathXSL+"trabajos.xsl"); Source xslSource = new StreamSource(fichero); Transformer transformer = tFactory.newTransformer(xslSource); ... PrintWriter out = response.getWriter(); // Realizamos la bsqueda Document resultado = buscador.buscarTodo(tecnologia,provincia); // Finalmente transformamos el resultado (document) aplicndole el xml try{ Source xmlSource = new DOMSource(resultado); // Perform the transformation, sending the output to the response. transformer.transform(xmlSource, new StreamResult(out)); } catch (Exception e) { out.write(e.getMessage()); e.printStackTrace(out); } out.close();

Cdigo Fuente 2 Transformacin de XML con XSL

XPath es un lenguaje que permite crear expresiones para direccionar los ficheros XML ofreciendo gran flexibilidad pues permiten trabajar con un documento XML utilizando su estructura arbrea para buscar informacin en sus nodos, de tal modo se accede directamente a estos.

Por ejemplo, dado este fichero XM L con los puestos de trabajo obtenidos en una bsqueda, las expresiones XPath indexan la siguiente informacin.

Jorge Molinero Muoz

Pgina 92

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

<?xml version='1.0' encoding='iso-8859-1'?> <usuarios> <usuario apellidos="Moli" login="Jorge" mail="jmoli@ya.com" nombre="Jorge" password="XXXX"> <control provincia="32" tecnologia="JAVA"></control> <alerta destino="jmoli@ya.com" periodicidad="1" provincia="32" tecnologia="JAVA"></alerta> <alerta destino="jmoli@ya.com" periodicidad="1" provincia="32" tecnologia="SQL"></alerta> <puesto empresa="CM CAPITAL MARKETS" fecha="16/1/2004" nombre="Informticos"></puesto> <puesto empresa="Stratesys Consulting ADP&amp;M" fecha="16/1/2004" nombre="Programador J2EE/UML"></puesto> <puesto empresa="Intesys" fecha="16/1/2004" nombre="Jefe de Proyecto entorno JAVA"></puesto> </usuario> </usuarios>

Cdigo Fuente 3 XML de Usuarios

? /usuarios/usuario Esta expresin devuelve todos los nodos usuario. ? ? /usuarios/usuario[@login=Jorge] Todos los nodos usuario cuyo atributo login es igual ? a Jorge. ? /usuarios/usuario[@login=Jorge]/alerta Devuelve todas las alerta del usuario con ? atributo login igual a Jorge. ? //control Se obtienen todos los controles del rbol. ?

Jtidy
Mdulo en Java que permite analizar pginas HTML as como presentar de forma elegante documentos DOM [39, 40]. En este sistema se ha utilizado para limpiar/corregir las pginas obtenidas por los portales de empleo, ya que estas no tienen una estructura correcta.

La estructuracin/limpieza de la pgina del portal devuelve un documento DOM. Dicho documento ya es susceptible de ser tratado automticamente y permite la obtencin de la informacin de los puestos de trabajo publicados por medio de expresiones XPath.

Este proceso de limpieza junto con el de interaccin con los portales de empleo son los ms lentos del sistema, por lo que se ha procurado minimizar en todo lo posible el nmero de ocasiones en las que se utiliza.

Jtidy permite su ejecucin desde lnea de comandos:

java -classpath %PATHTIDY%tidy.jar;. org.w3c.tidy.Tidy <fichero.html>

Y los argumentos que toma por lnea de comando son:

Jorge Molinero Muoz

Pgina 93

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? Directivas de Proceso ?

-indent -omit

Indenta los elementos contenidos Omite las etiquetas de fin posibles

-wrap 72 Limita el texto en columnas de 72 caracteres -upper -clean -errors -quiet -xml -asxml Pone en maysculas las etiquetas Remplaza etiquetas por CSS, por ejemplo <CENTER> Muestra solo los errores Elimina la salida no importante Se utiliza si la entrada es un fichero XML bien formado Convierte el HTML a XML bien formado

? Codificacin de caracteres ?

-ascii -latin1 -iso2022 -utf8

Usa ASCII como salida y Latin-1 como entrada Usa Latin-1 como entrada y salida Usa ISO2022 como entrada y salida Usa UTF-8 como entrada y salida

? Manipulacin de ficheros ?

-config <fichero> Establece el fichero de configuracin -f <fichero> -modify Escribe los errores en <fichero> Modifica los fichero originales

Todos estos parmetros y alguno ms se puede especificar en un fichero de configuracin, para la aplicacin se ha utilizado Config.txt

WebL
Se ha utilizado WebL para la interaccin del sistema con los dems portales de empleo, porque es la tecnologa que nos permita un desarrollo ms rpido.

La utilidad que se le ha dado ha sido el acceso a los portales de empleo para rellenar los formularios de bsquedas y obtener las pginas con los resultados de dichas bsquedas

Soporte de la Informacin.

Jorge Molinero Muoz

Pgina 94

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Como ya se ha comentado anteriormente el soporte fsico en el cual se almacenar la informacin ser en ficheros xml [20]. En concreto se han utilizado varios tipos distintos de ficheros xml, uno para cada concepto principal modelo entidad relacin: ? Usuario. Engloba sus alertas, controles y puestos ? ? Cach. Donde se almacena la informacin asociada a la memoria cach. ? ? Empresas. Donde se guardan las empresas y los puestos que dichas empresas ? publican. ? Bsquedas. Permite llevar un control de las bsquedas ms frecuentes. ?

A continuacin se presentan los DTDs de cada uno de los tipos de ficheros.

DTD de usuario.

<!ELEMENT usuarios (usuario*) > <!ELEMENT usuario (control|alerta|puesto)* > <!ELEMENT usuario EMPTY> <!ATTLIST usuario nombre CDATA #REQUIRED apellidos CDATA #REQUIRED mail CDATA #REQUIRED login CDATA #REQUIRED password CDATA #REQUIRED> <!ELEMENT control EMPTY> <!ATTLIST control tecnologia CDATA #REQUIRED provincia CDATA #REQUIRED> <!ELEMENT alerta EMPTY> <!ATTLIST alerta tecnologia CDATA #REQUIRED provincia CDATA #REQUIRED destino CDATA #REQUIRED periodicidad CDATA #REQUIRED> <!ELEMENT puesto EMPTY> <!ATTLIST puesto nombre CDATA #REQUIRED empresa CDATA #REQUIRED fecha CDATA #REQUIRED estado CDATA #REQUIRED>
Cdigo Fuente 4 DTD de usuarios

Jorge Molinero Muoz

Pgina 95

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

DTD de Cach

<!ELEMENT todo(puestos)> <!ATTLIST todo proyect CDATA #REQUIRED fecha CDATA #REQUIRED> <!ELEMENT puestos (puesto*)> <!ELEMENT puesto (#PCDATA)> <!ATTLIST puesto urlPuesto CDATA #REQUIRED urlEmpresa CDATA #REQUIRED nombreEmpresa CDATA #REQUIRED localidad CDATA #REQUIRED fecha CDATA #REQUIRED>

Cdigo Fuente 5 DTD de Cach

DTD de Empresas

<!ELEMENT empresas (empresa*)> <!ELEMENT empresa (puesto+)> <!ATTLIST empresa nombre CDATA #REQUIRED urlEmpresa CDATA #REQUIRED > <!ELEMENT puesto EMPTY> <!ATTLIST puesto nombre CDATA #REQUIRED urlPuesto CDATA #REQUIRED localidad CDATA #REQUIRED fechaDesde CDATA #REQUIRED fechaHasta CDATA #REQUIRED publicados CDATA #REQUIRED >
Cdigo Fuente 6 DTD de Empresas

DTD de Bsquedas

<!ELEMENT busquedas (busqueda*)> <!ELEMENT busqueda EMPTY> <!ATTLIST busqueda tecnologia CDATA #REQUIRED provincia CDATA #REQUIRED

Jorge Molinero Muoz

Pgina 96

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

accesos CDATA #REQUIRED>


Cdigo Fuente 7 DTD de Bsquedas

Pero pese a que slo haya cuatro tipos de ficheros xml, en el sistema existen mltiples ficheros asociados a dichos tipos dtd, esta decisin se tomo de cara a facilitar el tratamiento de los datos, de modo que en lugar de realizar un fichero xml contenga todos las empresas y los puestos de trabajos correspondientes a los controles existentes en el sistema, se tiene un fichero xml para cada uno de los controles. Consiguiendo un sistema ms fiable, con la informacin ms diversificada.

Al igual que con las empresas, para la cach, tambin existen diversos ficheros xml para cada una de las bsquedas ms habituales del sistema.

De todos los ficheros xml, el ms importante es el fichero de usuarios, puesto que en l almacenamos la informacin de los usuarios necesaria para que estos se puedan validar y tener configurado su perfil, y el de empresas, que permite al sistema almacenar un historial de las bsquedas establecidas por los controles.

Un posible ejemplo de fichero de usuarios es el siguiente:

<?xml versin='1.0' encoding='iso-8859-1'?> <usuarios> <usuario apellidos="Molinero" login="Jorge" mail="jmoli@ya.com" nombre="Jorge password="Jorge"> <control provincia="32" tecnologia="JAVA"/> <control provincia="32" tecnologia="SQL"/> <control provincia="32" tecnologia="XML"/> <alerta destino="jmoli@ya.com" periodicidad="1" provincia="32" tecnologia="JAVA"/> <puesto empresa="Indusoft" estado="1" fecha="01/05/2004" nombre="Analista Programador Java, Struts"/> <puesto empresa="Raw Steel Group" estado="1" fecha="27/03/2004" nombre="T.S. WINDOWS/BB.DD"/> <puesto empresa="PROFESSIONAL STAFF ETT" estado="1" fecha="24/04/2004" nombre="PROGRAMADOR WEB ESPECIALISTA .NET/XML"/> <puesto empresa="Stratesys Consulting ADP&amp;M" estado="0" fecha="01/05/2004" nombre="Programador J2EE"/ > </usuario> <usuario apellidos="Molinero" login="Nacho" mail="imoli@ya.com" nombre="Ignacio password="Ignacio">

Jorge Molinero Muoz

Pgina 97

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

<control provincia="32" tecnologia="VISUAL"/> <control provincia="32" tecnologia="BD"/> <alerta destino="imoli@ya.com" periodicidad="1" provincia="32" tecnologia="JAVA"/> </usuario> </usuarios>
Cdigo Fuente 8 Fichero XML de ejemplo de usuarios

Un ejemplo de fichero de empresas:

<?xml version='1.0' encoding='iso-8859-1'?> <empresas> <empresa nombre="Psicotec" urlEmpresa="http://www.infojobs.net/gen_multisite.ij/iCodigoPerfil=968651524526522102730125557182"> <puesto nombre="ANALISTA CRM / BUSINESS INTELLIGENCE" urlPuesto="http://www.infojobs.net/visualizar_oferta.ij/of_codigo=871748524531 306400594555653794&amp;buscador=1&amp;palabra=JAVA" localidad="MADRID" fechaDesde="01/07/2004" fechaHasta="04/07/2004" publicados="5" /> </empresa> <empresa nombre="Garben Proyectos Informticos" urlEmpresa="http://www.infojobs.net/gen_multisite.ij/iCodigoPerfil=96295352452620255 0343215545583"> <puesto nombre="WEBSPHERE, JAVA - Analistas y APs" urlPuesto="http://www.infojobs.net/visualizar_oferta.ij/of_codigo=81695352453120 6040944245539990&amp;buscador=1&amp;palabra=JAVA" localidad="Madrid" fechaDesde="01/07/2004" fechaHasta="01/07/2004" publicados="2"/> <puesto nombre="WEBSPHERE, JAVA - Analistas, APs y Programadores" urlPuesto="http://www.infojobs.net/visualizar_oferta.ij/of_codigo =881453424531007910274615052845&amp;buscador=1&amp;palabra=JAVA" localidad="Madrid" fechaDesde="02/07/2004" fechaHasta="02/07/2004" publicados="1"/> <puesto nombre="JAVA, Analistas Programadores y Programadores" urlPuesto="http://www.infojobs.net/visualizar_oferta.ij/of_codigo=815 251524531206440114255752158&amp;buscador=1&amp;palabra=JAVA" localidad="Madrid" fechaDesde="01/07/2004" fechaHasta="04/07/2004" publicados="5"/> </empresa> ...... </empresas>
Cdigo Fuente 9 Fichero XML de ejemplo de empresas

Jorge Molinero Muoz

Pgina 98

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

La cach consiste en el almacenamiento en un fichero fsico de los puestos de trabajos ofertados, con la misma estructura con la que trabaja la aplicacin internamente, con el objetivo de agilizar en la medida de lo posible el proceso de bsqueda. A continuacin se presenta un fichero de ejemplo de la cach.

<?xml version='1.0' encoding='iso-8859-1'?> <todo project="Puestos de Trabajo" fecha="23/21/2003"> <puestos> <puesto urlPuesto="http://www.infojobs.net/visualizar_oferta.ij/of_codigo=867550524531206691604205155540 &amp;buscador=1&amp;palabra=JAVA" urlEmpresa="http://www.infojobs.net/gen_multisite.ij/iCodigoPerfil=962750524526202250743215554861" nombreEmpresa="EXES" localidad="Madrid" fecha="07/07/2004"> Desarrollador en JAVA Y J2EE </puesto> <puesto urlPuesto="http://www.infojobs.net/visualizar_oferta.ij/of_codigo=932455524531670112940375751810 &amp;buscador=1&amp;palabra=JAVA" urlEmpresa="http://www.infojobs.net/gen_multisite.ij/iCodigoPerfil=961450424526202850173215054762" nombreEmpresa="Sermicro" localidad="Madrid" fecha="07/07/2004"> AP JAVA (BBDD ORACLE)</puesto> <puesto urlPuesto="http://www.infojobs.net/visualizar_oferta.ij/of_codigo=927755524531007051864234950941 &amp;buscador=1&amp;palabra=JAVA" urlEmpresa="http://www.infojobs.net/gen_multisite.ij/iCodigoPerfil=966249524526202750773214854693" nombreEmpresa="INSA (Zona Madrid)" localidad="Madrid" fecha="07/07/2004"> Programadores/as Java Websphere </puesto> ... </puestos> </todo>
Cdigo Fuente 10 Fichero XML de ejemplo de cach

Pero estos ficheros de cach no se generan de forma aleatoria, sino que nicamente se precalculan las bsquedas ms frecuentes, las cuales se almacenan en un fichero anlogo al siguiente:

<?xml version='1.0' encoding='iso-8859-1'?> <busquedas>

Jorge Molinero Muoz

Pgina 99

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

<busqueda accesos="34" provincia="32" tecnologia="JAVA"></busqueda> <busqueda accesos="5" provincia="32" tecnologia="STRUTS"></busqueda> <busqueda accesos="1" provincia="35" tecnologia="EJB"></busqueda> <busqueda accesos="1" provincia="35" tecnologia="XML"></busqueda> <busqueda accesos="2" provincia="32" tecnologia="ORACLE"></busqueda> </busquedas>

Cdigo Fuente 11 Fichero XML de bsquedas

Accesibilidad.
Actualmente las nuevas tecnologas de la informacin y la comunicacin, se hacen imprescindibles para alcanzar el grado de bienestar deseado. Existen miles de millones de pginas que se encuentran a disposicin de cualquier persona con el nico requisito de estar conectado a la Word Wide Web. Adems, ha desaparecido la restriccin de que dicha persona deba estar conectada por medio de un ordenador personal con un navegador, ya que hoy en da existen mltiples dispositivos que permiten el acceso a Internet como telfonos mviles, PDAs, videoconsolas con acceso a Internet, etc. [9, 44]

Esto hace que aparezcan dos problemas muy importantes asociados a los recursos disponibles en la WWW, ya que estos no se encuentran correctamente estructurados y homogenizados.

El primer problema es que no todo el mundo tiene las mismas facultades fsicas e intelectuales. Existen grupos de personas que tienen algn tipo de limitacin funcional que les limita y no les permite acceder de la misma manera a Internet. Personas de baja o nula visin, que tienen limitada la funcionalidad de sus manos, que oyen poco o que tienen un nivel de comprensin reducido, son quienes forman este colectivo. Para ellos se han creado instrumentos y herramientas que adaptan el ordenador a su forma de operar y se estructuran los contenidos de manera que los puedan manejar. Y las pginas Web, no pueden quedar al margen.

El World Wide Web Consortium (W3C) [8], a travs de un grupo de trabajo conocido como WAI (Web Accessibility Iniciative) [9], ha normalizado el procedimiento de diseo de las pginas Web para que sean accesibles. Todo este procedimiento ha quedado plasmado en una serie de recomendaciones en forma de Pautas.

Jorge Molinero Muoz

Pgina 100

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Las Pautas de Accesibilidad al Contenido en la Web 1.0, son una especificacin del W3C que proporciona una gua sobre la accesibilidad de los sitios de la Web para las personas con discapacidades.

El segundo problema es que no todos los dispositivos que permiten el acceso a la WWW interpretan del mismo modo la informacin contenida en ella, dando lugar a que las pginas Web no sea posible visualizarlas desde gran cantidad de dispositivos o incluso desde navegadores antiguos.

Del mismo modo que el W3C se ha responsabilizado de la accesibilidad para discapacitados, tambin ha creado un estndar XHTML, que segn W3C combina "la familiaridad de HTML con la potencia de XML".

Considerando que XHTML 1.0 es compatible con HTML 4, la mayor parte de los actuales lectores cuentan ya con soporte para el nuevo estndar. Un ejemplo es la propia pgina de W3C, que est escrita en XHTML, y que puede ser visualizada sin problemas con las versiones ms recientes de los lectores Navigator e Internet Explorer.

La propia entidad describe XHTML como "un puente a la WWW del futuro", en el que se procur especialmente disear un lenguaje de ltima generacin para los documentos de la Web, sin dejar obsoleto lo que ya ha sido publicado en ese medio

Por todo esto el Interfaz del portal BuscaEmpleo se ha diseado cumpliendo los criterios de accesibilidad de prioridad 1 y 2 (Ver Anexo, Mapa de puntos de Verificacin), logrando un nivel de adecuacin Doble A (AA). Y todas las pginas del sistema han sido escritas en XHTML Bsico, de tal modo que sean accesibles por la mayor parte de clientes Web para que pueda ser consultado desde todos los dispositivos posibles.

Respecto a la representacin grfica del portal se han utilizado hojas de estilos (CSS) para obtener un sistema visualmente agradable permitiendo a su vez fcil modificacin posterior, si fuese necesario.

Reduccin de Latencia
Uno de los problemas ms importantes que se presentan en la implementacin de este sistema es la gran latencia de las operaciones, los tiempos de espera son muy altos para tratarse de una aplicacin Web, lo que puede derivarse en que el usuario que interacta con la aplicacin llegue a pensar que la conexin se ha perdido y vuelva a realizar la misma peticin,

Jorge Molinero Muoz

Pgina 101

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

o simplemente que deje de utilizar el sistema debido a que no est dispuesto a esperar tanto tiempo para recibir la respuesta.

Ciertamente, los tiempos de consulta, son altos, pero esta latencia est completamente justificada, pues el proceso de consulta es complejo y no depende nicamente de la eficiencia del sistema. Ya que tambin est asociado a la disponibilidad de los portales de empleo con los que se interacta. De modo que si los portales tardan en servir su respuesta, dichos tiempos se ven reflejados en la latencia de respuesta del sistema.

Para corregir este problema se han tomado mltiples iniciativas: ? Interaccin concurrente con portales de empleo. ? ? Limitacin del tiempo de espera para la obtencin de la respuesta del portal ? ? Implementacin del proceso de consulta lo ms eficiente posible. ? ? Creacin de una cach de consultas. ?

Interaccin concurrente con portales de empleo

Para la interaccin del sistema con los portales de empleo, se han utilizado hilos de ejecucin, de tal modo que cada hilo (Thread) hace una consulta a un portal de empleo consiguiendo solapar los tiempos de espera de respuesta de los portales.

Para medir esta reduccin, se han utilizado bsquedas completas (todos los resultados) de provincias en la cual hay muchos puestos de trabajo, y se ha desactivado el mdulo de memoria cach.

Bsqueda

Tiempo sin concurrencia

Tiempo con concurrencia 47 segundos 24 segundos 19 segundos

Reduccin

JAVA en Madrid VISUAL en Madrid SQL en Madrid

57 segundos 30 segundos 25 segundos

82 % 80 % 78 %

Tabla 10 Reduccin de Tiempos con Concurrencia

Con este procedimiento se consigui una reduccin del tiempo espera de aproximadamente un 20%.

Limitacin del tiempo de espera para la obtencin de la respuesta del portal

Otra decisin que se tomo para la implementacin del sistema es que era ms importante la reduccin del tiempo de espera que el hecho de que la respuesta del portal fuese

Jorge Molinero Muoz

Pgina 102

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

completa. Esta decisin se apoy en la idea de que los usuarios probablemente valoren ms la fluidez de la interaccin con el sistema que la completitud de las respuestas de este. Pese a todo esto, los tiempos limite de espera de respuesta son lo suficientemente altos como para obtener la respuesta de todos los portales, de tal modo que nicamente se desestimar la consulta de un portal cuando este tenga algn problema y tarde ms de lo habitual en responder.

Implementacin del proceso de consulta lo ms eficiente posible.

Respecto a esta iniciativa simplemente hay que destacar que se ha evitado en todo lo posible realizar operaciones costosas en tiempo, y minimizando el nmero de comprobaciones y chequeos.

Otra lnea de actuacin llevada a cabo ha sido evitar en todo lo posible el acceso a disco, es decir, trabajar mayormente con informacin contenida en la memoria del servidor.

Creacin de una cach de consultas.

Una vez se ha utilizado el sistema, rpidamente se percibe que la gran mayora de las bsquedas realizadas son siempre las mismas, en unas provincias muy determinadas donde hay mucho ms trabajo como puede ser Madrid, Barcelona, Bilbao, etc. y de unas tecnologas concretas que son mucho ms demandadas como puede ser JAVA, ORACLE, VISUAL, etc..

Por este motivo se decidi realizar una pseudo-cach capaz de anticiparse a las peticiones de los usuarios, precalculando las bsquedas frecuentes de tal modo que cuando un usuario vaya a realizar una consulta, la respuesta ya haya sido calculada y no tenga que esperar, pues se coge directamente de la cach.

Este mecanismo de cach, ha resultado ser muy eficiente reduciendo los tiempos de bsqueda de manera muy considerable.

A continuacin se realiza un clculo de la estimacin de tiempos de las bsquedas, todas ellas simples (de la primera pgina de resultados).

Caso 1

Probabilidad de que una bsqueda unitaria, es decir de una tecnologa en concreto se encuentre en cach 50%

Tiempo de bsqueda real: 3 seg.

Jorge Molinero Muoz

Pgina 103

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Tiempo de bsqueda unitaria en cach: 1 seg.

Tabla 11 Reduccin de Tiempos con Cach (50% de acierto)

Tipo de bsqueda

Tiempo medio de espera sin cach.

Tiempo medio de espera con cach. 2 4 6

Reduccin del tiempo de espera. 33 % 33 % 33 %

Unitaria Doble Triple

3 6 9

Se observa que se reduce el tiempo medio de espera en un 33%

Caso 2

Si la probabilidad de que una bsqueda unitaria se encuentre en cach es del 75%

Tabla 12 Reduccin de Tiempos con Cach (75% de acierto)

Tipo de bsqueda

Tiempo medio de espera sin cach.

Tiempo medio de espera con cach. 1.5 3 4.5

Reduccin del tiempo de espera. 50 % 50 % 50 %

Unitaria Doble Triple

3 6 9

Se observa que se reduce el tiempo medio de espera en un 50%

Otras Caractersticas: Escalabilidad, disponibilidad, concurrencia, reutilizacin, mantenimiento, portabilidad.


Escalabilidad
Una caracterstica que se ha cumplido en todo momento es que el sistema sea escalable, es decir fcilmente ampliable, dando la posibilidad de agregar nuevos portales de empleo sin necesidad de hacer grandes desarrollos.

Jorge Molinero Muoz

Pgina 104

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Para ello se ha buscado que la aplicacin sea todo lo parametrizable posible. Existen unos ficheros situados en la carpeta ini con los cuales se pueden agregar ms portales de empleo. ? provincias.ini Indica los portales con los que trata el sistema y contiene una serie de ? cdigos asociados a cada portal, para poder realizar las peticiones http con los argumentos correctos. ? portal.ini Cada portal tiene un fichero de configuracin en la cual aparece entre otros ? parmetros, las expresiones XPath necesarias para indexar la informacin relevante de las pginas de resultado de las bsquedas. ? empresas.ini Indica los portales con los cuales el sistema es capaz de buscar empresas. ? ? portalEmpresa.ini Al igual que con portal.ini, existe un fichero de configuracin asociado a ? cada portal, con las expresiones XPath necesarias para indexar la informacin relativa a la bsqueda de empresas.

Otro aspecto importante que se debe tener en cuenta de cara a la escalabilidad es que cada portal tiene una serie de scripts en WebL, cuyo objetivo es realizar las consultas a los portales. Los scripts asociado a cada portal son: ? portal.webl Realizan la peticin de bsqueda, de tal modo que nicamente se descargan ? al servidor la primera pgina de resultados, a fin de ofrecer al usuario un tipo de bsqueda ms rpida. ? portalM.webl Scripts anlogo a los anteriores con la diferencia de que estos se descargan ? todas las pginas de resultados, para que despus sean tratadas por el sistema, de tal modo que sea posible ofrecer al usuario una respuesta lo ms completa posible. ? portalEmp.webl Realizan la peticin de bsqueda de empresas, para descargarse todas ? las pginas de respuesta.

Respecto al interfaz, se puede cambiar fcilmente la imagen de la aplicacin, es decir las pginas html que se devuelven al cliente. Para realizar estos cambios nicamente hay que cambiar las plantillas que usa el sistema. Estas plantillas son ficheros XSL, que indican como se debe presentar la informacin al usuario.

Disponibilidad
El sistema en principio se encuentra disponibles para acceder a l, va http, las 24 horas del da. Para ofrecer esta garanta, se ejecuta peridicamente un script gracias a la utilidad crontab que comprueba si el servicio web est activado, y en caso de no ser as vuelve a arrancar el Tomcat.

A continuacin se muestra el script que realiza esta operacin:

export JAVA_HOME = ..

Jorge Molinero Muoz

Pgina 105

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

export CLASSPATH = .. if [ `ps -ef | grep -v 'grep'| grep 'jmoli' | grep '/usr/lib/j2se/1.4/bin/java Djava.endorsed.dirs=/home/apt/jmoli/programas/jakarta-tomcat-4.1.24/common/endorsed classpath /usr/lib/j2se/1.4/lib/tools.jar:/home/apt/jmoli/programas/Tidy.jar' | wc -l` -lt 1 ]; then /home/apt/jmoli/programas/jakarta-tomcat-4.1.24/bin/startup.sh & fi

El funcionamiento de este script es muy sencillo, se limita a establecer las variables de entorno JAVA_HOME y CLASSPATH y mira los procesos que estn corriendo. Si no existe un proceso Jakarta-Tomcat, lanza el script de arranque del Tomcat.

Esta disponibilidad 100% no es posible garantizarla. Por lo que el servicio de la aplicacin puede verse interrumpido por los siguientes motivos:

? Circunstancias excepcionales como ataques de virus o hackers, software de terceros, ?

incendio, inundacin, boicot o escasez de energa y recursos necesarios para la prestacin del servicio.
? Que el estado de la red de la universidad no se encuentre en correcto funcionamiento. ? ? Que la propia mquina fsica en la cual corre el sistema no funcione correctamente o ?

que sea reiniciada manualmente por personal de la universidad.


? Mantenimiento de emergencia, mantenimiento programado o actualizacin del sistema. ? ? Problemas de DNS (domain name system) ? ? Problemas relacionados con navegadores, DNS, cach o cualquier otro que hagan ?

parecer al usuario que la aplicacin no esta disponible mientras que otros si puedan acceder.

Concurrencia
El sistema cumple con las caractersticas de una aplicacin concurrente [27], ya que permite el acceso simultneo de varios usuario. Esta propiedad es inherente a la arquitectura y a la tecnologa utilizada para su implementacin, por lo que durante el desarrollo en principio no fue necesario prestar especial atencin a dicho aspecto.

La problemtica surgi cuando se utiliz WebL, ya que el mecanismo de transmisin resultados entre WebL y el ncleo del sistema era por medio de ficheros html, de tal modo que las peticiones simultneas de los usuarios provocaban que los resultados recogidos no fuesen los correctos. Para solventar dicha situacin se opt por mandarle como argumento al script WebL un nmero aleatorio, que identificase la sesin, de tal modo que los ficheros que se

Jorge Molinero Muoz

Pgina 106

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

utilizaban, concatenaban en el nombre el identificador de la sesin, evitando que se produjera el solapamiento entre las peticiones.

En el proceso de interaccin con los portales de empleo, tambin se utilizaron mltiples hilos de ejecucin por motivos de eficiencia. Dicho proceso se caracteriza por tener unos tiempos de espera muy largos, generados por el tiempo de respuesta de los portales y por el trfico de la red. Estos tiempos, gracias a la concurrencia se podan solapar, de tal modo que el sistema puede realizar otras operaciones, o operaciones parciales, mientras espera a que los portales de empleo le respondan. A estos hilos de ejecucin, se les otorga un determinado tiempo de espera. Y cuando dicho tiempo a expirado, se continua la ejecucin del sistema sin el resultado asociado a dicho script. Con este mecanismo se evita que el sistema se quede pendiente de las respuestas de los portales durante ms tiempo del debido.

Robustez
El sistema ha sido sometido a una batera de prueba cuyo objetivo era dotar al sistema de la suficiente robustez como para poder considerarlo una aplicacin comercial.

Los puntos crticos de la aplicacin son los nexos de unin con los portales de empleo, ya que pueden cambiar del da a la noche. Estos cambios pueden ser de tres tipos:

Tipo de Cambio Cambio de imagen del portal

Descripcin Modificacin de los colores, las fuentes, las imgenes...

Cambio de estructura del portal.

Modificacin de la distribucin de la informacin en el portal, cambiando las tablas, los frames...

Cambio de funcionamiento Interno, con la misma funcionalidad

Utilizacin de otras tecnologas, de los parmetros que reciben las aplicaciones que corren en los servidores...

Cambio del funcionamiento del portal, con distintas funcionalidades

Porque los resultados de bsquedas se den agrupados, o requieran de una validacin previa por parte del usuario...

Tabla 13 Tipos de Cambios

Salvo los cambios de imagen, que han sido contemplados durante el desarrollo de la aplicacin para que en el caso de que se den no afecten a la aplicacin, la mayora de los cambios repercutiran en el correcto funcionamiento del sistema.

Jorge Molinero Muoz

Pgina 107

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

De todos modos, se ha comprobado que estos portales no son sometidos a apenas ningn cambio, ya que durante todo el proceso de desarrollo del proyecto, no se ha modificado ningn portal de empleo, y no se recuerda por parte de los desarrolladores, que hayan sido modificados desde su aparicin en la World Wide Web.

El principal motivo por el que estos portales no sufren apenas cambios, radica en: ? El funcionamiento de estos es ms que aceptable, por lo que no parece necesario ? realizar mejoras de eficiencia. ? El pblico al cual va dirigido, pese a ser mayoritariamente personas con conocimientos ? de informtica, gracias a la aceptacin de los portales est muy diversificado, de modo que no a todas las personas que utilizan estos portales les resultaran cmodo adaptarse a un cambio del portal. ? Dichos portales han tenido una gran aceptacin por lo que no se arriesgan a modificar ? su imagen.

De todos modos, con la idea de prever todos los posibles cambios, se han implementado los scripts de consulta y los procesos de extraccin de informacin con vista a que el acoplamiento con los portales de empleo sea el mnimo posible.

Para evitar el acoplamiento del sistema con los portales de empleo, la extraccin de informacin se ha basado en aquellos atributos menos proclives a cambiar:

Atributos Robustos class name id action

Atributos Inestables table tr td width height cellpading cellspacing color bgcolor align valign

Tabla 14 Tipos de Atributos

A continuacin se definen una serie de reglas que se han seguido para que el sistema perciba lo mnimo posible los cambios de los portales: ? Para obtener los formularios se han utilizado los atributos action, ya que de este modo ? nicamente afectaran al sistema los cambios de funcionamiento interno, es decir que cambien las aplicaciones que tratan las peticiones de los usuarios. De este modo, se asegura obtener el formulario correcto, pese a que cambie el aspecto e incluso la estructura del portal. ? Para obtener los campos de un formulario, el sistema utiliza los nombre de estos, en ? lugar de la posicin relativa que ocupan en el formulario, de tal modo que al igual que

Jorge Molinero Muoz

Pgina 108

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

con la regla anterior, el sistema nicamente se ve afectado cuando en los portales se producen cambios internos. ? Evitar en la medida de lo posible indexar los contenidos en funcin de los atributos que ? anteriormente se han catalogado como inestables. A fin de evitar que un cambio de imagen del portal afecte a la extraccin de informacin.

Pese a la importancia de cumplir las reglas definidas anteriormente, en la extraccin de la informacin asociada a las bsquedas ha sido imposible basarse nicamente en los atributos robustos, por lo que en algunos casos el procesos de obtencin de informacin se ha tenido que apoyar en atributos inestables.

Para solventar esta fuente de inestabilidad, se ha implementado el sistema de tal modo que los scripts, tanto de consulta (WebL) como de extraccin de informacin (Expresiones Xpath), son independientes del sistema, de modo que pueden ser modificados sin necesidad de cambiar el cdigo fuente de la aplicacin.

Otro punto conflictivo que podra comprometer la robustez del sistema son las deficiencia en el servicio que ofrezcan los portales, los cuales pueden no funcionar en un momento determinado o que los tiempos de respuesta se dilaten demasiado en un momento dado porque tengan algn problema.

El sistema, con el objetivo de corregir este aspecto, tiene asociado un time-out a cada uno de los portales. De tal modo que si estos se retrasan demasiado en su respuesta, o simplemente no funcionan y por lo tanto no responden, la aplicacin los ignora ofreciendo el resultado de cach si fuese posible, y en el caso de no serlo, dando al usuario una respuesta parcial. Ofreciendo una imagen de completa robustez.

Reutilizacin
La reutilizacin es una disciplina cuyo objetivo es reducir costes en desarrollo y mantenimiento de un Sistema.

Uno de los conceptos principales de la reutilizacin es la evolucin, el sistema debe ser variable, flexible. En el momento que la aplicacin tenga una estructura rgida, no se podr adaptar a un entorno cambiante, por lo que al trasladarla a cualquier otro entorno que no sea el original, generar muchos errores.

Jorge Molinero Muoz

Pgina 109

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Y para permitir dicha evolucin es imprescindible realizar una labor de abstraccin, este es realmente el pilar ms importante de la reutilizacin, ya que permite que el sistema sea flexible.

Dicha labor de abstraccin ha sido una de las tareas principales en el desarrollo del proyecto, puesto que desde el anlisis y el diseo se le ha otorgado gran importancia al hecho de identificar aquellos patrones de diseo que se daban en el sistema. Puesto que la aplicacin de dichos patrones garantiza una eficiencia y estabilidad ya comprobada. Por lo que se puede asegurar que el concepto de reutilizacin se ha aplicado desde el primer momento.

Otro aspecto que demuestra que en el proyecto se ha aplicado el concepto de reutilizacin, es la utilizacin de mltiples libreras (ficheros jar), todas ellas estandarizadas y cuyo funcionamiento se encuentra ms que comprobado. Estas libreras son: ? Jtidy.jar. Permite obtener un fichero xml bien estructura a partir de una pgina html que ? puede no estar correctamente formada, con etiquetas incorrectamente colocadas. ? Xalan.jar: Aporta al sistema la capacidad de trabajar con ficheros xml, aplicndole ? transformaciones con hojas de estilos xsl, as como la posibilidad de indexar la informacin con expresiones Xpath. ? Jsdk.jar: Proporciona a la aplicacin la capacidad de recibir peticiones http y responder ? a estas.

Pero el concepto de reutilizacin, no supone que se tengan que utilizar elementos externos y estandarizados. Se pueden implementar componentes del sistema, con funcionalidades muy tiles y demandadas habitualmente, con la finalidad de que puedan ser utilizadas en nuevos sistemas anlogos al proyecto. Dichas funcionalidades se han implementado en las clases que componen el paquete .nucleo.comunes

Mantenimiento
BuscaEmpleo, es un sistema autnomo, que en principio no requiere de un gran mantenimiento, de modo que dicha actividad est nicamente destinada a cubrir los posibles errores motivados por los cambios en los portales de empleo utilizado.

Con el objetivo de que el mantenimiento del sistema sea lo ms sencillo posible, se ha realizado una completa documentacin de este, facilitando en todo lo posible la compresin del

Jorge Molinero Muoz

Pgina 110

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

sistema y permitiendo agilizar los desarrollos necesarios para realizar futuras ampliaciones de la aplicacin

Otro argumento a favor de simplificar el mantenimiento es el hecho de que se hayan implementado mdulos comunes (Ver apartado de reutilizacin), evitando utilizar cdigo redundante, cuya modificacin suele ser conflictiva.

Un aspecto a destacar relativo al mantenimiento, es la versatilidad de la aplicacin referente a su parametrizacin. Puesto que todos los aspectos proclives a ser modificados en un futuro se puede cambiar por medio de parmetros evitando la necesidad de alterar el cdigo fuente de la aplicacin. Es decir, en el caso de que sea necesario adaptar el sistema para que se ajuste a las modificaciones realizadas en un portal de empleo, nicamente hay que modificar los scripts y los ficheros de configuracin asociados a dicho portal.

En el supuesto caso de en la aplicacin se haya producido algn error, y esta no tuviese el comportamiento adecuado frente a las peticiones de los usuarios, se han ideado una serie de ficheros de logs, en los cuales quedara reflejado cualquier error, con el fin de facilitar su identificacin y su posterior correccin.

A continuacin se muestra una tabla con los ficheros de logs que genera el sistema y la funcionalidad a la cual estn asociados.

Ficheros de Logs
$HOME_TOMCAT/logs/catalina.out

Fichero de logs, generado por el servidor web, en el cual tambin se registran los errores que se produzcan en la aplicacin en respuesta a las peticiones de los usuarios.

$PROYECTO/log/<portal>.out

Salida estndar de los scripts asociados a cada portal, que se encargan de interactuar con los portales de empleo, con el objetivo de descargarse la pgina HTML de respuesta de los procesos de bsqueda.

$PROYECTO/log/<portal>.log

Salida de error de los scripts asociados a cada portal, que se encargan de interactuar con los portales de empleo, con el objetivo de descargarse la pgina HTML de respuesta de los procesos de bsqueda.

$HOME_APP/misscripts/actualizarCache.txt Fichero en el cual se almacenan los logs generados

por la aplicacin en el proceso de lanzamiento comandos. Proceso ejecutado peridicamente por la

Jorge Molinero Muoz

Pgina 111

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

comandos. Proceso ejecutado peridicamente por la utilidad crontab.


$HOME_APP/misscripts/log.txt

Errores generados en el proceso de lanzamiento de comandos asociados al tratamiento de las pginas con Jtidy.
Tabla 15 Ficheros de Logs

Las acciones que se deben realizar en el caso de que se detecte un comportamiento anmalo en el sistema son:

1.

Observar si el error proviene de la aplicacin o del entorno, es decir, podra darse el caso de que el sistema no responda porque la red de la universidad no est disponible, ya sea por un problema tcnico o por mantenimiento de esta.

2.

Conectarse va ssh a la mquina en la cual se encuentra hospedada la aplicacin.

3.

Comprobar que el servidor Tomcat funciona correctamente estudiando los logs que genera. En estos logs ya se tendr una idea bastante aproximada de cual ha sido el motivo de que la aplicacin no funcione correctamente.

Si el problema fuese que el sistema no ofrece apenas resultados en su respuesta. El origen de dicha situacin podra ser porque los portales de empleo, hayan modificado la presentacin de la informacin. Para solventarlo, nicamente sera necesario modificar las expresiones Xpath asociada a aquellos portales cuya imagen haya sido cambiada, para que obtenga los datos apropiados.

Portabilidad
Actualmente con la gran variedad de plataformas y sistemas operativos existentes y sin poder decidir cual de ellos es ms rpido y eficiente, no se debe vincular bajo ningn concepto el desarrollo de una aplicacin a un sistema operativo. Debido a que nadie puede garantizar que la plataforma que se utilice en un momento determinado, sea la definitiva de modo que en un futuro se deba migrar la aplicacin a otro sistema.

Previniendo esta situacin, se ha implementado un sistema prcticamente independiente de la plataforma. Tal es dicha independencia, que el entorno de desarrollo utilizado han sido ordenadores personales con Windows98 y Windows XP, y el entorno de produccin es una mquina con un sistema operativo Linux.

Jorge Molinero Muoz

Pgina 112

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

La portabilidad del sistema es garantizada gracias a que el sistema ha sido implementado con JAVA (Un lenguaje independiente de la plataforma), que permite realizar aplicaciones sin necesidad de tener en cuenta el sistema operativo sobre el cual se ejecutarn dichos programas.

Otro caracterstica del sistema que permite asegurar su portabilidad, es el hecho de que todos los recursos que necesita el sistema, como la situacin de los scripts, los ficheros xml, la cach, las pginas html, se encuentra parametrizados.

Por tanto, en el caso de que se desee migrar el proyecto a otro servidor, nicamente sera necesario copiar todos los componentes de la aplicacin y modificar los ficheros de configuracin situados en el directorio ini, para que el sistema pueda direccionar todos los recursos.

Los nicos requerimientos de la plataforma para que pueda hospedar el sistema son: ? Que tenga conexin a Internet y un cliente de correo, pues la aplicacin se ha apoyado ? en la utilidad mail de Linux. ? Que disponga de alguna utilidad que permita realizar programacin de tareas, de cara ? al lanzamiento de los comandos.

Diagrama de Consulta
El proceso de consulta se corresponde con el siguiente grfico:

Jorge Molinero Muoz

Pgina 113

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Navegador HTTP

Navegador

Navegador HTTP

JSDK

MEDIADOR

SHELL

HTML

WRAPPER HTTP Portal 1

WRAPPER

WRAPPER HTTP

Portal 2

Portal 3

Figura 34 Arquitectura Mediador

En el grfico se pueden observar dos flujos de informacin, uno de ellos descendente que representa como la peticin realizada por los usuarios llega a los portales de empleo, y otra ascendente, que indica como la respuesta del portal de empleo es entregada al usuario.

Respecto al flujo descendente de informacin, se observa como los navegadores se comunican con el sistema mediante Servlets (JSDK). Esta comunicacin es muy flexible, pues permite que acceder al sistema sin necesidad de realizar una instalacin de la aplicacin en el puesto cliente. Despus se transmite la consulta a los Wrappers(envoltorios) mediante un comando (por medio de la shell del sistema operativo). Y finalmente los Wrappers traducen dicha consulta a cada portal.

En cuanto al flujo de informacin ascendente, los portales responden a la peticin http, de tal modo que los wrappers obtienen la pgina html con el resultado de la consulta. Dicha pgina es tratada por el sistema, el cual extrae la informacin y le da un formato homogneo para finalmente entregrsela al usuario.

Hay que destacar en todo el proceso, que la parte comprendida entre el mediador y los portales de empleo se ejecuta de manera concurrente, a fin de obtener una mayor eficiencia. Pues en este momento la aplicacin se queda pendiente de la respuesta de los portales de

Jorge Molinero Muoz

Pgina 114

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

empleo y de la velocidad con la cual estos son capaces de responder a las peticiones, pudiendo retardar en gran parte la respuesta de la aplicacin al usuario.

Respecto al funcionamiento de los Wrappers, estos se encuentran implementados en WEBL, estos se conectan al correspondiente portal de empleo y se descargan la pgina principal, una vez hecho esto, rellenan los formularios necesarios para la realizacin de la bsqueda con los parmetros que se le hayan transmitido al Wrapper y se emiten una peticin http al portal. De tal modo que este responde con el resultado de la bsqueda. El Wrapper captura dichos resultados y los almacena en pginas html para que posteriormente sean tratados por la aplicacin para extraer la informacin.

Jorge Molinero Muoz

Pgina 115

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

5 Pruebas
Para verificar el correcto comportamiento del sistema, fue sometido a una batera de pruebas, cuyo objetivo era descubrir cualquier error de la aplicacin o cualquier situacin anmala que inicialmente no hubiese sido contemplada.

Cada registro de la batera esta compuesto por la prueba que se ha realizado, el resultado de dicha prueba y en el caso de que se haya producido algn error, su descripcin y su posterior solucin. En este documento, simplemente se han reflejado las pruebas bsicas, aparte de estas, se han realizado muchas otras relacionadas con la navegacin y destinadas a la comprobacin de que los resultados ofrecidos por el portal eran los adecuados.

Inicialmente se muestran las pruebas relacionadas con la bsqueda, por parte de un usuario annimo.

Bsqueda de Puestos de Empleo Prueba y Descripcin Bsqueda Simple. Consiste en la realizacin de una bsqueda unitaria (Una nica tecnologa y indicando una provincia) Visualizacin de todos los resultados de una bsqueda Simple. Una vez el usuario a realizado una bsqueda simple, pulsa el botn de ver todos los resultados, y le aparecen todos los puestos de trabajos ofertados por los portales de empleo. Bsqueda Compuesta, unin de resultados. Consiste en la realizacin de una bsqueda indicando que se desean los puestos de trabajos asociados a dos o ms tecnologas, y pidiendo que realice la unin de estos (JAVA + XML + SQL) Visualizacin de todos los resultados de una bsqueda compuesta. Una vez el usuario a realizado una bsqueda compuesta de unin, pulsa el botn de ver todos los resultados, y le aparecen todos los puestos de trabajos ofertados por los portales de empleo. Bsqueda Compuesta, interseccin resultados. Consiste en la realizacin de una bsqueda indicando que se desean los puestos de trabajos asociados a dos o ms tecnologas, y pidiendo que realice la interseccin de estos (JAVA & XML & SQL) Visualizacin de todos los resultados de una bsqueda compuesta. Una vez el usuario a realizado una bsqueda compuesta de interseccin, pulsa el botn de ver todos los resultados, y le aparecen todos los puestos de trabajos ofertados por los portales de empleo. Realizacin de una bsqueda indicando Localidad. La localidad consiste en un filtro que muestra nicamente los puestos de dicho lugar. Acceso al Puesto Ofrecido por la Bsquedas. OK OK OK OK OK OK OK Result. OK

Jorge Molinero Muoz

Pgina 116

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Tabla 16 Pruebas - Bsqueda de Puestos de Trabajos

Bsqueda de Empresas Prueba y Descripcin Bsqueda de una empresa. Acceso a una empresa ofrecidas como resultado de una bsqueda
Tabla 17 Pruebas - Bsquedas de Empresas

Result. OK OK

Una vez se han realizado las pruebas asociadas a las bsquedas que pueden realizar los usuarios annimos, se presentan las pruebas relacionadas con el perfil privado.

Acceso al rea Personal Prueba y Descripcin Creacin de un nuevo usuario. Acceso al rea Personal por parte de un usuario no registrado. El sistema debe presentar un mensaje de error en el cual indica que el usuario no esta dado de alta. Acceso a pginas internas del Sistema sin haberse registrado anteriormente. Consiste en que un usuario mal intencionado desee acceder directamente a cualquier de los servlet que componen la aplicacin sin haberse validado anteriormente. El sistema debe presentar un mensaje de error. Acceso al rea Personal por parte de un usuario registrado. Salida del rea privada del sistema pulsando el botn desconectar.
Tabla 18 Pruebas - Acceso al rea Personal

Result. OK Ok

OK

OK OK

A continuacin se presentan las pruebas relacionadas con las funcionalidades que aporta el sistema a un usuario registrado.

Funcionalidades del rea Personal Prueba y Descripcin Insercin y modificacin de los datos personales. Creacin, eliminacin de alertas pertenecientes al usuario registrado. Recepcin de las alertas establecidas en el sistema en el correo electrnico del usuario registrado. Creacin, eliminacin de controles pertenecientes al usuario registrado. Comprobacin de que los controles establecidos por el usuario realmente realizan un seguimiento de la bsqueda indicada. Visualizacin de los puestos asociados a un control del usuario. Muestra el seguimiento que se esta realizando por parte de dicho control. OK OK OK Result. OK OK OK

Jorge Molinero Muoz

Pgina 117

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Agregacin de una oferta de empleo al listado de puestos asociados al usuario Modificacin del estado de una oferta de empleo en el listado de puestos pertenecientes a un usuario Eliminacin de una oferta del listado de puestos de trabajo.
Tabla 19 Pruebas - Funcionalidades del rea Personal

OK OK

OK

Funcionalidades de la Bsqueda Inteligente Prueba y Descripcin Bsqueda Simple. Consiste en la realizacin de una bsqueda unitaria (Una nica tecnologa y indicando una provincia) Visualizacin de todos los resultados de una bsqueda Simple. Una vez el usuario a realizado una bsqueda simple, pulsa el botn de ver todos los resultados, y le aparecen todos los puestos de trabajos ofertados por los portales de empleo. Bsqueda Compuesta, unin de resultados. Consiste en la realizacin de una bsqueda indicando que se desean los puestos de trabajos asociados a dos o ms tecnologas, y pidiendo que realice la unin de estos (JAVA + XML + SQL) Visualizacin de todos los resultados de una bsqueda compuesta. Una vez el usuario a realizado una bsqueda compuesta de unin, pulsa el botn de ver todos los resultados, y le aparecen todos los puestos de trabajos ofertados por los portales de empleo. Bsqueda Compuesta, interseccin resultados. Consiste en la realizacin de una bsqueda indicando que se desean los puestos de trabajos asociados a dos o ms tecnologas, y pidiendo que realice la interseccin de estos (JAVA & XML & SQL) Visualizacin de todos los resultados de una bsqueda compuesta. Una vez el usuario a realizado una bsqueda compuesta de interseccin, pulsa el botn de ver todos los resultados, y le aparecen todos los puestos de trabajos ofertados por los portales de empleo. Realizacin de una bsqueda indicando Localidad. La localidad consiste en un filtro que muestra nicamente los puestos de dicho lugar.
Tabla 20 Pruebas - Funcionalidades de la Bsqueda Inteligente

Result. OK

OK

OK

OK

OK

OK

OK

Jorge Molinero Muoz

Pgina 118

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

6 Historial del Proyecto


Este captulo presenta las distintas fases en las que se divide la implementacin del proyecto, indicando para cada una de las fases, el tiempo que se empleo en llevarla a cabo. Dicho tiempo, es una estimacin aproximada, ya que las tareas de algunas fases tuvieron que ser adaptadas posteriormente.

1.

Toma de Contacto con Webl

El primer paso en la realizacin del sistema, fue realizar un anlisis de lenguaje WebL. El objetivo de la realizacin de dicho anlisis era familiarizarse con el lenguaje y descubrir el potencial de este como mecanismo de interaccin con la Web.

Para ello se ejecutaron los ejemplos disponibles con WebL y hicieron pruebas sencillas que rellenaban formularios y se descargaban los resultados.

Una vez se lleg a este punto, se evalu la conveniencia de la utilizacin de WebL para la implementacin del sistema o el uso de JAVA para crear el mdulo de interaccin con la Web, concluyendo a que sera ms ventajoso la utilizacin de WebL, debido a que ya aportaba una serie de utilidades, como el tratamiento de formularios o de sesiones, que podran ser necesarias ms adelante durante el desarrollo del sistema y que habra que implementarlas desde cero si se decidiese por utilizar nicamente JAVA.

Esta fase dur aproximadamente cinco das.

2.

Anlisis de los portales de empleo ptimos para ser tratados

Una vez se hizo un estudio del lenguaje WebL, se procedi a la realizacin de un anlisis detallado de los diversos portales de empleo disponibles en las World Wide Web.

El objetivo del anlisis era descubrir los portales que: ? Tenan ms aceptacin en los potenciales usuarios del sistema. Para lo cual se ? procedi a realizar un pequeo estudio sociolgico. ? Disponan de una mayor oferta de puestos de trabajo. ? ? Respetan una estructura ms homognea y simple en la presentacin de los resultados ? de bsqueda de cara a que su tratamiento sea lo ms sencillo posible.

Jorge Molinero Muoz

Pgina 119

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

? Se observ el cdigo que conformaban las respuestas de los portales a fin de constatar ? que realmente los portales seleccionados eran fcilmente tratables mediante mecanismos automticos.

El resultado de este anlisis es que los portales ms proclives a ser utilizados por el sistema seran: ? Infojobs. Que es el portal con mayor aceptacin entre el pblico objetivo que utilizaran el ? sistema. http://www.infojobs.net [1] ? Monster. El portal lder en empleo internacionalmente. http://www.monsters.es [2] ? ? Tecnoempleo. El segundo portal con mayor aceptacin, con la diferencia de que su oferta ? es mucho menor que el anterior. http://www.tecnoempleo.com [3] ? TodoTrabajo. Portal que permite diversificar en cierto modo el pblico al cual estar ? destinado el sistema puesto que los anteriores portales bsicamente ofrecen puestos de trabajos relacionados con las tecnologas. http://www.todotrabajo.com [4]

Para llevar a cabo este anlisis fueron necesarios 15 das.

3.

Realizacin de una bsqueda simple con Webl

Una vez se tomo la decisin de los portales que se iban a integrar en el sistema y a tecnologa que se iba a utilizar se procedi a la realizacin de una bsqueda simple, nicamente de la primera pgina de resultados del portal de Infojobs, y a su posterior almacenamiento en un fichero para su posterior tratamiento.

Ya en este momento, se percibi un problema, los formularios de bsqueda de los puestos de trabajos eran excesivamente sencillos, y cuando se intent realizar la bsqueda avanzada, no todos los portales de empleo ofrecan los mismos campos de bsqueda y cuando se detallaba un poco la bsqueda poniendo la remuneracin mnima o el tipo de contrato, nos encontrbamos con que apenas se ofreca un resultado. Por lo que se desestim la utilizacin de los campos de la bsqueda avanzada.

La bsqueda simple requiri aproximadamente 10 das.

4.

Implantacin de la arquitectura. Tomcat

Una vez ya se dispona del conocimiento necesario para interactuar con los portales de empleo, se procedi a la implantacin de la arquitectura necesaria para albergar el sistema.

Jorge Molinero Muoz

Pgina 120

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Los requerimientos de dicha arquitectura son que diesen la posibilidad de contener aplicaciones, es decir que permitiesen la ejecucin de servlets.

Finalmente se opt por implantar un servidor Tomcat, motivado por su naturaleza gratuita. Respecto a su posterior configuracin. Ver anexo: Instalacin de Aplicacin.

Para implantar la arquitectura bsica nicamente se dedicaron 3 das.

5.

Adaptacin del resultado de la bsqueda a formato xml

El siguiente paso, fue el tratamiento de la respuesta ofrecida por el portal de empleo, con el objetivo de obtener un documento con la informacin correctamente estructurada en formato xml para facilitar en la medida de lo posible su tratamiento automtico.

Para ello se decidi primero convertir la pgina html de resultados en un documento DOM, utilizando la librera Jtidy, de tal modo que la pgina html se encontrase estructurada como un fichero xml. Y despus extraer de dicho documento la informacin de los puestos de trabajo mediante expresiones XPath, de tal modo que fuese fcilmente configurable para prever posibles cambios de la estructura de la pgina html de resultados, consiguiendo que el sistema sea escalable de cara a poder extenderlo fcilmente con la agregacin de ms portales de empleo. Puesto que nicamente sera necesario ajustar las expresiones XPath a cada uno de los portales.

Esta fase dur aproximadamente 15 das.

6.

Implementacin de la llamada a Webl y presentacin del fichero xml de resultado a xhtml

La siguiente accin fue realizar la peticin WebL desde un sistema realizado con Java. Para esto se plantearon dos opciones: ? Utilizar el API que proporciona WebL para desde el sistema hacer las peticiones ? directamente ? Utilizar scripts en WebL. ?

Finalmente se decidi utilizar scripts en WebL, debido a que de este modo el sistema sera ms configurable permitiendo su posterior ampliacin con otros portales de empleo. Para ejecutar dichos scripts, se opt por la utilizacin de la clase Process de Java.

Jorge Molinero Muoz

Pgina 121

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Respecto a la presentacin de la informacin, aprovechando que esta se encontraba correctamente estructurada en un fichero xml, se decidi por presentarla directamente aplicndole hojas de estilo XSL. Dando opcin a modificar fcilmente la presentacin.

Esta fase dur unos 10 das.

7.

Implementacin de la bsqueda para los dems portales de empleo.

Una vez llegados al punto en el cual era posible realizar una peticin de bsqueda y ver el resultado de esta desde el sistema BuscaEmpleo. Se procedi a la ampliacin del sistema mediante la agregacin de los dems portales de empleo, para lo cual se crearon nuevos scripts en WebL asociados a cada uno de los portales y la obtencin de las expresiones XPath que permitiesen extraer la informacin esencial de las pginas html de resultados de los portales.

Finalmente, se cre una clase que era capaz de realizar la unin de ficheros xml, para unificar los resultados de todos los portales, y as obtener una respuesta completa, homognea e independiente de su fuente.

La implementacin de las bsqueda para los dems portales requiri de 15 das aproximadamente.

8.

Implementacin del mdulo privado

Una vez el usuario del sistema ya poda realizar bsquedas en varios portales simultneamente, se procedi a la creacin de un rea privada con una serie de utilidades que slo estaran a disposicin de los usuarios que se registrasen en el sistema, y que facilitasen el proceso de bsqueda de trabajo.

a.

Datos Personales

Primero realiz un mdulo que permita aadir los datos personales, los cuales se almacenaban en el servidor en forma de ficheros xml, que podan ser tratados directamente por los servlets para mostrar la informacin en pantalla, permitiendo as que el usuario pudiese modificar ms adelante sus datos personales.

b.

Alertas

Jorge Molinero Muoz

Pgina 122

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

El siguiente paso fue la realizacin de un mdulo de gestin de alertas, de tal manera que el usuario especifique que bsquedas desea recibir peridicamente, y en que intervalo de tiempo, en su direccin de correo.

Respecto al envo de correos electrnicos, se opt por utilizar la utilidad crontab disponible en el servidor, y se respect el patrn command, de tal modo que cada alerta era un comando independiente.

c.

Puestos Asociados

Despus se realiz un mdulo que permitiese a los usuarios poder guardar en el servidor una lista de puestos de trabajo ofertados por las empresas evitndole el engorro de tener que anotar los puestos que le parecan interesantes. Ms delante de decidi dotar al sistema de un workflow de tal modo que los puestos de trabajo pudiesen tener diversos estados: puesto interesante, currculum vitae enviado, entrevista realizada o aceptado.

d.

Controles

Posteriormente se plante dotar al sistema de una pseudo-inteligenca. Para ello era necesario tener un registro de los puestos de empleo que los portales publicaban. Al seguimiento necesario para dicho registro, se le denomin control. Cada control consista en una bsqueda que se realizaba peridicamente con el objetivo de registrar los puestos de empleo asociado a dicha consulta. Por lo que se realiz el mdulo de gestin de controles y se implement dicha funcionalidad cumpliendo al igual que con las alertas el patrn command.

La implementacin del mdulo privado precis de unos 45 das de desarrollo.

9.

Implementacin de la bsqueda inteligente

Llegados a este punto se orient el desarrollo de la aplicacin a la implementacin del buscador inteligente que permitiese realizar consulta dando la posibilidad de eliminar en los resultados aquellos puestos que haban sido publicados en numerosas ocasiones, e incluso mostrar nicamente los puestos realmente nuevos, ya que los portales de empleo realizan publicaciones peridicas no permitiendo al usuario distinguir las nuevas ofertas.

Dicho desarrollo se apoy en el registro de las publicaciones de los portales obtenidas por el seguimiento que se realizaba por medio de los controles. De tal modo que para su

Jorge Molinero Muoz

Pgina 123

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

correcto funcionamiento era necesario haber establecido anteriormente los controles adecuados.

La inclusin del buscador inteligente acapar unos 20 das del desarrollo del proyecto.

10. Ampliacin de las opciones de bsqueda

Las siguientes acciones se destinaron a perfilar en lo ms posible la bsqueda de puestos de trabajo, minimizando en lo posible el tiempo que debera dedicar el usuario en revisar la respuesta ofrecida por el servidor.

a.

Bsqueda de todos los registros del portal

Hasta el momento, nicamente se trataba la primera pgina de respuesta del portal de empleo, mostrando al usuario una informacin sesgada e incompleta, que generalmente era aquella a la que los propios portales de empleo daban ms importancia.

Con el objetivo de evitar esta situacin, se decidi permitir la realizacin de una bsqueda de todos los puestos de trabajo, por medio de la descarga iterativa de todas las pginas de resultado del portal y su posterior agregacin.

b.

Agregacin de nuevos campos de bsqueda.

El problema que surgi de la realizacin de las bsquedas completas, es que el sistema ofreca una enorme cantidad de puestos de trabajo, de tal modo que su posterior estudio exiga un tiempo considerable. De cara a afinar ms la bsqueda, se aadi un campo de municipio, que permitiese filtrar los puestos que no pertenezcan a un municipio determinado con el fin de minimizar el nmero de resultados ofrecidos.

c.

Operaciones de unin e interseccin de los resultados de bsqueda.

Finalmente, con el objetivo de perfeccionar ms el proceso de bsqueda, se dot al sistema de la capacidad de realizar intersecciones y uniones de los resultados de las consultas.

Gracias a las intersecciones es posible obtener las ofertas de empleo que estn relacionadas con varias tecnologas, aportando un gran valor aadido al proceso de consulta.

Jorge Molinero Muoz

Pgina 124

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Por otro lado, de cara a poder ampliar el nmero de ofertas de una consulta, se posibilit la realizacin de uniones de bsquedas, de tal modo que se ampliaba el nmero de resultados que respondan a la misma consulta.

d.

Creacin de una memoria cach.

Llegados a este punto se percibi que el tiempo de respuesta del sistema se haba disparado, lo cual supona un gran problema de cara a su puesta en produccin.

Para solventar dicho problema, se implemento una memoria cach, que almacenase resultado de las bsquedas unitarias ms frecuentes en el sistema, de cara a que el sistema pudiese obtener las ofertas de empleo asociadas a dichas bsquedas sin necesidad de conectarse a los portales de empleo cuando el usuario haga una bsqueda.

La insercin de todas las funcionalidades que componen esta fase requiri de unos 45 das.

11. Bsqueda de empresas.

Con el objetivo de completar el servicio ofrecido por el sistema se decidi ampliar su funcionalidad, permitiendo realizar bsquedas de empresas, aprovechando el hecho de que varios portales (no todos) tambin ofrecan esa capacidad de consulta.

La implementacin del buscador de empresas, sigui un proceso anlogo al de consulta de puestos, reutilizando la mayor parte del cdigo fuente, de tal modo que su desarrollo se hizo en un corto espacio de tiempo.

La bsqueda de empresas llev unos 10 das de desarrollo.

12. Fase de pruebas

Llegados a este punto, se procedi a una etapa de pruebas consistente en realizar un uso intensivo de la aplicacin procurando cubrir todas las situaciones y casos de ejecucin con el objetivo de descubrir los fallos de implementacin.

La realizacin de la tarea de bsqueda consisti inicialmente en realizar operaciones de gestin con los mdulos individuales, y despus se realizaron pruebas de integracin, para observar el comportamiento de este como un todo.

Jorge Molinero Muoz

Pgina 125

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Las pruebas del sistema, a nivel global, se hicieron en 5 das.

13. Documentacin del proyecto.

Para finalizar el proyecto, se realiz la documentacin lo ms completa posible utilizando mltiples diagramas en UML, y comentando cada uno de los mdulos que lo forman.

Y finalmente la documentacin de todo el proyecto, fase que supuso globalmente la mayor cantidad de tiempo, se hizo en 90 das aproximadamente.

Balance de tiempos y esfuerzo.


A continuacin se presenta una tabla en la cual se indican los tiempos que conllevaron cada una de las fases del desarrollo del proyecto.

Fase Toma de Contacto con Webl. Anlisis de los portales de empleo ptimos para ser tratados. Realizacin de una bsqueda simple con Webl. Implantacin de la arquitectura. Tomcat. Adaptacin del resultado de la bsqueda a formato xml Implementacin de la llamada a Webl y presentacin del fichero xml de resultado a xhtml Implementacin de la bsqueda para los dems portales de empleo. Implementacin del mdulo privado. Implementacin de la bsqueda inteligente. Ampliacin de las opciones de bsqueda. Bsqueda de empresas. Fase de pruebas. Documentacin del proyecto. Tiempo Total del Proyecto.

Tiempo (expresado en das) 5 15 10 3 15 10

15

45 20 45 10 5 90 289

Tabla 21 Tiempos de Desarrollo del Proyecto.

Jorge Molinero Muoz

Pgina 126

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

7 Problemas Encontrados
Durante el desarrollo del sistema han aparecido mltiples situaciones conflictivas que han retrasado la implantacin de la aplicacin. La mayora de los problemas estaban relacionados con la interaccin con los portales de empleo, pues cada portal tiene una estructura determinada y la tecnologa que se ha utilizado para dicha interaccin era desconocida por el equipo de desarrollo.

La no homogeneidad de los portales hace referencia al hecho de que no todos los portales ofrecen la misma informacin acerca de los puestos de trabajo ofertados. Hay portales que indican el nmero de curriculums enviados a un puesto, otros que no muestran la fecha de publicacin en todos los puestos, o si la empresa lee todos los curriculums enviados... La solucin que se ha adoptado para evitar esta incertidumbre ha sido tratar slo aquellos datos que son comunes a todos los portales, y cuando era posible, asumir la informacin no ofrecida por el portal. Por ejemplo, un portal de empleo no mostraba la fecha de publicacin para ciertos puestos que consideraba destacados, esto hizo que se adoptara la postura de mostrar la fecha del da actual, de tal modo que dichos puestos ya podan ser tratados como todos los dems.

Otro problema que surgi relativo a la interaccin con los portales de empleo, es que estos no ofrecan pginas HTML correctamente formadas, sino que les faltaban etiquetas o el orden en el cual se encontraban no era el correcto, no permitiendo un tratamiento inmediato de la informacin obtenida de estas. Es decir, era necesario un proceso de limpieza de la pgina que la estructurase y la completase, antes de poder extraer la informacin. Para ello se han utilizado un programa denominado Tidy [38,39], destinado a ser utilizado por WEBL, y un mdulo de java llamado Jtidy, ya comentado anteriormente. La utilizacin de estas dos herramientas ha hecho que aumentase enormemente el tiempo de espera, por lo que se ha realizado el sistema lo ms eficientemente posible con el objetivo de contrarrestar los tiempos de espera de estas herramientas.

Tambin habra que destacar como problema, la utilizacin por parte de los portales de empleo de JavaScript, pues complic el tratamiento de las pginas de resultados, ya que requera de hacer un seguimiento de las funciones en JavaScript para llegar a la accin real. Otro problema que fue observado durante el estudio de los portales de empleo, es que existen algunos que ya han previsto la utilizacin de sistemas de tratamiento automtico de la informacin en la Web, y para evitar ser tratados por dichas aplicaciones, recurren a diversas maniobras como la utilizacin de javascript para evitar poner los nombre de las etiquetas o de las clases directamente en la pgina HTML. Por ejemplo en un portal que se consider inicialmente y que al final fue desechado, se encontr el cdigo javascript:

Jorge Molinero Muoz

Pgina 127

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Document.write(<div class=cuer); Document.write(poTexto>);

Respecto a la interaccin con los portales de empleo, otra complicacin que surgi es que durante la realizacin del proyecto un da que un portal de empleo cambio tanto su apariencia. De modo que aunque se intent en todo lo posible que estos cambios no repercutiesen en la aplicacin, no se recoga toda la informacin del portal que haba cambiado su imagen, por lo que fue necesaria una modificacin en las expresiones XPath asociadas a dicho portal, constatando la fcil y rpida adaptacin del sistema a los cambios que puedan sufrir los portales de empleo con los cuales esta integrado.

Independientemente de la interaccin con los portales de empleo, otro problema que se tuvo fue debido a que la mquina en la cual resida la aplicacin, era reiniciada por las noches, lo cual provocaba, que ciertas clases que realizaban un comportamiento peridico no pudiesen ser gestionadas por la propia aplicacin. Esto se solucion utilizando la utilidad crontab ofrecida por Unix, la cual se utilizaba para lanzar peridicamente unos scripts que se encargaban tanto del reinicio del servidor web, si este no se encontraba operativo, como de las tareas peridicas como es el lanzamiento de alertas o el seguimiento de los portales de empleo.

Otra situacin conflictiva eran los grandes tiempos de espera necesarios, cuando se hacan consultas compuestas, pues requeran de la realizacin de varias consultas a los portales de empleo y del tratamiento de todas las pginas devueltas. Este problema como ya se ha comentado en el apartado Reduccin de Latencia se solvent con la agregacin de una memoria cach y dndole al usuario la posibilidad de solo descargarse las primeras pginas de respuesta de las bsquedas.

Respecto a la bsqueda inteligente, inicialmente se pens en que lo ideal para saber si un puesto de trabajo era nuevo, sera recrear la Base de Datos de los portales en local por medio de la realizacin de consultas muy genricas que nos diesen todos los resultados y poder tenerlos almacenados para realizar posteriores comparaciones, pero esta solucin era inviable dada la gran cantidad de puestos de trabajo ofertados por los portales de empleo. Para solventar esta situacin apareci el concepto de los controles, de modo que el sistema nicamente realizaba un seguimiento de los controles que antes haban sido establecidos por los usuarios de modo que ya se poda dar la funcionalidad de la bsqueda inteligente en la cual se filtran aquellos puesto puestos que llevan publicados un nmero determinado de ocasiones. El nico inconveniente de esta solucin es que para que el sistema funcione correctamente requiere de que el usuario haya establecido con una anterioridad los controles, de modo que la aplicacin tenga tiempo para poder realizar un seguimiento de las consultas oportunas en los

Jorge Molinero Muoz

Pgina 128

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

portales de empleo.

Jorge Molinero Muoz

Pgina 129

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

8 Conclusiones y Trabajos Futuros


La implantacin de sistemas que automatizan tareas relacionadas con la Web genera gran cantidad de beneficios en tiempo y en claridad para los usuarios. Pues permite que estos consulten simultneamente varios portales, ahorrando tiempo. Por otro lado, el disponer de herramientas que automaticen dichas tareas, permite extraer conclusiones a las que no sera posible llegar utilizando mecanismo manuales. En el caso del portal BuscaEmpleo, podemos realizar seguimientos de una bsqueda controlando los puestos de empleo se repiten de un da a otro, de tal modo que es posible hacer bsquedas en las cuales nicamente haya ofertas de empleo nuevas.

Actualmente se comienzan a implantar sistemas de esta ndole, Google tiene un apartado en el cual se pueden acceder a las noticias de mltiples portales de noticias y una seccin en la cual se realizan bsquedas en tiendas de regalos, y Yahoo tambin ha presentado una seccin dedicada a la compra por Internet, que permite al usuario poder realizar buscar productos en portales de venta por Internet.

http://news.google.es/ http://froogle.google.com/ http://shopping.yahoo.com/

Respecto a los conocimientos adquiridos en el desarrollo del proyecto, se debe indicar que su realizacin ha sido muy enriquecedora, pues ha permitido asentar conocimientos adquiridos durante la carrera como el modelado de aplicaciones, la aplicacin de patrones de diseo en una aplicacin relativamente compleja as como conocimientos asociados a la realizacin de auditorias pues ha sido necesaria un estudio tanto de los portales de empleo disponibles en el mercado, con sus correspondiente caractersticas y elementos en comn, como de las tendencias en desarrollo de aplicaciones web, tecnolgica y grficamente. Por otro lado, durante su ejecucin se ha aprendido a utilizar tecnologas muy en auge en la actualidad como son XML y XSL.

Otro aspecto ms que destacable es que la propia realizacin y utilizacin de la aplicacin me ha supuesto encontrar un nuevo puesto de trabajo, lo que reafirma la utilidad que el sistema puede aportar a una persona que este en el proceso de bsqueda de un nuevo trabajo.

Jorge Molinero Muoz

Pgina 130

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

De todos modos, el sistema es altamente flexible y permite incluir nuevas mejoras y la realizacin de trabajos futuros para ampliar las funcionalidades que aporta. A continuacin se presentan una serie de posibles ampliaciones: ? Agregacin de ms portales de empleo. Permitira que el servicio que ofrece la ? aplicacin sea ms completo, de modo que pueda albergar una porcin mayor del mercado de trabajo disponible en Internet. ? Integracin del sistema de alertas con otros portales capacitados para enviar mensajes ? a mviles. Dando la capacidad de recibir las alertas mediante un mensaje en el telfono mvil, permitiendo as al usuario recibir en el momento y en cualquier lugar la agregacin de nuevos puestos de trabajo en los portales de empleo. ? Inclusin de foros. Permitiendo a los usuarios opinar acerca de la aplicacin, de las ? empresas y de los puestos que se ofertan en los portales de empleo. Pudiendo advertir a la gente que busca un puesto de lo bien o mal que se trata a los empleados en las empresas. ? Inclusin de un chat en tiempo real. ? ? Creacin de un rol de administrador que gestione los usuarios registrados, las alertas y ? los controles existentes en la aplicacin. ? Adaptacin del Interfaz Web para su correcta lectura desde otros dispositivos, como ? telfonos mviles.

Jorge Molinero Muoz

Pgina 131

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

9 Bibliografa
[1] http://www.infojobs.net Portal de Empleo Infojobs

[2] http://www.monsters.es Portal de Empleo Monsters

[3] http://www.tecnoempleo.com Portal de Empleo Tecnoempleo

[4] http://www.todotrabajo.com Portal de Empleo TodoTrabajo

[5] http://www.trabajos.com/ Portal de Empleo Trabajos.com

[6] http://www.expansionyempleo.com/ Portal de Empleo Expansin y Empleo

[7] http://www.infoempleo.com/ Portal de Empleo Infoempleo.com

[8] http://www.w3c.org Pgina Principal del World Wide Consortium

[9] http://www.w3c.org/WAI/ W3C. Web Accessibility Initiative

[10] http://www.w3.org/MarkUp/ W3C. Hypertext markup language (html and xhtml).

[11] http://www.w3.org/TR/1999/REC-html401-19991224 W3C. HTML 4.01 Specification

[12] http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113 W3C. Document Object Model (DOM) Level 2 Core Specification

Jorge Molinero Muoz

Pgina 132

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

[13] http://www.w3.org/TR/2000/REC-xhtml1-20000126 W3C. XHTML1.0: The Extensible HyperText Markup Language.

[14] http://www.research.digital.com/SRC/WebL/index.html Compaqs Web Language, Compaq Computer

[15] Vicente Luque Centeno, Luis Snchez Fernndez, Carlos Delgado Kloos. Automatizacin de Tareas en el Web: Una propuesta basada en estndares. Tesis Doctoral, Universidad Carlos III de Madrid.

[16] M Eugenia Gonzalo Cabellos. WebL, Un Lenguaje de Programacin para la Web. Documento Interno, Universidad Carlos III de Madrid.

[17] Thomas Kistler and Johannes Marais. WebL- A Programming Languaje for the Web. Computer Networks and ISDN Systems, Volume 30, pages 259-270.

[18] http://www.it.uc3m.es/vlc/webl/ Repositorio de Vicente Luque Centeno destinado a contenidos relacionados con WebL.

[19] http://www.w3.org/2001/sw/ Semantic Web

[20] Bhavani Thuraisingham XML databases and the semantic web. Boca Raton, CRC Press , cop. 2002

[21] Vladimir Geroimenko and Chaomei Chen Visualizing the semantic web : XML-based internet and information visualization. London, Springer. 2003

[22] Elliotte Rusty Harold XML : Extensible Markup Language. Foster City, IDG Books Worldwide. 1998

[23] Raymond Kosala, Hendrik Blockeel Web Mining Research: A Survey. 2000

[24] Javier Garca de Jaln, Jos Ignacio Rodrguez, Aitor Imaz.

Jorge Molinero Muoz

Pgina 133

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Aprenda Servlets de Java como si estuviera en segundo. Perteneciente a la coleccin Aprenda..., como si estuviera en primero. Escuela superior de Ingeniero Industriales. San Sebastin, Abril 1999.

[25] Larman, Craig. UML y patrones : introduccin al anlisis y diseo orientado a objetos y al proceso unificado.

[26] Gamma, Erich Patrones de diseo : elementos de software orientado a objetos reutilizable.

[27] Lea, Doug Programacin concurrente en Java : principios y patrones de diseo.

[28] Husted, Ted N Struts in action : building web applications with the leading Java framework. Greenwich: Manning. 2003

[29] Andrew Patzer JSP : ejemplos prcticos. Madrid : Anaya Multimedia, cop. 2003

[30] Jayson Falkner Desarrollo Web con JSP : fundamentos. Madrid : Anaya Multimedia, 2002

[31] http://www.mysql.com The world's most popular open source database [32] http://www.omg.org/technology/documents/formal/uml.htm Documentation of omg about Unified Modeling Language (UML).

[33] Geri Schneider, Jason P. Winters Applying Use Cases. Addison Wesley. Reading, Massachusetts. 2001

[34] http://www.w3.org/TR/xpath.html W3C. Xml path language (xpath) 2.0. W3C Working Draft 15 November 2002, 2002.

[35] http://www.xml.org Dominio especficos para estndares XML.

[36] http://xml.apache.org The Apache XML project.

Jorge Molinero Muoz

Pgina 134

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

[37] http://xml.apache.org/xalan-j/ The Apache XML project. Xalan-Java

[38] http://www.w3.org/People/Raggett/tidy HTML Tidy.

[39] http://tidy.sourceforge.net HTML Tidy Library Project

[40] http://jtidy.sourceforge.net/ HTML Parser and Pretty-Printer in Java

[41] http://www.it.uc3m.es/~xml Web del Departamento de Ingeniera Telemtica de la Universidad Carlos III de Madrid. Cuyo objetivo es la difusin de XML en el mundo hispano.

[42] http://www.w3.org/Style/css Cascading Style Sheets Home Page

[43] http://validator.w3.org Markup Validation Service. Servicio gratuito que comprueba y valida HTML y XHTML, segn las recomendaciones y los estndares de la W3C

[44] http://www.tawdis.net/ Test Accesibilidad Web

[45] Web Semntica y proyecto RODA.

[46] http://www.informandote.com/jornadasIngWeb/articulos/jiw02.pdf Ontologas en la Web Semntica. Adolfo Lozano Tello.

[47] http://www.ii.uam.es/~castells/publications/coline02.pdf Aplicaciones Tcnicas de la Web Semntica. Pablo Castells.

[48] http://www.semanticweb.org/ The Semantic Web Comunity Portal.

[49] http://jakarta.apache.org

Jorge Molinero Muoz

Pgina 135

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

[50] http://java.sun.com The Source for Java Technology

[51] http://httpd.apache.org Apache. HTTP Server Proyect

[52] Rich Bowen, Ken Coar. Servidor Apache Al Descubierto. Prentice Hall, 2000

[53] Lino Gonzlez Garca Sistema de Gestin de Aprendizaje para Entornos Web. Documento Interno de la Universidad Carlos III. Octubre 2003.

[54] Ted N. Husted, Cedric Dumoulin, George Franciscus, David Winterfeldt Struts in Action, Softbound, November 2002.

[55] http://www.w3.org/RDF/ Resource Description Framework

[56] http://www.ati.es/novatica/2000/145/vjulia-145.pdf V. Juli/n, V. Botti. Agentes Inteligentes: el siguiente paso en la Inteligencia Artificial. Dpto. sistemas informticos y Computacin de la Universidad Politcnica de Valencia. Junio 200.

Jorge Molinero Muoz

Pgina 136

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Anexo A: Manual de Usuario


BUSCAEMPLEO, es una aplicacin web que permite a los usuarios poder realizar bsquedas en varios portales de empleo facilitndoles la ardua tarea de buscar trabajo. BuscaEmpleo tambin ofrece una serie de utilidades que se describirn ms adelante.

Para acceder al sistema es necesario disponer de un navegador capaz de interpretar cdigo XHTML as como una conexin a Internet que permita al navegador llegar al portal BuscaEmpleo.

El sistema inicialmente muestra una pantalla que permite realizar una bsqueda bsica de puestos de trabajo as como acceder a la parte privada del Portal, para lo cual es necesario que el usuario se haya dado de alta en el sistema anteriormente.

Jorge Molinero Muoz

Pgina 137

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Para realizar una bsqueda bsica, se deben rellenar los campos Tecnologa y Provincia, dichos campos sern aquellos que posteriormente se utilizarn para realizar la consulta en los portales de empleo.

Para acceder a la parte privada, el usuario debe darse de alta en el sistema, el proceso de registro, es muy sencillo nicamente es necesario pulsar sobre Dar de Alta y rellenar los campos que aparecen en el formulario personal, una vez hecho esto, se pulsa Enviar

Jorge Molinero Muoz

Pgina 138

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Una vez el usuario est registrado, puede gestionar sus alertas, controles y puestos. As como modificar sus datos personales si lo desea.

Gestin de Alertas.

Una alerta es un aviso mediante el cual BuscaEmpleo le informa al usuario de los puestos de trabajo ofertados por los portales de empleo utilizando como canal de comunicacin el correo electrnico.

Jorge Molinero Muoz

Pgina 139

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Para agregar una alerta se debe especificar la tecnologa, la provincia y la periodicidad con la cual se desea recibir dichos avisos.

Para borrar una alerta se pulsa el botn borrar que est situado al lado de la alerta.

Gestin de Controles.

Los controles permiten al sistema hacer un seguimiento de los puestos de trabajo que ofertan los portales, de tal modo que cada control le indica a la aplicacin que la bsqueda especificada por este tiene que ser sometida a seguimiento, esto permite: ? Visualizar los resultados de estas bsquedas peridicas de una forma ordenada y pudiendo ? observar el nmero de veces que un puesto de trabajo ha sido publicado ? Realizar bsquedas inteligentes en las cuales se pueda utilizar el nmero de ocasiones que ? un puesto ha sido publicado como criterio para desechar puestos no interesantes.

Jorge Molinero Muoz

Pgina 140

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Para agregar un control se debe especificar la tecnologa, la provincia que definen la bsqueda que debe ser sometida a seguimiento. Para borrar un control se pulsa el botn Borrar que est situado al lado de dicho control.

Si se desea observar el seguimiento que est realizando un control, nicamente hay que pulsar en el botn ver que tiene asociado cada control.

Cada control tiene asociado un listado de puestos de trabajo agrupados por las empresas que los ofertan, indicando la fecha en la cual se puso el puesto en el portal y el nmero de das que dicha oferta lleva publicada. De tal modo que es posible observar si un puesto de trabajo lleva mucho tiempo sin cubrir.

Jorge Molinero Muoz

Pgina 141

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Gestin de Puestos

El sistema le permite a los usuarios llevar una gestin de los puestos de trabajo a los que les enva su curriculum, de tal modo que este tenga un listado de puestos de trabajo asociado a su perfil para as no repetir la accin de mandar el curriculum.

Jorge Molinero Muoz

Pgina 142

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Para aadir un puesto de trabajo al listado, se debe pulsar el botn de Guardar situado al lado de dicho puesto en los resultados de las bsquedas.

Una vez el puesto se ha agregado al listado, el usuario puede cambiar el estado de este en funcin de la fase en la cual se encuentre el puesto de trabajo. ? Si le ha enviado el curriculum. ?

? Si ya ha realizado una entrevista. ?

? Si le han aceptado en el puesto de trabajo ?

Para borrar un puesto de trabajo del listado, se debe pulsar el botn Borrar situado al lado de dicho puesto.

Bsqueda Inteligente

El concepto de bsqueda inteligente apareci por el hecho de que en los portales de empleo cuando se realiza una bsqueda peridicamente, se percibe que de un da a otro hay muy pocas ofertas realmente nuevas, es decir, los portales publican peridicamente con fecha

Jorge Molinero Muoz

Pgina 143

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

del da actual las mismas ofertas de empleo. Por lo tanto, el usuario cuando realiza dicha bsqueda puede considerar que si que hay mucho trabajo, pero la mayora de estas ofertas son antiguas y no se han cubierto.

Otro motivo que justifica este tipo de bsqueda, es que muchas empresas publican ofertas fantasmas, es decir, publican puestos de trabajo que no se pretenden cubrir nicamente con el objetivo de darse publicidad, pues as la gente que consulta asiduamente estos portales observa que hay empresas que siempre estn presentes. Estos puestos, despus de realizar un estudio se observa que tienen el mismo nombre, es decir que se apoyan en una funcionalidad del portal de empleo que publica el mismo puesto durante unos das.

Todos esto, motivo el hecho de realizar una bsqueda inteligente capaz de filtrar los puestos por nmero de ocasiones publicadas. Para ello, se crearon los controles que ya se han comentado, de tal modo que los usuarios pueden indicar cuales son las bsquedas que hacen normalmente a fin de as utilizar dicha informacin, pues realizar un seguimiento completo de las publicaciones de los portales es inviable.

Para realizar una bsqueda, simplemente hay que especificar la tecnologa y la localidad en la cual se desea realizar dicha bsqueda e indicar la antigedad de los puestos. En la pantalla de bsqueda aparecen todos los controles que realizan los seguimientos, para que el usuario si ve que su bsqueda no est siendo sometida a seguimiento lo pueda corregir,

Jorge Molinero Muoz

Pgina 144

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

e incluso se pueden observar los resultados de dichos seguimientos pulsando el botn Ver que se encuentra al lado de cada uno de los controles.

Jorge Molinero Muoz

Pgina 145

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Anexo B: Configuracin de Crontab


El demonio cron es un proceso que ejecuta comandos en unas fechas y horas determinadas. Se puede utilizar un programador de acciones para gestionar cuando se producen los eventos y las tareas correspondientes.

Para programar comandos cuya ejecucin se requiere repetidamente (cada hora, diariamente, semanalmente) se utiliza crontab, el cual tiene las siguientes opciones: ? crontab a fichero: Instala el fichero en el crontab. En la mayora de los sistemas este ? comando se ejecuta simplemente poniendo: crontab fichero ? crontab e : Edita el fichero crontab. O lo crea si no existe. ? ? crontab l : Muestra el fichero crontab. ? ? crontab r : Borra el fichero crontab. ? ? crontab v :Muestra la ltima vez que se edito el fichero crontab. ? ? crontab u usuario: Permite modificar o ver el fichero crontab del usuario. Solo esta ? permitido para el administrador.

El comando crontab crea un fichero crontab que contiene los comandos y las instrucciones que especifican cuando el demonio cron debe ejecutar aquellas instrucciones. Cada entrada en el fichero crontab consiste en seis campos.

minuto hora da mes semana comando

Estos campos deben ir separados por espacios o tabuladores. Los cinco primeros son patrones de nmeros y el sexto es el comando que debe ejecutarse. A continuacin se describen los campos.

Campo Minuto Hora Da Mes Semana

Valor 0-59 0-23 1-31 1-12 0-6

Descripcin El minuto exacto en el cual debe ejecutarse el comando La hora del da en la cual debe ejecutarse el comando El da del mes en el que se ejecuta el comando El mes del ao en el que se ejecuta el comando. El da de la semana en el que se ejecuta el comando. Domingo=0, Lunes=1

Comando

Especial

La secuencia completa del comando a ejecutar. El path, en el cual se encuentra el comando

Jorge Molinero Muoz

Pgina 146

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Cada uno de los patrones de los cinco primeros campos puede contener un asterisco o una lista de elementos separados por comas. Cada elemento ser un nmero o un rango, indicado con dos nmeros separados por un smbolo menos (8-11).

En concreto para la realizacin del proyecto el fichero crontab se encargaba de lanzar la ejecucin del lanzador de comandos de forma peridica, todos los das cada cuatro horas, as como de lanzar un script cada 15 minutos que comprobase si el servidor web estaba cado, y en el caso de estarlo, de arrancarlo.

Jorge Molinero Muoz

Pgina 147

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Anexo C: Manual de Instalacin del Sistema


La aplicacin como ya se ha comentado esta compuesta de dos mdulos tecnolgicos, uno formado por scripts en WebL, y otro formado por una serie de clases Java que cumplen la arquitectura J2EE.

El mdulo implementado en Java corre en un servidor Jakarta-Tomcat-4.1.24. A continuacin se describe brevemente el proceso de instalacin de un servidor de aplicaciones Tomcat: ? Descarga el servidor de aplicaciones de Internet. Esto es posible debido a ? que el servidor de aplicaciones Tomcat es GNU, es decir software libre.

El servidor tomcat, se puede descargar de la siguiente url: http://jakarta.apache.org/builds/jakarta-tomcat-4.0/

Y el archivo que fue descargado para la implementacin del proyecto fue: jakarta-tomcat-4.1.24.tar.gz ? Instalacin. La instalacin del servidor de aplicaciones Tomcat, nicamente ? hay que descomprimirlo y desempaquetarlo en el directorio correcto. tar zxvf jakarta-tomcat-4.1.24.tar.gz ? Inicializar el servidor. Para arrancar el servidor se debe teclear la siguiente ? instruccin: $TOMCAT_HOME/bin/startup.sh ? Configuraciones adicionales. Para configurar el servidor ha sido necesario ? modificar varios ficheros.

Por un lado se ha aadido un servidor web, que escucha en el puesto 2345 (debido a que para que escuche en el puerto 80, es necesario arrancarlo con permisos de root, de los cuales no disponemos). Para ello se modifico el fichero: $TOMCAT_HOME/conf/server.xml

Otro fichero que se tuvo que modificar fue aquel en el cual se establece el classpath, debido a que en el proyecto se utilizan mdulos que tenan que ser aadidos al classpath para que funcionase el sistema. Dicho fichero fue: $TOMCAT_HOME/bin/setclasspath.sh

Jorge Molinero Muoz

Pgina 148

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Respecto a la los scrips en WebL, fue necesaria la creacin del entorno para la ejecucin de estos. WebL se encuentra implementado en Java, luego requiere que en el sistema este instalado el JDK de Java. Para ejecutar scripts en WebL nicamente es necesario utilizar un mdulo disponible en la red denominado WebL.jar. Dicho mdulo es gratuito y se puede descargar en:

http://research.compaq.com/SRC/WebL/

Estos scripts en WebL, utilizan tambin una serie de mdulos con funciones, dichos mdulos son: ? Forms.webl: Aporta utilidades que permiten la automatizacin del tratamiento ? de los formularios de las pginas HTML. ? Xpath.webl: Aporta utilidades que permiten la utilizacin de expresiones Xpath ? en el tratamiento de las pginas HTML.

Por otro lado, para el tratamiento automtico de las pginas devueltas por los servidores, se utiliz un programa en C que se encargaba de la limpiar las pginas html para que el formato de esta sea correcto. Dicho programa se denomina tidy, y para su funcionamiento fue necesario compilarlo a partir del cdigo fuente.

Estructura de Directorios

Uno de los aspectos ms importantes de la instalacin de la aplicacin es la estructura de directorios, ya que esta ser la que determinar donde se encuentran los ficheros que forman el sistema. Del mismo modo que existen dos mdulos tecnolgicos, tambin existen dos estructuras de directorios, cada una asociada a su tecnologa. ? Servidor de Aplicaciones Jakarta-Tomcat ?

La mayor parte de la aplicacin se encuentra en el servidor de aplicaciones, en concreto en la instancia web creada para dicho propsito.

$JAKARTA_HOME/webapps/empleo

En dicha ubicacin se encuentran: . ./img Las pginas HTML estticas Las imgenes utilizadas por la aplicacin

Jorge Molinero Muoz

Pgina 149

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

./scripts ./xml

Los ficheros css utilizados en el portal Directorio en el cual se encuentran los ficheros xml en los cuales se almacena la informacin del sistema. Usuarios registrados, bsquedas frecuentes, puestos publicados por las empresas...

./xml/cache ./xsl

Ficheros xml con la memoria cach del sistema. Directorio en el cual se encuentran las plantillas xsl que son utilizadas para tratar las respuestas del servidor a pginas html. Si se desea cambiar la imagen del sistema, nicamente hay que modificar estos ficheros, sin necesidad de cambiar las clases del sistema.

./ejecucion

Directorio en el cual se almacenan los resultados obtenidos de las bsquedas para su tratamiento.

./ini

Los ficheros ini que permiten configurar la aplicacin. Existen mltiples ficheros, unos generales denominados agregador y empresas, que indica los distintos portales con los cuales trabaja la aplicacin y luego dos para cada portal, con las expresiones Xpath, uno para la bsqueda de puestos y otro para la bsqueda de empresas.

./WEB-INF/classes

Directorio en el cual se almacenan las clases que componen la aplicacin.

Tabla 22 Estructura de Directorios de Jakarta-Tomcat

? WEBL ?

Los ficheros asociados a la comunicacin con los portales de empleo, realizados en WebL se encuentran situados en el directorio:

$WEBL_HOME/

Y la estructura de directorios es la siguiente:

Scripts en WebL que se encargan de la interaccin con los portales de empleo.

./log

Directorio en el cual se almacenan los logs resultantes de la interaccin con los portales de empleo

Jorge Molinero Muoz

Pgina 150

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Tabla 23 Estructura de Directorios de WebL

Jorge Molinero Muoz

Pgina 151

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Anexo D: Mapa de Puntos de Verificacin


Cada punto de verificacin tiene una prioridad asignada por la W3C segn su impacto sobre la accesibilidad.

En General (Prioridad 1) Existencia de texto equivalente para todo elemento no textual (a travs de alt, longdesc o en el contenido del elemento). Esto incluye imgenes, representaciones grficas del texto, mapas de imgenes, animaciones, botones, sonidos... Toda la informacin transmitida a travs de colores, tambin disponible sin ellos. Identificacin de los cambios de idioma original del texto. Documento organizado, de modo que pueda ser visualizado sin hojas de estilo. Los equivalentes de los contenidos dinmicos son actualizados cuando cambian dichos contenidos dinmicos Hasta que las aplicaciones de usuario, se debe evitar provocar parpadeo en la pantalla. Utilice el lenguaje ms claro y simple para el contenido del sitio Si se utilizan Imgenes o Mapas de Imgenes (Prioridad 1) Debe existir un vnculo redundante por cada zona de actividad del mapa de imgenes. Los mapas de imgenes deben ser controlados por el cliente y no por el servidor. Si se utilizan tablas (Prioridad 1) En las tablas de datos se deben identificar los encabezamientos de fila y columna Para las tablas de datos que tienen ms de dos niveles lgicos de encabezamientos de filas o columna, se deben utilizar marcadores que asocien las celdas de encabezamiento con las de datos. Si se utilizan Frames (Prioridad 1) Se debe titular cada marco para facilitar la identificacin y navegacin de los mismos Si se utilizan Applets y Scripts (Prioridad 1)

Si OK

No

N/A

OK

OK OK

OK

OK

OK Si OK No N/A

OK

Si OK

No

N/A

OK

Si OK

No

N/A

Si

No

N/A

Jorge Molinero Muoz

Pgina 152

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Las pginas deben seguir siendo utilizables cuando se desconecte o no se soporte la ejecucin de scripts, applets u otros objetos de programacin.
Tabla 24 Puntos de Verificacin de Prioridad 1

OK

En General (Prioridad 2) Las combinaciones de colores de fondo y primer plano deben tener suficiente contraste para que sean percibidas por personas con deficiencias de percepcin de color o por pantallas en blanco y negro. Cuando exista un marcador apropiado, utilizacin del marcador en lugar imgenes para transmitir informacin, Los documentos deben estar validados por las gramticas formales publicadas. Utilizacin de hojas de estilo para controlar la maquetacin y la presentacin. Utilizacin de unidades relativas en lugar de absolutas en la especificacin de los atributos de los marcadores de texto y en los valores de las hojas de estilos. Utilizacin de elementos de encabezamiento para transmitir la estructura lgica y utilizacin de acuerdo con la especificacin Marcacin de las listas y los puntos de estas correctos. Contenidos dinmicos accesibles, o existencia de una pgina o presentacin alternativas. No debe darse un parpadeo del contenido (cambios de presentacin en tiempos regulares). No deben realizarse pginas que se carguen automticamente de forma peridica. No se debe provocar apariciones repentinas de ventanas o cambios de ventana sin informar al usuario. Utilizacin de tecnologas W3C cuando estn disponibles y sean apropiadas para la tarea. No utilizacin de caractersticas desaconsejadas por las tecnologas W3C Divisin de bloques largos de informacin en bloques ms manejables cuando sea natural y apropiado. Identificacin clara del objetivo de cada vnculo. Proporcin de metadatos para aadir informacin semntica a las pginas.

Si OK

No

N/A

OK

OK

OK

OK

OK

OK OK

OK

OK

OK

OK

OK

OK

OK OK

Jorge Molinero Muoz

Pgina 153

BuscaEmpleo: Agregador de Portales de Empleo

Universidad Carlos III de Madrid

Proporcin de informacin acerca de la maquetacin general del sitio, cuando este sea medianamente complejo. Utilizacin mecanismos de navegacin coherentes Si se utilizan Tablas (Prioridad 2) No se deben utilizar tablas para maquetar, al menos que tenga sentido cuando se alinee. Si se utilizan tablas para maquetar, no se deben utilizar marcadores estructurales para realizar un formateo visual. Si se utilizan Marcos (Prioridad 2) Debe existir una descripcin de los marcos y de cmo se relacionan estos entre s, si no resulta obvio con el ttulo del marco. Si se utilizan Formularios (Prioridad 2) Cada etiqueta debe estar colocada adecuadamente, y debe existir una asociacin implcita entre la etiqueta y el campo del formulario. Debe existir una asociacin explcita entre las etiquetas y los campos del formulario. Si se utilizan Applets o Scripts (Prioridad 2) Los manejadores de eventos deben ser entradas independientes del dispositivo. Se deben evitar los movimientos en las pginas. Cada elemento con su propia interfaz debe poder manejarse de forma independiente del dispositivo. Para los scripts, se deben especificar manejadores de eventos lgicos, que manejadores de eventos dependientes del dispositivo.
Tabla 25 Puntos de Verificacin de Prioridad 2

OK

OK Si OK No S/N

OK

Si OK

No

S/N

Si OK

No

S/N

OK

Si OK

No

S/N

OK OK

OK

Jorge Molinero Muoz

Pgina 154

You might also like