Om du hänger med inom trender för systemutveckling har du garanterat stött på namnet Node.js, speciellt inom webbutveckling. Men om du inte har byggt några applikationer själv på den plattformen kanske du inte har koll på hur den fungerar.

Här följer IDG News beskrivning av den grundläggande strategin för den populära Javascriptbaserade serverplattformen. Till att börja med att det är frågan om en miljö för att köra Javascriptapplikationer som fungerar på de populära operativsystemen. Lägg till det att Javascript redan var mycket populärt för att bygga klientlösningar när Node.js introducerades.

Upprinnelsen till Node.js, som såg dagens ljus i maj 2009, är kraven på skalbarhet, korta fördröjningar (latency) och att kunna hantera stor trafik för webbapplikationer. Det är svårt att kombinera låg fördröjningen och tung trafik med skalbarhet.

Med Node.js försöker man hantera den gordiska knuten med en strategi som går ut på att inte blockera en webbserver med förfrågningar till den. Det innebär att Node.js inte behöver lägga tid på att vänta på svar.

Den traditionella lösningen för webbservrar har varit att varje ny förfrågan resulterar i en ny tråd, eller kanske till och med ny process, för att bevaka kommunikationen. Det innebär att mycket kraft går till spillo, vilket brukar kallas för ”overhead”. Om antalet trådar är stort tvingas servern lägga mycket kraft på att hantera dem.

Node.js hanterar alla händelser i samma tråd, utan att blockera in- och utmatning. Om det är absolut nödvändigt kan nya trådar köras i gång och belastning kan spridas på flera processorkärnor. Det är en mindre lösning än för till exempel webbservrar som Apache och Microsofts IIS, samt för andra plattformar som Java, Asp Net och Ruby on Rails.

För att det skulle fungera i praktiken beslutade sig Ryan Dahl, skaparen av Node.js, att används Googles Javascriptmotor V8. Det gjorde det enklare för utvecklare som använt Javascript för att bygga klientapplikationer att ge sig i kast med Node.js för serverbaserade applikationer.

Om du vill gräva djupare i hur Node.js fungerar kan du läsa vidare här.