notifikasjoner i en asynkron verden

22
Notifikasjoner i en asynkron verden Joar Øyen @joaroyen

Upload: joar-oyen

Post on 05-Dec-2014

410 views

Category:

Technology


2 download

DESCRIPTION

I moderne web og mobile applikasjoner forventer brukerne å ha samme kontroll og oversikt som i tradisjonelle desktopapplikasjoner. Det skaper noen nye utfordringer for oss utviklere når front-end kjøres på en annen enhet en back-end som igjen typisk kjøres på en annen server en eksisterende kjernesystemer. I denne sesjonen viser Joar Øyen hvordan slike utfordringer er løst i en moderne web applikasjon fra Lindbak Retail Systems. Du får vite mer om Service Bus for Windows Server, Signal R og Windows Azure Notification Hubs og hvordan disse produktene er satt sammen for å holde brukere oppdatert i en asynkron verden.

TRANSCRIPT

Page 1: Notifikasjoner i en asynkron verden

Notifikasjoner i en asynkron verden

Joar Øyen@joaroyen

Page 2: Notifikasjoner i en asynkron verden

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!

Page 3: Notifikasjoner i en asynkron verden

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

Page 4: Notifikasjoner i en asynkron verden

Implikasjon

Uavhengige komponenter krever asynkron kommunikasjon i alle ledd og gir en hendelsesdrevet arkitektur

Page 5: Notifikasjoner i en asynkron verden

Arkitektur

Azure

Innomhus

Back OfficeBrowser Kjernesystem

Relay

Mobil klient

Service Bus Hub

Service Bus

Page 6: Notifikasjoner i en asynkron verden

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?

Page 7: Notifikasjoner i en asynkron verden

Endre bruker - Normaltilfellet

Demo

Page 8: Notifikasjoner i en asynkron verden

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

Page 9: Notifikasjoner i en asynkron verden

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

Page 10: Notifikasjoner i en asynkron verden

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

Page 11: Notifikasjoner i en asynkron verden

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, iOSog 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

Page 12: Notifikasjoner i en asynkron verden

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

Page 13: Notifikasjoner i en asynkron verden

AppFabric for Windows Server

Tillegg til Windows Server 2008, 2008 R2 og 2012

Autostart av web applikasjoner i IIS

Monitorering

Throttling

Page 14: Notifikasjoner i en asynkron verden

(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

Page 15: Notifikasjoner i en asynkron verden

Endre bruker - Feilsituasjon

Demo

Page 16: Notifikasjoner i en asynkron verden

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

Page 17: Notifikasjoner i en asynkron verden

Og nå…

Kode

Page 18: Notifikasjoner i en asynkron verden

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

Page 19: Notifikasjoner i en asynkron verden

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

Page 20: Notifikasjoner i en asynkron verden

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

Page 21: Notifikasjoner i en asynkron verden

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

Page 22: Notifikasjoner i en asynkron verden

Referanser

Service Bus for Windows Serverhttp://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx

SignalRhttp://signalr.net/

Windows Azure Service Bus Notification Hubhttp://msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx

Windows Azure Mobile Serviceshttp://www.windowsazure.com/en-us/develop/mobile/

AppFabric for Windows Serverhttp://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx

Presentasjonen legges up på SlideSharehttp://www.slideshare.net/joaroyen/