SlideShare uma empresa Scribd logo
1 de 120
Baixar para ler offline
Distribution de
contenu scalable
    Le multicanal, avec
   REST + eZ Publish
Distribution de
            contenu scalable
                                  Le multicanal, avec
                                  REST + eZ Publish
Nicolas Pastorino - nfrp@ez.no
Director Community - eZ Systems
@jeanvoye - http://share.ez.no
Distribution de
            contenu scalable
                                  Le multicanal, avec
                                    PHP Tour 2011 - Lille - 24 Novembre


                                  REST + eZ Publish
Nicolas Pastorino - nfrp@ez.no
Director Community - eZ Systems
                                                           #phptour
@jeanvoye - http://share.ez.no
Notre agenda :
Notre agenda :




L’émotion multicanal
Notre agenda :




L’émotion multicanal
       REST
Notre agenda :




L’émotion multicanal
       REST
API REST Extensible
Notre agenda :




L’émotion multicanal
       REST
API REST Extensible
Recommandation de Contenu
L’émotion multicanal



                       3
Le contenu en ligne nous
touche,
Le contenu en ligne nous
touche, il déclenche des
émotions partout, sur tout
terminal
Le contenu en ligne nous
touche, il déclenche des
émotions partout, sur tout
terminal
Le contenu en ligne nous
touche, il déclenche des
émotions partout, sur tout
terminal
Le contenu en ligne nous
touche, il déclenche des
émotions partout, sur tout
terminal
Vous consommez du
contenu, constamment
Vous consommez du
contenu, constamment
Vous consommez du
contenu, constamment
Vous consommez du
contenu, constamment
Distribution de
contenu
multicanal =
“emotions
anywhere”
Pre-requis à la distribution multicanal




Nicolas Pastorino - IPCse11   24/11/2011   8
Pre-requis à la distribution multicanal

Séparation contenu /
présentation à la    1
source de contenu




 Nicolas Pastorino - IPCse11   24/11/2011   8
Pre-requis à la distribution multicanal

Séparation contenu /
présentation à la    1
source de contenu




 Nicolas Pastorino - IPCse11   24/11/2011   8
Pre-requis à la distribution multicanal

Séparation contenu /
présentation à la    1
source de contenu



Ne pas transiger sur
l’expérience
                     2
utilisateur




 Nicolas Pastorino - IPCse11   24/11/2011   8
Pre-requis à la distribution multicanal

Séparation contenu /
présentation à la    1
source de contenu



Ne pas transiger sur
l’expérience
                     2         “The Superman Effect”   Aral Balkan, DPC11
utilisateur




 Nicolas Pastorino - IPCse11       24/11/2011                               8
Pre-requis à la distribution multicanal

Séparation contenu /
présentation à la    1
source de contenu



Ne pas transiger sur
l’expérience
                     2         “The Superman Effect”   Aral Balkan, DPC11
utilisateur




Avoir une seule source
de contenu           3




 Nicolas Pastorino - IPCse11       24/11/2011                               8
Pre-requis à la distribution multicanal

Séparation contenu /
présentation à la    1
source de contenu



Ne pas transiger sur
l’expérience
                     2         “The Superman Effect”   Aral Balkan, DPC11
utilisateur




Avoir une seule source         “Les annonceurs de contenu n’ont pas les
de contenu           3         moyens d’avoir une équipe éditoriale par
                               canal de publication”


 Nicolas Pastorino - IPCse11        24/11/2011                              8
Ces
3 règles
 simples
suffisent
  elles ?
Ces
3 règles
 simples
suffisent   Nous
  elles ?   venons à
            peine de
            quitter le
            sol.

            Continuons
            ...
Source

        /
Unique de
Contenu
            CMS
Source

        /
Unique de
Contenu
            CMS
Flux de
                  contenu
                  monétisés



Source

        /
Unique de
Contenu
            CMS
Flux de
                  contenu
                  monétisés
                  Applications
                  Mobiles
Source

        /
                  Smartphones, Tablets

Unique de
Contenu
            CMS
Flux de
                  contenu
                  monétisés
                  Applications
                  Mobiles
Source

        /
                  Smartphones, Tablets

Unique de
Contenu
            CMS   Contenu
                  Push
                  Newsletters
                  3rd party : CRM, ERP
Flux de
                  contenu
                  monétisés
                  Applications
                  Mobiles
Source

        /
                  Smartphones, Tablets

Unique de
Contenu
            CMS   Contenu
                  Push
                  Newsletters
                  3rd party : CRM, ERP


                  Print
                  Publication traditionnelle
Flux de
                  contenu
                  monétisés
                  Applications
                  Mobiles
Source

        /
                  Smartphones, Tablets

Unique de
Contenu
            CMS   Contenu
                  Push
                  Newsletters
                  3rd party : CRM, ERP


                  Print
                  Publication traditionnelle


                  Social Media
"Les consommateurs de media sur plusieurs
canaux ont un degré d’engagement plus élevé que
ceux présents sur un seul canal.

Plus ils regardent la TV, écoutent la radio, passent
du temps en ligne, etc.., plus ils consomment de la
publicité.

La distribution de contenu multicanal aura
également un impact important sur la structure
de revenus des announceurs de contenu. Cette
technologie devient hautement différenciante entre
ces derniers.
Having a
 REST ?
   :)
Having a
 REST ?
   :)

           Nous n’y
           sommes
               pas
           encore...
“Les media ainsi que les grandes marques se doivent de
reconnaître qu’ajouter le canal mobile au “mix multicanal”
ne signifie pas créer un canal annexe.
Les architectes de stratégies mobiles attestent que:

  • Le mobile n’est pas l’expérience desktop
  minifiée,

  • L’environnement de l’utilisateur est un élément
  de l’expérience mobile,

  • Les utilisateurs mobile ne sont pas simplement
  un sous-ensemble des visiteurs - certains sont
  nouveaux.”
Plus
    Petit
Dénominateur
 Commun :
Plus
    Petit
Dénominateur
 Commun :
 API REST
Nous venons
 de couvrir les
         bases
fonctionnelles
          pour
   augmenter
votre REACH
 au travers de
      multiples
       canaux.
Nous venons
 de couvrir les
         bases
fonctionnelles
          pour
   augmenter
votre REACH
                  Maintenant
 au travers de    les
      multiples   détails
       canaux.    techniques
REST


       16
REpresentational
State
Transfer
REpresentational
State
Transfer
REST est un ensemble de principes qui définit comment les
standards Web tels que HTTP et les URIs devraient être utilisés

•   Donner un ID à toute “chose”
•   Lier les “choses” ensemble (“HATEOAS”)
•   Utiliser les méthodes standards
•   Adopter des représentations multiples pour les ressources
•   Communiquer “sans état” ( statelessly )
REpresentational
State
Transfer
REST est un ensemble de principes qui définit comment les
standards Web tels que HTTP et les URIs devraient être utilisés

