42
Emna Bouazizi [email protected] ISIM De Monastir Année Univ. 2011/2012 1 Support de cours Développement de logiciels libres

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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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

Emna Bouazizi

[email protected]

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

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

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

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

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

• 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

– 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

– 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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

• 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

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

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

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

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

• 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

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

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

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

php coté client