Software-as-a-Service (SaaS) is hot. Maar de ontwikkeling van dergelijke applicaties vereist specifieke ondersteuning in de ontwikkelomgeving. Op dit moment lijkt het daarvoor nog te vroeg. Ontwikkelaars kunnen echter prima terecht in de open source-wereld.
De trend naar Software-as-a-Service (SaaS) is onmiskenbaar. Een businessmodel op basis van diensten is voor de hand liggend in een wereld waarin applicaties op basis van soa (service oriented architecture) worden samengesteld uit functionaliteit van ketenpartners, sociale media en collaboration tools. Het bouwen van dergelijke toepassingen vraagt wel om specifieke ondersteuning in de ontwikkelomgeving.
Op dit moment weten we alleen van Servoy dat het zich expliciet op deze applicaties richt. Als we de analisten van Evans Data naar de markt vragen, moeten ook zij het antwoord schuldig blijven: het is nog te vroeg om iets over deze ontwikkelingen te kunnen zeggen. Ontwikkelomgevingen lijken dus achter te lopen op deze nieuwere manier van softwaregebruik.
Zelf samengesteld
Willem Spruijt, ‘Ajaxorized-blogger ‘en een van de oprichters van ‘boekhoud-SaaS' Qash, vertelt hoe hij zijn ontwikkelomgeving op basis van open source heeft samengesteld. "Qash is een online kasboek. Je kunt de gegevens van verschillende bankrekeningen importeren en daar verschillende overzichten van budgetten en uitgaven van maken. De basis is nu gratis. In de toekomst willen we geld vragen voor extra functionaliteit."
De huidige ontwikkelomgeving is het resultaat van historie en middelen. "We zijn begonnen in php omdat we daar ervaring mee hadden. We wilden in ieder geval een echte web-taal, met veel functionaliteit voor internet-toepassingen. En het moest open source zijn. Het had ook Ruby on Rails, of Python kunnen worden, maar we wilden niet een nieuwe taal leren. Bovendien bleef het prestatieniveau van het Rails-framework achter. Twitter heeft na zijn doorbraak veel problemen gehad met zijn Ruby-engine."
Nadeel van php is wel dat het een slechte reputatie heeft voor wat betreft de veiligheid. Met name in de financiële wereld is dat een eerste vereiste. Volgens Spruijt ligt dat echter niet aan de taal maar aan de programmeurs. "Php heeft een heleboel tools voor beveiliging. Maar je moet ze wel gebruiken."
Eclipse
Op dit moment gebruikt Spruijt Eclipse als ontwikkelplatform. "Ik ben ooit begonnen met Java, waar Eclipse heel groot is. We zijn dat toen ook gaan gebruiken in combinatie met php." Volgens Spruijt is het een heel krachtige ontwikkelomgeving. Hij noemt enthousiast functies als code highlighting, function name completion, instant syntax controle (in plaats van je code te moeten runnen om dan de regelnummers uit de foutmeldingen terug te zoeken), het revision management system svn (voor programmeren in teamverband) en search-and-replace op basis van reguliere expressies. Daarnaast kun je heel eenvoudig documentatie genereren uit de code zelf (vergelijkbaar met javadoc).
"Als je de Zend Studio-plugin gebruikt, dan kun je vanuit Eclipse ook debuggen," vertelt Spruijt. Hoewel de kosten ervan de Qash-ontwikkelaars tot nu toe ervan hebben weerhouden om Zend Studio te kopen, willen ze dat wel.
Internationalisering
Internationalisering, een belangrijke functie voor online dienstverleners, wordt op dit moment nog niet ondersteund in Qash. Volgens Spruijt is dat wel makkelijk te realiseren. "Alle web-afhankelijke onderdelen zitten in de presentatielaag. Maar op dit moment richten we ons juist op de Nederlandse markt. In de Verenigde Staten zijn dit soort toepassingen razend populair. Als het moet kunnen we alle code in twee weken internationaliseren."
De meestgebruikte tool daarvoor is gettext. "We denken ook al na over de ondersteuning van verschillende valuta. Wat gebeurt er als gebruikers de gegevens van verschillende rekeningen inlezen?"
Data scheiden
Een andere belangrijke eis die klanten aan SaaS-aanbieders stellen, is de scheiding van data. Iedereen gebruikt immers dezelfde applicatie. Bovendien zijn online applicaties bij uitstek kwetsbaar voor aanvallen middels sql-injection. Daarbij wordt de url van een web-pagina aangepast in de hoop van buitenaf commando's in de achterliggende software of sql-database te kunnen inbrengen.
Als je grote klanten bedient, kun je voor iedereen een eigen database creëren. Gaat het om grote aantallen consumenten, dan moet je iets anders verzinnen. Qash heeft ervoor gekozen om alle velden afzonderlijk te versleutelen. "Zo kunnen wij zelf de gegevens ook niet inzien."
Hieraan gerelateerd is de locatie van de database. Vanwege verschillen in de landelijke privacy-wetgeving moet je goed nadenken waar je de gegevens opslaat. Om diezelfde reden kan achteraf verplaatsen van de data een probleem zijn.
Verzameling tools
Naast Eclipse gebruiken de Qash-ontwikkelaars nog verschillende andere tools. "We doen veel JavaScript en ajax," vertelt Spruijt. "We hebben twaalf pagina's met een stuk of zestig ajax-aanroepen. Het meest gebruikte ajax-framework voor php is Jaxer, maar die gebruiken wij niet. Hoewel we geen fans zijn van zelf schrijven, hebben we in dit geval wat gebouwd op basis van json, een efficiënt formaat voor het uitwisselen van datastructuren tussen client (browser) en server (php)."
De JavaScript-functies van Qash zijn gebaseerd op Prototype en script.aculo.us. Eerstgenoemde breidt de bestaande JavaScript-objecten uit met nieuwe functionaliteit. Het tweede is een front-end library voor het toevoegen van interactiviteit aan webinterface-componenten. De verdere ontwikkeling van deze libraries staat echter nagenoeg stil. Dus zou je volgens Spruijt nu kiezen voor jQuery. Dit is ook het soort tools dat hij op zijn Ajaxorized-blog bespreekt.
Daarnaast wordt bij Qash nu nagedacht over een deployment-pakket. "Ik wil kunnen exporteren van lokale code naar test naar live, en daarbij automatisch de testscripts laten uitvoeren. Op dit moment gebruiken we PHing. Die is heel goed, maar de configuratie wordt opgeslagen in een complex xml-bestand en er zit geen user interface bij."
Schoolvoorbeeld
Wie nieuwsgierig is naar het soort functionaliteit dat je op deze manier kunt bouwen, hoeft alleen maar zijn Gmail te openen. "Die maildienst van Google is een schoolvoorbeeld van hoe het wel moet," zegt Spruijt. "Dat is een echte Web 2.0-applicatie, met veel overlays en ajax." Een andere is Wakoopa.com, een Nederlandse startup die een verzamelplaats en online-indexeerder is voor applicaties en games.
Gebruikercentrische software
De komende jaren zal zowel de architectuur van software als de manier waarop we die gebruiken sterk veranderen. Volgens onderzoeksbureau Gartner worden applicaties in toenemende mate opgebouwd uit soa-componenten (service oriented architecture). Daarbij wordt niet alleen gebruik gemaakt van functionaliteit van ketenpartners, maar ook geïntegreerd met sociale media en collaboration tools. Het resultaat is een toepassing die niet langer ondernemingsgericht is, maar gebruikercentrisch. Volgens de analisten wordt dit jaar in de wereldwijde SaaS-markt al een omzet van 6,4 miljard dollar bereikt, een stijging van 27 procent.
Disruptive SaaS-technologies:
-
samengestelde applicaties op basis van soa
-
de combinatie van functionaliteit met sociale media en collaboration tools, over de grenzen van organisatie en keten heen
-
uiterst flexibele applicaties, toegankelijk via het web of als dienst (SaaS: Software-as-a-Service)
-
trend naar een markt van hele grote leveranciers, waarin niche-spelers moeten knokken voor een plekje en gebruikers in een lock-in-situatie terecht komen