SlideShare uma empresa Scribd logo
1 de 24
Laat ons weten wat u vindt van deze sessie! Vul de evaluatie
in via www.techdaysapp.nl en maak kans op een van de 20
prijzen*. Prijswinnaars worden bekend gemaakt via Twitter
(#TechDaysNL). Gebruik hiervoor de code op uw badge.
Let us know how you feel about this session! Give your
feedback via www.techdaysapp.nl and possibly win one of
the 20 prizes*. Winners will be announced via Twitter
(#TechDaysNL). Use your personal code on your badge.
* Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are
examples
Delivering Millions of
Push Notifications in
Minutes
Sasha Goldshtein
CTO, Sela Group
Microsoft C# MVP, Azure MRS, Azure Insider
blog.sashag.net
@goldshtn
Typical Push System Diagram
Platform Push
Provider
Your Web
Service
Database
App
Azure Mobile Services is a backend
for your mobile apps
… that has a free tier
… cloud scale
… support for all mobile platforms
Mobile Services Push Architecture
Microsoft Azure
SQL DatabaseNode +
Express
backen
d
Apple Push
Notification
Service
Windows
Notification
Service
Google Cloud
Messaging
Microsoft Push
Notification
Service
URI/Token Device Type ID
aabc 43df
…
iOS 123456
https://live..
.
Windows 8 789123
56aaffbb… Android 456789
Server
scripts
Managed by
you
Azure Notification Hubs
… abstract away platform push
services
… support targeted multi-tag delivery
… scale to millions of users
… Mobile Services or any other
Notification Hub Push Architecture
Microsoft Azure
Node +
Express
backen
d
Apple Push
Notification
Service
Windows
Notification
Service
Google Cloud
Messaging
Microsoft Push
Notification
Service
Server
scripts
Notification Hub Service
SQL
Database
Tag URIs/Tokens Templates
sports [ ab…, 5a…,
…]
alert: …
<toast…>
data: …news [ bc…, 5a…,
…]
123456 [ 5a… ]
Not managed
by you
Options for Push Notifications
Registration Push
Through Mobile Service
Explicit channel management
Mobile Services push module
Directly from client to Notification Hub Azure hub module from Mobile Service
Azure NuGet package from other
backendThrough Mobile Service to Notification
Hub
Registration Tags…
…are totally up to you!
Examples:
user:123456
region:Europe
sports news
conversation:aa412
Per-Platform Registration from
Mobile Service
hub.wns.createNativeRegistration(
request.body.channelUri,
[request.user.userId, ‚sports‛],
function (error, registration) { ... }
);
hub.apns.createNativeRegistration(
request.body.deviceToken,
[request.user.userId, ‚sports‛],
function (error, registration) { ... }
);
Direct Registration from
Windows 8 Client
var channel = await PushNotificationChannelManager.
CreatePushNotificationChannelForApplicationAsync();
var hub = new NotificationHub(name, connString);
await hub.RegisterNativeAsync(channel.Uri);
Push from Mobile Service
hub.wns.sendToastText02(
[ ‘sports’, ‘news’ ],
{
text1: ‘Breaking news’,
text2: ‘AFC Ajax defeats FC Twente 3-0’
},
function (error) { ... }
);
Push from Mobile Service
hub.apns.send (
[ ‘sports’, ‘news’ ],
{
badge: 1,
alert: ‘AFC Ajax defeats FC Twente 3-0’
},
function (error) { ... }
);
Push from Other .NET Backend
var hub = NotificationHubClient.
CreateClientFromConnectionString(connString, name);
var toast =
@‛...<text id=‘1’>‛
‚AFC Ajax defeats FC Twente 3-0‛
‚</text>...‛;
await hub.SendWindowsNativeNotificationAsync(toast);
Demo
Notification Hubs with .NET Backend
Notification Hubs from Console App
Per-Platform
Registrations Aren’t
That GreatSeparate registration API for each platform
Separate payload for each platform
But: More control over push customization
Template Registration
hub.wns.createToastText01Registration(
request.body.channelUri,
[ ‘sports’, request.user.userId ],
{ text1: ‘$(breakingnews)’ },
function (error, registration) { ... }
);
hub.apns.createTemplateRegistration(
request.body.deviceToken,
[ ‘sports’, request.user.userId ],
{ aps: { alert: ‘$(breakingnews)’ } },
function (error, registration) { ... }
);
Registration Template Channel URI /
Device Token
Device Type
12345678… {‚aps‛:{‚alert‛:‛$(breakingnews)‛}} abcd 12f0 … iOS
45678901… {‚data‛:{‚message‛:‛$(breakingnews)‛}} 556a432f… Android
78901234… <?xml version="1.0" encoding="utf-
8"?><wp:Notification
xmlns:wp="WPNotification"><wp:Toast><wp:T
ext1>Breaking
news</wp:Text1><wp:Text2>$(breakingnews)<
/wp:Text2></wp:Toast></wp:Notification>
https://live... Windows Phone
34567890… <toast><visual><binding
template="ToastText02"><text
id="1">Breaking news</text><text
id="2">$(breakingnews)</text</visual></to
ast>
https://live... Windows 8
Template Push
hub.send(
[ ‘sports’, ‘news’ ],
{ breakingnews: ‘AFC Ajax defeats FC Twente 3-0’ },
function (error, outcome) { ... }
);
Demo
Template Registrations
Questions?
Sasha Goldshtein
blog.sashag.net
@goldshtn
Laat ons weten wat u vindt van deze sessie! Vul de evaluatie
in via www.techdaysapp.nl en maak kans op een van de 20
prijzen*. Prijswinnaars worden bekend gemaakt via Twitter
(#TechDaysNL). Gebruik hiervoor de code op uw badge.
Let us know how you feel about this session! Give your
feedback via www.techdaysapp.nl and possibly win one of
the 20 prizes*. Winners will be announced via Twitter
(#TechDaysNL). Use your personal code on your badge.
* Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are
examples
Delivering Millions of Push Notifications in Minutes

Mais conteúdo relacionado

Semelhante a Delivering Millions of Push Notifications in Minutes

(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014
(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014
(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014Amazon Web Services
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobileFlavius-Radu Demian
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobileFlavius-Radu Demian
 
Scaling push notifications to millions of devices using notification hubs
Scaling push notifications to millions of devices using notification hubsScaling push notifications to millions of devices using notification hubs
Scaling push notifications to millions of devices using notification hubscloudbeatsch
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBizTalk360
 
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리Young D
 
Rhinos have tea_on_azure
Rhinos have tea_on_azureRhinos have tea_on_azure
Rhinos have tea_on_azureCEDRIC DERUE
 
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...MUG-Lyon Microsoft User Group
 
Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsWinWire Technologies Inc
 
Hybrid organization building modern business apps with windows azure notifica...
Hybrid organization building modern business apps with windows azure notifica...Hybrid organization building modern business apps with windows azure notifica...
Hybrid organization building modern business apps with windows azure notifica...BizTalk360
 
Lime - Push notifications. The big way.
Lime - Push notifications. The big way.Lime - Push notifications. The big way.
Lime - Push notifications. The big way.Petr Dvorak
 
Ventures Unlimited Product Overview Vtxt
Ventures Unlimited   Product Overview   VtxtVentures Unlimited   Product Overview   Vtxt
Ventures Unlimited Product Overview VtxtArun R
 
SignalR tutorial & best practices
SignalR tutorial & best practicesSignalR tutorial & best practices
SignalR tutorial & best practicesMinh Ng
 
以Device Shadows與Rules Engine串聯實體世界
以Device Shadows與Rules Engine串聯實體世界以Device Shadows與Rules Engine串聯實體世界
以Device Shadows與Rules Engine串聯實體世界Amazon Web Services
 
Generating cross platform .NET based azure IoTdevice
Generating cross platform .NET based azure IoTdeviceGenerating cross platform .NET based azure IoTdevice
Generating cross platform .NET based azure IoTdeviceAlon Fliess
 
Introduction to WSO2 Data Analytics Platform
Introduction to  WSO2 Data Analytics PlatformIntroduction to  WSO2 Data Analytics Platform
Introduction to WSO2 Data Analytics PlatformSrinath Perera
 
Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendJoseluis Laso
 
Creating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdfCreating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdfShaiAlmog1
 
Integration Overview
Integration OverviewIntegration Overview
Integration OverviewDavid Facter
 

Semelhante a Delivering Millions of Push Notifications in Minutes (20)

(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014
(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014
(MBL305) The World Cup Second Screen Experience | AWS re:Invent 2014
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
Scaling push notifications to millions of devices using notification hubs
Scaling push notifications to millions of devices using notification hubsScaling push notifications to millions of devices using notification hubs
Scaling push notifications to millions of devices using notification hubs
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic Apps
 
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
 
Rhinos have tea_on_azure
Rhinos have tea_on_azureRhinos have tea_on_azure
Rhinos have tea_on_azure
 
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
 
Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile Apps
 
Hybrid organization building modern business apps with windows azure notifica...
Hybrid organization building modern business apps with windows azure notifica...Hybrid organization building modern business apps with windows azure notifica...
Hybrid organization building modern business apps with windows azure notifica...
 
Lime - Push notifications. The big way.
Lime - Push notifications. The big way.Lime - Push notifications. The big way.
Lime - Push notifications. The big way.
 
Ventures Unlimited Product Overview Vtxt
Ventures Unlimited   Product Overview   VtxtVentures Unlimited   Product Overview   Vtxt
Ventures Unlimited Product Overview Vtxt
 
ELEVATE Paris
ELEVATE ParisELEVATE Paris
ELEVATE Paris
 
SignalR tutorial & best practices
SignalR tutorial & best practicesSignalR tutorial & best practices
SignalR tutorial & best practices
 
以Device Shadows與Rules Engine串聯實體世界
以Device Shadows與Rules Engine串聯實體世界以Device Shadows與Rules Engine串聯實體世界
以Device Shadows與Rules Engine串聯實體世界
 
Generating cross platform .NET based azure IoTdevice
Generating cross platform .NET based azure IoTdeviceGenerating cross platform .NET based azure IoTdevice
Generating cross platform .NET based azure IoTdevice
 
Introduction to WSO2 Data Analytics Platform
Introduction to  WSO2 Data Analytics PlatformIntroduction to  WSO2 Data Analytics Platform
Introduction to WSO2 Data Analytics Platform
 
Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backend
 
Creating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdfCreating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdf
 
Integration Overview
Integration OverviewIntegration Overview
Integration Overview
 

Mais de Sasha Goldshtein

Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing LandscapeSasha Goldshtein
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerSasha Goldshtein
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF AbyssSasha Goldshtein
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkSasha Goldshtein
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSasha Goldshtein
 
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinC# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinSasha Goldshtein
 
Modern Backends for Mobile Apps
Modern Backends for Mobile AppsModern Backends for Mobile Apps
Modern Backends for Mobile AppsSasha Goldshtein
 
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013Sasha Goldshtein
 
Mastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionMastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionSasha Goldshtein
 
Building iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesBuilding iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesSasha Goldshtein
 
Attacking Web Applications
Attacking Web ApplicationsAttacking Web Applications
Attacking Web ApplicationsSasha Goldshtein
 
First Steps in Android Development
First Steps in Android DevelopmentFirst Steps in Android Development
First Steps in Android DevelopmentSasha Goldshtein
 
First Steps in iOS Development
First Steps in iOS DevelopmentFirst Steps in iOS Development
First Steps in iOS DevelopmentSasha Goldshtein
 
JavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows AzureJavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows AzureSasha Goldshtein
 
First Steps in Android Development with Eclipse and Xamarin
First Steps in Android Development with Eclipse and XamarinFirst Steps in Android Development with Eclipse and Xamarin
First Steps in Android Development with Eclipse and XamarinSasha Goldshtein
 

Mais de Sasha Goldshtein (20)

Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing Landscape
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF Primer
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF Abyss
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET Framework
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS X
 
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinC# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
 
Modern Backends for Mobile Apps
Modern Backends for Mobile AppsModern Backends for Mobile Apps
Modern Backends for Mobile Apps
 
.NET Debugging Workshop
.NET Debugging Workshop.NET Debugging Workshop
.NET Debugging Workshop
 
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
 
Mastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionMastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and Production
 
Introduction to RavenDB
Introduction to RavenDBIntroduction to RavenDB
Introduction to RavenDB
 
State of the Platforms
State of the PlatformsState of the Platforms
State of the Platforms
 
Building iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesBuilding iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile Services
 
Task and Data Parallelism
Task and Data ParallelismTask and Data Parallelism
Task and Data Parallelism
 
What's New in C++ 11?
What's New in C++ 11?What's New in C++ 11?
What's New in C++ 11?
 
Attacking Web Applications
Attacking Web ApplicationsAttacking Web Applications
Attacking Web Applications
 
First Steps in Android Development
First Steps in Android DevelopmentFirst Steps in Android Development
First Steps in Android Development
 
First Steps in iOS Development
First Steps in iOS DevelopmentFirst Steps in iOS Development
First Steps in iOS Development
 
JavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows AzureJavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows Azure
 
First Steps in Android Development with Eclipse and Xamarin
First Steps in Android Development with Eclipse and XamarinFirst Steps in Android Development with Eclipse and Xamarin
First Steps in Android Development with Eclipse and Xamarin
 

Último

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Delivering Millions of Push Notifications in Minutes

  • 1.
  • 2. Laat ons weten wat u vindt van deze sessie! Vul de evaluatie in via www.techdaysapp.nl en maak kans op een van de 20 prijzen*. Prijswinnaars worden bekend gemaakt via Twitter (#TechDaysNL). Gebruik hiervoor de code op uw badge. Let us know how you feel about this session! Give your feedback via www.techdaysapp.nl and possibly win one of the 20 prizes*. Winners will be announced via Twitter (#TechDaysNL). Use your personal code on your badge. * Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are examples
  • 3. Delivering Millions of Push Notifications in Minutes Sasha Goldshtein CTO, Sela Group Microsoft C# MVP, Azure MRS, Azure Insider blog.sashag.net @goldshtn
  • 4. Typical Push System Diagram Platform Push Provider Your Web Service Database App
  • 5. Azure Mobile Services is a backend for your mobile apps … that has a free tier … cloud scale … support for all mobile platforms
  • 6. Mobile Services Push Architecture Microsoft Azure SQL DatabaseNode + Express backen d Apple Push Notification Service Windows Notification Service Google Cloud Messaging Microsoft Push Notification Service URI/Token Device Type ID aabc 43df … iOS 123456 https://live.. . Windows 8 789123 56aaffbb… Android 456789 Server scripts Managed by you
  • 7. Azure Notification Hubs … abstract away platform push services … support targeted multi-tag delivery … scale to millions of users … Mobile Services or any other
  • 8. Notification Hub Push Architecture Microsoft Azure Node + Express backen d Apple Push Notification Service Windows Notification Service Google Cloud Messaging Microsoft Push Notification Service Server scripts Notification Hub Service SQL Database Tag URIs/Tokens Templates sports [ ab…, 5a…, …] alert: … <toast…> data: …news [ bc…, 5a…, …] 123456 [ 5a… ] Not managed by you
  • 9. Options for Push Notifications Registration Push Through Mobile Service Explicit channel management Mobile Services push module Directly from client to Notification Hub Azure hub module from Mobile Service Azure NuGet package from other backendThrough Mobile Service to Notification Hub
  • 10. Registration Tags… …are totally up to you! Examples: user:123456 region:Europe sports news conversation:aa412
  • 11. Per-Platform Registration from Mobile Service hub.wns.createNativeRegistration( request.body.channelUri, [request.user.userId, ‚sports‛], function (error, registration) { ... } ); hub.apns.createNativeRegistration( request.body.deviceToken, [request.user.userId, ‚sports‛], function (error, registration) { ... } );
  • 12. Direct Registration from Windows 8 Client var channel = await PushNotificationChannelManager. CreatePushNotificationChannelForApplicationAsync(); var hub = new NotificationHub(name, connString); await hub.RegisterNativeAsync(channel.Uri);
  • 13. Push from Mobile Service hub.wns.sendToastText02( [ ‘sports’, ‘news’ ], { text1: ‘Breaking news’, text2: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error) { ... } );
  • 14. Push from Mobile Service hub.apns.send ( [ ‘sports’, ‘news’ ], { badge: 1, alert: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error) { ... } );
  • 15. Push from Other .NET Backend var hub = NotificationHubClient. CreateClientFromConnectionString(connString, name); var toast = @‛...<text id=‘1’>‛ ‚AFC Ajax defeats FC Twente 3-0‛ ‚</text>...‛; await hub.SendWindowsNativeNotificationAsync(toast);
  • 16. Demo Notification Hubs with .NET Backend Notification Hubs from Console App
  • 17. Per-Platform Registrations Aren’t That GreatSeparate registration API for each platform Separate payload for each platform But: More control over push customization
  • 18. Template Registration hub.wns.createToastText01Registration( request.body.channelUri, [ ‘sports’, request.user.userId ], { text1: ‘$(breakingnews)’ }, function (error, registration) { ... } ); hub.apns.createTemplateRegistration( request.body.deviceToken, [ ‘sports’, request.user.userId ], { aps: { alert: ‘$(breakingnews)’ } }, function (error, registration) { ... } );
  • 19. Registration Template Channel URI / Device Token Device Type 12345678… {‚aps‛:{‚alert‛:‛$(breakingnews)‛}} abcd 12f0 … iOS 45678901… {‚data‛:{‚message‛:‛$(breakingnews)‛}} 556a432f… Android 78901234… <?xml version="1.0" encoding="utf- 8"?><wp:Notification xmlns:wp="WPNotification"><wp:Toast><wp:T ext1>Breaking news</wp:Text1><wp:Text2>$(breakingnews)< /wp:Text2></wp:Toast></wp:Notification> https://live... Windows Phone 34567890… <toast><visual><binding template="ToastText02"><text id="1">Breaking news</text><text id="2">$(breakingnews)</text</visual></to ast> https://live... Windows 8
  • 20. Template Push hub.send( [ ‘sports’, ‘news’ ], { breakingnews: ‘AFC Ajax defeats FC Twente 3-0’ }, function (error, outcome) { ... } );
  • 23. Laat ons weten wat u vindt van deze sessie! Vul de evaluatie in via www.techdaysapp.nl en maak kans op een van de 20 prijzen*. Prijswinnaars worden bekend gemaakt via Twitter (#TechDaysNL). Gebruik hiervoor de code op uw badge. Let us know how you feel about this session! Give your feedback via www.techdaysapp.nl and possibly win one of the 20 prizes*. Winners will be announced via Twitter (#TechDaysNL). Use your personal code on your badge. * Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are examples