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...
- 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 |