XMPP-based Push Solutions
XMPP, HTTP and the future of Push at ProcessOne
November 2011
The need for realtime notifications is exploding
 Mobile / smartphones and data plan centric subscriptions:
   People are now always connected.

 People need to be informed as fast as possible about what is important for
 them.
    This has a business value for press, sales, on-the-field workforce

 Online services are generating a huge volume of data that become good
 candidates for push:
    Realtime radio programs
    News / Tweets
    Photo sharing
    ...
Smartphones and push notifications
 Push notifications service with Apple as a way to workaround the lack of
 background applications

 Push notifications on iOS have been widely adopted by Apple developers
    They even built messaging system on top of Apple notifications


 Users have got used / trained to received real time information

 Competitors have designed push notifications as a mandatory element of
 their offering.
Mobile push notifications systems are all
XMPP

 Apple Push Notification service (APNS)

 Google Cloud to Device Messaging (C2DM)


 Nokia Push Notification
Why are other infrastructures needed ?
 Existing push infrastructure are:
    tight to devices and / or brand:
        What about desktop ?


    tight to platform applications
        What about web applications ?

    not always reliable
       How to improve SLA ?

    link to technical information (Device token)
        What about sending notifications to users (through user ids) ?
XMPP benefits
 Protocol designed for realtime messaging, based on identifiers

 Lots of extensions to adapt to your need:
    Offline delivery / queuing
    Designed for internet scale operation (and not just local network)
    Pubsub for channel-based messaging

 ProcessOne extensions to go further
    Reliable delivery
    Mobile optimisations
ProcessOne Push Platform
 Provides the benefit of XMPP, managed as a service by ProcessOne.

 Support of experts, to make pubsub work.


 Provides extra components and protocols as entry point and subscription
 protocol.
    Includes good support to bring pubsub and real time on web (in the
    browser).
    Good support for alternative protocols connected on the same platform:
        Pubsubhubbub
        Stomp
        OpenPush (future)
Enabling listeners access to
pushed music info
• Goals
   ✓ Build a platform scalable and robust enough to cope
        with exceptionally high user numbers who BBC radios
    ✓ Create a future-proof «LiveText» information service that is
        easy and cost-efficient to extend in the future
    ✓ Develop the new version of an info-enriched service called
        «RadioVIS»
• Service                                                              « Our new platform gives the BBC the
   ✓ Elect for a solution on ejabberd, an open source technology       flexibility to add new services when we
                                                                       want to and the scalability to grow.
   ✓ Appoint ProcessOne to build, integrate and support
        ejabberd platform (complete outsourcing)                       We have a roadmap for the services
                                                                       that we plan to deliver in the future,
• Benefits                                                              and we are confident that with
   ✓ Scales to support over +150 000 users and offers reliable         ProcessOne we can achieve that.»
        performance
                                                                                                   Alan Ogilvie
    ✓ Additional push feeds and new services can be quickly and                        Interactive Platform Producer
        cost effectively introduced in the future (connected devices                                    BBC Radio
        like radio, tablet...)
Violet use case:
                                                                     Nabaztag push
                                                                     architecture

                                                                          Initial architecture based on
                                                                          pure polling to check «inbox»
Query to check inbox
 (every 5 seconds)

                                                                          Based on database and HTTP
                                                                          front servers

                                        Database with rabbits'
                                             messages




                                                         Broadcast
                       HTTP Fronts                        service




                                     Data publication
Violet use case:
                                                                         Nabaztag push
                                                                         architecture

                                                                                          New push architecture on XMPP

                                         History of data

                                                           Database storing the
                                                                                          Lower latency and more reliable
                                                              rabbits' inbox
                                                                                          delivery

  Persistant XMPP
    connection
                                                                                          HTTP infrastructure could be
Messages are pushed
   when needed                                                                broadcast   halfed
                                                                               service

                      ejabberd servers




                                                            Publishing data
Example: Gitlive
 This is our technological demo showing in browser, anonymous pubsub.
Example: The Superfeedr case




                                                             Pubsubhubbub
                                                                   Hub
                                                             for subscribers



                                                                                 Could be the same
                                                                                        hub


                          XMPP servers

                                                                Pubsubhubbub
      Persistant XMPP
                                                                      Hub
        connection
                                                                 for publisher
    Messages are pushed
       when needed


                                         Posting blog post on web server
                                              (triggers a hub "ping")
Enabling all those cases with ProcessOne
Push Platform (P1PP)
 Build a generic platform able to manage all those cases for our users in a
 standard way.

 Build a development community around realtime protocols.

 Share our XMPP pubsub expertise with developers around the world.

 Propose our ability to make XMPP Pubsub scale as a service.

 Support innovation around notification and new usage:

    Mobile.

    Web protocols: websockets.
ProcessOne Push
Platform (P1PP) -                   Browser                  XMPP over        Desktop or

