Web social - GTI780 & MTI780 - ETS - A08

41
Web social Web social Montréal, novembre 2008 Montréal, novembre 2008 GTI-780 / MTI-780 GTI-780 / MTI-780 Sujets spéciaux en TI Le Web 2.0 : concepts et outils École de technologie supérieure par Claude Coulombe

description

Présentation sur le Web social 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 2008

Transcript of Web social - GTI780 & MTI780 - ETS - A08

Page 1: Web social - GTI780 & MTI780 - ETS - A08

Web socialWeb social

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Sujets spéciaux en TI

Le Web 2.0 : concepts et outils

École de technologie supérieure

par

Claude Coulombe

Page 2: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Web socialWeb social

* Source Clipart : http://www.clipart.com

Page 3: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

À la base, Internet est un réseau, un réseau de À la base, Internet est un réseau, un réseau de serveurs de contenus et de plus en plus un serveurs de contenus et de plus en plus un réseau d'applications mais également un réseau réseau d'applications mais également un réseau d'utilisateurs.d'utilisateurs.

Il est donc tout à fait naturel, dans le contexte Il est donc tout à fait naturel, dans le contexte du Web 2.0, où l'accent est mis sur les du Web 2.0, où l'accent est mis sur les utilisateurs, que soient apparues des utilisateurs, que soient apparues des applications Web qui mettent en valeur les applications Web qui mettent en valeur les réseaux d'utilisateurs d'Internet. réseaux d'utilisateurs d'Internet.

Web socialWeb social

Page 4: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Réseautage social en ligneRéseautage social en ligne

* Source Clipart : http://www.clipart.com

Page 5: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Une application de réseau social en ligne (ou site de Une application de réseau social en ligne (ou site de

réseautage), comme MySpace ou Facebook, permet à réseautage), comme MySpace ou Facebook, permet à

ses utilisateurs d'entrer des informations personnelles ses utilisateurs d'entrer des informations personnelles

(profils) et d'interagir avec d'autres utilisateurs. (profils) et d'interagir avec d'autres utilisateurs.

Ces informations permettent de retrouver des Ces informations permettent de retrouver des

utilisateurs ou « pseudo amis » partageant les mêmes utilisateurs ou « pseudo amis » partageant les mêmes

intérêts. Les utilisateurs peuvent former des groupes intérêts. Les utilisateurs peuvent former des groupes

et y inviter d'autres personnes. Les interactions entre et y inviter d'autres personnes. Les interactions entre

membres comportent des discussions et le partage de membres comportent des discussions et le partage de

photos, de baladodiffusions, de vidéos, de liens et de photos, de baladodiffusions, de vidéos, de liens et de

documents. documents.

Réseautage social en ligne Réseautage social en ligne

Page 6: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Web social - Patron d'applicationWeb social - Patron d'application

* Source Clipart : http://www.clipart.com

Page 7: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Réseau social (Social Network) : application qui Réseau social (Social Network) : application qui

permet aux utilisateurs d'entrer des profils et du permet aux utilisateurs d'entrer des profils et du

contenu, de former des groupes et d'interagir contenu, de former des groupes et d'interagir

avec d'autres partageant ces intérêts avec d'autres partageant ces intérêts

Web social - Patron d'applicationWeb social - Patron d'application

Page 8: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Le premier site Internet de réseautage social futLe premier site Internet de réseautage social fut

www.classmates.comwww.classmates.com toujours en activité depuis 1995. toujours en activité depuis 1995.

Sites de réseau social Sites de réseau social

Page 9: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

FriendsterFriendster Cependant le « boum » se produisit autour de 2002 Cependant le « boum » se produisit autour de 2002

avec entre autres le site Friendster avec entre autres le site Friendster www.friendster.comwww.friendster.com

dont le succès s'étiola après le rejet d'une offre de 30 dont le succès s'étiola après le rejet d'une offre de 30

M$ USD par Google, l'année de sa fondationM$ USD par Google, l'année de sa fondation http://www.nytimes.com/2006/10/15/business/yourmoney/15friend.html?_r=2&oref=slogin&oref=sloginhttp://www.nytimes.com/2006/10/15/business/yourmoney/15friend.html?_r=2&oref=slogin&oref=slogin

