Dol op overtypen?
Als consultant op het gebied van Oracle technologie kom ik bij heel wat organisaties over de vloer. In gesprekken, meestal met de IT manager, de lead architect of de teamleider van het applicatie ontwikkelteam, komen vaak vergelijkbare problemen en uitdagingen voor. Sommige steekwoorden zijn indicator van een bepaald probleem dat voor mij snel herkenbaar is op basis van eerdere ervaringen. Veel organisaties hebben nu eenmaal met min of meer dezelfde situaties te maken. Een voorbeeld van zo'n trefwoordterm waar ik dol op ben is het woord overtypen. Als dat woord valt, weet ik dat het een interessant gesprek kan gaan worden.
Wanneer moet je overtypen?
Overtypen kom ik met name tegen in twee situaties, waarbij situatie twee soms de tweede generatie van situatie één kan worden genoemd. De eerste omstandigheid is waar medewerkers de gegevens die in niet-elektronische vorm zijn binnengekomen van vooral externe partijen - meestal via papieren formulieren - vastleggen in de back office applicatie. In veel organisaties is het papieren formulier inmiddels goeddeels vervangen door een selfservice webapplicatie, waar de klanten, patiënten of inwoners het formulier online invullen. Lang niet al deze web applicaties zijn echter geïntegreerd met de back office applicatie. Sommige webapplicaties sturen de vastgelegde informatie bijvoorbeeld als email of zelfs als fax door. Het overtypen bestaat er dan uit dat de gegevens in het ene systeem handmatig moeten worden vastgelegd in het andere systeem.

Overtypen kost geld!
Is dat eigenlijk erg, al dat overtypen? Het zorgt toch voor veel werkgelegenheid. Daar zit hem natuurlijk een deel van de kneep: al dat werk is duur. Alle arbeid die daarvoor moet worden verricht, moet worden betaald. Maar minstens zo belangrijk: het overtypen van de gegevens betekent een flinke vertraging van het volledige proces dat uiteindelijk in de back office applicatie met die gegevens moet worden uitgevoerd. Stel dat de klant het bestelformulier op vrijdag op de website invult, dan is de kans aanzienlijk dat het vastleggen in de back office applicatie pas op maandag plaatsvindt. Drie dagen vertraging die in geval van echte integratie voorkomen had kunnen worden. Naast deze vaak ongewenste vertraging is het onontkoombaar dat er bij het overtypen fouten worden gemaakt. Schriftelijke formulieren zijn niet altijd leesbaar, zeker als daar in de haast van het typen niet al te nauwkeurig naar gekeken wordt. En typefauten zitten in een klein hoekje. Overtypen is dus duur, vertragend en foutgevoelig. Drie belangrijke businessredenen om te bezien of er alternatieve oplossingen zijn.
Alternatieven voor overtypen
Een eerste stap om het intypen of overtypen uit te bannen is door klanten en andere zakelijke relaties die zich buiten de organisatie bevinden met zachte hand te dwingen tot het aanbieden van informatie op een gestructureerde, elektronische manier. De veelal meest eenvoudige en ook steeds meer geaccepteerde manier daarvoor is via een website met 'formulierapplicatie'.
Verhoog de kwaliteit van de data
De webapplicatie zal in veel gevallen niet rechtstreeks op de enterprise of back office database mogen inhaken. Als dat wel kan is natuurlijk het probleem opgelost: de eigenaar van de informatie en/of de initiator van de interactie doet het typewerk zelf. Fouten door niet goed leesbare formulieren worden hiermee ook voorkomen. Als we de applicatie bovendien voorzien van een eenvoudige, intuïtieve gebruikersinterface en een uitgebreide set validaties en controles kunnen we de kwaliteit van de data enorm verhogen.
Propageer op verschillende manieren
De gegevens die worden vastgelegd in de front office database kunnen op vele verschillende manieren worden geprogrageerd naar de back office database. Manieren die verschillen in ondermeer tijdigheid (van near-real time tot batch), toegepaste technologie en infrastructuur, interoperabiliteit, benodigde netwerk-features, schaalbaarheid, monitoring, faciliteiten voor validatie, verrijking en transformatie etc.

