Het internet of things zal onze wereld in de komende jaren in een hoog tempo veranderen door producten die direct reageren op wat er gebeurt. Leveranciers die in staat zijn om goed werkende oplossingen te bieden zullen een groot concurrentievoordeel hebben. Anderzijds zijn er ook belangrijke uitdagingen. Stel, een leverancier wil een koelkast op de markt brengen die waarneemt wanneer je bier op is en die dan nieuw bier bestelt. Een consument zal niet blij zijn als hij thuis komt en er is geen bier, of erger nog, als er een container voor zijn huis staat met duizend flessen.

Als ontwikkelaar moet je schipperen tussen mogelijkheden, tijd en eisen van de business. Bekijk de special over Development in de Cloud en geef je mening!

Om succesvol te zijn moet worden voldaan aan de snel veranderende eisen van de markt met betrekking tot de veiligheid, beschikbaarheid en schaalvergroting. De markt voor IoT-apps groeit wel heel snel, maar aan de andere kant weet je nooit precies waar die heen groeit. Dit betekent dat je ook in staat moet zijn om op een economische manier applicaties te ontwikkelen. Hier komt de cloud en in dit geval AWS in het spel. Je kunt het platform gebruiken om zeer snel applicaties te ontwikkelen, bovendien kun je gebruik maken van de infrastructuur en de diensten tegen lage kosten, managed en zonder verplichtingen op lange termijn. Hierdoor kun je een IoT-project zonder enorme investeringen opzetten en het snel schalen, afhankelijk van de ontwikkelingen in de markt.

Overzicht

Pay per use maakt het opzetten van projecten en schaalvergroting economisch en zeer eenvoudig. Met behulp van de free tier, kun je bijvoorbeeld gratis 250.000 berichten verzenden. Als je verder gaat en een miljoen berichten stuurt, betaal je slechts $ 5, -. AWS IoT biedt veilige, bi-directionele communicatie tussen met internet verbonden things (zoals sensoren, actuatoren, embedded apparaten, of smartphones) en de AWS cloud. Je kunt telemetriedata van meerdere apparaten verzamelen en opslaan om de gegevens te analyseren. Je kunt ook toepassingen maken die gebruikers in staat stellen om things te bedienen vanaf hun telefoons of tablets.

AWS IoT bestaat uit een complete set van componenten

Message broker

Ten eerste is er de message broker. De AWS IoT message broker is een pub / sub broker service die het verzenden en ontvangen van berichten van en naar AWS IoT mogelijk maakt. Bij de communicatie met AWS IoT, stuurt een klant een boodschap gericht aan een onderwerp als "Sensor / temp / room1." De message broker op zijn beurt stuurt het bericht naar alle cliënten die zijn geregistreerd voor het ontvangen van dat onderwerp. Het biedt een veilig mechanisme voor de dingen en IoT-toepassingen om berichten van elkaar te publiceren en te ontvangen. AWS IoT ondersteunt het populaire MQTT-protocol om te publiceren en te abonneren, maar je kunt ook gebruik maken van de HTTP-REST-interface.

Rules engine

De rules engine maakt de message broker echt interessant. Het zorgt voor berichtverwerking en voor integratie met andere AWS-services. Er is een gemakkelijk te leren, SQL-gebaseerde taal om gegevens uit bericht-payloads te selecteren, te verwerken en om de gegevens te verzenden naar andere diensten, zoals Amazon S3, Amazon DynamoDB en AWS Lambda. Je kunt ook gebruik maken van de message broker om berichten opnieuw te publiceren naar andere abonnees. Een voorbeeld: stel je hebt een onderwerpfilter van een MQTT-onderwerp, iot /thing/#. De volgende JSON-payload zou dan door een thing kunnen worden gepubliceerd:

{

"deviceid" : "iot123",

"temp" : 54.98,

"humidity" : 32.43,

"coords" : {

"latitude" : 47.615694,

"longitude" : -122.3359976

}

}

