Iedere gebruiker van iBurgerzaken krijgt ermee te maken; de performance van onze applicatie. Wist je dat er op de achtergrond iedere dag wordt gewerkt aan het verbeteren en optimaliseren van deze performance? Charley Gielkens, Business Engineer en Jeroen van Bussel, Architect vertellen je hieronder meer over 2 recente performanceverbeteringen binnen iBurgerzaken release 4.6: aanpassing aan gedeeltelijke datums én de upgrade van Java 11 naar Java 17.
Door Charley Gielkens, Business Engineer bij PinkRoccade Publiekszaken In de wereld van computers en programmeertalen worden gegevens altijd opgeslagen als een bepaald type. Van deze type gegevens is maar een heel beperkt setje beschikbaar, waar je alles in moet zien te passen. 3 hiervan zijn relevant om uit te leggen omdat, deze aangeven waarom een gedeeltelijke datum ingewikkeld is én ruimte voor performance verbeteringen biedt. Deze 3 typen zijn:
Datums | Voor een computer moet een datum bestaan uit een dag (01-31), maand (01-12) en jaar (1-9999). Probeer je op één van die 3 plekken een 0 in te vullen of een te groot getal? In het beste geval gaat dat niet en in het ergste geval gaan er dingen stuk.
Integers | Als het getal niets achter de komma heeft.
Strings | Alle tekens die je met je toetsenbord weet te fabriceren, passen in elke willekeurige volgorde hier in.
Charley
‘De burgerzaken wereld is een beetje bijzonder als het gaat om gedeeltelijke datums. Je moet namelijk proberen om tóch een 0 in een datum te stoppen en er vervolgens ook nog mee kunnen rekenen.’
De oude oplossing
De oude oplossing die we hier voor hadden omhelsde dat we de dag, maand en jaar los opsloegen als een integer. Daar mag je namelijk alle getallen instoppen die je wil. Vervolgens maakten we nog 2 versies van de datum. Eén om weer te geven op scherm en in documenten als een string, waar we netjes alle fratsen met nullen in kwijt konden. De ander om mee te rekenen, waarbij we een eventuele 0 door een 1 vervangen. En dan nog wat technische boekhouding achter de schermen om het bij te houden, wat voor hier te ver voert.
Dit werkt allemaal prima, en toen we net begonnen met iBurgerzaken was dit zeker een goede oplossing. Nu iBurgerzaken volwassener is geworden, merken we de nadelen er ook meer van.
Hoe meer we moeten onthouden, hoe zwaarder het is om de applicatie te draaien. Voor ons als mens is het natuurlijk net zo. Denk bijvoorbeeld aan boodschappen doen. Ga je nog even naar de supermarkt, omdat de melk op is? Dat lukt je prima zonder lijstje. Ga je voor een paar dagen boodschappen doen? Dan wordt een lijstje toch al wel handig.
De nieuwe oplossing
We stapten naar onze leverancier met de vraag om mee te denken over de verbetering. Zoals gebruikelijk stelde dat niet teleur en kwamen ze met een mooie oplossing. Door slim gebruik te maken van een combinatie van code en het modelleerplatform Blueriq, slaan we nu alleen nog één string op met daarin de datum met nullen en één ‘echte’ datum die we altijd kunnen gebruiken om te rekenen. Dit scheelt extra getalletjes en een stuk boekhouding achter de schermen. Oftewel: we hoeven minder te onthouden, waardoor de performance van iBurgerzaken sterk verbetert.
Dat is leuk denk je misschien... maar wat heb jij daar aan als ambtenaar?
Bij veel zaken is zowel het openen als het wisselen van stap in je proces aanzienlijk versneld. Gemiddeld scheelt dit zo’n 10%. Wat je daarnaast duidelijk gaat merken is het verschil in de velden die je in moet vullen. We vragen je niet langer om een vinkje te zetten waarmee je aangeeft of een datum gedeeltelijk is. Daarnaast verandert de invoer van gedeeltelijke datums van meerdere veldjes, met verschillende instructies per veldje, naar één veld waar je gewoon 00-00-1982 in kunt typen.
We pakken het omzetten van de oude naar de nieuwe wijze stukje bij beetje op. In release 4.1 zijn we al begonnen met meest voorkomende: de geboortedatum van een natuurlijk persoon. Ondertussen hebben we er al 18 omgezet en proberen we elke release één of meer datums mee te pakken.
Upgrade van Java 11 naar Java 17
Door Jeroen van Bussel, Architect bij PinkRoccade Publiekszaken
In iedere iBurgerzaken release werken we diverse technische onderdelen bij in de applicatie. Zie het als een update van alle belangrijke laatste versies die vaak zorgen voor nieuwe functionaliteiten en een betere performance. Denk daarbij aan de laatste versies van Blueriq (het framework dat onder iBurgerzaken ligt) maar ook die van onze ontwikkeltaal Java. Ook op het gebied van beveiliging blijven we uiteraard bij. Datalekken, goede virussoftware en het voorkomen van cyberaanvallen bezorgen veel ICT-deskundigen slapeloze nachten. Keer op keer blijft duidelijk hoe belangrijk het is om bij te blijven, dat werd niet zo lang geleden nog duidelijk met de vastgestelde kwetsbaarheid in de Apache Log4J (een logging component dat op Java draait).
De upgrade van Java 11 naar Java 17
Nog niet zo lang geleden kwam de nieuwste versie van het ontwikkelingsplatform Java uit: versie 17. In Java 17 zitten veel nieuwe features, die de ontwikkelaars van iBurgerzaken helpen om sneller te ontwikkelen. Je kan je zo voorstellen dat onze ontwikkelaars daar blij van worden, het levert daarnaast een betere code op.
Dat is leuk denk je misschien... maar wat heb jij daar aan als ambtenaar?
Door de upgrade naar Java 17 zijn we in staat de kwaliteit van iBurgerzaken te waarborgen. Dat betekent niet alleen dat het doet wat het functioneel moet doen, maar dat alles ook snel werkt. iBurgerzaken willen en kunnen we iedere dag nog een beetje beter maken, zodat jouw gemeente de optimale dienstverlening kan bieden. Dat betekent ook nieuwe functionaliteiten erbij bouwen, zonder dat de applicatie daar trager van wordt. We zoeken daardoor altijd naar manieren om te versnellen én tegelijkertijd uit te breiden.
Significant verschil in snelheid
Met loadtesten bekijken wie elke dag en iedere release wat de gemiddelde duur van een klik in een proces is. We simuleren als het ware dat diverse ambtenaren met allemaal verschillend werk in de applicatie werken en daarmee kijken we dan of de applicatie sneller is dan in de vorige release. Onderstaande afbeelding (klik erop om te vergroten) geef het proces huwelijk weer en de verschillende handelingen daarbinnen. Daarin is duidelijk te zien dat de handelingen zijn versneld (donkergroene staven) in release 4.6 ten opzichte van release 4.5 (lichtgroene staven).
Op deze website gebruikt PinkRoccade Local Government cookies en vergelijkbare technieken. Dit doen we om de website goed te kunnen laten werken en om te analyseren hoe de website wordt gebruikt. Bovendien voorkomt dit dat je meerdere malen dezelfde gegevens hoeft in te vullen. Zie voor meer informatie onze privacy- en cookieverklaring.