Page 10: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

MySpaceMySpace

Dépassé par MySpace en 2004 Dépassé par MySpace en 2004 www.MySpace.comwww.MySpace.com

qui compterait 122 millions d'utilisateurs et enregistre qui compterait 122 millions d'utilisateurs et enregistre

des revenus de 900 M$ des revenus de 900 M$

Page 11: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

FaceBookFaceBook

Lui-même dépassé par FaceBook Lui-même dépassé par FaceBook www.FaceBook.comwww.FaceBook.com

en 2007 qui compte 132 millions d'utilisateurs et qui en 2007 qui compte 132 millions d'utilisateurs et qui

déclare des revenus de 350 M$*déclare des revenus de 350 M$*

Page 12: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Réseaux d'affairesRéseaux d'affaires

Certains réseaux comme Certains réseaux comme www.LinkedIn.comwww.LinkedIn.com misent sur misent sur

les contacts ou relations d'affairesles contacts ou relations d'affaires

* Source : http://rdfweb.org/foafcorp/intro.html

Page 13: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Web social Web social –– Composantes d'applicationsComposantes d'applications

* Source Clipart : http://www.clipart.com

Page 14: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780 * Note: ou plus simplement un livre d'or

Espace personnel comportant un profil (coordonnées, âge, sexe, Espace personnel comportant un profil (coordonnées, âge, sexe, nationalité, niveau d'études, photo) et des centres d'intérêtnationalité, niveau d'études, photo) et des centres d'intérêt

L'utilisateur peut organiser et personnaliser son espaceL'utilisateur peut organiser et personnaliser son espace

Outil pour créer des liens avec ses « amis » et gérer des listes d'amis et Outil pour créer des liens avec ses « amis » et gérer des listes d'amis et d'amis communs (FOAF : friends of a friend)d'amis communs (FOAF : friends of a friend)

Outils pour créer, inviter et gérer des groupesOutils pour créer, inviter et gérer des groupes

Outil pour créer, proposer et gérer des activitésOutil pour créer, proposer et gérer des activités

Fils RSS : syndication de contenuFils RSS : syndication de contenu http://fr.wikipedia.org/wiki/RSS_(format)http://fr.wikipedia.org/wiki/RSS_(format)

Blogue : journal personnel qui contient essentiellement des opinions Blogue : journal personnel qui contient essentiellement des opinions personnelles sur différents sujets ou d'une thématique particulière. Offre personnelles sur différents sujets ou d'une thématique particulière. Offre la possibilité aux visiteurs de commenter*la possibilité aux visiteurs de commenter* http://fr.wikipedia.org/wiki/Bloghttp://fr.wikipedia.org/wiki/Blog

Outils de partage de photos, de baladodiffusions (podcast), de vidéos, de Outils de partage de photos, de baladodiffusions (podcast), de vidéos, de signets et de documents textuelssignets et de documents textuels

Outils de conversation Web : synchrone (ex. messagerie instantanée) ou Outils de conversation Web : synchrone (ex. messagerie instantanée) ou asynchrone (ex. courriel ou forum)asynchrone (ex. courriel ou forum) http://fr.wikipedia.org/wiki/Forum_Internethttp://fr.wikipedia.org/wiki/Forum_Internet

Web social Web social –– Composantes d'applicationsComposantes d'applications

Page 15: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

En plus d'un ensemble d'applications de base fournies En plus d'un ensemble d'applications de base fournies par l'opérateur du site, beaucoup de sites sont ouverts par l'opérateur du site, beaucoup de sites sont ouverts aux applications tiercesaux applications tierces

Cette ouverture contribue au succès des sitesCette ouverture contribue au succès des sites Certaines applications tierces font l'objet d'un partage Certaines applications tierces font l'objet d'un partage

des revenus publicitairesdes revenus publicitaires 8000 applications tierces sur Facebook en 20078000 applications tierces sur Facebook en 2007 Des outils et des canevas d'applications (FrameWorks) Des outils et des canevas d'applications (FrameWorks)

sont proposés aux développeurs pour faciliter leur sont proposés aux développeurs pour faciliter leur travailtravail

Cependant, les normes sont souvent propriétaires Cependant, les normes sont souvent propriétaires comme le fameux FBML, une variante du HTML pour comme le fameux FBML, une variante du HTML pour FaceBookFaceBook

Web social Web social –– Applications tiercesApplications tierces

Page 16: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Site de réseau social - Site de réseau social - Avantages & inconvénientsAvantages & inconvénients

* Source Clipart : http://www.clipart.com

Page 17: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Site de réseau socialSite de réseau social - - InconvénientsInconvénients Effet « de mode »Effet « de mode »

Menaces et atteintes à la vie privéeMenaces et atteintes à la vie privée

Utilisation abusive des données personnelles des utilisateurs par les propriétaires Utilisation abusive des données personnelles des utilisateurs par les propriétaires des sitesdes sites

Publicité envahissante. Par exemple en 2007, lancement du logiciel publicitaire Publicité envahissante. Par exemple en 2007, lancement du logiciel publicitaire Beacon de FaceBook qui communique de l'information sur les achats des membres Beacon de FaceBook qui communique de l'information sur les achats des membres à leurs « amis »... (maintenant avec consentement)à leurs « amis »... (maintenant avec consentement)

Activité consommatrice de tempsActivité consommatrice de temps

Amitiés factices et éphémères... Peut-on avoir 400 vrais amis?Amitiés factices et éphémères... Peut-on avoir 400 vrais amis?

Risque que les utilisateurs deviennent otages des sites qui abritent leurs données Risque que les utilisateurs deviennent otages des sites qui abritent leurs données personnelles (Data lock-in)*personnelles (Data lock-in)*

Problèmes de compatibilité entre les différents réseauxProblèmes de compatibilité entre les différents réseaux

Problème des droits d'auteur, contrefaçonProblème des droits d'auteur, contrefaçon

Contenus violents, racistes, pornographiques, faux, mensongersContenus violents, racistes, pornographiques, faux, mensongers

L'aspect sécurité est à surveillerL'aspect sécurité est à surveiller

Au plan technique, nombreuses APIs et normes propriétairesAu plan technique, nombreuses APIs et normes propriétaires

* Après le « hardware lock-in » et le « software lock-in » selon Tim O'Reilly

Page 18: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Site de réseau socialSite de réseau social - - AvantagesAvantages Démocratisation des moyens de production et de diffusion Démocratisation des moyens de production et de diffusion

d'informations, de musique et de contenus audiovisuelsd'informations, de musique et de contenus audiovisuels

Permet de se créer un site personnalisé et à son imagePermet de se créer un site personnalisé et à son image

Partage des centres d'intérêt et des passionsPartage des centres d'intérêt et des passions

Permet de retrouver des copains ou des amisPermet de retrouver des copains ou des amis

Diffusion internationaleDiffusion internationale

Divertissement a priori peu coûteux et accessibleDivertissement a priori peu coûteux et accessible

Au plan technique Au plan technique

Réponses rapides aux actions de l'utilisateurRéponses rapides aux actions de l'utilisateur

Applications Web riches, rapides et légèresApplications Web riches, rapides et légères

Pas de long téléchargement, ni d'installationPas de long téléchargement, ni d'installation

Compatibilité avec tous les fureteurs WebCompatibilité avec tous les fureteurs Web

Le fureteur devient la plateformeLe fureteur devient la plateforme

Page 19: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

GadgetsGadgets

GadgetsGadgets

* Source Clipart : http://www.clipart.com

Page 20: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Les gadgets (ou widgets) sont des mini sites web, en général de Les gadgets (ou widgets) sont des mini sites web, en général de petits blocs de contenu autonomes, placés dans une page web ou petits blocs de contenu autonomes, placés dans une page web ou dans un conteneurs de gadgetsdans un conteneurs de gadgets

Popularisés par la norme porlet (portail Excite) mais qui Popularisés par la norme porlet (portail Excite) mais qui nécessitait le rechargement complet de la page, remplacés par les nécessitait le rechargement complet de la page, remplacés par les webagrégats (ou aggrégateur de gadgets) en Ajax au webagrégats (ou aggrégateur de gadgets) en Ajax au rafraîchissement asynchronerafraîchissement asynchrone

Les gadgets sont de petites applications constituées de : XML, Les gadgets sont de petites applications constituées de : XML, HTML et JavaScript auxquels s'ajoutent des ressources comme HTML et JavaScript auxquels s'ajoutent des ressources comme des images et des fichiers CSSdes images et des fichiers CSS

XML sert en général à décrire la configuration du gadgetXML sert en général à décrire la configuration du gadget

HTML sert de support au contenu statiqueHTML sert de support au contenu statique

JavaSript fournit l'interactivité (le comportement dynamique) et JavaSript fournit l'interactivité (le comportement dynamique) et assure les communications avec les services Web externesassure les communications avec les services Web externes

Gadgets - définitionGadgets - définition

Page 21: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Conteneur de gadgets - NetvibesConteneur de gadgets - Netvibes

Page 22: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Conteneur de gadgets - iGoogleConteneur de gadgets - iGoogle

Page 23: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Basée sur le patron d'applications cBasée sur le patron d'applications conteneur (Container) : onteneur (Container) :

application avec une structure de style plugiciel (plugin) qui application avec une structure de style plugiciel (plugin) qui

contient un ensemble de petites applications ou utilitairescontient un ensemble de petites applications ou utilitaires

Conteneur offre un bac à sable (sandbox) pratique et Conteneur offre un bac à sable (sandbox) pratique et

sécuritaire pour l'exécution de gadgetssécuritaire pour l'exécution de gadgets

Popularisée par les sites web sociauxPopularisée par les sites web sociaux

Services Web légers (du style REST) et composants logiciels Services Web légers (du style REST) et composants logiciels

légers (gadgets à base de XHTML et JavaScript)légers (gadgets à base de XHTML et JavaScript)

Architecture à base de gadgetsArchitecture à base de gadgets

Page 24: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

GWT produit déjà des applications clientes en pur HTML et GWT produit déjà des applications clientes en pur HTML et

JavaSCript très proches parentes des gadgetsJavaSCript très proches parentes des gadgets

En effet, on peut utiliser les atouts de GWT pour produire à En effet, on peut utiliser les atouts de GWT pour produire à

partir d'un code Java des gadgets en JavaScript optimisépartir d'un code Java des gadgets en JavaScript optimisé

Voici la recette* : Voici la recette* :

Google API Libraries for Google Web ToolkitGoogle API Libraries for Google Web Toolkit http://code.google.com/docreader/#p=gwt-google-apis&s=gwt-google-apis&t=GadgetsGettingStartedhttp://code.google.com/docreader/#p=gwt-google-apis&s=gwt-google-apis&t=GadgetsGettingStarted

GWT – Atelier Java de gadgets?GWT – Atelier Java de gadgets?

* Note : ne produit pas encore un gadget à la norme OpenSocial, mais selon la norme Google Gadget

Page 25: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

package com.google.gwt.gadgets.sample.hellogadgets.client;package com.google.gwt.gadgets.sample.hellogadgets.client;

import com.google.gwt.gadgets.client.Gadget;import com.google.gwt.gadgets.client.Gadget;

......

@ModulePrefs( title = "Mon premier gadget avec GWT", author = "Claude Coulombe", height = 300 )@ModulePrefs( title = "Mon premier gadget avec GWT", author = "Claude Coulombe", height = 300 )

public class HelloGadget extends Gadget<HelloPreferences> {public class HelloGadget extends Gadget<HelloPreferences> {

protected void init(final HelloPreferences prefs) {protected void init(final HelloPreferences prefs) {

Image img = new Image("http://code.google.com/webtoolkit/logo-185x175.png");Image img = new Image("http://code.google.com/webtoolkit/logo-185x175.png");

Button button = new Button("Cliquez-moi!");Button button = new Button("Cliquez-moi!");

VerticalPanel vPanel = new VerticalPanel();VerticalPanel vPanel = new VerticalPanel();

vPanel.setWidth("100%");vPanel.setWidth("100%");

vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);

vPanel.add(img);vPanel.add(img);

vPanel.add(button);vPanel.add(button);

RootPanel.get().add(vPanel)RootPanel.get().add(vPanel)

button.addClickListener(new ClickListener() {button.addClickListener(new ClickListener() {

public void onClick(Widget sender) {public void onClick(Widget sender) {

Window.alert("Mon premier gadget avec GWT");Window.alert("Mon premier gadget avec GWT");

}}

});});

}}

}}

GWT & gadget – GWT & gadget – Un peu de code...Un peu de code...

Page 26: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Gadgets - Avantages & inconvénientsGadgets - Avantages & inconvénients

* Source Clipart : http://www.clipart.com

Page 27: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

« Phénomène de mode »« Phénomène de mode »

Tendance à la multiplication des gadgets et des services d'utilité douteuseTendance à la multiplication des gadgets et des services d'utilité douteuse

Difficile à testerDifficile à tester

Problème de sécuritéProblème de sécurité

Problème d'interopérabilitéProblème d'interopérabilité

Limité quant à la complexité si l'on développe directement en JavaScriptLimité quant à la complexité si l'on développe directement en JavaScript

Gadgets - InconvénientsGadgets - Inconvénients

Page 28: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Couplage faibleCouplage faible

Favorise la réutilisationFavorise la réutilisation

Facile à développerFacile à développer

Légers et peu exigeants en bande passante et capacité des serveursLégers et peu exigeants en bande passante et capacité des serveurs

Déploiement facile sur plusieurs sites Web sociauxDéploiement facile sur plusieurs sites Web sociaux

Facile pour l'utilisateur d'ajouter / retirer des gadgets et de personnaliser Facile pour l'utilisateur d'ajouter / retirer des gadgets et de personnaliser

Gadgets - AvantagesGadgets - Avantages

Page 29: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Norme OpenSocialNorme OpenSocial

* Source image : http://code.google.com/apis/opensocial/

Page 30: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Créé en réaction* à la prolifération de normes et d'APIs propriétaires ou Créé en réaction* à la prolifération de normes et d'APIs propriétaires ou

spécifiques à un seul site (novembre 2007)spécifiques à un seul site (novembre 2007)

OpenSocial se veut une norme libre et ouverte qui définit une API OpenSocial se veut une norme libre et ouverte qui définit une API

commune à un ensemble d'applications sociales sur un grand nombre de commune à un ensemble d'applications sociales sur un grand nombre de

sites Web différentssites Web différents

Combinaison des Google gadgets, d'un conteneur de gadgets et d'APIs de Combinaison des Google gadgets, d'un conteneur de gadgets et d'APIs de

communication normalisés communication normalisés

Partenaires de l'OpenSocial Foundation: Engage.com, Friendster, Google, Partenaires de l'OpenSocial Foundation: Engage.com, Friendster, Google,

hi5, Hyves, imeem, LinkedIn, MySpace, Ning, Oracle, orkut, Plaxo, hi5, Hyves, imeem, LinkedIn, MySpace, Ning, Oracle, orkut, Plaxo,

Salesforce.com, Six Apart, Tianji, Viadeo, XING, Yahoo!Salesforce.com, Six Apart, Tianji, Viadeo, XING, Yahoo!

http://www.opensocial.org/http://www.opensocial.org/

http://code.google.com/apis/opensocialhttp://code.google.com/apis/opensocial

OpenSocialOpenSocial

* Note : beaucoup en réaction à FaceBook

Page 31: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Norme OpenSocialNorme OpenSocial

OpenSocialOpenSocial

* Source Clipart : http://www.clipart.com

Page 32: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Définit un format XML pour les applications, comprenant l'interface-Définit un format XML pour les applications, comprenant l'interface-

utilisateur (HTML/CSS/Javascript) et des métadonnées (titre, auteur, utilisateur (HTML/CSS/Javascript) et des métadonnées (titre, auteur,

courriel, taille du gadget, préférences)courriel, taille du gadget, préférences)

Définit des APIs pour des services Web pour l'échange de données, Définit des APIs pour des services Web pour l'échange de données,

incluant des services REST et de la persistance de donnéesincluant des services REST et de la persistance de données

Service d'authentificationService d'authentification

Trois principaux services de la norme OpenSocial : Trois principaux services de la norme OpenSocial :

1) Personnes & Relations (amis)1) Personnes & Relations (amis)

