Application Programming Interface (API)

In de communicatie tussen machines is een belangrijke rol weggelegd voor Application Programming Interfaces (APIís). Het zijn duidelijk gedefinieerde toegangspoorten langs waar een machine of systeem zijn diensten aanbiedt aan andere systemen. We gebruiken ze allemaal dagelijks, vaak zonder dat te beseffen, via apps en websites, en het zijn ook essentiŽle bouwstenen in de ontwikkeling van Industrie 4.0 en het IIoT.

Wat een API precies is, valt het makkelijkst uit te leggen aan de hand van een alledaags voorbeeld: het weerbericht op de website van de krant. Dat wordt permanent aangepast met de meest actuele informatie, zonder dat er iemand op de redactie temperaturen moet ingeven of kaartjes moet tekenen. In plaats daarvan heeft de krant een deal met een provider van weergegevens.

Die provider stelt zijn data ter beschikking via een Application Programming Interface (API). Wanneer ik dan op de website van de krant de pagina met het weerbericht opvraag, zal de server op zijn beurt contact opnemen met de API van de data provider. Het antwoord van die API wordt door de server van de krant geÔntegreerd in de pagina die vervolgens aan mij getoond wordt.

De clue van een API is dat er vooraf eenduidig vastgelegd moet zijn in welk formaat de data aangeboden wordt. De afspraak tussen krant en provider zou bijvoorbeeld kunnen zijn dat de provider een weerkaart levert als png- of jpg-bestand die dan direct weergegeven kan worden op de website. Maar het is even goed mogelijk dat de provider enkel een lijst met temperaturen levert en dat de server van de krant op basis daarvan automatisch een weerkaart genereert. De data provider zou ook meerdere APIís kunnen hebben waarbij de ene de data en een andere de volledige kaart levert.

Automatisch downloaden van driver

Een mooi en duidelijk voorbeeld van APIís in een industriŽle context wordt aangehaald in het bericht IODDfinder Ė The smart solution van de IO-Link Community. Die beheert een databank met meer dan 7500 description files. Dat zijn de drivers die software tools nodig hebben om via IO-Link met een device te communiceren.

Via de website van IO-Link kunnen fabrikanten van devices hun drivers uploaden om ze toe te voegen aan de databank. Gebruikers kunnen van hun kant in de databank zoeken naar de juiste driver voor hun toestel om deze te downloaden.

Maar zowel het uploaden als het downloaden van de drivers kan ook automatisch via een API. Voor fabrikanten van devices betekent het dat ze vanuit hun eigen databank in ťťn enkele actie al hun drivers kunnen uploaden, gesteld dat die in het juiste formaat worden aangeboden met de juiste metadata (fabrikant ID en device ID).

Aan de gebruikerszijde is er een API waarmee een software tool automatisch een driver kan downloaden. Zodra een device met IO-Link aangesloten wordt op de software tool, kan deze het device ID herkennen en op basis daarvan via de API van de IO-Link Community de nodige driver vinden, downloaden en installeren Ė dus zonder dat de gebruiker zelf nog iets moet doen.

Gelabelde data

Ook in dit voorbeeld is op voorhand duidelijk vastgelegd hoe de API werkt. Om ervan gebruik te kunnen maken moet de ontwikkelaar van de software tool er dus voor zorgen dat de API op een herkenbare manier wordt aangeroepen. Ook ligt op voorhand vast in welk formaat het antwoord wordt aangeboden.

In de context van het Internet of Things worden heel wat APIís ontwikkeld als zogenaamde web services. Dat houdt in dat ze via een bepaalde url of IP-adres aangeroepen worden waarbij ook parameters in de url opgenomen kunnen worden.

Voor web services die data leveren, en dat is wat de meeste APIís doen, wordt het antwoord meestal aangeboden in XML of JSON. XML houdt in dat alle gegevens op een bepaalde manier getagd worden. JSON staat voor JavaScript Object Notation, wat een andere manier is om data eenduidig weer te geven. In beide gevallen komt het er op neer dat de data gelabeld wordt op een vooraf afgesproken manier zodat machines ze automatisch kunnen herkennen.

© Productivity.be


Feel free to share



Productivity.be

is een publicatie van
Redactiebureau ConScript

Contact

Erwin Vanvuchelen
+32 (0)475 64 99 34
erwin@conscript.be
erwinvanvuchelen