SlideShare a Scribd company logo
1 of 22
Download to read offline
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å SlideShare
http://www.slideshare.net/joaroyen/

More Related Content

Similar to Notifikasjoner i en asynkron verden

Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksisHåvard Wigtil
 
Distribuert utvikling på net platformen
Distribuert utvikling på net platformenDistribuert utvikling på net platformen
Distribuert utvikling på net platformenRune Sundling
 
Rwd seminar 2013
Rwd seminar 2013Rwd seminar 2013
Rwd seminar 2013CoreTrek
 
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...Kenneth de Brucq
 
eCampus status til IT-ledermøtet
eCampus status til IT-ledermøteteCampus status til IT-ledermøtet
eCampus status til IT-ledermøtetIngrid Melve
 
Hvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekterHvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekterAlexander Viken
 
Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?mudnaes
 
Digital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løftDigital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løftIngrid Melve
 
JavaZone 2006 - Gode grep når prosjektet blir stort
JavaZone 2006 -  Gode grep når prosjektet blir stortJavaZone 2006 -  Gode grep når prosjektet blir stort
JavaZone 2006 - Gode grep når prosjektet blir stortEirik Torske
 
Monolitter og byggeklosser jon erik solheim - stacc
Monolitter og byggeklosser   jon erik solheim - staccMonolitter og byggeklosser   jon erik solheim - stacc
Monolitter og byggeklosser jon erik solheim - staccJon Solheim
 
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 plattformHå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 plattformHå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 plattformHåvard Wigtil
 
Produktoversikt 2016
Produktoversikt 2016Produktoversikt 2016
Produktoversikt 2016Kimberly Phan
 
PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]Jermund Ottermo
 
Dataporten for grunnopplæringa - Workshop September 2017
Dataporten for grunnopplæringa - Workshop September 2017Dataporten for grunnopplæringa - Workshop September 2017
Dataporten for grunnopplæringa - Workshop September 2017Andreas Åkre Solberg
 

Similar to Notifikasjoner i en asynkron verden (20)

Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
 
Distribuert utvikling på net platformen
Distribuert utvikling på net platformenDistribuert utvikling på net platformen
Distribuert utvikling på net platformen
 
Rwd seminar 2013
Rwd seminar 2013Rwd seminar 2013
Rwd seminar 2013
 
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
 
Nokios Tv2012 Hva Forventer En Fjortis
Nokios   Tv2012   Hva Forventer En FjortisNokios   Tv2012   Hva Forventer En Fjortis
Nokios Tv2012 Hva Forventer En Fjortis
 
Nokios 2012 v0.6
Nokios 2012 v0.6Nokios 2012 v0.6
Nokios 2012 v0.6
 
eCampus status til IT-ledermøtet
eCampus status til IT-ledermøteteCampus status til IT-ledermøtet
eCampus status til IT-ledermøtet
 
Dataporten Workshop
Dataporten WorkshopDataporten Workshop
Dataporten Workshop
 
Hvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekterHvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekter
 
Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?Er Amazon EC2 klar for virksomhetskritiske systemer?
Er Amazon EC2 klar for virksomhetskritiske systemer?
 
Digital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løftDigital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løft
 
JavaZone 2006 - Gode grep når prosjektet blir stort
JavaZone 2006 -  Gode grep når prosjektet blir stortJavaZone 2006 -  Gode grep når prosjektet blir stort
JavaZone 2006 - Gode grep når prosjektet blir stort
 
Soa Runtime
Soa RuntimeSoa Runtime
Soa Runtime
 
Monolitter og byggeklosser jon erik solheim - stacc
Monolitter og byggeklosser   jon erik solheim - staccMonolitter og byggeklosser   jon erik solheim - stacc
Monolitter og byggeklosser jon erik solheim - stacc
 
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
 
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
 
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
 
Produktoversikt 2016
Produktoversikt 2016Produktoversikt 2016
Produktoversikt 2016
 
PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]
 
Dataporten for grunnopplæringa - Workshop September 2017
Dataporten for grunnopplæringa - Workshop September 2017Dataporten for grunnopplæringa - Workshop September 2017
Dataporten for grunnopplæringa - Workshop September 2017
 

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å SlideShare http://www.slideshare.net/joaroyen/