(accès par programmation aux informations sur les amis) (accès par programmation aux informations sur les amis)

2) Activités2) Activités

(Qu'est ce vos amis veulent faire? Faites savoir ce que vous faites)(Qu'est ce vos amis veulent faire? Faites savoir ce que vous faites)

3) Persistance (données de l'application, données des gadgets)3) Persistance (données de l'application, données des gadgets)

(Fournir un état sans le serveur, partager des données avec vos amis)(Fournir un état sans le serveur, partager des données avec vos amis)

OpenSocialOpenSocial

Page 33: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Demande d'information sur un ami...Demande d'information sur un ami...

function getFriendData() {function getFriendData() {

var req = opensocial.newDataRequest();var req = opensocial.newDataRequest();

req.add(req.newFetchPersonRequest(VIEWER),'viewer');req.add(req.newFetchPersonRequest(VIEWER),'viewer');

req.add(req.newFetchPeopleRequest(VIEWER_FRIENDS),'viewerFriends');req.add(req.newFetchPeopleRequest(VIEWER_FRIENDS),'viewerFriends');

req.send(onLoadFriends);req.send(onLoadFriends);

}}

Fonction de rappel (Callback) des données sur un ami...Fonction de rappel (Callback) des données sur un ami...

function onLoadFriends(resp) {function onLoadFriends(resp) {

var viewer = resp.get('viewer').getData();var viewer = resp.get('viewer').getData();

var viewerFriends = resp.get('viewerFriends').getData();var viewerFriends = resp.get('viewerFriends').getData();

var html = 'Friends of ' + viewer.getDisplayName() + ‘:<br><ul>’;var html = 'Friends of ' + viewer.getDisplayName() + ‘:<br><ul>’;

viewerFriends.each(function(person) {viewerFriends.each(function(person) {

html += '<li>' + person.getDisplayName()+'</li>';html += '<li>' + person.getDisplayName()+'</li>';

});});

html += '</ul>';html += '</ul>';

document.getElementById('friends').innerHTML = html;document.getElementById('friends').innerHTML = html;

}}