•   Donner un ID à toute “chose”
•   Lier les “choses” ensemble (“HATEOAS”)
•   Utiliser les méthodes standards
•   Adopter des représentations multiples pour les ressources
•   Communiquer “sans état” ( statelessly )

                                   h"p://www.infoq.com/ar4cles/rest-­‐introduc4on
                                   h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
REpresentational
State
Transfer




                   h"p://www.infoq.com/ar4cles/rest-­‐introduc4on
                   h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
REpresentational
State
Transfer
Les objectifs de REST incluent :

• Scalabilité des interactions entre composants
• Interfaces Génériques
• Déployement indépendant des composants
• Composants intermédiaires pour réduire la latence, renforcer la
sécurité, encapsuler les systèmes “legacy”


                                   h"p://www.infoq.com/ar4cles/rest-­‐introduc4on
                                   h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
API REST Extensible
au coeur du CMS eZ Publish




                             19
Au coeur du CMS eZ Publish
API REST Extensible




    REST                      comme fonctionnalité
                                 coeur


Nicolas Pastorino - IPCse11          24/11/2011      20
Au coeur du CMS eZ Publish
API REST Extensible




Contrôleur frontal dédié


Nicolas Pastorino - IPCse11   24/11/2011   21
At the core of the eZ Publish CMS
Extensible REST API



                                                        REST   setup

                                          REST
                                                                       eZP
                        REST	
  request
                                          FC



                          eZ	
  Publish
                          web-­‐request

Nicolas Pastorino - PHPTour 2011               24/11/2011                    22
At the core of the eZ Publish CMS
Extensible REST API



                                                        REST   setup

                                          REST
                                                                       eZP
                        REST	
  request
                                          FC



                          eZ	
  Publish
                          web-­‐request

Nicolas Pastorino - PHPTour 2011               24/11/2011                    22
Au coeur du CMS eZ Publish
API REST Extensible




                                   Mapping
                       contenu <--> ressource



Nicolas Pastorino - PHPTour 2011      24/11/2011   23
Au coeur du CMS eZ Publish
API REST Extensible




                     Makes data available



Nicolas Pastorino - PHPTour 2011   24/11/2011   24
Au coeur du CMS eZ Publish
API REST Extensible




                      Makes data reusable



Nicolas Pastorino - PHPTour 2011   24/11/2011   24
Au coeur du CMS eZ Publish
API REST Extensible




   Le contenu est “libéré”


Nicolas Pastorino - PHPTour 2011   24/11/2011   25
Au coeur du CMS eZ Publish
API REST Extensible




                                   Motif dʼURI


Nicolas Pastorino - PHPTour 2011        24/11/2011   26
Au coeur du CMS eZ Publish
API REST Extensible


                                   Juste un jeton pour déclencher une règle de
                                                    ré-écriture




                                                                                       Call +
     GET                    Host   /   Prefix      /    Provider    /    Version   /   params



                                          ezpRestPrefixFilterInterface




Nicolas Pastorino - PHPTour 2011                      24/11/2011                                27
Au coeur du CMS eZ Publish
API REST Extensible


                                   Juste un jeton pour déclencher une règle de
  Prefix
                                                    ré-écriture




Provider




                                          ezpRestPrefixFilterInterface




Version

Nicolas Pastorino - PHPTour 2011                     24/11/2011                  27
Au coeur du CMS eZ Publish
API REST Extensible


                                   Juste un jeton pour déclencher une règle de
  Prefix
                                                    ré-écriture




Provider




                                          ezpRestPrefixFilterInterface




Version

Nicolas Pastorino - PHPTour 2011                     24/11/2011                  27
Au coeur du CMS eZ Publish
API REST Extensible


                                   Juste un jeton pour déclencher une règle de
  Prefix
                                                    ré-écriture




Provider




                                          ezpRestPrefixFilterInterface




Version

Nicolas Pastorino - PHPTour 2011                     24/11/2011                  27
Prefix filter




ezpRestPrefixFilterInterface
Retourne :

  “Provider” à utiliser

  Version de lʼAPI à utiliser




Nicolas Pastorino - PHPTour 2011   24/11/2011   28
API versionée


class ezpRestRouter extends ezcMvcRouter
{
    public function createRoutes()
    {
        // ezpRestApiProvider
        $routes = array(
            new ezcMvcRailsRoute( '/content/node/:nodeId/listAtom', 'ezpRestAtomController', 'collection' ),
            new ezcMvcRailsRoute( '/content/node/:nodeId/list', 'ezpRestContentController', 'list' ),
            new ezcMvcRailsRoute( '/content/node/:nodeId', 'ezpRestContentController', 'viewContent' ),
            new ezcMvcRailsRoute( '/content/node/:nodeId/fields', 'ezpRestContentController',
                                                                                       'viewFields' ),
            new ezcMvcRailsRoute( '/content/node/:nodeId/field/:fieldIdentifier',
                                                            'ezpRestContentController', 'viewField' ),
            new ezcMvcRailsRoute( '/content/object/:objectId', 'ezpRestContentController', 'viewContent' ),
            new ezcMvcRailsRoute( '/content/object/:objectId/fields', 'ezpRestContentController',
                                                                                       'viewFields' ),
            new ezcMvcRailsRoute( '/content/object/:objectId/field/:fieldIdentifier',
                                                                 'ezpRestContentController', 'viewField' ),

                new ezpRestVersionedRoute( new ezcMvcRailsRoute( '/foo', 'myController', 'myActionOne' ), 1 ),
                new ezpRestVersionedRoute( new ezcMvcRailsRoute( 'e/foo',
                                                        'myController2 or myControlerWhichExtendsmyController',
                                                                            'myBetterAndScalingAction' ), 2 ),
          );
          return ezcMvcRouter::prefix( '/api', $routes );
    }
}   Nicolas Pastorino - PHPTour 2011                     24/11/2011                                         29
API versionée




ezpRestVersionedRoute
                                   Version




 intègre la notion de version
   à la décision de routage
Nicolas Pastorino - PHPTour 2011      24/11/2011   30
Au coeur du CMS eZ Publish
API REST Extensible




  Construisez la vôtre,
étendez le(s) interface(s)

Nicolas Pastorino - PHPTour 2011   24/11/2011   31
Etendre les interfaces




                                   REST providers




Nicolas Pastorino - PHPTour 2011         24/11/2011   32
Etendre les interfaces




ezpRestProviderInterface


Nicolas Pastorino - PHPTour 2011   24/11/2011   33
Vue générale des
 points dʼentrée
