Internet

Byg et datalager i Microsofts sky

Windows Azure er navnet på Microsofts bud på cloud computing. Den omfatter en lang række tjenester, som bygger på softwaregigantens kendte serverprodukter og teknologier. Her ser vi på, hvordan Microsofts datalager-tjeneste i skyen kan benyttes ved hjælp af REST-teknologi.

Meget tyder på, at cloud computing er fremtidens model for serverapplikationer. Fordelene er i hvert fald klare nok: væsentligt nemmere skalering - serverparken kan udvides fra to til 20 servere fra minut til minut – mere gennemskuelige prismodeller, som bygger på forbrug af CPU, nettrafik osv, samt transparent failover og den bedre driftssikkerhed, som kæmpemæssige centraliserede hostingcentre giver mulighed for. Amazon har været først på området, Google ruster også op på sky-fronten, og Windows Azure er Microsofts nyeste bud på cloud computing.

Microsofts Azure adskiller sig fra Amazons tjenester og Google App Server ved, at Microsoft i Azure har skåret sine serversystemer i små stykker. Pointen er, at udviklerne kan bruge tjenesterne umiddelbart uden at skulle tænke på det driftsmæssige aspekt.

Tjenesterne i Azure omfatter .Net-miljøet til udvikling af serverapplikationer, tjenester til workflow og adgangskontrol, samt en cloud-baseret udgave af Microsofts Live-miljø, som kan synkronisere brugere og tjenester on- og offline.
Her kigger vi nærmere på én af tjenesterne i Azure, nemlig SQL Server Data Services (SDS). Som navnet siger, er der tale om en datatjeneste, men modellen ligner ikke meget de almindelige relationsdatabaser, og indtil videre er det heller ikke muligt at flytte SQL Server-applikationer til SDS.

Man kan teste Azure. Det gøres ved at skrive sig op på adressen www.microsoft.com/azure, hvorefter man bliver stillet i kø. I vores tilfælde gik der kun få dage fra tilmelding, til invitationen lå i indbakken.

Ikke nogen almindelig database
Datamodellen i SDS er som nævnt ganske anderledes end i almindelig relationsdatabase. Her er ingen databaser og tabeller. Det øverste niveau i SDS er ”authorities”, som består af en række containere, der indeholder ”entities” (Se fig. 1). Containere kan være homogene, hvor alle entities er af samme type, ligesom en tabel i en relationsdatabase, eller de kan være heterogene, hvor man kan putte hvad som helst i containeren. Hvis man putter blobs, store binære objekter, såsom billeder, lyd og video, i sine SDS-containere, udstyres de hver med en webadresse, så man kan tilgå eksempelvis en video i containeren via www.

Grænsefladen til SDS er som tidligere nævnt SOAP og REST, og det betyder blandt andet, at tjenesten ikke er knyttet specielt til .Net, men kan benyttes med alle sprog og miljøer. Når man via REST opretter en ny authority, gøres det ved at sende XML-stumpen
<s:Authority xmlns:s=’http://schemas.microsoft.com/sitka/2008/03/’>
   <s:Id>tanias_foerste_authority</s:Id>
</s:Authority>

til endepunktet data.database.windows.net/v1/. Protokollen er altså SSL, og kaldet skal autentificeres med det brugernavn og password, man fik ved indskrivningen til Azure.

En container oprettes på samme måde, ved at sende stumpen


<s:Container xmlns:s=’http://schemas.micro
soft.com/sitka/2008/03/’>
   <s:Id>MinContainer</s:Id>
</s:Container>

til endepunktet tanias_foerste_authority.data.database.windows.net/v1/.

Hver container skal have sit eget unikke id.


En entity skabes på samme facon. En speciel slags ”flexible” entity er en XML-stump, som kan indeholde metadata og egenskaber. Det kan se nogenlunde sådan ud:
<Book>
      <s:Id>MyBookId</s:Id>
      <title xsi:type=’x:string’>Some Title</title>
      <isbn xsi:type=’x:string’>11-1111-11-1</isbn>
      <author xsi:type=’x:string’>Mr. Author</author>
 </Book>
Her er id et metadata-element og resten egenskaber. Metadata og egenskaberne kan benyttes ved forespørgsler. Forespørgsler i SDS ligner SELECT-klausuler i SQL, og hvis forespørgslen ser sådan ud:
from e in entities where e.Kind == ”UsedBook” select e
– kan den udføres med dette kald:

(”%20” er http-indkodningen af blanktegnene i forespørgslen.)
Resultatet sendes tilbage til klienten som XML.

Microsofts Azure-tjenester ligner ikke helt de andre cloud-tjenester på markedet, og SDS er også en ny måde at tænke datalager på. Tiden må vise, om det falder i udviklernes smag. Azure er stadig i beta-fasen, og Microsoft vil ikke sige et ord om prismodellen.

Links

Dokumentationen til Azure har masser af eksempler på, hvordan REST-kaldene udføres, både i C#, Java, Ruby og Visual Basic. Det kan findes på adressen msdn.microsoft.com/en-us/library/cc512403.aspx - eller nemmere ved at søge på ”SQL Data Services.” 

 

Cloud computing
Servernes software og installationer er et specialist-arbejde, som ofte koster dyre konsulent-kroner i forbindelse med den løbende vedligeholdelse. Virtualisering har løst en del af problemet, da det gør det muligt for udviklerne at opsætte og teste systemerne på lokale testmaskiner, før de rulles ud på de hostede servere. Men alligevel er det som oftest fysiske maskiner, som virksomhederne benytter hos hostingfirmaerne, og kapaciteten kan ikke bare ændres fra den ene dag til den anden. Det er her, at cloud computing adskiller sig væsentligt fra tidligere tiders koncepter.