SlideShare uma empresa Scribd logo
1 de 122
Baixar para ler offline
REST +
Recommendation:
   consume the
   right content,
   anywhere
REST +
Recommendation:
   consume the
   right content,
   anywhere
         Nicolas Pastorino - nfrp@ez.no
         Director Community - eZ Systems
         @jeanvoye - http://share.ez.no
REST +
         Recommendation:
            consume the
            right content,
            anywhere
             International PHP Conference 2011 - Mainz - October 10th




                                Nicolas Pastorino - nfrp@ez.no
#ipc11                          Director Community - eZ Systems
                                @jeanvoye - http://share.ez.no
Our agenda :
Our agenda :




Multichannel emotion
Our agenda :




Multichannel emotion
               REST
Our agenda :




Multichannel emotion
               REST
Extensible REST API
Our agenda :




Multichannel emotion
               REST
Extensible REST API
Content recommendation
Multichannel : emotion



                     3
Online content touches
you,
Online content touches
you, it spurs emotions
anywhere, on any
device
Online content touches
you, it spurs emotions
anywhere, on any
device
Online content touches
you, it spurs emotions
anywhere, on any
device
Online content touches
you, it spurs emotions
anywhere, on any
device
You are consuming
content, all the time
You are consuming
content, all the time
You are consuming
content, all the time
You are consuming
content, all the time
Multichannel
content
distribution is
“emotions
anywhere”
Pre-requisites to multichannel distribution




Nicolas Pastorino - IPCse11   30/05/2011      8
Pre-requisites to multichannel distribution

Separation of layout
and content at the   1
content source level




 Nicolas Pastorino - IPCse11   30/05/2011      8
Pre-requisites to multichannel distribution

Separation of layout
and content at the   1
content source level




 Nicolas Pastorino - IPCse11   30/05/2011      8
Pre-requisites to multichannel distribution

Separation of layout
and content at the   1
content source level




Do not compromise on
user experience    2




 Nicolas Pastorino - IPCse11   30/05/2011      8
Pre-requisites to multichannel distribution

Separation of layout
and content at the   1
content source level



                               “The Superman Effect”   Aral Balkan, DPC11
Do not compromise on
user experience    2




 Nicolas Pastorino - IPCse11       30/05/2011                               8
Pre-requisites to multichannel distribution

Separation of layout
and content at the   1
content source level



                               “The Superman Effect”     Aral Balkan, DPC11
Do not compromise on
user experience    2
                               “There is a lot of effort going into improving
                               customer experience. It is key to get
                               consistency across different channels so their
                               experience does not vary”              Jim Daviesni




 Nicolas Pastorino - IPCse11        30/05/2011                                       8
Pre-requisites to multichannel distribution

Separation of layout
and content at the   1
content source level



                               “The Superman Effect”     Aral Balkan, DPC11
Do not compromise on
user experience    2
                               “There is a lot of effort going into improving
                               customer experience. It is key to get
                               consistency across different channels so their
Have a single source           experience does not vary”              Jim Daviesni
of content           3




 Nicolas Pastorino - IPCse11        30/05/2011                                       8
Pre-requisites to multichannel distribution

Separation of layout
and content at the   1
content source level



                               “The Superman Effect”     Aral Balkan, DPC11
Do not compromise on
user experience    2
                               “There is a lot of effort going into improving
                               customer experience. It is key to get
                               consistency across different channels so their
Have a single source           experience does not vary”              Jim Daviesni
of content           3
                               “Publishers usually can't afford a dedicated
                               editorial team per channel”

 Nicolas Pastorino - IPCse11        30/05/2011                                       8
Are 3
rules of
 thumb
enough
      ?
Are 3
rules of
 thumb
enough
           We’re
      ?    hardly
           off the
           ground.

           Let’s dig
           further...
Single
Content
Source    /   CMS
Single
Content
Source    /   CMS
Monetized
                    Content
                    Streams



Single
Content
Source    /   CMS
Monetized
                    Content
                    Streams
                    Mobile
                    Applications
Single

          /
                    Smartphones, Tablets

Content
Source
              CMS
Monetized
                    Content
                    Streams
                    Mobile
                    Applications
Single

          /
                    Smartphones, Tablets

Content
Source
              CMS   Push 3rd party
                         CRM, ERP
                    Content
                    Newsletters
Monetized
                    Content
                    Streams
                    Mobile
                    Applications
Single

          /
                    Smartphones, Tablets

Content
Source
              CMS   Push 3rd party
                         CRM, ERP
                    Content
                    Newsletters


                    Print
                    Legacy publication chains
Monetized
                    Content
                    Streams
                    Mobile
                    Applications
Single

          /
                    Smartphones, Tablets

Content
Source
              CMS   Push 3rd party
                         CRM, ERP
                    Content
                    Newsletters


                    Print
                    Legacy publication chains


                    Social Media
"Multichannel media consumers have higher levels
of engagement than those present in only one
channel.

The more one watches TV, listens to the radio,
spends time online, etc., the more advertising they
consume.

This shows that multichannel content
distribution will also have an important impact
on the publishers revenue structure. It will
evolve to become a competitive, critical, enabling
technology for marketing communications."
Having a
 REST ?
   :)
Having a
 REST ?
   :)

              We are
            not there
             yet, let’s
           dig further
“Media companies as well as consumer brands must
recognize that adding mobile to the multichannel mix
does not mean creating a mini-channel. Those
building mobile strategies should recognize that:

  • Mobile is not just about shrinking the
  desktop experience,

  • The user environment is an element of the
  (mobile) experience,

  • Mobile users are not simply a subset of
  online users – some are new.”
Least
  Common
Denominator :
Least
  Common
Denominator :
a REST API
Those were
         the
  functional
   basics to
   increase
        your
    REACH
    through
    multiple
   channels
Those were
         the
  functional
   basics to
   increase
        your
    REACH      Now
    through    come
               the
    multiple   technical
   channels    bits
REST


       16
REpresentational
State
Transfer
REpresentational
State
Transfer
REST is a set of principles that define how Web standards, such as
HTTP and URIs, are supposed to be used.

•   Give every “thing” an ID
•   Link things together (“HATEOAS”) (cf David Zuelke’s keynote)
•   Use standard methods
•   Resources with multiple representations
•   Communicate statelessly
REpresentational
State
Transfer
REST is a set of principles that define how Web standards, such as
HTTP and URIs, are supposed to be used.

•   Give every “thing” an ID
•   Link things together (“HATEOAS”) (cf David Zuelke’s keynote)
•   Use standard methods
•   Resources with multiple representations
•   Communicate 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
Key goals of REST include:

• Scalability of component interactions
• Generality of interfaces
• Independent deployment of components
• Intermediary components to reduce latency, enforce security and
encapsulate legacy systems


                                 h"p://www.infoq.com/ar4cles/rest-­‐introduc4on
                                 h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
Extensible REST API
at the core of the eZ Publish CMS




                                    19
At the core of the eZ Publish CMS
Extensible REST API




    REST                      as a core feature


Nicolas Pastorino - IPCse11        30/05/2011     20
At the core of the eZ Publish CMS
Extensible REST API




Dedicated front-controller


Nicolas Pastorino - IPCse11   30/05/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 - IPCse11                        30/05/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 - IPCse11                        30/05/2011                    22
At the core of the eZ Publish CMS
Extensible REST API




                     Mapping content into
                         resources


Nicolas Pastorino - IPCse11   30/05/2011    23
At the core of the eZ Publish CMS
Extensible REST API




                      Makes data available



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




                       Makes data reusable



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




                    Content is essentially
                         liberated


Nicolas Pastorino - IPCse11   30/05/2011     25
At the core of the eZ Publish CMS
Extensible REST API




                              URI pattern


Nicolas Pastorino - IPCse11        30/05/2011   26
At the core of the eZ Publish CMS
Extensible REST API


                                         Just a token to trigger your rewrite rule




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



                                              ezpRestPrefixFilterInterface




Nicolas Pastorino - IPCse11                                30/05/2011                                27
At the core of the eZ Publish CMS
Extensible REST API


  Prefix                       Just a token to trigger your rewrite rule




Provider




                                   ezpRestPrefixFilterInterface




Version

Nicolas Pastorino - IPCse11                    30/05/2011                 27
At the core of the eZ Publish CMS
Extensible REST API


  Prefix                       Just a token to trigger your rewrite rule




Provider




                                   ezpRestPrefixFilterInterface




Version

Nicolas Pastorino - IPCse11                    30/05/2011                 27
At the core of the eZ Publish CMS
Extensible REST API


  Prefix                       Just a token to trigger your rewrite rule




Provider




                                   ezpRestPrefixFilterInterface




Version

Nicolas Pastorino - IPCse11                    30/05/2011                 27
Prefix filter




ezpRestPrefixFilterInterface
Current provider

Current parsed version value




Nicolas Pastorino - IPCse11    30/05/2011   28
Versioned API


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 - IPCse11                          30/05/2011                                         29
Versioned API




ezpRestVersionedRoute
                              Version




  makes the notion version a
  part of the routing decision
Nicolas Pastorino - IPCse11      30/05/2011   30
At the core of the eZ Publish CMS
Extensible REST API




       Build your own flavor,
    extend the interface(s)

Nicolas Pastorino - IPCse11   30/05/2011   31
Extending the interface




                              REST providers




Nicolas Pastorino - IPCse11         30/05/2011   32
Extending the interface




ezpRestProviderInterface


Nicolas Pastorino - IPCse11   30/05/2011   33
Overview of hooks
the places where you can go wild.
Nicolas Pastorino - IPCse11   30/05/2011   35
Route setup - Example
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 - IPCse11                             30/05/2011                                     36
Extensible REST API
Key features




                      37
Key features
Extensible REST API




                 Content resources


Nicolas Pastorino - IPCse11   30/05/2011   38
Key features




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




Nicolas Pastorino - IPCse11   30/05/2011   39
Key features


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 - IPCse11                  30/05/2011    40
Key features




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




Nicolas Pastorino - IPCse11   30/05/2011   41
Content Recommendation
YooChoose, eZ Recommender Engine




                                   42
A tough selection needs to
be made amongst the infinite
amount of content published
A tough selection needs to
be made amongst the infinite
amount of content published

Which
one is my
slope ?
A tough selection needs to
be made amongst the infinite
amount of content published
A tough selection needs to
be made amongst the infinite
amount of content published
I only have 30
minutes a day,
which posts
should i read ?
A tough selection needs to
be made amongst the infinite
amount of content published

Doesn’t it
feel like this
sometimes :
One sometimes needs a
helping hand to choose the
right slope to ride, the right
    content to consume
One sometimes needs a
helping hand to choose the
right slope to ride, the right
    content to consume
One sometimes needs a
helping hand to choose the
right slope to ride, the right
    content to consume
One sometimes needs a
 helping hand to choose the
 right slope to ride, the right
     content to consume
Content
recommendation
Content recommendation




Nicolas Pastorino - IPCse11   30/05/2011   47
Content recommendation




Nicolas Pastorino - IPCse11   30/05/2011   47
Content recommendation


Track content
consumption




Nicolas Pastorino - IPCse11   30/05/2011   47
Content recommendation


Track content
consumption


            +


             Learn content
             metadata




Nicolas Pastorino - IPCse11   30/05/2011   47
Content recommendation


Track content
consumption


            +


             Learn content
             metadata


                              =




                              Content Recommendation

Nicolas Pastorino - IPCse11              30/05/2011    47
Cloud-based learning of behaviors using
  • Events
   “Viewing, Purchasing, Rating, Sharing”

  • Models
   Users who viewed A also viewed B

  • Stereotypes
   Affinity calculated against larger sets of
   content
Content recommendation




Nicolas Pastorino - IPCse11   30/05/2011   49
Content recommendation


                              Hybrid filtering
      Increasing recommendation quality by combining
              methods for qualifying behaviors




Nicolas Pastorino - IPCse11           30/05/2011       49
Content recommendation


                                Hybrid filtering
      Increasing recommendation quality by combining
              methods for qualifying behaviors
          Content-based
             filtering
         “Content like this”




                          ~




Nicolas Pastorino - IPCse11             30/05/2011     49
Content recommendation


                                        Hybrid filtering
      Increasing recommendation quality by combining
              methods for qualifying behaviors
          Content-based           Collaborative
             filtering              filtering
         “Content like this”    “Customers who
                                  were interested in
                                  this product also
                                  bought …”




                          ~




Nicolas Pastorino - IPCse11                            30/05/2011   49
Content recommendation


                                        Hybrid filtering
      Increasing recommendation quality by combining
              methods for qualifying behaviors
          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                                       30/05/2011                                                   49
Content recommendation


                                           Hybrid filtering
      Increasing recommendation quality by combining
              methods for qualifying behaviors
          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                                          30/05/2011                                                   49
Content recommendation




Nicolas Pastorino - IPCse11   30/05/2011   50
Content recommendation


I/O through REST

Native connection with any HTTP-enabled client
( simple with PHP, native extension for eZ
Publish CMS )

Cloud-based : scales

Different methods for event tracking : JS, built-in
the CMS,
 Nicolas Pastorino - IPCse11   30/05/2011         50
Famous Last Slides




                     51
RECAP
RECAP



Multichannel emotion
RECAP



Multichannel emotion
        REST
RECAP



Multichannel emotion
        REST
Extensible REST API
RECAP



Multichannel emotion
        REST
Extensible REST API
Content recommendation
Find me on Twitter : @jeanvoye

Rate this talk : http://joind.in/3852
Slides available soon at http://slideshare.net/jeanvoye

eZ Community
http://share.ez.no

eZ Publish Community Project
https://github.com/ezsystems/ezpublish
http://share.ez.no/download
http://share.ez.no/get-involved
                                             Thank you !
YooChoose, recommendation engine
http://www.yoochoose.com

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

Mais conteúdo relacionado

Destaque

Destaque (6)

Understanding social media publics for radio: A new form of Capital?
Understanding social media publics for radio: A new form of Capital?Understanding social media publics for radio: A new form of Capital?
Understanding social media publics for radio: A new form of Capital?
 
HTTP-Live-Video-Streaming nicht nur für mobile Devices - Nuisol streaming web...
HTTP-Live-Video-Streaming nicht nur für mobile Devices - Nuisol streaming web...HTTP-Live-Video-Streaming nicht nur für mobile Devices - Nuisol streaming web...
HTTP-Live-Video-Streaming nicht nur für mobile Devices - Nuisol streaming web...
 
HTML5 & SilverLight 5
HTML5 & SilverLight 5HTML5 & SilverLight 5
HTML5 & SilverLight 5
 
MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011
 
Java scripting api
Java scripting apiJava scripting api
Java scripting api
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 

Semelhante a Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11

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
 
Rosinski ibm ai overview with several examples of projects in the media and l...
Rosinski ibm ai overview with several examples of projects in the media and l...Rosinski ibm ai overview with several examples of projects in the media and l...
Rosinski ibm ai overview with several examples of projects in the media and l...FIAT/IFTA
 
Why stop Open Source in the Enterprise?
Why stop Open Source in the Enterprise?Why stop Open Source in the Enterprise?
Why stop Open Source in the Enterprise?John Newton
 
Web 3 Cisco Pulse
Web 3 Cisco PulseWeb 3 Cisco Pulse
Web 3 Cisco PulseMediabistro
 
Web 3 Cisco Pulse
Web 3 Cisco PulseWeb 3 Cisco Pulse
Web 3 Cisco Pulseguest4513a7
 
Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...
Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...
Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...Emakina
 
John Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London KeynoteJohn Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London KeynoteAlfresco Software
 
It's All About Context
It's All About ContextIt's All About Context
It's All About ContextKevin Suttle
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018UX Antwerp Meetup
 
KnowNow Syndication-Oriented Architecture
KnowNow Syndication-Oriented ArchitectureKnowNow Syndication-Oriented Architecture
KnowNow Syndication-Oriented Architecturerohitkhare
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsOlaf Janssen
 
Redlink - Semantic Technologies for News & Media
Redlink - Semantic Technologies for News & Media Redlink - Semantic Technologies for News & Media
Redlink - Semantic Technologies for News & Media Andrea Volpini
 
New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...
New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...
New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...Redlink GmbH
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
Developing Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in Paris
Developing Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in ParisDeveloping Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in Paris
Developing Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in ParisOW2
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesRonald Ashri
 
SOA an architecture on the Desktop
SOA an architecture on the DesktopSOA an architecture on the Desktop
SOA an architecture on the DesktopVincent Perrin
 
How Open Data Can Enhance Interactive Television
How Open Data Can Enhance Interactive TelevisionHow Open Data Can Enhance Interactive Television
How Open Data Can Enhance Interactive TelevisionLinkedTV
 
Real World WEM Solutions Using Alfresco and Crafter Rivet
Real World WEM Solutions Using Alfresco and Crafter RivetReal World WEM Solutions Using Alfresco and Crafter Rivet
Real World WEM Solutions Using Alfresco and Crafter Rivetrivetlogic
 

Semelhante a Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11 (20)

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
 
Rosinski ibm ai overview with several examples of projects in the media and l...
Rosinski ibm ai overview with several examples of projects in the media and l...Rosinski ibm ai overview with several examples of projects in the media and l...
Rosinski ibm ai overview with several examples of projects in the media and l...
 
Why stop Open Source in the Enterprise?
Why stop Open Source in the Enterprise?Why stop Open Source in the Enterprise?
Why stop Open Source in the Enterprise?
 
Web 3 Cisco Pulse
Web 3 Cisco PulseWeb 3 Cisco Pulse
Web 3 Cisco Pulse
 
Web 3 Cisco Pulse
Web 3 Cisco PulseWeb 3 Cisco Pulse
Web 3 Cisco Pulse
 
Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...
Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...
Emakina Academy 5 - Boost your intranet - Key factors of success when buildin...
 
John Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London KeynoteJohn Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London Keynote
 
It's All About Context
It's All About ContextIt's All About Context
It's All About Context
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
 
KnowNow Syndication-Oriented Architecture
KnowNow Syndication-Oriented ArchitectureKnowNow Syndication-Oriented Architecture
KnowNow Syndication-Oriented Architecture
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trends
 
Redlink - Semantic Technologies for News & Media
Redlink - Semantic Technologies for News & Media Redlink - Semantic Technologies for News & Media
Redlink - Semantic Technologies for News & Media
 
New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...
New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...
New routes for your contents: Dynamic Semantic Publishing for News & Media Pu...
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Developing Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in Paris
Developing Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in ParisDeveloping Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in Paris
Developing Intelligent Chatbots using RASA, OW2con'19, June 12-13, 2019 in Paris
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservices
 
SOA an architecture on the Desktop
SOA an architecture on the DesktopSOA an architecture on the Desktop
SOA an architecture on the Desktop
 
How Open Data Can Enhance Interactive Television
How Open Data Can Enhance Interactive TelevisionHow Open Data Can Enhance Interactive Television
How Open Data Can Enhance Interactive Television
 
Fall2010 producer summit_openpbs_final
Fall2010 producer summit_openpbs_finalFall2010 producer summit_openpbs_final
Fall2010 producer summit_openpbs_final
 
Real World WEM Solutions Using Alfresco and Crafter Rivet
Real World WEM Solutions Using Alfresco and Crafter RivetReal World WEM Solutions Using Alfresco and Crafter Rivet
Real World WEM Solutions Using Alfresco and Crafter Rivet
 

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 - Distribution de contenu scalable, le multicanal avec REST...
Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST...Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST...
Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST...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 - 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
 

Mais de Nicolas Pastorino (8)

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 - Distribution de contenu scalable, le multicanal avec REST...
Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST...Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST...
Nicolas Pastorino - Distribution de contenu scalable, le multicanal avec REST...
 
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 - 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
 