OpenSocial – un peu de codeOpenSocial – un peu de code

* Source code : http://www.google.com

Page 34: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Basé sur la norme AtomPub (Atom publishing protocol) et JSONBasé sur la norme AtomPub (Atom publishing protocol) et JSON

/people/{guid}/@all/people/{guid}/@all

-- -- Retourne l'ensemble de toutes les personnes en relation avec l'usager {guid}Retourne l'ensemble de toutes les personnes en relation avec l'usager {guid}

/people/{guid}/@friends/people/{guid}/@friends

-- -- Retourne l'ensemble de toutes les personnes amies de l'usager {guid}Retourne l'ensemble de toutes les personnes amies de l'usager {guid}

-- i.e. un sous-ensemble de @all-- i.e. un sous-ensemble de @all

/people/{guid}/@self/people/{guid}/@self

-- Retour l'information contenue dans le profil de l'usager {guid}-- Retour l'information contenue dans le profil de l'usager {guid}

/activities/{guid}/@self/activities/{guid}/@self

-- -- Retourne l'ensemble de toutes les activités générées par l'usager Retourne l'ensemble de toutes les activités générées par l'usager {guid}{guid}

/activities/{guid}/@friends/activities/{guid}/@friends

-- -- Retourne l'ensemble de toutes les activités desRetourne l'ensemble de toutes les activités des amis de l'usager {guid} amis de l'usager {guid}

