ݺߣ

ݺߣShare a Scribd company logo
Notifikasjoner i en asynkron verden
Joar ?yen
@joaroyen
Hva vi skal oppn? i kveld
? Hvorfor det er viktig ? gi brukere kontinuerlig
feedback
? Hvilke verkt?y og teknologier finnes p? .NET
plattformen i dag og hvordan de kan benyttes
? Dette er ikke rocket science!
Scenario: Butikkdata fra
Lindbak Retail Systems
? Moderne web front-end integrert med
eksisterende kjernesystemer
? Ny funksjonalitet bygges p? den nye web
plattformen
? Ny web applikasjon skal i st?rst mulig grad v?re
uavhengig av eksisterende l?sninger
? Skalerbarhet
? Oppetid
? Sikkerhet
? Versjonering
? Kundetilpasninger
http://www.lindbak.no/butikkdata
Implikasjon
? Uavhengige komponenter krever asynkron
kommunikasjon i alle ledd og gir en
hendelsesdrevet arkitektur
Arkitektur
Azure
Innomhus
Back OfficeBrowser Kjernesystem
Relay
Mobil klient
Service
Bus Hub
Service
Bus
Utfordring
? Uten tilbakemeldinger kan ikke brukere stole p?
l?sningen
? Hvordan h?ndtere situasjoner hvor brukeren m?
informeres eller h?ndtere nye hendelser som
oppstod i kj?lvannet av en tidligere operasjon?
? Hvordan sikre at vi har komponenter og tjenester
som kan ta i mot notifikasjonene?
Endre bruker - Normaltilfellet
Demo
Teknologi
? Service Bus for Windows Server
? SignalR
? Windows Azure Service Bus Notification Hub
? Windows Azure Mobile Services
? AppFabric for Windows Server
? Alle teknologiene er supportert av Microsoft i dag
Service Bus for Windows Server
? Tillegg til Windows Server 2008 R2 og 2012
? ?Fjor?rets Windows Azure Service Bus?
? Garantert asynkron leveranse av meldinger
? K?er
? Emner og abonnement (topics og subscriptions)
? Pr?ver ? levere meldinger p? nytt om abonnent ikke
kvitterer alt ok
? AD basert sikkerhet
? Skalerbar
SignalR
? Med i ASP.NET and Web Tools 2012.2 Update
? Bibliotek for n?r sanntids kommunikasjon mellom
browsere og back-end
? Tilbyr et h?yniv? API over kommunikasjonsm?ter
som WebSockets og HTTP long polling
? Kan sende meldinger til en eller flere mottakere
? Benytter sikkerhetsmekanismer i ASP.NET
Windows Azure Service Bus
Notification Hub
? Basert p? Azure Service Bus multicast og pub/sub
routing
? Plattformuavhengig
? St?tter de fleste enheter: Windows 8, Windows Phone 8, iOS
og Android
? Kan benyttes fra enhver serverside applikasjon: .NET, Node.js
og REST
? Kan skreddersys via maler
? Enhetsh?ndtering
? Skalerbar
? hundrevis av millioner notifikasjoner hver m?ned
? Gratis for inntil 500 enheter og 100.000 notifikasjoner
per m?ned
Windows Azure Mobile Services
? "Gratis" for inntil 500 enheter og 500.000 API kall
per dag
? St?tter plattform spesifikk push, men kan ogs?
benytte Notification Hubs
? Tilbyr i tillegg andre tjenester som
? Lagring i skjemal?se tabeller
? Cron-jobber
AppFabric for Windows Server
? Tillegg til Windows Server 2008, 2008 R2 og 2012
? Autostart av web applikasjoner i IIS
? Monitorering
? Throttling
(Andre komponenter og rammeverk
som benyttes i web applikasjonen)
? ASP.NET MVC 4
? jQuery
? Bootstrap
? KendoUI
? Knockout
? FontAwesome
? Modernizr
? Mousetrap
? EntityFramework
? AutoMapper
? Enterprise Library Logging
? Elmah
Endre bruker - Feilsituasjon
Demo
Hva har vi bygd
? Brukergrensesnitt som vises i browseren n?r brukeren f?r
notifikasjoner. Her kan brukeren f? mer informasjon om
hendelsen, navigere til kilden og bekrefte at notifikasjonen
er lest.
? SignalR hub for utsending av notifikasjoner n?r mottaker
har en levende sesjon
? WCF klient og tjeneste for publisering og mottak av
forretningshendelser mellom web og kjernesystem
? Service Bus Tokens/Subscriptions
? Hosting i AppFabric
? Tilsvarende WCF klient og tjeneste for ? sende asynkrone
notifikasjoner fra kjernesystem tilbake til web applikasjon
? Mottak og lagring av notifikasjoner i web applikasjonen
Og n?
Kode
Oppsummering
? Hvorfor det er viktig ? tenke p? ? gi brukere
kontinuerlig feedback?
? Ingen liker ? vente, spesielt ikke p? teknologi
? Uten gode tilbakemeldinger mister vi troen p?
teknologien
? Vi kan ikke forvente at brukere selv tar initiativ og f?lger
opp p?startede oppgaver for ? verifisere at alt er ok
Oppsummering
? Hvilke verkt?y og teknologier som finnes p? .NET
plattformen i dag og hvordan de kan benyttes?
? Bruk Service Bus Topics og Subscriptions for asynkron
kommunikasjon on-premise og i Azure
? Bruk SignalR for asynkron kommunikasjon mellom web
server og browsere
? Bruk Notification Hubs for plattform uavhengige
notifikasjoner for kommunikasjon mellom back-end og
mobile klienter
Oppsummering
? Dette er ikke rocket science!
? Teknologi og verkt?y for ? implementere asynkrone
notifikasjoner har dere i dag
? Asynkrone brukermeldinger er s? enkel ? implementere
at det er en low-hanging-fruit som kan forbedre enhver
brukeropplevelse p? web og p? mobil
Oppsummering
? Vi m? begynne ? gi slipp p? atomiske transaksjoner
? Verden er i kontinuerlig endring og vi kan ikke lengre
forvente at vi kan rulle tilbake til en tid da alt var OK
Referanser
? Service Bus for Windows Server
http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx
? SignalR
http://signalr.net/
? Windows Azure Service Bus Notification Hub
http://msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx
? Windows Azure Mobile Services
http://www.windowsazure.com/en-us/develop/mobile/
? AppFabric for Windows Server
http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx
? Presentasjonen legges up p? ݺߣShare
http://www.slideshare.net/joaroyen/

