Naar de inhoud Naar het menu

Een technisch kijkje in de development-keuken 3/3

What’s in the pie? - door Loran Kloeze

nieuws/1661239246_220718-kijkje-in-de-keuken.png

Bij Freedom zijn we graag transparant in wat we doen en waar we naartoe willen. Voor de wat meer technisch onderlegden onder jullie, is het vast ook interessant om te weten wat er achter de schermen gebeurt. Onlangs gaven we jullie al een eerste en tweede blik in de development-keuken van Freedom, met dank aan onze senior software engineer Loran. Hierin legden we meer uit over het Order Management Systeem genaamd SOMS en vertelden we over het framework Ruby on Rails, waarop SOMS is ontwikkeld. Vandaag duiken we een stukje verder de keuken in.

Het tweede deel van ‘Een technisch kijkje in de development-keuken. What’s in the pie?’ sloten we af met het orderproces. We vertelden jullie dat de website gedurende dit proces continu contact legt met SOMS en op de achtergrond dingen checkt. Op het moment van daadwerkelijk bestellen, treedt er op de achtergrond van alles in werking. Zo worden er op verschillende momenten mailtjes gestuurd, zoals een orderbevestiging, het versturen van de hardware, gegevens voor het instellen van bellen enzovoort. Deze mailtjes worden verstuurd op het moment dat er weer een actie is uitgevoerd in SOMS. Het wordt in zijn geheel geautomatiseerd aangestuurd door SOMS via een systeem van orders en taken. En daar duiken we in dit stuk verder op in.

Orders
Elke bestelling die je doet, levert in SOMS een order op die afgerond moet gaan worden. Een order is een breed begrip, want ook het wijzigen van je snelheid is een order. Of zelfs het aanpassen van je IBAN. Simpel gezegd: alles wat je bestelt of wijzigt aan jouw abonnement wordt realiteit via een nieuwe ‘order’.

Een order is gekoppeld aan een klant en bestaat uit meerdere taken. Alle taken worden in principe automatisch uitgevoerd. Mocht een taak niet uitgevoerd kunnen worden om welke reden dan ook, dan kan een medewerker van Freedom ingrijpen en de taak opnieuw laten uitvoeren of desnoods aanpassen. En pas wanneer álle taken zijn voltooid, is ook de order voltooid. Het eindresultaat van een order, is een nieuw aangepast abonnement of meerdere nieuwe aangepaste abonnementen.

Taken
Een taak is ook een breed begrip. Het komt erop neer dat een taak ‘invoer’ ontvangt, iets geautomatiseerd doet of ‘uitvoer’ produceert. Die ‘uitvoer’ kan bovendien weer gebruikt worden als ‘invoer’ voor een andere taak of om informatie op te slaan in SOMS.

We hebben bijvoorbeeld een taak genaamd `EmailHardwareSent`. Deze taak wacht tot de hardware, bijvoorbeeld een modem, verzonden is van onze partner naar een klant. Wanneer de hardware verzonden is, dan stuurt de taak een mailtje naar de klant met een track & trace link. Een ander voorbeeld van een taak is `CanalDigitaalCreate`. Met deze taak wordt bij Canal Digitaal een tv-abonnement besteld en gekoppeld aan onze klant. Een derde voorbeeld is de taak `InternetConnectivityCheck’. Bij deze taak controleren we uiteindelijk of je internetverbinding daadwerkelijk 'up' is. Dit doen we door heen en weer te ‘pingen’ tussen jouw aansluiting en onze servers.

Voor één internetorder zijn er soms wel meer dan 20 taken nodig om uiteindelijk de order te kunnen voltooien. Sommige taken worden uitgevoerd direct nadat een andere taak is voltooid. Maar er zijn ook taken waarbij SOMS om de zoveel tijd checkt of ze uitgevoerd kunnen worden, omdat er gewacht moet worden op bepaalde condities. Kortom, taken doen in SOMS het meeste werk en zijn noodzakelijk om orders te voltooien.

Abonnementen
Wanneer een order met al zijn taken is afgerond, dan levert dat één of meerdere nieuwe of gewijzigde abonnementen op. Vanuit één order kan bijvoorbeeld internet en televisie zijn besteld. Het resultaat is in dit geval twee abonnementen: een abonnement voor de internetaansluiting en een abonnement voor televisie. We hebben SOMS zo ingericht dat abonnementen uiteindelijk los kunnen bestaan van orders. Op die manier kunnen we orders verwijderen terwijl de abonnementen blijven bestaan. Dit sluit mooi aan op onze wens van dataminimalisatie.

De abonnementen in SOMS vormen uiteindelijk de bron van wat er op dit moment aan klanten geleverd wordt. Anders gezegd: orders en taken in SOMS vertellen ons wat er staat te gebeuren, abonnementen vertellen ons wat er gebeurt op dit moment.


Hetgeen wat Loran hierboven beschreven heeft is een 'high over' van onze SOMS-applicatie. Wil je ergens meer van weten? Of wil je misschien zelfs dat we eens stukje broncode behandelen? Stuur een mailtje naar communicatie@freedomnet.nl.