Obtención y agregación de datos de portales de empleo en un sistema distribuido

Faya Fernández, Sergio (2021). Obtención y agregación de datos de portales de empleo en un sistema distribuido. Thesis (Master thesis), E.T.S.I. de Sistemas Informáticos (UPM).

Description

Title: Obtención y agregación de datos de portales de empleo en un sistema distribuido
Author/s:
  • Faya Fernández, Sergio
Contributor/s:
  • Muñoz Fernández, Isabel
  • Arévalo Viñuales, Sergio
Item Type: Thesis (Master thesis)
Masters title: Software de Sistemas Distribuidos y Empotrados
Date: June 2021
Subjects:
Freetext Keywords: Sistemas distribuidos; Procesamiento de datos
Faculty: E.T.S.I. de Sistemas Informáticos (UPM)
Department: Sistemas Informáticos
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img] PDF - Users in campus UPM only - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB)

Abstract

Actualmente, la utilización de portales online para la búsqueda de empleo está a la orden del día. Éstos tienen gran cantidad de ofertas y permiten a los usuarios realizar una consulta para poder encontrar el que mejor se ajusta a sus preferencias. Pero, que haya numerosos portales, cada uno con sus múltiples ofertas, en ocasiones, lejos de facilitar la búsqueda, la hace aún más complicada. En la industria de las tecnologías de la información, esta tarea se complica debido a los nuevos sectores en crecimiento y a la gran cantidad de empleo dentro de este sector. Como solución a este problema, proponemos la creación de un sistema de agregación de ofertas de empleo que permita al usuario buscar en los datos de varios portales a la vez. Haremos uso de Apache Kafka como pieza central, una tecnología vista en el transcurso del máster que puede servirnos tanto como bróker de mensajería, como para el procesamiento y almacenamiento de grandes cantidades de información por segundo. También queremos demostrar los beneficios de una arquitectura de microservicios la cual nos aporta las propiedades de escalabilidad y flexibilidad, tanto en el desarrollo, como en el ciclo de vida de la aplicación. Para esto, hemos creado diferentes servicios cada uno con responsabilidades específicas dentro de nuestra solución, que son capaces de operar en conjunto, incluso estando implementados con diferentes lenguajes y tecnologías, gracias a la comunicación que pueden establecer entre sí. Estos microservicios son los siguientes: Fetchers: encargados de extraer ofertas de los portales de empleo; Processors: procesan las ofertas de los portales de empleo y las almacenan para que los usuarios puedan realizar búsquedas desde la web.; Proxy: encargado de redirigir las búsquedas de la aplicación web a los processors; Aplicación web: página web donde los usuarios podrán realizar búsquedas de empleo. El sistema comienza su ejecución con la extracción de datos de empleo de los portales LandingJobs y GraphQL Jobs. Los datos, tras su procesamiento, estarán disponibles para su consulta por parte del usuario. Además, las ofertas se actualizan cada X minutos (de manera configurable) para que el usuario tenga la información reciente de forma transparente al portal de empleo. Abstract: Nowadays, the usage of job searching webpages is becoming more and more popular. These pages can keep a humongous amount of job offers and allow their users to query that information to find the most suitable job. The fact that there are many portals, each of them with lots of offers, can sometimes be more of a liability when querying. In the IT industry, this task gets more complex due to the increasing fields of work and the amount of job offers in our sector. As a solution to this problem, we are proposing the creation of a data aggregation system for job offers which allows end users to search in the offers of different places at the same time. We will make use of Apache Kafka as a core piece; this is a technology studied during the master’s degree which can be used both as a message broker and as data processing and storage for big data. We also want to prove the benefits of a microservice architecture which involves the properties of scalability and flexibility during both the development process and the application lifecycle. For this reason, we have implemented different services each with specific responsibilities on our software solution that can work together being technology and language agnostic thanks to the communication among themselves. Fetchers: in charge of data ingestion from the job offer webpages; Processors: process the incoming job offers to later store them so that the user can query them from the web app; Proxy: in charge of redirecting the requests from the web app to the processors and filtering their results; Web App: website where the users will be able to query job offers. The flow of the system begins with the extraction of the job-offers data from the LandingJobs and GraphQL Jobs sources. The data, after being processed, will be ready to be queried by the user. Also, the offers get updated every given minutes, based on a configurable value, in order to serve the latest information about job offers to the user.

More information

Item ID: 68434
DC Identifier: https://oa.upm.es/68434/
OAI Identifier: oai:oa.upm.es:68434
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 07 Sep 2021 13:29
Last Modified: 07 Sep 2021 13:29
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM