27

Windows Phone Azure Mobile Services - Backend as a Service

Embed Size (px)

DESCRIPTION

Predavanje održano za godišnjoj Microsof Bosna i Hercegovina konferenciji - MS NetWork 4

Citation preview

Page 1: Windows Phone Azure Mobile Services - Backend as a Service
Page 2: Windows Phone Azure Mobile Services - Backend as a Service
Page 3: Windows Phone Azure Mobile Services - Backend as a Service

Windows Phone podaci po želji

Web servisi ili Azure BaaS

Damir Divković, Gama System d.o.o.Amar Mešić, Source Code d.o.o.

Page 4: Windows Phone Azure Mobile Services - Backend as a Service
Page 5: Windows Phone Azure Mobile Services - Backend as a Service

Uvod u Mobile Services• Šta je MS Windows Azure• BaaS i razvojni put Azure Mobile

Services• Arhitektura i Management Portal• Konfiguracija Windows Azure Mobile

Services• Best practices i Troubleshooting

Page 6: Windows Phone Azure Mobile Services - Backend as a Service

Šta je MS Windows Azure• Computing i Service

platforma (data centri)• Razvojna okolina:– Windows Azure SDK Tools– Windows Azure Tools za Visual

Studio• Mogućnosti i osobine:– Compute– Data Services– Networking– App Services

Page 7: Windows Phone Azure Mobile Services - Backend as a Service

Backend as a Service (BaaS)• Pruža back-end u oblaku za mobilne

aplikacije• Rješenje za mobilne aplikacije– Brže i lakše za developere (Time to Market)– Automatska skalabilnost– Zajedničke back-end osobine:

• pohrana podataka,• integracija sa društvenim mrežama,• autentifikacija,• push notifikacije

Page 8: Windows Phone Azure Mobile Services - Backend as a Service

Klasični WEB servisi (I)• Standard W3C• Zasnovani na XML, dobro definirani, raširen

standard za:– opis i prosljeđivanje parametara,– odgovor servisa,– otkrivanje servisa itd.

• Zasnovan na SOAP – vraća podatke u XML formatu

• Podržava samo HTTP protokol • Može biti hostan samo na IIS

Page 9: Windows Phone Azure Mobile Services - Backend as a Service

Klasični WEB servisi (II)• Nedostaci:– Web service requests su veliki i problematični za

mobline klijente ili spore konekcije– HTTP i HTTPS nisu predviđeni za dugotrajne sesije– HTTP i HTTPS su "stateless„ interakcija je kratka i

kada se podaci ne razmjenjuju server i klijent nemaju spoznaje stanja u kojem se nalaze

– Ako server ne dobije zahtjev od klijenta u određenom vremenu, podrazumijeva da je neaktivan i uklanja sve informacije koje je čuvao.

Page 10: Windows Phone Azure Mobile Services - Backend as a Service

Razvojni put Mobile Services• Očito je: najbolje aplikacije su povezane i mobilne• Razumijevanje korisničkog identiteta i konteksta• Pravovremeno ažuriranje putem Push

Notifications • Moćna i strukturirana pohrana podataka za

postizanje kolaboracije i društvenih osobina• Developeri brzo razvijaju servise za aplikacije:

– Korak 1: Windows Azure Trial– Korak 2: Prijava Windows Azure Management Portal – Korak 3: Kreiranje novog Mobile Service

• Tendencija razvoja je prema ASP.NET Web API

Page 11: Windows Phone Azure Mobile Services - Backend as a Service

Arhitektura Mobile Services

SQL Database & Tables

ASP.

NET

Windows Azure Mobile Service

Azure SQL Database

Client SDK & API

Client App

Data Services (CRUD) Authentication Services Push Notifications

Windows 8 Windows Phone Apple iOS Android HTML5/JS

Windows 8 Windows Phone Apple iOS Android HTML5/JS REST/HTTP

REST API

Monitoring and Logging 3rd Party Services

Server Side Scripts

Page 12: Windows Phone Azure Mobile Services - Backend as a Service

Management portal - DEMO

Page 13: Windows Phone Azure Mobile Services - Backend as a Service

Konfiguracija Mobile Services

Kreiranje mobile service Naziv instance servisa. Windows Azure SQL baza sa loginom i passwordom.

Brisanje mobile service Opcija: Brisanje podataka i uklanjanje sheme – čuva bazu za potrebe drugih servisa

Upravljanje ključevima (keys) Application i Master keys služe za ograničavanje pristupa tabelama.

Promjena baze podataka Kreiranje nove baze ili korištenje postojeće.

Skaliranje mobile service Povećanje kapaciteta dodavanjem instanci rola. Single instance ili Autoscale.

Konfiguracija identiteta Integracija sa provajderima identiteta: Microsoft, Facebook, Tweeter, Google, Azure Active Directory

Cross-origin resource sharing Način da specificirate domene sa kojih su dopušteni pristupni zahtjevi prema vašem mobilnom servisu za hostane aplikacije

