Por favor, use este identificador para citar o enlazar este ítem:
http://repositorio.utm.mx:8080/jspui/handle/123456789/106
Título : | Implementación en erlang de sistemas distribuidos a través del cálculo de eventos |
Autor : | FELIPE DE JESUS TRUJILLO ROMERO;100865 Trujillo Romero, Felipe De Jesús Aguilar López, José Yedid |
Palabras clave : | sistemas distribuidos, sistemas operativos (computadoras), erlang (software) |
Fecha de publicación : | mar-2014 |
Editorial : | Universidad Tecnológica de la Mixteca |
Citación : | 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. |
Resumen : | 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. |
URI : | http://repositorio.utm.mx:8080/jspui/handle/123456789/106 |
Aparece en las colecciones: | Maestría |
Ficheros en este ítem:
Fichero | Descripción | Tamaño | Formato | |
---|---|---|---|---|
2014-MTCA-JYAL.pdf | 872.87 kB | Adobe PDF | Visualizar |
Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons