• Hexite Software Blog Nieuws en berichten

Category Archives: Programmeren

api-foto

Wat zijn API’s en koppelingen?

U heeft waarschijnlijk de term ‘API‘ voorbij zien komen. Updates van allerlei applicaties kondigen vaak nieuwe API’s voor ontwikkelaars aan. Maar wat is een API en hoe gebruiken ontwikkelaars en bedrijven ze?

Applicatie-programmeerinterface?

De term API is een afkorting en staat voor “Application Programming Interface”.

De volgende analogie beschrijft de API als een keuzelijst, de keuzelijst biedt een lijst met (ja duh) keuzes die de ontwikkelaar zelf samenstelt. Wanneer de ontwikkelaar aangeeft welke keuzes gewenst zijn, doet de opsomming van de keuzes het werk en voorziet de ontwikkelaar van enkele resultaten. Het resultaat is dat je niet precies weet hoe de keuzelijst jouw resultaten teruggeeft, maar dat hoeft dan ook niet.

Evenzo somt een API een aantal bewerkingen op die ontwikkelaars kunnen gebruiken, samen met een beschrijving van wat ze doen. De ontwikkelaar hoeft niet per se te weten hoe een besturingssysteem bijvoorbeeld een dialoogvenster “Bestand verwijderen” opbouwt. De ontwikkelaar hoeft alleen te weten dat een functie beschikbaar is voor de bovenstaande functionaliteit.

Dit is natuurlijk geen perfecte metafoor, maar wel een handvat voor een leek. Omdat ontwikkelaars mogelijk hun eigen gegevens aan de API moeten verstrekken om de resultaten te krijgen. Met API’s kunnen ontwikkelaars tijd besparen door gebruik te maken van de implementatie van een platform om het belangrijkste werk te doen. Dit helpt de hoeveelheid code die ontwikkelaars moeten maken te verminderen en helpt ook om meer consistentie tussen apps voor hetzelfde platform te creëren. API’s kunnen de toegang tot hardware- en softwarebronnen beheren.

Applicaties koppelen

API’s worden ook om allerlei andere redenen gebruikt. Als u bijvoorbeeld ooit een Google Maps-object op een website gebruikt, gebruikt die website de Google Maps API om die kaart in te sluiten. Google stelt dergelijke API’s bloot aan webontwikkelaars, die de API’s vervolgens kunnen gebruiken om objecten rechtstreeks op hun website te tonnen. Als dergelijke API’s niet bestonden, zouden ontwikkelaars misschien hun eigen kaarten moeten maken en hun eigen kaartgegevens moeten verstrekken om een ​​kleine interactieve kaart op een website te plaatsen.

En omdat het een API is, kan Google de toegang tot Google Maps op websites van derden beheren, zodat Google deze op een consistente manier gebruiken.

API’s maken het leven van ontwikkelaars makkelijker

Stel dat u een app wilt ontwikkelen. Elk besturingsysteem biedt een groot aantal API’s om dit voor u gemakkelijker te maken.

Als u een webbrowser wilt gebruiken om bijvoorbeeld een of meer webpagina’s weer te geven, hoeft u niet uw eigen webbrowser helemaal opnieuw te programmeren voor uw toepassing. U gebruikt de webbrowser API om dit proces te automatiseren.

Als u foto’s of video’s van de camera van de smartphone wilt maken, hoef je niet je eigen camera-interface te bouwen. U gebruikt de camera-API om de ingebouwde camera van de smartphone in uw app. Als er geen API’s zouden bestaan ​​om dit gemakkelijk te maken, zouden app-ontwikkelaars hun eigen camerasoftware moeten maken en de invoer van de camerahardware moeten interpreteren. De ontwikkelaars van het besturingssysteem van Android of Apple hebben al dit harde werk gedaan, zodat de ontwikkelaars de camera-API gewoon kunnen gebruiken om een ​​camera te gebruiken; vervolgens verder kunnen gaan met het bouwen van hun app. En wanneer Apple of Android de camera-API verbetert, zullen alle apps die erop vertrouwen automatisch van die verbetering profiteren.

Dit geldt voor elk platform. Wilt u bijvoorbeeld een dialoogvenster maken op Windows? Daar is een API voor. Wilt u vingerafdrukverificatie op Android ondersteunen? Daar is ook een API voor, dus je hoeft niet de vingerafdruksensor van elke verschillende Android-fabrikant te testen. Ontwikkelaars hoeven het wiel niet steeds opnieuw uit te vinden.

Koppeling met Hexite Identity

