Sunteți pe pagina 1din 30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

ETUDE DE L'UTILISATION D'UN SYSTEME EMBARQU: FONCTIONNEMENT D'UNE APPLICATION MVC WEB SUR UN ROUTEUR DOMESTIQUE
2007-2008 Etudiants :

Daniel PETISME Aurlien PEGNY Sbastien SALVA

Tuteur :

IUT Informatique de Clermont Ferrand Licence professionnelle Dveloppement d'applications Internet et Intranet
IUT Informatique de Clermont -Ferrand Pages : 1/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Remerciements
Nous souhaitons remercier M. Sbastien Salva, notre tuteur de projet pour sa grande disponibilit, sa comprhension et son aide durant toute la priode du projet.

IUT Informatique de Clermont -Ferrand Pages : 2/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Sommaire

Introduction.........................................................................................04 1 - Installation d'un environement Web sous systme embarqu.................05 1.1 - Les systmes embarqus.......................................................05 1.2 - Installation du firmware Openwrt............................................06 1.3 - Mise en place d'un environnement web sur le routeur................10 2 - Prsentation de l'application Gestion de l'automate de l'aquarium.......12 2.1 Principe..............................................................................12 2.2 - Prsentation de l'existant......................................................12 2.2.1 UML........................................................................12 2.2.2 - Diagramme de contexte de l'application........................14 2.2.3 - Diagramme de cas d'utilisation de l'application..............15 2.2.4 - Diagrammes de trois cas d'utilisation...........................16 A Cas #1 : se connecter (login.php)............................16 B Cas #2 : Calibrage sonde PH (ph)............................18 C Cas #3 : Configurations (configuration)....................20 2.3 Nouvelle version : passage en MVC........................................22 2.3.1 MVC type web..........................................................23 2.3.2 Etapes d'une action avec le modle MVC......................27 2.3.3 Exemple : affichage page du PH..................................28 2.3.4 Avantages/Inconvnients...........................................29 2.3.5 Autre volution : le Flash pour les graphiques...............29 Conclusion..........................................................................................30

IUT Informatique de Clermont -Ferrand Pages : 3/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Introduction

Dans le cadre de notre licence professionnelle option dveloppement d'application Internet et Intranet, l'Institut Universitaire de Clermont-Ferrand (IUT), dpartement informatique, nous avons d raliser un projet tutor. Le but de ce projet est d'tudier le comportement de diffrentes applications web, sur un systme embarqu. Nous avons donc d pour se faire, tudier dans un premier temps le domaine des systmes embarqus, afin d'installer un environnement nous permettant de tester diffrentes applications web. Ensuite nous avons choisi une application que nous avons analys et implement afin d'executer nos diffrents tests. Dans ce rapport nous allons donc tout d'abord tudier comment installer un environnement permettant de tester des application web sur un systme embarqu, puis dans un second temps prsenter l'application test et son analyse.

IUT Informatique de Clermont -Ferrand Pages : 4/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

1-Installation d'un environement Web sous systme embarqu.


1.1-Les systmes embarqus
Avant d'expliquer comment installer quoique ce soit sur un appareil, il faut expliquer ce qu'est un systme embarqu, quelles sont les contraintes lies aux systmes embarqus ainsi que leurs intrts. Dans notre cas, le systme embarqu est dans un premier temps un routeur Asus 500g. Un systme embarqu peut tre dfini comme un systme lectronique et informatique autonome, qui est ddi une tche bien prcise. Ses ressources disponibles sont gnralement limites. Dans notre cas voil les caractristiques du routeur:

Bootloader : PMON System-On-Chip : Broadcom 4710 CPU Speed : 125 Mhz Flash Size : 4 Mb RAM : 16 MB Wireless : Mini-PCI Broadcom WL-120G Ethernet : two network interface, one for 4 LAN ports, one for WAN port, no VLAN tagging USB : 1xUSB 1.1 LPT : yes Serial : yes, with external UART

Les systmes embarqus font trs souvent appel l'informatique, et notamment aux systmes temps rel. Le terme de systme embarqu dsignent aussi bien le materiel que le logiciel utilis. Les caracteristiques d'un tel systme sont donc:

Ayant un espace mmoire limit de l'ordre de quelques Mo maximum. Il convient de concevoir des systmes embarqus qui
Pages : 5/30

IUT Informatique de Clermont -Ferrand

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

rpondent au besoin au plus juste pour viter un surcot.

Il convient d'avoir la puissance de calcul juste ncessaire pour rpondre aux besoins et aux contraintes temporelles. Les processeurs utiliss dans les systmes embarqus sont beaucoup moins puissants qu'un processeur d'un ordinateur PC. Il fonctionne le plus souvent avec des ressources matrielles limites : un petit (voire pas de) clavier, un petit cran et peu de mmoire dans notre cas on accde au routeur grce un accs distant (telnet, ssh, interface web). Les systmes embarqus sont la plupart du temps dans des machines qui doivent fonctionner en continu pendant de nombreuses annes, sans erreurs et, dans certains cas, rparer eux mme les erreurs quand elles arrivent. C'est pourquoi les logiciels sont toujours dvelopps et tests avec plus d'attention que ceux pour les PC. Le logiciel cre pour les systmes embarqus est appel firmware. Il est stock dans de la mmoire en lecture seule ou de la mmoire flash plutt que dans un disque dur

Donc un systeme embarqu est une entit informatique et lectronique aux ressources limites et aux accs (configuration) restreints, faite pour fonctionner en continu. Elle fonctionne grce un firmware qui correpond au systme d'exploitation de l'appareil, nous allons donc voir le firmware utilis pour le routeur wl500g.

1.2-Installation du firmware Openwrt


Afin de pouvoir utiliser les ressources materielles, il nous faut installer un systme d'exploitation. Openwrt nous fut impos, mais cela se comprend facilement en effet, car il s'agit d'une distribution GNU/Linux, donc facilement utilisable lorsque l'on connait le monde UNIX, qui a dj fait ces preuves et qui a pour but de remplacer le firmware des routeurs bass sur un chipset Broadcom, par exemple les routeurs Asus, Belkin, Dell,Lynksys. Donc une fois le choix de la distribution fait, il nous faut choisir la version, qui l encore, nous fut impose. Nous avons prit la version
IUT Informatique de Clermont -Ferrand Pages : 6/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

kamikaze 7.09 (la derniere version disponible). La distribution OpenWRt permet de crer un firmware personalis. En effet, on le configure afin qu'il reponde aux mieux nos besoins. Ensuite, une fois sous forme de fichier executable, on le depose sur le routeur (on dit que l'on flash le routeur) La configuration: Voil le menu de configuration du firmware :
Schma 1 : Capture d'cran montrant la configuration du firmware:

La cross-compilation : ou compilation croise On ne peut compiler entirement les sources du projet sur le routeur car les ressources ne nous le permettent pas, et simplement compiler les sources sur le PC ne veut rien dire car le contexte d'execution et le contexte de compilation sont diffrents, il nous faut donc utiliser la cross-compilation, c'est-IUT Informatique de Clermont -Ferrand Pages : 7/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

dire que les environements de compilation et d'excution soient diffrents:


Schma 2 : La cross-compilation:

Code Source

Cross Code Compilation Executable Ordinateur

Execution Routeur

Voil une trace de cross-compilation des sources de la kamikaze 7.09:


Schma 3 : Trace de la cross-compilation:

L'installation sur le routeur: Une fois que l'on a obtenu le firmware (fichier .trx), il faut le
IUT Informatique de Clermont -Ferrand Pages : 8/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

dposer sur le routeur, on dit alors que l'on flash le routeur. Diffrentes mthodes sont possibles mais la plus simple reste l'utilisation de tftp (trivail ftp).

$ sudo arp -s 192.168.1.1 $ tftp 192.168.1.1 tftp> binary tftp> trace tftp> get ASUSSPACELINKaaaa /dev/null tftp> put openwrt-xxx-x.x-xxx.trx ASUSSPACELINK

