View
892
Download
1
Category
Preview:
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
Citation preview
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
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
Web socialWeb social
* Source Clipart : http://www.clipart.com
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
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
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
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
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
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
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
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$
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$*
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
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
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
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
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
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
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
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
GadgetsGadgets
GadgetsGadgets
* Source Clipart : http://www.clipart.com
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
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
Conteneur de gadgets - NetvibesConteneur de gadgets - Netvibes
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
Conteneur de gadgets - iGoogleConteneur de gadgets - iGoogle
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
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
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...
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
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
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
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
Norme OpenSocialNorme OpenSocial
* Source image : http://code.google.com/apis/opensocial/
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
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
Norme OpenSocialNorme OpenSocial
OpenSocialOpenSocial
* Source Clipart : http://www.clipart.com
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
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
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
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
ShindigShindig
ShindigShindig
* Source Clipart : http://www.clipart.com
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
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
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
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
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
Montréal, novembre 2008Montréal, novembre 2008GTI-780 / MTI-780GTI-780 / MTI-780
QuestionsQuestions
??
* Source Clipart : http://www.clipart.com
Recommended