OpenSocial – OpenSocial – Services RestServices Rest

* Source code : http://www.google.com

Page 35: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

ShindigShindig

ShindigShindig

* Source Clipart : http://www.clipart.com

Page 36: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Implantation de référence de la norme OpenSocial Implantation de référence de la norme OpenSocial

en Java et en PHPen Java et en PHP

Projet Apache en logiciel libre et supporté par un consortium d'entreprises Projet Apache en logiciel libre et supporté par un consortium d'entreprises

mené par Googlemené par Google

Comporte 4 parties principales :Comporte 4 parties principales :

1) Conteneur de gadgets JavaScript (IU, sécurité, communication, préf.)1) Conteneur de gadgets JavaScript (IU, sécurité, communication, préf.)

2) Serveur de gadgets (spécifications XML vers JS + HTML)2) Serveur de gadgets (spécifications XML vers JS + HTML)

3) Conteneur OpenSocial (couche au-dessus du conteneur de gadgets) : 3) Conteneur OpenSocial (couche au-dessus du conteneur de gadgets) :

profils, amis, activitésprofils, amis, activités

4) Passerelle du serveur OpenSocial : interface vers d'autres serveurs de 4) Passerelle du serveur OpenSocial : interface vers d'autres serveurs de

contenu incluant des APIs REST contenu incluant des APIs REST

