SlideShare a Scribd company logo
ThatConference August 14th 2012



      Push to Me!
Mobile Push Notifications
         By Mike Willbanks
     Sr. Web Architect Manager
         Barnes and Noble
Housekeeping…


    • Talk
       Slides will be online later!

    • Me
       Sr. Web Architect Manager at Barnes and Noble

       Prior MNPHP Organizer

       Open Source Contributor (Zend Framework and various others)

       Where you can find me:
        • Twitter: mwillbanks          G+: Mike Willbanks
        • IRC (freenode): mwillbanks   Blog: http://blog.digitalstruct.com
        • GitHub: https://github.com/mwillbanks


2
Agenda


    • Overview of Push Notifications
    • Android Push Notifications (C2DM)
    • Apple Push Notifications (APNS)
    • Microsoft Push Notifications
    • BlackBerry Push Notifications
    • Questions




3
Overview
What are they?
What is the benefit?
High level; how do these things work?
What Are They


    • Push Notifications…
       Are a message pushed to a central location and delivered to you.

       Are (often) the same thing as a pub/sub model.

       In the Mobile Space…
        • These messages often contain other technologies such as alerts, tiles,
          or raw data.




5
In Pictures…




6
Benefits of Push Notifications
Battery Life
Delivery
One word… Battery Life




8
Impact of Polling




9
Battery Life


     • Push notification services for mobile are highly efficient; it
       runs in the device background and enables your application
       to receive the message.
     • The other part of this; if you implemented it otherwise you
       would be polling. This not only wastes precious battery but
       also wastes their bandwidth.
        NOTE: This is not always true; if you are sending data to the phone
        more often than a poll would do in 15 minutes; you are better off
        implementing polling.




10
Can We Deliver?




11
Delivery


     • When you poll; things are generally 15+ minutes out to save
       on battery. In a push notification these happen almost
       instantly.
        In practice have seen 1-3s between sending a push notification to
        seeing it arrive on the device.
     • Additionally; push notifications can be sent to the device
       even if it is offline or turned off.
     • However, not all messages are guaranteed for delivery
        You may hit quotas

        Some notification servers only allow a single message to be in
        queue at 1 time (some group by collapse key), and others remove
        duplicates.

12
How These Things Work
The 10,000 foot view.
10,000 Foot View of GCM


                        Registration
                          Request




                          Registration ID




                         Push Messages




                                            Send Messages
             Store ID




14
10,000 Foot View of APNS




15
10,000 Foot View of Windows Push




16
10,000 Foot View of BlackBerry




17
Overview of Zend_Mobile_Push


     • Created Zend_Mobile component
        Consistency, Quality, Ease of Use

     • Requires Zend Framework 1.x
        Committed in the ZF trunk; waiting for 1.12 release.

     • Handles sending push notifications to 3 systems
        APNS, C2DM and MPNS

     • Library is located in my GitHub account & ZF Trunk
        https://github.com/mwillbanks/Zend_Mobile

        http://framework.zend.com/svn/framework/standard/trunk/
        library/Zend/Mobile/


18
Setting up the Library


     • Manual Setup (Current Method)
        svn checkout from ZF OR through github

        Adjust your include_path (likely set in index.php)

     • ZF 1.12
        Once released; no manual setup necessary.




19
Walking Through Android
Understanding GCM
Anatomy of a Message
Pushing Messages
Displaying Items on the Client
Understanding GCM


     • Allows application servers to send their app messages.
     • Is no guarantee for delivery or the order of messages.
     • Application does not need to be running to receive messages.
     • It does not provide any built-in user interface or other
       handling for message data.
     • Requires Android 2.2 with Google Play store installed.
     • It uses an existing connection for Google services
        Pre 3.0 devices requires a Google Account to be setup.

        4.0.4 or higher does not.




21
Registering for GCM


     • Sign in to the Google API’s console page
        https://code.google.com/apis/console

        Create a Project – keep note of the project #

        Select Services

        Turn on Google Cloud Messaging

        Accept terms of use

        Create an API key




22
Anatomy of the Mobile App


                                                Google
       Your Application                          Cloud      Your Web Service
                                               Messaging




                          Register




                          Registration ID




                                     Save Registration ID




23
How the Application Works


     • Import the GCM libraries
        /path/to/sdk-dir/extras/google/gcm-client/dist/gcm.jar

     • Update AndroidManifest.xml
        We need certain permissions for GCM to run.

     • Create GCMIntentService
        Receives the GCM messages from the GCMBroadcastReceiver




24
Example Manifest




25
Handling the Registration (or Unregistering)




26
Example Intent Service




27
Renders something like…




28
Implementing a Server


     • Some limitations
        No Quota!

        4KB payload maximum

        You must implement incremental back off.



     • Old Limitations of C2DM
        200K messages per day by default; use them wisely however you
        may request more.
        1K message payload maximum.




