Plate-forme à composants pour l'embarqué et le temps réel

Descriptif

La programmation par composants a changé la façon de concevoir des applications, en permettant une grande réutilisation de briques de base. Elle permet aussi de modifier dynamiquement les applications, en remplaçant ou ajoutant des fonctionnalités pendant l'exécution. Cette approche permet donc d'aborder la création d'applications reconfigurables en fonction du contexte (contexte d'exécution ou contexte d'utlisation).

Dans cette optique, le projet WComp de l'équipe Rainbow en met en oeuvre les mécanismes, de la façon la plus simple et légère possible. WComp est un modèle de composants, dits légers, communicants par événements, dont plusieurs implémentations existent, principalement en C# ou Java destinées au prototypage rapide ou à la composition de web services pour dispositifs (UPnP), mais aussi en C pour microcontrôleurs. Cette dernière démontre la légèreté du modèle, qui ne nécessite pas de grosse infrastructure logicielle ou de grande puissance matérielle pour fonctionner.

Sujet

Le but de ce projet est d'étudier les modèles à événements et les mécanismes d'implémentation de ces modèles puis de réaliser une implémentation du modèle dans un noyau Linux temps réel (architecture ix86), et dans une cible embarquée (Linksys NSLU2). L'utilisation du noyau de système d'exploitation Xenomai/Linux permet d'avoir du temps réel dur (temps de réponse très faible et garanti) sur un Linux, en fournissant diverses API de programmation pour développer les applications temps réel. Une des capacités de ce système est aussi de permettre à un processus temps réel de communiquer avec des processus classiques, ce qui nous permettra de créer une interface de contrôle à la plate-forme WComp dans le noyau.

Les applications de telles plates-formes à composants temps réel ou embarquées sont nombreuses dans le monde de la robotique, des jeux pervasifs, des ordinateurs de bord de véhicules, des centres de contrôle domestiques, des interfaces tangibles homme machine etc. L'ajout ou le retrait de composants pour adapter dynamiquement au contexte des services qui s'exécutent sans les redémarrer, tout en garantissant une qualité de service (tels que l'exécution temps réel, ou une utilisation de ressources limitées) est nécessaire dans tous ces domaines. Nous privilégierons donc dans ce projet une mise en oeuvre du travail réalisé pour la prise en compte du contexte (environnement, utilisateurs, ressources ..) dans l'adaptation des services interactifs contrôlé par la cible embarquée.

Existant

Une implémentation en C ou C++ du modèle WComp permettra de l'embarquer sur le NSLU2, qui est en fait une carte programmable avec un processeur ARM, deux ports USB2 et un port ethernet. Il sera alors possible d'adapter et modifier dynamiquement des Web services interactifs embarqués utilisant divers dispositifs en modifiant l'assemblage des composants du service interactif composite.

Travail attendu

  • Etudier et comparer les modèles et méthodes d'implémentation des communications par événements
  • Etudier les systèmes temps réels (Xenomai par exemple) et la possibilité de déployer de tels systèmes sur des cibles légères (NSLU2 par exemple)
  • Développer une implémentation du modèle de communication par événement entre composant mis en oeuvre sous la forme de modules du noyau sur un système temps réel

Autres informations

  • Nombre d'étudiants: 3 ou 4
  • Encadrants: Jean-Yves Tigli, Vincent Hourdin, Stéphane Lavirotte
  • Organisme: Polytech'Nice Sophia
  • Lieu du projet: Département Sciences Informatiques
  • Langages: C / C++
  • Environnement: Linux / Réseau

Références