Overview
                                                             TCP - c2s
                                                                              mobile client
                                            XMPP over
                                             HTTP /
                                            Websocket
                                                                                  XMPP server
                                                                               (Gtalk for example)




                                                                  XMPP over
                                                                  TCP - s2s




                                                 P1 Push Platform



=> Launch in december   XMPP (throughout 3rd party server)

2012                                  or
                             HTTP publish protocol



                                                             Publisher

ProcessOne Push Platform: XMPP-based Push Solutions

  • 1.
    XMPP-based Push Solutions XMPP,HTTP and the future of Push at ProcessOne November 2011
  • 2.
    The need forrealtime notifications is exploding Mobile / smartphones and data plan centric subscriptions: People are now always connected. People need to be informed as fast as possible about what is important for them. This has a business value for press, sales, on-the-field workforce Online services are generating a huge volume of data that become good candidates for push: Realtime radio programs News / Tweets Photo sharing ...
  • 3.
    Smartphones and pushnotifications Push notifications service with Apple as a way to workaround the lack of background applications Push notifications on iOS have been widely adopted by Apple developers They even built messaging system on top of Apple notifications Users have got used / trained to received real time information Competitors have designed push notifications as a mandatory element of their offering.
  • 4.
    Mobile push notificationssystems are all XMPP Apple Push Notification service (APNS) Google Cloud to Device Messaging (C2DM) Nokia Push Notification
  • 5.
    Why are otherinfrastructures needed ? Existing push infrastructure are: tight to devices and / or brand: What about desktop ? tight to platform applications What about web applications ? not always reliable How to improve SLA ? link to technical information (Device token) What about sending notifications to users (through user ids) ?
  • 6.
    XMPP benefits Protocoldesigned for realtime messaging, based on identifiers Lots of extensions to adapt to your need: Offline delivery / queuing Designed for internet scale operation (and not just local network) Pubsub for channel-based messaging ProcessOne extensions to go further Reliable delivery Mobile optimisations
  • 7.
    ProcessOne Push Platform Provides the benefit of XMPP, managed as a service by ProcessOne. Support of experts, to make pubsub work. Provides extra components and protocols as entry point and subscription protocol. Includes good support to bring pubsub and real time on web (in the browser). Good support for alternative protocols connected on the same platform: Pubsubhubbub Stomp OpenPush (future)
  • 8.
    Enabling listeners accessto pushed music info • Goals ✓ Build a platform scalable and robust enough to cope with exceptionally high user numbers who BBC radios ✓ Create a future-proof «LiveText» information service that is easy and cost-efficient to extend in the future ✓ Develop the new version of an info-enriched service called «RadioVIS» • Service « Our new platform gives the BBC the ✓ Elect for a solution on ejabberd, an open source technology flexibility to add new services when we want to and the scalability to grow. ✓ Appoint ProcessOne to build, integrate and support ejabberd platform (complete outsourcing) We have a roadmap for the services that we plan to deliver in the future, • Benefits and we are confident that with ✓ Scales to support over +150 000 users and offers reliable ProcessOne we can achieve that.» performance Alan Ogilvie ✓ Additional push feeds and new services can be quickly and Interactive Platform Producer cost effectively introduced in the future (connected devices BBC Radio like radio, tablet...)
  • 9.
    Violet use case: Nabaztag push architecture Initial architecture based on pure polling to check «inbox» Query to check inbox (every 5 seconds) Based on database and HTTP front servers Database with rabbits' messages Broadcast HTTP Fronts service Data publication
  • 10.
    Violet use case: Nabaztag push architecture New push architecture on XMPP History of data Database storing the Lower latency and more reliable rabbits' inbox delivery Persistant XMPP connection HTTP infrastructure could be Messages are pushed when needed broadcast halfed service ejabberd servers Publishing data
  • 11.
    Example: Gitlive Thisis our technological demo showing in browser, anonymous pubsub.
  • 12.
    Example: The Superfeedrcase Pubsubhubbub Hub for subscribers Could be the same hub XMPP servers Pubsubhubbub Persistant XMPP Hub connection for publisher Messages are pushed when needed Posting blog post on web server (triggers a hub "ping")
  • 13.
    Enabling all thosecases with ProcessOne Push Platform (P1PP) Build a generic platform able to manage all those cases for our users in a standard way. Build a development community around realtime protocols. Share our XMPP pubsub expertise with developers around the world. Propose our ability to make XMPP Pubsub scale as a service. Support innovation around notification and new usage: Mobile. Web protocols: websockets.
  • 14.
    ProcessOne Push Platform (P1PP)- Browser XMPP over Desktop or Overview TCP - c2s mobile client XMPP over HTTP / Websocket XMPP server (Gtalk for example) XMPP over TCP - s2s P1 Push Platform => Launch in december XMPP (throughout 3rd party server) 2012 or HTTP publish protocol Publisher

Editor's Notes