More Related Content

Similar to Notifikasjoner i en asynkron verden (20)

Distribuert utvikling p? net platformen
Distribuert utvikling p? net platformenDistribuert utvikling p? net platformen
Distribuert utvikling p? net platformen
Rune Sundling
?
GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen Wahlberg
Friprogsenteret
?
Et sanntids, utend?rs lagspill med .NET og Azure
Et sanntids, utend?rs lagspill med .NET og AzureEt sanntids, utend?rs lagspill med .NET og Azure
Et sanntids, utend?rs lagspill med .NET og Azure
Rune Rystad
?
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
H?vard Wigtil
?
Plug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate Development
Plug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate DevelopmentPlug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate Development
Plug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate Development
The Research Council of Norway, IKTPLUSS
?
Mobilstrategiske stikkord 27.03.12
Mobilstrategiske stikkord 27.03.12Mobilstrategiske stikkord 27.03.12
Mobilstrategiske stikkord 27.03.12
Stiftelsen Soria Moria
?
Cross-platform mobile development in c sharp with Xamarin
Cross-platform mobile development in c sharp with XamarinCross-platform mobile development in c sharp with Xamarin
Cross-platform mobile development in c sharp with Xamarin
Andreas Mosti
?
Hvordan lage en vellykket Windows Phone 7 App
Hvordan lage en vellykket Windows Phone 7 AppHvordan lage en vellykket Windows Phone 7 App
Hvordan lage en vellykket Windows Phone 7 App
Jonas Folles?
?
Meldingsbasert integrasjon
Meldingsbasert integrasjonMeldingsbasert integrasjon
Meldingsbasert integrasjon
Joar ?yen
?
Ett skritt ut i skya
Ett skritt ut i skyaEtt skritt ut i skya
Ett skritt ut i skya
Joar ?yen
?
Kryssplatform mobilutvikling i C#
Kryssplatform mobilutvikling i C#Kryssplatform mobilutvikling i C#
Kryssplatform mobilutvikling i C#
Runar Ovesen Hjerpbakk
?
Messaging-plattformer - Dagen @ IFI 2015
Messaging-plattformer - Dagen @ IFI 2015Messaging-plattformer - Dagen @ IFI 2015
Messaging-plattformer - Dagen @ IFI 2015
Henning Rokling
?
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
H?vard Wigtil
?
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
H?vard Wigtil
?
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattform
H?vard Wigtil
?
Presentasjon om skyen
Presentasjon om skyenPresentasjon om skyen
Presentasjon om skyen
Ole-Martin M?rk
?
Hjelp, vi m? prodsette
Hjelp, vi m? prodsetteHjelp, vi m? prodsette
Hjelp, vi m? prodsette
jorgenwahlberg
?
Verdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranserVerdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranser
Stein Inge Morisbak
?
Mellom bedriftens nettverk og skyen
Mellom bedriftens nettverk og skyenMellom bedriftens nettverk og skyen
Mellom bedriftens nettverk og skyen
MVP Dagen
?
Distribuert utvikling p? net platformen
Distribuert utvikling p? net platformenDistribuert utvikling p? net platformen
Distribuert utvikling p? net platformen
Rune Sundling
?
GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen Wahlberg
Friprogsenteret
?
Et sanntids, utend?rs lagspill med .NET og Azure
Et sanntids, utend?rs lagspill med .NET og AzureEt sanntids, utend?rs lagspill med .NET og Azure
Et sanntids, utend?rs lagspill med .NET og Azure
Rune Rystad
?
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
H?vard Wigtil
?
Plug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate Development
Plug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate DevelopmentPlug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate Development
Plug and play: Smarte apps for hjemmet, Erik Berg, Telenor Corporate Development
The Research Council of Norway, IKTPLUSS
?
Cross-platform mobile development in c sharp with Xamarin
Cross-platform mobile development in c sharp with XamarinCross-platform mobile development in c sharp with Xamarin
Cross-platform mobile development in c sharp with Xamarin
Andreas Mosti
?
Hvordan lage en vellykket Windows Phone 7 App
Hvordan lage en vellykket Windows Phone 7 AppHvordan lage en vellykket Windows Phone 7 App
Hvordan lage en vellykket Windows Phone 7 App
Jonas Folles?
?
Meldingsbasert integrasjon
Meldingsbasert integrasjonMeldingsbasert integrasjon
Meldingsbasert integrasjon
Joar ?yen
?
Ett skritt ut i skya
Ett skritt ut i skyaEtt skritt ut i skya
Ett skritt ut i skya
Joar ?yen
?
Messaging-plattformer - Dagen @ IFI 2015
Messaging-plattformer - Dagen @ IFI 2015Messaging-plattformer - Dagen @ IFI 2015
Messaging-plattformer - Dagen @ IFI 2015
Henning Rokling
?
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
H?vard Wigtil
?
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
H?vard Wigtil
?
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattform
H?vard Wigtil
?
Verdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranserVerdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranser
Stein Inge Morisbak
?
Mellom bedriftens nettverk og skyen
Mellom bedriftens nettverk og skyenMellom bedriftens nettverk og skyen
Mellom bedriftens nettverk og skyen
MVP Dagen
?

