Foto av Magnus Larsson Foto av Mats Ekhammar

Reactive Tutorial Tutorial

// Magnus LarssonMats Ekhammar

Tutorial från Cadec 2015

Med ett ständigt ökande antal uppkopplade enheter (mobiler, plattor, “Internet of things” …) ökar kravet på att kunna hantera många samtidiga anrop till våra system. Traditionellt har Java baserade system använt så kallad ”blocking I/O”, dvs allokerat en tråd för varje inkommande anrop. Detta resulterar i begränsad skalbarhet samt dålig tolerans för fel orsakat primärt av dränerade trådpooler.

En nyckelfaktor för att lösa dessa problem är att utnyttja asynkrona mekanismer i underliggande operativsystem som ger möjlighet till så kallad ”non-blocking I/O”. Denna teknik allokerar inte en tråd per anrop vilket leder till betydligt bättre skalbarhet och feltolerans.

Användning av ”non-blocking I/O” leder dock till en callback baserad programmeringsmodell. I lite mer komplexa fall leder detta till svårhanterlig källkod, också känt som “callback hell”. För att råda bot på ”callback hell” har det vuxit fram ett antal ramverk som är baserade på en ansats som kallas ”reactive programming”.

I denna tutorial kommer du att få se prov på ovanstående problem samt möjliga lösningar i ett antal övningar. Vi kommer tillhandahålla en VirtualBox image (www.virtualbox.org) som skall användas under övningarna. Imagen är baserad på Linux och innehåller en utvecklingsmiljö med bla Java 8, Git och Eclipse. Grundläggande kunskap om dessa verktyg rekommenderas för att kunna tillgodogöra sig övningarna fullt ut.

GitHub

Kommentarer