Managed hosting door True
Deze opinie is van een externe deskundige. De inhoud vertegenwoordigt dus niet noodzakelijk het gedachtegoed van de redactie.

Tijd voor Software Architecture 2.0

Computable Expert

Gijs in ‘t Veld
CTO, Motion10. Expert van Computable voor de topics Digital Transformation, Cloud Computing en Infrastructuur.

Serice Oriented Architecture en Object Oriented Programming hebben veel dingen gemeen. Onder andere dat beide termen te veel woorden bevatten. Zijn er nog meer overeenkomsten?

Service Oriented Architecture zou gewoon Architecture moeten zijn en SOA zou A moeten zijn. Het zelfde geldt voor OOP. P of Programming is hier voldoende omdat geen enkele zichzelf respecterende ontwikkelaar tegenwoordig nog code schrijft die niet object georienteerd is.

Net als bij Architeture is bij Programming het "contract first" principe zeer belangrijk; het contract wordt eerst geschreven alvorens men over gaat tot de implementatie van het component of de dienst. Dit verhoogt de kans op goede interoperabiliteit omdat het altijd duidelijk is wat de bedoeling is. De implementatie kan ook perfect worden afgestemd op het contract en dat verhoogt de kwaliteit.

Naast 'contract first' zijn er nog twee belangrijke principes die ik wat extra aandacht wil geven: Abstraction en Reusability (voor de overige 6 principes - lees Principles of Service Design door Thomas Erl).

Abstraction is belangrijk omdat hiermee de implementatie van een component of service niet bekend is voor degene die de service of component aanroept.

Reusability is natuurlijk belangrijk omdat hergebruik kostenbesparing op de implementatie van nieuwe business processen mogelijk maakt. Dit wordt bewerkstelligd door de component of service zo te implementeren dat het niets van de context afweet.

Zo zullen we zien dat de overige 6 principes voor zowel services als componenten geldt. Nergens zullen de principes principieel afwijken van wat er voor component ontwikkeling geldt.

Het enige verschil is dat componenten aan elkaar worden geregen door een programmeur die in een tekstverwerker code ontwikkelt en dat services gebruikt worden door flexibel in te richten bedrijfsprocessen (Business Process Management, Orchestration, Business Rules, etc.). In het ene geval is het de programmeur die procedurele code schrijft in het andere geval is het de business analist die oplossingen ontwikkelt door services "aan elkaar te klikken".

Maar wacht eens even, als dat het enige verschil is... wordt het dan niet tijd dat we dit gaan combineren tot een totaal oplossing? Het beste van beide werelden? P zorgt voor herbruikbare, abstracte componenten en A zorgt voor de orchestratie van de componenten. En we noemen het: Software Architecture 2.0 of SA 2.0?

x

Om te kunnen beoordelen moet u ingelogd zijn:

Dit artikel delen:

Stuur dit artikel door

Uw naam ontbreekt
Uw e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×
Wilt u dagelijks op de hoogte worden gehouden van het laatste ict-nieuws, achtergronden en opinie?
Abonneer uzelf op onze gratis nieuwsbrief.