Topologie du Web 2011-12 O.Curé [1 ]
Contact Olivier Curé ocure@univ-mlv.fr http://www-igm.univ-mlv.fr/~ocure Copernic 4B060 2 OlivierCuré [ocure@univ-mlv.fr]
Définitions Topologie : Branche des mathématiques née de l'étude des propriétés géométriques se conservant par déformation continue, puis généralisée pour englober les notions de limite et de voisinage. Web : Système hypermédia permettant d'accéder aux ressources du réseau internet. 3 OlivierCuré [ocure@univ-mlv.fr]
Evolution du Web 4 OlivierCuré [ocure@univ-mlv.fr]
Futur de la productivité 5 OlivierCuré [ocure@univ-mlv.fr]
Ordre de grandeur Ordre de grandeur : 1Mo : 1 gros roman 200à 500Mo : 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). 6 Eo (Exa), Zo (Zetta) et Yo (Yotta). OlivierCuré [ocure@univ-mlv.fr]
Internet / Web En 2007: 500 million d'adresses IP 1.17 milliard d'utilisateurs 18% de la population 109 million de sites Web 29.7 milliard de pages web 7.2 milliard de recherches/mois (3.9 pour Google) 7 OlivierCuré [ocure@univ-mlv.fr]
Des chiffres En 2006: 161 Eo (10 8 To) d'information ont été créés ou répliqués dans le monde C'est plus que durant les 5000 dernières années International Data Corporation (IDC) estime une croissance 6X d'ici 2010 (soit 988Eo/an) Le volume de l'information technique double tous les 2 ans. Elle doublera toutes les 72 heures en 2010. 8 OlivierCuré [ocure@univ-mlv.fr]
Encore des chiffres 9 2009: +de 250million d'utilisateurs sur Facebook: équivalent du 4ème plus gros pays au monde (entre les USA et l'indonésie) Myspace, environ 185million d'utilisateurs En moyenne, une page MySpace est visitée 30 fois par jour pour accéder à Des images (plus de 1 milliard) De la musique (plus de 25 million) Des vidéos (60To) Sur 6000 serveurs web et 250 serveurs de BD OlivierCuré [ocure@univ-mlv.fr]
Encore.. 10 Facebook: 1.8 milliard de photos 31 million d'utilisateurs 105 nouveaux utilisateurs par jour 1800 applications YouTube 1.7 milliard de vidéos téléchargés/mois 1 million de streams/jour Flickr (juin 2009) 3.6 milliard d'images OlivierCuré [ocure@univ-mlv.fr]
Pour finir ebay dispose de 2 entrepôts de données (data warehouse): Un de plus de 2Po SGBD parallèle (Teradata) Un autre de plus de 6.5Po 50To de nouvelles données par jour SGBD parallèle (Greenplum) 96 noeuds Compression de données à 70% 11 OlivierCuré [ocure@univ-mlv.fr]
Quelques chiffres «Mobile devices in America are generating something like 600 billion geo-spatially tagged transactions per day. Every call, text message, email and data transfer handled by your mobile device creates a transaction with your space-time coordinate (to roughly 60 meters accuracy if there are three cell towers in range), whether you have GPS or not. Got a Blackberry? Every few minutes, it sends a heartbeat, creating a transaction whether you are using the phone or not. If the device is GPS-enabled and you re using a locationbased service your location is accurate to somewhere between 10 and 30 meters. Using Wi-Fi? It is accurate below 10 meters.». Jeff Jonas (http://jeffjonas.typepad.com/) O.Curé [12 ]
Dans quoi stocke-t-on toutes ces informations? Dans des bases de données Une base de données (database) est un ensemble structuré et cohérent de données enregistrées avec le minimum de redondance pour satisfaire simultanément plusieurs utilisateurs de manière sélective et dans un temps opportun. 13 OlivierCuré [ocure@univ-mlv.fr]
Système de gestion de base de données (SGBD) Un ensemble de logiciels permettant la création et la maintenance de bases de données. Un SGBD (database Management System -DBMS) doit permettre : la description, l'organisation et la gestion des données sur les mémoires secondaires. la recherche, la sélection et la modification des données. la manipulation des représentations abstraites des données, indépendamment de leur organisation et de leur implantation sur les supports physiques. 14 OlivierCuré [ocure@univ-mlv.fr]
Caractéristiques des SGBD Structure (types et comportements des données). Persistence des données (mémoire secondaire). Accès aux données (langage déclaratif pour les requêtes, langage procédural de programmation). Performance (accès et stockage des données). Partage ( accès concurrentiel et transactions) Volume important de données Sécurité et reprise sur pannes 15 OlivierCuré [ocure@univ-mlv.fr]
Modèle de données Une BD exploite un modèle de données. Il existe de plusieurs types. Un modèle de données est un ensemble de concepts permettant de décrire la structure d'une base de données : types de données, relations, des contraintes, des opérations (langage de définition et de manipulation des données) et la sémantique. 16 OlivierCuré [ocure@univ-mlv.fr]
Quelques modèles de données Evolution dans le temps : système de fichiers (50s) modèle hiérarchique( 60s) :IMS modèle réseau (70s): Codasyl, IDMS modèle relationnel (80s): Oracle, Sybase,DB2,.. modèle orienté objet (90s): Versant, Gemstone, O2 modèle objet-relationnel (90s) : Oracle, DB2, SQLServer, PostgreSQL modèle semi-structuré (hétérogénéité, XML). Le modèle relationnel est le plus populaire aujourd'hui. 17 OlivierCuré [ocure@univ-mlv.fr]
Comment pose-t-on des questions? A l'aide d'un langage de requêtes. Ils diffèrent suivant le modèle de données Un langage de requêtes doit prendre en compte 2 aspects: L'expressivité (la complexité des questions que l'on peut poser) La difficulté du calcul de la réponse par l'ordinateur En simplifiant, plus le langage est expressif plus le calcul sera long. 18 OlivierCuré [ocure@univ-mlv.fr]
Comment développer un site web de ce type? 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 19 OlivierCuré [ocure@univ-mlv.fr]
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 20 CGI Programs Java Servlets ASP.NET Hybrid Technologies Java Server Pages ASP.NET PERL Active Server Pages Cold Fusion Java applets INTEGRATING WEB SITES AND DATABASES, By Mike MORRISON, Joline MORRISON, and Anthony KEYS. Communications of the ACM September 2002 / vol 45, N 9 JavaScript VBScript OlivierCuré [ocure@univ-mlv.fr]
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.. 21 OlivierCuré [ocure@univ-mlv.fr]
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 22 OlivierCuré [ocure@univ-mlv.fr]
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) 23 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. OlivierCuré [ocure@univ-mlv.fr]
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. 24 OlivierCuré [ocure@univ-mlv.fr]
J2EE 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. 25 OlivierCuré [ocure@univ-mlv.fr]
Le Web Le Web révolutionne l'accès à l'information. Des millions de sites, des milliards de pages et des technologies diverses : statique/dynamique, internet/ intranet/extranet. HTML est un support pour l'information distribuée à destination des êtres humains mais n'est pas adapté pour les applications, pourtant ce besoin devient incontournable. O.Curé [26 ]
Constat du Web HTML (HyperText Markup Language) est un langage permettant de présenter l'information à l'écran (navigateur). Pas d'échange de données Pas de traitement de données en dehors de l'affichage HTML est le support du Web actuel, un Web syntaxique. Problèmes engendrés : Moteur de recherche e-commerce Publication de services O.Curé [27 ]
Contraintes du Web Domaine hétérogène : Machines, Systèmes, Environnement de développement Grand nombre d'applications différentes Indépendance données / application. Transformation des données pour un transfert opérationnel. XML est la réponse : Contenu alphanumérique (format ASCII) (semi-)structuré avec des balises Indépendant de l'application Transformation facile (XSL) O.Curé [28 ]
Objectifs de XML Définir un contexte de structuration de données: conception concise et claire utilisable facilement sur Internet compatible avec SGML développement de programmes associés facile minimum d'option (flexibilité maximum) le plus lisible possible (auto-documenté) pas de contrainte particulière sur la syntaxe faciliter et accélérer la préparation de documents => XML est un méta-langage universel pour les données. Le modèle de données est fondé sur des arbres et le langage de représentation est basé sur le balisage. O.Curé [29 ]
XML est d'actualité Car il répond bien à différent besoins: Structuration aisée des données Échange facile sur le WWW Car il généralise certaines technologies existantes: HTML, WAP, imode, PDA, etc.. SGBD texte Car il peut être omniprésent Format de données Protocoles O.Curé [30 ]
Historique Descendant de SGML (ISO 8879, 1986) GML (Generalized Markup Language) en 1969 (Goldfard, Mosher, Lorie; IBM) SGML = Standard Generalized Markup Language Invention: 1970 s (avant le WWW) Spécification = 150 pages Tous les languages de markup (très puissant) Application SGML connue : HTML Très complexe (pas d implémentation unifiée) à lire : http:java.sun.com/xml/birth_of_xml.html O.Curé [31 ]
Historique (suite) 1990 : HTML 1 (Berners-Lee; CERN) 1994 : World Wide Web Consortium (W3C - www.w3.org) 1995 : HTML 2 1996 first draft de XML 1997 : HTML 3.2 en 1997 1998 : Publication de la recommandation XML 2004 : Publication de la recommandation XML 1.1. O.Curé [32 ]
Famille XML XML : Représentation de données DTD (Document Type Definition): Structure du document XSD (XML Schema Definition) = DTD en XML XLink (XML Linking Language): Liens étendus XHTML = «HTML aux normes XML» DOM (Document Object Model): Modèle de données SAX (Simple API for XML): Parser XPath: Structuration du parsing (parcours du DOM) XSL (extended Stylesheet Language): Traitement FO (Formatting Objects): Formattage de texte XML Query Language: Requêtes (Quilt, XML-QL, XQL,etc) SVG : Scalable Vector Graphics : Dessin vectoriel.. O.Curé [33 ]
Exemple XML <?xml version="1.0"?> <personne> <nom>curé</nom> <prenom>olivier</prenom> </personne> O.Curé [34 ]
XML bien formé Contient un ou plusieurs éléments Non vide Un seul point de départ Racine Début de son analyse unique Imbrication correcte (arbre) Structure hiérarchique Fait référence à des entités bien formées Références externes Document distribué O.Curé [35 ]
Syntaxe Similaire à HTML: <balise attribut= valeur >contenu</balise> <balise> : une balise d'ouverture <balise/> : balise de fermeture Pour un élément vide : <balise/> élément = sous-arbre élément vide: <balise attribut= valeur /> attribut= valeur (Importance de guillements!) Commentaire: <!-- ceci est un <commentaire>, jusqu ici --> O.Curé [36 ]
Syntaxe (2) Respect de la casse pour les balises Noms d attributs en minuscules Certains caractères interdits $,... lié au traitement (XSL) Certains caractères déconseillés +,-, pour les noms des attributs (perturbe les calculs) Chaque attribut a un nom unique valeur obligatoire valeur entre guillemets O.Curé [37 ]
Imbrication exemple <personne> <nom>curé</nom> <prenom>olivier</prenom> </personne> Ok <personne> <nom>curé</nom> <prenom>olivier</personne> </prenom> Pas Ok en XML O.Curé [38 ]
Document XML Déclaration XML <?xml?> Version version= 1.0 1.0 ou 1.1 Encodage encoding= ISO- 8859-1 UTF-8, UTF-16, ISO-10646-UCS-2, ISO-10646-UCS-4, ISO-8859-1 à ISO-8859-9, ISO-2022-JP, Shift_JIS, EUC-JP Document indépendant ou non standalone= yes yes, no Instructions pour le traitement <?processing-instruction? > pour les applications qui traitent le document Un document - plusieurs utilisations O.Curé [39 ]
Document XML (2) Déclaration XML <?xml?> Instructions pour le traitement <?processing-instruction? > Déclaration de type de document <!DOCTYPE racine > DTD / Schema Attributs DTD SYSTEM (URL) ou PUBLIC (Details et URL) Associe une structure au document Commentaire <!-- texte --> Texte ignoré durant l analyse Contenu <racine> </racine> Arborescence de balises avec/sans attributs Contenus de balises O.Curé [40 ]
Exemple <?xml version="1.0" standalone="yes"?> <adresses> <personne> <type statut= "mcf"/> <nom>curé</nom> <prenom>olivier</prenom> <adresse>ifis, Univ-mlv</adresse> </personne> <personne>... </personne> </adresses> O.Curé [41 ]
Attribut "standalone" définir l'existence d'une DTD externe Si la valeur est "no", le document n'est pas standalone et dépend d'une DTD externe. Si la valeur est "yes", le document est standalone et il n'y a pas de DTD externe. O.Curé [42 ]
Exemple XML (arbre) Entête adresses personne type nom prenom adresse personne type nom prenom adresse O.Curé [43 ]
Modélisation XML 2 approches pour la modélisation de documents XML : Orientée donnée (data-centric) : structure régulière, ordre des éléments n'est pas important => stockage dans des SGBDR et SBGDOO. Orientée document (document-centric) : structure peu régulière, ordre des éléments est important => stockage NXD (Native XML Databases). O.Curé [44 ]
Sections littérales Il est interdit de placer dans le contenu des caractères comme "<", ">", "&". Le document suivant est incorrect : <?xml version="1.0"?> <code>if (i>5 && j<10) </code> La section CDAta permet d'inclure du texte qui ne sera pas analysé par le parseur : <?xml version="1.0"?> <condition> <![CDATA [if (i>5 && j<10) ]]> </condition> O.Curé [45 ]
URx URI (Uniform Resource Identifier): Un identifiant générique permettant de distinguer sur Internet des ressources concrètes et/ou abstraites. Les URIs proposent une syntaxe pour accéder à des ressources d'une manière indépendante du protocole (extension possible). Il existe 2 types d'uri : Les URL (Uniform Resource Locator) pour les ressources concrètes. Les URN (Uniform Resource Name) pour les ressources abstraites. Possibilité de spécifier des chemins complets ou relatifs. O.Curé [46 ]
URx (2) Une URI comprend 2 parties séparées par ':' : Schéma extrait du 'Dictionary of XML technologies and the Semantic Web", V. Goreimenko, Ed. Springer-Verlag. 2004 O.Curé [47 ]
URx (3) Schema-name peut prendre les valeurs suivantes : http, ftp, mailto, file, news. La notion d'uri est une base du Web Sémantique. Une URL (Uniform Resource Locator) est une localisation, un sous-ensemble d'une URI décrivant une ressource concrète,accessible sur Internet et localisée à une adresse (URL). Exemple : http://www.univ-mlv.fr/ O.Curé [48 ]
URx (4) Une URN (Uniform Resource Name) est un sous-ensemble d'une URI spécifiant le nom d'une ressource générique abstraite, généralement unique et sans localisation. Contrairement à une URL, une URN peut se référer à une chose qui n'existe pas sur Internet. Peut se référer à une "chose" du monde réelle : un chien ou un théorème. L'accès et la récupération ne passe pas forcément par un traitement informatique. O.Curé [49 ]
URx (5) Une URN permet de définir des noms avec une syntaxe proche d'une URL mais ce n'est pas nécessairement une ressource Internet. Une URN est composée de 3 parties séparées par des ':' : O.Curé [50 ]
XML namespaces XML Namespaces : permet le mélange de vocabulaires. offre les avantages suivants : "Marquer" les éléments et attributs avec des espaces de noms. Valider des documents contenant des éléments et attributs provenant de différénts espaces de noms. Version actuelle : Namespaces in XML 1.1 (Recommandation du 02/2004). O.Curé [51 ]
Déclaration des espaces de noms Déclaration par une URI en associant à un préfixe, à l'aide de l'attribut xmlns. Déclaration : <balise xmlns:préfixe="uri"> Exemple <recette xmlns:food="http://www.food.com"> L'association n'est valable que dans les descendants de l'élément qui contient la déclaration. L'association est appliquée aux éléments et attributs. O.Curé [52 ]
Utilisation des espaces de noms (suite) Une déclaration xmlns sans préfixe est considérée comme définissant l'espace de noms par défaut et est appliquée à l'ensemble des éléments de la zone. Utilisation d'un espace de noms : <préfixe:élément> Exemple : <Books xmlns='http://www.oreilly.com' xmlns:songline='http://www.songline.com'> <Book> <Title>XML Pocket Reference</Title> <ISBN>0-596-00133-9</ISBN> </Book> <Songline:CD>18231</Songline:CD> </Books> O.Curé [53 ]
XML namespaces (fin) En règle générale, on utilise une URL pour définir un espace de noms mais cet URL ne doit pas nécessairement pointé sur un schéma (DTD, XML schéma) ou autres documents. Un espace de noms n'est pas une localisation Internet où réside des ressources physiques. C'est une méthode de création de noms uniques permettant d'éviter les collisions entre noms d'éléments. O.Curé [54 ]
Noms qualifiés Un nom qualifié (ou Qname) est un nom d'élément ou d'attribut de la forme : namespace_prefix : local_part Exemple : book:title person:title title nom qualifié nom qualifié nom non-qualifié O.Curé [55 ]
XHTML Reformulation de HTML en tant qu'application XML Avantages : Syntaxe plus rigoureuse Possibilité d'utiliser les applications XML standard Importation de fragments de documents d'autres espaces de noms O.Curé [56 ]
Conclusion XML est un conteneur: Ne dit pas comment définir les balises Ne dit pas comment structurer l'information XML est simple: Texte Peu de contraintes XML est standard: Echange de document Format "central" Outil existants XML n'est pas: Un language de programmation Une solution miracle. O.Curé [57 ]