Guillaume CERUTTI Rémy FANGOUSE Xavier MAIZERAY



Documents pareils
EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

UE Programmation Impérative Licence 2ème Année

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

M1 IFPRU Cahier des Charges du projet de TER. Vidéo Surveillance sur IP Le système Rapace. Membres du groupe : Encadrés par :

Vérifier la qualité de vos applications logicielle de manière continue

Architecture distribuée

TP : Gestion d une image au format PGM

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Système de Gestion de Fichiers

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Système de Gestion de Ressources

ACQUISITION. Traitement de l image. Classement. Préparation. Ouverture. Performance

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt.

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Fichiers, dossiers, enregistrer et arborescence

GESTION DES FICHIERS C/UNIX

Plan du cours. Historique du langage Nouveautés de Java 7

Optimisations des SGBDR. Étude de cas : MySQL

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Eric Bertrand 08/11/06 Maître de conférence 1

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

MB Led. Benjamin Bonny Cédric Le Ninivin Guillaume Normand

Programmation impérative

Limitations of the Playstation 3 for High Performance Cluster Computing

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

TD : Codage des images

Système de Sauvegarde et d Archivage Backup Smart Way TM

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau

Avignon 2010 Université virtuelle. Mohamed Morchid & Mickael Meynaud

Fiche Produit. Plateforme de sauvegarde en marque blanche Kiwi Business

Sujet Solution de sauvegarde de serveurs et postes de travail avec BackupPC et Bacula. par ALIXEN

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Introduction à la Programmation Parallèle: MPI

UE C avancé cours 1: introduction et révisions

Cours de numérisation sur Epson Perfection

Sauvegarde des données au LAAS

Structure fonctionnelle d un SGBD

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Programmation système de commandes en C

Prise en compte des ressources dans les composants logiciels parallèles

Formats d images. 1 Introduction

Manuel d'installation

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre

Programmation sous QT

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Cours de Système : Gestion de Fichiers

GANTTPROJECT. Julien TENDERO

Sécurité Informatique

SESSION 2014 ÉPREUVE À OPTION. (durée : 4 heures coefficient : 6 note éliminatoire 4 sur 20)

CH.3 SYSTÈMES D'EXPLOITATION

Introduction au langage C

Optimiser les images pour l affichage sur votre site

Mes documents Sauvegardés

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

CESI Bases de données

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Comment installer la configuration des salles sur son ordinateur personnel?

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Création d'un site Internet dynamique avec HTML-CSS ou un CMS Formation à distance sur le réseau Pyramide

NetCrunch 6. Superviser

Système de Virtualisation pour une application de gestion commerciale d entreprise

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Exonet : sauvegarde automatisée d une base de données

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Fiche Produit. Sauvegarde en ligne Kiwi Online

La Gestion Électronique de Documents spécialement conçue pour les Experts Comptables

Compression de Données - Algorithme de Huffman Document de Conception

Programmation système I Les entrées/sorties

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Séquencer une application

Catalogue des stages Ercom 2013

contexte cahier des charges critères de choix fonctionnalités configuration en pratique Bilan Conclusion Backuppc Logiciel de sauvegarde

Joomla! Création et administration d'un site web - Version numérique

Authentification forte avec les USG

Evidian IAM Suite 8.0 Identity Management

Programmation C. Apprendre à développer des programmes simples dans le langage C

Chapitre 2 : Abstraction et Virtualisation

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Les rootkits navigateurs

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Introduction. Adresses

FileMaker Server 14. Aide FileMaker Server

Gestion des fichiers sur micro-ordinateur

Transcription:

Guillaume CERUTTI Rémy FANGOUSE Xavier MAIZERAY EPSI Montpellier CSII 2A Année 2008-2009 Professeur : M. Angelilla

Sommaire I. Présentation... 2 A. Mais que sont les fractales?... 2 B. Notre objectif... 2 II. Principe de fonctionnement... 3 A. Le configurateur... 3 B. L animation... 4 C. Le serveur... 4 III. Les clients... 6 IV. Outils et librairies employées... 6 V. Répartition et planning des taches... 7 A. Décomposition... 7 B. Diagramme de Gantt... 7 VI. Résultats... 7 VII. Conclusions... 7 VIII. Perspectives... 7 1

