Tags: Database | Oracle | SOA
RuleGen - Toon Koppelaars

SOA in de database

Door Toon Koppelaars

De afgelopen tijd ben ik een aantal keer geconfronteerd met bedrijven die door externe adviseurs en/of hogere regionen in dezelfde organisatie verteld is dat ze meer “SOA-achtig” moesten gaan werken. Nou ben ik een database man, dus kom ik bij bedrijven langs die database applicaties ontwikkelen. Zo ook bij deze bedrijven waar al jaren lang (soms zelfs decennia), naar volle tevredenheid, met Oracle op een database-centric manier applicaties ontwikkeld worden. Applicaties die goed te onderhouden zijn, middels goed schatbare planningen, geen performanceissues kennen en naar volle tevredenheid intern of bij hun klanten draaien. Maar ja, helaas niet “SOA compliant” zijn.

Ik ben geen SOA expert. Wat ik van een SOA begrijp is dat je tegenwoordig, op een bepaald nivo, in je applicatie zinvolle services moet ontsluiten opdat ze eenvoudig door andere applicaties, wellicht vanaf buiten je bedrijf, aanroepbaar zijn. De hedendaagse technologie hiervoor is SOAP. U kunt zo’n service via een webservice call benaderen. Eén en ander natuurlijk in een nette gelaagde architectuur binnen je applicaties. Immers als je tegenwoordig niet gelaagd bent, hoor je er niet bij.

Dit is allemaal mooi en aardig en ik zie dat dit in situaties zinvol kan zijn. Wat ik echter niet zie, is dat al deze nieuwe inzichten ertoe zouden moeten leiden dat we de database weer als een domme bitten-bak gaan beschouwen. "Wat ik zie gebeuren is dat het introduceren van een SOA bij een databasecentric opgezet applicatielandschap, niet zelden wordt aangegrepen om alle logica uit de database te halen." Natuurlijk gepaard gaand met nogal wat skepsis, of zelfs aversie, bij bovengenoemde bedrijven.

Wist u trouwens dat SOAP volledig gesupport wordt in het Oracle DBMS? Zowel inkomend (SOAP server) als uitgaand (SOAP callouts)? Google’t u maar even op respectievelijk ‘Oracle native web services’ en ‘utl_dbws’. Ik ben een database-centric minded persoon en, zoals sommigen van U weten, een vrij extreme: als een regel applicatie- code, een regel code in het DBMS had kunnen zijn, dan moet die dat ook zijn. Maar let wel, ook bij databasecentric opgezette applicaties hebben we een gelaagde architectuur nodig. Zonder deze komt de onderhoudbaarheid en flexibiliteit al snel in het gedrang. In mijn visie zijn in het DBMS vier lagen te onderscheiden (zie ook illustratie). SOA in de Database
  1. Het database design met al haar data integriteit constraints De tabellen inclusief alle code die je voor het onderhouden van data-integriteit constraints schrijft.
  2. De data-services laag In deze laag vinden we vaak service views of functions bovenop de tabellen die voorkomen dat we in de volgende laag duplicatie van code krijgen.
  3. De business-logic laag Hier vinden we alle code die ten behoeve van de erboven liggende interface de applicatie queries samenstelt en uitvoert, danwel de applicatie transacties samenstelt en uitvoert. In deze laag kunnen we ook op eenvoudige wijze middels utl_dbws SOAP callouts doen naar andere applicatie zuilen.
  4. De business services laag Dit betreft doorgaans database-objecten zoals views procedures en/of functions die dedicated ten behoeve van erbovenop liggende user-interfaces gemaakt zijn. En vanaf Oracle11G kunnen we hier ook een webserver functionaliteit bouwen zodat andere applicaties SOAP calls kunnen doen naar services van deze applicatie.
Met deze gelaagdheid vinden we dus zowel binnen de applicatie een service concept terug, als erbuiten. NB: de interne services in de applicatie hoeven natuurlijk niet met SOAP calls geïmplementeerd te worden. Dat kunnen gewoon PL/SQL (remote) procedure calls zijn. Mocht op den duur zo’n service toch ook van buitenaf aanroepbaar moeten zijn, dan kan die procedure met minimale effort via de native webserver ontsloten worden.

Ook in het huidige SOA tijdperk kunnen database-centric opgezette applicaties prima gedijen. U kunt aanwezige technologie en competenties (pl/sql skills) gewoon blijven inzetten en tegelijk ook de beloofde vruchten van een SOA gaan plukken.

Ir. Toon Koppelaars
Managing partner RuleGen BV

Lees meer over RuleGen
Ga terug naar We Love IT uitgave #3 - 2008
Advertentie