Source control Konfiguracija ugrađenog Git repozitorija za pohranu serverskih skripti.

App settings Aplikativne postavke koje se koriste za sigurnu pohranu podataka, recimo third-party credentials, kojima se pristupa iz serverskih skripti.

Page 14: Windows Phone Azure Mobile Services - Backend as a Service

Best practices 4 development

• Ponovno korištenje koda u projektima• Dijeljenje koda W8 i WP8 (Portable Class Libraries, Linked

source files)• Enkripcija zauvijek: W8 - PasswordVault, WP8 - Data

Protection API (DPAPI) • Asinhroni pozivi, straničenje, korisniku prikaži samo

relevantne podatke• Zahtjevi za povezivanje:

– Pristup pouzdanoj Wi-Fi ili GSM mreži– Svježina podataka – trenutni ili keširani podaci?– Brzina mreže – treba li keširati?

• Demo mode: Prodaje aplikaciju. Stvorite lokalni data store i postavku dobijanja podataka lokalno ili od servisa

Page 15: Windows Phone Azure Mobile Services - Backend as a Service

Rješavanje (troubleshooting) problema...

• ... je izolacija problema• Status Mobile Services: Windows Azure Service

Dashboard• Zavirite u LOGS tab• DASHBOARD:  Jeste li prekoračili upotrebu u bilo kojoj

kategoriji• Greška „500”: Problem sa Mobile Service, Scheduler,

insert, read, update ili delete skriptama - uključite ‘ENABLE DYNAMIC SCHEMA’ osobinu

• Greška „401”: Autentifikacija.  Provjerite na DATA tabu koje dozvole su postavljene na tabeli kojoj pristupate

• Savjet: Uključite se u Azure ili Mobile Services forume (http://social.msdn.microsoft.com/Forums/windowsazure/en-US/home?forum=azuremobile)

Page 16: Windows Phone Azure Mobile Services - Backend as a Service

Mobile Services – Client Side• Kreiranje aplikacija za Azure Mobile

Services• Azure Mobile Services SDK• Mobile Services Client Data• Autentifikacija• BaaS i klasični web servisi

Page 17: Windows Phone Azure Mobile Services - Backend as a Service

Azure Mobile Services SDK• Mobile Services Client Library za .NET– Podrška za Win8 (JS), WinPhone, iOS,

Android, Xamarin, Unity– Open source– Dostupan preko nuget

• Portable Class Library – Identity feature potrebno implementirati

za svaku platformu posebno

Page 18: Windows Phone Azure Mobile Services - Backend as a Service

Mobile Services Clientpublic static MobileServiceClient MobileService = new MobileServiceClient( „AppUrl", „AppKey" );

• GetTable – referenca na tabelu• InvokeAPI – poziva custom API definisanu unutar

Mobile Service• Login – prijava korisnika preko access tokena• Logout – odjava korisnika• ApplicationKey, ApplicationUrl, CurrentUser

Page 19: Windows Phone Azure Mobile Services - Backend as a Service

Mobile Services Client Data

private IMobileServiceTable<TableItem> myTable = App.MobileService.GetTable<TableItem>();

• Sve funkcije za rad sa podacima u Mobile Services tabelama su smještene u MobileServiceTable objekat

• CRUD operacije– InsertAsync– UpdateAsync– DeleteAsync– ToCollectionAsync (Filtriranje, Paging)– Server Side Scripting

Page 20: Windows Phone Azure Mobile Services - Backend as a Service

DEMO

Mobile Services Client Data

Page 21: Windows Phone Azure Mobile Services - Backend as a Service

Autentifikacija• Podrška za vanjske identity providere:– Facebook, Google, Microsoft Account,

Twitter, Azure Active Directory • Permisije za pristup pojedinim tabelama i

operacijama• Server i Client Auth (preko web auth UI ili

platform specific SDK)

Page 22: Windows Phone Azure Mobile Services - Backend as a Service

Autentifikacija• Registrovati aplikaciju kako bi dobili APP ID

i APP SECRET• Dodati auth kod unutar aplikacije• LoginAsync i

MobileServicesAuthenticationProvider

Page 23: Windows Phone Azure Mobile Services - Backend as a Service

Šta nam BaaS pruža?• Push notifikacije• Validacija i error handling • Server skripte• Dynamic Schema• Client library (.NET, JS, C++, iOS)• REST API putem GET i POST

Page 24: Windows Phone Azure Mobile Services - Backend as a Service

BaaS vs Web ServicesAzure Web Services

• Quick start• Mobile SDK• Data Security• Authentication• Push notifications

• Self hosted• Podrša za razne

output formate (JSON, XML)

• Podrška za napredne HTTP funkcije

• URL Routing

Page 25: Windows Phone Azure Mobile Services - Backend as a Service

HVALA NA PAŽNJI

PITANJA?

Page 26: Windows Phone Azure Mobile Services - Backend as a Service
Page 27: Windows Phone Azure Mobile Services - Backend as a Service

Ne zaboravite ispuniti upitnike.Čekaju vas vrijedne nagrade!