Wat is een backend en waarom heb je er (g)een nodig

Geschreven door Michael Noom.

michael@dwvd.nl
06 12 97 95 59

Als gebruiker zie je een backend niet. Toch hebben veel van je favoriete applicaties er waarschijnlijk één. Daarom geven we je graag een kijkje achter de schermen.

Fello login scherm

Laten we beginnen bij het welbekende inlogscherm. Je vult er je email en wachtwoord in. Op het moment dat je op de ‘Log in!’ button drukt, stuurt de applicatie een request naar de backend: ‘log deze user in’. 

De backend ontvangt de inloggegevens. Met het gegeven emailadres wordt de juiste user opgevraagd uit de database. Het opgegeven wachtwoord en die uit de database worden met elkaar vergeleken. Als alles klopt wordt er bijv. een access token aangemaakt. Deze stuurt de backend vervolgens terug als response. Zo’n access token is dan je toegangsbewijs voor de daarop volgende requests die je (onbewust) doet naar de backend.

Als er iets fout gaat (bijv. wanneer het wachtwoord niet klopt) wordt er een error teruggestuurd als response. De applicatie weet dan dat het fout is gegaan en kan de eindgebruiker een foutmelding laten zien.

De logica tussen het ontvangen van de request op de server tot aan het terugsturen van een response wordt afgehandeld door een backend.

Als je eenmaal in bezit bent van een access token dan kan je helemaal los met requests naar de backend. Vlak na het inloggen in onze app Fello wordt dan bijvoorbeeld eerst data van de user en groep(en) opgehaald. Daarna worden de berichten opgehaald, maar er kan ook een nieuw bericht geplaatst worden.api backend requests

De access token stuur je mee met alle requests. De backend checked daarmee eerst wie je bent en of je wel toegang hebt tot de groep. Als je een bericht wilt plaatsen wordt dit opgeslagen in de database en worden er push-notificaties gestuurd naar iedereen in de groep. Ten slotte krijg je (als het goed is), een seintje dat het allemaal gelukt is. De afhandeling gebeurt vaak binnen een fractie van een seconde! Tadaaa!

Het inrichten van een (eigen) backend kan een groot deel van de werkzaamheden van het totale project omvatten. Het is daarom slim om eerst na te gaan of je er wel écht eentje nodig hebt.

Bij de start van een nieuw project zijn er vaak 4 opties:

1. Geen backend

Soms is er gewoon geen één nodig. Een illustratie van een app zonder backend is bijvoorbeeld de hybrid app Bet.ter die we maakte voor het Centrum voor Verantwoord Spelen. Een degelijke maar eenvoudige versie van dit product kon uitgedacht worden zonder backend. Met de app kunnen online gokkers hun inkomsten en uitgaven beter bijhouden. De resultaten worden uitgerekend en overzichtelijk gepresenteerd, met de bedoeling dat de gokker gezond(er) gokgedrag gaat vertonen. Omdat de uitgaven van de gokker allemaal lokaal op een smartphone worden opgeslagen, uitgerekend en gepresenteerd (en deze gegevens niet verzonden hoeven te worden naar anderen) is er geen backend nodig.

2. backend as a service (Baas)

Voordat je deze alinea leest, moet ik eerlijk zijn. Over totale BaaS oplossingen zijn wij bij De Wortel van Drie niet daverend enthousiast. Het kan potentieel veel werk uit handen nemen, maar je bent minder in controle over het eindresultaat en voor maatwerk is een BaaS vaak te gelimiteerd. Na de shutdown van Parse, een van de grootste en populairste mobile BaaS oplossingen, is het twijfelachtig of je op vergelijkbare services wel voldoende kunt vertrouwen.

3. Geen backend maar Software as a service (Saas)

Waar we meer vertrouwen in hebben zijn Software as a Service (SaaS) oplossingen die zich focussen op een specifieke taak. Als er alleen een backend nodig is voor bijvoorbeeld het versturen van push-notificaties, dan is het zonde om dit zelf te bouwen. Dan biedt bijvoorbeeld Ionic Cloud een mooie uitkomst. Een ander voorbeeld is Contentful voor het beheren en aanbieden van content in een applicatie.

4. zelf een backend bouwenbuurman en buurman

JAAAH! Dit vinden we natuurlijk hartstikke leuk bij DWVD. Zelf bouwen geeft je flexibiliteit en onafhankelijkheid. Wij hebben vooral ervaring met Ubuntu, Nginx, Node.js en MongoDB.

Zelf bouwen betekent gelukkig niet dat we bij alles het wiel opnieuw uit hoeven te vinden. Specialistische onderdelen, zoals bijvoorbeeld foto opslag of betalingsverkeer kunnen goed opgelost worden met bestaande services. SaaS oplossingen zijn prima te combineren met een eigen backend. Voorbeelden zijn Amazon S3 voor het uploaden en downloaden van bestanden, Mollie voor het verwerken van betalingen, Amazon SES als email dienst en Plivo als SMS dienst.

Een eigen backend in combinatie met de juiste SaaS oplossingen zorgt er voor dat we maatwerk kunnen bieden en specialistische diensten kunnen integreren.

dus…

Tsja,.. wij kunnen hier wel uren over doorpraten, maar er moet natuurlijk ook gewoon gewerkt worden. Mocht je toch meer willen weten, of wil je gewoon graag een écht hardnekkige nerd in levende lijve spreken, stuur me een mailtje of pak de telefoon!

 

alle artikelen

app laten ontwikkelen?

Neem geheel vrijblijvend contact op voor een prijsindicatie of afspraak.