Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Emna Bouazizi
ISIM De Monastir
Année Univ. 2011/2012
1
Support de cours
Développement de logiciels
libres
Chapitre I - Contexte
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.
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.
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.
• 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
– 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
– 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
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.
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!
Le Web dynamique
11
Connecter le Web et les
SGBDs
12
Modèles & architectures
13
Support technique du Web
14
• La problématique :
– Le maintien des sessions transactionnelles
– La performence
– La sécurité
– La réutilisation du code
Problématique Web & SGBD
Les BD : petit rappel
16
Les (+) d’un SGBD
17
Les principaux SGBDs
18
Serveur HTTP
19
Serveurs Web en ligne
20
Techniques de connexion
(pour obtenir des contenus dynamiques)
21
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…)
Passerelle CGI : principe
23
Passerelle CGI : les (+) et les (-)
24
Extensions propriétaires de CGI
25
CGI : mise en œuvre
26
CGI : réception des paramètres
27
La chaine de développement Web
28
La chaine de développement Web
29
La chaine de développement Web
30
• Cold Fusion
• Active Server Page (ASP)
• Java Server Page (JSP)
• Servelet
• PHP
• etc
Langages de scripts Serveur
Langage de scripts PHP
32
• 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
Pourquoi PHP
34
Pourquoi PHP
35
Le langage
36
Architecture d’un site web avec php
• 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
Le langage
39
php coté serveur
php coté serveur
php coté client