Eijsink/Booq
Stack: Java, AWS IoT Core, Lambda en SQS
Booq platform
Door Dick Eimers, Cloud Architect en CTO bij Profit4Cloud
Booq is een platform voor reserveren, bestellen, afrekenen en produceren voor de horeca, vrijetijd en catering. Booq wordt ontwikkeld en geleverd door Eijsink, de marktleider in Nederland. Het Booq platform is gebaseerd op een gedistribueerde architectuur waarbij een gedeelte van de processen lokaal -bijvoorbeeld restaurant of keuken- afgehandeld worden en een deel van de processen centraal (in de cloud) worden afgehandeld. De lokale processen worden op verschillende devices uitgevoerd, zoals een handheld, tablet, een vaste POSen een lokale server. Door een steeds verregaande integratie van de (horeca)processen wordt de noodzaak voor real-time data-uitwisseling steeds groter. Daarnaast groeit, door het succes van het booq platform, het aantal devices enorm en neemt het belang van schaalbaarheid en beheer(s)baarheid met behoud van security toe. Om aan deze eisen te (kunnen blijven) voldoen, heeft Eijsink ervoor gekozen om de oplossing te transformeren naar een moderne IoT architectuur.
Voor deze transformatie is Eijsink een partnership met Profit4Cloud aangegaan. Binnen dit partnership heeft Eijsink kennis over het domein en de huidige oplossing ingebracht; de inbreng van Profit4Cloud bestond uit diepgaande kennis van architectuur en cloud-technologie.
De nieuwe IoT oplossing is gebaseerd op AWS services. Hierbij is gebruik gemaakt van services zoals AWS IoT Core, Lambda en SQS. De infrastructurele aspecten van de oplossing zijn “as code” geïmplementeerd met CloudFormation (IaC). De communicatie verloopt middels MQTT met AWS IoT Core als MQTT-broker. Authenticatie en encryptie maken gebruik van X.509 certificaten die gegenereerd worden door AWS IoT Core.
Behalve de schaalbaarheid is één van de grote voordelen van AWS IoT Core dat de configuratie van lokale devices vanuit de cloud gemanaged kunnen worden; hiervoor wordt gebruik gemaakt van de zogenaamde ‘device shadow’. Dit is een representatie van devices die de ‘gewenste situatie’ bevat die ervoor zorgt dat deze informatie uiteindelijk wordt gecommuniceerd vanuit de cloud naar de lokale devices, ook wanneer een lokaal device tijdelijk niet online is. Dit betekent dus 100% zekerheid dat de communicatie succesvol is en hiermee is een hele stabiele en betrouwbare oplossing neergezet.
Verder zijn met de nieuwe architectuur onder andere de registratie- en onderhoudsprocessen verbeterd. Dit levert een behoorlijke werklastreductie op en er is meer inzicht en efficiëntie.