Nicolas Pastorino - PHPTour 2011   24/11/2011   35
Configuration des routes - Exemple
class ezpRestRouter extends ezcMvcRouter
{
    public function createRoutes()
    {
        $providerRoutes = ezpRestProvider::getProvider
( ezpRestPrefixFilterInterface::getApiProviderName() )->getRoutes();

           $routes       = array(
               new       ezpMvcRailsRoute(   '/fatal', 'ezpRestErrorController', 'show' ),
               new       ezpMvcRailsRoute(   '/http-basic-auth', 'ezpRestAuthController', 'basicAuth' ),
               new       ezpMvcRailsRoute(   '/login/oauth', 'ezpRestAuthController', 'oauthRequired' ),
               new       ezpMvcRailsRoute(   '/oauth/token', 'ezpRestOauthTokenController', 'handleRequest'),

            // ezpRestVersionedRoute( $route, $version )
            // $version == 1 should be the same as if the only the $route had been present
            new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/foo', 'myController',
'myActionOne' ), 1 ),
            new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/foo', 'myController',
'myActionOneBetter' ), 2 ),

           );

           return ezcMvcRouter::prefix( '/api', array_merge( $providerRoutes, $routes ) );
     }
}

    Nicolas Pastorino - PHPTour 2011                        24/11/2011                                     36
API REST Extensible
Fonctionnalités clés




                       37
Fonctionnalités clés
API REST Extensible




Resources de type Contenu



Nicolas Pastorino - PHPTour 2011   24/11/2011   38
Fonctionnalités clés




GET /[api]/v1/content/object/
 <objectId>/fields HTTP/1.1




Nicolas Pastorino - PHPTour 2011   24/11/2011   39
Fonctionnalités clés


fields/<fieldname>

        type (datatype string)

        identifier (attribute identifier)

        value (string representation of data)

        id (object attribute numerical ID)

        classattribute_id (class attribute numerical ID)




Nicolas Pastorino - PHPTour 2011             24/11/2011    40
Fonctionnalités clés




   GET /[api]/v1/content/object/
         <objectId>/field/
    <FieldIdentifier> HTTP/1.1




Nicolas Pastorino - PHPTour 2011   24/11/2011   41
Recommendation de Contenu
YooChoose, eZ Recommender Engine




                                   42
Une sélection drastique
doit être faite parmi l’infinité
de contenus publiés
Une sélection drastique
doit être faite parmi l’infinité
de contenus publiés
Quelle
pente
choisir ?
Une sélection drastique
doit être faite parmi l’infinité
de contenus publiés
Une sélection drastique
doit être faite parmi l’infinité
de contenus publiés
Je n’ai que
30mins par jour,
que dois-je lire ?
Une sélection drastique
doit être faite parmi l’infinité
de contenus publiés
N’avez vous
pas cette
impression,
parfois :
On a parfois besoin d’un
 guide pour choisir la bonne
pente à skier, le bon contenu
       à consommer
On a parfois besoin d’un
 guide pour choisir la bonne
pente à skier, le bon contenu
       à consommer
On a parfois besoin d’un
 guide pour choisir la bonne
pente à skier, le bon contenu
       à consommer
On a parfois besoin d’un
 guide pour choisir la bonne
pente à skier, le bon contenu
       à consommer
Content
recommendation
Recommandation de Contenu




Nicolas Pastorino - IPCse11   24/11/2011   47
Recommandation de Contenu

Tracker la
consommation
de contenu




Nicolas Pastorino - IPCse11   24/11/2011   47
Recommandation de Contenu

Tracker la
consommation
de contenu

            +


             Apprendre les
             metadonnées




Nicolas Pastorino - IPCse11   24/11/2011   47
Recommandation de Contenu

Tracker la
consommation
de contenu

            +


             Apprendre les
             metadonnées


                              =




                              Content Recommendation

Nicolas Pastorino - IPCse11              24/11/2011    47
Apprentissage des comportements, Cloud-
based, grâce aux :
  • Evènements
   “Visualisation, Achat, Rating, Partage”

  • Modèles
   Utilisateurs qui on vu A ont aussi vu B

  • Stéréotypes
   Affinités calculées sur la base de larges
  ensembles de contenu
Recommandation de Contenu




Nicolas Pastorino - IPCse11   24/11/2011   49
Recommandation de Contenu


                              Filtrage Hybride
Optimiser la qualité de la recommandation en combinant
   les méthodes de qualification des comportements




Nicolas Pastorino - IPCse11           24/11/2011         49
Recommandation de Contenu


                                Filtrage Hybride
Optimiser la qualité de la recommandation en combinant
   les méthodes de qualification des comportements
          Content-based
             filtering
         “Content like this”




                          ~




Nicolas Pastorino - IPCse11             24/11/2011       49
Recommandation de Contenu


                                       Filtrage Hybride
Optimiser la qualité de la recommandation en combinant
   les méthodes de qualification des comportements
          Content-based           Collaborative
             filtering              filtering
         “Content like this”    “Customers who
                                  were interested in
                                  this product also
                                  bought …”




                          ~




Nicolas Pastorino - IPCse11                            24/11/2011   49
Recommandation de Contenu


                                       Filtrage Hybride
Optimiser la qualité de la recommandation en combinant
   les méthodes de qualification des comportements
          Content-based           Collaborative           Community-              Stereotype-             Context-based
             filtering              filtering            based filtering         based filtering             filtering
         “Content like this”    “Customers who        “Customers like you    Recommendation           Recommendation
                                  were interested in     also bought …”          combines content          depends on
                                  this product also                              cluster with affinity     location, time,
                                  bought …”                                      vectors                   mood, environment
                                                                                                           …


                                                                                         Rock


                          ~                                ~                              Pop


                                                                                         R&B




Nicolas Pastorino - IPCse11                                       24/11/2011                                                   49
Recommandation de Contenu


                                          Filtrage Hybride
Optimiser la qualité de la recommandation en combinant
   les méthodes de qualification des comportements
          Content-based              Collaborative           Community-              Stereotype-             Context-based
             filtering                 filtering            based filtering         based filtering             filtering
         “Content like this”       “Customers who        “Customers like you    Recommendation           Recommendation
                                     were interested in     also bought …”          combines content          depends on
                                     this product also                              cluster with affinity     location, time,
                                     bought …”                                      vectors                   mood, environment
                                                                                                              …


                                                                                            Rock


                          ~                                   ~                              Pop


                                                                                            R&B




                                + A/B testing + near cold-start recommendations

Nicolas Pastorino - IPCse11                                          24/11/2011                                                   49
Recommandation de Contenu




Nicolas Pastorino - IPCse11   24/11/2011   50
Recommandation de Contenu

I/O par REST

Connection native par n’importe quel client
HTTP-enabled ( simple avec PHP, extension
native pour le CMS eZ Publish )

Cloud-based : mise à l’échelle facile

Différentes méthodes de tracking
d’évènements : JS, built-in the CMS
 Nicolas Pastorino - IPCse11   24/11/2011     50
Famous Last Slides




                     51
RECAP
RECAP



L’émotion multicanal
RECAP



L’émotion multicanal
       REST
RECAP



L’émotion multicanal
       REST
API REST Extensible
RECAP



L’émotion multicanal
       REST
API REST Extensible
Recommandation de Contenu
Find me on Twitter : @jeanvoye