29
How the Server Works


                                             Google
                                                                               Your Web
       Your Application                       Cloud
                                                                              Application
                                            Messaging




                          Message sent to                   Message with
                            Application                    Registration IDs




                                            Queues t
                                                     ill                      Requires
                 ust                                                          Project #
        Device m                             sent or
         be online                            expires                          and API
                                                                                token




30
Using Zend_Mobile_Push_Gcm




31
Apple Push Notifications
A brief walk-through on implementing notifications on the
iPhone.
Understanding APNS


     •  The maximum size allowed for a notification payload is 256
       bytes.
     • Allows application servers to send their app messages.
     • No guarantees about delivery or the order of messages.
     • Application does not need to be running to receive messages.
     • Message adheres to strict JSON but is abstracted away for us in
       how we will be using it today.
     • Messages should be sent in batches.
     • A feedback service must be listened to.



33
Preparing to Implement Apple Push Notifications


     • You must create a SSL certificate and key from the
       provisioning portal
     • After this is completed the provisioning profile will need to
       be utilized for the application.
     • Lastly, you will need to install the certificate and key on the
       server.
        In this case; you will be making a pem certificate.




34
Anatomy of the Application




35
How the Application Works


     • Registration
        The application calls the registerForRemoteNotificationTypes:
        method.
        The delegate implements the
        application:didRegisterForRemoteNotificationsWithDeviceToken:
        method to receive the device token.
        It passes the device token to its provider as a non-object, binary
        value.
     • Notification
        By default this just works based on the payload; for syncing you
        would implement this on the launch.


36
Example of Handling Registration




37
Example of Handling Remote Notification




38
Implementing the Server


     • Some Limitations
        Don’t send too many through at a time; meaning around 100K J
         • Every once in a while use a usleep
        Max payload is 256 bytes




39
How the Server Works




40
Using Zend_Mobile_Push_Apns




41
Using Zend_Mobile_Push_Apns Feedback




42
Microsoft Push Notifications
Windows Mobile has really usable push notifications!
Understanding MPNS


     • Allows application servers to send their app messages.
     • No guarantee about delivery or the order of messages.
     • 3 types of messages: Tile, Toast or Raw
     • Limitations:
        One push channel per app, 30 push channels per device, additional
        adherence in order to send messages
        3K Payload, 1K Header

     • http://msdn.microsoft.com/en-us/library/ff402537.aspx




44
Preparing to Implement MPNS


     • Upload a TLS certificate to Windows Marketplace
        The Key-Usage value of the TLS certificate must be set to include
        client authentication.
        The Root Certificate Authority (CA) of the certificate must be one
        of the CAs listed at: SSL Root Certificates for Windows Phone.
        Stays authenticated for 4 months.

        Set Service Name to the Common Name (CN) found in the
        certificate's Subject value.
        Install the TLS certificate on your web service and enable HTTP
        client authentication.




45
Anatomy of MPNS




46
Registering for Push




47
Implementing the Callbacks for Notifications




48
Using Zend_Mobile_Push_Mpns Raw Messages




49
Using Zend_Mobile_Push_Mpns Toast Messages




50
Using Zend_Mobile_Push_Mpns Tile Messages




51
BlackBerry Push Notifications
Blackberry push notifications are not currently supported…
But we’ll talk about them anyway.
Understanding BlackBerry Push


     • It allows third-party application servers to send lightweight
       messages to their BlackBerry applications.
     • Allows a whopping 8K or the payload
     • Uses WAP PAP 2.2 as the protocol
     • Mileage may vary…




53
Anatomy of BB Push




54
Application Code


     • They have a “Sample” but it is deep within their Push SDK.
       Many of which are pre-compiled.
        Documentation is hard to follow and the sample isn’t exactly
        straight forward:
         • Install the SDK then go to BPSS/pushsdk-low-level/sample-push-
           enabled-app/ and unzip sample-push-enabled-app-1.1.0.16-sources.jar
        Completely uncertain on how to make it all work…




55
Preparing to Implement


     • You need to register with BlackBerry and have all of the
       application details ready to go:
        https://www.blackberry.com/profile/?eventId=8121

     • Download the PHP library:
        NOTE: I am not certain if any of these actually work…

        Updated to be OO; non-tested and a bit sloppy:
        https://github.com/mwillbanks/BlackBerryPush
        Original source: http://bit.ly/nfbHXp




56
Implementing BB Push w/ PHP


     • Again, never tested nor do I know if it works.




     • If you do use BlackBerry push messages; please connect
       with me
        I would like to allow us to get these into the component.




57
Moving on…
The future, resources and the end!
Next steps


     • ZF 2
        Working on Service Modules that will implement underlying
        functionality soon.
         • Hopefully by October?

     • BlackBerry
        There is a need for a quality implementation in PHP but RIM’s
        documentation and how they work with developers makes this
        increasingly difficult.
         • Register, Forums and bad documentation… all for?




