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.
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
Š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
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
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
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.
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
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
Management portal - DEMO
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.
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
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)
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
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
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
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
DEMO
Mobile Services Client Data
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)
Autentifikacija• Registrovati aplikaciju kako bi dobili APP ID
i APP SECRET• Dodati auth kod unutar aplikacije• LoginAsync i
MobileServicesAuthenticationProvider
Š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
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
HVALA NA PAŽNJI
PITANJA?
Ne zaboravite ispuniti upitnike.Čekaju vas vrijedne nagrade!