Play! chez Zaptravel - Nicolas Martignole - December 2012

63
@nmartignole [email protected] (mettre un super titre ici) ZapTravel

description

Play! chez Zaptravel - Nicolas Martignole - December 2012

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

Page 1: Play! chez Zaptravel - Nicolas Martignole - December 2012

@nmartignole [email protected]

(mettre un super titre ici)

ZapTravel

Page 2: Play! chez Zaptravel - Nicolas Martignole - December 2012

Mise en oeuvre de Play 2 sur ZapTravel

ZapTravel

Page 3: Play! chez Zaptravel - Nicolas Martignole - December 2012

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

Embarquement dans un nouveau monde

ZapTravel

Page 5: Play! chez Zaptravel - Nicolas Martignole - December 2012

Si vous voulez développer avec plaisir

ZapTravel

Page 6: Play! chez Zaptravel - Nicolas Martignole - December 2012

Bref...

ZapTravel

Page 7: Play! chez Zaptravel - Nicolas Martignole - December 2012

ZapTravel

Web

Reactive Programming

Scala

Akka

Architecture

ZapTravel

Page 8: Play! chez Zaptravel - Nicolas Martignole - December 2012

ZapTravel

Page 9: Play! chez Zaptravel - Nicolas Martignole - December 2012

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

ZapTravel

•Week-end romantique

Page 11: Play! chez Zaptravel - Nicolas Martignole - December 2012
Page 12: Play! chez Zaptravel - Nicolas Martignole - December 2012

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

ZapTravel

Page 14: Play! chez Zaptravel - Nicolas Martignole - December 2012

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

Web

Page 16: Play! chez Zaptravel - Nicolas Martignole - December 2012

Statique

Dynamique

Structuré

Temps réel

© babimu - Fotolia.com

Page 17: Play! chez Zaptravel - Nicolas Martignole - December 2012

Statique

Dynamique

Structuré

Temps réel

© M.studio - Fotolia.com

Page 18: Play! chez Zaptravel - Nicolas Martignole - December 2012

Statique

Dynamique

Structuré

Temps réel

© M.studio - Fotolia.com

Page 19: Play! chez Zaptravel - Nicolas Martignole - December 2012

Statique

Dynamique

Structuré

Temps réel

© Julien Eichinger - Fotolia.com

Page 20: Play! chez Zaptravel - Nicolas Martignole - December 2012

• 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

ZapTravel

• Fournisseurs de données

Page 22: Play! chez Zaptravel - Nicolas Martignole - December 2012

ZapTravelArchitecture

Page 23: Play! chez Zaptravel - Nicolas Martignole - December 2012

Architecture

LB

Web

WebHTTPHTTPS

RedisAir/Hotel/Cars...

RedisWebuser/Reservatiom

RedisWeb content

S3

Photos

ZapTravel

Page 24: Play! chez Zaptravel - Nicolas Martignole - December 2012

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

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

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

Demo

Page 28: Play! chez Zaptravel - Nicolas Martignole - December 2012

- Check time -

Page 29: Play! chez Zaptravel - Nicolas Martignole - December 2012
Page 30: Play! chez Zaptravel - Nicolas Martignole - December 2012
Page 31: Play! chez Zaptravel - Nicolas Martignole - December 2012

Un problème ?Client Serveur Service Avion Service Voiture

ZapTravel

Page 32: Play! chez Zaptravel - Nicolas Martignole - December 2012

Intégration de services

Serveur

Avion

Hotel

Voiture

Navigateur Web

ZapTravel

Page 33: Play! chez Zaptravel - Nicolas Martignole - December 2012

Intégration de services

Navigateur Web Serveur

Avion

Hotel

Voiture

ZapTravel

Page 34: Play! chez Zaptravel - Nicolas Martignole - December 2012

Intégration de services

Serveur

Avion

Hotel

Voiture

Navigateur Web

ZapTravel

Page 35: Play! chez Zaptravel - Nicolas Martignole - December 2012

ZapTravel

Page 36: Play! chez Zaptravel - Nicolas Martignole - December 2012

© Galyna Andrushko - Fotolia.com

Passer de l’autre côté

Page 37: Play! chez Zaptravel - Nicolas Martignole - December 2012

Play2

Page 38: Play! chez Zaptravel - Nicolas Martignole - December 2012

Solutions

• Système non bloquant (NIO)

ZapTravel

Page 39: Play! chez Zaptravel - Nicolas Martignole - December 2012

Solutions

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

ZapTravel

Page 40: Play! chez Zaptravel - Nicolas Martignole - December 2012

Solutions

• Serveur sans état conversationnel

ZapTravel

Page 41: Play! chez Zaptravel - Nicolas Martignole - December 2012

Solutions

• Streaming vers le client

ZapTravel

Page 42: Play! chez Zaptravel - Nicolas Martignole - December 2012

Non bloquant

Web client Serveur

Avion

Hotel

Voiture

ZapTravel

Page 43: Play! chez Zaptravel - Nicolas Martignole - December 2012

Réactif

Web client Serveur

Avion

Hotel

Voiture

ZapTravel

Page 44: Play! chez Zaptravel - Nicolas Martignole - December 2012

ConversationSans état conversationnel du

côté serveur

© lkunl - Fotolia.com

Page 45: Play! chez Zaptravel - Nicolas Martignole - December 2012

StreamingNo polling *

© Scanrail - Fotolia.com

WebBrowser -> ZapTravelZapTravel -> Service Providers

ZapTravel

Page 46: Play! chez Zaptravel - Nicolas Martignole - December 2012

Différence entre Streaming et REST

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

Page 47: Play! chez Zaptravel - Nicolas Martignole - December 2012

Streaming API

ZapTravel

Page 48: Play! chez Zaptravel - Nicolas Martignole - December 2012

2012

Page 49: Play! chez Zaptravel - Nicolas Martignole - December 2012

Play 2

Scala

NoSQL

Play 1

Java

SQL

Page 50: Play! chez Zaptravel - Nicolas Martignole - December 2012

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

Scala

def index() = Action { val name ="Nicolas" Ok(views.html.Application.index(name)) }

Page 52: Play! chez Zaptravel - Nicolas Martignole - December 2012

Scala - 2@(name: String)

@myTemplate() {

<h1>Hello @name</h1> ... }

Page 53: Play! chez Zaptravel - Nicolas Martignole - December 2012

Mais pourquoi Scala ?

ZapTravel

Attention : FUD pendant quelques slides.

Page 54: Play! chez Zaptravel - Nicolas Martignole - December 2012

Le bon vieux développeur Java

ZapTravel

Page 55: Play! chez Zaptravel - Nicolas Martignole - December 2012

«...à la mode...»

ZapTravel

Page 56: Play! chez Zaptravel - Nicolas Martignole - December 2012

«... efficacité...»

ZapTravel

Page 57: Play! chez Zaptravel - Nicolas Martignole - December 2012

... pause pub ...

ZapTravel

Page 58: Play! chez Zaptravel - Nicolas Martignole - December 2012

Sérieusement

Page 59: Play! chez Zaptravel - Nicolas Martignole - December 2012

Choix de Scala

•Orienté objet ET Fonctionnel

• Typage statique

• JVM

•Collections

ZapTravel

Page 60: Play! chez Zaptravel - Nicolas Martignole - December 2012

Akka dans Play2

• Simple à mettre en oeuvre

• Facilité pour tester

• Indispensable pour ZapTravel

ZapTravel

Page 63: Play! chez Zaptravel - Nicolas Martignole - December 2012

DemoQuestions

@nmartignole