Projets 1) MySQL et C++ Dans ce projet on se propose d’explorer les possibilités du langage C++ dans le but de communiquer avec un système de gestion de bases de données (SGBD). Il s’agira notamment de concevoir, dans un premier temps, une classe écrite en C++ permettant de se connecter au serveur MySQL, puis à une base préalablement configurées, et d’extraire certaines informations d’une table de la base. Une base de données comportant une table sera donc suffisante pour élaborer un protocole de tests. Informations : - La documentation officielle de MySQL fournit un grand nombre d’informations concernant les API (Application Programming Interface) disponibles dans de nombreux langages de programmation pour dialoguer avec le SGBD. 2) MySQL et QT Dans ce projet on se propose d’explorer les possibilités du langage C++ assorti de la bibliothèque d’objets QT dans le but de communiquer avec un système de gestion de bases de données (SGBD). Il sera intéressant d’examiner les potentialités de la bibliothèque QT et de regarder comment procéder pour se connecter à la base et afficher les résultats d’une requête d’extraction et/ou d’insertion dans une fenêtre graphique. Informations : - On regardera la version 4.x de QT, disponible notamment sous le système d’exploitation Windows XP, et sa documentation officielle à la rubrique Home->Grouped Classes>Databases. On pourra s’inspirer également du site officiel de QT : http://qtfr.org/index.php 3 Extension pour Firefox Dans ce projet, on se propose de développer une extension pour le navigateur Mozilla/Firefox. Nous souhaitons, munir Firefox d’un « bouton » permettant d’ouvrir une interface dans la fenêtre du navigateur contenant plusieurs champs de saisie de données (par exemple, nom, prénom, date, commentaires…) à insérer dans une base de données (par exemple Mysql ou SQLite). Les extensions Firefox suppose une prise en main du langage XML/XUL pour lequel on trouve une description sur http://xulfr.org/ . Afin que l’extension puisse être chargée en tant que « module complémentaire » du navigateur, il est nécessaire de créer un fichier au format XPI, dont on trouvera une documentation sur http://developer.mozilla.org/Fr . 4 Programmation système et développement d’un daemon Dans le système Unix/Linux un daemon est un processus lancé par root au démarrage et s’exécutant en tâche de fond (background). Certains daemons sont fondamentaux et nécessaires au bon fonctionnement du système, d’autres sont « optionnels » et correspondent à des services que l’administrateur de la machine souhaite offrir à ses utilisateurs. Ainsi, les scripts localisés dans le répertoire /etc/init.d sont lancés au démarrage si des drapeaux (flags) ont été positionnés par l’administrateur (notamment au moyen de la commande chkconfig). Le but de se projet est de développer un daemon qui gère un système de quotas de processus pour chaque utilisateur de la machine. Par exemple, si l’utilisateur Galilée a le droit de lancer 10 processus (en plus de ceux nécessaires au bon fonctionnement de son environnement), lorsqu’il tente d’exécuter une onzième tâche, le daemon, que nous nommerons iuld (pour Interface User Limits Daemon), l’avertit d’un dépassement de quotas et suspend la tâche. De plus iuld gère également le temps de processeur par processus. Vous devrez donc réfléchir à une structure de bases de données simple (en développant un script BaShell qui stocke les informations Utilisateurs/Nombre de Processus/Temps de Processeur dans un fichier séquentiel) qui sera remplie par l’administrateur. Vous développerez également iuld et son script de démarrage qui sera stocké dans /etc/init.d et lié symboliquement aux différents niveaux de fonctionnement de Linux (niveaux 3 et 5 en particulier). Renseignements complémentaires : Les étudiants peuvent me contacter par courrier électronique : [email protected] en mentionnant « PROJET IUT » en objet. Nous pouvons convenir d’un rendez-vous. Bon courage !