Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)

Las aplicaciones reactivas exigen la detección de los cambios que se producen en un dominio de interés y, para que las reacciones sean oportunas, los ejemplos van desde simples aplicaciones interactivas hasta complejas tareas de monitoreo que implican sistemas distribuidos y heterogéneos. En los últ...

Full description

Autores:
Beltrán Franco, Daniel Eduardo
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2019
Institución:
Escuela Colombiana de Ingeniería Julio Garavito
Repositorio:
Repositorio Institucional ECI
Idioma:
spa
OAI Identifier:
oai:repositorio.escuelaing.edu.co:001/973
Acceso en línea:
https://catalogo.escuelaing.edu.co/cgi-bin/koha/opac-detail.pl?biblionumber=22039
https://repositorio.escuelaing.edu.co/handle/001/973
Palabra clave:
Lenguaje de Programación
Procesamiento de Eventos
Flujo de Datos
Programación reactiva
Programming language
Event Processing
Data flow
Reactive programming
Rights
openAccess
License
Derechos Reservados - Escuela Colombiana de Ingeniería Julio Garavito
id ESCUELAIG2_742798dd926bed50bd2d2f1a344ba001
oai_identifier_str oai:repositorio.escuelaing.edu.co:001/973
network_acronym_str ESCUELAIG2
network_name_str Repositorio Institucional ECI
repository_id_str
dc.title.spa.fl_str_mv Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
dc.title.alternative.spa.fl_str_mv On the implementation of a distributed real-time reactive programming language
Sobre la implementación de un lenguaje de programación reactivo distribuido en tiempo real
title Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
spellingShingle Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
Lenguaje de Programación
Procesamiento de Eventos
Flujo de Datos
Programación reactiva
Programming language
Event Processing
Data flow
Reactive programming
title_short Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
title_full Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
title_fullStr Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
title_full_unstemmed Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
title_sort Reactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)
dc.creator.fl_str_mv Beltrán Franco, Daniel Eduardo
dc.contributor.advisor.spa.fl_str_mv Benavides Navarro, Luis Daniel (dir)
dc.contributor.author.spa.fl_str_mv Beltrán Franco, Daniel Eduardo
dc.subject.spa.fl_str_mv Lenguaje de Programación
Procesamiento de Eventos
Flujo de Datos
Programación reactiva
topic Lenguaje de Programación
Procesamiento de Eventos
Flujo de Datos
Programación reactiva
Programming language
Event Processing
Data flow
Reactive programming
dc.subject.keywords.spa.fl_str_mv Programming language
Event Processing
Data flow
Reactive programming
description Las aplicaciones reactivas exigen la detección de los cambios que se producen en un dominio de interés y, para que las reacciones sean oportunas, los ejemplos van desde simples aplicaciones interactivas hasta complejas tareas de monitoreo que implican sistemas distribuidos y heterogéneos. En los últimos años, se han propuesto diferentes paradigmas y soluciones de programación para apoyar estas aplicaciones. La Programación Reactiva ha sido el paradigma que provee soluciones a largo plazo para las organizaciones en la Era del Internet donde se producen datos en casi cualquier máquina, conexión, aplicación, etc. Teniendo en cuenta que actualmente las aplicaciones web requieren mucho más dinamismo, es vital que éstas se actualicen sin utilizar dependencias externas o internas. Se espera entonces que un sistema interactúe con su entorno, intercalando temporalmente entradas y salidas, lo que significa que dentro de un tiempo adecuado (dependiendo de la aplicación) el sistema devuelva una respuesta en función de las entradas recibidas y continúa con el ciclo de ejecución, esto es, ser un cliente asíncrono. Los sistemas de programación basados en eventos (específicamente el Procesamiento de Eventos Complejos) permiten la definición de situaciones de alto nivel de interés, desde eventos primitivos de bajo nivel detectados en el entorno hasta la producción y consumo de grandes cantidades de datos. En este trabajo, nos centramos en mostrar un lenguaje reactivo enfocado a la distribución adoptando principios reactivos como: arquitectura basada en mensajes, capacidad de respuesta, elasticidad y resiliencia. También presentamos el estado del arte de la programación reactiva y la forma en que el lenguaje reactivo soporta los valores que cambian con el tiempo y su composición como abstracciones de lenguaje dedicado con reconocimiento de ciertos patrones que se comportan de acuerdo a un contexto dado. El estado del arte expone las investigaciones de diferentes comunidades, pertenecientes a las áreas de bases de datos, sistemas distribuidos y lenguajes de programación. Creemos que una comprensión más profunda de estos campos de investigación, incluyendo sus beneficios y limitaciones, sus similitudes y diferencias, podría impulsar nuevos desarrollos en el apoyo a las aplicaciones reactivas. A pesar de algunas diferencias entre las implementaciones, creemos que tal comparación puede desencadenar una discusión interesante entre las comunidades, favorecer el intercambio de conocimientos y dejar que surjan nuevas ideas.
publishDate 2019
dc.date.accessioned.spa.fl_str_mv 2019-08-01T19:58:08Z
dc.date.available.spa.fl_str_mv 2019-08-01T19:58:08Z
dc.date.issued.spa.fl_str_mv 2019
dc.date.accessioned.none.fl_str_mv 2021-10-01T16:03:45Z
dc.date.available.none.fl_str_mv 2021-10-01T16:03:45Z
dc.type.spa.fl_str_mv Trabajo de grado - Pregrado
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.spa.fl_str_mv Text
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/TP
format http://purl.org/coar/resource_type/c_7a1f
status_str publishedVersion
dc.identifier.uri.spa.fl_str_mv https://catalogo.escuelaing.edu.co/cgi-bin/koha/opac-detail.pl?biblionumber=22039
dc.identifier.uri.none.fl_str_mv https://repositorio.escuelaing.edu.co/handle/001/973
url https://catalogo.escuelaing.edu.co/cgi-bin/koha/opac-detail.pl?biblionumber=22039
https://repositorio.escuelaing.edu.co/handle/001/973
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.spa.fl_str_mv Derechos Reservados - Escuela Colombiana de Ingeniería Julio Garavito
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.spa.fl_str_mv https://creativecommons.org/licenses/by-nc/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0)
rights_invalid_str_mv Derechos Reservados - Escuela Colombiana de Ingeniería Julio Garavito
https://creativecommons.org/licenses/by-nc/4.0/
Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0)
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Escuela Colombiana de Ingeniería Julio Garavito
dc.publisher.program.spa.fl_str_mv Ingeniería de Sistemas
institution Escuela Colombiana de Ingeniería Julio Garavito
bitstream.url.fl_str_mv https://repositorio.escuelaing.edu.co/bitstream/001/973/1/Beltr%c3%a1n%20Franco%2c%20Daniel%20Eduardo-2019.pdf
https://repositorio.escuelaing.edu.co/bitstream/001/973/2/Autorizacion.pdf
https://repositorio.escuelaing.edu.co/bitstream/001/973/3/license.txt
https://repositorio.escuelaing.edu.co/bitstream/001/973/6/Beltr%c3%a1n%20Franco%2c%20Daniel%20Eduardo-2019.pdf.txt
https://repositorio.escuelaing.edu.co/bitstream/001/973/8/Autorizacion.pdf.txt
https://repositorio.escuelaing.edu.co/bitstream/001/973/7/Beltr%c3%a1n%20Franco%2c%20Daniel%20Eduardo-2019.pdf.jpg
https://repositorio.escuelaing.edu.co/bitstream/001/973/9/Autorizacion.pdf.jpg
bitstream.checksum.fl_str_mv 4420ba1591832e487b165296dffa6485
94d4a925bf6e85e9669a50d06cc2b295
5a7ca94c2e5326ee169f979d71d0f06e
ec3f5f39e79d2a1a04ae85545925785f
e1c06d85ae7b8b032bef47e42e4c08f9
3f6c3213150dbe99941dcbdb920fbca3
ca386d3fbe5f58120805aeffb9a9b4a1
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Escuela Colombiana de Ingeniería Julio Garavito
repository.mail.fl_str_mv repositorio.eci@escuelaing.edu.co
_version_ 1814355620658151424
spelling Benavides Navarro, Luis Daniel (dir)bb6cc624667910f3d2e37e10bf55c2db300Beltrán Franco, Daniel Eduardo4e0c08e561d0bf90615d626ab0e63e5e6002019-08-01T19:58:08Z2021-10-01T16:03:45Z2019-08-01T19:58:08Z2021-10-01T16:03:45Z2019https://catalogo.escuelaing.edu.co/cgi-bin/koha/opac-detail.pl?biblionumber=22039https://repositorio.escuelaing.edu.co/handle/001/973Las aplicaciones reactivas exigen la detección de los cambios que se producen en un dominio de interés y, para que las reacciones sean oportunas, los ejemplos van desde simples aplicaciones interactivas hasta complejas tareas de monitoreo que implican sistemas distribuidos y heterogéneos. En los últimos años, se han propuesto diferentes paradigmas y soluciones de programación para apoyar estas aplicaciones. La Programación Reactiva ha sido el paradigma que provee soluciones a largo plazo para las organizaciones en la Era del Internet donde se producen datos en casi cualquier máquina, conexión, aplicación, etc. Teniendo en cuenta que actualmente las aplicaciones web requieren mucho más dinamismo, es vital que éstas se actualicen sin utilizar dependencias externas o internas. Se espera entonces que un sistema interactúe con su entorno, intercalando temporalmente entradas y salidas, lo que significa que dentro de un tiempo adecuado (dependiendo de la aplicación) el sistema devuelva una respuesta en función de las entradas recibidas y continúa con el ciclo de ejecución, esto es, ser un cliente asíncrono. Los sistemas de programación basados en eventos (específicamente el Procesamiento de Eventos Complejos) permiten la definición de situaciones de alto nivel de interés, desde eventos primitivos de bajo nivel detectados en el entorno hasta la producción y consumo de grandes cantidades de datos. En este trabajo, nos centramos en mostrar un lenguaje reactivo enfocado a la distribución adoptando principios reactivos como: arquitectura basada en mensajes, capacidad de respuesta, elasticidad y resiliencia. También presentamos el estado del arte de la programación reactiva y la forma en que el lenguaje reactivo soporta los valores que cambian con el tiempo y su composición como abstracciones de lenguaje dedicado con reconocimiento de ciertos patrones que se comportan de acuerdo a un contexto dado. El estado del arte expone las investigaciones de diferentes comunidades, pertenecientes a las áreas de bases de datos, sistemas distribuidos y lenguajes de programación. Creemos que una comprensión más profunda de estos campos de investigación, incluyendo sus beneficios y limitaciones, sus similitudes y diferencias, podría impulsar nuevos desarrollos en el apoyo a las aplicaciones reactivas. A pesar de algunas diferencias entre las implementaciones, creemos que tal comparación puede desencadenar una discusión interesante entre las comunidades, favorecer el intercambio de conocimientos y dejar que surjan nuevas ideas.Reactive applications demand detection of the changes that occur in a domain of interest and for timely reactions, examples rang from simple interactive applications to complex monitoring tasks involving distributed and heterogeneous systems. Over the last years, different programming paradigms and solutions have been proposed to support such applications. Reactive Programming has been the paradigm provided for long time solutions to the organizations in the Internet Era where data is produced in almost any machine, connection, application, etc. Taking into account that currently web applications require much more dynamism, it is vital that they update without using external or internal dependencies. It is expected then, that a system interacts with its environment, interspersing inputs and outputs temporarily, which means that within an adequate amount of time (depending on the application) the system returns a response depending on the received inputs and continues with the cycle of execution, that is, being an asynchronous client. Event-based programming (specifically Complex Event Processing) systems enable the definition of high level situations of interest from low level primitive events detected in the environment to big data production and consumption. In this paper, we focus on showing a distributed reactive focused language adopting reactive principles like: message-driven architecture, responsiveness, elasticity and resiliency. We also present the reactive programming state of the art and the form the reactive language supports time-changing values and their composition as dedicated language abstractions with recognition of certain patterns that behave accordingly to a given context. The state of the art exposes the investigations by different communities, belonging to the databases, distributed systems, and programming languages areas. It is our belief that a deeper understanding of these research fields including their benefits and limitations their similarities and differences, could drive further developments in supporting reactive applications. Despite some differences between the implementations, we believe that such comparison can trigger an interesting discussion across the communities, favor knowledge sharing, and let new ideas emerge.PregradoIngeniero(a) de Sistemasapplication/pdfspaEscuela Colombiana de Ingeniería Julio GaravitoIngeniería de SistemasDerechos Reservados - Escuela Colombiana de Ingeniería Julio Garavitohttps://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccessAtribución-NoComercial 4.0 Internacional (CC BY-NC 4.0)http://purl.org/coar/access_right/c_abf2Lenguaje de ProgramaciónProcesamiento de EventosFlujo de DatosProgramación reactivaProgramming languageEvent ProcessingData flowReactive programmingReactive Systems: Arquitectura y desempeño de middleware reactivo para el procesamiento de grandes volúmenes de datos (BigData)On the implementation of a distributed real-time reactive programming languageSobre la implementación de un lenguaje de programación reactivo distribuido en tiempo realTrabajo de grado - Pregradoinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1fTextinfo:eu-repo/semantics/bachelorThesishttp://purl.org/redcol/resource_type/TPhttp://purl.org/coar/version/c_970fb48d4fbd8a85ORIGINALBeltrán Franco, Daniel Eduardo-2019.pdfArchitecture and operation of a reactive middleware for processing large volumes of data (Big Data) and its application on a message communication environment.application/pdf2207609https://repositorio.escuelaing.edu.co/bitstream/001/973/1/Beltr%c3%a1n%20Franco%2c%20Daniel%20Eduardo-2019.pdf4420ba1591832e487b165296dffa6485MD51open accessAutorizacion.pdfAutorización de publicación en el repositorio de colecciones digitales de la Escuela (aprobada por el Director, firmada por el Decano)application/pdf1634668https://repositorio.escuelaing.edu.co/bitstream/001/973/2/Autorizacion.pdf94d4a925bf6e85e9669a50d06cc2b295MD52metadata only accessLICENSElicense.txttext/plain1881https://repositorio.escuelaing.edu.co/bitstream/001/973/3/license.txt5a7ca94c2e5326ee169f979d71d0f06eMD53open accessTEXTBeltrán Franco, Daniel Eduardo-2019.pdf.txtBeltrán Franco, Daniel Eduardo-2019.pdf.txtExtracted texttext/plain69763https://repositorio.escuelaing.edu.co/bitstream/001/973/6/Beltr%c3%a1n%20Franco%2c%20Daniel%20Eduardo-2019.pdf.txtec3f5f39e79d2a1a04ae85545925785fMD56open accessAutorizacion.pdf.txtAutorizacion.pdf.txtExtracted texttext/plain2https://repositorio.escuelaing.edu.co/bitstream/001/973/8/Autorizacion.pdf.txte1c06d85ae7b8b032bef47e42e4c08f9MD58metadata only accessTHUMBNAILBeltrán Franco, Daniel Eduardo-2019.pdf.jpgBeltrán Franco, Daniel Eduardo-2019.pdf.jpgGenerated Thumbnailimage/jpeg15107https://repositorio.escuelaing.edu.co/bitstream/001/973/7/Beltr%c3%a1n%20Franco%2c%20Daniel%20Eduardo-2019.pdf.jpg3f6c3213150dbe99941dcbdb920fbca3MD57open accessAutorizacion.pdf.jpgAutorizacion.pdf.jpgGenerated Thumbnailimage/jpeg13524https://repositorio.escuelaing.edu.co/bitstream/001/973/9/Autorizacion.pdf.jpgca386d3fbe5f58120805aeffb9a9b4a1MD59metadata only access001/973oai:repositorio.escuelaing.edu.co:001/9732021-10-01 17:13:33.307open accessRepositorio Escuela Colombiana de Ingeniería Julio Garavitorepositorio.eci@escuelaing.edu.coU0kgVVNURUQgSEFDRSBQQVJURSBERUwgR1JVUE8gREUgUEFSRVMgRVZBTFVBRE9SRVMgREUgTEEgQ09MRUNDScOTTiAiUEVFUiBSRVZJRVciLCBPTUlUQSBFU1RBIExJQ0VOQ0lBLgoKQXV0b3Jpem8gYSBsYSBFc2N1ZWxhIENvbG9tYmlhbmEgZGUgSW5nZW5pZXLDrWEgSnVsaW8gR2FyYXZpdG8gcGFyYSBwdWJsaWNhciBlbCB0cmFiYWpvIGRlIGdyYWRvLCBhcnTDrWN1bG8sIHZpZGVvLCAKY29uZmVyZW5jaWEsIGxpYnJvLCBpbWFnZW4sIGZvdG9ncmFmw61hLCBhdWRpbywgcHJlc2VudGFjacOzbiB1IG90cm8gKGVuICAgIGFkZWxhbnRlIGRvY3VtZW50bykgcXVlIGVuIGxhIGZlY2hhIAplbnRyZWdvIGVuIGZvcm1hdG8gZGlnaXRhbCwgeSBsZSBwZXJtaXRvIGRlIGZvcm1hIGluZGVmaW5pZGEgcXVlIGxvIHB1YmxpcXVlIGVuIGVsIHJlcG9zaXRvcmlvIGluc3RpdHVjaW9uYWwsIAplbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgbGEgTGV5IDQ0IGRlIDE5OTMsIHkgZGVtw6FzIGxleWVzIHkganVyaXNwcnVkZW5jaWEgdmlnZW50ZQphbCByZXNwZWN0bywgcGFyYSBmaW5lcyBlZHVjYXRpdm9zIHkgbm8gbHVjcmF0aXZvcy4gRXN0YSBhdXRvcml6YWNpw7NuIGVzIHbDoWxpZGEgcGFyYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIAp1c28gc29icmUgbGEgb2JyYSBlbiBmb3JtYXRvIGRpZ2l0YWwsIGVsZWN0csOzbmljbywgdmlydHVhbDsgeSBwYXJhIHVzb3MgZW4gcmVkZXMsIGludGVybmV0LCBleHRyYW5ldCwgeSBjdWFscXVpZXIgCmZvcm1hdG8gbyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyLgpFbiBtaSBjYWxpZGFkIGRlIGF1dG9yLCBleHByZXNvIHF1ZSBlbCBkb2N1bWVudG8gb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsbyBlbGFib3LDqSBzaW4gCnF1ZWJyYW50YXIgbmkgc3VwbGFudGFyIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcy4gUG9yIGxvIHRhbnRvLCBlcyBkZSBtaSBleGNsdXNpdmEgYXV0b3LDrWEgeSwgZW4gY29uc2VjdWVuY2lhLCAKdGVuZ28gbGEgdGl0dWxhcmlkYWQgc29icmUgw6lsLiBFbiBjYXNvIGRlIHF1ZWphIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyByZWZlcmVudGUgYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgCmVsIGRvY3VtZW50byBlbiBjdWVzdGnDs24sIGFzdW1pcsOpIGxhIHJlc3BvbnNhYmlsaWRhZCB0b3RhbCB5IHNhbGRyw6kgZW4gZGVmZW5zYSBkZSBsb3MgZGVyZWNob3MgYXF1w60gYXV0b3JpemFkb3MuIEVzdG8gCnNpZ25pZmljYSBxdWUsIHBhcmEgdG9kb3MgbG9zIGVmZWN0b3MsIGxhIEVzY3VlbGEgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KVG9kYSBwZXJzb25hIHF1ZSBjb25zdWx0ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIEVzY3VlbGEsIGVsIENhdMOhbG9nbyBlbiBsw61uZWEgdSBvdHJvIG1lZGlvIGVsZWN0csOzbmljbywgCnBvZHLDoSBjb3BpYXIgYXBhcnRlcyBkZWwgdGV4dG8sIGNvbiBlbCBjb21wcm9taXNvIGRlIGNpdGFyIHNpZW1wcmUgbGEgZnVlbnRlLCBsYSBjdWFsIGluY2x1eWUgZWwgdMOtdHVsbyBkZWwgdHJhYmFqbyB5IGVsIAphdXRvci5Fc3RhIGF1dG9yaXphY2nDs24gbm8gaW1wbGljYSByZW51bmNpYSBhIGxhIGZhY3VsdGFkIHF1ZSB0ZW5nbyBkZSBwdWJsaWNhciB0b3RhbCBvIHBhcmNpYWxtZW50ZSBsYSBvYnJhIGVuIG90cm9zIAptZWRpb3MuRXN0YSBhdXRvcml6YWNpw7NuIGVzdMOhIHJlc3BhbGRhZGEgcG9yIGxhcyBmaXJtYXMgZGVsIChsb3MpIGF1dG9yKGVzKSBkZWwgZG9jdW1lbnRvLiAKU8OtIGF1dG9yaXpvIChhbWJvcykK