59
Resources

     •  Main Sites
         Apple Push Notifications:
          http://developer.apple.com/library/ios/#documentation/NetworkingInternet/
          Conceptual/RemoteNotificationsPG/Introduction/Introduction.html
         Google C2DM (Android): http://code.google.com/android/c2dm/

         Microsoft Push Notifications:
          http://msdn.microsoft.com/en-us/library/ff402558(v=vs.92).aspx
         BlackBerry Push Notifications:
          http://us.blackberry.com/developers/platform/pushapi.jsp
     •  Push Clients:
         Zend_Mobile:
           •  https://github.com/mwillbanks/Zend_Mobile
           •  http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Mobile/

         BlackBerry: https://github.com/mwillbanks/BlackBerryPush
           •  Might be broken but at least better than what I found anywhere else J


60
Questions?
These slides will be posted to SlideShare & SpeakerDeck.
  Slideshare: http://www.slideshare.net/mwillbanks

  SpeakerDeck: http://speakerdeck.com/u/mwillbanks

  Twitter: mwillbanks

  G+: Mike Willbanks

  IRC (freenode): mwillbanks

  Blog: http://blog.digitalstruct.com

  GitHub: https://github.com/mwillbanks

More Related Content

What's hot

Gartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile StrategyGartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile Strategy
Lou Sacco
 
Performance testing – mobile apps session1
Performance testing – mobile apps   session1Performance testing – mobile apps   session1
Performance testing – mobile apps session1
Jyothirmayee Pola
 
Service Fabric Deployments
Service Fabric DeploymentsService Fabric Deployments
Service Fabric Deployments
Daniel Toomey
 
What's new in MOR X3?
What's new in MOR X3?What's new in MOR X3?
What's new in MOR X3?
Kolmisoft
 
UK Integration WebSphere User Group - MultiSpeed IT
UK Integration WebSphere User Group - MultiSpeed ITUK Integration WebSphere User Group - MultiSpeed IT
UK Integration WebSphere User Group - MultiSpeed IT
AndyHumphreys
 
Com day how to bring windows azure portal to your datacenter
Com day   how to bring windows azure portal to your datacenterCom day   how to bring windows azure portal to your datacenter
Com day how to bring windows azure portal to your datacenterChristopher Keyaert
 
Zimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentationZimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentation
solarisyourep
 
Mobile Performance Testing - Best Practices
Mobile Performance Testing - Best PracticesMobile Performance Testing - Best Practices
Mobile Performance Testing - Best Practices
Eran Kinsbrunner
 
IBM MobileFirst Technical Overview
IBM MobileFirst Technical OverviewIBM MobileFirst Technical Overview
IBM MobileFirst Technical Overview
ibmmobile
 
Mobile Device Client Application Performance Testing
Mobile Device Client Application Performance Testing Mobile Device Client Application Performance Testing
Mobile Device Client Application Performance Testing
XBOSoft
 
CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...
CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...
CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...
Louis Göhl
 

What's hot (11)

Gartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile StrategyGartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile Strategy
 
Performance testing – mobile apps session1
Performance testing – mobile apps   session1Performance testing – mobile apps   session1
Performance testing – mobile apps session1
 
Service Fabric Deployments
Service Fabric DeploymentsService Fabric Deployments
Service Fabric Deployments
 
What's new in MOR X3?
What's new in MOR X3?What's new in MOR X3?
What's new in MOR X3?
 
UK Integration WebSphere User Group - MultiSpeed IT
UK Integration WebSphere User Group - MultiSpeed ITUK Integration WebSphere User Group - MultiSpeed IT
UK Integration WebSphere User Group - MultiSpeed IT
 
Com day how to bring windows azure portal to your datacenter
Com day   how to bring windows azure portal to your datacenterCom day   how to bring windows azure portal to your datacenter
Com day how to bring windows azure portal to your datacenter
 
Zimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentationZimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentation
 
Mobile Performance Testing - Best Practices
Mobile Performance Testing - Best PracticesMobile Performance Testing - Best Practices
Mobile Performance Testing - Best Practices
 
IBM MobileFirst Technical Overview
IBM MobileFirst Technical OverviewIBM MobileFirst Technical Overview
IBM MobileFirst Technical Overview
 
Mobile Device Client Application Performance Testing
Mobile Device Client Application Performance Testing Mobile Device Client Application Performance Testing
Mobile Device Client Application Performance Testing
 
CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...
CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...
CLI319 Microsoft Desktop Optimization Pack: Planning the Deployment of Micros...
 

Viewers also liked

MAF push notifications
MAF push notificationsMAF push notifications
MAF push notifications
Luc Bors
 
Practical Push Notifications Seminar
Practical Push Notifications SeminarPractical Push Notifications Seminar
Practical Push Notifications SeminarXamarin
 
In the hunt of 100% delivery rate with mobile push notifications
In the hunt of 100% delivery rate with mobile push notificationsIn the hunt of 100% delivery rate with mobile push notifications
In the hunt of 100% delivery rate with mobile push notifications
Jan Haložan
 
REST is not enough: Using Push Notifications to better support your mobile cl...
REST is not enough: Using Push Notifications to better support your mobile cl...REST is not enough: Using Push Notifications to better support your mobile cl...
REST is not enough: Using Push Notifications to better support your mobile cl...
Juan Gomez
 
Visio-REPS_Referral_Workflow
Visio-REPS_Referral_WorkflowVisio-REPS_Referral_Workflow
Visio-REPS_Referral_WorkflowMike Lampe
 
10 Shifts Changing Consumer Behavior / Germany
10 Shifts Changing Consumer Behavior / Germany10 Shifts Changing Consumer Behavior / Germany
10 Shifts Changing Consumer Behavior / Germany
Kyle Lacy
 
FAST Digital Telco
FAST Digital TelcoFAST Digital Telco
FAST Digital Telco
Capgemini
 
Cuckoo Optimization ppt
Cuckoo Optimization pptCuckoo Optimization ppt
Cuckoo Optimization ppt
Anuja Joshi
 
Web并发模型粗浅探讨
Web并发模型粗浅探讨Web并发模型粗浅探讨
Web并发模型粗浅探讨
Robbin Fan
 
Design Patterns in Ruby
Design Patterns in RubyDesign Patterns in Ruby
Design Patterns in Ruby
Aleksander Dąbrowski
 
Innova day motorsporttech_eng_b
Innova day motorsporttech_eng_bInnova day motorsporttech_eng_b
Innova day motorsporttech_eng_bFrancesco Baruffi
 
סטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמהסטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמה
Ido Green
 
2 Thessalonians 2
2 Thessalonians 22 Thessalonians 2
2 Thessalonians 2Geo Acts
 
BANDO Startup Mission USA
BANDO Startup Mission USABANDO Startup Mission USA
BANDO Startup Mission USA
Francesco Baruffi
 
Downtown Arena Renderings
Downtown Arena RenderingsDowntown Arena Renderings
Downtown Arena Renderingswhitneyk7
 
Dec 06, Sermon Am
Dec 06, Sermon AmDec 06, Sermon Am
Dec 06, Sermon Am
Geo Acts
 
Create 2015 Event
Create 2015 EventCreate 2015 Event
Create 2015 Event
Mohammed Farrag
 
Add virt-network-rhel7-kvm
Add virt-network-rhel7-kvmAdd virt-network-rhel7-kvm
Add virt-network-rhel7-kvm
Alaa Hega
 
Aptso cosechas 2010
Aptso cosechas 2010Aptso cosechas 2010

Viewers also liked (20)

MAF push notifications
MAF push notificationsMAF push notifications
MAF push notifications
 
Practical Push Notifications Seminar
Practical Push Notifications SeminarPractical Push Notifications Seminar
Practical Push Notifications Seminar
 
In the hunt of 100% delivery rate with mobile push notifications
In the hunt of 100% delivery rate with mobile push notificationsIn the hunt of 100% delivery rate with mobile push notifications
In the hunt of 100% delivery rate with mobile push notifications
 
REST is not enough: Using Push Notifications to better support your mobile cl...
REST is not enough: Using Push Notifications to better support your mobile cl...REST is not enough: Using Push Notifications to better support your mobile cl...
REST is not enough: Using Push Notifications to better support your mobile cl...
 
Visio-REPS_Referral_Workflow
Visio-REPS_Referral_WorkflowVisio-REPS_Referral_Workflow
Visio-REPS_Referral_Workflow
 
10 Shifts Changing Consumer Behavior / Germany
10 Shifts Changing Consumer Behavior / Germany10 Shifts Changing Consumer Behavior / Germany
10 Shifts Changing Consumer Behavior / Germany
 
FAST Digital Telco
FAST Digital TelcoFAST Digital Telco
FAST Digital Telco
 
Cuckoo Optimization ppt
Cuckoo Optimization pptCuckoo Optimization ppt
Cuckoo Optimization ppt
 
Web并发模型粗浅探讨
Web并发模型粗浅探讨Web并发模型粗浅探讨
Web并发模型粗浅探讨
 
Design Patterns in Ruby
Design Patterns in RubyDesign Patterns in Ruby
Design Patterns in Ruby
 
Innova day motorsporttech_eng_b
Innova day motorsporttech_eng_bInnova day motorsporttech_eng_b
Innova day motorsporttech_eng_b
 
סטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמהסטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמה
 
2 Thessalonians 2
2 Thessalonians 22 Thessalonians 2
2 Thessalonians 2
 
BANDO Startup Mission USA
BANDO Startup Mission USABANDO Startup Mission USA
BANDO Startup Mission USA
 
