Stack is het nieuwe platform

Laatst sprak ik met een aantal collega’s over ‘the Internet of things’ (IoT). Vooral elementen die deel uitmaken van een IoT-oplossing, zorgden voor de nodige discussie. En dan ging het niet over specificaties of functionaliteiten, maar over hoe je zo’n set aan elementen noemt. Platform is een term die hier vaak voorbijkomt. Deze beschrijft echter vooral een los element, bijvoorbeeld een dataopslag-platform. De andere benaming die wij gebruiken is ‘stack’, oftewel: de IoT-stack.

Veel mensen (onder wie ikzelf) geven de voorkeur aan de term stack. In artikelen over IoT kom je de woorden stack en platform in allerlei contexten tegen. Soms zelfs in dezelfde zin: “Microsoft Azure Stack is a new hybrid cloud platform product” of: “What is a good/scalable tech stack to use for cross platform messaging service?”.

In de wereld van business intelligence draait de Hadoop-stack van Spark op een IBM Big Data & Analytics-platform. We zien dus stacks die draaien op platforms, terwijl ook de term cross-platform steeds gangbaarder wordt. Blijkbaar kunnen we stacks gebruiken op verschillende platforms. En: is een stack toch niet hetzelfde als een platform.

Om de vraag nog beter te kunnen beantwoorden, nemen we even de definities van de termen onder de loep. 

Stack

Deze term wordt in de dataopslag gebruikt om het last in first out-principe (LIFO) te beschrijven. In dit geval gaat het echter meer om solution stack of software stack. Wikipedia omschrijft stack als een set van softwarecomponenten of –subsystemen waarmee je een compleet platform kunt ontwikkelen. Zonder dat er extra software nodig is om applicaties te ondersteunen. In deze definitie draaien applicaties op of bovenop het bewuste platform. 

Platform

In algemene zin is een computing platform een bestaand stuk software of code, dat gemaakt is om van binnenuit te werken en rekening houdt met beperkingen of mogelijkheden van de omgeving.

De term computing platform kent verschillende abstractieniveaus, waardoor deze betrekking kan hebben op bijvoorbeeld besturingssystemen en runtime libraries. Maar ook op specifieke hardware-architecturen. Al met al kan een computing platform beschouwd worden als het podium waarop een computer acteert.

Under construction

Een applicatie zou dus moeten draaien op een software stack, terwijl een platform is bedoeld om een applicatie op te laten draaien. Zo bezien lijken de termen stack en platform wel inwisselbaar. Als we nog eens goed naar de definities kijken, zouden we kunnen stellen dat stacks nodig zijn om platforms op te bouwen. De definitie van een stack zou dan kunnen zijn: een platform in aanbouw. Mits er iets bestaat als een ‘af’ platform.

Terug naar de oorspronkelijke discussie: IoT-stack of IoT-platform? Ik stel voor om vanaf nu te kiezen voor IoT-stack, omdat dit een mooie algemene term is. Alleen in combinatie met een specifieke implementatie (bijvoorbeeld: Microsoft IoT, Oracle IoT, IBM Bluemix) hebben we het over IoT-platform waarin we werken.

Voor nu is stack dus niet het nieuwe platform, maar een platform in wording.

Meer weten over IoT-stacks en -platformen?

Benieuwd naar de services die hiervoor mogelijk zijn bij uw IoT toepassingen? Neem dan contact op met Jorik Abspoel via onderstaande gegevens.