Tendances futures du Web Tendances futures du Web GTI-780 / MTI-780 GTI-780 / MTI-780 Sujets spéciaux en TI Sujets spéciaux en TI Le Web 2.0 : concepts et outils Le Web 2.0 : concepts et outils École de technologie supérieure École de technologie supérieure par par Claude Coulombe Claude Coulombe ETS - Montréal - 2009 ETS - Montréal - 2009
41
Embed
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09
Présentation sur les tendances futures du Web dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l'Ecole de technologie supérieure, Montréal, Automne 2009
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Tendances futures du WebTendances futures du Web
GTI-780 / MTI-780GTI-780 / MTI-780
Sujets spéciaux en TISujets spéciaux en TI
Le Web 2.0 : concepts et outilsLe Web 2.0 : concepts et outils
École de technologie supérieureÉcole de technologie supérieure
Le terme COMET a été inventé par Alex Le terme COMET a été inventé par Alex Russell en mars 2006 en référence à la Russell en mars 2006 en référence à la poudre à récurer Comet concurrente de la poudre à récurer Comet concurrente de la marque Ajax!marque Ajax!
Source : A. Russell - http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/Source : A. Russell - http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/
COMET – COMET – Diagramme de séquenceDiagramme de séquence
Une application Comet Une application Comet peut transmettre des peut transmettre des données au client à données au client à n'importe quel moment n'importe quel moment (pas seulement en réponse (pas seulement en réponse à une requête de l'usager).à une requête de l'usager). Les données sont Les données sont transmises au travers une transmises au travers une unique connection unique connection précédemment ouverte.précédemment ouverte.
Le temps de latence est Le temps de latence est ainsi minimisé. ainsi minimisé.
COMET – défi techniqueCOMET – défi techniqueComet requiert un protocole à base d'événements et une réaction instantanée Comet requiert un protocole à base d'événements et une réaction instantanée
Peut se faire avec des sockets TCP/IP (=> plugiciels)Peut se faire avec des sockets TCP/IP (=> plugiciels)
HTTP ne supporte pas la diffusion spontanée d'événements. HTTP répond HTTP ne supporte pas la diffusion spontanée d'événements. HTTP répond
seulement en réaction à une requête d'un client. Un serveur HTTP n'envoie pas de seulement en réaction à une requête d'un client. Un serveur HTTP n'envoie pas de
données sans une requêtedonnées sans une requête
Chaque client en attente d'un événement bloque un Thread sur le serveur (1 Chaque client en attente d'un événement bloque un Thread sur le serveur (1
connexion = 1 Thread). Or un conteneur de servlets peut servir un maximum de connexion = 1 Thread). Or un conteneur de servlets peut servir un maximum de
Threads concurrents de l'ordre de 100 à 200. Au delà il faut un autre mécanismeThreads concurrents de l'ordre de 100 à 200. Au delà il faut un autre mécanisme
Apache Tomcat version 6+ supporte l'interface CometProcessor avec ses servlets Apache Tomcat version 6+ supporte l'interface CometProcessor avec ses servlets
qui permet le partage d'un Thread par plusieurs connexions.qui permet le partage d'un Thread par plusieurs connexions.
Le support du Server Push est incorporé dans la spécification Servlet 3.0. et les Le support du Server Push est incorporé dans la spécification Servlet 3.0. et les
conteneurs de servlet JEE6 conteneurs de servlet JEE6 http://jcp.org/en/jsr/detail?id=315 http://jcp.org/en/jsr/detail?id=315
La spécification Web Socket définit un API pour les communications La spécification Web Socket définit un API pour les communications
bidirectionnelles entre client et serveur hôte distantbidirectionnelles entre client et serveur hôte distant
COMET – TCOMET – Techniques d'implantationechniques d'implantationUne première technique est le « Polling » qui consiste à répéter des requêtes au Une première technique est le « Polling » qui consiste à répéter des requêtes au
serveur à intervalles réguliers. En réduisant l'intervalle on réduit la latence.serveur à intervalles réguliers. En réduisant l'intervalle on réduit la latence.
En général le polling n'est pas considéré comme du « vrai » CometEn général le polling n'est pas considéré comme du « vrai » Comet
L'implantation la plus performanteL'implantation la plus performante
Cependant, certains proxy vont fermer la connexionCependant, certains proxy vont fermer la connexion
À cause de la limite de deux requêtes simultanées avec le même hôte (URL) on est À cause de la limite de deux requêtes simultanées avec le même hôte (URL) on est
amené à faire du multiplexage sur la connexion disponibleamené à faire du multiplexage sur la connexion disponible
COMET - AvantagesCOMET - AvantagesCommunication et partage de l'information en temps réelCommunication et partage de l'information en temps réel
Communication bidirectionnelle entre le serveur et le clientCommunication bidirectionnelle entre le serveur et le client
Programmation par événementsProgrammation par événements
COMET - InconvénientsCOMET - InconvénientsComet ne prend pas avantage de l'architecture sans état (Stateless) du WebComet ne prend pas avantage de l'architecture sans état (Stateless) du Web
Problème au niveau du retour de l'information.Problème au niveau du retour de l'information.
Par exemple si on a 10 000 usagers à mettre à jour simultanémentPar exemple si on a 10 000 usagers à mettre à jour simultanément
Problème de sécurité (Ex. Cross-Scripting)Problème de sécurité (Ex. Cross-Scripting)
Plus exigeant au niveau des infrastructures matériellesPlus exigeant au niveau des infrastructures matérielles
HTML 5 est pressenti comme la future norme du HTML (document en travail) HTML 5 est pressenti comme la future norme du HTML (document en travail)
HTML 5 est une révision majeure de HTML 4 qui datait de 1997 2004, projet HTML 5 est une révision majeure de HTML 4 qui datait de 1997 2004, projet
HTML 5 lancé par le groupe WHATGW (Web Hypertext Application Technology HTML 5 lancé par le groupe WHATGW (Web Hypertext Application Technology
Working Group) formé par Apple, Mozilla et Opera. Or, W3C travaillait en Working Group) formé par Apple, Mozilla et Opera. Or, W3C travaillait en
parallèle depuis 2001 sur une nouvelle version du XHTML a finalement parallèle depuis 2001 sur une nouvelle version du XHTML a finalement
abandonné XHTML 2 jugé pas assez rétro-compatible et n'a pas été implanté abandonné XHTML 2 jugé pas assez rétro-compatible et n'a pas été implanté
par les fabricants de fureteurs au profit de l'approche plus pragmatique du par les fabricants de fureteurs au profit de l'approche plus pragmatique du
HTML 5 en 2007. Est-ce la fin des querelles d'experts?HTML 5 en 2007. Est-ce la fin des querelles d'experts?
La norme HTML5 n'est pas terminée mais certaines parties ont commencé à La norme HTML5 n'est pas terminée mais certaines parties ont commencé à
être implantées comme la balise vidéo dans FireFox 3.5 et Google Waveêtre implantées comme la balise vidéo dans FireFox 3.5 et Google Wave
http://html5gallery.com/http://html5gallery.com/
Alors, pourquoi se soucier de HTML 5?Alors, pourquoi se soucier de HTML 5?
HTML 5 va changer beaucoup de choses dans la conception et l'utilisation des HTML 5 va changer beaucoup de choses dans la conception et l'utilisation des
interfaces Web et le travail des professionnels du Web.interfaces Web et le travail des professionnels du Web.
HTML 5 – Principales nouveautésHTML 5 – Principales nouveautésDeux syntaxes possibles (au choix) : HTML et XML mais Deux syntaxes possibles (au choix) : HTML et XML mais définies par l'API DOMdéfinies par l'API DOM
Interfaces de programmation (APIs) : marquent le passage Interfaces de programmation (APIs) : marquent le passage d'un Web de documents vers un Web des applicationsd'un Web de documents vers un Web des applications
Balise <canvas> pour le support du dessin 2DBalise <canvas> pour le support du dessin 2D
Balises d'insertion et de contrôle de contenus audio et Balises d'insertion et de contrôle de contenus audio et vidéo (sans Flash)vidéo (sans Flash)
Gestion de données persistantes côté client pour les Gestion de données persistantes côté client pour les applications hors-ligne applications hors-ligne
Gestion de formulaires améliorée (ex. nouveaux types pour Gestion de formulaires améliorée (ex. nouveaux types pour la balise <input> comme date, email, url, color, etc. et la balise <input> comme date, email, url, color, etc. et aussi de nouveaux attributs comme autofocus et required), aussi de nouveaux attributs comme autofocus et required),
Nouveau jeu de balises structurelles pour remplacer Nouveau jeu de balises structurelles pour remplacer certains <div>certains <div>
HTML 5 – HTML 5 – Nouvelles balises structurellesNouvelles balises structurelles
Nouveau jeu de balises structurelles pour remplacer certains <div> inspiré des Nouveau jeu de balises structurelles pour remplacer certains <div> inspiré des habitudes des auteurs de page Web tels que <header>, <footer>, <nav> habitudes des auteurs de page Web tels que <header>, <footer>, <nav> (pour navigation), <section> pour identifier le contexte d'un bloc de contenu (pour navigation), <section> pour identifier le contexte d'un bloc de contenu ou une application, <article> un bloc de contenu complet en lui-même (ex. ou une application, <article> un bloc de contenu complet en lui-même (ex. billet de blogue, entrée de forum, commentaire, etc), <figure> (pour ajouter billet de blogue, entrée de forum, commentaire, etc), <figure> (pour ajouter une légende), <aside> contenu en rapport faible avec la pageune légende), <aside> contenu en rapport faible avec la page
HTML 5 – Nouvelles APIsHTML 5 – Nouvelles APIsAPI de dessin 2D et rendu dynamique de dessins bitmaps et de dessins API de dessin 2D et rendu dynamique de dessins bitmaps et de dessins vectoriels utilisée avec la nouvelle balise <canvas> (via JavaScript)vectoriels utilisée avec la nouvelle balise <canvas> (via JavaScript)
API pour intégrer et contrôler des vidéos et des fichiers audios avec les API pour intégrer et contrôler des vidéos et des fichiers audios avec les nouvelles balises <video> et <audio>nouvelles balises <video> et <audio>
API utilisée pour les applications hors-ligne avec stockage sur le disque API utilisée pour les applications hors-ligne avec stockage sur le disque dur (clé/valeur et SQL) semblable à Google Gearsdur (clé/valeur et SQL) semblable à Google Gears
API d'édition en combinaison avec le nouvel attribut contenteditableAPI d'édition en combinaison avec le nouvel attribut contenteditable
API de glisser-déposer (Drag & Drop) avec l'attribut draggableAPI de glisser-déposer (Drag & Drop) avec l'attribut draggable
API d'accès à l'historique et permet aux pages d'en ajouter pour API d'accès à l'historique et permet aux pages d'en ajouter pour prévenir les problèmes de bouton retour-en-arrièreprévenir les problèmes de bouton retour-en-arrière
API de géolocation utilisant un appareil externeAPI de géolocation utilisant un appareil externe
API de communication entre applications via TCPAPI de communication entre applications via TCP
Possibilité pour un serveur Web d'initier des événements via la balise Possibilité pour un serveur Web d'initier des événements via la balise <event-source> <event-source>
L'informatique dans le nuage ou infrastructure dans le nuage L'informatique dans le nuage ou infrastructure dans le nuage (Cloud Computing*) représente l'utilisation des capacités de (Cloud Computing*) représente l'utilisation des capacités de calcul et de stockage de serveurs répartis sur Internetcalcul et de stockage de serveurs répartis sur Internet
Les organisations ne sont plus propriétaires de leurs serveurs Les organisations ne sont plus propriétaires de leurs serveurs mais louent des services d'infrastructure informatiquemais louent des services d'infrastructure informatique
S'applique par extension au concept de location d'applications S'applique par extension au concept de location d'applications logicielles (infrastructure matérielle et logicielle) ou SaaS logicielles (infrastructure matérielle et logicielle) ou SaaS (Software as a service)(Software as a service)
Modèle économique de paiement à l'usageModèle économique de paiement à l'usage
* Note : Par référence au nuage qui représente Internet * Note : Par référence au nuage qui représente Internet dans les diagrammes d'infrasttructure informatiquedans les diagrammes d'infrasttructure informatique
Super truc « à la mode » (buzzword)*Super truc « à la mode » (buzzword)* Le côté un peu provocateur du terme Web 2.0 en Le côté un peu provocateur du terme Web 2.0 en
a amené plusieurs à utiliser le terme Web 3.0 a amené plusieurs à utiliser le terme Web 3.0 comme une boutade...comme une boutade...
La tendance est d'associer le Web sémantique La tendance est d'associer le Web sémantique proposé par Tim Berners-Lee au Web 3.0proposé par Tim Berners-Lee au Web 3.0
Le web sémantique est devenu un peu mythique Le web sémantique est devenu un peu mythique comme le fameux Hal 9000 du film 2001 Odyssée comme le fameux Hal 9000 du film 2001 Odyssée de l'espace!de l'espace!
* Le Web 3.0 est la création d'un « buzzword » pour quelque chose qui n'existe pas* Le Web 3.0 est la création d'un « buzzword » pour quelque chose qui n'existe pasAlors que le Web 2.0 est la création d'un « buzzword » pour quelque chose qui existait déjàAlors que le Web 2.0 est la création d'un « buzzword » pour quelque chose qui existait déjà
Proposé par Tim Berners-Lee dans un article du Scientific-American en Proposé par Tim Berners-Lee dans un article du Scientific-American en mai 2001mai 2001
L'idée initiale est d'ajouter une dimension sémantique au Web (par L'idée initiale est d'ajouter une dimension sémantique au Web (par annotation des contenus) afin de le rendre utilisable par des logiciels (ou annotation des contenus) afin de le rendre utilisable par des logiciels (ou agents) capables de faire du traitement automatique des connaissances. agents) capables de faire du traitement automatique des connaissances.
Se base sur le langage RDF (Resource Description Framework) pour Se base sur le langage RDF (Resource Description Framework) pour décrire des concepts et le langage OWL (Ontologies Web Language) pour décrire des concepts et le langage OWL (Ontologies Web Language) pour décrire des ontologies (des relations entre concepts)décrire des ontologies (des relations entre concepts)
RDF utilise la notion de triplet Objet-Valeur-AttributRDF utilise la notion de triplet Objet-Valeur-Attribut
D'une façon plus réaliste, on parle aujourd'hui de la pleine utilisation de D'une façon plus réaliste, on parle aujourd'hui de la pleine utilisation de l'architecture Web (URI) RESTful pour fournir des informations à propos l'architecture Web (URI) RESTful pour fournir des informations à propos des données liées (Linked Data)des données liées (Linked Data)
Bien des années avant que le rêve d'un Web « intelligent » ne devienne Bien des années avant que le rêve d'un Web « intelligent » ne devienne réalité... réalité...
Cependant des applications concrètes sont déjà utilisables si l'on est Cependant des applications concrètes sont déjà utilisables si l'on est modeste et pragmatiquemodeste et pragmatique
Les prochaines applications Web 2.0 qui « Les prochaines applications Web 2.0 qui « casseront la baraque » et se distingueront, casseront la baraque » et se distingueront, devront intégrer une dimension d'analyse devront intégrer une dimension d'analyse intelligente des données (i.e. des utilisateurs et intelligente des données (i.e. des utilisateurs et des réseaux).des réseaux).
C'est à notre portée, pourvu qu'on aime un peu C'est à notre portée, pourvu qu'on aime un peu les mathématiques: l'apprentissage statistique les mathématiques: l'apprentissage statistique (Machine Learning) et la fouille de données (Data (Machine Learning) et la fouille de données (Data Mining) qui reposent essentiellement sur des Mining) qui reposent essentiellement sur des traitements statistiques, comme le fameux traitements statistiques, comme le fameux algorithme PageRank à l'origine de Google. algorithme PageRank à l'origine de Google.