Downtown Arena Renderings
Downtown Arena RenderingsDowntown Arena Renderings
Downtown Arena Renderings
 
Startup_10_Mosse_140215
Startup_10_Mosse_140215Startup_10_Mosse_140215
Startup_10_Mosse_140215
 
Dec 06, Sermon Am
Dec 06, Sermon AmDec 06, Sermon Am
Dec 06, Sermon Am
 
Create 2015 Event
Create 2015 EventCreate 2015 Event
Create 2015 Event
 
Add virt-network-rhel7-kvm
Add virt-network-rhel7-kvmAdd virt-network-rhel7-kvm
Add virt-network-rhel7-kvm
 
Aptso cosechas 2010
Aptso cosechas 2010Aptso cosechas 2010
Aptso cosechas 2010
 

Similar to Push to Me: Mobile Push Notifications (Zend Framework)

Leveraging Zend Framework for Sending Push Notifications
Leveraging Zend Framework for Sending Push NotificationsLeveraging Zend Framework for Sending Push Notifications
Leveraging Zend Framework for Sending Push NotificationsMike Willbanks
 
Introduction to google cloud messaging in android
Introduction to google cloud messaging in androidIntroduction to google cloud messaging in android
Introduction to google cloud messaging in androidRIA RUI Society
 
google cloud messaging
google cloud messaginggoogle cloud messaging
google cloud messaging
shuklajiawesome
 
Connecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the EnterpriseConnecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the Enterprise
Andrew Schofield
 
Get over the Cloud with Bluemix
Get over the Cloud with BluemixGet over the Cloud with Bluemix
Get over the Cloud with Bluemix
Codemotion
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
Jake Peyser
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
Paula Peña (She, Her, Hers)
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
Dev_Events
 
Skip the anxiety attack when building secure containerized apps
Skip the anxiety attack when building secure containerized appsSkip the anxiety attack when building secure containerized apps
Skip the anxiety attack when building secure containerized apps
Haidee McMahon
 
Reality Check: Moving From the Transformation Laboratory to Production
Reality Check: Moving From the Transformation Laboratory to ProductionReality Check: Moving From the Transformation Laboratory to Production
Reality Check: Moving From the Transformation Laboratory to Production
DevOps.com
 
Arsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoArsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry Susanto
DicodingEvent
 
Cloud journey mikevilliger
Cloud journey mikevilligerCloud journey mikevilliger
Cloud journey mikevilliger
Mike Villiger
 
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
Amazon Web Services Korea
 
Developing for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with BluemixDeveloping for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with Bluemix
Roberto Pozzi
 
2596 - Integrating PureApplication System Into Your Network
2596 - Integrating PureApplication System Into Your Network2596 - Integrating PureApplication System Into Your Network
2596 - Integrating PureApplication System Into Your Network
Hendrik van Run
 
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM France Lab
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
Matthew Perrins
 
How-to-handle-all-kind-of-notifications.pdf
How-to-handle-all-kind-of-notifications.pdfHow-to-handle-all-kind-of-notifications.pdf
How-to-handle-all-kind-of-notifications.pdf
Hammam Oktajianto
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
PINGXIONG3
 
Cloud computing-2 (1)
Cloud computing-2 (1)Cloud computing-2 (1)
Cloud computing-2 (1)
JUDYFLAVIAB
 

Similar to Push to Me: Mobile Push Notifications (Zend Framework) (20)

Leveraging Zend Framework for Sending Push Notifications
Leveraging Zend Framework for Sending Push NotificationsLeveraging Zend Framework for Sending Push Notifications
Leveraging Zend Framework for Sending Push Notifications
 
Introduction to google cloud messaging in android
Introduction to google cloud messaging in androidIntroduction to google cloud messaging in android
Introduction to google cloud messaging in android
 
google cloud messaging
google cloud messaginggoogle cloud messaging
google cloud messaging
 
Connecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the EnterpriseConnecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the Enterprise
 
Get over the Cloud with Bluemix
Get over the Cloud with BluemixGet over the Cloud with Bluemix
Get over the Cloud with Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Skip the anxiety attack when building secure containerized apps
Skip the anxiety attack when building secure containerized appsSkip the anxiety attack when building secure containerized apps
Skip the anxiety attack when building secure containerized apps
 
Reality Check: Moving From the Transformation Laboratory to Production
Reality Check: Moving From the Transformation Laboratory to ProductionReality Check: Moving From the Transformation Laboratory to Production
Reality Check: Moving From the Transformation Laboratory to Production
 
Arsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoArsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry Susanto
 
Cloud journey mikevilliger
Cloud journey mikevilligerCloud journey mikevilliger
Cloud journey mikevilliger
 
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
 
Developing for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with BluemixDeveloping for Hybrid Cloud with Bluemix
Developing for Hybrid Cloud with Bluemix
 