Ook Hexite Software biedt de mogelijkheid om te koppelen met systemen en API’s. Een van de producten van Hexite Software faciliteert veilige uitwisseling tussen systemen. Hexite Identity is de totaaloplossing voor het veilig communiceren tussen meerdere koppelingen.

neural-network-brain

Aanbevelingssystemen vierde Industriële revolutie

Hexite Software

Aanbevelingssystemen

Het grootste probleem dat in het licht van de moderne wereld komt, is de kwantiteit van informatie, die uiteindelijk de eindgebruiker teveel keuzes geeft. Was er maar een slimme manager die de juiste keuzes maakt op basis van Intuïtie.

Aanbevelingssystemen (engines) doen tegenwoordig allemaal hetzelfde voor de manager. De kracht van de momenteel gebruikte aanbevelingsengines ligt in het aanbevelen van de processtappen op basis van het gedrag van ketenpartners en derhalve van de gebruikers, zoals blijkt uit de geschiedenis van het proces. We kunnen dus zeggen dat het aanbevelingssysteem die slimme manager is die ons door de oceaan van alle beschikbare keuzes kan leiden. De volgende blogpost gaat in op aanbevelingsystemen en de technologieën toegepast in de praktijk.

Automatische aanbevelingen logistiek manager

Aanbevelingssystemen voor logistieke processen suggereren uiteenlopende processtappen aan klanten door eerdere procesgegevens van het proces te verzamelen op basis van expliciete beoordelingen in het after-salesproces. Daarbij richten het aanbevelingssysteem zich op het gedrag en de “reparatiestappen” van verschillende gebruikers tijdens het proces dat binnen het systeem werkt. Het lijkt magie, maar het is puur datawetenschap gebaseerd op het gebruik van machine learning-technieken. De datagedreven oplossingen zijn gebaseerd op de interacties tussen gebruikers en items waarbij interne en externe gebruikers gebruik maken van de aanbeveling.

Procesadvies op basis van patronen

Met de volgende techniek krijgen we het gedrag van het proces in kaart op basis van patronen. Voornamelijk in deze procedure doen we aanbevelingen door gebruik te maken van de relatie tussen het huidige proces en bestaande (afgeronde) processen.

De processen in kaart brengen kan door gebruik te maken van een aantal mijlpalen. Voor het implementeren van mijlpaalstrategie kunnen we KNN gebruiken. KNN vereist weinig computerkracht, maar het kost tijd om de gegevens terug te vragen, daarom noemen we dit soort algoritmes “lui”.

De overeenkomst wordt berekend met behulp van een cosinus en correlatiefunctie. De eindstap is het gemiddelde van deze overeenkomst te berekenen; op basis van de berekende overeenkomsten, geeft het alogoritme een advies aan de logistieke managers.

De grootste nadelen van dit soort aanbevelingen zijn de opstarttijd (veel informatie nodig om gericht resultaat te beiden) en afwijkende processen (het ontbreken van nuttige informatie omdat de informatie teveel afwijkt).

Aanbevelingen met Neuraal netwerk (deep learning)

Deep learning is een aftakking van machine learning dat wordt geïnspireerd door het functioneren van het menselijk brein. We zien het menselijk brein als de ultieme supercomputer voor het interpreteren, maar ook het verzinnen van de gegevens.

Een neuraal netwerk fungeert is als het ware de bouwsteen van deep learning. Een neuraal netwerk is een (kunstmatig) model van het menselijk brein dat is nagebootst met behulp van software. Er zijn veel soorten neurale netwerken die worden gebruikt bij Deep Learning. Sommigen van hen zijn Multilayer Perceptron, Convolutional Neural Network, Recurrent neuraal netwerk.

Een Multilayer neuraal netwerk is een netwerk dat is gebouwd door enkele heimelijke lagen neuronen waarbij een laag de uitvoer van zijn vorige laag als invoer gebruikt. Convolution Neural Networks (CNN) worden met succes gebruikt voor classificatie en segmentatie van afbeeldingen en ook voor andere bewerkingen, zoals gezichtsherkenning en objectherkenning. De eenvoudigste terugkerende neurale netwerken ontstonden in de jaren tachtig. Terugkerende neurale netwerken die voornamelijk worden gebruikt voor continue gegevens zoals tijdreeksen (timeseries).

Waarom deep learning in aanbevelingssystemen?

Ten eerste geeft het een gericht abstractieproces van functies, waar supervised machine learning niet de abstracte informatie rechtstreeks vanuit de inhoud kan beoordelen. Ten tweede kan het neuraal netwerk het makkelijk met meerdere gegevens omgaan. Als laatste derde kan deep learning het model realtime beoordelen. Er is dus niet continu een “rebuild” van het model nodig, wat extreem veel computerkracht vereist.