Notez cette présentation : http://joind.in/4350
Slides disponibles bientôt à http://slideshare.net/jeanvoye

eZ Community
http://share.ez.no

eZ Publish Community Project
https://github.com/ezsystems/ezpublish
http://share.ez.no/download
                                                Merci !
http://share.ez.no/get-involved

YooChoose, recommendation engine
http://www.yoochoose.com

eZ Systems & eZ Publish Enterprise Edition
http://ez.no

Mais conteúdo relacionado

Destaque

Deployment of a multi-site platform
Deployment of a multi-site platformDeployment of a multi-site platform
Deployment of a multi-site platformKaliop-slide
 
Pourquoi la documentation compte ?
Pourquoi la documentation compte ?Pourquoi la documentation compte ?
Pourquoi la documentation compte ?sarahhaim shl
 
Utilisation d’eZ Flow sur le site www.kaliop.fr
Utilisation d’eZ Flow sur le site www.kaliop.frUtilisation d’eZ Flow sur le site www.kaliop.fr
Utilisation d’eZ Flow sur le site www.kaliop.frKaliop-slide
 
Réutilisabilité du code PHP
Réutilisabilité du code PHPRéutilisabilité du code PHP
Réutilisabilité du code PHPNicolas Le Nardou
 
Présentation générale eZ Publish
Présentation générale eZ PublishPrésentation générale eZ Publish
Présentation générale eZ PublishGauthier Garnier
 
5 idées pour transformer votre contenu en business
5 idées pour transformer votre contenu en business5 idées pour transformer votre contenu en business
5 idées pour transformer votre contenu en businesseZ Publish Community
 
Matinale eZ Publish : la personnalisation dynamique
Matinale eZ Publish : la personnalisation dynamiqueMatinale eZ Publish : la personnalisation dynamique
Matinale eZ Publish : la personnalisation dynamiqueSofteam Agency
 
Livre blanc Smile - Le meilleur des CMS open source
Livre blanc Smile - Le meilleur des CMS open sourceLivre blanc Smile - Le meilleur des CMS open source
Livre blanc Smile - Le meilleur des CMS open sourceNicolas Bariteau
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
Connecteur eZ Publish/ Magento
Connecteur eZ Publish/ MagentoConnecteur eZ Publish/ Magento
Connecteur eZ Publish/ MagentoInterakting
 
Réalisation d’une plateforme e-commerce de vente de prestations HTML dotée d...
Réalisation d’une plateforme e-commerce de vente de  prestations HTML dotée d...Réalisation d’une plateforme e-commerce de vente de  prestations HTML dotée d...
Réalisation d’une plateforme e-commerce de vente de prestations HTML dotée d...kadzaki
 
Webinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ Publish
Webinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ PublishWebinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ Publish
Webinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ PublishKaliop-slide
 
Webinar : ezpublish pour vos projets e-tourisme
Webinar : ezpublish pour vos projets e-tourismeWebinar : ezpublish pour vos projets e-tourisme
Webinar : ezpublish pour vos projets e-tourismeKaliop-slide
 
Faire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open SourceFaire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open SourceCore-Techs
 
How to deploy & optimize eZ Publish
How to deploy & optimize eZ PublishHow to deploy & optimize eZ Publish
How to deploy & optimize eZ PublishKaliop-slide
 
Matinale eZ Publish : Conférence sur la personnalisation dynamique
Matinale eZ Publish : Conférence sur la personnalisation dynamiqueMatinale eZ Publish : Conférence sur la personnalisation dynamique
Matinale eZ Publish : Conférence sur la personnalisation dynamiqueSofteam agency
 
Chap1 systéme d'information
Chap1 systéme d'informationChap1 systéme d'information
Chap1 systéme d'informationGhita Benabdellah
 
eZ Publish vs Drupal - technical battle
eZ Publish vs Drupal - technical battleeZ Publish vs Drupal - technical battle
eZ Publish vs Drupal - technical battleKaliop-slide
 

Destaque (19)

Deployment of a multi-site platform
Deployment of a multi-site platformDeployment of a multi-site platform
Deployment of a multi-site platform
 
Pourquoi la documentation compte ?
Pourquoi la documentation compte ?Pourquoi la documentation compte ?
Pourquoi la documentation compte ?
 
Utilisation d’eZ Flow sur le site www.kaliop.fr
Utilisation d’eZ Flow sur le site www.kaliop.frUtilisation d’eZ Flow sur le site www.kaliop.fr
Utilisation d’eZ Flow sur le site www.kaliop.fr
 
Réutilisabilité du code PHP
Réutilisabilité du code PHPRéutilisabilité du code PHP
Réutilisabilité du code PHP
 
Présentation générale eZ Publish
Présentation générale eZ PublishPrésentation générale eZ Publish
Présentation générale eZ Publish
 
5 idées pour transformer votre contenu en business
5 idées pour transformer votre contenu en business5 idées pour transformer votre contenu en business
5 idées pour transformer votre contenu en business
 
Matinale eZ Publish : la personnalisation dynamique
Matinale eZ Publish : la personnalisation dynamiqueMatinale eZ Publish : la personnalisation dynamique
Matinale eZ Publish : la personnalisation dynamique
 
Livre blanc Smile - Le meilleur des CMS open source
Livre blanc Smile - Le meilleur des CMS open sourceLivre blanc Smile - Le meilleur des CMS open source
Livre blanc Smile - Le meilleur des CMS open source
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Connecteur eZ Publish/ Magento
Connecteur eZ Publish/ MagentoConnecteur eZ Publish/ Magento
Connecteur eZ Publish/ Magento
 
Réalisation d’une plateforme e-commerce de vente de prestations HTML dotée d...
Réalisation d’une plateforme e-commerce de vente de  prestations HTML dotée d...Réalisation d’une plateforme e-commerce de vente de  prestations HTML dotée d...
Réalisation d’une plateforme e-commerce de vente de prestations HTML dotée d...
 
Webinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ Publish
Webinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ PublishWebinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ Publish
Webinar e-tourisme : Créer une expérience utilisateur riche grâce à eZ Publish
 
Webinar : ezpublish pour vos projets e-tourisme
Webinar : ezpublish pour vos projets e-tourismeWebinar : ezpublish pour vos projets e-tourisme
Webinar : ezpublish pour vos projets e-tourisme
 
Ezpublish
EzpublishEzpublish
Ezpublish
 
Faire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open SourceFaire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open Source
 
How to deploy & optimize eZ Publish
How to deploy & optimize eZ PublishHow to deploy & optimize eZ Publish
How to deploy & optimize eZ Publish
 
Matinale eZ Publish : Conférence sur la personnalisation dynamique
Matinale eZ Publish : Conférence sur la personnalisation dynamiqueMatinale eZ Publish : Conférence sur la personnalisation dynamique
Matinale eZ Publish : Conférence sur la personnalisation dynamique
 
Chap1 systéme d'information
Chap1 systéme d'informationChap1 systéme d'information
Chap1 systéme d'information
 
