Hoe maak ik mijn applicaties ‘SaaS’-baar?
“Maar dat is alleen al de omzet van één van onze leden!”, stelt voorzitter Michiel de van der Schueren van het ASP Forum, waarin Nederlandse online-softwareleveranciers zijn verenigd.
Het verschil in de schattingen heeft ongetwijfeld te maken met de spraakverwarring over wat ‘software-als-online-dienst’ nu eigenlijk is. Van der Schueren doet daar niet moeilijk over, het maakt volgens hem niet uit of je het ‘ASP’ of ‘SaaS’ noemt. “Het is gewoon een businessmodel”, stelt hij op een SaaS-miniconferentie. Dat dat businessmodel in technische zin niet zonder meer op iedere software toegepast kan worden, wordt echter duidelijk gemaakt door Jan Aleman, directeur van het Nederlandse bedrijf Servoy, dat de bijeenkomst organiseerde. En menig softwareleverancier die overweegt zijn applicaties ook via het web toegankelijk te maken en daarmee in de schaalvoordeelrace wil meedoen, zal zich moeten realiseren dat er een heel lijstje met eisen is.
De meest vooruitstrevende SaaS-applicatie heeft de ‘multitenancy’-vorm zoals die van Salesforce.com. Het is de vorm waarin de meeste schaalvoordelen zijn te behalen omdat de gebruikers zowel hard- als software delen. “De technologie moet schaalbaar en stabiel zijn. Dat wordt zeer onderschat.” Velen denken volgens hem dat dat een hardwarekwestie is. “Maar het is juist de software, die moet je heel goed testen.”
Meertalig
Belangrijk is allereerst dat de software alleen ‘multicompany’ is als de gegevens van verschillende bedrijven automatisch worden gescheiden door de software. Dat software meertalig moet zijn en aanpasbaar aan een heel scala van nationale standaarden, ligt ook voor de hand.
Voor de programmeurs heeft Aleman nog wat diepgaander tips. “Een net afgestudeerde HTS’er zal in zijn normalisatiedrang van het datamodel één tabel maken, maar het is niet slim om zover te gaan.” En ook: “Houd systeemtabellen en user-tabellen gescheiden van elkaar.”
Goed nadenken over de te gebruiken client is ook belangrijk. Moderne Ajax-technieken kunnen van ieder browservenster een redelijke volwaardige GUI maken, maar de verschillen tussen de diverse browsers en hun versies zorgen vaak voor verschillen in weergave en al snel voor echte weergaveproblemen. “Een smart client is een goed alternatief”, stelt Aleman. Daarmee bedoelt hij een lichtgewicht Java-client als GUI voor de online-applicatie, die lokaal draait en weinig bandbreedte gebruikt.
Wat vooral ook niet vergeten moet worden is het afdrukken en rapporteren vanuit een SaaS-omgeving. “Mijn advies is: ga voor het PDF-formaat als je wilt printen of rapporteren. Dat is meer standaard dan de browser zelf.”
Opschalen
Servoy is een Nederlands bedrijf met dertig medewerkers, waarvan tien in de VS, die de vele Amerikaanse klanten bedienen. “De early adopters zitten niet echt in Europa.” Met zijn gelijknamige programmeeromgeving bedient Servoy volgens Aleman heel wat softwareleveranciers die bezig zijn hun software ‘op te schalen’, met name in de richting van SaaS. Maar de kleinsten met hun ‘Filemaker-toepassingen’ en de grotere met hun in 4GL’s geschreven software lopen dan tegen hun grenzen aan. Aleman omschrijft Servoy – een pure Java-omgeving – als ‘een 3GL, maar met de voordelen van een 4GL’. “4GL’s zijn nooit goed geweest in internet-toepassingen. En met Java kun je de schaalbaarheid aan. Tegelijkertijd is voor 80 procent van de ontwikkelaars Java een te gecompliceerde omgeving. Dat lossen wij op met nog eens 400 a 500 Java-classes bovenop de pakweg 20.000 die de standaard-Java-omgeving al kent.” Het mag nooit een gesloten omgeving worden, stelt Aleman; bij alles wat je doet moet je op het pure Java kunnen terugvallen.
SaaS-machine
Servoy heeft nu circa 500 ISV’s als klant, met 120.000 eindgebruikers die software via de runtime-machine van het bedrijf gebruiken. De meeste klanten van Servoy willen bestaande applicaties naar een SaaS-niveau opschalen en niet geheel nieuwe applicaties bouwen. Servoy als automatische ‘Saas-machine’ was een idee dat Aleman enkele jaren geleden ook zelf had. “We hebben dat wel geprobeerd, om een 4GL volautomatisch te converteren naar de Servoy-omgeving. Op een gegeven moment hadden we dat werkend, maar wat zagen we? ‘Garbage in, garbage out’. Een 4GL dwingt je om op een bepaalde manier te programmeren. Dat kun je wel letterlijk gaan omzetten naar onze Java-omgeving, maar dan is je onderhoudbaarheid nog net zo slecht. Daar zijn we dus van teruggekomen.” Nu zegt Aleman een methode te hebben om snel applicaties om te schrijven naar Servoy. Applicaties van een paar honderdduizend regels kunnen volgens hem in een paar maanden klaar zijn.