6. Mobilité
• Internet mobile est une réalité
La connexion Internet devient quasi-permanente
• 40% des nouveaux internautes dans le monde d’ici 2015
Certains internautes seront uniquement mobiles
• Les connexions 4G arrivent bientôt
De nouveaux cas d’usage deviendront possibles
8. Taxi G7 et la Géo-localisation
Géo-localisation
dans l’application
iPhone de TaxiG7
9. Smart Lists dans Facebook
Facebook maintient
une liste d’amis à
proximité
10. Géo-localisation en pratique
• Certaines bases de données permettent les requêtes géo-spatiales
PostGIS, MongoDB, ...
• Les moteurs de recherche le permettent également
Lucene propose une extension « spacial »
• HTML5 et les APIs des OS mobiles permettent de se géo-localiser
Où par IP pour les applications fixes
12. Notifications et mise à jour dans Quora
Quora notifie
l’utilisateur des
évènements le
concernant et met
à jour l’affichage
en temps réel
13. Recherche en continu dans Twitter
De nouveaux
résultats sont
disponibles au fur
et à mesure
14. Temps-réel en pratique
• ElasticSearch propose des requêtes temps-réel et continues (Percolator)
Stocke les requête, teste les nouveaux documents
• Atmosphere et WebSocket permettent l’intégration Web
Permet les chats, notifications, rafraichissement,...
• Les moteurs de Complex Event Processing (CEP) pour aller plus loin
Esper est un moteur OpenSource très mature
16. People you Should Know par LinkedIn
LinkedIn suggère
des personnes
que l’on connait
en se basant sur
le graphe social,
sur l’historique
de recherche,
etc...
18. Top Stories dans Google News
Sujets tendances
découverts par
Google News
19. En pratique
• Apache Mahout veut devenir le Lucene de l’apprentissage artificiel
Rapproche les applications Java et l’apprentissage artificiel
• Se nourrit des gros volumes de données stockés dans NoSQL
Intégration native de Mahout et de Hadoop
• Neo4j permet de stocker des graphes et de découvrir de l’information
Par des algorithmes de plus court chemin, centralité,...
27. Cloud Computing principles
• Abstraction
SaaS, PaaS, IaaS, ... actually « (.*) as a Service »
• Automatisation
Réduire les interventions manuelles autant que possible
• Elasticité
Augmenter ou réduire la capacité selon les besoins
28. Cloud’s basic abstractions
Fourni par le Provider Cloud
Fourni par l’entreprise Fourni un
middleware
SaaS
Application
Client / User PaaS
Web
Application
Middleware IaaS
Web
Fourni un
serveur vide
29. Public Cloud vs. Private Cloud
Une charge typique
sur une journée
38. Design traditionnel
• Les erreurs techniques génère typiquement une page d’erreur
SQLException, IOException, unavailable backend...
• Quelques Single Points of Failure et Bottlenecks
Services stateful et hautement disponibles parfois couteux
• Timeouts et backends lents sont typiquement non gérés
Un backend devient lent et toute l’application est ralentie
39. Design for failures
• Les défaillances vont arriver
Accueillons-les plutôt que d’essayer de les éviter
• Gérer les backends lents ou défaillants avec des Circuit Breakers
L’application peut offrir un mode dégradé
• Cloud et NoSQL apportent des stockages scalables et disponibles
Les données les plus critiques peuvent ainsi être disponibles
40. Conclusion
• L’élasticité peut réduire les coûts et améliorer l’image de marque
... et simplifier le Capacity Planning
• Le Cloud est mis en oeuvre par des experts
Evite donc les solutions couteuses et fragiles
• Les services fournis par le Cloud vont s’améliorer rapidement
Grace à une boucle de feedback plus riche et plus rapide
• Mais .... JEE 7 ne viendra pas avant 2013 / 2014 !