Implementación en erlang de sistemas distribuidos a través del cálculo de eventos

Fuente: Universidad Tecnológica de la Mixteca

El desarrollo de software es una actividad compleja que involucra el uso de procesos, metodologías, tecnologías, modelado de sistemas, prácticas de programación, entre otros, los cuales evolucionan y surgen nuevos debido a necesidades de la época: programación directa en hardware, automatización de...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Aguilar López, José Yedid
Formato: Tesis de Maestría
Lenguaje:español
Publicado: Universidad Tecnológica de la Mixteca 2014
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1877695581027041280
author Aguilar López, José Yedid
author_facet Aguilar López, José Yedid
author_sort Aguilar López, José Yedid
collection Repositorio Institucional UTM
description El desarrollo de software es una actividad compleja que involucra el uso de procesos, metodologías, tecnologías, modelado de sistemas, prácticas de programación, entre otros, los cuales evolucionan y surgen nuevos debido a necesidades de la época: programación directa en hardware, automatización de cálculos científicos y financieros, aplicaciones para Internet, reúso de software, cómputo distribuido y las aplicaciones para dispositivos móviles, son unos casos; además de la necesidad de crear software cada vez más diverso, robusto y complejo. El campo que estudia esto es la ingeniería de software, una disciplina que se ocupa de todos los aspectos de la producción de software. Entre las actividades fundamentales que se deben realizar en esta ingeniería, independientemente de la metodología que se siga, se encuentra la especificación de software, donde se definen las funcionalidades y limitaciones que tendrá el software apoyándose en notaciones gráficas, matemáticas y lógicas principalmente. Esta tesis de maestría se sitúa en este contexto, se propone una notación para el modelado de sistemas distribuidos y concurrentes con paso de mensajes, los cuales se caracterizan por el uso de procesos y las formas en que estos se comunican. La notación podrá ser utilizada en la etapa de especificación de estos sistemas y también en la etapa de implementación, ya que posee una correspondencia unidireccional con la programación concurrente del lenguaje funcional Erlang. El modelado con esta notación será para aquellos procesos que se comuniquen a través del paradigma paso de mensajes, está basada en el formalismo lógico cálculo de eventos y a diferencia de otras notaciones, toma en cuenta la variable tiempo para indicar de forma explícita cuando ejecutar la creación de nuevos procesos, el envío de mensajes y la recepción de estos entre procesos. Una distinción más con notaciones como las Redes de Petri o Álgebras de Procesos (CCS, CSP, ACP, Cálculo Pi) es que estas todavía carecen de una correspondencia unidireccional con la sintaxis de Erlang que permita dar la pauta para programar el sistema. Se ha elegido a Erlang como plataforma de implementación debido a que está totalmente orientado al desarrollo de estos sistemas distribuidos y concurrentes, en contraste (incluso la comparación es injusta) con otros lenguajes de propósito general como Pascal, C, C++, Java o Ruby, en los que también se pueden implementar pero se realiza con los procesos nativos del sistema operativo en los que hay cuidar la memoria compartida y evitar bloqueos, o con sus máquinas virtuales que demandan más capacidad que la de Erlang, ya que este emplea procesos ligeros y los gestiona prescindiendo de los nativos librándose así de problemas conocidos cuando los procesos comparten memoria. Además, este lenguaje de programación está preparado para el uso de procesos a gran escala, existen aplicaciones y proyectos en la industria del software que utilizan este lenguaje, por ejemplo en aplicaciones web (la base de datos distribuida Amazon SimpleDB), en mensajería móvil (Whatsapp, Facebook) o en sistemas de telecomunicaciones (T-Mobile). Así, la base de la notación está dada en el cálculo de eventos, que se emplea para el razonamiento acerca de acciones que ocurren en el mundo real y sus efectos. Estas acciones y efectos se describen en forma narrativa tomando en cuenta el factor tiempo para conocer cuando ocurren. La notación que se plantea se llama ProME (notation for Process Modeling Erlang), se definen a detalle sus elementos y sintaxis a considerar para el modelado de estos sistemas, asimismo se describe cómo se da la correspondencia hacia la sintaxis de la programación concurrente de Erlang, consiguiendo una interpretación directa entre la notación basada en el cálculo de eventos y Erlang. Las contribuciones de la tesis se dan en tres sentidos: primero, la aplicación del cálculo de eventos, como un subsistema de la lógica, para la especificación de sistemas distribuidos y concurrentes con paso de mensajes; segundo, proveer una notación, como herramienta teórica, que auxilie las etapas de especificación e implementación de este tipo de sistemas; y tercero, constituir una relación entre el cálculo de eventos y la sintaxis de Erlang que facilite la programación de estos sistemas.
format Tesis de Maestría
id utm-123456789-106
institution Universidad Tecnológica de la Mixteca
language Spanish
publishDate 2014
publisher Universidad Tecnológica de la Mixteca
record_format dspace
spelling Implementación en erlang de sistemas distribuidos a través del cálculo de eventos JOSE YEDID AGUILAR LOPEZ;435930 Aguilar López, José Yedid Trujillo Romero, Felipe De Jesús FELIPE DE JESUS TRUJILLO ROMERO;100865 sistemas distribuidos, sistemas operativos (computadoras), erlang (software) 7 INGENIERIA Y TECNOLOGIA El desarrollo de software es una actividad compleja que involucra el uso de procesos, metodologías, tecnologías, modelado de sistemas, prácticas de programación, entre otros, los cuales evolucionan y surgen nuevos debido a necesidades de la época: programación directa en hardware, automatización de cálculos científicos y financieros, aplicaciones para Internet, reúso de software, cómputo distribuido y las aplicaciones para dispositivos móviles, son unos casos; además de la necesidad de crear software cada vez más diverso, robusto y complejo. El campo que estudia esto es la ingeniería de software, una disciplina que se ocupa de todos los aspectos de la producción de software. Entre las actividades fundamentales que se deben realizar en esta ingeniería, independientemente de la metodología que se siga, se encuentra la especificación de software, donde se definen las funcionalidades y limitaciones que tendrá el software apoyándose en notaciones gráficas, matemáticas y lógicas principalmente. Esta tesis de maestría se sitúa en este contexto, se propone una notación para el modelado de sistemas distribuidos y concurrentes con paso de mensajes, los cuales se caracterizan por el uso de procesos y las formas en que estos se comunican. La notación podrá ser utilizada en la etapa de especificación de estos sistemas y también en la etapa de implementación, ya que posee una correspondencia unidireccional con la programación concurrente del lenguaje funcional Erlang. El modelado con esta notación será para aquellos procesos que se comuniquen a través del paradigma paso de mensajes, está basada en el formalismo lógico cálculo de eventos y a diferencia de otras notaciones, toma en cuenta la variable tiempo para indicar de forma explícita cuando ejecutar la creación de nuevos procesos, el envío de mensajes y la recepción de estos entre procesos. Una distinción más con notaciones como las Redes de Petri o Álgebras de Procesos (CCS, CSP, ACP, Cálculo Pi) es que estas todavía carecen de una correspondencia unidireccional con la sintaxis de Erlang que permita dar la pauta para programar el sistema. Se ha elegido a Erlang como plataforma de implementación debido a que está totalmente orientado al desarrollo de estos sistemas distribuidos y concurrentes, en contraste (incluso la comparación es injusta) con otros lenguajes de propósito general como Pascal, C, C++, Java o Ruby, en los que también se pueden implementar pero se realiza con los procesos nativos del sistema operativo en los que hay cuidar la memoria compartida y evitar bloqueos, o con sus máquinas virtuales que demandan más capacidad que la de Erlang, ya que este emplea procesos ligeros y los gestiona prescindiendo de los nativos librándose así de problemas conocidos cuando los procesos comparten memoria. Además, este lenguaje de programación está preparado para el uso de procesos a gran escala, existen aplicaciones y proyectos en la industria del software que utilizan este lenguaje, por ejemplo en aplicaciones web (la base de datos distribuida Amazon SimpleDB), en mensajería móvil (Whatsapp, Facebook) o en sistemas de telecomunicaciones (T-Mobile). Así, la base de la notación está dada en el cálculo de eventos, que se emplea para el razonamiento acerca de acciones que ocurren en el mundo real y sus efectos. Estas acciones y efectos se describen en forma narrativa tomando en cuenta el factor tiempo para conocer cuando ocurren. La notación que se plantea se llama ProME (notation for Process Modeling Erlang), se definen a detalle sus elementos y sintaxis a considerar para el modelado de estos sistemas, asimismo se describe cómo se da la correspondencia hacia la sintaxis de la programación concurrente de Erlang, consiguiendo una interpretación directa entre la notación basada en el cálculo de eventos y Erlang. Las contribuciones de la tesis se dan en tres sentidos: primero, la aplicación del cálculo de eventos, como un subsistema de la lógica, para la especificación de sistemas distribuidos y concurrentes con paso de mensajes; segundo, proveer una notación, como herramienta teórica, que auxilie las etapas de especificación e implementación de este tipo de sistemas; y tercero, constituir una relación entre el cálculo de eventos y la sintaxis de Erlang que facilite la programación de estos sistemas. 2019-06-07T17:10:58Z 2019-06-07T17:10:58Z 2014-03 Tesis de Maestría publishedVersion Aguilar, J. (2014). Implementación en erlang de sistemas distribuidos a través del cálculo de eventos (Tesis para obtener el grado de Maestro en Tecnologías de Cómputo Aplicado). Universidad Tecnológica de la Mixteca, Huajuapan de León, Oaxaca. http://repositorio.utm.mx:8080/jspui/handle/123456789/106 spa REPOSITORIO NACIONAL CONACYT openAccess Atribución No Comercial Sin Derivadas http://creativecommons.org/licenses/by-nc-nd/4.0 application/pdf Universidad Tecnológica de la Mixteca
spellingShingle Implementación en erlang de sistemas distribuidos a través del cálculo de eventos
Aguilar López, José Yedid
sistemas distribuidos, sistemas operativos (computadoras), erlang (software)
7 INGENIERIA Y TECNOLOGIA
title Implementación en erlang de sistemas distribuidos a través del cálculo de eventos
title_full Implementación en erlang de sistemas distribuidos a través del cálculo de eventos
title_fullStr Implementación en erlang de sistemas distribuidos a través del cálculo de eventos
title_full_unstemmed Implementación en erlang de sistemas distribuidos a través del cálculo de eventos
title_short Implementación en erlang de sistemas distribuidos a través del cálculo de eventos
title_sort implementación en erlang de sistemas distribuidos a través del cálculo de eventos
topic sistemas distribuidos, sistemas operativos (computadoras), erlang (software)
7 INGENIERIA Y TECNOLOGIA
topic_facet sistemas distribuidos, sistemas operativos (computadoras), erlang (software)
7 INGENIERIA Y TECNOLOGIA
url http://repositorio.utm.mx/handle/123456789/106