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
Tendances Futures du Web - GTI780 & MTI780 - ETS - A09
1. Tendances futures du Web
Sujets spéciaux en TI
Le Web 2.0 : concepts et outils
École de technologie supérieure
par
Claude Coulombe
GTI-780 / MTI-780 ETS - Montréal - 2009
2. Tendances futures du Web
Comet
HTML 5
Informatique dans le nuage
Virtualisation
Web 3 ou Web sémantique
Internet mobile
Le défi des médias
Internationalisation
Mondes virtuels et jeux en ligne
Ubiquité d'Internet
Infobésité
GTI-780 / MTI-780 * Source Clipart : http://www.clipart.com ETS - Montréal - 2009
3. COMET
Le terme COMET a été inventé par Alex
Russell en mars 2006 en référence à la
poudre à récurer Comet concurrente de la
marque Ajax!
GTI-780 / MTI-780 Source : A. Russell - http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/ ETS - Montréal - 2009
5. COMET
Comet est une architecture d'applications Web qui permet à un serveur
d'envoyer des données à un client (fureteur) sans attendre une requête
explicite.
On parle aussi de « Server-Push » ou de communication à faible latence
(« Low-Latency Data Transfer »)
Personnellement j'aime bien le terme de « communication en temps réel
Les principales applications actuelles tournent autour de la messagerie
instantanée comme Gtalk (http://mail.google.com/mail/help/chat.html)
ou Meebo (www.meebo.com) la télésurveillance et le travail collaboratif
(multiusagers) en temps réel
Comet repose sur un protocole à base d'événements
Une architecture à base d'événement ou de messages existe déjà dans les
architectures SOA
GTI-780 / MTI-780 ETS - Montréal - 2009
6. COMET – Diagramme de séquence
Une application Comet
peut transmettre des
données au client à
n'importe quel moment
(pas seulement en réponse
à une requête de l'usager).
Les données sont
transmises au travers une
unique connection
précédemment ouverte.
Le temps de latence est
ainsi minimisé.
Source : http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/
GTI-780 / MTI-780 ETS - Montréal - 2009
7. COMET – défi technique
Comet requiert un protocole à base d'événements et une réaction instantanée
Peut se faire avec des sockets TCP/IP (=> plugiciels)
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
données sans une requête
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
Threads 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
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
conteneurs de servlet JEE6 http://jcp.org/en/jsr/detail?id=315
La spécification Web Socket définit un API pour les communications
bidirectionnelles entre client et serveur hôte distant
http://dev.w3.org/html5/websockets/
GTI-780 / MTI-780 ETS - Montréal - 2009
8. COMET – Techniques d'implantation
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.
En général le polling n'est pas considéré comme du « vrai » Comet
Requête longue (long polling)
Simule le comportement d'un serveur lent
La technique la plus usuelle et la plus recommandée pour le moment
Flux HTTP (HTTP Streaming)
L'implantation la plus performante
Cependant, 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
amené à faire du multiplexage sur la connexion disponible
GTI-780 / MTI-780 ETS - Montréal - 2009
9. COMET & GWT
Comet with GWT
http://code.google.com/p/google-web-toolkit-incubator/wiki/ServerPushFAQ
Rocket-GWT Remoting
http://code.google.com/p/rocket-gwt/wiki/Comet
Une autre solution Comet avec GWT
http://groups.google.com/group/Google-Web
GTI-780 / MTI-780 ETS - Montréal - 2009
11. COMET - Avantages
Communication et partage de l'information en temps réel
Communication bidirectionnelle entre le serveur et le client
Programmation par événements
COMET - Inconvénients
Comet ne prend pas avantage de l'architecture sans état (Stateless) du Web
Problème au niveau du retour de l'information.
Par exemple si on a 10 000 usagers à mettre à jour simultanément
Problème de sécurité (Ex. Cross-Scripting)
Plus exigeant au niveau des infrastructures matérielles
GTI-780 / MTI-780 ETS - Montréal - 2009
12. HTML 5
HTML 5
GTI-780 / MTI-780 * Source Clipart : http://www.clipart.com ETS - Montréal - 2009
13. W3C – Consortium World Wide Web
Dirigé par Tim Berners-Lee, créateur de HTTP/URI/HTML et
l'inventeur du Web, le W3C est un consortium international
ayant pour objectif le développement de normes pour le Web.
Le W3C est hébergé par 3 laboratoires : le laboratoire
européen ERCIM basé en France, l'Université de Keio au Japon
et le Laboratoire CSAIL du MIT aux Etats-Unis.
La direction du W3C est définie par le Process Document
http://www.w3.org/2005/10/Process-20051014/
http://www.w3.org/
GTI-780 / MTI-780 ETS - Montréal - 2009
14. HTML 5
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 lancé par le groupe WHATGW (Web Hypertext Application Technology
Working Group) formé par Apple, Mozilla et Opera. Or, W3C travaillait en
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é
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?
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
http://html5gallery.com/
Alors, pourquoi se soucier de HTML 5?
HTML 5 va changer beaucoup de choses dans la conception et l'utilisation des
interfaces Web et le travail des professionnels du Web.
http://www.w3.org/TR/html5/
GTI-780 / MTI-780 ETS - Montréal - 2009
15. Google Wave – Du HTML 5 qui fait des vagues!
Source : http://googleblog.blogspot.com/2009/05/went-walkabout-brought-back-google-wave.html
GTI-780 / MTI-780 ETS - Montréal - 2009
16. HTML 5 – Principales nouveautés
Deux syntaxes possibles (au choix) : HTML et XML mais
définies par l'API DOM
Interfaces de programmation (APIs) : marquent le passage
d'un Web de documents vers un Web des applications
Balise <canvas> pour le support du dessin 2D
Balises d'insertion et de contrôle de contenus audio et
vidéo (sans Flash)
Gestion de données persistantes côté client pour les
applications hors-ligne
Gestion de formulaires améliorée (ex. nouveaux types pour
la balise <input> comme date, email, url, color, etc. et
aussi de nouveaux attributs comme autofocus et required),
Nouveau jeu de balises structurelles pour remplacer
certains <div>
GTI-780 / MTI-780 ETS - Montréal - 2009
17. HTML 5 – Nouvelles balises structurelles
Nouveau jeu de balises structurelles pour remplacer certains <div> inspiré des
habitudes des auteurs de page Web tels que <header>, <footer>, <nav>
(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.
billet de blogue, entrée de forum, commentaire, etc), <figure> (pour ajouter
une légende), <aside> contenu en rapport faible avec la page
<header>
<nav>
<section>
<header>
<nav> <aside>
<article>
<footer>
<footer>
GTI-780 / MTI-780 ETS - Montréal - 2009
18. HTML 5 – Nouvelles APIs
API de dessin 2D et rendu dynamique de dessins bitmaps et de dessins
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
nouvelles balises <video> et <audio>
API utilisée pour les applications hors-ligne avec stockage sur le disque
dur (clé/valeur et SQL) semblable à Google Gears
API d'édition en combinaison avec le nouvel attribut contenteditable
API de glisser-déposer (Drag & Drop) avec l'attribut draggable
API d'accès à l'historique et permet aux pages d'en ajouter pour
prévenir les problèmes de bouton retour-en-arrière
API de géolocation utilisant un appareil externe
API de communication entre applications via TCP
Possibilité pour un serveur Web d'initier des événements via la balise
<event-source>
GTI-780 / MTI-780 ETS - Montréal - 2009
19. Informatique dans le nuage* (Cloud Computing)
Amazon
IBM
Intel
EC2
HP Microsoft
Google SUN
AppEngine
Salesforces.com
GTI-780 / MTI-780 * Note : Service d'infrastructure dans le nuage ETS - Montréal - 2009
20. Informatique dans le nuage (Cloud Computing)
L'informatique dans le nuage ou infrastructure dans le nuage
(Cloud Computing*) représente l'utilisation des capacités de
calcul et de stockage de serveurs répartis sur Internet
Les organisations ne sont plus propriétaires de leurs serveurs
mais louent des services d'infrastructure informatique
S'applique par extension au concept de location d'applications
logicielles (infrastructure matérielle et logicielle) ou SaaS
(Software as a service)
Modèle économique de paiement à l'usage
http://fr.wikipedia.org/wiki/Informatique_dans_le_nuage
* Note : Par référence au nuage qui représente Internet
GTI-780 / MTI-780 dans les diagrammes d'infrasttructure informatique ETS - Montréal - 2009
22. Informatique dans le nuage – Amazon EC2
Amazon Elastic Compute Cloud (EC2)
http://aws.amazon.com/ec2/
Avec Java :
Developing Java Web Applications with Apache Tomcat & AWS
http://developer.amazonwebservices.com/connect/entry.jspa?
externalID=2241&categoryID=100
GTI-780 / MTI-780 ETS - Montréal - 2009
23. Informatique dans le nuage – Google App Engine
GTI-780 / MTI-780 ETS - Montréal - 2009
24. Informatique dans le nuage – Google App Engine
Service de base gratuit pour l'hébergement d'applications
Offert pour les langages Java et Python
Intégration facile de AppEngine avec GWT et Eclipse
http://code.google.com/appengine/
GTI-780 / MTI-780 ETS - Montréal - 2009
26. Informatique dans le nuage - Avantages
Plus économique
Pas d'investissement de départ
Facturation à l'utilisation (heure/capacité/bande passante)
Support des pointes et de la montée en charge
Pas de parc informatique à gérer et maintenir
Plus rapide à mettre en place et à faire évoluer
Fiabilité & performances ??
Informatique dans le nuage - Inconvénients
Phénomène de mode
Sécurité de l'application
Sécurité et confidentialité des données
Perte du contrôle de l'infrastructure et des applications
Piège dans le style « Cloud Lock-In »
GTI-780 / MTI-780 * Source Clipart : http://www.clipart.com ETS - Montréal - 2009
27. Virtualisation
La virtualisation permet de faire exécuter plusieurs systèmes
d'exploitation (OS) diffférents sur une même machine comme
s'ils s'exécutaient sur différentes machines.
Les logiciels de virtualisation (ou machines virtuelles) simulent
le fonctionnement d'une machine (ou matériel) pour différents
OS invités sur une machine hôte exécutant un OS hôte.
Exemple : VMware (VMware server, VMware Player), VirtualBox
Avantages : optimisation de l'utilisation du matériel, + sécurité
Inconvénients : performance réduite
http://fr.wikipedia.org/wiki/Virtualisation
GTI-780 / MTI-780 ETS - Montréal - 2009
29. Web 3 ?
Super truc « à la mode » (buzzword)*
Le côté un peu provocateur du terme Web 2.0 en
a amené plusieurs à utiliser le terme Web 3.0
comme une boutade...
La tendance est d'associer le Web sémantique
proposé par Tim Berners-Lee au Web 3.0
Le web sémantique est devenu un peu mythique
comme le fameux Hal 9000 du film 2001 Odyssée
de l'espace!
* Le Web 3.0 est la création d'un « buzzword » pour quelque chose qui n'existe pas
Alors que le Web 2.0 est la création d'un « buzzword » pour quelque chose qui existait déjà
GTI-780 / MTI-780 ETS - Montréal - 2009
30. Web sémantique
W W
W
GTI-780 / MTI-780 * Source Clipart : http://www.clipart.com ETS - Montréal - 2009
31. Web sémantique
Proposé par Tim Berners-Lee dans un article du Scientific-American en
mai 2001
http://www.urfist.cict.fr/archive/lettres/lettre28/lettre28-22.html
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
agents) capables de faire du traitement automatique des connaissances.
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 ontologies (des relations entre concepts)
RDF utilise la notion de triplet Objet-Valeur-Attribut
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
des données liées (Linked Data)
Bien des années avant que le rêve d'un Web « intelligent » ne devienne
réalité...
Cependant des applications concrètes sont déjà utilisables si l'on est
modeste et pragmatique
GTI-780 / MTI-780 ETS - Montréal - 2009
32. Web « intelligent » - prédiction
Les prochaines applications Web 2.0 qui «
casseront la baraque » et se distingueront,
devront intégrer une dimension d'analyse
intelligente des données (i.e. des utilisateurs et
des réseaux).
C'est à notre portée, pourvu qu'on aime un peu
les mathématiques: l'apprentissage statistique
(Machine Learning) et la fouille de données (Data
Mining) qui reposent essentiellement sur des
traitements statistiques, comme le fameux
algorithme PageRank à l'origine de Google.
GTI-780 / MTI-780 ETS - Montréal - 2009
33. Internet mobile
http://en.wikipedia.org/wiki/Mobile_web
GTI-780 / MTI-780 Source http://images.apple.com/ca/fr/iphone/home/images/main20080711b.png ETS - Montréal - 2009
34. Le défi des médias - Fragmentation des auditoires
http://benoit-raphael.blogspot.com/
GTI-780 / MTI-780 * Source Clipart : http://www.clipart.com ETS - Montréal - 2009
35. Le défi des médias – La fin des livres...
GTI-780 / MTI-780 * Source http://www.amazon.com/Kindle-Amazons-Wireless-Reading-Device ETS - Montréal - 2009
36. Le défi des médias – La télévision Internet
http://fr.wikipedia.org/wiki/WebTV
GTI-780 / MTI-780 * Source Clipart : http://www.clipart.com ETS - Montréal - 2009