Februari 2017 tot september 2017 - Het vervangen van een statische data integratie applicatie door een platform waarin data integratie plaatsvindt deels op basis van overeenkomsten in veranderlijke datamodellen en deels op basis van configuratie.

Tags:
C#.NET - SQL Server - Code First EntityFramework - WCF - Dependency Injection - Expression trees - Service Oriented Architecture

Situatie

De opdrachtgever heeft een systeem dat interesse van klanten voor producten, naar aanleiding van klikgedrag op de website, combineert met informatie over beschikbare voorraad en product informatie zoals beschrijvingen en afbeeldingen zodat dit kan worden aangeboden aan een e-mail marketing applicatie. Dit wordt een campagne genoemd. In de applicatie zijn zo’n zeven campagnes geprogrammeerd. Een nieuwe klant verlangt veel meer diversiteit en dynamiek in campagnes en kan dus niet voor elke wijziging maanden wachten totdat ontwikkelteams dit hebben gerealiseerd.

Taken

Het ontwerpen en ontwikkelen van een nieuw systeem dat zo veel mogelijk functionaliteit automatisch verricht op basis van aangeboden data structuur en verder door gebruikers te configureren is. Bovendien zijn de eisen op performance gebied aanzienlijk omdat het aantal te verwerken records voor de nieuwe klant zo’n vijf maal hoger ligt dan wat er door het bestaande systeem werd verwerkt.

Aanpak

Voor elk van de functionele gebieden (selectie van aanbiedingen uit voorraad, verrijken met artikel informatie, lezen van externe informatie, berekenen van afgeleide informatie en validatie) heb ik WCF services ontwikkeld die zowel als service als direct benaderbaar zijn om onnodige serialisatie door WCF te voorkomen. Deze services bevatten veelal een initialisatie fase waarin de uit te voeren handelingen worden vastgesteld, voorbereid en geoptimaliseerd, zodat de bewerkingen in de uitvoerende fase zo snel mogelijk verlopen. Veel functionaliteit is gebaseerd op gestandaardiseerde kolomnamen. Een configuratie portal maakt het mogelijk om expliciete instellingen te doen.

Resultaat

Bij het schrijven van deze tekst bevindt het systeem zich in de test fase. De resultaten zijn zeer veelbelovend. Het systeem wordt gebruikt als een set gereedschappen die naar behoefte worden ingezet. Wijzigingen in bestaande campagnes zijn eenvoudig door de gebruikers zelf te realiseren.