Je zou de volgende SQL-instructie in je regel kunnen gebruiken om een query te doen op het iot/thing/# topic en de sensordata te extraheren wanneer het veld temp een waarde boven de 50 bevat.

SELECT * FROM 'iot/thing/#' WHERE temp > 50

Device Registry

Dan is er het Thing Registry - soms aangeduid als de Device Registry. Het organiseert de resources bij ieder thing. Je registreert je things en associeert maximaal drie aangepaste attributen bij elk thing. Je kunt ook certificaten en MQTT cliënt-ID's associëren met elk thing om de mogelijkheden voor het beheren en oplossen van problemen met je things te verbeteren.

Device Shadows Service

Aangezien je de niet-verbonden things niet kunt bedienen, moet er een voortdurende weergave van de things in de cloud zijn. AWS maakt daarom gebruik van de zogenaamde Thing Shadows Service. Je kunt de actuele statusinformatie naar een thing shadow publiceren, en je thing kan de status synchroniseren wanneer het verbindt. Je things kunnen ook hun huidige status publiceren voor gebruik door toepassingen of apparaten. Voor het opslaan en ophalen van de huidige statusinformatie voor een thing wordt een JSON-document gebruikt.

De device gateway

Door de device gateway kan apparatuur veilig en efficiënt communiceren met AWS IoT. Nog belangrijker is de Security and Identity Service. Zonder deze zouden de aangesloten things een veiligheidsrisico inhouden; de certificaten van de things moeten veilig blijven om de gegevens veilig naar de message broker te kunnen sturen. De message broker en rules engine gebruiken AWS beveiligingsfuncties om gegevens zeker naar apparaten of andere AWS services te kunnen versturen.

Diverse SDK's

Zoals we zagen, biedt AWS IoT meerdere manieren om met het service-platform te communiceren, met behulp van de MQTT en HTTP REST-protocollen. Dit werkt met de diverse frameworks voor de verschillende talen. Er kunnen diverse SDK's gebruikt worden:

• AWS-SDK's voor de configuratie: Alle configuratie-API's zijn beschikbaar als onderdeel van de standaard AWS SDK's in alle ondersteunde AWS SDK-talen, onder de "iot" package namespace. Er zijn functies voor het maken en beheren van:

  • identities en autorisatie (inclusief certificaten en policies),
  • regels en acties in de rules engine, endpoints, waarbij rollen en niveaus gelogd worden,
  • namen en attributen voor apparaten in het Thing Registry.

• AWS SDK om berichten te publiceren en te werken met thing shadows: AWS IoT biedt ondersteuning voor:

  • toepassingen die IAM-gebruikers / -rollen gebruiken (rechtstreeks of via Amazon Cognito).
  • Het HTTP-protocol om berichten direct op de message broker met HTTP POST te publiceren.
  • De mogelijkheid om statussen van device shadows op te vragen, bij te werken en te verwijderen.
  • Deze API's zijn beschikbaar in alle talen ondersteund door de AWS-SDK's, onder de "iot-data" package namespace.

• Device SDK's: AWS IoT biedt ondersteuning voor apparaten en toepassingen die certificaatgebaseerde authenticatie en het MQTT-protocol gebruiken (meestal apparaten met beperkt geheugen) om te voorzien in publish and subscribe naar de message broker. De C SDK kan worden gecompiled op Linux-distributies met OpenSSL of mbedTLS-bibliotheken en de meegeleverde MQTT-bibliotheek. Klanten kunnen deze SDK ook porten naar extra embedded systemen en om eigen TLS- en MQTT-bibliotheken op te nemen, indien nodig. Er is een speciale versie van de C SDK voor Arduino Yún. De Device SDK is beschikbaar voor JavaScript in het Node.js packet ecosysteem.

Het gebruik van lambda-functies zullen we intensiever in een volgend artikel bespreken. Met behulp van AWS Developer Services op AWS ten slotte, kun je tools van derden integreren.

Probeer het zelf en maak gratis een account aan op AWS