54 research outputs found

    Caractérisation de la sûreté de fonctionnement de systèmes à base d'intergiciel

    Get PDF
    Les systèmes critiques sont soumis, comme le reste de l'industrie informatique, à des contraintes de coût de plus en plus sévères. Cette pression pousse les développeurs à privilégier la réutilisation de logiciels, plutôt que de procéder à des développements spécifiques à chaque projet. Cette tendance à l'utilisation de composants logiciels "sur étagère", souvent développés par des tiers, est renforcée par des besoins technologiques de plus en plus complexes, en particulier l'intégration des systèmes dans des réseaux de communication. L'utilisation de composants sur étagère permet aux industriels de se concentrer sur leur domaine de compétence, sans gaspiller de l'effort à redévelopper des fonctions qui ont déjà été implantées dans d'autres secteurs. Cette tendance à la réutilisation, ainsi que l'interconnexion croissante des systèmes, a favorisé l'émergence de standards d'interface, qui permettent l'interopérabilité de systèmes, même lorsqu'ils sont développés par des groupes différents. L'un des standards d'interface pour l'intégration de systèmes est les intergiciels de communication tels que la plate-forme CORBA. Ces intergiciels facilitent l'interaction entre des applications disparates, s'exécutant sur des plates-formes matérielles et logicielles hétérogènes. Pour les intégrateurs de systèmes distribués, ces technologies sont attractives pour plusieurs raisons, autant technologiques qu'économiques : elles constituent un moyen rapide d'intégration de nouvelles technologies, d'augmentation de la souplesse et l'ouverture vers d'autres systèmes. Toutefois, cette attractivité est conditionnée par des craintes concernant la robustesse des composants intergiciels, qui n'ont pas bénéficié de la rigueur du processus de développement utilisé dans le contexte de systèmes critiques. Les intégrateurs de systèmes distribués semi-critiques souhaitent avoir des assurances sur la qualité et la robustesse des composants qu'ils intègrent au sein de leurs systèmes. Ils souhaitent des informations sur les modes de défaillance de l'intergiciel, sur les canaux de propagation d'erreur qu'il introduit. Ils souhaitent avoir des informations quantitatives leur permettant de comparer différentes implémentations candidates du point de vue de la sûreté de fonctionnement, afin de sélectionner le candidat qui est le mieux adapté à leurs besoins. La problématique que nous venons d'énoncer peut se résumer en deux points : - obtenir une meilleure connaissance des types de fautes et d'erreurs qui existent dans les systèmes à base d'intergiciel de communication ; - développer une méthode permettant de caractériser expérimentalement la robustesse de candidats intergiciels. Il existe actuellement très peu de travaux qui permettent de répondre à ces interrogations. L'objectif de cette thèse est de proposer une méthode de caractérisation qui puisse être appliquée à des intergiciels cibles, et de répondre ainsi aux problèmes des intégrateurs de systèmes semi-critiques, ainsi qu'aux développeurs de composants intergiciel. Notre contribution est de proposer une méthodologie pour l'analyse de la sûreté de fonctionnement d'un intergiciel. Notre méthode est basée sur une analyse structurelle des intergiciels de communication, sur l'élaboration d'un modèle de fautes, une classification des modes de défaillance, et le développement d'un ensemble de techniques d'injection de faute adaptées à l'intergiciel. Nous avons validé notre approche en menant des campagnes d'injection de faute ciblant plusieurs implémentations de la norme CORBA. ABSTRACT : We propose a method for the dependability assessment and failure mode characterization of communications middleware. The method is based on the structural analysis of communications-oriented middleware, the identification of a fault model, a failure modes classification, and the development of a number of fault injection techniques that can be used to target middleware implementations. We have applied our method by carrying out fault injection campaigns targeting a number of CORBA implementations, and obtained quantitative measures of the robustness of the different candidates. Our work allows integrators of dependable distributed systems to obtain assurances on the robustness of the software components they place at the heart of their systems, and provides information to middleware vendors regarding robustness failings in their products

    Les réseaux temps réel embarqués dans les véhicules

    Get PDF
    Dans les années à venir, la plupart des prestations offertes sur un véhicule automobile seront assurées par un système embarqué reposant sur des technologies numériques. Initialement, chaque nouvelle prestation était réalisée sous forme d'un nœud (désigné sous le terme anglais d'Electronic Control Unit ou ECU) autonome, à savoir un microcontrôleur supportant le logiciel contrôlant l'ensemble des capteurs et des actionneurs. Rapidement, cette technique a montré ses limites. En effet, la nature même de certaines prestations comme le freinage, la direction, l'éclairage, la gestion des portières, le diagnostic, etc., impose de plus en plus une distribution des fonctions les réalisant sur un ensemble de calculateurs. De plus, il est actuellement difficile de considérer une fonction indépendamment des autres ; par exemple, la vitesse véhicule qui est élaborée notamment par le système de contrôle du moteur est nécessaire à la réalisation d'autres fonctions comme le contrôle de la suspension, la vitesse de balayage des essuie-glaces, etc. C'est ainsi que, actuellement, sur un véhicule haut de gamme, il peut y avoir jusqu'à 2500 informations, ou signaux, échangés entre des fonctions réparties sur environ 70 ECUs [ALB 04]. Dés lors, pour des raisons de coût, de poids, d'encombrement, de complexité de câblage, il est devenu rapidement impossible de supporter ces échanges par des connexions point à point et l'utilisation de réseaux locaux embarqués est apparu comme une solution incontournable. Les besoins spécifiques de chacun des domaines fonctionnelles d'un véhicule (contrôle moteur, habitacle, ...) ont conduits au développement d'un grand nombre de réseaux automobiles tels que LIN, J1850, CAN, TTP/C, FlexRay, IDB1394, etc ... Nous présentons les principales techniques d'accès au médium en illustrant avec les réseaux les plus couramment utilisés. Ensuite, nous décrirons les développements actuels en matière d'intergiciels automobiles. Enfin, nous montrerons comment la sûreté d'un système dépend des services fournis par l'architecture de communication embarquée

    Intégration des fautes dans un modèle de programmation pour réseaux mobiles

    Get PDF
    Nous proposons un langage de spécification dont le support d'exécution sont des périphériques mobiles utilisant un environnement pervasif à base de réseaux mobiles ad-hoc. Nous décrivons les problématiques de communication de groupe et de détection de fautes pour ce contexte où les canaux de communication ne peuvent pas être supposés fiables. Cette approche permet de traiter la mobilité des périphériques comme une question de tolérance aux faute

    Évaluation de l'intergiciel de communication DDS pour son utilisation dans le domaine avionique

    Get PDF
    Les aéronefs modernes doivent combler de plus en plus de fonctionnalités afin de satisfaire les besoins de la clientèle. De ce fait, les besoins en communications des systèmes avioniques sont grandissants. De plus, la portabilité et la réutilisabilité des applications sont des défis d'actualité dans le domaine avionique. De ce fait, ce projet de recherche vise à faire une évaluation de la technologie d'intergiciel de service de distribution de données (DDS) pour son utilisation dans le domaine avionique. Cette technologie permettrait de réduire la complexité des communications et faciliter la portabilité et réutilisabilité des applications grâce à son interface standardisée. Dans ce projet de recherche, la norme DDS est tout d'abord étudiée pour cibler les fonctionnalités qui sont utiles au domaine avionique. Les différentes polices de qualité de services sont ainsi étudiées et dénotent la flexibilité de la technologie DDS. Un intergiciel DDS est également évalué dans un environnement de laboratoire afin de mesurer l'impact de l'utilisation de cette technologie sur les performances de latence ainsi que sur l'utilisation de la bande passante. Les résultats montrent une faible augmentation de la latence moyenne lorsque l'intergiciel DDS est utilisé. L'intergiciel DDS est également utilisé dans une étude de cas avec un AFCS (automatic flight control system) afin de quantifier les effets de son utilisation sur une application avionique. Les résultats montrent que l'utilisation de l'intergiciel DDS n'empêche pas l'AFCS d'atteindre la stabilité, mais qu'elle ralentit l'atteinte de cette dernière. Finalement, une étude de cas est effectuée afin de valider que la technologie DDS peut être utilisée pour construire des systèmes redondants. Les résultats montrent que l'intergiciel DDS permet de faire de la redondance de réserve sans avoir un impact visible sur les performances du système redondant

    Approche pour le développement de logiciels intégrant des concepts de qualité de service

    Get PDF
    In critical domains such as avionics, railways or automotive, to certify a system, it is required to demonstrate that it achieves its function, with respect to specified timing requirements. Indeed, longer-than-predicted function computing can make data erroneous, leading potentially to endanger people lives. Today, most approaches propose to ensure these Quality of Service requirements at platform level, e.g., through deterministic bandwidth, static time slots allocation and predefined scheduling. These constraints ensure applications can’t overpass allocated time slots; applications are then fed with requirements decoupled to their functionality. However, it shall be possible to certify timing requirements, dedicated to an application. Hence, guarantees at platform-level are not sufficient anymore. It should be possible to take into account these requirements from the stage of application design. Today, most of existing approaches in this domain, focus on supporting QoS at individual stages of the software development process, preventing requirements traceability. This thesis proposes a design-driven approach to supporting QoS throughout software development process, integrated in a tool-based methodology, namely DiaSuite. The QoS extension enriches the DiaSpec design language, with the capability to instantiate QoS requirements onto software components. A runtime execution support to monitoring these timing requirements, is then generated, directly from the specification. This thesis uniformly integrates timing concepts with error ones, around DiaSuite methodology, to propose a supervision layer that could lead to application reconfiguration in case of QoS contract violation. Contributions of this thesis are evaluated through respect of coherence and conformance critera, illustrated through a case study in avionics.Dans les domaines critiques tels que l’avionique, le ferroviaire ou encore l’automobile, il faut, afin de pouvoir certifier un système, démontrer qu’il réalise la fonction pour laquelle il a été conçu, selon des exigences temporelles spécifiées. En effet, un rendu temporel trop long peut rendre des données erronées, et ainsi mettre en danger la sûreté des personnes. Aujourd’hui, la plupart des approches proposent d’assurer ces exigences de Qualité de service au niveau des couches basses, e.g., au travers d’une bande passante déterministe, d’allocation statique d’intervalles de temps, et d’un ordonnancement prédéfini. Ces contraintes assurent que les applications ne peuvent dépasser le temps d’exécution alloué ; les applications récupèrent de ce fait des exigences qui sont découplées de leur fonctionnalité. En revanche, il faut aussi pouvoir certifier des exigences temporelles spécifiques à une application. De là, les garanties au niveau des couches basses ne sont plus suffisantes. Il faudrait pouvoir prendre en compte ces exigences dès la phase de conception des applications. Aujourd’hui, la plupart des approches existant dans ce domaine se concentrent sur le support de QoS à des phases isolées du processus de développement logiciel, empêchant la traçabilité des exigences. Cette thèse propose une approche dirigée par la conception pour supporter les exigences de QoS tout au long du processus de développement logiciel, intégrée dans une méthodologie outillée, appelée DiaSuite. L’extension de QoS enrichit le langage de conception DiaSpec avec la capacité d’instancier les exigences de QoS sur les composants logiciels. Un support de surveillance à l’exécution de ces exigences temporelles est ensuite généré, directement à partir de la spécification. Cette thèse intègre uniformément les concepts temporels avec les concepts de gestion d’erreurs, au travers de la méthodologie DiaSuite, afin de proposer une couche de supervision qui puisse effectuer une reconfiguration applicative, dans le cas de violation de contrat de QoS. Les contributions de cette thèse sont évaluées au regard du respect des critères de cohérence et de conformité, illustrés au travers d’une étude de cas dans le domaine avionique

    Conception d'un générateur d'intergiciels temps réel embarqués dans l'automobile.

    Get PDF
    Les applications temps réel sont des applications dont la correction ne dépend pas seulement du résultat produit, mais aussi de la date à laquelle il est produit. Par exemple, dans le domaine de l'automobile, lors d'un freinage, la force à appliquer sur les freins est évaluée par une application (ABS : AntiBlockier System, système évitant de bloquer les roues au freinage, permettant ainsi de conserver la direction du véhicule). Il existe donc des contraintes de délai de réaction entre la demande de l'utilisateur et la consigne appliquée sur les freins. Dans ce domaine, des applications de plus en plus complexes sont aujourd'hui développées. Elles sont souvent distribuées sur plusieurs calculateurs, parfois hétérogènes, et doivent coopérer avec d'autres applications, elles aussi distribuées. Afin de maîtriser cette complexité, on développe classiquement une couche logicielle appelée intergiciel (middleware). Cette couche a pour but de masquer l'hétérogénéité des supports d'exécution et la distribution des applications. Elle propose aux applications un ensemble de services standards pour communiquer et interagir avec le système d'exploitation, tout en garantissant une qualité de service temporelle. Notre objectif est de mettre en oeuvre une technique pour la génération d'intergiciels de communication embarqués pour l'automobile. Le cadre d'utilisation de nos travaux est la conception de systèmes embarqués dans les véhicules. Plus précisément, cette approche permet de concevoir un générateur d'un ensemble de tâches implémentant cette couche de communication pour un type d'application donnée. Pour cela, elle prend en compte l'ensemble des événements requis et offerts par l'application tout en assurant la qualité de service requise par cette dernière (propriétés temps réel), et en minimisant la surcharge due à l'exécution de l'intergiciel. Les travaux présentés visent la réalisation d'un générateur d'intergiciels optimisés, et abordent deux aspects : la conception générique des architectures d'implémentation du générateur et de l'intergiciel, et le déploiement de l'intergiciel généré sur une plateforme temps réel. Constituant un framework technique, l'architecture d'implémentation est optimisée dans le sens où l'intergiciel est adapté à l'environnement d'exécution (le système d'exploitation OSEK/VDX OS et le réseau CAN), et minimise son utilisation des ressources disponibles. Elle apporte une réponse, d'une part, au niveau de la spécification d'une architecture logicielle (construite à l'aide de design patterns), et, d'autre part, à la manière dont cette architecture est déployée sur une plateforme concrète (sous la forme d'un ensemble de tâches). Quant au déploiement de l'intergiciel, il est réalisé sur une architecture matérielle de microcontrôleurs (PIC)

    Agents mobiles coopérants pour les environnements dynamiques

    Get PDF
    A partir de l'étude de la mobilité dans les paradigmes de programmation pour les systèmes distribués et des différents architectures réseaux, et principalement celles sans-fils, nous avons pu identifier le problème de la gestion des unités mobiles (PDA, smartphone, ...) lorsque l'on souhaite les intégrer dans Internet. Leurs déplacements introduisent un fort dynamisme matériel qui ne permet plus d'utiliser les techniques classiques d'un internet et d'obtenir un système gérant globalement la localisation de toutes les unités. Cette absence de gestion globale remet en cause les méthodes classiques de conception fondées sur un système offrant une représentation stable de l'environnements. Dans ce contexte, nous avons étudié la conception basée sur les agents mobiles, programmes se déplaçant de site en site de manière autonome, afin de démontrer leur utilité dans des environnements dynamiques à l'échelle d'Internet, et ce, en l'absence d'un système capable de gérer la localisation globale. ABSTRACT : From the study of programming paradigms used in distributed systems and recent network architectures, especially wireless ones, we distinguish the problem of mobile unit management (PDA, smartphone, ...) when they are involved in the Internet. Their mobility introduces a high physical dynamism which leads to reconsider design patterns used in an intranet. Such systems do not allow to provide a global view of the distribution. This absence of global view implies to revisit classical design approaches based upon a system supplying a stable context representation. Therefore, we have studied a design approach based upon mobile agents, namely programs moving from site to site in an autonomous way. We demonstrate their usefulness in such dynamic environments at large scale in the Internet, in which there exits non global location service

    Problèmes de communication et de coordination dans les systèmes spatiaux

    Get PDF
    Les problèmes de communication et ceux de coordination peuvent être intimement liés dans le cas des systèmes spatiaux, à cause notamment de l'existence de défaillances arbitraires et des exigences strictes de haute sûreté de fonctionnement. On donne une caractérisation du domaine spatial, tant du point de vue « communications » que du point de vue « traitements ». Des problèmes génériques majeurs combinant le distribué, le temps réel et la tolérance aux fautes sont examinés et illustrés par des analyses de problèmes vécus lors de missions spatiales

    Contributions au rendement des protocoles de diffusion à ordre total et aux réseaux tolérants aux délais à base de RFID

    Get PDF
    Dans les systèmes répartis asynchrones, l'horloge logique et le vecteur d'horloges sont deux outils fondamentaux pour gérer la communication et le partage de données entre les entités constitutives de ces systèmes. L'objectif de cette thèse est d'exploiter ces outils avec une perspective d'implantation. Dans une première partie, nous nous concentrons sur la communication de données et contribuons au domaine de la diffusion uniforme à ordre total. Nous proposons le protocole des trains : des jetons (appelés trains) circulent en parallèle entre les processus participants répartis sur un anneau virtuel. Chaque train est équipé d'une horloge logique utilisée pour retrouver les train(s) perdu(s) en cas de défaillance de processus. Nous prouvons que le protocole des trains est un protocole de diffusion uniforme à ordre total. Puis, nous créons une nouvelle métrique : le rendement en termes de débit. Cette métrique nous permet de montrer que le protocole des trains a un rendement supérieur au meilleur, en termes de débit, des protocoles présentés dans la littérature. Par ailleurs, cette métrique fournit une limite théorique du débit maximum atteignable en implantant un protocole de diffusion donné. Il est ainsi possible d'évaluer la qualité d'une implantation de protocole. Les performances en termes de débit du protocole des trains, notamment pour les messages de petites tailles, en font un candidat remarquable pour le partage de données entre coeurs d'un même processeur. De plus, sa sobriété en termes de surcoût réseau en font un candidat privilégié pour la réplication de données entre serveurs dans le cloud. Une partie de ces travaux a été implantée dans un système de contrôle-commande et de supervision déployé sur plusieurs dizaines de sites industriels. Dans une seconde partie, nous nous concentrons sur le partage de données et contribuons au domaine de la RFID. Nous proposons une mémoire répartie partagée basée sur des étiquettes RFID. Cette mémoire permet de s'affranchir d'un réseau informatique global. Pour ce faire, elle s'appuie sur des vecteurs d'horloges et exploite le réseau formé par les utilisateurs mobiles de l'application répartie. Ainsi, ces derniers peuvent lire le contenu d'étiquettes RFID distantes. Notre mémoire répartie partagée à base de RFID apporte une alternative aux trois architectures à base de RFID disponibles dans la littérature. Notre mémoire répartie partagée a été implantée dans un jeu pervasif qui a été expérimenté par un millier de personnes.In asynchronous distributed systems, logical clock and vector clocks are two core tools to manage data communication and data sharing between entities of these systems. The goal of this PhD thesis is to exploit these tools with a coding viewpoint. In the first part of this thesis, we focus on data communication and contribute to the total order broadcast domain. We propose trains protocol: Tokens (called trains) rotate in parallel between participating processes distributed on a virtual ring. Each train contains a logical clock to recover lost train(s) in case of process(es) failure. We prove that trains protocol is a uniform and totally ordered broadcast protocol. Afterwards, we create a new metric: the throughput efficiency. With this metric, we are able to prove that, from a throughput point of view, trains protocol performs better than protocols presented in literature. Moreover, this metric gives the maximal theoretical throughput which can be reached when coding a given protocol. Thus, it is possible to evaluate the quality of the coding of a protocol. Thanks to its throughput performances, in particular for small messages, trains protocol is a remarkable candidate for data sharing between the cores of a processor. Moreover, thanks to its temperance concerning network usage, it can be worthwhile for data replication between servers in the cloud. Part of this work was implemented inside a control-command and supervision system deployed among several dozens of industrial sites. In the second part of this thesis, we focus on data sharing and contribute to RFID domain. We propose a distributed shared memory based on RFID tags. Thanks to this memory, we can avoid installing a computerized global network. This is possible because this memory uses vector clocks and relies on the network made by the mobile users of the distributed application. Thus, the users are able to read the contents of remote RFID tags. Our RFID-based distributed shared memory is an alternative to the three RFID-based architectures available in the literature. This distributed shared memory was implemented in a pervasive game tested by one thousand users.PARIS-CNAM (751032301) / SudocSudocFranceF
    • …
    corecore