PostStation is een commercieel vitale applicatie voor een bedrijf als De Post. Ze zorgt voor de nodige automatisering op alle plaatsen waar enige verkoopactiviteit is, en dat blijken al gauw meer dan 4000 werkstations te zijn (niet alleen in 1600 postkantoren, maar ook ondermeer in een driehonderdtal Postpunten in warenhuizen als Delhaize). Frankeringen, afhalen van zendingen, verkoop van zegels, gsm herlaadkaarten of loterijbiljetten, bancaire transacties,… geen enkele verkoop- of administratieve activiteit kan zonder. De migratie van de oorspronkelijk in VB6 geschreven applicatie naar een Webomgeving binnen een .NET architectuur, werd dan ook met argusogen gevolgd.

PostStation heeft al een hele geschiedenis achter zich. De achterliggende architectuur werd zes jaar geleden uitgetekend, en was opgebouwd rond het op dat moment bewezen principe van de smart client: een klantapplicatie geschreven in DHTML, die via Web Services communiceert met de gecentraliseerd gehouden businesslogica, waarvoor in die tijd Visual Basic 6 als een logische keuze ervaren werd. De verwerkingskracht bij de client wordt gebruikt voor de beeldsamenstelling (het zogenaamde ‘rendering’ proces) en een eerste businessvalidatie; alle workflow en businesslogica gebeurt in de centrale farm bestaande uit een tiental applicatie- en webservers. Daar worden ook alle transacties bijgehouden in wat één van de grootste SQL Server 2000 databases van Europa geworden is: dagelijks realiseert PostStation zo’n vijfhonderdduizend verkooptransacties, op piekdagen zelfs tot 850.000, met een maximum ratio van bijna 7000 transacties per minuut! En toch slaagt men erin om 90 procent daarvan binnen de halve seconde af te werken, 99 procent zelfs binnen de twee seconden.

Toen Microsoft in 2002 het. NET Frame-work lanceerde en het duidelijk werd dat het eens zo populaire Visual Studio 6 nu snel “eindeloopbaan” verklaard zou worden, drong zich haast onmiddellijk de vraag op hoe zo’n belangrijke applicatie daarmee kon, zou of wou omgaan? Na een uitgebreide voorstudie werd in 2005 beslist om de intussen méér dan 100.000 regels broncode te migreren naar wat toen al versie 2.0 van dat Framework geworden was, en het geheel te ontplooien in een ‘big bang’. De hulp werd daarbij ingeroepen van. NET experten als Euricom (een onderdeel van de Dimension Data groep) en NAIS Software.

Van VB6 naar C#

Het project verliep in twee fasen. Eerst werden een aantal voorbereidende maatregelen getroffen: zo werd de standaard VB6 foutafhandeling vervangen door een meer gestructureerde manier om bugs te ondervangen. Het COM+ transactiebeheer, met zijn onvermijdelijke registraties, moest wijken voor het System. Transactions transactiemodel. Dit eenduidig en eenvoudig programmeermodel biedt diverse functionaliteiten aan, die het leven van een. NET ontwikkelaar stukken gemakkelijker kunnen maken. Ook de datalaag, die in VB6 rond de ADO Recordset gebouwd werd, leverde voorbereidende migratieproblemen op: PostStation maakt immers dankbaar gebruik van de mogelijkheden die deze biedt, om in bulk SQL instructies met parameters te genereren. Een equivalent in. NET bestaat daarvan niet, dus zat er niets anders op dan dit zelf na te bouwen

In een tweede fase kwam dan de codeconversie naar C# aan bod. Ook hier zijn een aantal tussenstappen nodig: eerst dient de VB6 code de nodige voorbehandeling te krijgen. Vervolgens volgt een eerste vertaalslag naar VB. NET met de gespecialiseerde Wizard van Microsoft. Die gemigreerde code moet dan gewijzigd worden tot ze opnieuw compileert. Vervolgens gaat het van VB. NET naar C#, finaal gevolgd door alweer een rondje codewijziging om tot een foutloze compilatie te komen. Omdat die correcties aanvankelijk enkel manueel konden gebeuren, werd dit opgevangen door een extra eigen ontwikkeling, die de nodige interpretatie aan de foutboodschappen kon geven op basis van de vaak stereotiepe informatie die deze bevatten. De klassieke, maar daarom niet minder uitgebreide serie testen (unittesten, integratietesten, UAT of user acceptance testen en performantietesten), werd tenslotte nog aangevuld met een nieuwe techniek, waarbij de resultaten van de VB6 webservice werden vergeleken met die van het .NET equivalent.

Vlekkeloos

Dit allemaal om de “big bang” ontplooiing vlekkeloos te laten verlopen. En zo geschiedde ook eerder dit jaar. De duizenden gebruikers konden op een mooie morgen in februari enkel vaststellen dat hun vertrouwde applicatie plots merkelijk sneller reageerde. Ook de cijfers bevestigden een geslaagde overgang: uit het Performance Dashboard bleek een daling met twintig procent van de globale tijd die het kost om de servers aan te roepen vanuit de clients. Mooi meegenomen voor een toepassing die intussen al méér dan driehonderd taken uit het dagelijkse kantoorleven voor haar rekening neemt.

Filip Leys

Fout opgemerkt of meer nieuws? Meld het hier

Partner Content