2596 - Integrating PureApplication System Into Your Network
2596 - Integrating PureApplication System Into Your Network2596 - Integrating PureApplication System Into Your Network
2596 - Integrating PureApplication System Into Your Network
 
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
 
How-to-handle-all-kind-of-notifications.pdf
How-to-handle-all-kind-of-notifications.pdfHow-to-handle-all-kind-of-notifications.pdf
How-to-handle-all-kind-of-notifications.pdf
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
Cloud computing-2 (1)
Cloud computing-2 (1)Cloud computing-2 (1)
Cloud computing-2 (1)
 

More from Mike Willbanks

2015 ZendCon - Do you queue
2015 ZendCon - Do you queue2015 ZendCon - Do you queue
2015 ZendCon - Do you queue
Mike Willbanks
 
ZF2: Writing Service Components
ZF2: Writing Service ComponentsZF2: Writing Service Components
ZF2: Writing Service Components
Mike Willbanks
 
Writing Services with ZF2
Writing Services with ZF2Writing Services with ZF2
Writing Services with ZF2
Mike Willbanks
 
Varnish Cache - International PHP Conference Fall 2012
Varnish Cache - International PHP Conference Fall 2012Varnish Cache - International PHP Conference Fall 2012
Varnish Cache - International PHP Conference Fall 2012
Mike Willbanks
 
Message Queues : A Primer - International PHP Conference Fall 2012
Message Queues : A Primer - International PHP Conference Fall 2012Message Queues : A Primer - International PHP Conference Fall 2012
Message Queues : A Primer - International PHP Conference Fall 2012
Mike Willbanks
 
Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Mike Willbanks
 
Varnish, The Good, The Awesome, and the Downright Crazy.
Varnish, The Good, The Awesome, and the Downright Crazy.Varnish, The Good, The Awesome, and the Downright Crazy.
Varnish, The Good, The Awesome, and the Downright Crazy.Mike Willbanks
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleMike Willbanks
 
Varnish, The Good, The Awesome, and the Downright Crazy
Varnish, The Good, The Awesome, and the Downright CrazyVarnish, The Good, The Awesome, and the Downright Crazy
Varnish, The Good, The Awesome, and the Downright CrazyMike Willbanks
 
SOA with Zend Framework
SOA with Zend FrameworkSOA with Zend Framework
SOA with Zend Framework
Mike Willbanks
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011
Mike Willbanks
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKXMike Willbanks
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101Mike Willbanks
 
The Art of Message Queues
The Art of Message QueuesThe Art of Message Queues
The Art of Message Queues
Mike Willbanks
 
Handling Database Deployments
Handling Database DeploymentsHandling Database Deployments
Handling Database Deployments
Mike Willbanks
 
LiquiBase
LiquiBaseLiquiBase
LiquiBase
Mike Willbanks
 

More from Mike Willbanks (18)

2015 ZendCon - Do you queue
2015 ZendCon - Do you queue2015 ZendCon - Do you queue
2015 ZendCon - Do you queue
 
ZF2: Writing Service Components
ZF2: Writing Service ComponentsZF2: Writing Service Components
ZF2: Writing Service Components
 
Writing Services with ZF2
Writing Services with ZF2Writing Services with ZF2
Writing Services with ZF2
 
Varnish Cache - International PHP Conference Fall 2012
Varnish Cache - International PHP Conference Fall 2012Varnish Cache - International PHP Conference Fall 2012
Varnish Cache - International PHP Conference Fall 2012
 
Message Queues : A Primer - International PHP Conference Fall 2012
Message Queues : A Primer - International PHP Conference Fall 2012Message Queues : A Primer - International PHP Conference Fall 2012
Message Queues : A Primer - International PHP Conference Fall 2012
 
Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
 
Varnish Cache
Varnish CacheVarnish Cache
Varnish Cache
 
Varnish, The Good, The Awesome, and the Downright Crazy.
Varnish, The Good, The Awesome, and the Downright Crazy.Varnish, The Good, The Awesome, and the Downright Crazy.
Varnish, The Good, The Awesome, and the Downright Crazy.
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for Scale
 
Varnish, The Good, The Awesome, and the Downright Crazy
Varnish, The Good, The Awesome, and the Downright CrazyVarnish, The Good, The Awesome, and the Downright Crazy
Varnish, The Good, The Awesome, and the Downright Crazy
 
SOA with Zend Framework
SOA with Zend FrameworkSOA with Zend Framework
SOA with Zend Framework
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
 
Art Of Message Queues
Art Of Message QueuesArt Of Message Queues
Art Of Message Queues
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101
 
The Art of Message Queues
The Art of Message QueuesThe Art of Message Queues
The Art of Message Queues
 
Handling Database Deployments
Handling Database DeploymentsHandling Database Deployments
Handling Database Deployments
 
LiquiBase
LiquiBaseLiquiBase
LiquiBase
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

