Herramienta autoconfigurable para el desarrollo de aplicaciones distribuidas de tiempo real flexibles y dinámicas

Herramienta autoconfigurable para el desarrollo de aplicaciones distribuidas de tiempo real flexibles y dinámicas

Christian Iván Mejía Escobar
 

Texto completo de la Tesis     

 


Resumen

La evolución experimentada por los sistemas de computación, desde centralizados a distribuidos, ha motivado el surgimiento de aplicaciones que demandan mayor complejidad, seguridad, disponibilidad, escalabilidad, etc. Cada vez se hace más necesario la intervención de sistemas distribuidos, donde varias computadoras conectadas por medio de una red trabajan conjuntamente para satisfacer las necesidades anteriormente mencionadas. El paradigma de programación orientada a objetos ha demostrado ser exitoso para el desarrollo de aplicaciones, por lo que es utilizado ampliamente en ambientes distribuidos. Un middleware como Java RMI permite el desarrollo y la ejecución de aplicaciones distribuidas orientadas a objetos de propósito general; sin embargo, existen aplicaciones especializadas, cuya ejecución debe considerar parámetros de planificación y restricciones de tiempo. Este tipo de aplicaciones se presentan en el dominio de tiempo real y su utilización es cada vez más común en sistemas distribuidos. A pesar de que Java no fue diseñado para aplicaciones de tiempo real, posee ventajas como simplicidad y portabilidad, consideradas muy prometedoras por la comunidad de tiempo real. Por tal razón, se creó la especificación de tiempo real para Java (RTSJ), pero se enfoca intencionalmente para trabajar en un ambiente centralizado, i.e. no provee soporte para aplicaciones distribuidas. En el presente trabajo de tesis proponemos un mecanismo desarrollado en lenguaje Java que permite propagar los parámetros de planificación y las restricciones de tiempo de aplicaciones distribuidas entre los nodos que conforman un sistema distribuido. Nuestra solución aprovecha la actual RTSJ, combinada con herramientas de Java tales como: API de sockets, el modelo de Java RMI, carga dinámica de bytecodes, y programación multi-hilo.

Abstract

The development on computing systems, from centralized to distributed systems, has made possible a new kind of applications, with more complexity and that require higher security, availability, scalability, etc. Distributed systems are more and more useful. They are characterized by having multiple computers connected through a network, working together and collaborating to meet the requirements mentioned above. The paradigm of object-oriented programming has proved to be successful for the development of software and today it is widely used in distributed environments. A middleware like Java RMI enables the development and execution of object-oriented general purpose distributed applications. For special purpose applications, e.g. real time applications, with scheduling parameters and time constraints, Java RMI is not the must suitable tool, however such type of applications are increasingly common in distributed systems. Java was not designed for real time applications, but it has some advantages such as portability and simplicity, which are considered very promising by the real time community. For this reason, the Real-Time Specification for Java (RTSJ) was created, but it is focused on centralized systems, i.e. there is not support for distributed applications. In this thesis, we propose a mechanism developed in Java that allows the propagation of scheduling parameters and time constraints of distributed applications. This transfer of context is carried out among the nodes of distributed system. Our solution takes advantage of the current RTSJ, combined with Java tools such as API sockets, Java RMI model, dynamic loading, and multithreading programming.