http://incubator.apache.org/shindig/http://incubator.apache.org/shindig/

Serveur ShindigServeur Shindig

Page 37: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Serveur ShindigServeur Shindig

* Source : http://rollerweblogger.org/roller/entry/shindig_java_internals_diagram_updated

1. Requête à Shindig via /social/rest ou /social/rpc (REST API ou JSON-RPC API)2. La servlet créée un RequestItem qui analyse la requête (2 RequestItem différents : un pour le REST et un pour le RPC)3. La servlet appelle le gestionnaire (handler) approprié4. Une des trois gestionnaires (handler) de Shindig prend en charge la requête (PersonHandler, ActivityHandler, AppDataHandler)5. Le gestionnaire (handler) de Shindig appelle le SPI (Shindig Service Provider) qui est défini par un ensemble d'interfaces avec des méthodes qui retournent des ResponseItems (des POJOs). Le SPI est l'endroit où établir des passerelles avec les autres modules du serveur (backend)6. Le gestionnaire (handler) retourne un ResponseItem qui enveloppe un seul ou un ensemble de POJOs. La servlet peut alors retourner cette réponse ou accumuler les ResponseItems lors d' un traitement en lot.7. La servlet convertit / sérialise et retourne le ou les ResponseItem(s) en XML ou JSON

