10. Base de données et Web 313
Evolution de l'information Ordre de grandeur : 314 1Mo : 1 gros roman 200Mo : ce que mémorise un être humain dans sa vie. 900Mo : information contenue dans le génome d'une cellule humaine. 1To : estimation de la taille d'un HD en 2007. Toutes les conversations d'un être humain dans sa vie au format MP3. 20To : bibliothèque du congrès à Washington (que le texte), 20 millions d'ouvrages. 200To : archives du net en 2003 12 milliards de pages. 3Po : Bibliothèque du congrès scannerisée (textes + images). 100Eo : total du flux d'information dans le cerveau humain durant sa vie (Von Neumann). Eo (Exa), Zo (Zetta) et Yo (Yotta).
Web et stockage Coût du stockage : 315 1970 : 20 000F / Mo 1998 : 2F / Mo 2004: 0,05F / Mo 2008 : < 0,001F / Mo Capacité de stockage est multipliée par 3,5 tous les 18 mois (plus de la loi de Moore). Google et Fast en 2004:Environ 4,5 milliards d'url indexés. Soit 15 à 20% de l'existant. Fin 2008: Google indexe entre 10 et 20 milliards d'url Un exemple : Medline regroupe 15 millions d'articles provenant de 3600 journaux sur les 35 dernières années.
BD et Web 3 générations de sites Web : 316 Sites statiques : 100% HTML. Sites dynamiques (sens données et non DHTML) => e-commerce. Pages HTML générées directement à partir de requêtes envoyées aux bases de données Applications client-serveur de type transactionnel, avec possibilité de mise à jour, en temps réel, des bases de données Sites 'intelligents" => sites e-commerce avec : Gestion de la relation client sur Internet (CRM et IRM) : personnalisation, profiling, filtrage collaboratif actif (FCA), etc. Data-mining, web-mining, etc..
Architectures du web Emergence du web : 1992 3 générations de sites Web : statique, dynamique et «intelligente». 1ère génération : statique 100% HTML Les autres générations exploitent l'architecture client-serveur. HTTP + CGI HTTP + template + scripting Serveur de présentation 317
Architectures du web Web / Data Processing Technologies Server-side processing Client-side processing Compiled programs Server-Side scripts Client-side scripts Compiled programs on client workstation CGI Programs Java Servlets ASP.NET Hybrid Technologies Java Server Pages ASP.NET PERL Active Server Pages Cold Fusion Java applets JavaScript VBScript 318 INTEGRATING WEB SITES AND DATABASES, By Mike MORRISON, Joline MORRISON, and Anthony KEYS. Communications of the ACM September 2002 / vol 45, N 9
HTTP + CGI CGI = Common Gateway Interface Repose sur l'exécution de programmes sur le serveur en lui passant des arguments à travers l'url. Limites : Montée en charge importante est difficile Peu robuste. Code source peu maintenable et lourd. Exemples : Perl, Tcl, shells, etc.. 319
HTTP + modèle + langage script serveur Un modèle (template) est une page HTML contenant du code, écrit dans un langage script, exécuté du côté serveur. Propose une séparation entre le code applicatif et la page HTML. Le serveur est chargé de la génération du code HTML. Limites : Caractère propriétaire des balises. Réutilisabilité et structuration. Ex : PHP et coldfusion 320
Serveur de présentation Proche de la solution précédente mais avec une couche d'architecture plus globale et inclusion de composants. Deux grandes solutions sont disponibles : ASP.net (Active Server Pages) ASP était la 1ère solution sur le marché. Possibilité de développer dans de nombreux langages (VB, C#, etc..). J2EE : Servlets, JSP (Java Server Pages) et java beans. Indépendant de la plate-forme. 321
Serveur d'applications Objectif : fournir une mise en oeuvre logique applicative sous la forme de composants. Ces derniers doivent être persistants et particulier à des transactions, de manière distribuée. Ce middleware offre des fonctions techniques comme : l'équilibrage de charge, la tolérance aux pannes, la gestion de cache, service de nommage et de localisation => fonctions vitales dans le cadre d'applications Internet fortement centralisées. 322
J2EE 323 Architecture Java reposant sur l'orienté objet (héritage, encapsulation et polymorphisme). Servlets, JSP, JavaBeans, JSTL (JavaServer Tag Libraries) => profite du modèle MVC (Modèle Vue Contrôleur). Gestion des transactions (JTA). Gestion des BD (JDBC). Gestion des messages (JMS, JavaMail). Gestion des objets distribués (RMI-IIOP). Gestion de renommage des services (JNDI). Solutions : BEA logic, Websphere, Enhydra, Jboss, Geronimo.