I. Présentation Le projet que nous avons réalisé porte sur l étude des fractales. Nous avons proposé de fusionner le projet d Unix avec celui de Mathématiques. Les contraintes des deux matières sont bien différentes. Pour le projet d Unix, nous devons utiliser les processus, les threads, gérer le réseau entre un serveur et plusieurs clients ainsi que la gestion de fichiers sur le disque. Pour les mathématiques, il nous a été demandé l étude d un principe mathématique et son implémentation dans un programme informatique. Le couplage des deux projets nous a alors semblé très intéressant. A. Mais que sont les fractales? Ce sont des objets mathématiques dont la création ou la forme ne trouve ses règles que dans l'irrégularité ou la fragmentation, et des branches des mathématiques qui étudient de tels objets. Nous pouvons notamment les observer dans la nature. Ce qui permet de les mettre en œuvre dans des applications tels que les jeux vidéos ou les logiciels d architecture en 3 dimensions (ex : dessins d arbres réalistes plutôt que la duplication d un même arbre). B. Notre objectif L objectif de notre projet est de générer une représentation vidéo de fractales animées sur un serveur. Pour ce faire, les différents calculs de fractales sont répartis sur plusieurs postes afin d être par la suite rapatriés sur le serveur. C est alors que celui-ci formeras la vidéo complète du fractale. Fichier XML (Description de l animation) 1) Envoi du fichier XML 2) Traitement et calcul des images de l animation Serveur 5) Assemblage et création de la vidéo 4) Envoi des images Client 3) Enregistre les images 2

II. Principe de fonctionnement La première étape consiste à définir le motif de départ et les différentes séquences de l animation. Pour cela, il faut écrire directement un fichier XML avec la position des différents points dans le temps comme dans l exemple ci-dessous : <intervalimage>30</intervalimage> <nombrepoints>5</nombrepoints> <iteration value="1" /> <point x="0" y="0" /> <point x="10" y="0" /> <point x="15" y="10" /> <point x="20" y="0" /> <point x="30" y="0" /> <iteration value="7" /> <point x="0" y="0" /> <point x="10" y="0" /> <point x="15" y="10" /> <point x="20" y="0" /> <point x="30" y="0" /> Pour des raisons évidentes, nous avons écrit un programme annexe au projet qui va nous permettre de décrire plus facilement et plus intuitivement l animation de la fractale et ainsi d écrire ce fichier XML. Nous avons choisi de réaliser ce programme en Java pour être utilisable aussi bien sur Linux que sur Windows. Cela va nous permettre de répondre au projet de Mathématiques qui nous demande une application sous Windows. Exemple d une Fractale de Koch (avec une évolution des itérations) A. Le configurateur Il se présente sous forme de deux fenêtres graphiques. L une pour définir les paramètres de l animation et l autre permet d avoir une prévisualisation. 3

B. L animation L animation est constituée de clés (lignes du tableau) qui donnent le positionnement de chaque point à un moment T de l animation. On peut donc changer chacun des paramètres pour une clé, comme par exemple les itérations. Dans cet exemple, nous changeons la position en X du 2 ème point. Figure 1 Fractale à l'image 0 Figure 2 Fractale à l'image 30 Les images intermédiaires sont calculées et forment alors l animation. Nous pouvons facilement voir l évolution de l animation grâce au configurateur. C. Le serveur Une fois l écriture du fichier XML enregistré, l utilisateur va exécuter l application Fractale Serveur en lui fournissant le fichier XML de l animation. L application va alors lire le fichier et interpréter les données qui lui seront utiles comme le nombre de séquences clé d animation (ligne du tableau). Il pourra alors choisir de découper automatiquement l animation et envoyer des ordres de calculs à différents clients. Serveur 4

Sur le serveur la réception d une image Bitmap ce fait comme suit : On déclare les variables qui vont nous permettre de manipuler le fichier final et de récupérer dans un buffer de réception les octets correspondant à l image bitmap. int adescripteurfichierbmp; ssize_t anbcarlubmp; char abufferbitmap[size_buffer]; char anomdufichierbmp[size_buffer_pathfile] = "\0"; int ataillefichierbmp = 0; //reception du nom de l'image mytcp.zwreceive(anomdufichierbmp, sizeof(anomdufichierbmp)); //reception de la taille de l'image BMP La réception de la taille de l image va nous permettre de savoir à quel moment les données reçu par la fonction recv() ne concerne plus l image. int anbcarlutaillebmp = mytcp.zwreceive(&ataillefichierbmp, sizeof(ataillefichierbmp)); if(anbcarlutaillebmp > 0 && ataillefichierbmp > 0) { //creation de l'image BMP if ((adescripteurfichierbmp = open(anomdufichierbmp, O_CREAT O_WRONLY, S_IRWXU S_IRWXG S_IRWXO)) < 0) { error_exit("le fichier ne peut pas etre ouvert."); } //reception et ecriture de l'image BMP int anboctetsencours = 0; while(anboctetsencours < ataillefichierbmp) { //on met les données reçu dans le buffer de réception anbcarlubmp = mytcp.zwreceive(abufferbitmap, sizeof(abufferbitmap)); } //on écrit dans le fichier BMP write(adescripteurfichierbmp, abufferbitmap, anbcarlubmp); anboctetsencours += anbcarlubmp; } //fermeture du fichier bitmap if (close(adescripteurfichierbmp)) { error_exit("le fichier ne peut pas etre ferme."); } 5

