![Page 1: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/1.jpg)
Emna Bouazizi
ISIM De Monastir
Année Univ. 2011/2012
1
Support de cours
Développement de logiciels
libres
![Page 2: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/2.jpg)
Chapitre I - Contexte
![Page 3: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/3.jpg)
Quelques définitions
Un logiciel libre :
• est un logiciel dont l'utilisation, l'étude, la modification et la duplication en vue de sa diffusion sont permises, techniquement et légalement, afin de garantir certaines libertés induites.
• ces droits peuvent être simplement disponibles ou bien établis par une licence, dite « libre », basée sur le droit d’auteur.
![Page 4: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/4.jpg)
Le logiciel libre est souvent confondu avec :– les freewares (gratuit) :
facilite et encourage son partage,
– l’open source:
Le logiciel libre, s'attache aux avantages d'une méthode de développement au travers de la
réutilisation du code source.
![Page 5: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/5.jpg)
Un logiciel est libre selon la Free Software Foundationoffre à son utilisateur quatre libertés (numérotées de 1 à 4) :
1. la liberté d'exécuter le programme, pour tous les usages,
2. la liberté d'étudier le fonctionnement du programme et de l'adapter à ses besoins,
3. la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies),
4. la liberté d'améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.
• L'accès au code source est une condition d'exercice des libertés 2 et 4.
![Page 6: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/6.jpg)
• Liste de quelques logiciels libres :– Systèmes d’exploitation
– Debian– Mandriva Linux– OpenSUSE
– Éditeurs de texte– Emacs– jEdit– Notepad2
– Tableurs– LibreOffice Calc : tableur de la suite LibreOffice.
– Logiciels de traitement de texte– Logiciels de présentation
![Page 7: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/7.jpg)
– Logiciels de dessin
– Visionneuses de fichiers PDF
– serveur de bases de données,
– Serveurs de Moteur de recherche
– Antivirus
– Pare-feu
– Utilitaire réseau
– Chiffrement et signature numérique
– Sauvegarde et Backup
![Page 8: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/8.jpg)
– Logiciels de dessin
– Visionneuses de fichiers PDF
– serveur de bases de données,
– Serveurs de Moteur de recherche
– Antivirus
– Pare-feu
– Utilitaire réseau
– Chiffrement et signature numérique
– Sauvegarde et Backup
![Page 9: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/9.jpg)
Serveur• Est un ordinateur dédié à l'administration
d'un réseau informatique. Il gère l'accèsaux ressources et aux périphériques et les connexions des différents utilisateurs.
• Il est équipé d'un logiciel de gestion de réseau : un serveur de fichiers prépare la place mémoire pour des fichiers, un serveur d'impression gère et exécute les sorties sur imprimantes du réseau…
• Un serveur d'applications rend disponible sur son disque dur les programmes pouvant être appelés à travers le réseau.
![Page 10: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/10.jpg)
Apache• Est le serveur web le plus utilisé : 57% des
serveurs, selon un sondage de Netcraft de juin 2002.
• Stable, sûr et modulable, il supporte l'interfaçage avec les bases de données (MySQL, PostgreSQL, ...),
• Les scripts écrits dans des langages comme Perl, PHP,... ainsi qu'une large gamme d'autres modules.
• Ses capacités avancées de configuration font de lui l'un des serveurs les plus sûrs et les plus polyvalents disponibles!
![Page 11: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/11.jpg)
Le Web dynamique
11
![Page 12: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/12.jpg)
Connecter le Web et les
SGBDs
12
![Page 13: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/13.jpg)
Modèles & architectures
13
![Page 14: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/14.jpg)
Support technique du Web
14
![Page 15: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/15.jpg)
• La problématique :
– Le maintien des sessions transactionnelles
– La performence
– La sécurité
– La réutilisation du code
Problématique Web & SGBD
![Page 16: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/16.jpg)
Les BD : petit rappel
16
![Page 17: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/17.jpg)
Les (+) d’un SGBD
17
![Page 18: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/18.jpg)
Les principaux SGBDs
18
![Page 19: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/19.jpg)
Serveur HTTP
19
![Page 20: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/20.jpg)
Serveurs Web en ligne
20
![Page 21: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/21.jpg)
Techniques de connexion
(pour obtenir des contenus dynamiques)
21
![Page 22: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/22.jpg)
Les technologies de connexion• CGI : le standard
• Langages de scripts serveur– JSP, ASP, PHP, …
– Langages s’appuyant sur CGI et proposant des facilités (exemple : séssions…)
![Page 23: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/23.jpg)
Passerelle CGI : principe
23
![Page 24: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/24.jpg)
Passerelle CGI : les (+) et les (-)
24
![Page 25: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/25.jpg)
Extensions propriétaires de CGI
25
![Page 26: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/26.jpg)
CGI : mise en œuvre
26
![Page 27: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/27.jpg)
CGI : réception des paramètres
27
![Page 28: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/28.jpg)
La chaine de développement Web
28
![Page 29: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/29.jpg)
La chaine de développement Web
29
![Page 30: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/30.jpg)
La chaine de développement Web
30
![Page 31: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/31.jpg)
• Cold Fusion
• Active Server Page (ASP)
• Java Server Page (JSP)
• Servelet
• PHP
• etc
Langages de scripts Serveur
![Page 32: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/32.jpg)
Langage de scripts PHP
32
![Page 33: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/33.jpg)
• Php : hypetext processor
• Langage de script HTML interprété côté serveur
• =/= Java script qui s’exécute côté client
• Le php permet de réaliser des sites web dynamiques
• Le php est disponible dans plusieurs environnements tel qu’Unix (linux, AIX), Windows (98/NT/XP….)
• Php possède une impressionnante quantité d’outils (manipulation d’images, traitement de fichiers, accès aux bases de données…)
• Contient des instructions : demande au serveur d’effectuer des actions
Langage de scripts PHP
![Page 34: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/34.jpg)
Pourquoi PHP
34
![Page 35: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/35.jpg)
Pourquoi PHP
35
![Page 36: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/36.jpg)
Le langage
36
![Page 37: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/37.jpg)
Architecture d’un site web avec php
![Page 38: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/38.jpg)
• Le moteur d'interprétation du langage lit un fichier source PHP, en respectant les définitions et règles suivantes :
– Un bloc PHP est un groupe continu de lignes, encadré par deux balises : <? et ?> ou <?php et php?>
– Toute ligne située à l'extérieur de ces balises n'est pas interprétée et est envoyée telle quelle dans le flux de sortie.
– Toute ligne située à l'intérieur de ces balises est considérée comme une instruction PHP et est donc interprétée par le moteur.
– Les instructions PHP n'apparaissent pas dans le résultat généré.
– Lorsqu'une erreur survient, un message est intégré dans le flux de sortie, et la génération du script est interrompue.
Langage de scripts PHP
![Page 39: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/39.jpg)
Le langage
39
![Page 40: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/40.jpg)
php coté serveur
![Page 41: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/41.jpg)
php coté serveur
![Page 42: Support de cours Développement de logiciels libresla3.weebly.com/uploads/1/0/1/6/10163876/chapitre_1_cours_emna_bouazizi.pdf3. la liberté de redistribuer des copies du programme](https://reader033.vdocuments.fr/reader033/viewer/2022050105/5f433973e7f220415049fd23/html5/thumbnails/42.jpg)
php coté client