eZ Publish vs Drupal - technical battle
eZ Publish vs Drupal - technical battleeZ Publish vs Drupal - technical battle
eZ Publish vs Drupal - technical battle
 

Semelhante a Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST & eZ Publish

Le SEO pour mobile 
Le SEO pour mobile Le SEO pour mobile 
Le SEO pour mobile Peak Ace
 
Webinar offre entreprise
Webinar offre entrepriseWebinar offre entreprise
Webinar offre entrepriseMichael Harlaut
 
Rendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesRendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesConFoo
 
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressL'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressYannick Pavard
 
Lte service enablers
Lte service enablersLte service enablers
Lte service enablersAtlantic 2.0
 
What's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. CogoluegnesWhat's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. CogoluegnesZenika
 
Asp.Net Web.API, SignalR et UX : le futur
Asp.Net Web.API, SignalR et UX : le futurAsp.Net Web.API, SignalR et UX : le futur
Asp.Net Web.API, SignalR et UX : le futurMicrosoft
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
D6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierD6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierSPS Paris
 
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017Olivier Carpentier
 
From Idea to the Cloud, a JHipster Story
From Idea to the Cloud, a JHipster StoryFrom Idea to the Cloud, a JHipster Story
From Idea to the Cloud, a JHipster StorySteve Houël
 
Présentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël LaunayPrésentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël LaunayTechnocite
 
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...Nuxeo
 
Phantom Le CMS Userfriendly
Phantom Le CMS UserfriendlyPhantom Le CMS Userfriendly
Phantom Le CMS Userfriendlyarnaudweber
 
Lutece, CMS star du J2EE
Lutece, CMS star du J2EELutece, CMS star du J2EE
Lutece, CMS star du J2EELINAGORA
 
Open Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projetOpen Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projetChristian Charreyre
 

Semelhante a Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST & eZ Publish (20)

Le SEO pour mobile 
Le SEO pour mobile Le SEO pour mobile 
Le SEO pour mobile 
 
Webinar offre entreprise
Webinar offre entrepriseWebinar offre entreprise
Webinar offre entreprise
 
Rendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesRendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapes
 
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressL'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
 
Lte service enablers
Lte service enablersLte service enablers
Lte service enablers
 
BPCE & Ezpublish
BPCE & EzpublishBPCE & Ezpublish
BPCE & Ezpublish
 
What's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. CogoluegnesWhat's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. Cogoluegnes
 
Asp.Net Web.API, SignalR et UX : le futur
Asp.Net Web.API, SignalR et UX : le futurAsp.Net Web.API, SignalR et UX : le futur
Asp.Net Web.API, SignalR et UX : le futur
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
D6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierD6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier Carpentier
 
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
 
Presentation symfony
Presentation symfonyPresentation symfony
Presentation symfony
 
From Idea to the Cloud, a JHipster Story
From Idea to the Cloud, a JHipster StoryFrom Idea to the Cloud, a JHipster Story
From Idea to the Cloud, a JHipster Story
 
Cv dridi-lotfi
Cv dridi-lotfiCv dridi-lotfi
Cv dridi-lotfi
 
Présentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël LaunayPrésentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël Launay
 
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
 
Phantom Le CMS Userfriendly
Phantom Le CMS UserfriendlyPhantom Le CMS Userfriendly
Phantom Le CMS Userfriendly
 
Web 2.0 : Blogs, RSS & Wikis
Web 2.0 : Blogs, RSS & WikisWeb 2.0 : Blogs, RSS & Wikis
Web 2.0 : Blogs, RSS & Wikis
 
Lutece, CMS star du J2EE
Lutece, CMS star du J2EELutece, CMS star du J2EE
Lutece, CMS star du J2EE
 
Open Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projetOpen Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projet
 

Mais de Nicolas Pastorino

A REST Layer on Top of the World - IPC13 Munich
A REST Layer on Top of the World - IPC13 MunichA REST Layer on Top of the World - IPC13 Munich
A REST Layer on Top of the World - IPC13 MunichNicolas Pastorino
 
2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon Conference
2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon Conference2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon Conference
2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon ConferenceNicolas Pastorino
 
Symfony and eZ Publish: boarding now!
Symfony and eZ Publish: boarding now!Symfony and eZ Publish: boarding now!
Symfony and eZ Publish: boarding now!Nicolas Pastorino
 
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live ParisSymfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live ParisNicolas Pastorino
 
What's up for 2012 and 'Commun-engineering'
What's up for 2012 and 'Commun-engineering'What's up for 2012 and 'Commun-engineering'
What's up for 2012 and 'Commun-engineering'Nicolas Pastorino
 
Nicolas Pastorino - The Open-source roar in the eZ Community
Nicolas Pastorino - The Open-source roar in the eZ CommunityNicolas Pastorino - The Open-source roar in the eZ Community
Nicolas Pastorino - The Open-source roar in the eZ CommunityNicolas Pastorino
 
Nicolas Pastorino - REST + recommendation, consume the right content, anywher...
Nicolas Pastorino - REST + recommendation, consume the right content, anywher...Nicolas Pastorino - REST + recommendation, consume the right content, anywher...
Nicolas Pastorino - REST + recommendation, consume the right content, anywher...Nicolas Pastorino
 
Nicolas Pastorino - eZ Community - Innovation and Open-source inside
Nicolas Pastorino - eZ Community - Innovation and Open-source insideNicolas Pastorino - eZ Community - Innovation and Open-source inside
Nicolas Pastorino - eZ Community - Innovation and Open-source insideNicolas Pastorino
 
IPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ Publish
IPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ PublishIPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ Publish
IPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ PublishNicolas Pastorino
 
Nicolas Pastorino - Launching Content in mobility with REST and eZ Publish
Nicolas Pastorino - Launching Content in mobility with REST and eZ PublishNicolas Pastorino - Launching Content in mobility with REST and eZ Publish
Nicolas Pastorino - Launching Content in mobility with REST and eZ PublishNicolas Pastorino
 
Nicolas Pastorino - Launching content in mobility with REST & eZ Publish
Nicolas Pastorino - Launching content in mobility with REST & eZ PublishNicolas Pastorino - Launching content in mobility with REST & eZ Publish
Nicolas Pastorino - Launching content in mobility with REST & eZ PublishNicolas Pastorino
 

Mais de Nicolas Pastorino (11)

A REST Layer on Top of the World - IPC13 Munich
A REST Layer on Top of the World - IPC13 MunichA REST Layer on Top of the World - IPC13 Munich
A REST Layer on Top of the World - IPC13 Munich
 
2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon Conference
2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon Conference2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon Conference
2013.04.12 Symfony et eZ Publish, embarquement immédiat - AFUP Lyon Conference
 
Symfony and eZ Publish: boarding now!
Symfony and eZ Publish: boarding now!Symfony and eZ Publish: boarding now!
Symfony and eZ Publish: boarding now!
 
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live ParisSymfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
 
