Computable.nl
  • Thema’s
    • Carrière
    • Innovatie & Transformatie
    • Cloud & Infrastructuur
    • Data & AI
    • Governance & Privacy
    • Security & Awareness
    • Software & Development
    • Werkplek & Beheer
  • Sectoren
    • Channel
    • Financiële dienstverlening
    • Logistiek
    • Onderwijs
    • Overheid
    • Zorg
  • Computable Awards
    • Overzicht
    • Nieuws
    • Winnaars
    • Partner worden
  • Vacatures
    • Vacatures bekijken
    • Vacatures plaatsen
  • Bedrijven
    • Profielen
    • Producten & Diensten
  • Kennisbank
  • Nieuwsbrief
cloud computing

Data cache-strategie vraagt actieve ontwerpstap

12 mei 2016 - 12:057 minuten leestijdOpinieCloud & Infrastructuur

In een vliegtuig, in het buitenland of in een buitengebied; tegenwoordig kom je nog regelmatig situaties tegen waarin je niet online bent of kunt zijn. VPRO Tegenlicht noemde het onlangs zelfs een luxe om af en toe offline te zijn. Hoewel ze schaars zijn, bracht het programma met de ‘White Spots’-app alle plekken op aarde in kaart waar je geen verbinding hebt met internet of Wi-Fi.

Wanneer je een mobiele applicatie ontwikkelt, zul je dus ook met de offline situaties rekening moeten houden. Je wilt uiteraard dat je applicatie steeds optimaal werkt, ook als er even geen verbinding is. Eén van de belangrijkste vraagstukken die je hierbij tegenkomt, is het kiezen voor een data cache-strategie. Waar haal je de data vandaan die nodig is voor een optimale performance? Lokaal of van de server? Maar wat als er geen of juist wel een verbinding beschikbaar is? Haal je dan eerst de data uit lokale bronnen of maak je direct een connectie met de server? Kortom: hoe kies je de juiste cache-strategie?

Bij het ontwikkelen van een mobiele applicatie heb je te maken met twee belangrijke zaken: performance en connectiviteit. Ook word je beperkt door schaarse resources als opslagruimte en batterijduur. Voor een applicatie die data nodig heeft voor de presentatie, is het essentieel dat je je afvraagt welke data je lokaal opslaat en welke op de server. Om de server te bereiken, is de beschikbaarheid van internet natuurlijk noodzakelijk, maar niet altijd aanwezig. Daarom moet je bij het ontwikkelen van de applicatie ook rekening houden met offline scenario’s. Ook de aard van de internetverbinding is belangrijk om te onderkennen. Zo heb je te maken met gsm-verbindingen, die mogelijk worden betaald per MB, of wifi. Bij bulk data over een gsm-verbinding is het het overwegen waard om de gebruiker te informeren over mogelijke kosten voor het ophalen van data.

Om deze situaties te ondervangen, kun je data ook lokaal opslaan. Wanneer je dit doet, heb je in een offline situatie wel de mogelijkheid om de benodigde data te laten zien vanuit de cache. Tijdens het programmeren van een mobiele applicatie heb je een  aantal keuzes voor cache-scenario’s.

1. Performance

Als er verbinding is met internet, wordt data altijd eerst van de server afgehaald en daarna pas lokaal opgeslagen. Wanneer je niet verbonden bent, wordt data vervolgens lokaal opgehaald. Dit scenario werkt goed in zowel on- als offline situaties, maar is niet een cache-strategie die de performance van je apparaat bevordert, omdat dit veel vraagt van de netwerkverbinding en batterijduur. Daarnaast moet er data worden opgehaald van een backend en worden getransporteerd over internet. Dit is per definitie trager dan data lokaal ophalen en vraagt ook veel meer van de batterij. Dit scenario heet een ‘server first approach’.

Bij een server first approach is de data vaak het nieuwst en het verst, omdat je altijd via de server werkt en over de meest up-to-date beschikt. Deze approach is bijvoorbeeld erg belangrijk bij applicaties waarbij data vaak vernieuwd wordt, zoals nieuws-applicaties. Wanneer je zo’n app opent, zie je altijd het laatste nieuws. Tenzij je niet verbonden bent, dan zie je (meestal) het laatst opgehaalde nieuws (waarvoor de data uiteraard wel is opgeslagen in cache).

