Técnicas y extensiones para Java de tiempo real distribuido

Al igual que las aplicaciones de proposito general, las de tiempo real no hacen mas que aumentar en complejidad, forzando a que se esten explorando nuevas vias tecnologicas no consideradas previamente, como puede ser el empleo del lenguaje de proposito general Java para tales propositos. En ese camino y a dia de hoy, ya existen soluciones maduras que permiten el desarrollo de sistemas centralizados haciendo uso del lenguaje de programacion Java, pero en el dominio de los sistemas distribuidos de tiempo real se sigue careciendo de soluciones que integren dichos lenguajes con los paradigmas de distribucion de los diferentes middlewares de distribucion. En esta tesis se aborda dicha cuestion mediante una aproximacion basada en la extension de tecnologias ya existentes. Se propone un modelo computacional que esta dotado de cierto grado de independencia de la tecnologia de implementacion, pero que a la vez esta dotado de ciertas abstracciones como son el soporte para la recoleccion distribuida de basura o un servicio de nombres, propias del modelo de distribucion Java RMI (Remote Method Invocation), y de otras como es la posibilidad de utilizar mecanismos de comunicacion asincronos, de utilidad en el desarrollo de muchos sistemas de tiempo real. Fijado un modelo, se proponen extensiones para el desarrollo de aplicaciones distribuidas de tiempo real basadas en el paradigma de distribucion de la tecnologia RMI y en la extension de tiempo real RTSJ (Real Time Specification for Java), estableciendose relaciones con otras aproximaciones ya existentes en el estado del arte. Tambien se proponen una serie de extensiones al lenguaje RTSJ (al modelo de regiones, al de referencias y al de entidades concurrentes) que facilitan el desarrollo tanto de aplicaciones centralizadas como distribuidas de tiempo real. Y por ultimo, se realiza una validacion empirica en la que se verifica experimentalmente que el control de las prioridades de ejecucion en el servidor, los modelos de gestion de memoria basados en regiones, el control del establecimiento de las conexiones, la inclusion de mecanismos de comunicacion remota asincronos, o incluso el tipo de datos intercambiados entre el cliente y el servidor durante la invocacion remota, son capaces de influir significativamente en los tiempos de las aplicaciones Java de tiempo real distribuido. ____________________________________________ Like general purpose applications, the real-time ones are constantly increasing in complexity; this requires the exploration of new technological alternatives not previously considered, as it could be the use of the general-purpose and trendy development languages such as Java. Up to now, there are some fairly mature solutions for real-time Java; however, the area of distributed real-time systems still lacks similar support, thus requiring an extraordinary effort in order to integrate the current centralized real-time Java languages with the traditional middleware distribution paradigms. This thesis address this problem by giving an approach based on the extensions inspired in already existing technologies. This work proposes a computation model that offers technological independence; at the same time, it provides a set of impor- tant abstractions such as support for a distributed garbage collection and a naming service, more related to the RMI (Remote Method Invocation) model, and other contributions like the possibility of using asynchronous remote invocations which are useful in the development of many real-time systems. Moreover, this work also proposes programming interfaces for this computation model; these interfaces are based on the RMI (Remote Method Invocation) and the RTSJ (Real-time Specification for Java) technologies, that are compared with other ones of the current state-of-the-art. Also, in the context of the RTSJ, a set of three extensions (one for the region model, another for the reference model and a last one for the concurrent entity model) are proposed to simplify the development of both, centralized and distributed real-time applications. Eventually, an empirical validation is presented in order to experimentally observe that the control of the execution priority at the server, the region-based memory management techniques, the use of pre-established connections or even the type of data exchanged between a client and a server, may influence significantly in the response time of the distributed real-time Java applications.