Play! chez Zaptravel - Nicolas Martignole - December 2012
-
Upload
jug-lausanne -
Category
Technology
-
view
176 -
download
3
description
Transcript of Play! chez Zaptravel - Nicolas Martignole - December 2012
![Page 2: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/2.jpg)
Mise en oeuvre de Play 2 sur ZapTravel
ZapTravel
![Page 3: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/3.jpg)
Mise en oeuvre de Play 2 sur un vrai projet de la
vraie vie, comme quoi on ne fait pas QUE des HelloWorld
ZapTravel
![Page 4: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/4.jpg)
Embarquement dans un nouveau monde
ZapTravel
![Page 5: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/5.jpg)
Si vous voulez développer avec plaisir
ZapTravel
![Page 6: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/6.jpg)
Bref...
ZapTravel
![Page 7: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/7.jpg)
ZapTravel
Web
Reactive Programming
Scala
Akka
Architecture
ZapTravel
![Page 8: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/8.jpg)
ZapTravel
![Page 9: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/9.jpg)
ZapTravel
• Innover dans la découverte et l’achat de voyages
• Avion + Hôtel + Voiture + Activités
• Temps réel
•Web + Mobile
![Page 10: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/10.jpg)
ZapTravel
•Week-end romantique
![Page 11: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/11.jpg)
![Page 12: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/12.jpg)
ZapTravel
•Week-end romantique
•Golf ce weekend
• Shopping à Milan
• Ski + Spa pour se détendre
• Sites de l’Unesco et visites musées
![Page 13: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/13.jpg)
ZapTravel
![Page 14: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/14.jpg)
Confirmation prix en temps réel
Construire du contenu
dynamiquement
Pousser les prix vers le client
Gérer plusieurs flux de données
...
![Page 15: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/15.jpg)
Web
![Page 16: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/16.jpg)
Statique
Dynamique
Structuré
Temps réel
© babimu - Fotolia.com
![Page 17: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/17.jpg)
Statique
Dynamique
Structuré
Temps réel
© M.studio - Fotolia.com
![Page 18: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/18.jpg)
Statique
Dynamique
Structuré
Temps réel
© M.studio - Fotolia.com
![Page 19: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/19.jpg)
Statique
Dynamique
Structuré
Temps réel
© Julien Eichinger - Fotolia.com
![Page 20: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/20.jpg)
• Données structurées/liées
• Temps réel (Twitter)
• Personnalisée (Facebook, Amazon)
•Web mobile (Foursquare)
Quelques tendances
ZapTravel
![Page 21: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/21.jpg)
ZapTravel
• Fournisseurs de données
![Page 22: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/22.jpg)
ZapTravelArchitecture
![Page 23: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/23.jpg)
Architecture
LB
Web
WebHTTPHTTPS
RedisAir/Hotel/Cars...
RedisWebuser/Reservatiom
RedisWeb content
S3
Photos
ZapTravel
![Page 24: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/24.jpg)
Architecture
LB
Web
Web
Web
HTTPHTTPS
RedisAir/Hotel/Cars/Ac
RedisResa/Users
RedisWeb Content
Web
redis
ZapTravel
![Page 25: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/25.jpg)
Architecture
HTTPHTTPS
RedisAir/Hotel/Cars/Ac
RedisResa/Users
RedisWeb Content
MySQL
Admin
Scrappers Tooling
Backoffice
Publishers
Crowd computing
ZapTravel
![Page 26: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/26.jpg)
20 Gb
Architecture
HTTPHTTPS
RedisAir/Hotel/Cars/Ac
RedisResa/Users
RedisWeb Content
MySQL
PHP
PHP
PHP
Java
Java
PHP
Apache
ZapTravel
![Page 27: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/27.jpg)
Demo
![Page 28: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/28.jpg)
- Check time -
![Page 29: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/29.jpg)
![Page 30: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/30.jpg)
![Page 31: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/31.jpg)
Un problème ?Client Serveur Service Avion Service Voiture
ZapTravel
![Page 32: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/32.jpg)
Intégration de services
Serveur
Avion
Hotel
Voiture
Navigateur Web
ZapTravel
![Page 33: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/33.jpg)
Intégration de services
Navigateur Web Serveur
Avion
Hotel
Voiture
ZapTravel
![Page 34: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/34.jpg)
Intégration de services
Serveur
Avion
Hotel
Voiture
Navigateur Web
ZapTravel
![Page 35: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/35.jpg)
ZapTravel
![Page 36: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/36.jpg)
© Galyna Andrushko - Fotolia.com
Passer de l’autre côté
![Page 37: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/37.jpg)
Play2
![Page 38: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/38.jpg)
Solutions
• Système non bloquant (NIO)
ZapTravel
![Page 39: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/39.jpg)
Solutions
•Modèle de programmation événementiel et réactif
ZapTravel
![Page 40: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/40.jpg)
Solutions
• Serveur sans état conversationnel
ZapTravel
![Page 41: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/41.jpg)
Solutions
• Streaming vers le client
ZapTravel
![Page 42: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/42.jpg)
Non bloquant
Web client Serveur
Avion
Hotel
Voiture
ZapTravel
![Page 43: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/43.jpg)
Réactif
Web client Serveur
Avion
Hotel
Voiture
ZapTravel
![Page 44: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/44.jpg)
ConversationSans état conversationnel du
côté serveur
© lkunl - Fotolia.com
![Page 45: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/45.jpg)
StreamingNo polling *
© Scanrail - Fotolia.com
WebBrowser -> ZapTravelZapTravel -> Service Providers
ZapTravel
![Page 46: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/46.jpg)
Différence entre Streaming et REST
https://dev.twitter.com/docs/streaming-apis ZapTravel
![Page 47: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/47.jpg)
Streaming API
ZapTravel
![Page 48: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/48.jpg)
2012
![Page 49: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/49.jpg)
Play 2
Scala
NoSQL
Play 1
Java
SQL
![Page 50: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/50.jpg)
Play 2 en un slide• Modèle de
programmation événementiel
• Typage fort
• Moteur de templating
• Akka
• Moteur asynchrone
• Streaming
• NoSQL
• Puissance
• Framework fullstack
• existe-t-il une autre alternative ?
![Page 51: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/51.jpg)
Scala
def index() = Action { val name ="Nicolas" Ok(views.html.Application.index(name)) }
![Page 52: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/52.jpg)
Scala - 2@(name: String)
@myTemplate() {
<h1>Hello @name</h1> ... }
![Page 53: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/53.jpg)
Mais pourquoi Scala ?
ZapTravel
Attention : FUD pendant quelques slides.
![Page 54: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/54.jpg)
Le bon vieux développeur Java
ZapTravel
![Page 55: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/55.jpg)
«...à la mode...»
ZapTravel
![Page 56: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/56.jpg)
«... efficacité...»
ZapTravel
![Page 57: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/57.jpg)
... pause pub ...
ZapTravel
![Page 58: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/58.jpg)
Sérieusement
![Page 59: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/59.jpg)
Choix de Scala
•Orienté objet ET Fonctionnel
• Typage statique
• JVM
•Collections
ZapTravel
![Page 60: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/60.jpg)
Akka dans Play2
• Simple à mettre en oeuvre
• Facilité pour tester
• Indispensable pour ZapTravel
ZapTravel
![Page 61: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/61.jpg)
http://zaptravel.com/romance/weekend-deals/from-london/to-anywhere/next-90days/quality/folio
ZapTravel
![Page 62: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/62.jpg)
http://zaptravel.com/romance/weekend-deals/from-london/to-paris/11-Jan-2013-to-13-Jan-2013/best-western-sevres-montparnasse
ZapTravel
![Page 63: Play! chez Zaptravel - Nicolas Martignole - December 2012](https://reader034.fdocuments.in/reader034/viewer/2022051818/549bef60ac7959f12a8b45b8/html5/thumbnails/63.jpg)
DemoQuestions
@nmartignole