Functional Reactive Programming in ClientSide web applications

Cámara Braña, Sergio (2020). Functional Reactive Programming in ClientSide web applications. Thesis (Master thesis), E.T.S. de Ingenieros Informáticos (UPM).

Description

Title: Functional Reactive Programming in ClientSide web applications
Author/s:
  • Cámara Braña, Sergio
Contributor/s:
  • Ferre Grau, Xavier
  • Soto Setzk, David
Item Type: Thesis (Master thesis)
Masters title: Ingeniería Informática
Date: May 2020
Subjects:
Freetext Keywords: Functional Reactive Programming; Web development; Angular; RxJS; Observable
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Lenguajes y Sistemas Informáticos e Ingeniería del Software
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (2MB) | Preview

Abstract

En esta tesis hemos hecho un estudio sobre el paradigma de programación funcional reactiva (FRP) centrado en el desarrollo de aplicaciones web. Hemos elaborado un estudio de la literatura relacionada con este paradigma, así como de los paradigmas en los que este está basado: la programación funcional y reactiva. Para conocer las aplicaciones prácticas de paradigma, hemos presentado un caso de uso en el que hemos desarrollado una aplicación web para la plataforma “Initative for Digital Transformation” (https://idt.in.tum.de/) en el cual hemos aplicado FRP como el principal paradigma de programación. Hemos presentado las herramientas y librerías más relevantes de FRP para aplicaciones web con Angular (framework usado en el caso de uso), destacando el uso de RxJS, una librería con enfoque declarativo que permite la gestión de los datos de la aplicación a través de Observables y stream de datos; y que está estrechamente unido a Angular. Hemos explicado cómo la aplicación implementa este paradigma, desde su implicación en el desarrollo de la arquitectura de la aplicación hasta cómo se aplica en el diseño de los diferentes componentes y funcionalidades de la aplicación. Finalmente, hemos evaluado los posibles efectos positivos y adversos que el uso de FRP proporciona en el proceso de detección y actualización de cambios en la UI, el consumo de memoria de la aplicación y las posibles pérdidas de memoria causadas por la liberación de los recursos destinados a los stream de datos.---ABSTRACT---In this thesis we have made a study on the reactive functional programming paradigm (FRP) focused on the development of web applications. We have conducted a review of the literature related to this paradigm, as well as the paradigms on which it is based: functional and reactive programming. In order to know the practical applications of this paradigm, we have presented a use case in which we have developed a web application for the "Initiative for Digital Transformation" platform (https://idt.in.tum.de/) in which we have applied FRP as the main programming paradigm. We have presented the most relevant tools and libraries for the implementation of FRP in web applications with Angular (framework used in the use case) highlighting the use of RxJS, a library with a declarative approach that allows managing the data of an application through Observables and data streams and that is strongly linked to Angular. We have explained how the application implements this paradigm, from its involvement in the development of the application architecture to how it is applied in the design of the different components and functionalities of the application. Finally, we have evaluated the possible positive and adverse effects that the use of FRP may have on application performance. These evaluations have measured the benefits that FRP brings in the process of detecting and updating changes in the UI, the application's memory consumption and the possible memory leaks caused by the incorrect release of resources destined to the data streams.

More information

Item ID: 64383
DC Identifier: http://oa.upm.es/64383/
OAI Identifier: oai:oa.upm.es:64383
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 06 Oct 2020 09:00
Last Modified: 06 Oct 2020 09:00
  • 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