2. Beschikbaarheid

Een andere mogelijkheid is om de applicatie zo te programmeren dat er altijd eerst wordt gekeken of data lokaal beschikbaar is in cache – ongeacht of er op dat moment een internetverbinding aanwezig is. Pas als de benodigde data niet in cache staat, wordt er verbinding gemaakt met internet en wordt de data van de server opgehaald om het vervolgens alsnog in cache op te slaan. Dit scenario heet een ‘cache first approach’.

Een cache first approach wordt meestal toegepast als je te maken hebt met veel data die bijna niet verandert; denk bijvoorbeeld aan een overzicht van rekeningen in een bank-app. Wanneer je deze informatie iedere keer opnieuw van de server af moet halen, kost dat veel netwerkverkeer, resources en batterij. Daarom kun je de data beter ophalen, lokaal opslaan in cache en vervolgens vanuit de cache in de applicatie toepassen. Deze benadering komt de performance en batterijduur zeker ten goede. Daarom noemen we dit ook wel ‘performance cache’.

3. Meerdere caching-strategieeën naast elkaar

Daarnaast heb je ook nog te maken met data die je helemaal niet in cache op wilt slaan en altijd van de server haalt, zoals beveiligingsgevoelige informatie, bijvoorbeeld aan wachtwoorden. Maar ook data die juist heel veranderlijk is, zoals prijsinformatie of informatie over beschikbaarheid, haal je liever altijd live op in plaats van in cache. Het is dan mogelijk om bijvoorbeeld de bijbehorende productinfo wel in cache op te slaan maar de prijsinformatie alleen te laten zien wanneer er verbinding is met de server, zodat je zeker weet dat je altijd de meest actuele informatie toont. In dit scenario kies je er dus voor om meerdere cache-strategieën te hanteren voor verschillende soorten informatie binnen één applicatie.

Beste performance

Als het gaat over het ontwerpen van cache-strategieën, zijn er een aantal manieren om slim met het ophalen van de data om te gaan ten behoeve van de performance en beschikbaarheid van data. Zo kun je een timestamp op de server en de client bijhouden van wanneer de data voor het laatst is bijgewerkt. Bij verbinding wordt deze timestamp gecontroleerd om te kijken of de data in cache nog steeds actueel is voordat er nieuwe data wordt opgehaald.

Er zijn ook libraries voor Xamarin, zoals Akavache, waarbij de cache kan worden gebruikt om de data alvast te laten zien aan de gebruiker, terwijl er op de achtergrond (bij verbinding) de data van de server wordt opgehaald. Nadat deze data is opgehaald, kan de ontwikkelaar de data in cache vervangen met de serverversie.

Dit maakt dat de applicatie qua performance goed presteert, offline data beschikbaar heeft en bij verbinding ook data vers kan bijhouden. Ook hier geldt dat dit wellicht voor veel data interessant kan zijn, maar niet voor iedere soort data geschikt is.

Behalve het kiezen voor een cache-strategie, moet je bij het ontwikkelen van een applicatie natuurlijk ook online en offline situaties detecteren, bepalen hoe je dan met de data omgaat en of en hoe je dat aan de gebruiker laat zien. Veel mobiele applicaties geven bijvoorbeeld tegenwoordig een melding aan de eindgebruiker als ze niet verbonden zijn en tonen dan de laatst opgehaalde informatie vanuit de cache. Bij het bepalen van de juiste data en cache-strategie kan de grootte van de data ook een rol spelen. Zo kun je tegenwoordig met de mobiele devices prima beschikken over redelijk grote bestanden, maar het ophalen ervan kan lang duren en eventueel veel geld kosten bij gsm-verbindingen.

