Het Mendix-platform is een end-to-end APAAS-oplossing (Application Platform as a Service), waarin alles zit wat je als organisatie nodig hebt om van user story tot applicatie in productie te komen, inclusief beheer en monitoring. Zo kun je er op een simpele en doeltreffende manier applicaties mee ontwikkelen. In dit artikel maken we een applicatie die gebruik maakt van het Internet of Things, gebruikmakend van het LoRa network van KPN. Lora is zeg maar alleen de communicatielaag (denk 3g of wifi), speciaal toegespitst op IOT devices.

Steeds meer bedrijven rusten waardevolle of mobiele apparaten uit met sensoren die regelmatig gegevens versturen. Op die manier kun je waardevolle informatie verzamelen over bijvoorbeeld de omgeving, de toestand van het apparaat, of over de locatie. We nemen als voorbeeld een fietsverhuurder. Voor zo'n bedrijf is de combinatie van een GPS-chip, een goede applicatie en het LoRa-netwerk ideaal om te achterhalen waar de vervoermiddelen zich bevinden. Als het nodig is kunnen ze dan actie ondernemen door bijvoorbeeld de politie te waarschuwen. Maar de gebruiksgegevens kunnen ook worden gebruikt bij het efficiënter inplannen van onderhoudsbeurten. Hoe bouw je met Mendix een applicatie die hier optimaal gebruik van maakt? De kennis in dit artikel komt direct van Rinze Cats, Mendix-ontwikkelaar bij KPN. Hij is één van de organisatoren van de Mendix en IoT-hackathon op Mendix World.

Schrijf je in voor de hackathon

Wil je zelf aan de slag met Mendix om een applicatie te bouwen, schrijf je dan met een team van 2 of 3 personen in voor de hackathon op Mendix World, 6 en 7 juni in Rotterdam. Je krijgt toegang tot het LoRa-netwerk en er zijn experts aanwezig om je te begeleiden. In 24 uur bouw je zo een geweldige app.

Kijk hier waarom je vooral niet moet schromen om je in te schrijven voor een hackathon: 6 tips van veteranen voor je eerste hackathon.

Aan de slag

Zodra de business met een interessant IoT-idee komt, gebruik je de cloudomgeving sprintr om de backlog en sprints te definiëren. Vervolgens gebruik je de lokale Mendix Modeler om de user stories en taken van de actieve sprint om te zetten in een werkende applicatie. Online en in de tool zie je alle projecten van jouw organisatie en er is een Buzzfeed, zodat je altijd weet waar iedereen mee bezig is en wat er zoal speelt.

Je start een nieuw project en voegt jouw user stories toe aan de backlog. De fietsverhuurder wil het bijvoorbeeld direct weten als verhuurde fietsen buiten een bepaald gebied komen. Dat kan erop duiden dat de huurder is verdwaald of dat de fiets is gestolen. Als je daar een app voor wilt ontwikkelen, maak je een nieuwe sprint aan en sleept er de user stories naartoe die je als team wilt oppakken. Alle teamleden zien precies welke user stories deel uitmaken van de actuele sprint en kunnen er vervolgens taken aan toevoegen.

In sprintr definieer je de backlog en de sprints

Alles wat je nodig hebt in één tool

Zodra je een user story oppakt, bouw je in de Mendix Modeler alle schermen en flows die nodig zijn voor de functionaliteit. Er komt bij de fietsverhuurder bijvoorbeeld de melding binnen dat een bepaalde fiets te ver van de basis afdwaalt. Je bepaalt vervolgens hoe dit binnen de app in beeld komt en welke vervolgstappen de verhuurder kan nemen. Worden direct de gegevens van de huurder getoond of krijgt de gebruiker eerst een kaartje te zien waarop de locatie van de fiets wordt getoond? Wil je dat de verhuurder via de app direct contact kan opnemen met de huurder? Is een app voor de huurder ook onderdeel van het systeem en kun je daar misschien een melding naartoe sturen?

Ontwikkelen doe je in Mendix op een hoger niveau via modeleringstechnieken en standaard bouwblokken, waardoor het vrijwel niet meer nodig is om zelf code te schrijven en je snel en eenvoudig een applicatie bouwt. Dankzij de RAD-tools zet je met een paar muisklikken een complete CRUD-interface in elkaar voor je datamodel, geschikt voor weergave en gebruik op ieder willekeurig apparaat.

In je datamodel geef je aan welke actoren en entiteiten relevant zijn in je oplossing, welke onderlinge relaties ze hebben en welke rol een gebruiker nodig heeft om een taak uit te voeren. Het beveiligingsmodel van Mendix is zeer granulair. Je gebruikt het niet alleen voor het datamodel, maar ook voor zaken als pagina's en microflows. Dankzij de Modeller met zijn geavanceerde RAD-tools, heb je één omgeving om zowel de data, de security als de logica te modelleren.

Data model en responsive schermen

