tisdag 4 mars 2014

Svensk teknik bakom Whatsapps succé - Computer Sweden

Svensk teknik bakom Whatsapps succé - Computer Sweden



Chatt-tjänsten Whatsapp har hamnat ordentligt i blickfånget
efter Facebooks uppköp för 19 miljarder dollar. Tittar man under huven
på tjänsten är en svensk innovation nyckeln till Whatsapp framgångar.




För några veckor sedan blev det liv i
luckan kring chatt-tjänsten Whatsapp i Sverige, när det visade sig att
poliser hade använt den som ett hjälpmedel i spaningsarbete. Det hela
uppmärksammades när poliserna av misstag bjöd in en person som föreläser
om integritet på sociala medier. Det visade sig att känslig information förekom i polisernas osanktionerade kommunikation.


Bara några dagar senare köper Facebook Whatsapp för 19 miljarder dollar, eller 123 miljarder kronor.


Grafik: Så stort är Whatsapp-köpet.


Båda händelserna är förstås ett
tecken på Whatsapps stora popularitet. En förutsättning för att tjänster
av den här typen ska bli heta är att antalet användare är stort och att
användarna är aktiva. Rent tekniskt innebär det stora krav.


En nyckel till bra prestanda för
Whatsapp är språket Erlang, med tillhörande programkörningsmiljö, dess
så kallade ”run-time”. Erlang skapades på Ericsson i mitten av
1980-talet. Så hur kommer det sig att just Erlang är lämpat för
tillämpningar som chatt?


– Erlang har sitt ursprung inom
telefoni. Där handlar det om att hantera många parallella sessioner,
precis som på en chatt-tjänst, säger Johan Bevemyr, systemarkitekt på
Tail-f Systems. Han har erfarenhet av Erlang, bland annat när han varit
med och skapat lösningar för betalningsföretaget Klarna.


På en konkret teknisk nivå lyfter
han fram flera saker. Till att börja med är det ”billigt” att skapa och
köra nya trådar i ett program. Eller i klartext, det går bra att låta
ett program göra många saker samtidigt, vilket är ett krav för en
chatt-tjänst. En tråd kan beskrivas som en serie instruktioner som
utförs i ett program. Flera trådar kan köras samtidigt.


För det andra finns det bra sätt att kommunicera mellan trådar i Erlang. Det sker genom att meddelanden skickas mellan dem


– Det finns inga delade minnesutrymmen, vilket underlättar kommunikation.


En tredje fördel är bra
felhantering. Felhanteringen kan begränsas till, och göras fullständig
för, den del av ett program som fallerar. Det betyder att bara det som
går fel påverkas, det behövs inte en omstart av hela programmet.


Ytterligare en fördel är att det går att uppgradera kod under körning av ett program, både för delar av ett program och för ett helt program.


Sammantaget gör de här fördelarna
Erlang väl lämpat för att skapa chatt-tjänster. Om fördelarna främst
kommer av att Erlang är ett funktionellt språk eller av att Erlangmiljön
implementerats på ett bra sätt låter Johan Bevemyr vara osagt. Men han
ser definitivt fördelar med att arbeta med funktionella språk.


– Jämfört med objektorienterade
program blir funktionella program lättare att överblicka. I
objektorienterade program göms logiken ofta i arvsstrukturen.
 

Inga kommentarer:

Skicka en kommentar