Une fois le firmware sur le routeur, celui-ci va redmarrer afin de tenir compte des modifications. Nous disposons enfin d'un systeme d'exploitation fonctionnele nous permettant d'effectuer les manipulation de bases des systmes UNIX (ls, cd, mount, ..) et entirement configurables (rseaux, tches planifies, applications,..), c'est d'ailleurs grce cel que l'on pourra installer notre environnement Web (Serveur, PHP, SGBD).
Schma 4 : Connection ssh sur le routeur

IUT Informatique de Clermont -Ferrand Pages : 9/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

1.3-Mise en place d'un environnement web sur le routeur


La distribution OpenWrt intgre un gestionnaire de paquet appel IPKG ( la aptitude pour Debian) permettant de simplifier installations. On peut ainsi installer un paquet (depuis internet, ou un repertoire, ...) sans avoir repasser par la case compilation de sources, par exemple l'installation du paquet NTP-client (client permettant de synchcroniser l'horloge avec des serveurs donnant l'heure):
ipkg install ntp-client

Donc pour pouvoir grer une application web, il nous faut : Un serveur web : lighttpd lighttpd (ou "lighty") est un serveur HTTP scuris, rapide et flexible. De nombreux langage (dont PHP) son grs grce au module FastCGI. Le principal inconvnient de lighttpd face Apache est de ne pas supporter les fichiers .htaccess : les directives ne sont values qu'une seule fois, au dmarrage du serveur. Un Moteur de Base de donne : SQLite3 SQLite est une petite bibliothque crite en C qui propose un moteur de base de donnes SQL. Contrairement aux serveurs de bases de donnes comme MySQL, sa particularit est de ne pas reproduire le schma habituel client/serveur mais d'tre intgr directement aux programmes en utilisant des fichiers de bases de donnes. On comprend donc l'intert d'un tel moteur de base donnes dans les systmes embarqus aux ressources limites (il est d'ailleurs utiliss dans l'iPhone, Firefox, Skype, entre autre). Un langage de Programmation : PHP5 PHP: Hypertext Preprocessor, est un langage de script libre, trs simple, principalement utilis pour produire des pages web dynamiques via un serveur HTTP. Le PHP gre depuis sa version 5 les concepts
IUT Informatique de Clermont -Ferrand Pages : 10/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

objets. Il permet de dynamiser les pages web en accdant une base de donnes par exemple, ou en utilisant tout un panel de fonctions permettant des transformations de textes, des calculs mathmatiques ou de gnrer des fichiers par exemple. Une fois tous les paquets installs et configurs, on peut alors profiter de toutes applications web bases sur le PHP et SQLite. Dans notre cas il s'agira d'une gestion d'un automate d'un aquarium.
Schma 5 : Page principal de l'application tudie affiche depuis le routeur

1.4-Cas Particulier : Asus wl-500g

A cause des ressources limites du routeur 4Mo de flash, il tait impossible de tout laisser sur l'appareil. On a donc d externaliser sur un espace de stockage une partie de l'installation. L'lement le plus lourd lors de l'installation est l'executable php.
IUT Informatique de Clermont -Ferrand Pages : 11/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Voil le mode opratoire que l'on a suivit:

Compilation du paquet php sans gnration de l'executable. Pour cela on commente la ligne crant l'executable. On obtient alors un paquet de quelques Ko, eu lieu de 1,3Mo. On installe normalement le paquet php sur le routeur. On monte le peripherique de stockage. On crer un lien symbolique entre l'executable php prsent sur le pripherique et le l'executable qui devrait etre sur le routeur.*

On obtient donc une installation capable de grer le php, cependant il faut pour cela toujours avoir un peripherique contenant l'executable php. Il faut donc chaque redmarrage du routeur, monter le pripherique et crer le lien. Voil un script, lanc au dmarrage du routeur, effectuant les diffrentes tches:
#!/bin/sh /etc/rc.common START=90 start() { echo start # commands to launch application #USB mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/ #PHP ln s /mnt/usb/usr/bin/phpcgi /usr/bin/phpcgi }

1.5-Image Builder