What's up for 2012 and 'Commun-engineering'
What's up for 2012 and 'Commun-engineering'What's up for 2012 and 'Commun-engineering'
What's up for 2012 and 'Commun-engineering'
 
Nicolas Pastorino - The Open-source roar in the eZ Community
Nicolas Pastorino - The Open-source roar in the eZ CommunityNicolas Pastorino - The Open-source roar in the eZ Community
Nicolas Pastorino - The Open-source roar in the eZ Community
 
Nicolas Pastorino - REST + recommendation, consume the right content, anywher...
Nicolas Pastorino - REST + recommendation, consume the right content, anywher...Nicolas Pastorino - REST + recommendation, consume the right content, anywher...
Nicolas Pastorino - REST + recommendation, consume the right content, anywher...
 
Nicolas Pastorino - eZ Community - Innovation and Open-source inside
Nicolas Pastorino - eZ Community - Innovation and Open-source insideNicolas Pastorino - eZ Community - Innovation and Open-source inside
Nicolas Pastorino - eZ Community - Innovation and Open-source inside
 
IPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ Publish
IPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ PublishIPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ Publish
IPCse11 Nicolas Pastorino Launching content in mobility with REST and eZ Publish
 
Nicolas Pastorino - Launching Content in mobility with REST and eZ Publish
Nicolas Pastorino - Launching Content in mobility with REST and eZ PublishNicolas Pastorino - Launching Content in mobility with REST and eZ Publish
Nicolas Pastorino - Launching Content in mobility with REST and eZ Publish
 
