Download - De Google+ à twitter en passant par le Cloud
Google vers Twitter ? - Mes besoins
• Usage persoLe but n'est pas d'ouvrir un service.
• Pas de perte de contenu• Attention aux messages longs et aux images.• Utilisable de partout
Pas de dépendance d'un plugin navigateur ou d'un application spécifique.
• Réactivité peu importante.Le tweet n'est pas urgent, il peut attendre.
• Ne coûte rien.Il ne s'agit pas d'un besoin vital.
• Originalité.• Parce qu'il faut bien s'amuser :)
Des éléments de réponse...
• Message twitter avec début + lien vers Google +
• Tache déclenchée régulièrement
• "Pilotée" depuis le cloud.
Stratégie de diffusion ?
Que faire de :• Message court ?• Message avec lien vers article ?• Message avec image/vidéo ?• Publication d'un album ?• Partage de partage de lien sans aucun
commentaire ?
Stratégie de diffusion - mes choix
• Régle du one-click Pour accéder à une information l'utilisateur ne doit pas faire plus d'un clic
• Contenu type photos doit être linké quelque soit la taille du messageProfitez de la plateforme Google+
• Shortenizer les urls du contenuGagner un peu d'espace
• Tout message trop long doit être linké
Orchestration de services cloud
• Basé sur Mule 3.1.x+(= "ESB léger" / framework d'intégration)
• Intégrer facilement des services cloudUn cloud pour les contrôler tous (MongoDB, Sales Force, Twitter, ...)
• Infrastructure sur AmazonD'après les logs...
• Piloter un flux qui les utiliseOpérations métiers propre à mon SI
Mule Studio
• En version beta ...o Un Eclipse customiséo De la vraie beta !o Dernière version 1.0 milestone 5
• Création de project Mule
• DéploiementÉquivalent à ce retrouve avec GAE
Mon projet démo - Mercure+
Mercure est le dieu du commerce, des voyageurs, des voleurs, des marchands, des médecins et il est également le messager des dieux.
Il transporte les messages dans le cloud
Mon flux
1. Récupération des derniers Activities
• Trouver les non publiés sur Twitter
• Découper pour traitement unitaire
• Créer message générique
• Préparer le message spécial Twitter
Api Rest Google + - Activities List
• RequêteGET https://www.googleapis.com/plus/v1/people/108189587050871927619/ activities/public?key=yourAPIKey
• Réponse{
"kind": "plus#activityFeed",
"nextPageToken": string,
"selfLink": string,
"nextLink": string,
"title": string,
"updated": datetime,
"id": string,
"items": [
activities Resource
]
}
Api Rest Goo.gl
• Requête
POST https://www.googleapis.com/urlshortener/v1/url Content-Type: application/json {"longUrl": "http://www.google.com/"}
• Réponse{ "kind": "urlshortener#url", "id": "http://goo.gl/fbsS", "longUrl": "http://www.google.com/" }
Besoin de persistance
• Quels sont les Activities à twitter ?• Cette activity a t-elle été modifiée ?
• Combien de messages publiés ?
Mongo DB - Pourquoi ?
• Connecteurs Mongo pour Mule• Driver présent dans le milestone 3, disparue
en milestone 5....• Je connais pas (encore)
Exemple d'une entrée
{ "_id": { "$oid": "4ea71ca515826403b2aa6d49" }, "updated": "2011-12-02T18:50:19.429Z", "size": 16}
MongoLab
• Hébergeur cloud(gratuit dans la limite de 240 Mo)
• Interface web d'administration simple
Les services cloud utilisés
• Connecteurs http/httpso Api google plus + api keyo Api goo.gl
• Connecteur Twittero Nécessite tokens personnel et applicatif
• Driver java pour MongoDBo Hébergement non fourni par Mule iON
Les apis Mule
• Déclencheur Quartz
• Transformeur json to object
• Mapping JSon avec Jackson
• Splitter de listes
• Traitement asynchrone
Ont aussi participé ...
• Spring 3o Les composants mule peuvent êtres des beans spring.o RestTemplate pour interroger goo.gl.
• Guavao Filtrage des activities récente selon un Predicate.o Manipulation du contenu pour retrouver urls.
• JSoupo Nettoyage de contenu html.
• JodaTimeo Date d'update des activites.
• Mapping perso des objets javao Utilisation Jodatime pour les dates (le DateTime de
google provoquait des erreurs)
Aller plus loin ?
• Publication :o Facebook (attention : il faut avoir une session ouverte)o LinkedIn
• Statistique des activitieso Commentaireso Partages
• Fonctionnalité complémentaireso Suivre les commentaires sur les activities partagées
par d'autres
Points négatifs
• Mule Studioo En version betao Divers problèmes avant la m5 (ajout de lib, visualisation
du flux, ... )• Problème de plateforme ?
o jar(s) existant(s) dans Mule Studio qui semble absent déployé (JodaTime)
• Supporto Forum peu fréquenté
• Version gratuiteo Echéance de ma version au 29/02/12 ?