1 / 68

Nouvelles techniques d’animation d’un site Internet / intranet

Nouvelles techniques d’animation d’un site Internet / intranet. ENSMP/CRI, 8 décembre 2000 --- Laurent DAVERIO. Table des matières. http://sources.trad.org … 3 ht://Dig … 5 Langages de script … 8 Systèmes de génération dynamique de pages Web … 13 SGBD / Annuaires … 39

dick
Download Presentation

Nouvelles techniques d’animation d’un site Internet / intranet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nouvelles techniques d’animation d’un site Internet / intranet ENSMP/CRI, 8 décembre 2000 --- Laurent DAVERIO

  2. Table des matières • http://sources.trad.org … 3 • ht://Dig … 5 • Langages de script … 8 • Systèmes de génération dynamique de pages Web … 13 • SGBD / Annuaires … 39 • Boite à outils Perl … 48 • Analyse de trafic … 64

  3. Sources de logiciels libres http://sources.trad.org

  4. http://sources.trad.org • Au départ, un bloc-notes personnel pour noter les adresses de téléchargement d’un certain nombre de logiciels libres ou gratuits « intéressants ». • La notion d’ « intéressant » est assez subjective… • Pour une vision plusexhaustive, voir par exemplewww.appwatch.com • Recherche de logiciels par • nom / description, • catégories • Réalisation : • HTML::Mason • OpenLDAP

  5. http://www.htdig.org/ ht://Dig Le moteur d’indexation et de recherchele plus répandu dans le domaine dulogiciel libre

  6. ht://Dig 3.2 • Un moteur relativement classique : • Robot de parcours de page (htdig) • Respecte évidemment les « Robot Exclusion Rules » • Paramétrage du parcours via des balises <META> spécifiques • Moteur d’indexation (htmerge) • Types de documents : texte ASCII, HTML, Postscript, PDF (via xpdf ou Acrobat Reader), autres (via convertisseurs à développer soi-même) • Indexation « floue » (htfuzzy) • phonétique (soundex, metaphone) • par racine (à partir d’un dictionnaire) • par synonymes (à partir d’une table de correspondances) • Moteur de recherche (htsearch) • Utilisé sous forme de CGI

  7. Caractéristiques • Points forts • Efficacité, relative facilité de mise en oeuvre • Compatible avec Windows (via bibliothèques Cygwin) • Limitations • Certains types de recherche manquent • Recherche d’expressions : implémentée depuis la version 3.2 (bêta) • Recherche par proximité : en projet • Personnalisation des résultats un peu malaisée • Passage obligé par le CGI htsearch, qui oblige éventuellement à un retraitement par un « wrapper » du HTML produit.

  8. Langages de script Perl, Python, Zend, …

  9. Introduction • 3 langages principaux : Perl, Python, Zend • Caractéristiques : • Utilisables à la fois en contexte statique ou dynamique • Statique : préparation des données, mise en forme des pages à l'avance (préprocesseurs) • Dynamique : génération des pages à la volée • Utilisables également comme langage de script généraliste • Administration système • Traitement de données • Processus lancés périodiquement par crontab

  10. http://www.perl.com Perl 5.6 http://www.activestate.com • Un langage "maximaliste" • Mélange de shell, sed, awk, C, BASIC, … • Plein de pièges pour les néophytes et les autres. • « Il y a toujours plus d'une façon de résoudre un problème ». • Outils et types de données évolués • Intérêt : résoudre en une ligne une problème qui demande normalement 3 ou 4 lignes de code • découper une chaîne, rechercher une occurrence dans une liste, … • Exemples : expressions régulières, listes, tableaux associatifs,… • CPAN : "Comprehensive Perl Archive Network" (http://www.cpan.org/, plus de très nombreux miroirs dans le monde) : • Une bibliothèque de modules très étendue. • Dont un module CPAN qui automatise l’installation d’autres modules • Mais ces modules ne sont pas, en majorité, fournis dans la distribution standard.

  11. Python 2.0 http://www.python.org • Langage de type intermédiaire • Plus "propre" que les langages de scripts traditionnels • … en particulier, plus propre que Perl ;-) • Langage à objets plus simple à utiliser que Java • Syntaxe simplifiée • Langage "interprété" (compilation en bytecode à la volée) • Passerelle avec Java : Jpython (interpréteur 100% pure Java) • Possibilité de réaliser des Applets Java en JPython • Une bibliothèque de modules standard très complète • Modules réseau (sockets, FTP, HTTP, …) • Tkinter : une bibliothèque graphique basée sur Tcl/Tk • portable sous X11 et Windows • Langage jeune, en pleine expansion • Plusieurs outils significatifs sont déjà écrits en Python • Zope, BSCW, scripts d'installation et de configuration de RedHat Linux, …

  12. Zend http://www.zend.com • Zend est le langage de PHP 4 • Réécriture complète du langage de PHP3 • Amélioration importante des performances (précompilation) • Modification de l’architecture (allocation mémoire, …) • Meilleur découpage des tâches • PHP 4 devient multi plate-formes (IIS, Apache, NS, Roxen, …) • Syntaxe proche de celle de C ou de Perl • Zend est un langage extrêmement riche en fonctions de toutes sortes • Exemples : manipulation de fichiers, d’images, de boites à lettres IMAP, de SGBD (MySQL, …), d’annuaires LDAP, gestion de sessions… • Avantage : tout est intégré en standard • Inconvénient : il n’y a pas la notion de modules comme en Perl • Comme Perl, ce n’est pas un vrai langage à objets • Notion de classes PHP, qui encapsulent variables et méthodes • Zend, un « sous Perl » ?

  13. Systèmes de génération dynamique de pages Web CGI, ASP, ePerl, PHP, ASP, Mason, Coldfusion, …

  14. Introduction • Classés par flexibilité décroissante, et vitesse de développement croissante : • Génération par script de bout en bout • CGI (Common Gateway Interface) • Java Servlets (avec serveur d'applications Java) • Inclusion d'un script dans une page HTML • ASP (Active Server Pages) • PHP (PHP : Hypertext Processor) • ePerl (Embedded Perl) et équivalents (Mason / EmbPerl / EP) • Extension "HTML-like" côté serveur • CFML : ColdFusion Markup Language (ColdFusion) • RXML : Roxen Macro Language (Roxen Challenger) • DTML : Document Template Markup Language (Zope)

  15. CGI - Common Gateway Interface • Le premier système généralisé de génération dynamique de pages • Avantages : généralité, flexibilité • Flexibilité dans le choix du langage • C, Perl, Python, shell Unix, Visual Basic, … • Flexibilité dans les types de contenus • HTML, image fixe ou animée, … • Flexibilité dans le choix du serveur HTTP • Inconvénients : • "fork" : chaque appel crée un nouveau process • Solutions : variantes "persistantes" (PCGI, FastCGI, …) • "stateless" : pas de mémoire d'un appel à l'autre • L'application doit gérer elle-même les sessions d'utilisation (paramètres URL, cookies, …)

  16. CGI - Principe de fonctionnement • Le client Web (navigateur) envoie une requête HTTP au serveur Web • Le logiciel serveur Web (Apache, IIS) détermine qu'il s'agit non pas d'une requête de service de fichiers, mais d'une requête CGI (exécution de programme) • Mécanismes : chemin d'accès (cgi-bin), extension (.cgi) • Le logiciel serveur Web démarre le programme CGI sur la machine hôte (création de processus), lui transmet un certain nombre de variables d'environnement et de paramètres utilisateur (champs de formulaire, …) • Le programme CGI génère typiquement du code HTML, une image GIF (compteur), … • La sortie standard (STDOUT) du programme CGI est redirigée vers le logiciel serveur Web, qui la retransmet à l'utilisateur

  17. CGI - Exemple en Perl (variante 1) • http://www.serveur.org/cgi-bin/exemple.cgi?nom=Laurent • #! /usr/local/bin/perluse CGI; # module perl CGI.pm$q = new CGI; $nom = $q->param("nom"); print "Content-type:text/html\n\n";print "<HTML>";print"<HEAD>";print"<TITLE>CGI qui dit bonjour à $nom</TITLE>";print"</HEAD>"; print"<BODY>"; print "Bonjour $nom !"; print "</BODY>"; print"</HTML>";

  18. CGI - Exemple en Perl (variante 2) • http://www.serveur.org/cgi-bin/exemple.cgi?nom=Laurent • #! /usr/local/bin/perluse CGI; # module perl CGI.pm$q = new CGI; $nom = $q->param("nom"); print "Content-type:text/html\n\n", "<HTML>","<HEAD>","<TITLE>CGI qui dit bonjour à $nom</TITLE>","</HEAD>","<BODY>", "Bonjour $nom !", "</BODY>","</HTML>";

  19. CGI - Exemple en Perl (variante 3, avec syntaxe « here document ») • http://www.serveur.org/cgi-bin/exemple.cgi?nom=Laurent • #! /usr/local/bin/perluse CGI; # module perl CGI.pm$q = new CGI; $nom = $q->param("nom"); print << FIN;Content-type:text/html<HTML><HEAD><TITLE>CGI qui dit bonjour à $nom</TITLE></HEAD><BODY>Bonjour $nom !</BODY></HTML>FIN

  20. CGI - Exemple en Perl (variante 4, avec module Text::Template) • http://www.serveur.org/cgi-bin/exemple.cgi?nom=Laurent • #! /usr/local/bin/perluse CGI; use Text::Template;$q = new CGI; $nom = $q->param("nom"); print Text::Template->fill_this_in(<<FIN);Content-type:text/html<HTML><HEAD><TITLE>CGI qui dit bonjour à {$nom}</TITLE></HEAD><BODY>Bonjour {$nom} !</BODY></HTML>FIN

  21. PHP 4.0 http://www.php.net • Un langage "enfoui" (embedded) dans le HTML • Possibilité d'utiliser des outils visuels (Dreamweaver 3) • Avantages : • Tout intégré (cf. Zend) • mod_php : accélération du démarrage des pages PHP sous Apache • Souvent préinstallé. Exemples : • php fait partie des principales distributions Linux. • php est disponible chez plusieurs fournisseurs d’accès, dont Free (http://www.free.fr) et Multimania. • Inconvénient : • Langage spécifique • Zend présente de nombreuses similitudes, vraies ou fausses, avec Perl • Langage moins extensible que Perl ou Python • Très à la mode en ce moment, notamment en France

  22. PHP - Exemple • http://www.serveur.org/exemple.php?nom=Laurent • <HTML><HEAD><!–- lecture du paramètre (commentaire HTML)--><? $nom = $HTTP_GET_VARS["nom"]; ?><TITLE>PHP qui dit bonjour à <?php echo $nom; ?></TITLE></HEAD><BODY><? # Corps du document (commentaire php) echo "Bonjour $nom !";?></BODY></HTML>

  23. ePerl 2.2 http://www.engelschall.com/sw/eperl/ • Modification du parser standard Perl • Extension de l’approche du module Text::Template : • Inclusion de code Perl dans des fichiers texte • Inversion de la dépendance code / texte • Au départ, pas de lien obligé avec le Web • ePerl peut s’utiliser depuis la ligne de commande comme langage de script généraliste • Utilisation pour le Web • Intégration de Perl dans des pages HTML (.phtml, .epl) • Intérêt : temps d'apprentissage nul quand on connaît Perl • Utilisable comme CGI ou via mod_perl (handler Apache::ePerl) • Démarche très proche de celles des CGI classiques • Très grande simplicité conceptuelle • Mais des incertitudes sur son avenir • Pas d’évolution depuis la version 2.2 de 1998 • Possibles problèmes de compatibilité avec les nouvelles versions de Perl

  24. ePerl - Exemple • http://www.serveur.org/exemple.phtml?nom=Laurent • <HTML><HEAD><? use CGI; # module perl CGI.pm $q = new CGI; $nom = $q->param("nom"); !><TITLE>ePerl qui dit bonjour à <?=$nom!></TITLE></HEAD><BODY><? # Corps du document (commentaire Perl) print "Bonjour $nom !";!></BODY></HTML>

  25. Mod_perl 1.24 http://perl.apache.org • Mod_perl associe un interpréteur Perl résident à Apache • Possibilité de paramétrer le comportement d’Apache depuis Perl • Comme le ferait un module Apache classique, écrit en C • Emulation du fonctionnement des CGI en Perl (Apache::Registry) • Avantages : performances accrues • Pas de création de processus, ni de lancement de l’interpréteur Perl à chaque requête utilisateur • Inconvénients : Complexité d’utilisation • la persistance de l’interpréteur interdit les mauvaises habitudes de programmation normalement autorisées par Perl • Variables non déclarées ni initialisées, variables globales, … • Extension des possibilités par rapport aux CGI classiques • Partage de variables entres sessions • Gestion de sessions au niveau du serveur (Apache::Session) • Gestion de caches persistants • Préchargement de modules Perl • Cache de code (précompilation de scripts) et de données (variables de session, résultat d’une requêtre SQL, …)

  26. HTML::Mason 0.89 http://www.masonhq.com/ • Approche de développement par composants • Découpage d’une page en « briques » • Chaque composant est converti en une fonction Perl • Il peut donc recevoir des paramètres et/ou renvoyer une valeur • Plus évolué que la notion d’inclusion de ePerl ou ASP. • Système de génération dynamique étroitement lié à Apache • Un bon compromis pour utiliser mod_perl : • Gain de vitesse sensible par rapport au même code CGI • De nombreux garde-fous pour ne pas tomber dans les pièges de mod_perl (programmer « propre ») • Gestion de caches pour le code et les données • Gestion de versions (production / développement) • Prévisualiseur permettant de simuler diverses conditions d’utilisation (date/heure, navigateur, adresse source, …) • Debugger / Profiler pour l’optimisation de code

  27. HTML::Mason - Exemple • http://www.serveur.org/exemple.html?nom=Laurent • <HTML><HEAD><TITLE>Mason qui dit bonjour à <%$nom%></TITLE></HEAD><BODY><%perl> # Corps du document (commentaire Perl) $m->out ("Bonjour $nom !");</%perl></BODY></HTML><%args> $nom => ’’</%args>

  28. http://perl.apache.org/embperl/ HTML::Embperl 1.3 • Une approche qui s’éloigne encore plus que Mason d’un « embedded Perl » simple tel que ePerl ou ASP. • Exemples : • Délimiteurs : • [+… +] : blocs à afficher • [- … -] : blocs à exécuter, mais à ne pas afficher • [$ … $] : méta-commandes Embperl • if/endif, while/endwhile, do/until, foreach/endforeach, … • Raccourcis pour générer des tables HTML ($row, $col) • Des possibilités étendues, liées essentiellement à l’utilisation de mod_perl • %fdat, @ffld : paramètres de la requête (formulaire) • Gestion de sessions (Apache::Session) • Paramètres sauvegardés par utilisateur (%udate) ou par page (%mdat) • Des performances liées également à l’utilisation de mod_perl

  29. HTML::Embperl - Exemple • http://www.serveur.org/exemple.html?nom=Laurent • <HTML><HEAD>[- $nom = $fdat{’nom’} -] <TITLE>Embperl qui dit bonjour à [+$nom+]</TITLE></HEAD><BODY>[# Corps du document (commentaire Embperl) #] [+ "Bonjour $nom !" +]</BODY></HTML>

  30. http://www.apache-asp.org/ ASP - Active Server Pages • Un système essentiellement propriétaire… • Version Microsoft des systèmes de type "Embedded xyz" • Langages préconisés au départ : VBScript, Jscript (variante de Javascript) • Un système très simple d’utilisation • Inclusion de blocs d'instructions de programme dans une page HTML • Possibilité d'utiliser des outils visuels (Dreamweaver 3) • Un environnement accessible par le biais d'objets spécialisés • Request, Response, Server, Session, … • Interface ISAPI : pas de création de processus pour traiter les requêtes • Meilleurs temps de chargement qu'un CGI a priori • Gestion de caches de pages et de variables de sessions • Plate-forme typique : IIS sous Windows NT Intel • Un portage commercial sous Unix existe (par Chili!Soft) • … mais pas totalement incompatible avec l'emploi de logiciels libres • Point commun : Perl ! • Sous Unix/Apache/mod_perl : module Apache::ASP • Sous WinNT/IIS : PerlScript (composant de ActivePerl)

  31. ASP - Exemple en Perlscript • http://www.serveur.org/exemple.asp?nom=Laurent • <%@ language=perlScript %><HTML><HEAD><!–- lecture du paramètre (commentaire HTML)--><% $nom = $Request->querystring("nom")->item; %><TITLE>ASP qui dit bonjour à <%=$nom%></TITLE></HEAD><BODY><% # Corps du document (commentaire Perl) $Response->write("Bonjour $nom !");%></BODY></HTML>

  32. ColdFusion 4.0 • Allaire : http://www.allaire.com • Le moteur dynamique le plus utilisé aux Etats-Unis • 4% des sites (ASP : 2%) • Utilisation de balises supplémentaires : CFML (Cold Fusion Markup Language) • Syntaxe conforme à celle de HTML/XML -> utilisation possible dans des éditeurs HTML, par exemple Dreamweaver • Développement extrêmement rapide quand on se trouve dans les cas prévus : • Interrogation de bases de données SQL (<CFQUERY>) ou LDAP (<CFLDAP>) • Applications de messagerie : envoi (<CFMAIL>) et réception (<CFPOP>) de courrier électronique • Interaction avec d’autres serveurs (<CFFTP>, <CFHTTP>) • Dans les autres cas, langage moins expressif qu’un langage de script « classique » comme Perl • Et lisibilité du code moins bonne (conflit entre les indentations HTML et les indentations CFML)

  33. ColdFusion - Exemple • http://www.serveur.org/exemple.cfm?nom=Laurent • <HTML><HEAD><CFOUTPUT><TITLE>CFML qui dit bonjour à #nom#</TITLE></HEAD><BODY>Bonjour #nom# :</TITLE></CFOUTPUT></BODY></HTML>

  34. Roxen Challenger http://www.roxen.com/ • Un serveur Web modulaire et flexible • Interprété (écrit en Pike, langage proche de C) • Administrable graphiquement (https://… via SSL) • De nombreux modules • Gestion de la sécurité et des droits d'accès. • Connections à des bases de données (SQL, LDAP, …). • Génération dynamique de graphiques (texte graphique , diagrammes). • Un langage de macros, RXML. • RXML est assez similaire à CFML (ColdFusion) • Limitations • RXML doit souvent être complété par de l’ « embedded Pike » • Les avantages de Roxen par rapport à ses concurrents touchent surtout à l'accessoire (opinion personnelle). • Génération de graphiques, module "Wizard", … • CFML est plus aisé à utiliser en règle générale.

  35. Roxen – Exemple de RXML • http://www.serveur.org/exemple.rxml?nom=Laurent • <HTML><FORMOUTPUT><HEAD><TITLE>RXML qui dit bonjour à #nom#</TITLE></HEAD><BODY>Bonjour#nom# !</BODY></FORMOUTPUT></HTML>

  36. Quid d’un « Embedded Python » ? • Il n’y a pas à l’heure actuelle de système à la fois simple et performant pour incclure du Python dans du HTML • Différents systèmes existent pourtant : ASPy, PMZ, ePython, … mais sont essentiellement du domaine expérimental • Voir http://sources.trad.org pour plus d’informations • Il existe par contre un système performant, mais complexe, à base d’objets Python : Zope

  37. Zope (Z Object Publishing Environment) http://www.zope.org/ • Un système de publication d'objets écrit en Python • Tous les fichiers sont remplacés par des objets gérés par une base de donnée objets, ZODB. • Ces objets sont tous manipulables via une interface Web. • Possibilité toutefois d'utiliser les outils usuels (éditeurs, …) • Un serveur FTP intégré assure l'import/export des objets vers des fichiers. • Objet = meilleure réutilisabilité des développements. • Modèle de sécurité et de délégation puissant • Conçu pour un travail collaboratif entre développeurs, administrateurs, responsables de contenu, … • Un système tout intégré • Peut être servi par Apache ou par son propre serveur HTTP, Zserver. • Intègre un SGBDR léger, gadfly (écrit en Python), et un système d'indexation (Zcatalogs).

  38. Zope – Exemple de DTML • http://www.serveur.org:8080/exemple?nom=Laurent • <HTML><dtml-let expr="REQUEST.form['nom']"><HEAD><TITLE>DTML qui dit bonjour à <dtml-var nom></TITLE></HEAD><BODY>Bonjour<dtml-var nom> !</BODY></dtml-let></HTML>

  39. SGBD / Annuaires GDBM, Berkeley DB, MySQL, PostgreSQL, OpenLDAP

  40. Des bases de données pour le Web • Pourquoi ? • Assurer le stockage des données associées à un site dynamique • Exemple : catalogue d'articles • Quel type de base de données ? • Fichiers texte • Fichiers DB / DBM • Bases de données relationnelles (SGBDR) • Serveurs d'annuaires LDAP

  41. Fichiers texte • Qu'est-ce que c'est ? • Fichiers texte (ASCII) ordinaires • Caractéristiques • Facilité d'édition et de mise à jour (éditeur de texte) • Mécanisme d'accès : lecture séquentielle • Certains systèmes permettent d'appliquer des requêtes SQL (relationnelles) aux fichiers texte. • Module DBD::CSV (Perl) • Drivers ODBC • Performances modestes • Initialisation : nécessité de lire la totalité du fichier en mémoire. • Se limiter à quelques dizaines d'enregistrements. • Aucun mécanisme de contrôle d'intégrité référentielle • Utilisation de préférence en lecture seule

  42. Fichiers DB / xDBM • Qu'est-ce que c'est ? • Famille de formats de stockage "clé -> valeur". • Un algorithme de hachage permet d'accéder efficacement aux valeurs à partir des clés. • Caractéristiques • Formats standard sous Unix. • Correspondance transparente avec le type "tableau associatif" dans certains langages de script (Perl, Python). • Mal adapté pour représenter l’équivalent d’un SGBD relationnel • 1 clé + 1 valeur = 2 colonnes … • Pas de notion d’intégrité référentielle • Exemples • GDBM : implémentation GNU, libre. • Berkeley DB (http://www.sleepycat.com) : implémentation très performante • SDBM : la seule implémentation de DBM disponible sous NT.

  43. SGBDR - Système de Gestion de Bases de Données Relationnelles • Qu'est-ce que c'est ? • Une base de données où les entités modélisées ainsi que leurs associations sont représentées sous forme de tables • Ligne = une instance de l'entité • Colonne = un attribut de l'entité • Caractéristiques • Modèle sous-jacent : algèbre relationnelle, ensembliste • Un langage d'interrogation normalisé : SQL • Ensembliste, non procédural • Des mécanismes garantissant la cohérence des données • Contraintes d'intégrité référentielle, transactions, … • Exemples • Commerciaux : Oracle, Sybase, SQL Server … • Libres : PostgreSQL, MySQL, mSQL, • Bureautiques : Access …

  44. MySQL 3.23 http://www.mysql.com/ • SGBDR léger et extrêmement répandu • Client/serveur, multi-utilisateurs, multi-thread, SQL • Logiciel libre (été 2000), multi plate-forme • Souvent utilisé ou proposé en conjonction avec PHP • Exemple : Free (http://www.free.fr) • Rapide et robuste • Un modèle de sécurité très riche • Granularité des permissions très fine (utilisateur, machine, table, colonne, …) • De très nombreux outils et bibliothèques • API (Perl, C, php, ODBC, Java/JDBC, …) • Interfaçable avec Apache, POP3, … • Clients graphiques (X11, Win32) • Limitations / lacunes • Pas de sous-requêtes, ni de vues • Impossibilité de faire des mises à jour sur plusieurs tables simultanément • Pas de transactions (explique en partie la rapidité de MySQL) • Pas de procédures stockées

  45. PostgreSQL 7.0.3 http://www.postgresql/org • LE challenger de MySQL ? • Comble l’essentiel des lacunes de MySQL… • Vues / sous-requêtes, transactions, procédures stockées • Meilleure conformité avec SQL/92 • Meilleur comportement en contexte multi-utilisateur • … au prix toutefois de : • Performances inférieures dans certains cas • Relativement moindre universalité • Interfaçable cependant avec Perl, Python, Java, PHP, Coldfusion, Pike, …

  46. Serveur d'annuaire LDAP • Qu'est-ce que c'est ? • "Lightweight Directory Access Protocol" • Version simplifiée du protocole DAP de X.500 • Spécification à plusieurs niveaux : • structuration (nommage des données, arborescence) • protocole d'interrogation en réseau des données • Distribution, réplication et sécurité des données • Format LDIF (ASCII) : import / export d'informations • Caractéristiques : • Adapté au stockage d'un grand nombre d'entrées contenant chacune une faible quantité d'informations. • Optimisation de la lecture par rapport à l'écriture. • Très grande rapidité d’accès en lecture • De plus en plus souvent utilisé comme "Lightweight Database Access Protocol".

  47. OpenLDAP 2.0.7 http://www.openldap.org/ • Un (le ?) serveur LDAP v3 libre • Dérivé de UMich LDAP (Université du Michigan), première implémentation libre de LDAP • Support de LDAP v3 depuis la version 2 • Caractéristiques • Cohérence et sécurité : schémas LDAP, ACLs • Supporte réplication et distribution • Stockage des données : DBM (par défaut) • Stockage dans un SGBDR (Oracle, …) possible • Et, naturellement, support de tous les outils LDAP standard • Browsers / éditeurs LDAP • API : Net::LDAP (Perl), JNDI (Java), fonctions ldap_* (PHP), <CFLDAP> (Coldfusion), <LDAPOUTPUT> (Roxen), ZopeLDAP (Zope) …

  48. Boite à outils Perl Petite sélection de modules utiles

  49. Le CPAN (http://www.cpan.org) • Le site où sont regroupés tous les développements ayant trait à Perl (versions, portages, modules, …) • De nombreux miroirs existent dans le monde, par exemple : • ftp://ftp.lip6.fr/pub/perl/cpan • La liste et la documentation des modules est consultable en ligne, notamment sur : • http://theoryx5.uwinnipeg.ca/CPAN/by-module

  50. Bundle::CPAN • Module de la bibliothèque standard • Installation automatisée de modules Perl • Gère les téléchargements (FTP) et les dépendances entre modules • Utilisation : • Sur la ligne de commande : • perl –MCPAN –e shell • A l’invite qui s’affiche, taper : • install HTML::Parser

More Related