SOA en cloud worden niet vaak samen genoemd, terwijl je dat eigenlijk wel zou verwachten. Cloud computing gaat uit van 'de beste computer is geen computer' (call as a service). Bij SOA is de beste programmacode, geen programmacode (call as a service). De combinatie lijkt dus voor de hand te liggen. Zou het niet prachtig zijn als we klant- of gebruikerspecifieke applicaties kunnen aanbieden die voor 100 procent bestaan uit het aanroepen van goedkope of zelfs gratis cloudservices?
Vandaag gaat de discussie bij cloud met name over drie dingen: IaaS, PaaS en SaaS.
– IaaS (infrastructure as a service) is het dynamisch aanroepen van hardwareservices om eigen applicaties te draaien of eigen data op te slaan. Dit is de wereld van it-operations.
– PaaS (platform as a service) gaat over het bouwen van applicaties, de development-wereld. De meeste PaaS-platforms (met excuses voor het pleonasme) beginnen gewoon weer met: zo schrijf je een 'Hello, World!'-programma, niet met 'Zo roep je beschikbare services in die World aan'.
– SaaS (software as a service) is het aanbieden van kant-en-klare applicaties, de wereld van de gebruikers.
Wat we missen is een laag die hier nog boven draait en deze drie groepen weer verbindt, noem het cloud workflow, cloud orchestration, cloud mash-up's of cloud as a service (CaaS). Het lastige is natuurlijk dat we die orchestration niet willen doen op een eigen in house-platform, maar wederom 'as a service'. Er zijn wel enige leveranciers die claimen dit aan te bieden (veelal echter niet als service) , terwijl sommige cloudleveranciers dit soort mash-up mogelijkheiden nu in hun applicaties inbouwen (denk aan het onlangs aangekondigde Salesforce Chatter). Maar zou, ook om lock-in te voorkomen, dit soort orchestratie niet juist als aparte laag geïmplementeerd moeten worden?
In de populaire literatuur en het algemeen spraakgebruik rondom cloud computing wordt deze vierde laag nog grotendeels genegeerd. Als gevolg hiervan wordt SOA, net als virtualisatie, browsers, applicatieservers en databases, simpelweg gezien als een van de technologieën die je gebruikt om cloudapplicaties of -services te bouwen. Maar niet als fundamentele manier waarop je cloudservices kunt samenvoegen om meer waarde toe te voegen. Net zoals een Toyota, op basis van sterk gestandaardiseerde componenten, dankzij 'lean manufacturing' honderden verschillende, unieke modellen voor een aantrekkelijke prijs aan kan bieden.
Waarom wordt dit SOA-aspect van cloud computing tot nu toe genegeerd? Hebben we als SOA-community zitten slapen toen cloud de hype cycle beklom? Of hadden we het gewoon te druk met waarmaken wat we allemaal beloofd hadden toen we zelf nog op die hype cycle zaten? Een beetje hebben we het aan ons zelf te danken. We hebben SOA immers erg ingewikkeld gemaakt. Kon in de tijd van 4GL de gemiddelde gebruiker zelf nog iets creëren, met Java en xml dit is allang niet meer mogelijk. Momenteel rennen de gebruikers naar SaaS , vindt operations IaaS prachtig en moeten wij in ontwikkeling het doen met PaaS.
Een risico hiervan is dat cloud computing de kloof tussen gebruikers, ontwikkelaars en operations groter in plaats van kleiner zal maken. Een kloof die door de overgang van maatwerk naar standaardpakketten al groter is dan hij ooit had moeten zijn. Een orchestratielaag bovenop SaaS, PaaS en IaaS maakt samenwerking en differentatie mogelijk en kan lock-in voorkomen. Het grootste gevaar van de cloud is namelijk niet security (dat lossen we binnenkort wel op), het is vendor lock-in. Nu is het moment om dit aan te kaarten en 'SOA on top of the cloud' in plaats van 'SOA behind the cloud' is de manier om dit te doen. CaaS for president. Wie stemt er mee?