Último

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Último (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11

  • 1. REST + Recommendation: consume the right content, anywhere
  • 2. REST + Recommendation: consume the right content, anywhere Nicolas Pastorino - nfrp@ez.no Director Community - eZ Systems @jeanvoye - http://share.ez.no
  • 3. REST + Recommendation: consume the right content, anywhere International PHP Conference 2011 - Mainz - October 10th Nicolas Pastorino - nfrp@ez.no #ipc11 Director Community - eZ Systems @jeanvoye - http://share.ez.no
  • 7. Our agenda : Multichannel emotion REST Extensible REST API
  • 8. Our agenda : Multichannel emotion REST Extensible REST API Content recommendation
  • 10.
  • 12. Online content touches you, it spurs emotions anywhere, on any device
  • 13. Online content touches you, it spurs emotions anywhere, on any device
  • 14. Online content touches you, it spurs emotions anywhere, on any device
  • 15. Online content touches you, it spurs emotions anywhere, on any device
  • 16.
  • 21.
  • 23.
  • 24. Pre-requisites to multichannel distribution Nicolas Pastorino - IPCse11 30/05/2011 8
  • 25. Pre-requisites to multichannel distribution Separation of layout and content at the 1 content source level Nicolas Pastorino - IPCse11 30/05/2011 8
  • 26. Pre-requisites to multichannel distribution Separation of layout and content at the 1 content source level Nicolas Pastorino - IPCse11 30/05/2011 8
  • 27. Pre-requisites to multichannel distribution Separation of layout and content at the 1 content source level Do not compromise on user experience 2 Nicolas Pastorino - IPCse11 30/05/2011 8
  • 28. Pre-requisites to multichannel distribution Separation of layout and content at the 1 content source level “The Superman Effect” Aral Balkan, DPC11 Do not compromise on user experience 2 Nicolas Pastorino - IPCse11 30/05/2011 8
  • 29. Pre-requisites to multichannel distribution Separation of layout and content at the 1 content source level “The Superman Effect” Aral Balkan, DPC11 Do not compromise on user experience 2 “There is a lot of effort going into improving customer experience. It is key to get consistency across different channels so their experience does not vary” Jim Daviesni Nicolas Pastorino - IPCse11 30/05/2011 8
  • 30. Pre-requisites to multichannel distribution Separation of layout and content at the 1 content source level “The Superman Effect” Aral Balkan, DPC11 Do not compromise on user experience 2 “There is a lot of effort going into improving customer experience. It is key to get consistency across different channels so their Have a single source experience does not vary” Jim Daviesni of content 3 Nicolas Pastorino - IPCse11 30/05/2011 8
  • 31. Pre-requisites to multichannel distribution Separation of layout and content at the 1 content source level “The Superman Effect” Aral Balkan, DPC11 Do not compromise on user experience 2 “There is a lot of effort going into improving customer experience. It is key to get consistency across different channels so their Have a single source experience does not vary” Jim Daviesni of content 3 “Publishers usually can't afford a dedicated editorial team per channel” Nicolas Pastorino - IPCse11 30/05/2011 8
  • 32.
  • 33. Are 3 rules of thumb enough ?
  • 34. Are 3 rules of thumb enough We’re ? hardly off the ground. Let’s dig further...
  • 37. Monetized Content Streams Single Content Source / CMS
  • 38. Monetized Content Streams Mobile Applications Single / Smartphones, Tablets Content Source CMS
  • 39. Monetized Content Streams Mobile Applications Single / Smartphones, Tablets Content Source CMS Push 3rd party CRM, ERP Content Newsletters
  • 40. Monetized Content Streams Mobile Applications Single / Smartphones, Tablets Content Source CMS Push 3rd party CRM, ERP Content Newsletters Print Legacy publication chains
  • 41. Monetized Content Streams Mobile Applications Single / Smartphones, Tablets Content Source CMS Push 3rd party CRM, ERP Content Newsletters Print Legacy publication chains Social Media
  • 42.
  • 43. "Multichannel media consumers have higher levels of engagement than those present in only one channel. The more one watches TV, listens to the radio, spends time online, etc., the more advertising they consume. This shows that multichannel content distribution will also have an important impact on the publishers revenue structure. It will evolve to become a competitive, critical, enabling technology for marketing communications."
  • 44.
  • 46. Having a REST ? :) We are not there yet, let’s dig further
  • 47.
  • 48. “Media companies as well as consumer brands must recognize that adding mobile to the multichannel mix does not mean creating a mini-channel. Those building mobile strategies should recognize that: • Mobile is not just about shrinking the desktop experience, • The user environment is an element of the (mobile) experience, • Mobile users are not simply a subset of online users – some are new.”
  • 49.
  • 51. Least Common Denominator : a REST API
  • 52.
  • 53. Those were the functional basics to increase your REACH through multiple channels
  • 54. Those were the functional basics to increase your REACH Now through come the multiple technical channels bits
  • 55. REST 16
  • 57. REpresentational State Transfer REST is a set of principles that define how Web standards, such as HTTP and URIs, are supposed to be used. • Give every “thing” an ID • Link things together (“HATEOAS”) (cf David Zuelke’s keynote) • Use standard methods • Resources with multiple representations • Communicate statelessly
  • 58. REpresentational State Transfer REST is a set of principles that define how Web standards, such as HTTP and URIs, are supposed to be used. • Give every “thing” an ID • Link things together (“HATEOAS”) (cf David Zuelke’s keynote) • Use standard methods • Resources with multiple representations • Communicate statelessly h"p://www.infoq.com/ar4cles/rest-­‐introduc4on h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
  • 59. REpresentational State Transfer h"p://www.infoq.com/ar4cles/rest-­‐introduc4on h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
  • 60. REpresentational State Transfer Key goals of REST include: • Scalability of component interactions • Generality of interfaces • Independent deployment of components • Intermediary components to reduce latency, enforce security and encapsulate legacy systems h"p://www.infoq.com/ar4cles/rest-­‐introduc4on h"p://en.wikipedia.org/wiki/Representa4onal_State_Transfer
  • 61. Extensible REST API at the core of the eZ Publish CMS 19
  • 62. At the core of the eZ Publish CMS Extensible REST API REST as a core feature Nicolas Pastorino - IPCse11 30/05/2011 20
  • 63. At the core of the eZ Publish CMS Extensible REST API Dedicated front-controller Nicolas Pastorino - IPCse11 30/05/2011 21
  • 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 - IPCse11 30/05/2011 22
  • 65. At the core of the eZ Publish CMS Extensible REST API REST setup REST eZP REST  request FC eZ  Publish web-­‐request Nicolas Pastorino - IPCse11 30/05/2011 22
  • 66. At the core of the eZ Publish CMS Extensible REST API Mapping content into resources Nicolas Pastorino - IPCse11 30/05/2011 23
  • 67. At the core of the eZ Publish CMS Extensible REST API Makes data available Nicolas Pastorino - IPCse11 30/05/2011 24
  • 68. At the core of the eZ Publish CMS Extensible REST API Makes data reusable Nicolas Pastorino - IPCse11 30/05/2011 24
  • 69. At the core of the eZ Publish CMS Extensible REST API Content is essentially liberated Nicolas Pastorino - IPCse11 30/05/2011 25
  • 70. At the core of the eZ Publish CMS Extensible REST API URI pattern Nicolas Pastorino - IPCse11 30/05/2011 26
  • 71. At the core of the eZ Publish CMS Extensible REST API Just a token to trigger your rewrite rule Call + GET Host / Prefix / Provider / Version / params ezpRestPrefixFilterInterface Nicolas Pastorino - IPCse11 30/05/2011 27
  • 72. At the core of the eZ Publish CMS Extensible REST API Prefix Just a token to trigger your rewrite rule Provider ezpRestPrefixFilterInterface Version Nicolas Pastorino - IPCse11 30/05/2011 27
  • 73. At the core of the eZ Publish CMS Extensible REST API Prefix Just a token to trigger your rewrite rule Provider ezpRestPrefixFilterInterface Version Nicolas Pastorino - IPCse11 30/05/2011 27
  • 74. At the core of the eZ Publish CMS Extensible REST API Prefix Just a token to trigger your rewrite rule Provider ezpRestPrefixFilterInterface Version Nicolas Pastorino - IPCse11 30/05/2011 27
  • 75. Prefix filter ezpRestPrefixFilterInterface Current provider Current parsed version value Nicolas Pastorino - IPCse11 30/05/2011 28
  • 76. Versioned API 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 - IPCse11 30/05/2011 29
  • 77. Versioned API ezpRestVersionedRoute Version makes the notion version a part of the routing decision Nicolas Pastorino - IPCse11 30/05/2011 30
  • 78. At the core of the eZ Publish CMS Extensible REST API Build your own flavor, extend the interface(s) Nicolas Pastorino - IPCse11 30/05/2011 31
  • 79. Extending the interface REST providers Nicolas Pastorino - IPCse11 30/05/2011 32
  • 80. Extending the interface ezpRestProviderInterface Nicolas Pastorino - IPCse11 30/05/2011 33
  • 81. Overview of hooks the places where you can go wild.
  • 82. Nicolas Pastorino - IPCse11 30/05/2011 35
  • 83. Route setup - Example 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 - IPCse11 30/05/2011 36
  • 84. Extensible REST API Key features 37
  • 85. Key features Extensible REST API Content resources Nicolas Pastorino - IPCse11 30/05/2011 38
  • 86. Key features GET /[api]/v1/content/object/ <objectId>/fields HTTP/1.1 Nicolas Pastorino - IPCse11 30/05/2011 39
  • 87. Key features 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 - IPCse11 30/05/2011 40
  • 88. Key features GET /[api]/v1/content/object/ <objectId>/field/ <FieldIdentifier> HTTP/1.1 Nicolas Pastorino - IPCse11 30/05/2011 41
  • 89. Content Recommendation YooChoose, eZ Recommender Engine 42
  • 90.
  • 91. A tough selection needs to be made amongst the infinite amount of content published
  • 92. A tough selection needs to be made amongst the infinite amount of content published Which one is my slope ?
  • 93. A tough selection needs to be made amongst the infinite amount of content published
  • 94. A tough selection needs to be made amongst the infinite amount of content published I only have 30 minutes a day, which posts should i read ?
  • 95. A tough selection needs to be made amongst the infinite amount of content published Doesn’t it feel like this sometimes :
  • 96.
  • 97. One sometimes needs a helping hand to choose the right slope to ride, the right content to consume
  • 98. One sometimes needs a helping hand to choose the right slope to ride, the right content to consume
  • 99. One sometimes needs a helping hand to choose the right slope to ride, the right content to consume
  • 100. One sometimes needs a helping hand to choose the right slope to ride, the right content to consume Content recommendation
  • 101. Content recommendation Nicolas Pastorino - IPCse11 30/05/2011 47
  • 102. Content recommendation Nicolas Pastorino - IPCse11 30/05/2011 47
  • 103. Content recommendation Track content consumption Nicolas Pastorino - IPCse11 30/05/2011 47
  • 104. Content recommendation Track content consumption + Learn content metadata Nicolas Pastorino - IPCse11 30/05/2011 47
  • 105. Content recommendation Track content consumption + Learn content metadata = Content Recommendation Nicolas Pastorino - IPCse11 30/05/2011 47
  • 106.
  • 107. Cloud-based learning of behaviors using • Events “Viewing, Purchasing, Rating, Sharing” • Models Users who viewed A also viewed B • Stereotypes Affinity calculated against larger sets of content
  • 108. Content recommendation Nicolas Pastorino - IPCse11 30/05/2011 49
  • 109. Content recommendation Hybrid filtering Increasing recommendation quality by combining methods for qualifying behaviors Nicolas Pastorino - IPCse11 30/05/2011 49
  • 110. Content recommendation Hybrid filtering Increasing recommendation quality by combining methods for qualifying behaviors Content-based filtering  “Content like this” ~ Nicolas Pastorino - IPCse11 30/05/2011 49
  • 111. Content recommendation Hybrid filtering Increasing recommendation quality by combining methods for qualifying behaviors Content-based Collaborative filtering filtering  “Content like this”  “Customers who were interested in this product also bought …” ~ Nicolas Pastorino - IPCse11 30/05/2011 49
  • 112. Content recommendation Hybrid filtering Increasing recommendation quality by combining methods for qualifying behaviors 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 30/05/2011 49
  • 113. Content recommendation Hybrid filtering Increasing recommendation quality by combining methods for qualifying behaviors 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 30/05/2011 49
  • 114. Content recommendation Nicolas Pastorino - IPCse11 30/05/2011 50
  • 115. Content recommendation I/O through REST Native connection with any HTTP-enabled client ( simple with PHP, native extension for eZ Publish CMS ) Cloud-based : scales Different methods for event tracking : JS, built-in the CMS, Nicolas Pastorino - IPCse11 30/05/2011 50
  • 117. RECAP
  • 120. RECAP Multichannel emotion REST Extensible REST API
  • 121. RECAP Multichannel emotion REST Extensible REST API Content recommendation
  • 122. Find me on Twitter : @jeanvoye Rate this talk : http://joind.in/3852 Slides available soon at http://slideshare.net/jeanvoye eZ Community http://share.ez.no eZ Publish Community Project https://github.com/ezsystems/ezpublish http://share.ez.no/download http://share.ez.no/get-involved Thank you ! YooChoose, recommendation engine http://www.yoochoose.com eZ Systems & eZ Publish Enterprise Edition http://ez.no