Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

AWS Jobs gebruiken om IoT-apparaten te upgraden en te configureren

Amazon Web Services (AWS) is een van de meest populaire framework-omgevingen voor het Internet of Things (IoT) naast Microsoft Azure en Google Cloud IoT. Slimme apparaten zijn via internet met het framework verbonden en communiceren ermee via het MQTT-protocol. Naast interactie met apparaten biedt het framework ook geweldige mogelijkheden voor gegevensopslag en -verwerking, gegevensrepresentatie aan een gebruiker, gegevensanalyse (inclusief kunstmatige-intelligentiemethoden), toegangscontrole met een krachtig systeem van privileges en nog veel meer.

Voor het opslaan van gegevens biedt de AWS-omgeving (naast verschillende relationele en niet-relationele DBMS) een cloudgebaseerd hiërarchisch bestandsopslagsysteem genaamd Simple Storage Service (S3). Elk bestand in S3-opslag kan een universele bronlocator (URL) hebben, die van buitenaf toegankelijk is. In dit geval is het bestand toegankelijk via een webbrowser met de juiste toegangsrechten. Als de bestandsinhoud een HTML-pagina is, heeft een interactieve gebruiker met dit bestand toegang tot zowel AWS-frameworkopties als intelligente apparaten die ermee verbonden zijn. De mogelijkheden van deze pagina worden gespecificeerd door de JavaScript-code die erin zit (deze code kan functies van de Application Programming Interfaces (API's) van het framework als geheel en zijn afzonderlijke componenten activeren).

Lambda-functies

Naast webpagina's kan programmacode in de AWS-frameworkomgeving worden opgeslagen als lambda-functies. Dit zijn stukjes code met een speciale naam, geschreven in een van de volgende talen:Python, Java, C# of Node.Js. Ze worden opgeslagen in de cloud en worden aangeroepen bij bepaalde gebeurtenissen. Een gebeurtenis kan worden geïnitieerd door een webpagina (zoals het aanroepen van een bepaalde HTTP REST API op een bepaalde URL), door een andere lambda-functie of door een intelligent apparaat (via het verzenden van een MQTT-bericht van een bepaald type). In al deze gevallen kunnen gebeurtenissen parameters hebben. Lambda-functies worden gebruikt als middleware voor de interactie tussen intelligente apparaten, AWS-bronnen (bijv. databases) en de webpagina's waarmee de gebruiker rechtstreeks communiceert (Figuur 1).

klik voor grotere afbeelding

Figuur 1. Architectuur van interactie met AWS-componenten (Bron:Auriga)

Er zijn harde limieten voor AWS lambda's, zo is de uitvoeringstijd van het afhandelen van een enkel verzoek beperkt, is de hoeveelheid geheugen die een lambda kan gebruiken bij het afhandelen van een enkel verzoek beperkt. Als een limiet wordt overschreden, wordt de uitvoering van de lambda afgebroken. Deze limieten worden door de gebruiker geconfigureerd bij het maken van de lambda, maar kunnen bepaalde waarden niet overschrijden.

Een IoT-apparaat maakt verbinding met de cloud via het TCP-protocol, dat gegevensintegriteit en buffering biedt; in het geval van een langzame verbinding zorgt het protocol voor het verzamelen van gegevens aan de verzendende kant en het door de pijplijn duwen wanneer het mogelijk wordt. Ook zorgt een AWS-protocol bovenop TCP ervoor dat de TCP-verbinding permanent wordt hersteld in het geval van verbindingsverlies.

De verbindingsproblemen tussen een IoT-apparaat en de cloud hebben normaal gesproken echter geen invloed op lambda's vanwege het specifieke unidirectionele karakter van het MQTT-protocol. Bij communicatie met een IoT-apparaat stuurt een lambda gewoon een MQTT-bericht en wacht niet op een reactie; als en wanneer het antwoord binnenkomt, is het de verantwoordelijkheid van een andere lambda-functie om het af te handelen en indien nodig een ander MQTT-bericht naar het IoT-apparaat te sturen.

AWS-banen

Een van de AWS-frameworkcomponenten is jobservice (AWS Jobs). Het wordt gebruikt voor het creëren en uitvoeren van langdurige acties (taken) op een of meerdere IoT-apparaten die zijn aangesloten op AWS en voor het beheren van deze taken. In vergelijking met andere AWS-services is de AWS Jobs-service vrij recent verschenen.

Toegang tot de AWS Jobs-service wordt geleverd via de programmeerconsole en programmatisch met behulp van de reeks API-functies.

Een bepaalde subset van deze functies kan door het intelligente apparaat zelf worden gebruikt (kan worden aangeroepen door MQTT-berichten te verzenden). De functies die toegankelijk zijn via het MQTT-protocol voeren acties uit die nodig zijn voor toegang tot taken en hun parameters vanaf de apparaatzijde:GetPendingJobExecutions, StartNextPendingJobExecution, UpdateJobExecution, DescribeJobExecution, enz.

Andere functies worden gedefinieerd via het HTTPS-protocol en zijn bedoeld om te worden aangeroepen vanuit JavaScript-code op webpagina's, vanuit de programmacode van lambda-functies en door gebruikers in de interactieve modus. Deze functies worden meestal gebruikt voor het maken en verwijderen van taken en het beheer van de taakuitvoering:CreateJob, DeleteJob, DescribeJob, ListJobs, ListJobExecutionsForThing, enz.

In de terminologie van AWS Jobs wordt de belangrijkste informatie over een job opgeslagen in het jobdocument. Dit is een JSON-document dat vanuit het framework naar het doelapparaat wordt doorgegeven en beschrijft wat er moet gebeuren. Normaal gesproken bevat een taakdocument de naam van de bewerking en een URL (of URL's) die verwijst naar de locatie van data-job-parameters.

Deze URL kan "vooraf ondertekend" worden door een AWS-gebruiker. In dit geval geeft de URL toegang tot een bepaald object voor het intelligente apparaat met de privileges van de gebruiker die het vooraf heeft ondertekend (zodat het apparaat toegang heeft tot de gegevens waartoe het normaal geen toegang heeft). Vooraf ondertekende URL's hebben een beperkte levensduur en verlopen na afloop van die levensduur, waardoor het object weer ontoegankelijk wordt.

Een taakdocument kan tijdens het maken van een taak on-the-fly worden gemaakt of kan worden opgeslagen als een bestand in de S3-bestandsopslag van het AWS-framework. Een link naar dit bestand kan worden opgegeven tijdens het maken van de taak.

Andere functiekenmerken zijn onder meer:

  • Target apparaat of apparaatgroep. Als een apparaatgroep wordt getarget, wordt de taak uitgevoerd op alle apparaten die lid zijn van de groep.

  • Momentopname of continue taak. Een snapshottaak wordt voltooid nadat deze is voltooid op het geselecteerde apparaat of de groep apparaten. Een doorlopende opdracht geldt altijd voor een groep apparaten; het blijft bestaan ​​nadat het is voltooid op bestaande apparaten en wordt uitgevoerd op apparaten die later aan de groep worden toegevoegd.

Wanneer een taak wordt uitgevoerd op een specifiek apparaat, heeft het een status. Een beperkt aantal statussen wordt gedefinieerd door het raamwerk:QUEUED, IN_PROGRESS, FAILED, SUCCESS, CANCELED, REJECTED, REMOVED. De huidige status wordt gewijzigd door een verzoek van het apparaat (bijvoorbeeld door de functie UpdateJobExecution aan te roepen) of wanneer een gebruiker een van de taakbeheerfuncties aanroept (bijvoorbeeld door de taak te annuleren met de functie CancelJob). Normaal gesproken is de taakuitvoeringsstatus IN_PROGRESS terwijl het apparaat de taak uitvoert, en wordt het SUCCESS of FAILED nadat het apparaat de taak heeft voltooid.

Het statusdiagram voor taakuitvoering wordt getoond in Fig. 2 (hier worden de overgangen die door het apparaat worden geïnitieerd in blauw weergegeven en die worden gestart door andere AWS-componenten in groen).

klik voor grotere afbeelding

Figuur 2. Schema van toestanden tijdens de uitvoering van AWS Jobs (Bron:Auriga)


Internet of Things-technologie

  1. Processors pakken de convergentie van IoT en AI aan
  2. IoT biedt wereldwijde voordelen
  3. Aanpassen en vergeten:de dreiging van niet-geconfigureerd IoT
  4. Zorgen voor cyberbeveiliging en privacy in IoT-adoptie
  5. IoT-verkeer in de onderneming neemt toe, net als de bedreigingen
  6. 7 essentiële tips om uw IoT-netwerk thuis en veilig te houden
  7. Het belang van $ 6 biljoen van beveiligingsstandaarden en -regelgeving in het IoT-tijdperk
  8. De cyberrisico's van IoT verminderen en oplossingen vinden
  9. Ioed gebruiken om industrieën te stimuleren en de bredere economie te ondersteunen
  10. Memphis 'smart' maken:zichtbaarheid, controle en beveiliging voor IoT-apparaten
  11. IoT en cyberbeveiliging