Upload
joar-oyen
View
410
Download
2
Embed Size (px)
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.
Citation preview
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, 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
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 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/