La procdure d'installation est donc longue et, demande des comptences provenant surtout du domaine Unix (fichiers, commandes, compilation). Afin de simplifier cette procdure, on peut utiliser Image Builder. Le but de ce programme est de partir d'une premiere version du
IUT Informatique de Clermont -Ferrand Pages : 12/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

firmware et d'installer les fichiers et paquets dsirs par l'utilisateur. Pour cela, on peut utiliser la gestion de profils, ou les options de la ligne de commande. Il suffit de preciser le rpertoire dans lequel sont stocks les paquets voulus, et faire la mme chose avec les fichiers (Attention: il faut respecter l'architecture du systeme de fichiers : /etc/lighttpd/configuration par exemple pour mettre le fichier de configuration dans le bon repertoire). Ex: avec la gestion de profile:
make image PROFILE="NOM_PROFILE" FILES="CHEMIN_FICHIER"

On compile (la compilation est beaucoup plus rapide car correspond seulement une installation de paquets). On obtient alors un firmware personnalis et prt l'emploi.

2-Prsentation de l'application Gestion de l'automate de l'aquarium


2.1- Principe
Le but de cette application est de grer un automate s'occupant d'une aquarium. Ainsi, notre projet, li la domotique, doit permettre d'utiliser simplement l'automate, permettant de contrler le pH de l'eau de l'aquarium, la quantit d'eau utilise, la temprature de l'eau, et tout un tas d'autres paramtres, le tout via une interface web simple et intuitive. Ainsi, le rooteur (mini-serveur web) doit permettre d'acceuillir simplement l'application, celle-ci ne demandant que trs peu de ressources (tant visuellement qu'au niveau de la base de donnes, en sqlite 3). En effet, le maximum de choses ont t faites pour viter au rooteur de trop travailler, comme les graphiques, qui sont grs en Flash par le client. Beaucoup de choses restent faire dans l'application (comme le passage en vritable MVC et la cration de classes PHP), mais cette dernire est dj trs complte.
IUT Informatique de Clermont -Ferrand Pages : 13/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

2.2- Prsentation de l'existant


Les tudiants de l'anne prcdente ont donc ralis une application complte, intgrant un controleur et plusieurs modles (un pour chaque cas d'utilisations). Ainsi, avant de pouvoir la transformer et ainsi la parfaire, nous avons du faire une analyse UML de l'existant. 2.2.1 UML
UML (en anglais Unified Modeling Language) est un langage graphique de modlisation des donnes et des traitements. Le modle UML est compos de 8 types de diagrammes, mais leurs utilisation est laisse l'apprciation de chacun, mme si le diagramme de classe est particulirement importante dans une analyse UML. Les 8 diagrammes UML sont les suivants :

Diagramme de contexte : c'est un diagramme dynamique permettant d'identifier les acteurs et les messages. Les acteurs utilisent le systme et ragissent par envoi ou rception des messages.

Diagramme de cas d'utilisation : il reprsente lensemble des fonctionnalits du systme tudier. Il permet didentifier toutes les fonctions du systme, de les resituer entre elles et/ou face aux acteurs. En gnral, ce diagramme est accompagn de fiches descriptives (une par cas dutilisation).

Diagramme d'activit : il reprsente les rgles denchainement des activits du systme. Il comprend un tat initial, des tests-conditions, des tatsactivits et un tat final.

Diagramme des classes participantes : associe entre elles, deux ou plusieurs classes prcises par le code de multiplicit et par laction qui les lie. Il permet de dcouvrir les classes du systme et dimplmenter les proprits et les mthodes des classes.

Diagramme d'tat : il reprsente le cycle de vie dun objet dune classe. Les objets subissant les contraintes extrieures passent par une succession dtats modifiant la valeur des attributs ou des rgles composant lobjet. Il

IUT Informatique de Clermont -Ferrand Pages : 14/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

est compos dun tat initial, dtats de lobjet, de transitions composes dvnements et de conditions et dun tat final.

Diagramme de collaboration : il permet de respecter chronologiquement les scnarii, les interactions entre objets au niveau du cas dutilisation. Il souligne les relations structurelles (changes, messages).