Push to Me: Mobile Push Notifications (Zend Framework)

  • 1. ThatConference August 14th 2012 Push to Me! Mobile Push Notifications By Mike Willbanks Sr. Web Architect Manager Barnes and Noble
  • 2. Housekeeping… • Talk   Slides will be online later! • Me   Sr. Web Architect Manager at Barnes and Noble   Prior MNPHP Organizer   Open Source Contributor (Zend Framework and various others)   Where you can find me: • Twitter: mwillbanks G+: Mike Willbanks • IRC (freenode): mwillbanks Blog: http://blog.digitalstruct.com • GitHub: https://github.com/mwillbanks 2
  • 3. Agenda • Overview of Push Notifications • Android Push Notifications (C2DM) • Apple Push Notifications (APNS) • Microsoft Push Notifications • BlackBerry Push Notifications • Questions 3
  • 4. Overview What are they? What is the benefit? High level; how do these things work?
  • 5. What Are They • Push Notifications…   Are a message pushed to a central location and delivered to you.   Are (often) the same thing as a pub/sub model.   In the Mobile Space… • These messages often contain other technologies such as alerts, tiles, or raw data. 5
  • 7. Benefits of Push Notifications Battery Life Delivery
  • 10. Battery Life • Push notification services for mobile are highly efficient; it runs in the device background and enables your application to receive the message. • The other part of this; if you implemented it otherwise you would be polling. This not only wastes precious battery but also wastes their bandwidth.   NOTE: This is not always true; if you are sending data to the phone more often than a poll would do in 15 minutes; you are better off implementing polling. 10
  • 12. Delivery • When you poll; things are generally 15+ minutes out to save on battery. In a push notification these happen almost instantly.   In practice have seen 1-3s between sending a push notification to seeing it arrive on the device. • Additionally; push notifications can be sent to the device even if it is offline or turned off. • However, not all messages are guaranteed for delivery   You may hit quotas   Some notification servers only allow a single message to be in queue at 1 time (some group by collapse key), and others remove duplicates. 12
  • 13. How These Things Work The 10,000 foot view.
  • 14. 10,000 Foot View of GCM Registration Request Registration ID Push Messages Send Messages Store ID 14
  • 15. 10,000 Foot View of APNS 15
  • 16. 10,000 Foot View of Windows Push 16
  • 17. 10,000 Foot View of BlackBerry 17
  • 18. Overview of Zend_Mobile_Push • Created Zend_Mobile component   Consistency, Quality, Ease of Use • Requires Zend Framework 1.x   Committed in the ZF trunk; waiting for 1.12 release. • Handles sending push notifications to 3 systems   APNS, C2DM and MPNS • Library is located in my GitHub account & ZF Trunk   https://github.com/mwillbanks/Zend_Mobile   http://framework.zend.com/svn/framework/standard/trunk/ library/Zend/Mobile/ 18
  • 19. Setting up the Library • Manual Setup (Current Method)   svn checkout from ZF OR through github   Adjust your include_path (likely set in index.php) • ZF 1.12   Once released; no manual setup necessary. 19
  • 20. Walking Through Android Understanding GCM Anatomy of a Message Pushing Messages Displaying Items on the Client
  • 21. Understanding GCM • Allows application servers to send their app messages. • Is no guarantee for delivery or the order of messages. • Application does not need to be running to receive messages. • It does not provide any built-in user interface or other handling for message data. • Requires Android 2.2 with Google Play store installed. • It uses an existing connection for Google services   Pre 3.0 devices requires a Google Account to be setup.   4.0.4 or higher does not. 21
  • 22. Registering for GCM • Sign in to the Google API’s console page   https://code.google.com/apis/console   Create a Project – keep note of the project #   Select Services   Turn on Google Cloud Messaging   Accept terms of use   Create an API key 22
  • 23. Anatomy of the Mobile App Google Your Application Cloud Your Web Service Messaging Register Registration ID Save Registration ID 23
  • 24. How the Application Works • Import the GCM libraries   /path/to/sdk-dir/extras/google/gcm-client/dist/gcm.jar • Update AndroidManifest.xml   We need certain permissions for GCM to run. • Create GCMIntentService   Receives the GCM messages from the GCMBroadcastReceiver 24
  • 26. Handling the Registration (or Unregistering) 26
  • 29. Implementing a Server • Some limitations   No Quota!   4KB payload maximum   You must implement incremental back off. • Old Limitations of C2DM   200K messages per day by default; use them wisely however you may request more.   1K message payload maximum. 29
  • 30. How the Server Works Google Your Web Your Application Cloud Application Messaging Message sent to Message with Application Registration IDs Queues t ill Requires ust Project # Device m sent or be online expires and API token 30
  • 32. Apple Push Notifications A brief walk-through on implementing notifications on the iPhone.
  • 33. Understanding APNS •  The maximum size allowed for a notification payload is 256 bytes. • Allows application servers to send their app messages. • No guarantees about delivery or the order of messages. • Application does not need to be running to receive messages. • Message adheres to strict JSON but is abstracted away for us in how we will be using it today. • Messages should be sent in batches. • A feedback service must be listened to. 33
  • 34. Preparing to Implement Apple Push Notifications • You must create a SSL certificate and key from the provisioning portal • After this is completed the provisioning profile will need to be utilized for the application. • Lastly, you will need to install the certificate and key on the server.   In this case; you will be making a pem certificate. 34
  • 35. Anatomy of the Application 35
  • 36. How the Application Works • Registration   The application calls the registerForRemoteNotificationTypes: method.   The delegate implements the application:didRegisterForRemoteNotificationsWithDeviceToken: method to receive the device token.   It passes the device token to its provider as a non-object, binary value. • Notification   By default this just works based on the payload; for syncing you would implement this on the launch. 36
  • 37. Example of Handling Registration 37
  • 38. Example of Handling Remote Notification 38
  • 39. Implementing the Server • Some Limitations   Don’t send too many through at a time; meaning around 100K J • Every once in a while use a usleep   Max payload is 256 bytes 39
  • 40. How the Server Works 40
  • 43. Microsoft Push Notifications Windows Mobile has really usable push notifications!
  • 44. Understanding MPNS • Allows application servers to send their app messages. • No guarantee about delivery or the order of messages. • 3 types of messages: Tile, Toast or Raw • Limitations:   One push channel per app, 30 push channels per device, additional adherence in order to send messages   3K Payload, 1K Header • http://msdn.microsoft.com/en-us/library/ff402537.aspx 44
  • 45. Preparing to Implement MPNS • Upload a TLS certificate to Windows Marketplace   The Key-Usage value of the TLS certificate must be set to include client authentication.   The Root Certificate Authority (CA) of the certificate must be one of the CAs listed at: SSL Root Certificates for Windows Phone.   Stays authenticated for 4 months.   Set Service Name to the Common Name (CN) found in the certificate's Subject value.   Install the TLS certificate on your web service and enable HTTP client authentication. 45
  • 48. Implementing the Callbacks for Notifications 48
  • 52. BlackBerry Push Notifications Blackberry push notifications are not currently supported… But we’ll talk about them anyway.
  • 53. Understanding BlackBerry Push • It allows third-party application servers to send lightweight messages to their BlackBerry applications. • Allows a whopping 8K or the payload • Uses WAP PAP 2.2 as the protocol • Mileage may vary… 53
  • 54. Anatomy of BB Push 54
  • 55. Application Code • They have a “Sample” but it is deep within their Push SDK. Many of which are pre-compiled.   Documentation is hard to follow and the sample isn’t exactly straight forward: • Install the SDK then go to BPSS/pushsdk-low-level/sample-push- enabled-app/ and unzip sample-push-enabled-app-1.1.0.16-sources.jar   Completely uncertain on how to make it all work… 55
  • 56. Preparing to Implement • You need to register with BlackBerry and have all of the application details ready to go:   https://www.blackberry.com/profile/?eventId=8121 • Download the PHP library:   NOTE: I am not certain if any of these actually work…   Updated to be OO; non-tested and a bit sloppy: https://github.com/mwillbanks/BlackBerryPush   Original source: http://bit.ly/nfbHXp 56
  • 57. Implementing BB Push w/ PHP • Again, never tested nor do I know if it works. • If you do use BlackBerry push messages; please connect with me   I would like to allow us to get these into the component. 57
  • 58. Moving on… The future, resources and the end!
  • 59. Next steps • ZF 2   Working on Service Modules that will implement underlying functionality soon. • Hopefully by October? • BlackBerry   There is a need for a quality implementation in PHP but RIM’s documentation and how they work with developers makes this increasingly difficult. • Register, Forums and bad documentation… all for? 59
  • 60. Resources •  Main Sites   Apple Push Notifications: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/ Conceptual/RemoteNotificationsPG/Introduction/Introduction.html   Google C2DM (Android): http://code.google.com/android/c2dm/   Microsoft Push Notifications: http://msdn.microsoft.com/en-us/library/ff402558(v=vs.92).aspx   BlackBerry Push Notifications: http://us.blackberry.com/developers/platform/pushapi.jsp •  Push Clients:   Zend_Mobile: •  https://github.com/mwillbanks/Zend_Mobile •  http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Mobile/   BlackBerry: https://github.com/mwillbanks/BlackBerryPush •  Might be broken but at least better than what I found anywhere else J 60
  • 61. Questions? These slides will be posted to SlideShare & SpeakerDeck.  Slideshare: http://www.slideshare.net/mwillbanks  SpeakerDeck: http://speakerdeck.com/u/mwillbanks  Twitter: mwillbanks  G+: Mike Willbanks  IRC (freenode): mwillbanks  Blog: http://blog.digitalstruct.com  GitHub: https://github.com/mwillbanks