Notifikasjoner i en asynkron verden

  • 1. Notifikasjoner i en asynkron verden Joar ?yen @joaroyen
  • 2. Hva vi skal oppn? i kveld ? Hvorfor det er viktig ? gi brukere kontinuerlig feedback ? Hvilke verkt?y og teknologier finnes p? .NET plattformen i dag og hvordan de kan benyttes ? Dette er ikke rocket science!
  • 3. Scenario: Butikkdata fra Lindbak Retail Systems ? Moderne web front-end integrert med eksisterende kjernesystemer ? Ny funksjonalitet bygges p? den nye web plattformen ? Ny web applikasjon skal i st?rst mulig grad v?re uavhengig av eksisterende l?sninger ? Skalerbarhet ? Oppetid ? Sikkerhet ? Versjonering ? Kundetilpasninger http://www.lindbak.no/butikkdata
  • 4. Implikasjon ? Uavhengige komponenter krever asynkron kommunikasjon i alle ledd og gir en hendelsesdrevet arkitektur
  • 6. Utfordring ? Uten tilbakemeldinger kan ikke brukere stole p? l?sningen ? Hvordan h?ndtere situasjoner hvor brukeren m? informeres eller h?ndtere nye hendelser som oppstod i kj?lvannet av en tidligere operasjon? ? Hvordan sikre at vi har komponenter og tjenester som kan ta i mot notifikasjonene?
  • 7. Endre bruker - Normaltilfellet Demo
  • 8. Teknologi ? Service Bus for Windows Server ? SignalR ? Windows Azure Service Bus Notification Hub ? Windows Azure Mobile Services ? AppFabric for Windows Server ? Alle teknologiene er supportert av Microsoft i dag
  • 9. Service Bus for Windows Server ? Tillegg til Windows Server 2008 R2 og 2012 ? ?Fjor?rets Windows Azure Service Bus? ? Garantert asynkron leveranse av meldinger ? K?er ? Emner og abonnement (topics og subscriptions) ? Pr?ver ? levere meldinger p? nytt om abonnent ikke kvitterer alt ok ? AD basert sikkerhet ? Skalerbar
  • 10. SignalR ? Med i ASP.NET and Web Tools 2012.2 Update ? Bibliotek for n?r sanntids kommunikasjon mellom browsere og back-end ? Tilbyr et h?yniv? API over kommunikasjonsm?ter som WebSockets og HTTP long polling ? Kan sende meldinger til en eller flere mottakere ? Benytter sikkerhetsmekanismer i ASP.NET
  • 11. Windows Azure Service Bus Notification Hub ? Basert p? Azure Service Bus multicast og pub/sub routing ? Plattformuavhengig ? St?tter de fleste enheter: Windows 8, Windows Phone 8, iOS og Android ? Kan benyttes fra enhver serverside applikasjon: .NET, Node.js og REST ? Kan skreddersys via maler ? Enhetsh?ndtering ? Skalerbar ? hundrevis av millioner notifikasjoner hver m?ned ? Gratis for inntil 500 enheter og 100.000 notifikasjoner per m?ned
  • 12. Windows Azure Mobile Services ? "Gratis" for inntil 500 enheter og 500.000 API kall per dag ? St?tter plattform spesifikk push, men kan ogs? benytte Notification Hubs ? Tilbyr i tillegg andre tjenester som ? Lagring i skjemal?se tabeller ? Cron-jobber
  • 13. AppFabric for Windows Server ? Tillegg til Windows Server 2008, 2008 R2 og 2012 ? Autostart av web applikasjoner i IIS ? Monitorering ? Throttling
  • 14. (Andre komponenter og rammeverk som benyttes i web applikasjonen) ? ASP.NET MVC 4 ? jQuery ? Bootstrap ? KendoUI ? Knockout ? FontAwesome ? Modernizr ? Mousetrap ? EntityFramework ? AutoMapper ? Enterprise Library Logging ? Elmah
  • 15. Endre bruker - Feilsituasjon Demo
  • 16. Hva har vi bygd ? Brukergrensesnitt som vises i browseren n?r brukeren f?r notifikasjoner. Her kan brukeren f? mer informasjon om hendelsen, navigere til kilden og bekrefte at notifikasjonen er lest. ? SignalR hub for utsending av notifikasjoner n?r mottaker har en levende sesjon ? WCF klient og tjeneste for publisering og mottak av forretningshendelser mellom web og kjernesystem ? Service Bus Tokens/Subscriptions ? Hosting i AppFabric ? Tilsvarende WCF klient og tjeneste for ? sende asynkrone notifikasjoner fra kjernesystem tilbake til web applikasjon ? Mottak og lagring av notifikasjoner i web applikasjonen
  • 18. Oppsummering ? Hvorfor det er viktig ? tenke p? ? gi brukere kontinuerlig feedback? ? Ingen liker ? vente, spesielt ikke p? teknologi ? Uten gode tilbakemeldinger mister vi troen p? teknologien ? Vi kan ikke forvente at brukere selv tar initiativ og f?lger opp p?startede oppgaver for ? verifisere at alt er ok
  • 19. Oppsummering ? Hvilke verkt?y og teknologier som finnes p? .NET plattformen i dag og hvordan de kan benyttes? ? Bruk Service Bus Topics og Subscriptions for asynkron kommunikasjon on-premise og i Azure ? Bruk SignalR for asynkron kommunikasjon mellom web server og browsere ? Bruk Notification Hubs for plattform uavhengige notifikasjoner for kommunikasjon mellom back-end og mobile klienter
  • 20. Oppsummering ? Dette er ikke rocket science! ? Teknologi og verkt?y for ? implementere asynkrone notifikasjoner har dere i dag ? Asynkrone brukermeldinger er s? enkel ? implementere at det er en low-hanging-fruit som kan forbedre enhver brukeropplevelse p? web og p? mobil
  • 21. Oppsummering ? Vi m? begynne ? gi slipp p? atomiske transaksjoner ? Verden er i kontinuerlig endring og vi kan ikke lengre forvente at vi kan rulle tilbake til en tid da alt var OK
  • 22. Referanser ? Service Bus for Windows Server http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx ? SignalR http://signalr.net/ ? Windows Azure Service Bus Notification Hub http://msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx ? Windows Azure Mobile Services http://www.windowsazure.com/en-us/develop/mobile/ ? AppFabric for Windows Server http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx ? Presentasjonen legges up p? ݺߣShare http://www.slideshare.net/joaroyen/