Voici les éléments 1 - 10 sur 595
  • Publication
    Restriction temporaire
  • Publication
    Restriction temporaire
  • Publication
    Accès libre
    Using multiperspective observations to improve data quality in distributed systems
    Les systèmes pilotés par les données deviennent rapidement un paradigme de premier plan, l’avènement de l’IA et des systèmes cyber-physiques intelligents devenant une caractéristique déterminante de l’époque moderne. On dit souvent que la qualité des données qui entrent dans ces systèmes est le principal déterminant du comportement et des décisions qu’ils produisent. Il est donc primordial de fournir de meilleures stratégies de gestion et d’amélioration de la qualité des données pour les systèmes autonomes. Un autre attribut de l’infrastructure moderne basée sur les données est sa nature hautement distribuée. En effet, les déploiements de cloud, d’IoT et de continuum/fog sont presque omniprésents dans la pratique actuelle. Dans de nombreux cas, les systèmes pilotés par les données susmentionnés sont déployés sur ce type d’infrastructure en premier lieu. Nous voyons une opportunité de tirer parti de l’ubiquité des ressources de calcul distribuées pour ajouter une couche d’assurance qualité aux données. Notre travail s’inspire de deux sources principales. D’une part, la nécessité de collecter de manière cohérente des données brutes de haute qualité et des informations et mesures dérivées, en présence d’erreurs, de problèmes et d’autres interférences. D’autre part, nous nous inspirons de la fusion de données, une méthodologie couramment utilisée pour combiner des données provenant de différentes sources afin d’obtenir des informations de meilleure qualité que la somme de leurs parties. Nous envisageons une généralisation de la fusion de données à tous les formats d’ensembles de données, en particulier lorsqu’elles sont obtenues en doublons redondants par des observateurs indépendants. Nous appelons ce type d’observation une "observation multiperspective". Notre méthodologie de base consiste à concevoir, mettre en oeuvre et évaluer ce concept d’observation multi-perspective. La première partie est un système d’observateurs indépendants, représentés comme des noeuds dans une architecture distribuée, des collaborateurs dans un projet crowdsourcé ou même simplement des capteurs matériels dans une configuration traditionnelle de fusion de capteurs. Nous commençons par présenter la première partie de cette stratégie d’observation, l’acquisition de données. Nous présentons notre premier scénario motivant, qui consiste à suivre l’évolution de l’écosystème cloud-native dans un observatoire distribué "démocratique". Nous fournissons ensuite notre implémentation de cet observatoire et présentons son utilisation pour comprendre et améliorer le support matériel dans les images Docker. En outre, nous discutons de l’intégration de notre système d’acquisition de données avec des outils de reproductibilité et de preuve des données centrés sur la science des données. Ce travail nous permet également d’étudier les limites et les défis liés à l’obtention de données de la part d’observateurs indépendants. Nous utilisons nos résultats pour développer nos méthodologies dans la partie suivante de ce travail. Nous présentons ensuite la solution que nous proposons pour résoudre les problèmes de qualité des données découverts : Consensus centré sur les données (DCC). En utilisant notre système d’acquisition de données et les données que nous avons obtenues, nous développons une architecture de système pour fusionner les observations en une vue commune de la vérité, sur laquelle tous les observateurs sont d’accord. Nous étudions ensuite les algorithmes que nous pouvons utiliser pour y parvenir, ainsi que les implications de notre système en termes de performances. Enfin, nous nous concentrons sur les algorithmes eux-mêmes et présentons notre propre contribution à l’espace des électeurs définis par logiciel, l’algorithme de vote AVOC, et VDX, une spécification générique pour décrire les électeurs définis par logiciel. Nous évaluons notre contribution à la fois par rapport et en conjonction avec l’état de l’art dans un exemple de fusion de capteurs pour montrer que les algorithmes de vote peuvent en effet augmenter à la fois la qualité des résultats et la performance lorsqu’ils sont correctement combinés avec des approches de fusion de données standard. Dans l’ensemble, cette thèse présente la stratégie de l’observation multi-perspective dans une approche de bout en bout, de l’acquisition des données à la réconciliation des conflits et à la détermination des gains de qualité des données. Nous montrons où cette méthodologie est applicable et fournissons une mise en oeuvre du modèle ainsi qu’une évaluation de ses performances et de ses limites. ABSTRACT Data-driven systems are quickly becoming a prominent paradigm, with the advent of AI and smart cyber-physical systems becoming a defining characteristic of the modern day. It is often stated that the quality of data going into such systems is the primary determinant of the behaviour and decisions they produce. It is thus paramount to provide better strategies for managing and improving data quality for autonomic systems. Another attribute of modern data-driven infrastructure is its highly distributed nature. Indeed cloud, IoT and continuum/fog deployments are almost ubiquitous in current practice. In many cases, the above-mentioned data-driven systems are deployed to such infrastructure in the first place. We see an opportunity to leverage the ubiquity of distributed compute resources to add a layer of quality assurance to data. Our work is inspired by two main sources. On one hand, the need to consistently collect high-quality raw data and derived insights and metrics, in the presence of faults, issues and other interference. On the other hand, we draw inspiration from data fusion, a methodology commonly used to combine data from different sources to obtain insights of higher quality than the sum of its parts. We envision a generalisation of data fusion to all formats of datasets, particularly when obtained in redundant duplicates from independent observers. We call such an observation, a ’multiperspective observation’. Our core methodology is to design, implement and evaluate this concept of multiperspective observation. The first part is a system of independent observers, represented as nodes in a distributed architecture, collaborators in a crowdsourced project or even just hardware sensors in a traditional sensor-fusion setup. We begin by presenting the first part of this observation strategy, data acquisition. We show our first motivating scenario, tracking the evolution of the cloud-native ecosystem in a ’democratic’ distributed observatory. We then provide our implementation of this observatory and present its use in understanding and improving hardware support in Docker images. Further, we discuss the integration of our data acquisition system with data science-centric reproducibility and data provenance tooling. This work also serves to help us study the limitations and challenges of obtaining data from independent observers. We use our findings to develop our methodologies for the next part of this work. Then, we introduce our proposed solution to the discovered issues in data quality: Data-Centric Consensus (DCC). Using our data acquisition system and the data we obtained, we develop a system architecture to merge the observations into a common view of the truth, that all observers agree to. We then investigate the algorithms we can use to achieve this, and the performance implications of our system. Finally, we focus on the algorithms themselves, and present our own contribution to the space of software-defined voters, the AVOC voting algorithm, and VDX, a generic specification for describing software-defined voters. We evaluate our contribution both against and in conjunction with the state-of-the-art in a sensor fusion example to show that voting algorithms can indeed augment both output quality and performance when correctly combined with standard data fusion approaches. All in all, this thesis presents the strategy of multiperspective observation in an end-to-end approach, from acquiring data, to reconciling conflicts to determining the gains in data quality. We show where this methodology is applicable and provide model implementation and an evaluation of both its performance and limitations.
  • Publication
    Accès libre
    Block placement strategies for fault-resilient distributed tuple spaces: an experimental study
    (: Springer, 2017-6-19) ;
    Buravlev, Vitaly
    ;
    Antares Mezzina, Claudio
    ;
    The tuple space abstraction provides an easy-to-use programming paradigm for distributed applications. Intuitively, it behaves like a distributed shared memory, where applications write and read entries (tuples). When deployed over a wide area network, the tuple space needs to efficiently cope with faults of links and nodes. Erasure coding techniques are increasingly popular to deal with such catastrophic events, in particular due to their storage efficiency with respect to replication. When a client writes a tuple into the system, this is first striped into k blocks and encoded into 𝑛>𝑘 blocks, in a fault-redundant manner. Then, any k out of the n blocks are sufficient to reconstruct and read the tuple. This paper presents several strategies to place those blocks across the set of nodes of a wide area network, that all together form the tuple space. We present the performance trade-offs of different placement strategies by means of simulations and a Python implementation of a distributed tuple space. Our results reveal important differences in the efficiency of the different strategies, for example in terms of block fetching latency, and that having some knowledge of the underlying network graph topology is highly beneficial.
  • Publication
    Métadonnées seulement
  • Publication
    Accès libre
    Enhancing Security and Performance in Trusted Execution Environments
    (Neuchâtel : Université de Neuchâtel, 2024) ;
    Le cloud offre une flexibilité permettant aux entreprises de s’adapter rapidement aux fluctuations de la demande, accordant ainsi des coûts réduits et une meuilleure scalabilité. Cependant, pour les utilisateurs du cloud, garantir la confidentialité et l’intégrité des données sensibles confiées à des fournisseurs de services cloud non fiables pose des défis en matière de sécurité. Pour résoudre ce problème, les fabricants de processeurs ont introduit des environnements d’exécution de confiance (TEE) tels que Intel software guard extensions (SGX), AMD secure encrypted virtualisation (SEV), Arm TrustZone, etc., dans les processeurs. Les TEEs fournissent des enclaves sécurisées qui exploitent des mécanismes de sécurité basés sur le matériel pour garantir la confidentialité et l’intégrité du code et des données déployés sur des infrastructures cloud non fiables. Cependant, la complexité des TEEs au niveau du développement a été un obstacle majeur à leur adoption par les développeurs. Deux défis fondamentaux se posent lors du développement des programmes TEE : améliorer la sécurité grâce au partitionnement du code et atténuer les surcoûts de performance introduits par les extensions de sécurité. Bien que certaines solutions aient été proposées par le milieu académique et l’industrie pour résoudre ces problèmes, elles présentent des inconvénients : elles ciblent soit uniquement des langages de programmation de bas niveau, entravant l’adoption par la communauté du développement, soit sont trop spécifiques à un langage particulier, limitant leur utilité pour les programmes basés sur différentes langages de programmation. Cette thèse revisite ces problèmes fondamentaux dans le développement TEE et présente des solutions plus viables. Tout d’abord, elle aborde le défi du partitionnement du code en concevant et en développant des outils de haut niveau, ainsi que des outils multi-langages, pour isoler le code sensible à l’intérieur d’enclaves sécurisées. Deuxièmement, elle explore le domaine de l’internet des objets (IoT), en fournissant des techniques robustes pour renforcer la sécurité dans les environnements IoT. Enfin, elle propose des approches nouvelles pour relever les défis de performance associés aux TEEs. Le premier travail de recherche introduit une nouvelle approche pour partitionner les programmes Java pour les enclaves Intel SGX. L’approche proposée s’appuie sur des annotations de code et des transformations de bytecode pour partitionner les classes Java en composants fiables et non fiables. Ces composants partitionnés font l’objet d’une compilation anticipée (AOT) permettant ainsi leur exécution à l’intérieur et à l’extérieur d’une enclave, tout en maintenant une interaction suffisante pour préserver les objectifs fonctionnels du programme original. S’appuyant sur le travail précédent, le deuxième travail de recherche étend le concept de partitionnement du code à un contexte multi-langage. Il exploite le framework Truffle de GraalVM pour fournir des noeuds d’arbre syntaxique abstrait (AST) qui encapsulent des données sensibles dans des programmes polyglottes. L’AST résultant est ensuite analysé via une analyse dynamique, et les noeuds sécurisés sont utilisés pour déduire les portions sensibles du programme à isoler à l’intérieur d’une enclave. Le troisième travail de recherche explore le domaine de l’internet des objets (IoT), en proposant une technique pour sécuriser les données sensibles générées par les périphériques. Il fournit un modèle générique pour le partitionnement des pilotes de périphériques, et exploite cette approche pour concevoir et construire un framework robuste pour renforcer la sécurité des périphériques IoT en utilisant Arm TrustZone. Le quatrième travail de recherche recentre l’attention sur l’amélioration des performances en utilisant la mémoire persistante (PM) pour fournir des garanties efficaces de tolérance aux pannes pour les programmes Intel SGX. La praticabilité de cette technique est démontrée dans un contexte d’apprentissage automatique (ML) pour réaliser un entraînement de modèle ML sécurisé et persistant. Se focalisant toujours sur l’amélioration des performances, le cinquième travail de recherche propose un système pour optimiser les appels sans commutation ("switchless calls") d’Intel SGX. Il identifie les limitations de la politique de configuration statique de la librairie switchless d’Intel SGX, et propose une approche dynamique qui élimine la pénalité de performance due aux configurations statiques. ABSTRACT Cloud computing permits companies to easily scale their infrastructure to meet changing demand, providing reduced costs and improved scalability. However, for cloud tenants, ensuring the confidentiality and integrity of sensitive data entrusted to untrusted cloud service providers poses security challenges. To address these issues, processor manufacturers have introduced trusted execution environments (TEEs) like Intel software guard extensions (SGX), AMD secure encrypted virtualisation (SEV), Arm TrustZone etc. into commodity CPUs. TEEs provide secure enclaves that leverage hardware-based security mechanisms to ensure the confidentiality and integrity of code and data deployed on untrusted cloud infrastructures. Nevertheless, the complexity of TEEs at the development level has been a major impediment to their widespread adoption. Two fundamental challenges arise when dealing with TEE programs: improving security through code partitioning, and mitigating the performance overhead introduced by the security extensions. While some tools have been proposed by both academia and industry to address these issues, they have drawbacks: they either target only lower level programming languages, hindering adoption by the development community, or are too language-specific, limiting their utility for programs in different programming languages. This thesis revisits these fundamental issues in TEE development and presents more viable solutions. First, it addresses the code partitioning challenge by designing and building high-level, as well as multi-language tools, to isolate sensitive code inside secure enclaves. Second, it explores the realm of IoT, providing robust techniques to enhance security in IoT environments. Finally, it introduces novel approaches to tackle the performance challenges associated with TEEs. The first research work presents an approach to partitioning Java programs for Intel SGX enclaves. The proposed approach relies on code annotations and bytecode transformations to partition Java classes into trusted and untrusted components. These partitioned components are then ahead-oftime (AOT) compiled into binaries that run in and out of an enclave, while maintaining sufficient interaction to preserve the functional goals of the original program. Building upon the previous work, the second research work extends the concept of code partitioning to a multi-language context. It leverages GraalVM’s Truffle framework to provide abstract syntax tree (AST) nodes that encapsulate sensitive data in polyglot programs. The resulting AST is then analysed via dynamic taint analysis, and the secure nodes are used to deduce sensitive portions of the program to be isolated inside an enclave. The third research work delves into the realm of internet of things (IoT), providing a technique to secure sensitive data generated by peripheral devices. It proposes a generic blueprint for partitioning peripheral drivers for Arm TrustZone, and leverages this approach to design and build a robust framework to enhance security of IoT peripherals. The fourth research work shifts the focus to performance enhancement by leveraging persistent memory (PM) to provide efficient fault tolerance guarantees for Intel SGX programs. The practicality of this technique is demonstrated in a machine learning (ML) context to achieve secure and persistent ML model training. Still focusing on performance enhancement, the fifth research work proposes a system to optimise Intel SGX switchless calls. It identifies the limitations of the static configuration policy in Intel SGX’s switchless call library, and provides a dynamic approach which obviates the performance penalty due to static configurations.
  • Publication
    Restriction temporaire
    System Support for Object Groups
    (1998)
    Guerraoui, Rachid
    ;
    ;
    Garbinato, Benoît
    ;
    Mazouni, Karim
  • Publication
    Métadonnées seulement
  • Publication
    Métadonnées seulement
    A dynamic approach to multi-transfer container management
    (2003) ;
    Bourbeau, Benoît
    ;
    Keller, Rudolf
    ;
    This paper introduces a dynamic approach to manage the processing of client requests in a multi-transfer container transportation (MTCT) system. At the operational level, this type of system is faced with a continuously changing environment. In this context, the need for dynamic creation and adaptation of solutions is of utmost importance. The adopted approach is based on a two-layer framework that exploits workflow technology. The latter proposes a formalism to describe sequences of activities to be enacted when processing requests, hence reducing the need for manual, time-consuming management and organization. The proposed two-layer framework has a workflow layer that encapsulates the set of concurrently running workflows associated to client requests. A coordination layer is mainly responsible for the instantiation of new workflows to be inserted in the workflow layer and for modifications of running ones. These modifications are motivated by resource sharing issues or triggered by unanticipated/unexpected events. According to this two-layer framework, an implementation of a prototype for a MTCT system is finally presented.