Een bloemlezing van veelvoorkomende issues bij het met software over een netwerk geautomatiseerd delen en vertalen van gegevens tussen informatiesystemen.
In de afgelopen periode hebben wij bij KPMG Tech Advisory veel reviews verricht rond systeemintegratie. De focus lag daarbij met name op de technische aspecten: het met software over een netwerk geautomatiseerd delen en vertalen van gegevens tussen informatiesystemen. Vrijwel elke organisatie (met een wat grotere IT-omgeving) kent een dergelijke integratie tussen systemen – veelal binnen de organisatie, maar het delen van informatie met systemen buiten de eigen organisatiegrenzen, bijvoorbeeld met die van klanten en/of leveranciers, komt ook steeds meer voor!
In de loop der jaren is er een rijke verscheidenheid aan techniek gebruikt om systeemintegratie te realiseren. Een interessante observatie in dit kader is dat met het voortschrijden van de tijd ook het gebruikte vocabulaire is veranderd. Tegenwoordig is ‘RESTful’ bijvoorbeeld de geëigende methode om systeemintegratie te realiseren, en deze methode is tevens een opmaat naar andere moderne technische oplossingen, zoals ‘API-management’. In de dagelijkse praktijk constateren wij echter dat nog altijd een grote diversiteit aan producten, leveranciers en onderliggende protocollen wordt ingezet voor systeemintegratie.
In onze bevindingen en verbeteradviezen speelt deze diversiteit echter nauwelijks een rol. Sterker, de gevonden issues staan veelal los van de gebruikte technologieën en komen zowel in verouderde als zeer moderne systeemintegraties voor. Hieronder, zonder de ambitie om volledig te zijn, een bloemlezing die ook is te begrijpen zonder kennis van de hedendaagse ‘buzzwords’.
- Gebrek aan kennis over de werking van de systeemintegratie
“Het werkt”, maar niemand weet echt goed hoe. De oorspronkelijke ontwikkelaars zijn niet meer betrokken en documentatie ontbreekt. Dit blijkt overigens vaak pas een issue als er problemen optreden; dan is niet duidelijk hoe/waar de oplossing gezocht moet worden. Veelal is deze situatie ook aanleiding om, juist ook als er vergelijkbare informatie gedeeld moet worden, aanvullende systeemintegraties (veelal gebaseerd op een andere techniek) te realiseren. - Monitoring
Veel systeemintegratie vindt op de achtergrond plaats. Alles kan dan ook tijdenlang goed gaan en dan opeens uitvallen. Gebrek aan monitoring zorgt ervoor dat zo’n uitval soms lange tijd niet opgemerkt wordt. Daar komt bij dat het ontbreken van goede monitoring bij uitval het vinden van de oplossing vertraagt. - Error-handling
In elk IT-systeem gaat wel eens iets mis. Dat is bij systeemintegratie niet anders. Het netwerk doet het niet, informatie ontbreekt of heeft een andere vorm dan verwacht, of er is een andere reden waarom de gegevensoverdracht niet lukt. Veelal merkt de software dat in de onderste lagen van het systeem wel op, maar dan moet de fout nog worden geregistreerd en afgehandeld. Uiteindelijk zal een systeem en/of medewerker iets moeten doen om de fout te herstellen. Als dat niet gebeurt, raken gegevensverzamelingen mogelijk corrupt.
Helaas ontbreekt het vaak aan goede (en geteste) error-handling. Als dan blijkt dat er ergens iets niet goed is gegaan, resteert vaak een aanzienlijke zoektocht naar de goede correcties en oplossingen. Zeker als men deze issues ook in volgende gevallen wil voorkomen. - Gebrek aan inzicht in verwerking bij doelsysteem
Er zijn heel betrouwbare methoden om er bij systeemintegratie zeker van te zijn dat de informatie op de plaats van bestemming komt (‘Reliable messaging’). Echter, ook wanneer de informatie wordt afgeleverd, kan de verwerking daarvan in het doelsysteem stuklopen (en kan mogelijk informatie verloren gaan). Zeker als goede monitoring ontbreekt, wordt de oplossing (en de schuld) al snel bij het bronsysteem gezocht. Opnieuw de informatie opsturen is daar de (onbevredigende) “oplossing”, in de hoop dat het doelsysteem nu wel zorgvuldig met de informatie omgaat. - Batchverwerking via berichtenverkeer
Systeemintegratie wordt veelal vormgegeven door het uitwisselen van ‘berichten’ voor individuele transacties en informatieverzoeken. Dat heeft veelal een adequate performance. Anders wordt het als verwerkingen voor, bijvoorbeeld, een heel klantenbestand, in een zogenoemd ‘batchproces’, via het berichtenverkeer worden uitgevoerd. Dan wordt de verwerking vaak traag, raakt het netwerk verstopt en kunnen andere processen geen doorgang vinden. Systeemintegratie door berichtenverkeer is vaak niet de goede oplossing voor batchprocessen met grote hoeveelheden data; daarvoor zijn andere technieken beter geschikt. Een ‘trigger’ voor een batchproces kan wél heel goed op deze wijze worden verstuurd! - Mismatch in verwachtingen
Gebruikers hebben, ook als systeemintegratie onderdeel is van de verwerking, verwachtingen over de wijze waarop het systeem functioneert. Die verwachting is niet altijd in lijn met de wijze waarop het systeem is geïmplementeerd. Zo kan, bij een asynchrone verwerking en een aanzienlijke ‘payload' (gegevensomvang), een bericht er even over doen om op de bestemming te komen (en verwerkt te worden). Directe gebruikerscontrole levert dan een negatieve response terwijl er nog niets verkeerd is gegaan. Er zijn gevallen bekend dat gebruikers het bericht dan nogmaals verstuurden en, omdat ze dat niet tot één keer beperkten en daarmee het systeem onnodig zwaar belastten, daadwerkelijk technische problemen veroorzaakten. - Geen gebruik gemaakt van architectuurkaders (Spaghetti)
Een integratie tussen systemen is betrekkelijk eenvoudig gemaakt. Als (vanuit een IT-architectuurfunctie) sturing op de gebruikte technologieën en interface-definities ontbreekt en er niet gewerkt wordt om de systeemintegraties zo simpel mogelijk te houden, ontstaat er (in een wat groter ICT-landschap) al gauw een wirwar van systeemkoppelingen. Hoewel er al decennia gewaarschuwd wordt voor deze ‘spaghetti-architecturen’, komt het nog steeds voor dat verschillende protocollen en technologieën naast elkaar worden gebruikt met dezelfde werking en dat er meerdere koppelingen tussen systemen tot stand zijn gebracht die functioneel (nagenoeg) hetzelfde zijn. Op zijn minst zorgt een spaghetti-architectuur van systeemintegraties voor hogere instandhoudingskosten voor de ICT-voorzieningen.
Bovenstaande voorbeelden zijn overigens niet bedoeld om ‘Technische schuld’-problemen met systeemintegratie te bagatelliseren; ook rond systeemintegratie moet de software worden onderhouden en moet deze bijblijven!
In de bloemlezing zijn ook de gevolgen van de altijd lastige ontwerpkeuzen rond granulariteit, authenticatie en autorisatie buiten beschouwing gelaten. Deze keuzes kunnen eveneens grote impact hebben; de goede omgang met deze onderwerpen ligt echter veelal genuanceerd.
De businesswaarde van systeemintegratie is in het algemeen hoog: werkprocessen lopen efficiënter en er is minder handwerk. Ondanks genoemde issues zal het gebruik van systeemintegratie verder groeien.
Bij KPMG is een team ingericht om klanten te ondersteunen bij het op een juiste wijze implementeren van systeemintegratie en om zo nodig te helpen bestaande problemen op te lossen.
Voor meer informatie kan contact worden gezocht met Jochem van Galen of Joost Koedijk. Graag dragen wij bij aan de oplossing van de genoemde issues!
Meer informatie
Voor meer informatie kan contact worden gezocht met Jochem van Galen of Joost Koedijk.
Graag dragen wij bij aan de oplossing van de genoemde issues!