SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 StrategyLou Sacco
 
Performance testing – mobile apps session1
Performance testing – mobile apps   session1Performance testing – mobile apps   session1
Performance testing – mobile apps session1Jyothirmayee Pola
 
Service Fabric Deployments
Service Fabric DeploymentsService Fabric Deployments
Service Fabric DeploymentsDaniel 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 ITAndyHumphreys
 
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 presentationsolarisyourep
 
Mobile Performance Testing - Best Practices
Mobile Performance Testing - Best PracticesMobile Performance Testing - Best Practices
Mobile Performance Testing - Best PracticesEran Kinsbrunner
 
IBM MobileFirst Technical Overview
IBM MobileFirst Technical OverviewIBM MobileFirst Technical Overview
IBM MobileFirst Technical Overviewibmmobile
 
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
 

Tendances (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...
 

En vedette

MAF push notifications
MAF push notificationsMAF push notifications
MAF push notificationsLuc 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 notificationsJan 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 / GermanyKyle Lacy
 
FAST Digital Telco
FAST Digital TelcoFAST Digital Telco
FAST Digital TelcoCapgemini
 
Cuckoo Optimization ppt
Cuckoo Optimization pptCuckoo Optimization ppt
Cuckoo Optimization pptAnuja Joshi
 
Web并发模型粗浅探讨
Web并发模型粗浅探讨Web并发模型粗浅探讨
Web并发模型粗浅探讨Robbin Fan
 
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
 
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 AmGeo Acts
 
Add virt-network-rhel7-kvm
Add virt-network-rhel7-kvmAdd virt-network-rhel7-kvm
Add virt-network-rhel7-kvmAlaa Hega
 

En vedette (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
 

Similaire à 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
 
Connecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the EnterpriseConnecting IBM MessageSight to the Enterprise
Connecting IBM MessageSight to the EnterpriseAndrew Schofield
 
Get over the Cloud with Bluemix
Get over the Cloud with BluemixGet over the Cloud with Bluemix
Get over the Cloud with BluemixCodemotion
 
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 BluemixJake 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 BluemixDev_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 appsHaidee 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 ProductionDevOps.com
 
Arsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoArsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoDicodingEvent
 
Cloud journey mikevilliger
Cloud journey mikevilligerCloud journey mikevilliger
Cloud journey mikevilligerMike 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 BluemixRoberto 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 NetworkHendrik 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. 2014IBM 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 ConsoleMatthew 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.pdfHammam 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.pptxPINGXIONG3
 
Cloud computing-2 (1)
Cloud computing-2 (1)Cloud computing-2 (1)
Cloud computing-2 (1)JUDYFLAVIAB
 

Similaire à 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)
 

Plus de Mike Willbanks

2015 ZendCon - Do you queue
2015 ZendCon - Do you queue2015 ZendCon - Do you queue
2015 ZendCon - Do you queueMike Willbanks
 
ZF2: Writing Service Components
ZF2: Writing Service ComponentsZF2: Writing Service Components
ZF2: Writing Service ComponentsMike Willbanks
 
Writing Services with ZF2
Writing Services with ZF2Writing Services with ZF2
Writing Services with ZF2Mike 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 2012Mike 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 2012Mike 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 FrameworkMike 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 2011Mike 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 QueuesMike Willbanks
 
Handling Database Deployments
Handling Database DeploymentsHandling Database Deployments
Handling Database DeploymentsMike Willbanks
 

Plus de 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
 

Dernier

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

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