Managing Resource Sharing Conflicts in an Open Embedded Software Environment - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2014

Managing Resource Sharing Conflicts in an Open Embedded Software Environment

Gestion des conflits de partage de ressources dans un environnement logiciel embarqué ouvert

Résumé

Our homes are becoming smart thanks to the numerous devices, sensors and actuators available in it, providing services, e.g., entertainment, home security, energy efficiency and health care. Various service providers want to take advantage of the smart home opportunity by rapidly developing services to be hosted by an embedded smart home gateway. The gateway is open to applications developed by untrusted service providers, controlling numerous devices, and possibly containing bugs or malicious code. Thus, the gateway should be highly-available and robust enough to handle software problems without restarting abruptly. Sharing the constrained resources of the gateway between service providers allows them to provide richer services. However, resource sharing conflicts happen when an application uses resources “unreasonably” or abusively. This thesis addresses the problem of resource sharing conflicts in the smart home gateway, investigating prevention approaches when possible, and considering detection and resolving approaches when prevention is out of reach.Our first contribution, called Jasmin, aims at preventing resource sharing conflicts by isolating applications. Jasmin is a middleware for development, deployment and isolation of native, component-based and service-oriented applications targeted at embedded systems. Jasmin enables fast and easy cross-application communication, and uses Linux containers for lightweight isolation. Our second contribution, called Incinerator, is a subsystem in the Java Virtual Machine (JVM) aiming to resolve the problem of Java stale references, i.e., references to objects that should no more be used. Stale references can cause significant memory leaks in an OSGi-based smart home gateway, hence decreasing the amount of available memory, which increases the risks of memory sharing conflicts. With less than 4% overhead, Incinerator not only detects stale references, making them visible to developers, but also eliminates them, hence lowering the risks of resource sharing conflicts. Even in Java, memory sharing conflicts happen. Thus, in order to detect them, we propose our third contribution: a memory monitoring subsystem integrated into the JVM. Our subsystem is mostly transparent to application developers and also aware of the component model composing smart home applications. The system accurately accounts for resources consumed during cross-application interactions, and provides on-demand snapshots of memory usage statistics for the different service providers sharing the gateway.
Nos maisons deviennent de plus en plus intelligentes grâce aux nombreux appareils, capteurs, et actionneurs disponibles, et fournissant des services, tels que le divertissement, la sécurité, l’efficacité énergétique et le maintien à domicile. Divers fournisseurs de services veulent profiter de l’opportunité de la maison intelligente en développant rapidement des services à héberger dans une passerelle domotique embarquée. La passerelle est ouverte à des applications développées par des fournisseurs de services non fiables, contrôlant de nombreux appareils, et pouvant contenir des bugs ou des codes malicieux. Par conséquent, la passerelle doit maintenir une haute disponibilité et suffisamment de robustesse pour tolérer les problèmes logiciels sans avoir à redémarrer brutalement. Partager les ressources, même restreintes, de la passerelle entre les fournisseurs de services leur permet de fournir des services plus riches. Cependant, des conflits de partage des ressources se produisent quand une application utilise les ressources «déraisonnablement» ou abusivement. Cette thèse aborde le problème des conflits de partage des ressources dans la passerelle domotique, investiguant des approches de prévention autant que possible, et envisageant des approches de détection et de résolution quand la prévention est hors de portée.Notre première contribution «Jasmin» vise à prévenir les conflits de partage des ressources en isolant les applications. Jasmin est un intergiciel pour le développement, le déploiement et l’isolation des applications natives, à base de composants et orientées services prévues pour des systèmes embarqués. Jasmin permet une communication rapide et facile entre applications, et utilise les conteneurs Linux pour une isolation à faible coût. Notre seconde contribution «Incinerator» est un système dans la machine virtuelle Java (JVM) qui résout le problème des références obsolètes en Java, c.-à-d., des références à des objets à ne plus utiliser. Les références obsolètes peuvent causer des fuites mémoire importantes dans une passerelle domotique basée sur OSGi, diminuant ainsi la quantité de mémoire disponible, ce qui augmente les risques de conflits de partage de mémoire. Avec un coût inférieur à 4%, Incinerator non seulement détecte les références obsolètes, les rendant visibles aux développeurs, mais aussi les élimine, diminuant ainsi les risques de conflits de partage de ressources. Même en Java, les conflits de partage de mémoire se produisent. Afin de les détecter, nous présentons notre troisième contribution : un système de surveillance de mémoire intégré à la JVM. Notre système est pratiquement transparent aux développeurs d’applications et conscient du modèle à composants formant les applications domotiques. Le système compte précisément les ressources consommées pendant les interactions entre applications, et fournit, à la demande, des statistiques instantanées d’utilisation de mémoire pour les différents fournisseurs de services partageant la passerelle.
Fichier principal
Vignette du fichier
these_diffusion_3158873.pdf (2.1 Mo) Télécharger le fichier

Dates et versions

tel-01088028 , version 1 (27-11-2014)
tel-01088028 , version 2 (30-04-2015)

Licence

Paternité - Pas d'utilisation commerciale - Pas de modification

Identifiants

  • HAL Id : tel-01088028 , version 1

Citer

Koutheir Attouchi. Managing Resource Sharing Conflicts in an Open Embedded Software Environment. Software Engineering [cs.SE]. Université Pierre et Marie Curie, 2014. English. ⟨NNT : ⟩. ⟨tel-01088028v1⟩
874 Consultations
1108 Téléchargements

Partager

Gmail Facebook X LinkedIn More