Diagramme de squence : il prcise le diagramme de collaboration, il ordonne les changes des messages entre objets. Cest le seul diagramme sous UML, o la notion de temps apparat. Il existe un diagramme de squence gnral et un diagramme de squence dtaill.

Diagramme de packages : un package tant un conteneur logique permettant de regrouper et d'organiser les lments dans le modle UML, il sert reprsenter les dpendances entre packages, cest--dire les dpendances entre ensembles de dfinitions.

Concernant notre analyse, elle ne contient que l'tude de certains cas d'utilisation, ou U.C. (les plus interressantes). Par ailleurs, l'application n'ayant pas t dveloppe en Objets (alors que UML est une mthode oriente objets), certains diagrammes sont inaplicables, comme le Diagramme de classes participantes, le Diagramme d'tat, le Diagramme de collaboration et le Diagramme de packages, c'est pour cette raison qu'ils ne figureront pas dans l'analyse.

2.2.2 Diagramme de contexte de l'application


Schma 6 : diagramme de contexte

IUT Informatique de Clermont -Ferrand Pages : 15/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Ce shma reprsente simplement l'application globalement, sans les dtails internes, ceux-ci tant dcrit tout de suite, avec le diagramme de cas d'utilisation du site , rvlant tous les cas d'utilisation. 2.2.3 Diagramme de cas d'utilisation de l'application Ce diagramme nous permet de mieux comprendre l'application de gestion de l'automate de l'aquarium, en reprsentant l'ensemble de ses fonctionnalits, comme la gestion de l'aquarium, la connexion,...
Schma 7 : diagramme de cas d'utilisation

IUT Informatique de Clermont -Ferrand Pages : 16/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Nous allons maintenant vous prsenter l'analyse de trois des neuf cas d'utilisation de l'application, les autres leurs ressemblant normement. 2.2.4 Diagrammes de trois cas d'utilisation A Cas #1 : se connecter (login.php)

IUT Informatique de Clermont -Ferrand Pages : 17/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Il s'agt de la partie concernant la connexion d'un utilisateur l'application, se composant de deux parties : la vue v-login.php et le modle a-login.php.
Schma 8 : diagramme d'activit de l'U.C. se connecter

IUT Informatique de Clermont -Ferrand Pages : 18/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Schma 9 : diagramme de squence de l'U.C. se connecter

B Cas #2 : Calibrage sonde PH (ph) Cette partie concerne le calibrage de la sonde PH mise dans l'aquarium li l'application. Cette partie n'est pas trs complexe, mais reprsente bien ce qui se fait dans la plupart des UC, c'est dire une simple vrification de l'utilisation du formulaire de modifications, une mise jour de la base de donnes (BDD) et ensuite une rcupration de certains donnes dans la BDD, ainsi que et c'est plus rare - la construction d'un fichier XML, permettant de faire des courbes d'volution (du PH donc) graphe une animation Flash. Cette partie se compose de deux fichiers php : la vue v-ph.php et le modle aph.php.

IUT Informatique de Clermont -Ferrand Pages : 19/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Schma 10 : diagramme d'activit de l'U.C. calibrage sonde PH

Schma 11 : diagramme de squence de l'U.C. calibrage sonde PH

IUT Informatique de Clermont -Ferrand Pages : 20/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

C Cas #3 : Configurations (configuration)

Cette partie concerne la configuration de divers paramtres de l'application, comme l'adresse e-mail de l'administrateur, les deux groupes de pompes, l'cumeur, les pompes doseuses, etc... Comme tous les U.C., elle se compose de deux fichiers php, une vue et un modle.
Schma 12 : diagramme d'activit de l'U.C. configuration

IUT Informatique de Clermont -Ferrand Pages : 21/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Schma 13 : diagramme de squence de l'U.C. configuration

2.3 Nouvelle version : passage en MVC

