Wanneer je na een treinreis een OV-fiets pakt om de laatste kilometers naar je eindbestemming af te leggen, heb je binnenkort geen sleutel meer nodig om hem op slot te zetten. Als onderdeel van het project Frame worden 25.000 OV-fietsen uitgerust met een slim slot. Hoe werkt het precies?
Een van de aanleidingen voor ingebruikname van het nieuwe systeem, dat werkt met NFC-technologie (Near Field Communication), is dat sleuteltjes van fietsen nogal eens kwijtraken. "Operationeel betekent dit dat onze medewerkers vaak bezig zijn met het openmaken van sloten en het vervangen van sleuteltjes", vertelt Paul Janssen, product owner van Frame bij NS. De belangrijkste achterliggende reden is echter de explosieve groei in populariteit van de OV-fiets. In 2019 werden 5,2 miljoen ritten op de blauw-gele tweewielers gemaakt, een verdubbeling ten opzichte van een paar jaar eerder. "Op een gegeven moment moet je heroverwegen hoe je zaken uitvoert. Ons uitgangspunt is om het platform zo schaalbaar mogelijk neer te zetten."
Meerdere primary keys
Iets waar NS tegenaan liep met de OV-fietsen, is dat het bedrijf verschillende systemen hanteert voor het uitleveren: van bemande stallingen waar medewerkers met scanners in de weer zijn, tot fietskluizen waar reizigers zelf een fiets kunnen meenemen. "Afhankelijk van de verhuurlocatie en welk verhuursysteem je hanteert, gebruik je steeds één van de drie verschillende tags die op een fiets zitten. Die tag is op dat moment in essentie de primary key voor die fiets, maar het resultaat is dat je feitelijk dus meerdere primary keys hebt. Dit is problematisch, want voor het administratieve platform voor de OV-fiets, Frame, vertegenwoordigen ze allemaal dezelfde fiets." Behalve de onduidelijkheid die dit oplevert, brengt de traditionele oplossing nog een ander nadeel met zich mee. "Op een gegeven moment moet je sleutels opnieuw koppelen aan het systeem. Omdat géén van de tags leidend is, reset je daarbij in essentie de historie van de fiets, wat jammer is vanuit het oogpunt van analytics. Misschien is dat geen enkel punt bij een paar duizend fietsen, maar bij 25.000 fietsen is dat eigenlijk niet acceptabel. Daarom willen we naar een meer generieke oplossing die voor alle locaties hetzelfde blijft."
Die oplossing is het slimme slot, waarmee de OV-fietsen bij de stations Apeldoorn en ‘s-Hertogenbosch inmiddels al zijn uitgerust. De overige (meer dan driehonderd) NS-locaties volgen nog. Het slot 'praat' met Frame, het transactieplatform voor de OV-fiets. "Elke transactie met een fiets gaat via Frame, van het huren tot het weer inleveren", zegt Paul. "Het slimme slot leest de OV-chipkaart en praat met het backend-systeem, via een router die bij de fietsenstalling staat. Daarmee zorgen we voor de autorisatie; heeft iemand bijvoorbeeld niet al meer dan twee fietsen gehuurd en geen boetes uitstaan, en moet de fiets niet worden gerepareerd? Als het akkoord is, stuurt Frame een OK-melding naar het slot." Zodra de verhuur is vastgelegd is hij via de frontend ook direct inzichtelijk voor het personeel op locatie en de klantenservice van NS. Aan het einde van de rit, zodra het slot dichtgaat en de fiets binnen het bereik is van de router, stuurt het slimme slot wederom een signaal naar de router en beëindigt Frame de transactie.
Uitvoerig testen
Het concept van het slimme slot is op zich niet nieuw. In de consumentenmarkt zijn slimme sloten al langer te koop. "Het nieuwe zit in de schaal waarop we ze toepassen. Met 25.000 fietsen moet het goed werken, anders heb je al snel een operationeel probleem. Daarom was het onze uitdaging om al die slimme automatisering en sloten zo goed mogelijk te laten communiceren en samenwerken, op een manier waarbij één bericht altijd hetzelfde betekent en een terugkoppeling altijd op dezelfde manier wordt verwerkt. We willen dat alle mogelijke flows zijn uitgeplozen om hier oplossingen voor te vinden." Voor de introductie van het slimme slot voor de OV-fiets zijn uitvoerige testtrajecten uitgevoerd. Zo werd eind 2019 twee maanden getest met vierhonderd sloten in Apeldoorn. "We hebben daarbij veel kinderziekten uit het systeem kunnen halen. Vervolgens is door de corona-uitbraak wat vertraging ontstaan. We hebben bijvoorbeeld nog last gehad van de chipcrisis. In januari 2021 zijn we met het systeem in productie gegaan."
Een van de zaken waarop scherp is gelet bij de ontwikkeling van het slimme slot voor de OV-fiets is het batterijgebruik. Zo is er bewust voor gekozen om het slot niet met een internet- of gps-verbinding uit te rusten en moet het in de buurt van een router zijn om data over te dragen aan Frame. "We hebben bijvoorbeeld gekeken naar hoe je een batterij oplaadt op een manier die behapbaar is op zo'n grote schaal. Door het aantal verbindingen te beperken en het slot niet meer data te laten verzamelen dan absoluut noodzakelijk, is dat mogelijk. Zo hebben we een slot ingekocht dat in principe langer dan een jaar operationeel moet kunnen blijven voordat de batterij opnieuw moet worden geladen. Daarbij hebben we failsafe-systemen met logica ingebouwd om te voorkomen dat een klant zonder stroom komt te zitten. Het slot stuurt regelmatig een heart beat met statusinformatie, onder andere over het batterijniveau. Daalt dat niveau tot onder de 10 procent, dan maken we de fiets onverhuurbaar."
Data voor preventief onderhoud
Overigens verzamelt het systeem geen informatie over de klant. "Het enige dat wij verzamelen, is de slottemperatuur, de batterijstatus en de firmware-versie. Een variabele die we nog toe gaan voegen, is het aantal omwentelingen van de wielen. Dat doen we voor een deel om inzicht te krijgen in hoeveel kilometers reizigers per fietsverhuring afleggen, maar we willen ook weten na hoeveel kilometer onderdelen defect raken. Op basis van die informatie kunnen we preventief onderhoud uitvoeren."
Frame, het platform waarmee het slimme slot communiceert, is hoofdzakelijk ontwikkeld in Java en draait op verschillende microservices in Docker-containers, gemanaged via een Kubernetes-platform. "Het platform gebruikt honderden REST-api's die we documenteren via Swagger", vertelt Paul. "Daarnaast maken we gebruik van streaming met RabbitMQ voor het versturen van berichten voor asynchrone processen, zoals het updaten van informatie over het aantal fietsen op een locatie." Het platform heeft een frontend voor backoffice-personeel en de klantenservice. NS onderhoudt deze frontend in TimeLeaf en bouwt hem langzaam om naar React. "Met React hebben we een framework met wat meer mogelijkheden en flexibiliteit voor mobiele devices. Ons doel is met Frame een hoogbeschikbaar platform te hebben waarbij we allerlei monitoringtools gebruiken, zoals Zebix en Prometheus. Voor performancetesten maken we gebruik van Gatling."
Vrijheid voor developers
Het leuke van Frame is volgens Paul dat het een groot platform met veel maatwerk is. "We hebben tot nu toe alles ontwikkeld samen met onze partner INFO en werken nu aan het opzetten van een eigen ontwikkelteam binnen NS. Als product owner ben ik verantwoordelijk voor alles, van prioritering tot budgetten en planning. Eigenlijk hebben we ons eigen minibedrijfje binnen NS. Natuurlijk overleggen we met stakeholders, maar met mijn team ben ik heel vrij in het nemen van beslissingen over oplossingsrichtingen en tooling. Zo komt de oplossing voor het streamen met RabbitMQ uit het team van developers." Een les uit de ontwikkeling van het slimme slot is dan ook dat creativiteit de ruimte moet worden gegeven, vertelt Paul. "Dat geldt ook voor de creativiteit buiten het team. Zo hadden we aanvankelijk veel aannames over wat er nodig zou zijn voor het slimme slot, bijvoorbeeld integratie met smartphones. Verschillende leveranciers wezen ons erop dat het ook kon met NFC-technologie. Als je creativiteit de vrije loop laat, kom je tot mooie oplossingen."