palvelujen ohjelmointi

21
Palvelujen ohjelmointi Ahti Haukilehto Microsoft Regional Director, Finland

Upload: sovelto

Post on 14-Jul-2015

111 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Palvelujen ohjelmointi

Palvelujen ohjelmointi

Ahti Haukilehto Microsoft Regional Director, Finland

Page 2: Palvelujen ohjelmointi

Sisältö

• Palvelujen asentaminen Azureen

• WebApi

• WebSocket

• Azure Mobile Services

• Node.js

Page 3: Palvelujen ohjelmointi

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

Page 4: Palvelujen ohjelmointi

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

Page 5: Palvelujen ohjelmointi

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

Page 6: Palvelujen ohjelmointi

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)

Page 7: Palvelujen ohjelmointi

Microsoft /web ®

Web API on osa ASP.NET:iä

Page 8: Palvelujen ohjelmointi

Demo WebApi –palvelu

• Palvelu lisättiin olemassa olevaan MVC-sovellukseen

• Model: Entity Framework EDM

Page 9: Palvelujen ohjelmointi

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

Page 10: Palvelujen ohjelmointi
Page 11: Palvelujen ohjelmointi

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

Page 12: Palvelujen ohjelmointi

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

Page 13: Palvelujen ohjelmointi

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

Page 15: Palvelujen ohjelmointi

Azure Mobile Services

Page 16: Palvelujen ohjelmointi

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

Page 17: Palvelujen ohjelmointi

Demo Azure Mobile Services

• Dynaaminen kanta – client määrittää scheman

• Autentikointi

• Server-logiikka CRUD-JavaScript

Page 18: Palvelujen ohjelmointi

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

Page 19: Palvelujen ohjelmointi

Node.js

Page 20: Palvelujen ohjelmointi

Demo Node.js

• WebMatrix

• Hostaus Azuressa

Page 21: Palvelujen ohjelmointi

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