Nicolas Pastorino - Launching content in mobility with REST & eZ Publish
Nicolas Pastorino - Launching content in mobility with REST & eZ PublishNicolas Pastorino - Launching content in mobility with REST & eZ Publish
Nicolas Pastorino - Launching content in mobility with REST & eZ Publish
 

Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST & eZ Publish

  • 1. Distribution de contenu scalable Le multicanal, avec REST + eZ Publish
  • 2. Distribution de contenu scalable Le multicanal, avec REST + eZ Publish Nicolas Pastorino - nfrp@ez.no Director Community - eZ Systems @jeanvoye - http://share.ez.no
  • 3. Distribution de contenu scalable Le multicanal, avec PHP Tour 2011 - Lille - 24 Novembre REST + eZ Publish Nicolas Pastorino - nfrp@ez.no Director Community - eZ Systems #phptour @jeanvoye - http://share.ez.no
  • 6. Notre agenda : L’émotion multicanal REST
  • 7. Notre agenda : L’émotion multicanal REST API REST Extensible
  • 8. Notre agenda : L’émotion multicanal REST API REST Extensible Recommandation de Contenu
  • 10.
  • 11. Le contenu en ligne nous touche,
  • 12. Le contenu en ligne nous touche, il déclenche des émotions partout, sur tout terminal
  • 13. Le contenu en ligne nous touche, il déclenche des émotions partout, sur tout terminal
  • 14. Le contenu en ligne nous touche, il déclenche des émotions partout, sur tout terminal
  • 15. Le contenu en ligne nous touche, il déclenche des émotions partout, sur tout terminal
  • 16.
  • 21.
  • 23.
  • 24. Pre-requis à la distribution multicanal Nicolas Pastorino - IPCse11 24/11/2011 8
  • 25. Pre-requis à la distribution multicanal Séparation contenu / présentation à la 1 source de contenu Nicolas Pastorino - IPCse11 24/11/2011 8
  • 26. Pre-requis à la distribution multicanal Séparation contenu / présentation à la 1 source de contenu Nicolas Pastorino - IPCse11 24/11/2011 8
  • 27. Pre-requis à la distribution multicanal Séparation contenu / présentation à la 1 source de contenu Ne pas transiger sur l’expérience 2 utilisateur Nicolas Pastorino - IPCse11 24/11/2011 8
  • 28. Pre-requis à la distribution multicanal Séparation contenu / présentation à la 1 source de contenu Ne pas transiger sur l’expérience 2 “The Superman Effect” Aral Balkan, DPC11 utilisateur Nicolas Pastorino - IPCse11 24/11/2011 8
  • 29. Pre-requis à la distribution multicanal Séparation contenu / présentation à la 1 source de contenu Ne pas transiger sur l’expérience 2 “The Superman Effect” Aral Balkan, DPC11 utilisateur Avoir une seule source de contenu 3 Nicolas Pastorino - IPCse11 24/11/2011 8
  • 30. Pre-requis à la distribution multicanal Séparation contenu / présentation à la 1 source de contenu Ne pas transiger sur l’expérience 2 “The Superman Effect” Aral Balkan, DPC11 utilisateur Avoir une seule source “Les annonceurs de contenu n’ont pas les de contenu 3 moyens d’avoir une équipe éditoriale par canal de publication” Nicolas Pastorino - IPCse11 24/11/2011 8
  • 31.
  • 33. Ces 3 règles simples suffisent Nous elles ? venons à peine de quitter le sol. Continuons ...
  • 34. Source / Unique de Contenu CMS
  • 35. Source / Unique de Contenu CMS
  • 36. Flux de contenu monétisés Source / Unique de Contenu CMS
  • 37. Flux de contenu monétisés Applications Mobiles Source / Smartphones, Tablets Unique de Contenu CMS
  • 38. Flux de contenu monétisés Applications Mobiles Source / Smartphones, Tablets Unique de Contenu CMS Contenu Push Newsletters 3rd party : CRM, ERP
  • 39. Flux de contenu monétisés Applications Mobiles Source / Smartphones, Tablets Unique de Contenu CMS Contenu Push Newsletters 3rd party : CRM, ERP Print Publication traditionnelle
  • 40. Flux de contenu monétisés Applications Mobiles Source / Smartphones, Tablets Unique de Contenu CMS Contenu Push Newsletters 3rd party : CRM, ERP Print Publication traditionnelle Social Media
  • 41.
  • 42. "Les consommateurs de media sur plusieurs canaux ont un degré d’engagement plus élevé que ceux présents sur un seul canal. Plus ils regardent la TV, écoutent la radio, passent du temps en ligne, etc.., plus ils consomment de la publicité. La distribution de contenu multicanal aura également un impact important sur la structure de revenus des announceurs de contenu. Cette technologie devient hautement différenciante entre ces derniers.
  • 43.
  • 45. Having a REST ? :) Nous n’y sommes pas encore...
  • 46.
  • 47. “Les media ainsi que les grandes marques se doivent de reconnaître qu’ajouter le canal mobile au “mix multicanal” ne signifie pas créer un canal annexe. Les architectes de stratégies mobiles attestent que: • Le mobile n’est pas l’expérience desktop minifiée, • L’environnement de l’utilisateur est un élément de l’expérience mobile, • Les utilisateurs mobile ne sont pas simplement un sous-ensemble des visiteurs - certains sont nouveaux.”
  • 48.
  • 49. Plus Petit Dénominateur Commun :
  • 50. Plus Petit Dénominateur Commun : API REST
  • 51.
  • 52. Nous venons de couvrir les bases fonctionnelles pour augmenter votre REACH au travers de multiples canaux.
  • 53. Nous venons de couvrir les bases fonctionnelles pour augmenter votre REACH Maintenant au travers de les multiples détails canaux. techniques
  • 54. REST 16
  • 56. REpresentational State Transfer REST est un ensemble de principes qui définit comment les standards Web tels que HTTP et les URIs devraient être utilisés • Donner un ID à toute “chose” • Lier les “choses” ensemble (“HATEOAS”) • Utiliser les méthodes standards • Adopter des représentations multiples pour les ressources • Communiquer “sans état” ( statelessly )
  • 57. REpresentational State Transfer REST est un ensemble de principes qui définit comment les standards Web tels que HTTP et les URIs devraient être utilisés • Donner un ID à toute “chose” • Lier les “choses” ensemble (“HATEOAS”) • Utiliser les méthodes standards • Adopter des représentations multiples pour les ressources • Communiquer “sans état” ( statelessly ) h"p://www.infoq.com/ar4cles/rest-­‐introduc4on h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
  • 58. REpresentational State Transfer h"p://www.infoq.com/ar4cles/rest-­‐introduc4on h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
  • 59. REpresentational State Transfer Les objectifs de REST incluent : • Scalabilité des interactions entre composants • Interfaces Génériques • Déployement indépendant des composants • Composants intermédiaires pour réduire la latence, renforcer la sécurité, encapsuler les systèmes “legacy” h"p://www.infoq.com/ar4cles/rest-­‐introduc4on h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
  • 60. API REST Extensible au coeur du CMS eZ Publish 19
  • 61. Au coeur du CMS eZ Publish API REST Extensible REST comme fonctionnalité coeur Nicolas Pastorino - IPCse11 24/11/2011 20
  • 62. Au coeur du CMS eZ Publish API REST Extensible Contrôleur frontal dédié Nicolas Pastorino - IPCse11 24/11/2011 21
  • 63. At the core of the eZ Publish CMS Extensible REST API REST setup REST eZP REST  request FC eZ  Publish web-­‐request Nicolas Pastorino - PHPTour 2011 24/11/2011 22
  • 64. At the core of the eZ Publish CMS Extensible REST API REST setup REST eZP REST  request FC eZ  Publish web-­‐request Nicolas Pastorino - PHPTour 2011 24/11/2011 22
  • 65. Au coeur du CMS eZ Publish API REST Extensible Mapping contenu <--> ressource Nicolas Pastorino - PHPTour 2011 24/11/2011 23
  • 66. Au coeur du CMS eZ Publish API REST Extensible Makes data available Nicolas Pastorino - PHPTour 2011 24/11/2011 24
  • 67. Au coeur du CMS eZ Publish API REST Extensible Makes data reusable Nicolas Pastorino - PHPTour 2011 24/11/2011 24
  • 68. Au coeur du CMS eZ Publish API REST Extensible Le contenu est “libéré” Nicolas Pastorino - PHPTour 2011 24/11/2011 25
  • 69. Au coeur du CMS eZ Publish API REST Extensible Motif dʼURI Nicolas Pastorino - PHPTour 2011 24/11/2011 26
  • 70. Au coeur du CMS eZ Publish API REST Extensible Juste un jeton pour déclencher une règle de ré-écriture Call + GET Host / Prefix / Provider / Version / params ezpRestPrefixFilterInterface Nicolas Pastorino - PHPTour 2011 24/11/2011 27
  • 71. Au coeur du CMS eZ Publish API REST Extensible Juste un jeton pour déclencher une règle de Prefix ré-écriture Provider ezpRestPrefixFilterInterface Version Nicolas Pastorino - PHPTour 2011 24/11/2011 27
  • 72. Au coeur du CMS eZ Publish API REST Extensible Juste un jeton pour déclencher une règle de Prefix ré-écriture Provider ezpRestPrefixFilterInterface Version Nicolas Pastorino - PHPTour 2011 24/11/2011 27
  • 73. Au coeur du CMS eZ Publish API REST Extensible Juste un jeton pour déclencher une règle de Prefix ré-écriture Provider ezpRestPrefixFilterInterface Version Nicolas Pastorino - PHPTour 2011 24/11/2011 27
  • 74. Prefix filter ezpRestPrefixFilterInterface Retourne : “Provider” à utiliser Version de lʼAPI à utiliser Nicolas Pastorino - PHPTour 2011 24/11/2011 28
  • 75. API versionée class ezpRestRouter extends ezcMvcRouter { public function createRoutes() { // ezpRestApiProvider $routes = array( new ezcMvcRailsRoute( '/content/node/:nodeId/listAtom', 'ezpRestAtomController', 'collection' ), new ezcMvcRailsRoute( '/content/node/:nodeId/list', 'ezpRestContentController', 'list' ), new ezcMvcRailsRoute( '/content/node/:nodeId', 'ezpRestContentController', 'viewContent' ), new ezcMvcRailsRoute( '/content/node/:nodeId/fields', 'ezpRestContentController', 'viewFields' ), new ezcMvcRailsRoute( '/content/node/:nodeId/field/:fieldIdentifier', 'ezpRestContentController', 'viewField' ), new ezcMvcRailsRoute( '/content/object/:objectId', 'ezpRestContentController', 'viewContent' ), new ezcMvcRailsRoute( '/content/object/:objectId/fields', 'ezpRestContentController', 'viewFields' ), new ezcMvcRailsRoute( '/content/object/:objectId/field/:fieldIdentifier', 'ezpRestContentController', 'viewField' ), new ezpRestVersionedRoute( new ezcMvcRailsRoute( '/foo', 'myController', 'myActionOne' ), 1 ), new ezpRestVersionedRoute( new ezcMvcRailsRoute( 'e/foo', 'myController2 or myControlerWhichExtendsmyController', 'myBetterAndScalingAction' ), 2 ), ); return ezcMvcRouter::prefix( '/api', $routes ); } } Nicolas Pastorino - PHPTour 2011 24/11/2011 29
  • 76. API versionée ezpRestVersionedRoute Version intègre la notion de version à la décision de routage Nicolas Pastorino - PHPTour 2011 24/11/2011 30
  • 77. Au coeur du CMS eZ Publish API REST Extensible Construisez la vôtre, étendez le(s) interface(s) Nicolas Pastorino - PHPTour 2011 24/11/2011 31
  • 78. Etendre les interfaces REST providers Nicolas Pastorino - PHPTour 2011 24/11/2011 32
  • 79. Etendre les interfaces ezpRestProviderInterface Nicolas Pastorino - PHPTour 2011 24/11/2011 33
  • 80. Vue générale des points dʼentrée
  • 81. Nicolas Pastorino - PHPTour 2011 24/11/2011 35
  • 82. Configuration des routes - Exemple class ezpRestRouter extends ezcMvcRouter { public function createRoutes() { $providerRoutes = ezpRestProvider::getProvider ( ezpRestPrefixFilterInterface::getApiProviderName() )->getRoutes(); $routes = array( new ezpMvcRailsRoute( '/fatal', 'ezpRestErrorController', 'show' ), new ezpMvcRailsRoute( '/http-basic-auth', 'ezpRestAuthController', 'basicAuth' ), new ezpMvcRailsRoute( '/login/oauth', 'ezpRestAuthController', 'oauthRequired' ), new ezpMvcRailsRoute( '/oauth/token', 'ezpRestOauthTokenController', 'handleRequest'), // ezpRestVersionedRoute( $route, $version ) // $version == 1 should be the same as if the only the $route had been present new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/foo', 'myController', 'myActionOne' ), 1 ), new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/foo', 'myController', 'myActionOneBetter' ), 2 ), ); return ezcMvcRouter::prefix( '/api', array_merge( $providerRoutes, $routes ) ); } } Nicolas Pastorino - PHPTour 2011 24/11/2011 36
  • 84. Fonctionnalités clés API REST Extensible Resources de type Contenu Nicolas Pastorino - PHPTour 2011 24/11/2011 38
  • 85. Fonctionnalités clés GET /[api]/v1/content/object/ <objectId>/fields HTTP/1.1 Nicolas Pastorino - PHPTour 2011 24/11/2011 39
  • 86. Fonctionnalités clés fields/<fieldname> type (datatype string) identifier (attribute identifier) value (string representation of data) id (object attribute numerical ID) classattribute_id (class attribute numerical ID) Nicolas Pastorino - PHPTour 2011 24/11/2011 40
  • 87. Fonctionnalités clés GET /[api]/v1/content/object/ <objectId>/field/ <FieldIdentifier> HTTP/1.1 Nicolas Pastorino - PHPTour 2011 24/11/2011 41
  • 88. Recommendation de Contenu YooChoose, eZ Recommender Engine 42
  • 89.
  • 90. Une sélection drastique doit être faite parmi l’infinité de contenus publiés
  • 91. Une sélection drastique doit être faite parmi l’infinité de contenus publiés Quelle pente choisir ?
  • 92. Une sélection drastique doit être faite parmi l’infinité de contenus publiés
  • 93. Une sélection drastique doit être faite parmi l’infinité de contenus publiés Je n’ai que 30mins par jour, que dois-je lire ?
  • 94. Une sélection drastique doit être faite parmi l’infinité de contenus publiés N’avez vous pas cette impression, parfois :
  • 95.
  • 96. On a parfois besoin d’un guide pour choisir la bonne pente à skier, le bon contenu à consommer
  • 97. On a parfois besoin d’un guide pour choisir la bonne pente à skier, le bon contenu à consommer
  • 98. On a parfois besoin d’un guide pour choisir la bonne pente à skier, le bon contenu à consommer
  • 99. On a parfois besoin d’un guide pour choisir la bonne pente à skier, le bon contenu à consommer Content recommendation
  • 100. Recommandation de Contenu Nicolas Pastorino - IPCse11 24/11/2011 47
  • 101. Recommandation de Contenu Tracker la consommation de contenu Nicolas Pastorino - IPCse11 24/11/2011 47
  • 102. Recommandation de Contenu Tracker la consommation de contenu + Apprendre les metadonnées Nicolas Pastorino - IPCse11 24/11/2011 47
  • 103. Recommandation de Contenu Tracker la consommation de contenu + Apprendre les metadonnées = Content Recommendation Nicolas Pastorino - IPCse11 24/11/2011 47
  • 104.
  • 105. Apprentissage des comportements, Cloud- based, grâce aux : • Evènements “Visualisation, Achat, Rating, Partage” • Modèles Utilisateurs qui on vu A ont aussi vu B • Stéréotypes Affinités calculées sur la base de larges ensembles de contenu
  • 106. Recommandation de Contenu Nicolas Pastorino - IPCse11 24/11/2011 49
  • 107. Recommandation de Contenu Filtrage Hybride Optimiser la qualité de la recommandation en combinant les méthodes de qualification des comportements Nicolas Pastorino - IPCse11 24/11/2011 49
  • 108. Recommandation de Contenu Filtrage Hybride Optimiser la qualité de la recommandation en combinant les méthodes de qualification des comportements Content-based filtering  “Content like this” ~ Nicolas Pastorino - IPCse11 24/11/2011 49
  • 109. Recommandation de Contenu Filtrage Hybride Optimiser la qualité de la recommandation en combinant les méthodes de qualification des comportements Content-based Collaborative filtering filtering  “Content like this”  “Customers who were interested in this product also bought …” ~ Nicolas Pastorino - IPCse11 24/11/2011 49
  • 110. Recommandation de Contenu Filtrage Hybride Optimiser la qualité de la recommandation en combinant les méthodes de qualification des comportements Content-based Collaborative Community- Stereotype- Context-based filtering filtering based filtering based filtering filtering  “Content like this”  “Customers who  “Customers like you  Recommendation  Recommendation were interested in also bought …” combines content depends on this product also cluster with affinity location, time, bought …” vectors mood, environment … Rock ~ ~ Pop R&B Nicolas Pastorino - IPCse11 24/11/2011 49
  • 111. Recommandation de Contenu Filtrage Hybride Optimiser la qualité de la recommandation en combinant les méthodes de qualification des comportements Content-based Collaborative Community- Stereotype- Context-based filtering filtering based filtering based filtering filtering  “Content like this”  “Customers who  “Customers like you  Recommendation  Recommendation were interested in also bought …” combines content depends on this product also cluster with affinity location, time, bought …” vectors mood, environment … Rock ~ ~ Pop R&B + A/B testing + near cold-start recommendations Nicolas Pastorino - IPCse11 24/11/2011 49
  • 112. Recommandation de Contenu Nicolas Pastorino - IPCse11 24/11/2011 50
  • 113. Recommandation de Contenu I/O par REST Connection native par n’importe quel client HTTP-enabled ( simple avec PHP, extension native pour le CMS eZ Publish ) Cloud-based : mise à l’échelle facile Différentes méthodes de tracking d’évènements : JS, built-in the CMS Nicolas Pastorino - IPCse11 24/11/2011 50
  • 115. RECAP
  • 118. RECAP L’émotion multicanal REST API REST Extensible
  • 119. RECAP L’émotion multicanal REST API REST Extensible Recommandation de Contenu
  • 120. Find me on Twitter : @jeanvoye Notez cette présentation : http://joind.in/4350 Slides disponibles bientôt à http://slideshare.net/jeanvoye eZ Community http://share.ez.no eZ Publish Community Project https://github.com/ezsystems/ezpublish http://share.ez.no/download Merci ! http://share.ez.no/get-involved YooChoose, recommendation engine http://www.yoochoose.com eZ Systems & eZ Publish Enterprise Edition http://ez.no