Your SlideShare is downloading. ×
0
(mettre un super titre ici)

@nmartignole
nicolas@zaptravel.com

ZapTravel
Mise en oeuvre de Play 2
sur ZapTravel
ZapTravel
Mise en oeuvre de Play 2
sur un vrai projet de la
vraie vie, comme quoi on ne fait pas QUE des
HelloWorld

ZapTravel
Embarquement dans un
nouveau monde

ZapTravel
Si vous voulez développer
avec plaisir
ZapTravel
Bref...

ZapTravel
Scala

ZapTravel

Web

Reactive
Programming

Akka

Architecture
ZapTravel
ZapTravel
ZapTravel
• Innover dans la découverte et l’achat
de voyages

• Avion + Hôtel + Voiture + Activités
• Temps réel
• Web + M...
ZapTravel

• Week-end romantique
ZapTravel
• Week-end romantique
• Golf ce weekend
• Shopping à Milan
• Ski + Spa pour se détendre
• Sites de l’Unesco et v...
ZapTravel
Confirmation prix en temps réel
Construire du contenu
dynamiquement
Pousser les prix vers le client
Gérer plusieurs flux de ...
Web
Statique

Dynamique

Structuré

Temps réel

© babimu - Fotolia.com
Statique

Dynamique

Structuré

Temps réel

© M.studio - Fotolia.com
Statique

Dynamique

Structuré

Temps réel

© M.studio - Fotolia.com
Statique

Dynamique

Structuré

Temps réel

© Julien Eichinger Fotolia.com
Quelques tendances
• Données structurées/liées
• Temps réel (Twitter)
• Personnalisée (Facebook, Amazon)
• Web mobile (Fou...
ZapTravel

• Fournisseurs de données
ZapTravel
Architecture
Architecture
Web
HTTP
HTTPS

Web
LB

Redis
Air/Hotel/Cars...

Redis
Webuser/Reservatiom

Redis
Web content

S3
Photos

Zap...
Architecture
Redis

Web

Air/Hotel/Cars/Ac

Web
HTTP
HTTPS

Web

LB

Redis
Resa/Users
Redis
Web Content

redis

Web

ZapTr...
Architecture
Redis
Air/Hotel/Cars/Ac

HTTP
HTTPS

Redis
Resa/Users
Redis
Web Content

MySQL

Publishers

Admin

Backoffice
...
Architecture
Redis
Air/Hotel/Cars/Ac

HTTP
HTTPS

MySQL

Redis
Resa/Users

20 Gb

Redis
Web Content

PHP

Java

PHP

Java
...
Demo
- Check time -
Un problème ?
Client

Serveur

Service Avion

Service Voiture

ZapTravel
Intégration de services

Navigateur
Web

Serveur

Avion

Hotel

Voiture

ZapTravel
Intégration de services

Navigateur
Web

Serveur

Avion

Hotel

Voiture

ZapTravel
Intégration de services

Navigateur
Web

Serveur

Avion

Hotel

Voiture

ZapTravel
ZapTravel
Passer de l’autre côté

© Galyna Andrushko - Fotolia.com
Play2
Solutions

• Système non bloquant (NIO)

ZapTravel
Solutions

• Modèle de programmation
événementiel et réactif

ZapTravel
Solutions

• Serveur sans état conversationnel

ZapTravel
Solutions

• Streaming vers le client

ZapTravel
Non bloquant
Web client

Avion

Serveur

Hotel

Voiture
ZapTravel
Réactif
Web client

Avion

Serveur

Hotel

Voiture
ZapTravel
Conversation
Sans état conversationnel du
côté serveur

© lkunl - Fotolia.com
Streaming
No polling *

WebBrowser -> ZapTravel
ZapTravel -> Service Providers
ZapTravel

© Scanrail - Fotolia.com
Différence entre Streaming et REST

https://dev.twitter.com/docs/streaming-apis

ZapTravel
Streaming API

ZapTravel
2012
Play 1

Play 2

Java

Scala

SQL

NoSQL
Play 2 en un slide
• Modèle de

programmation
événementiel

• Typage fort
• Moteur de templating
• Akka
• Moteur asynchron...
Scala
def index() = Action {
val name ="Nicolas"
Ok(views.html.Application.index(name))
}
Scala - 2
@(name: String)
@myTemplate() {
<h1>Hello @name</h1>
...
}
Mais pourquoi Scala ?

Attention :
FUD pendant quelques slides.
ZapTravel
Le bon vieux
développeur Java

ZapTravel
«...à la mode...»

ZapTravel
«... efficacité...»

ZapTravel
... pause pub ...

ZapTravel
Sérieusement
Choix de Scala
• Orienté objet ET Fonctionnel
• Typage statique
• JVM
• Collections
ZapTravel
Akka dans Play2
• Simple à mettre en oeuvre
• Facilité pour tester
• Indispensable pour ZapTravel
ZapTravel
http://zaptravel.com/romance/weekend-deals/from-london/to-anywhere/next-90days/quality/folio

ZapTravel
http://zaptravel.com/romance/weekend-deals/from-london/to-paris/11-Jan-2013-to-13-Jan-2013/best-western-sevres-montparnass...
Demo
Questions
@nmartignole
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
Upcoming SlideShare
Loading in...5
×

Play! chez Zaptravel - Nicolas Martignole - December 2012

268

Published on

Play! chez Zaptravel - Nicolas Martignole - December 2012

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
268
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Play! chez Zaptravel - Nicolas Martignole - December 2012"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×