palvelujen ohjelmointi
TRANSCRIPT
Palvelujen ohjelmointi
Ahti Haukilehto Microsoft Regional Director, Finland
Sisältö
• Palvelujen asentaminen Azureen
• WebApi
• WebSocket
• Azure Mobile Services
• Node.js
Azure
• On kehittynyt huimasti – siis _todella_ paljon – kesän jälkeen
• Uusia tärkeitä asioita (osa vielä Preview) • IaaS
• kytkettävissä Site-to-Site VPN:llä osaksi sisäverkkoa, Virtual Network • System Center 2012 – virtuaalikuvien siirto Azure <-> On-Premises
• WebSite • 10 maksutonta ASP.NET siteä • Tarvittaessa skaalautuu
• Mobile Services
• Uusia SaaS –palveluja • Erityisesti TFS pilvestä
• 5:n käyttäjän ympäristö maksuton • Myös Team Build pilvestä
Jossa deployment Azureen
Demo
• SaaS, oma max. 5 hengen TFS • http://tfs.visualstudio.com • Maksuton nyt ja aina
• IaaS • Uuden WS 2012 palvelimen pystyttäminen, on osa sisäpalvelinverkkoa
• Yleensä 12 min, ei koskaan yli 18 min • Omien palvelimien sammuttaminen yöksi / käynnistäminen
• Powershell komentojono
• PaaS • WebSite, maksuton hostaus 10:lle sitelle • Skaalautuva
WebAPI
• ASP.NET MVC 4:n mukana tullut uusi Controller-tyyppi
• REST-palvelun toteuttaja • http(s) GET/POST/PUT/DELETE • JSON tai XML data
• Kilpailee WCF:n kanssa • WCF laajempi, sisältää SOAP:n ja Rest:n • Mutta WCF huomattavasti monimutkaisempi
• Ei vielä Odata –palvelua, mutta tulossa • Oli Betassa, mutta tuotantoversiossa poistettiin
Microsoft /web ®
WCF vrs. ASP.NET Web API
WCF
• Back-end Services
• SOAP, WS-*
• Transports: HTTP, TCP, UDP, Queues, WebSockets, custom
• Message patterns: request-reply, one-way, duplex
• Use WCF Web HTTP to add HTTP endpoints to existing WCF services
• Use WCF Data Services for full OData support
ASP.NET Web API
• Front-end Services
• Media Types: JSON, XML, form-URL-encoded, custom
• HTTP only
• Request-reply only
• REST, resource-centric
• Use SignalR for asynchronous signaling (polling, long-polling, WebSockets)
Microsoft /web ®
Web API on osa ASP.NET:iä
Demo WebApi –palvelu
• Palvelu lisättiin olemassa olevaan MVC-sovellukseen
• Model: Entity Framework EDM
WebSocket
• HTML5:n kuuluva TCP Socket-kommunikointitapa
• Nopea – ja palvelin voi nostaa tapahtumia
• Yhteys tehdään aina ensin HTTP(s):llä, ja sen socketia käytetään kommunikointiin • Palomuurit ovat ”voimattomia” : )
• Tuettuna • MS: Windows 8 / WS2012, vain IE 10 selain, IIS 8, WCF 4.5, ASP.NET 4.5 • Chrome, Firefox jne. myös aikaisemmat Windowsit, mutta vain uusimmat
selainversiot
• Siirtymävaiheessa: Käytä SingnalR JavaScript –kirjastoa. Osaa käyttää WebSocketia ja ellei se ole käytettävissä, käyttää Long Pollia
HTTP
Client
HTTP
Server 1
TCP
GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Origin: http://example.com
HTTP Upgrade Request
HTTP
Client
HTTP
Server
HTTP
Client
HTTP
Server HTTP Switching Protocols Response
1
2
TCP
TCP
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
HTTP Upgrade Request
HTTP
Client
HTTP
Server
HTTP Upgrade Request
HTTP
Client
HTTP
Server HTTP Switching Protocols Response
1
2
Web
Socket
Web
Socket 3
WebSocket Messages
WebSocket Messages
TCP
TCP
TCP
Binary or UTF8
Messages or streams
Demo
• http://html5labs.cloudapp.net/WebSockets/ChatDemo/wsdemo.html
Azure Mobile Services
Azure Mobile Services
• Data, autentikointi ja Push Notification -palvelut
• Rest-tyyppinen palvelu ennen kaikkea Mobile- ja WinRt-sovelluksille • Kaikki mobiililaitteet
• Autentikointikykyinen • Microsoft ID, Facebook, Google, Oauth
• Palvelinlogiikka kirjoitetaan JavaScriptillä
• Data luonteeltaan konfigurointi/profiili/”kevyttä” dataa • Mutta erittäin skaalautuva
Demo Azure Mobile Services
• Dynaaminen kanta – client määrittää scheman
• Autentikointi
• Server-logiikka CRUD-JavaScript
Node.js
• Server-koodi, joka kirjoitetaan JavaScriptillä • Miksi palvelimeen tarvitaan alustariippumaton ohjelmointiympäristö
• Erittäin suorituskykyinen (yksinkertaisissa tehtävissä)
• Mielenkiintoinen yksi-säikeinen toteutus • Oma koodi kirjoitettava aina tämä muistaen
• IIS 7+ osaa sen
• Paras MS-tuki tällä hetkellä WebMatrix –IDE:ssä • VS-tuki tulossa • TypeScript tullee olemaan se pääasiallinen Node.js JavaScript-kieli
Node.js
Demo Node.js
• WebMatrix
• Hostaus Azuressa
Yhteenveto
Palveluohjelmoinnissa tärkeimmät opeteltavat asiat
• Azure, Azure, Azure
• JavaScript ja REST
• Entity Framework ja Odata
• WinRT (sekä Windows 8 että Windows Phone 8) – mitä vaatimuksia nämä asettavat palveluille