Om de juiste data cache-strategie te kiezen, moet je je dus een aantal zaken afvragen. Het kiezen van de juiste strategie is trouwens niet alleen een it-vraagstuk. Ook de business moet hierover nadenken en beslissen over de volgende punten:

  • Hoe actueel moet de data zijn?
  • Welke data moet live zijn en welke niet?
  • Hoe groot is de data?
  • Welke tijdsindicatie wil ik hanteren voor het verversen van de data uit de cache?
  • Hoe veel resources (batterij, opslagruimte) mag het kosten?
  • Hoe laat ik de gebruiker weten dat er data uit cache wordt gebruikt?

Actieve ontwerpstap

Het feit dat je na moet denken over data cache-strategieën, maakt het ontwikkelen van een mobiele applicatie uitdagender dan het ontwikkelen van een webapplicatie die altijd verbonden is. Je hebt te maken met beperkte capaciteiten voor storage en beperkte capaciteiten in verband met batterijduur, maar je wilt natuurlijk wel altijd de beste performance van je app. Kiezen voor de juiste cache-strategie vereist een actieve ontwerpstap waarmee nog niet altijd rekening wordt gehouden. De grootste fout die ontwikkelaars maken is ervan uitgaan dat de eindgebruiker overal en altijd verbonden is.

Meer over

AppsGSMStorage

Deel

    Inschrijven nieuwsbrief Computable

    Door te klikken op inschrijven geef je toestemming aan Jaarbeurs B.V. om je naam en e-mailadres te verwerken voor het verzenden van een of meer mailings namens Computable. Je kunt je toestemming te allen tijde intrekken via de af­meld­func­tie in de nieuwsbrief.
    Wil je weten hoe Jaarbeurs B.V. omgaat met jouw per­soons­ge­ge­vens? Klik dan hier voor ons privacy statement.

    Whitepapers

    Computable.nl

    Bouw de AI-organisatie niet op los zand

    Wat is de afweging tussen zelf bouwen of het benutten van cloud?

    Computable.nl

    Slimme connectiviteit: de toekomst van bouwen

    Hoe stoom jij jouw organisatie in de bouw en installatie sector klaar voor de digitale toekomst?

    Computable.nl

    De weg van dataverzameling naar impact

    Iedere organisatie heeft data, maar niet iedereen weet hoe je het goed gebruikt. Hoe zet je waardevolle informatie om in actie?

    Meer lezen

    ActueelCloud & Infrastructuur

    Opgerolde online-drugsmarkt gebruikte Nederlandse infrastructuur

    Nationale Politie
    ActueelOverheid

    Politie tijdens NAVO-top beter voorbereid op uitval van C2000

    AchtergrondCloud & Infrastructuur

    Europese it moet nú regie pakken

    OpinieData & AI

    Maak ai saai!

    ActueelData & AI

    Cisco sorteert voor op komst van ai-agenten

    AchtergrondData & AI

    Nvidia lanceert 20 nieuwe ai-fabrieken in Europa, maar passeert Nederland

    Geef een reactie Reactie annuleren

    Je moet ingelogd zijn op om een reactie te plaatsen.

    Populaire berichten

    Meer artikelen

    Uitgelicht

    Partnerartikel
    AdvertorialInnovatie & Transformatie

    Computable Insights

    Een ai-agent die klantvragen afhandelt. Dat is een van de nieuwste troeven van softwareproducent Salesforce, dat daarmee meesurft op de...

    Meer persberichten

    Footer

    Direct naar

    • Carrièretests
    • Kennisbank
    • Planning
    • Computable Awards
    • Magazine
    • Abonneren Magazine
    • Cybersec e-Magazine

    Producten

    • Adverteren en meer…
    • Jouw Producten en Bedrijfsprofiel
    • Whitepapers & Leads
    • Vacatures & Employer Branding
    • Persberichten

    Contact

    • Colofon
    • Computable en de AVG
    • Service & contact
    • Inschrijven nieuwsbrief
    • Inlog

    Social

    • Facebook
    • X
    • LinkedIn
    • YouTube
    • Instagram
    © 2025 Jaarbeurs
    • Disclaimer
    • Gebruikersvoorwaarden
    • Privacy statement
    Computable.nl is een product van Jaarbeurs