Page 38: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

OpenSocial - OpenSocial - Avantages & inconvénientsAvantages & inconvénients

* Source Clipart : http://www.clipart.com

Page 39: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Contraintes apportées par la normeContraintes apportées par la norme

Plusieurs vieilles versions de gadgets GooglePlusieurs vieilles versions de gadgets Google

Difficulté inhérente à la création de grosses applications en HTML Difficulté inhérente à la création de grosses applications en HTML

et JavaScriptet JavaScript

Difficulté inhérente au pDifficulté inhérente au partage d'une norme par des entreprises artage d'une norme par des entreprises

concurrentesconcurrentes

Dépendance de GoogleDépendance de Google

Pas adapté aux services critiques avec des transactions sécuriséesPas adapté aux services critiques avec des transactions sécurisées

Problème de sécuritéProblème de sécurité

OpenSocial - InconvénientsOpenSocial - Inconvénients

Page 40: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

Présente les avantages usuels d'une norme : interopérabilité, Présente les avantages usuels d'une norme : interopérabilité,

portabilité, création d'une masse critique, apprentissage réduit, portabilité, création d'une masse critique, apprentissage réduit,

meilleure documentation, meilleurs outils, plus grande productivité, meilleure documentation, meilleurs outils, plus grande productivité,

réduction des coûts, pérennité de la technologieréduction des coûts, pérennité de la technologie

Endossement par de grands joueurs comme GoogleEndossement par de grands joueurs comme Google

Permet aux applications tierces de rouler sur un plus grand Permet aux applications tierces de rouler sur un plus grand

nombre de sites Web sociauxnombre de sites Web sociaux

Plus d'applications accessibles à plus de personnesPlus d'applications accessibles à plus de personnes

Permet aux opérateurs de sites sociaux de se concentrer sur leurs Permet aux opérateurs de sites sociaux de se concentrer sur leurs

métiers et services et de consacrer moins d'efforts sur les métiers et services et de consacrer moins d'efforts sur les

développements technologiquesdéveloppements technologiques

Selon Hal Varian : L'adoption de normes entrîne le passage d'une Selon Hal Varian : L'adoption de normes entrîne le passage d'une

compétition pour un marché vers une compétition dans un marchécompétition pour un marché vers une compétition dans un marché

OpenSocial - AvantagesOpenSocial - Avantages

Page 41: Web social - GTI780 & MTI780 - ETS - A08

Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780

QuestionsQuestions

??

* Source Clipart : http://www.clipart.com