III. Les clients L application Fractale client, une fois exécuté sur un poste, va proposer ses services au serveur en se connectant à lui via le protocole TCP-IP. Le serveur prend connaissance de ce nouveau client et va lui attribuer un travail à effectuer. Le serveur lui enverra alors le fichier XML et lui demandera, par exemple, de calculer les deux premières clés, c'est-à-dire 31 images dans notre exemple (de 0 à 30). Serveur Client Le client calcule l image grâce à l API OpenGL pour l affichage. Pour chaque image calculée, on effectue une lecture du buffer image de la carte vidéo. // buffer image unsigned char *imagedata; // allocation du bloc mémoire pour la réception de l image imagedata = (unsigned char*) malloc(g_nwidth * g_nheight * 4); //4 pour RGBA // Nettoye la mémoire memset(imagedata, 0, g_nwidth * g_nheight * 4); // lecture du buffer image glreadpixels(0, 0, g_nwidth, g_nheight, GL_RGBA, GL_UNSIGNED_BYTE, imagedata); Une fois qu une image est calculée puis enregistrée sur le disque (côté client), elle est envoyé au serveur qui la reçoit et la stock dans un répertoire «./images». Le serveur se retrouve avec une collection d image et va attendre d avoir toutes les images des différents clients pour démarrer l assemblage de la vidéo avec un logiciel externe, qui est appelé automatiquement par ligne de commande. Après l assemblage effectué, nous obtenons un fichier vidéo «out.avi» sur le serveur. IV. Outils et librairies employées L Interface de Développement Environnement que nous avons utilisé est Netbeans 6.5 avec le plug-in C/C++. Nous avons utilisé la librairie OpenGL l affichage ainsi que ses extensions GLU et GLUT que nous avons rajoutée à notre distribution Linux Ubuntu 8.10. Nous avons utilisé le logiciel «EasyBMPtoAvi» pour la création de la vidéo à partir d une collection d image BMP. 6

V. Répartition et planning des taches A. Décomposition Le projet se décompose en 3 parties principales : L implémentation de l algorithme de calcul de fractale : 4 semaines. La construction de la vidéo à partir des images : 2 semaines. La communication réseau : 3 semaines. B. Diagramme de Gantt Taches/Semaines 1 2 3 4 5 6 Implémentation de l algorithme Guillaume Guillaume Guillaume Guillaume Construction de la vidéo Rémy Rémy Communication Xavier et Rémy Xavier et Rémy Xavier et Rémy VI. Résultats Les résultats obtenus sont concluants. Nous avons une application client serveur qui fonctionne. Les calculs d image sont envoyés aux différents clients puis sont rapatriés par le serveur. Ce qui permet au final d obtenir un fichier enregistré sur le serveur représentant la vidéo. VII. Conclusions Nous avons particulièrement apprécié ce projet de fin d année tout d abord car le sujet était libre. De ce fait nous avons pu travailler sur le sujet choisi en Mathématique afin d y apporter une vue informatique. Par rapport à ce que nous avons vu en cours, nous avons réalisé et géré la communication multiclient avec les sockets, les threads et manipuler les entrées / sorties. Nous regrettons par contre de ne pas avoir pu trouver de fonctionnalité faisant appel aux processus. Pour ce qui est du sujet en lui même, la conception de l algorithme de dessin d une fractale a été très instructif et intéressant. VIII. Perspectives Améliorer la gestion des clients Compression des images en jpeg pour un gain de bande passante Mettre de la couleur sur l animation OpenGL afin de discerner les différentes phases Possibilité de zoomer 7