Op basis van het data model worden razendsnel en volledig automatisch de benodigde responsive schermen gegenereerd. Er zijn templates aanwezig, die je waar nodig kunt aanpassen. Schermen bouw je visueel op door er via een drag-and-drop-interface paginaelementen naartoe te slepen. Zo zet je snel het kaartje en de knop voor meer gegevens op hun plek.

Vaak voldoet een standaard invoer- of bewerkingsscherm, maar soms is er wat extra logica nodig of moeten er berekeningen worden uitgevoerd. Daarom zijn er ook knoppen waaraan je een microflow kunt koppelen, zodat je een stukje logica kunt laten uitvoeren. Bijvoorbeeld om een API of een web service aan te roepen, of een extern systeem te raadplegen. In luttele minuten voeg je zo features toe aan de app.

Op de volgende pagina: sluit je applicatie aan op het LoRa-netwerk

IoT-apparaten en het LoRa-netwerk

IoT-apparaten communiceren via het LoRa-WAN-protocol met het LoRa-netwerk. De fietsen van de verhuurder uit ons voorbeeld hebben trackers aan boord. Ze sturen regelmatig locatiegegevens via het LoRa-netwerk naar een centrale omgeving. Vanuit deze omgeving beheer je al je LoRa-apparaten en bepaal je wat er met de ontvangen berichten moet gebeuren. Behalve berichten ontvangen, kun je er overigens ook berichten naartoe sturen.

Schrijf je in voor de hackathon

Wil je zelf aan de slag met Mendix om een applicatie te bouwen, schrijf je dan met een team van 2 of 3 personen in voor de hackathon op Mendix World, 6 en 7 juni in Rotterdam. Je krijgt toegang tot het LoRa-netwerk en er zijn experts aanwezig om je te begeleiden. In 24 uur bouw je zo een geweldige app.

Kijk hier waarom je vooral niet moet schromen om je in te schrijven voor een hackathon: 6 tips van veteranen voor je eerste hackathon.

Door in Mendix een SOAP of REST endpoint te definiëren en te configureren, wordt iedere keer zodra een bericht van een fiets binnenkomt een microflow getriggered. Zo kun je zelf bepalen wat er met de ontvangen data gebeurt. Je kunt het bijvoorbeeld meteen in de applicatie gebruiken, of Mendix als integratietool inzetten waarbij je microflows gebruikt om inkomende data te bewerken en door te geven aan een extern systeem.

Zodra een fiets met een snelheid van 120 km per uur het gebied verlaat richting het zuiden, kan er bijvoorbeeld meteen een melding worden gegenereerd dat de fiets mogelijk gestolen is en kunnen automatisch acties worden uitgezet. Maar detailgegevens over routes kunnen ook in een data lake worden opgeslagen, zodat er later analyse op kan worden gedaan, bijvoorbeeld om te zien hoeveel kilometer een gemiddelde huurder aflegt en hoeveel tijd een fiets tijdens de verhuur stilstaat. Na een bepaald aantal kilometers moet de fiets natuurlijk goed worden nagekeken.

De locatie van de fiets wordt doorgegeven via het LoRa-netwerk

SOAP en REST endpoints

Via de Mendix Modeler is het standaard mogelijk om een SOAP endpoint in je applicatie op te nemen door een published web service toe te voegen en deze te configureren. Voor een REST endpoint heb je componenten nodig uit de REST Services module. Deze module haal je eerst op in de app store en importeer je in je project. Vervolgens configureer je de service zodat deze tegelijk met de applicatie opstart. De verschillende methoden van de service koppel je aan microflows, zodat je acties kunt uitvoeren op de binnenkomende data. Overigens krijgt de volgende versie van de Mendix Modeler native support voor REST en JSON. Op Github kun je alles vinden wat je nodig hebt voor het gebruik de REST-module.

Je applicatie kun je lokaal testen in een sandbox vanuit de Mendix Modeler. Via een Viewer kun je de responsive-schermen op verschillende form factors testen. Met één muisklik deploy je de applicatie vervolgens naar de cloud-omgeving. Via het cloud-platform stel je de rechten in voor de verschillende acties en omgevingen, denk aan bijvoorbeeld het deployen naar test, acceptatie en productie.

Granulair en herbruikbaar

Door met Mendix zoveel mogelijk granulair te werken en herbruikbare modules te ontwikkelen, kunnen ook andere projecten profiteren van jouw werk. Dat levert tijdwinst op en een besparing op ontwikkelkosten. Verder worden er veel herbruikbare modules gedeeld binnen de Mendix-community, die je via de Mendix Modeler eenvoudig in je eigen project kunt importeren. Het loont daarom altijd de moeite om eerst buiten je eigen project te kijken of iets al bestaat, voordat je het zelf ontwikkelt.

Omdat Mendix-applicaties responsive zijn werken ze op elk apparaat. Het betekent wel dat sommige hardware specifieke features onbereikbaar zijn. Om een brug naar de hardware te slaan, is het in Mendix daarom mogelijk gemaakt om er via de mobiele wrapper PhoneGap een echte mobiele app van te maken.

Voor ontwikkelaars is er veel te beleven op Mendix World op 7 en 8 juni in Rotterdam.