Windows Azure

Olika roller

Posted in Windows Azure on februari 2nd, 2009 by erik – 1 Comment

Jag insåg ganska snart när jag började fundera på detta projekt att det är själva kommunikationen mellan servern och klienten  som kommer att bli den svåra nöten. Servern har hand om alla partier och länkar samman användarna medan klienten är den programvara som varje användare kör på sin dator. I detta fall är klienten en Silverlight-applikation som bäddas in i en hemsida, och alltså körs direkt i webbläsaren.

På serversidan finns många olika vägar att gå, och den initiala vägen var Windows Azure. Efter en tids grävande på nätet i forum och bloggar så visar det sig att Azure inte är direkt anpassat för att vara back-end för en applikation som kräver närapå direktkontakt mellan klienterna.

Sättet som Azure jobbar är genom att ha två olika “roller” som man kan skapa. En web-role, som kan vara en hemsida t ex (alltså fungera som en Silverlight-klient i mitt fall), samt en worker-role som fungerar som en tjänst (eng: service, och skulle fungera som själva schackservern som klienterna ansluter till).

Problemet är att webbrollen och workerrollen inte pratar direkt med varandra, utan att man måste använda sig av ett lagringsmedium som mellan-länk.

Säg att jag på min klient skickar ett schack drag till min motståndare:

  1. Jag skickar mitt drag: 1.e4 till min motståndare i min webbläsare.
  2. Webbrollen tar mitt drag och lagrar det i “cloud storage” (se bild norpad från Johan Lindfors nedan)
  3. Workerrollen som ständigt ligger och tittar i cloud storage ser att det har kommit ett nytt drag. Han(?) plockar upp draget, ser om det är giltigt och lagrar det tillbaka i en annan cloud storage
  4. Min motståndare som sitter i sin webbläsare är ju också ansluten med en “egen” webbroll som ligger och tittar i cloud storage efter nya drag, och vips kommer ett drag från workerrollen som den plockar upp och visar på skärmen för motståndaren: 1.e4
Azure Architecture

Azures arkitektur

Som synes är det inte en optimal lösning då man som schackspelare vill ha en blixtsnabb kommunikation med sin motståndare. Möjligen är det en omväg att försöka bygga det här för Azure, men jag har inte riktigt gett upp hoppet än. Men det är värt att titta på alternativ.

Azure, WCF Duplex Polling eller gamla hederliga Sockets? Det är frågan.

On another note: Jag har nu klart ett anpassat bibliotek för att kontrollera ett schackdrags giltighet som kan köras både i klienten och på servern, samt börjat med ett silverlight-bräde som börjar bete sig som jag vill.

Vilket moln? Vilket moln!

Posted in Windows Azure on januari 22nd, 2009 by erik – 1 Comment

Windows Azure ['ejjshöör'] (på ren svenska(?)) – operativsystemet i molnet. Det är lite svårt att greppa vad det egentligen handlar om. The Cloud – molnet – är en representation av Internet, och har varit det länge. Visst består Internet av en himla massa hårdvara, men det blir mer och mer irrelevant för användare iom satsningar som Windows Azure. The Standard konstaterar:

Like a cloud, the Net can’t be pinned down - it’s alive, unpredictable[…]“

Tanken med Azure är att jag som utvecklare eller företag kan hyra “en plats” i molnet, skicka upp mina applikationer och min data där och sen inte bry mig ett dugg om hårdvaran. Har du grejer på en egen server så kommer du förr eller senare behöva uppdatera den, kanske med mer minne, lagringsutrymme eller operativsystem. Windows Azure sköter det hela transparent, och skalar ut vartefter min applikation växer. Jag koncentrerar mig på att skriva bra program, medan Azure ser till att det hela snurrar och körs som det ska.
Inte så tokigt!

En bra Azureöversikt hittade jag här.

Molnet på min dator

Som utvecklare kan du redan nu testa att utveckla mot Windows Azure, fast med molnet på din egen dator.

För att få igång Azure på Vista följde jag Dave Murrays Windows Azure Developer Starter Guide.

Det du behöver:

Sen behövs förstås Azure SDK och en plugin till Visual Studio som innehåller färdiga projektfiler att starta med.

När man väl har allt installerat kan jag rekommendera Bruno’s Blog: Windows Azure Services – Exercise 1 för ditt första “hello, world”.

För att aktivera IIS7 i Vista:

  • Öppna Kontrollpanelen och välj att visa den klassiska vyn.
  • Öppna Program och funktioner, välj Aktivera eller inaktivera Windows-funktioner
  • Här finns Internet Information Services i listan. Se till att den är markerad och gräv dig ner i detta träd till World Wide Web-tjänster, Programutvecklingsfunktioner, och se till att ASP.NET är markerad.