3 research outputs found

    Mecanismos reutilizables para mejorar la confiabilidad de aplicaciones desarrolladas con Python

    Full text link
    [ES] La confiabilidad es la propiedad que atribuimos a aquellos sistemas informáticos en los que es posible depositar una confianza justificada en su uso. El problema es que los mecanismos de cifrado y tolerancia a fallos necesarios se mezclan en la implementaciones con el código funcional de las mismas, dificultando mucho su mantenimiento y limitando las capacidades de adaptación y evolución del sistema. La compilación abierta, la orientación a aspectos o la programación reflexiva son sólo algunas de las alternativas existentes para poder desarrollar soluciones informáticas con una clara separación entre mecanismos funcionales y no-funcionales, como lo son los orientados a mejorar la confiabilidad de dichas soluciones. Python es un lenguaje de programación de propósito general muy utilizado actualmente en multitud de ámbitos aplicativos en los que se desarrollan soluciones con requerimientos de confidencialidad y redundancia para tolerar problemas de integridad o averías producidas por fallos de origen HW o SW. Esta tesina de máster explora el interés de utilizar los decoradores (decorators) de Python como mecanismos de encapsulación (wrapping) para establecer en las aplicaciones desarrolladas con este lenguaje una clara separación entre mecanismos funcionales y de confiabilidad (cifrado y tolerancia a fallos en nuestro caso). Se busca facilitar no sólo el desarrollo de estos mecanismos, sino también su reutilización, es decir, la adaptación y uso de los mismos a distintas aplicaciones en distintos contextos de uso.[EN] Dependability is the property of computer systems that consistently performs according to its specifications. The need of mixing the necessary mechanisms of encryption and fault tolerance in system implementations with the functional code makes the resulting code very difficult to maintain and limits its ability to adapt and evolve. Open compilation, aspect orientation or reflective programming are only some of the alternatives available to develop software solutions with a clear separation between functional and non-functional mechanisms, such as those required for improving the dependability of such solutions. Python is a general-purpose programming language widely used nowadays in many critical application domains where solutions require confidentiality and redundancy to tolerate the consequences of HW and/or SW faults. This master thesis explores the interest of using Python decorators as wrapping mechanisms to establish a clear separation between functional and dependability mechanisms (encryption and fault tolerance in our case) in applications developed with this language. The purpose is to ease the development of these mechanisms, their reuse, adaptation, and usage in disparate applications and in different contexts of use.Dzichkovskii, I. (2020). Mecanismos reutilizables para mejorar la confiabilidad de aplicaciones desarrolladas con Python. http://hdl.handle.net/10251/149422TFG

    A Metaobject Protocol for Fault-Tolerant CORBA Applications

    No full text
    The use of metalevel architectures for the implementation of fault-tolerant systems is today very appealing. Nevertheless, all such fault-tolerant systems have used a general-purpose metaobject protocol (MOP) or are based on restricted reflective features of some object-oriented language. According to our past experience, we define in this paper a suitable metaobject protocol, called FT-MOP for building fault-tolerant systems. We explain how to realize a specialized runtime MOP using compile-time reflection. This MOP is CORBA compliant: it enables the execution and the state evolution of CORBA objects to be controlled and enables the fault tolerance metalevel to be developed as CORBA software

    Adaptation en ligne de mécanismes de tolérance aux fautes par une approche à composants ouverts

    Get PDF
    L'adaptation en-ligne du logiciel de tolérance aux fautes permet de renforce la sûreté de fonctionnement du système et prenant en compte son environnement. L’adaptation nécessite de nouvelles techniques de conception. Ces travaux visent à comprendre et maîtriser l'impact des modifications du logiciel de tolérance aux fautes en opération sur les fonctionnalités du système, pour en maîtriser les effets de bords. L’approche proposée introduit une architecture réflexive à composants et une modélisation du logiciel. Un modèle structurel du logiciel permet de calculer et appliquer les modifications du contenu du logiciel. Un modèle comportemental décrit les observations attendues en fonctionnement. Il permet de déterminer les états permettant d’appliquer les modifications, d’amener et de maintenir le système dans ces états. Ces travaux montrent que, grâce aux capacités de manipulation et de contrôle en ligne du logiciel, la modification des mécanismes de tolérance aux fautes peut être réalisée en ligne de manière maîtrisée. ABSTRACT : On-line fault tolerance adaptation aims at enforcing system dependability by taking into account operational conditions and environment. Adapting the system requires new design techniques. This work aims at understanding and mastering the impact of such software modification in operation, especially regarding side effects on functionalities and dependability properties. Our approach relies on a reflective architecture based on components and models of the software that reflects on the one hand the content of the software in terms of state and algorithms (architectural model) and on the other hand the expected correct behaviour (behavioural model). The first one is used to determine the modifications and apply them at runtime, and the second one is used to drive the system in a state in which modifications can be done consistently, and maintain the system in such a state. We show that; thanks to manipulation capabilities and execution control, we can master the modification of fault tolerance software and ensure correctness properties
    corecore