Aprs avoir analys l'ancienne version du site et en avoir retir les avantages et inconvnient, points positifs et ngatifs, il nous fallu le transformer, effectuant ainsi son passage en MVC, et par ailleurs, en y intgrant des classes mtiers, permettant ainsi une meilleure robustesse, une plus grande malabilit (souplesse) et une maintenance plus aise, ainsi qu'une organisation plus pousse. Par ailleurs, il nous a paru vident qu'il fallait aussi modifier le code, afin d'viter des contrles rptitifs et similaires ainsi que des rptitions de blocs de traitements inutiles, ceci dans le but de mieux organiser le code, pour que ce dernier soit plus facilement modifiable, et afin de rduire la taille de l'application, celle-ci tant trs importante du fait du manque de place disponible (la faute la faible mmoire du routeur).
IUT Informatique de Clermont -Ferrand Pages : 22/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

2.3.1 MVC type Web Il faut tout savoir ce qu'est le MVC (Modle Vue Controleur). Il s'agt en fait d'un modle de programmation (Pattern) qui permet d'organiser une application (avec une interface graphique, lourde ou de type web) en trois lments cls :

le modle, qui verifie l'intgrit des donnes et qui effectue les diffrents traitements (travaux), en faisant appel aux classes mtiers les vues, qui s'occupe de reprsenter visuellement et d'organiser les donnes retournes par le modle le controleur, qui fait appel au modle en fonction des actions demandes par l'utilisateur

Nous n'avons pas touch aux vues (sauf pour les formulaires, en y intgrant un champ hidden (cach) contenant le nom de l'action effectuer), en revanche, nous avons d entirement crer les controleurs, les modles et les classes du site. Ces dernires, aux nombre de neuf (sans compter la classe de connexion la base SQLite3 et la classe Champ [dj implmente]), sont les suivantes :

IUT Informatique de Clermont -Ferrand Pages : 23/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Schma 14 : diagramme de classes du nouveau site

Tout cela rend tout de suite le code plus propre et plus facilement modulable/utilisable/lisible, comme on peut le voir avec l'exemple suivant, qui concerne l'arrt/redmarrage de l'automate.