Het uitwisselen van files
Als er geen directe verbinding mogelijk is tussen de omgevingen van de front office en back office database - zeer uitzonderlijk overigens - is desnoods de uitwisseling van files (eventueel via FTP servers of zelfs externe download sites of mogelijk als attachment aan emails) een mechanisme om overtypen uit te bannen. De bereikte versnelling van het proces is niet ultiem (!) maar op zijn minst het terugdringen van fouten bij het overtypen kan worden gerealiseerd. Oracle RDBMS kan via XML DB (WebDav, FTP, HTTP), UTL_FILE of DBMS_EPG en eventueel met Java Stored Procedures files publiceren of laten downloaden. Met External Tables, XML DB (WebDav, FTP) UTL_HTTP of HTTPURITYPE, DBMS_EPG of opnieuw Java Stored Procedures kunnen files zonder additionele software of infrastructuur worden ingelezen of geupload.
De best performende oplossing
Oracle Database kunnen direct met elkaar praten via database links. Als de netwerktoegankelijkheid het toestaat is dit waarschijnlijk de eenvoudigst te implementeren en best performende oplossing voor het propageren van data uit de front office naar de back office en eventueel andersom. Tegelijkertijd creëert een database link een grote afhankelijkheid en meestal ongewenst nauwe koppeling tussen de beide databases.
Communicatie via database op basis van HTTP
Een alternatieve vorm van communicatie tussen database kan plaatsvinden op basis van HTTP. De front office database kan met UTL_HTTP berichten versturen naar een URL waarop de back office database - via DBMS_EPG of MOD_PLSQL - staat te luisteren. Pure http communicatie is voor wat betreft netwerkeisen vaak de meest acceptabele en is ook zonder extra infrastructuur te realiseren.
Communicatie via Advanced Queuing
Iets complexer, maar robuuster door het asynchrone karakter, is communicatie via Advanced Queuing. De front office database kan berichten schrijven op een lokale queue. Deze queue kan de berichten forwarden naar een remote queue die zich in de back office database bevindt. Als deze tijdelijk niet beschikbaar of bereikbaar is wordt de aflevering op een later tijdstip nogmaals uitgevoerd. De AQ infrastructuur kan worden geconfigureerd om ondermeer bericht-transformatie uit te voeren en filtering en content-based routing te ondersteunen. Deze queue-to-queue communicatie kan zowel via native protocollen als via HTTP verlopen. Ook voor deze aanpak is geen additionele infrastructuur benodigd.
Meer geavanceerde oplossingen
Als additionele software en infrastructuur wordt ingezet zijn meer geavanceerde oplossingen mogelijk. Oracle biedt ondermeer met Streams (niet langer strategisch maar nog steeds beschikbaar), Golden Gate (vooral voor real-time data propagatie) en Data Integrator (iets meer gepositioneerd voor batchgewijze synchronisatie) technologische oplossingen voor volledig ontkoppelde 'change data capture' en propagatie en replicatie.
Mogelijkheden voor validatie en transformatie van berichten
Message Oriented Middleware (MOM) en Enterprise Service Bus-sen kunnen worden ingezet om de propagatie van de front office naar de back office voor hun rekening te nemen. MOM en ESB infrastructuur biedt veelal uitgebreide mogelijkheden voor validatie en transformatie van berichten, voor filtering en routering op basis van berichtinhoud en voor store & forward om zekere aflevering, ook in geval van tijdelijke onbeschikbaarheid van de back office database, te garanderen. Oracle biedt met Oracle Service Bus en de SOA Suite twee vergelijkbare oplossingen die bovenstaande functionaliteit leveren en daarnaast uitvoerige features hebben voor security, monitoring en probleemoplossing. Bovendien kunnen deze producten uitstekend zorgen voor ontkoppeling door toepassing van asynchrone bericht uitwisselingspatronen en event-mechanismen.
Conclusie
Overtypen van gegevens is onnodig en zeer ongewenst. Het aantal mechanismen en kanalen dat ons ter beschikking staat om gegevens tussen twee Oracle Databases uit te wisselen is aanzienlijk. Zonder extra investeringen in software of andere infrastructuur en met een beperkte implementatie-inspanning kan het overtypen worden geminimaliseerd. De vertraging in bedrijfsprocessen, de hoge kosten en de fouten als gevolg van overtypen kunnen hiermee worden teruggedrongen zo niet uitgebannen. Zowel de interne business als de externe relaties zullen de positieve gevolgen direct kunnen waarnemen.
Voor discussie nav dit artikel ga naar het forum.
Auteur: Lucas Jellema
|