$oConnection = new Connection($dConfig["connection"]); $oConnection->start(); if(isset($_POST['gr'])) { $g=$_POST["gr"]; $sql="UPDATE parametres SET nb='$g' WHERE nom='start'"; $rep = $oConnection->query($sql) <br>'.$sql.'<br>'); if($g=="3") $etat="pas demarr"; else $etat="demarr"; } $oConnection->stop();
Ancienne version dite procdurale

or die('Erreur SQL !

if(isset($_POST['gr'])) { $param = new Parametre(); $param->nb = $_POST["gr"]; $param->nom = "start"; $param->updateNbForNom(); if($_POST["gr"] == "3") $etat="pas demarr"; else $etat="demarr"; return $etat; }
Nouvelle version avec utilisation de la classe mtier Parametre

IUT Informatique de Clermont -Ferrand Pages : 24/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Toutefois, dans notre cas (application web), nous avons utilis une lgre variante du MVC, en intgrant un Front controleur , une sorte d'aiguilleur, qui fait appel des controleurs spcifiques en fonction des actions demandes/effectues par l'utilisateur. Nous avons donc l'architecture suivante pour l'application Gestion de l'automate d'un aquarium :

IUT Informatique de Clermont -Ferrand Pages : 25/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

IUT Informatique de Clermont -Ferrand Pages : 26/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Schma 15 : archicture du site en MVC

2.3.2 Etapes d'une action avec le modle MVC

Schma 16 : enchainement des oprations dans le MVC type Web

Ainsi, lorsque l'utilisateur fait appel une page ou effectue une action, il appel en ralit le Front Controleur, qui est l'index du site. Celui-ci, en fonction du type de requte (GET ou POST), rcupre l'action, et, suivant cette dernire, fait appel au controleur lui tant spcifique. Le controleur ainsi appel, en fonction de l'action, demande au(x) modle(s) lui tant associ(s) d'effectuer un ou plusieurs traitements/travaux (par le biai de fonctions), afin de rcuprer des donnes et/ou d'en modifier certaines. Une fois ces traitemens effectus par le(s) modle(s), le controleur n'a plus qu' faire appel une (ou plusieurs vues) qui se chargera elle d'utiliser/afficher les donnes ainsi rcupres. On voit donc bien ici que chaque couche a sa fonction et que rien
IUT Informatique de Clermont -Ferrand Pages : 27/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

n'est mlang, ce qui permet une meilleure modularit et une maintenance plus facile effectuer. D'ailleurs, nous allons maintenant voir un exemple avec l'une des pages de l'application web sur laquelle nous avons d travailler.

2.3.3 Exemple: affichage page du PH

Schma 17 : exemple de l'affichage de la page Ph (avec graphique en Flash)

IUT Informatique de Clermont -Ferrand Pages : 28/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Ainsi, cet exemple nous permet de bien voir les diffrentes intractions entre les diffrents composants/objets du site. On remarque ici que le Front Controleur prcdement cit est ici l'index, comme dans la plupart des applications Web de ce type. Par ailleurs, on peut voir que nous avons un Controleur par groupement de tches (par page), mais un Controleur peut lui utiliser un ou plusieurs modles. Enfin, comme nous l'avons dit, les vues ne servent qu' afficher les donnes retournes par le(s) modle(s) et ne font en aucun cas du traitement (des contrles quelques fois). 2.3.4 Avantages/Inconvnients Comme nous l'avons dit prcdement, ce type d'architecture permet une maintenance plus facile et une meilleure organisation des tches/rles de chaque partie (vues, modles,...) du site, ce qui permet par ailleurs un dveloppement plus rapide. En revanche, cela demande plus de ressources (RAM surtout), puisqu'il s'agt l d'une imbrication de couches, demandant sans cesse des inclusions de pages, des appels d'autres pages,... Par ailleurs, le fait d'utiliser des objets (avec des crations perpetuelles) demande plus de ressources qu' l'acoutum, mais l'application n'tant pas destine au grand-public, ceci n'est pas un gros problme. 2.3.5 Autre volution : le Flash pour les graphiques En effet, un des points noirs de l'ancienne version tait ses graphiques, gnrs en php (grce des librairies spciales), et demandant des traitements trs lourds, autrement dit, quasi impossible grer pour le routeur. La solution a t de transfrer cette surcharge de travail du serveur au client, en traant les graphiques (courbes) en Flash.

IUT Informatique de Clermont -Ferrand Pages : 29/30

PETISME Daniel - PEGNY Aurlien

Test de faisabilit sur systme embarqu

Conclusion
Nous avons donc russi faire du rooteur ASUS un mini-serveur, en y installant un firmware personnalis (grce au systme d'exploitation OpenWRT), un client NTP, FastCGI (un module permettant de grer plusieurs langages comme le PHP, quasi incontournable dans les applications de type web), et en utilisant une base de donnes SQLite3, permettant ainsi d'avoir de vritables capacits de gnration de pages web dynamiques. Cette fase d'installation a t trs longue mais trs interressante puisque permettant de se rendre compte combien il t facile, avec un simple rooteur, de se doter de son propre serveur (avec bien entendu des capacits moindres que les gros serveurs prsents sur la toile), pour par exemple, se constituer une petite plateforme d'change et de gestion des PC prsents dans sa maison (si on en a plusieurs). Concernant l'application placer sur le mini-serveur, nous l'avons transform en MVC (aprs avoir compris compris son architecture, son fonctionnement, et valu ses points forts, ses points faibles), et nous avons aussi d effectuer son passage en objets, le tout avec l'objectif de raliser un site lger, tant au niveau des ressources mmoires que des ressources lies la puissance du routeur. Cet objectif a t en grande partie rempli, puisque le site est dsormais moins gros que la version prcdentes, et les temps de rponses ne semblent pas tre plus importants. En revanche, la transformation n'est pas totale, certaines fonctions posant encore problme (et ne marchent pas), la faute un nombre trop important de bases de donnes diffrentes (trois en tout, avec des tables et des lignes diffrentes), et des problmes de serveur vers la fin du projet (quelqu'un essayait pendant des jours de le pirater, rendant impossible son utilisation).

IUT Informatique de Clermont -Ferrand Pages : 30/30

S-ar putea să vă placă și